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 ***/  
/*********************************************************************/
AS
    vdt_fecha_pago    date;
    vvc_sql           varchar2(2500);
    vin_id_cursor     integer;
    vin_rows          integer;
BEGIN
    SELECT
        fecha_pago
    INTO
        vdt_fecha_pago 
    FROM
        calendario_procesos
    WHERE
        id_calendario = psi_id_calendario;

/*
    vvc_sql :=
    'UPDATE ' ||
        'fdt_embargos ' ||
    'SET ' ||
        'saldo_actual = saldo_actual + ' ||
        '(SELECT 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 = ' || To_Char(psi_id_calendario) || ') ' ||
    '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 = ' || To_Char(psi_id_calendario) || ')';
    BEGIN
        vin_id_cursor := dbms_sql.open_cursor;
        dbms_sql.parse(vin_id_cursor, vvc_sql, dbms_sql.native);
        vin_rows := dbms_sql.execute(vin_id_cursor);
        dbms_sql.close_cursor(vin_id_cursor);
    EXCEPTION
        WHEN OTHERS THEN
            Raise_Application_Error (-20001, 'Embargos - Error al actualizar tabla');
    END;
*/
    
    UPDATE fdt_embargos 
    SET saldo_actual = saldo_actual + 
        (SELECT 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)
    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);

    COMMIT;

    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;
END;
/
CREATE PUBLIC SYNONYM sp_fdt_reapertura_embargos_ns FOR ADAM.sp_fdt_reapertura_embargos_ns;
GRANT EXECUTE ON sp_fdt_reapertura_embargos_ns TO adama;

