CREATE OR REPLACE PROCEDURE sp_fdt_reapertura_embargos_ns
(
    pch_compania      char,
    psi_id_calendario smallint
)
/*********************************************************************/
/*** Modulo:      Módulo Fiscal Colombiano - Embargos              ***/
/*** Descripcion: Proceso contrario al cierre de embargos          ***/
/*** Autor:	  Juan Carlos Leguizamon                           ***/
/*** Fecha:	  Junio 18 de 2002                                 ***/
/*** Motor:	  Oracle 8i		Version interna: 1.0       ***/
/*** Revisión: Mar-03-07 Solo reactivar embargos inactivados en el periodo ***/  
/*********************************************************************/
--DCR: Julio-24-07: Cuando hay un calculo excedido, no deberia descontar esa cuota, pues al trabajador, no se le descontó
AS
    vdt_fecha_pago    date;
    vvc_sql           varchar2(2500);
    vin_id_cursor     integer;
    vin_rows          integer;
BEGIN
    
    UPDATE fdt_embargos 
    SET saldo_actual = saldo_actual + 
        (SELECT SUM(importe) FROM transacciones_ns 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.id_calendario = psi_id_calendario
           And tns.sit_transaccion = 2)
    WHERE compania = pch_compania 
      And monto_total > 0 
      And EXISTS
         (SELECT 1 FROM transacciones_ns 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.id_calendario = psi_id_calendario);

    UPDATE fdt_embargos
    SET situacion = 1, fecha_baja = null
    WHERE
        compania = pch_compania And
        monto_total > 0 And
        situacion = 2 And
        saldo_actual > 0 And
        EXISTS 
         (SELECT 1 FROM transacciones_ns 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.id_calendario = psi_id_calendario);

  COMMIT WORK;
      
  EXCEPTION
  WHEN OTHERS THEN
       RAISE_APPLICATION_ERROR(-20002, SQLCODE||SQLERRM(SQLCODE));
       RETURN;

END;
/