Ver Mensaje Individual
  #4  
Antiguo 09-06-2011
Chaja Chaja is offline
No confirmado
 
Registrado: ago 2004
Ubicación: Mar del Plata
Posts: 238
Reputación: 0
Chaja Va por buen camino
Código SQL [-]
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
  /* Busco el proveedor si es exento a las ganacias y el codigo de retencion*/
  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;
     /*Sumo los pagos de las retenciones aneriores */
      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;
     /*************************/
     /*Sumo las Anulaciones */
      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
  /* Procedure Text */
  /*suspend;*/
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;

Última edición por ecfisa fecha: 09-06-2011 a las 15:56:42.
Responder Con Cita