CREATE OR REPLACE PROCEDURE sp_fdt_reapertura_embargos_ni
(  
    pch_compania char,  
    pch_trabajador char,  
    pch_tipo_nom char,  
    psi_anio_acum number,  
    pti_mes_acum number,  
    psi_num_liq number  
)  
/*****************************************************************/  
/*** Modulo:      Módulo Fiscal Colombiano - Embargos          ***/  
/*** Descripcion: Actualiza saldos y controla situacion en NI  ***/  
/*** Autor:       Juan Carlos Leguizamon                       ***/  
/*** Fecha:       Sep-22-06                                    ***/  
/*****************************************************************/  
--DCR:JUL-17-07: Pasada a Oracle del SQL
--DCR: Julio-24-07: Cuando hay un calculo excedido, no deberia descontar esa cuota, pues al trabajador, no se le descontó
AS  
BEGIN  

    UPDATE fdt_embargos 
    SET saldo_actual = saldo_actual + 
        (SELECT SUM(importe) FROM liquidaciones_det tns
         WHERE tns.compania = fdt_embargos.compania
           AND tns.trabajador = fdt_embargos.trabajador 
           AND tns.concepto = fdt_embargos.concepto
           AND tns.factor_02 = fdt_embargos.secuencia
           AND tns.compania = pch_compania
           AND tns.anio_acumular = psi_anio_acum  
           AND tns.mes_acumular = pti_mes_acum  
           AND tns.numero_liquidacion = psi_num_liq  
           AND tns.trabajador = pch_trabajador
           AND tns.sit_transaccion = 2)
    WHERE compania = pch_compania 
      AND trabajador = pch_trabajador
      AND monto_total > 0      
      AND EXISTS
         (SELECT 1 FROM liquidaciones_det tns
          WHERE tns.compania = fdt_embargos.compania
           AND tns.trabajador = fdt_embargos.trabajador 
           AND tns.concepto = fdt_embargos.concepto
           AND tns.factor_02 = fdt_embargos.secuencia
           AND tns.compania = pch_compania
           AND tns.anio_acumular = psi_anio_acum  
           AND tns.mes_acumular = pti_mes_acum  
           AND tns.numero_liquidacion = psi_num_liq  
           AND tns.trabajador = pch_trabajador);

    UPDATE fdt_embargos
    SET situacion = 1, fecha_baja = null
    WHERE
        compania = pch_compania
        AND trabajador = pch_trabajador
        AND monto_total > 0
        AND situacion = 2
        AND saldo_actual > 0
        AND EXISTS 
        (SELECT 1 FROM liquidaciones_det tns
           WHERE tns.compania = fdt_embargos.compania
           AND tns.trabajador = fdt_embargos.trabajador 
           AND tns.concepto = fdt_embargos.concepto
           AND tns.factor_02 = fdt_embargos.secuencia
           AND tns.compania = pch_compania
           AND tns.anio_acumular = psi_anio_acum  
           AND tns.mes_acumular = pti_mes_acum  
           AND tns.numero_liquidacion = psi_num_liq  
           AND tns.trabajador = pch_trabajador);

END;
/
CREATE OR REPLACE PUBLIC SYNONYM sp_fdt_reapertura_embargos_ni FOR ADAM.sp_fdt_reapertura_embargos_ni;
GRANT EXECUTE ON sp_fdt_reapertura_embargos_ni TO adama;
