CREATE PROCEDURE TOTAL_PAGOS_MENSUAL_PROVEEDORES (
CODIGO VARCHAR(6),
FECHA DATE)
RETURNS (
TOTAL NUMERIC(15,3),
EXENTO VARCHAR(1),
CODIGO_REGIMEN INTEGER,
PAGOS_ANTERIORES NUMERIC(15,3),
CONCEPTO CHAR(25),
MINIMO_NO_IMPONIBLE NUMERIC(15,3),
TASA NUMERIC(15,3),
IMPUESTO_MINIMO NUMERIC(15,3),
EXENTO_ID INTEGER)
AS
DECLARE VARIABLE PAGOS_ANTERIORES_AUX NUMERIC(15,3);
DECLARE VARIABLE ANULACIONES NUMERIC(15,3);
begin
select p.exento_ganacia,p.codigo_regimen_ret_ganacia from poveedor p
where p.codigo=:codigo
into :exento,:codigo_regimen;
if (exento='N') then
begin
select Sum(op.total_neto_gravado) from ordenpago op where
extract( month from op.fecha)= extract (month from :fecha) and
extract (year from op.fecha)=extract (year from :fecha) and
op.codigo=:codigo
into :total;
if (total is null) then
total=0;
select t.alicuota,t.minimo_no_imponible,t.concepto,t.impuesto_minimo from tasas_ret_ganancia t
where t.codigo=:codigo_regimen
into :tasa,:minimo_no_imponible,:concepto,:impuesto_minimo;
select Sum(ret.impuesto_retenido) from retenciones_ganancia ret where
extract(month from ret.fecha)=extract (month from :fecha) and
extract (year from ret.fecha)=extract (year from :fecha) and
ret.codigo_proveedor=:codigo
into :pagos_anteriores;
if (pagos_anteriores is null) then
pagos_anteriores=0;
anulaciones=0;
pagos_anteriores_aux=0;
select Sum(a_ret.impuesto_retenido) from anulacion_retenciones_ganancia a_ret where
extract(month from a_ret.fecha)=extract (month from :fecha) and
extract (year from a_ret.fecha)=extract (year from :fecha) and
a_ret.codigo_proveedor=:codigo
into :anulaciones;
if (anulaciones is null) then
anulaciones=0;
pagos_anteriores_aux=:pagos_anteriores-:anulaciones;
pagos_anteriores=:pagos_anteriores_aux;
end
else
begin
tasa =0;
concepto ='';
minimo_no_imponible=0;
exento ='S';
pagos_anteriores =0;
impuesto_minimo =0;
end
if (exento = 'N') Then begin exento_id=0; end
else begin exento_id = 1; end
end
codigo Delphi
'delphi'>Código Delphi
[-]
'keyword'>if DMMain_2.AgenteRetencionGanacia='quote'>'S' 'keyword'>Then
'keyword'>begin
QTraer_Pagos_Proveedor.Close;
QTraer_Pagos_Proveedor.ParamByName('quote'>'CODIGO').AsString := Dato;
QTraer_Pagos_Proveedor.ParamByName('quote'>'Fecha').AsDate := CDSOPagoFECHA.AsDateTime;
QTraer_Pagos_Proveedor.Open;'comment'>//ExecProc;
'keyword'>if (QTraer_Pagos_ProveedorEXENTO.AsVariant='quote'>'N') 'keyword'>or
(QTraer_Pagos_ProveedorEXENTO.AsString='quote'>'N') 'keyword'>or
(QTraer_Pagos_ProveedorEXENTO.AsWideString='quote'>'N') 'keyword'>or (QTraer_Pagos_ProveedorEXENTO_ID.Value=0) 'keyword'>Then
CDSOPagoRETIENE_GANACIAS.Value:='quote'>'S'
'keyword'>else
CDSOPagoRETIENE_GANACIAS.Value:='quote'>'N';
'keyword'>if CDSOPagoTIPOIVA.Value<>1 'keyword'>Then
CDSOPagoRETIENE_GANACIAS.Value:='quote'>'N';
'keyword'>if CDSOPagoRETIENE_GANACIAS.Value='quote'>'S' 'keyword'>Then
'keyword'>begin
'comment'>// este es el Total de netos gravados del mes
CDSOPagoTOTAL_PAGOS_DEL_MES.AsFloat := QTraer_Pagos_ProveedorTOTAL.AsFloat;
'comment'>// total de impuestos pagados
CDSOPagoTOTAL_RETENIDO_MES.AsFloat := QTraer_Pagos_ProveedorPAGOS_ANTERIORES.AsFloat;
CDSOPagoTASA_RETENCION_GANACIA.AsFloat := QTraer_Pagos_ProveedorTASA.AsFloat;
CDSOPagoMINIMO_NO_IMPONIBLE_GANANCIA.AsFloat := QTraer_Pagos_ProveedorMINIMO_NO_IMPONIBLE.AsFloat;
CDSOPagoCODIGO_REGIMENA_GANANCIA.Value := QTraer_Pagos_ProveedorCODIGO_REGIMEN.AsInteger;
CDSOPagoCONCEPTO_RETENCION_GANACIA.Value := QTraer_Pagos_ProveedorCONCEPTO.AsString;
CDSOPagoIMPUESTO_MINIMO_GANANCIA.AsFloat := QTraer_Pagos_ProveedorIMPUESTO_MINIMO.AsFloat;
'keyword'>end;
QTraer_Pagos_Proveedor.Close;
'keyword'>end;