IF OBJECT_ID('dbo.sp_fdt_incorpora_embargos_ni') IS NOT NULL
   DROP PROCEDURE dbo.sp_fdt_incorpora_embargos_ni
GO
CREATE PROCEDURE dbo.sp_fdt_incorpora_embargos_ni
(
    @pch_compania           	char(4)     	= NULL, 
    @pch_tipo_nomina        	char(2)     	= NULL,
    @psi_anio_acumular      	smallint    	= 0, 
    @pti_mes_acumular       	tinyint    	= 0,
    @psi_numero_liquidacion 	smallint 	= 0, 
    @pch_trabajador		char(10)    	= NULL,
    @pdt_fecha_liquidacion	smalldatetime	= NULL,
    @pch_usuario            	char(30)    	= NULL,
    @pdt_fecha_hoy		smalldatetime
)
/*********************************************************************/
/*** Modulo:      Modulo Fiscal Embargos                           ***/
/*** Descripcion: Incorpora embargos a la liquidación              ***/
/*** Autor:	  Juan Carlos Leguizamon                           ***/
/*** Fecha:	  Junio 14 de 2002                                 ***/
/*** Motor:	  SQL Server 7.0	Version interna: 1.00      ***/
-- REVISIONES:
-- NOV-02-06. Incluir secuencia del embargo en el campo secuencia de la transacción
-- NOV-14-06. Solo incorporar los embargos cuyo consecutivo_oficina sea 10
/*********************************************************************/
AS
DECLARE 
    @cch_trabajador    char(10),
    @csi_concepto      smallint,
    @cti_secuencia     tinyint,
    @cch_agr_base      char(3),
    @csi_cnc_base smallint,
    @cti_quinta_parte  tinyint,
    @cdc_monto_total   decimal(14,2),
    @cdc_saldo_actual  decimal(14,2),
    @cdc_porcentaje    decimal(5,2),
    @cdc_cuota_fija    decimal(14,2),
    @vdc_factor_01     decimal(15,6),
    @vch_referencia    char(10),
    @vch_referencia2   char(10)

BEGIN
    /* Eliminar las transacciones ya generadas por este incorpora */
    DELETE
        liquidaciones_det
    WHERE
        compania = @pch_compania And
        tipo_nomina = @pch_tipo_nomina And
        anio_acumular = @psi_anio_acumular And
        mes_acumular = @pti_mes_acumular And
        numero_liquidacion = @psi_numero_liquidacion And
        origen_transaccion = 9 And
        (
         (trabajador = @pch_trabajador And IsNull(LTrim(RTrim(@pch_trabajador)), '') <> '') OR
         (IsNull(LTrim(RTrim(@pch_trabajador)), '') = '')
        )

    /* Recorrer los embargos activos */
    DECLARE cr_embargos CURSOR FOR
    SELECT
        e.trabajador, e.concepto, e.secuencia, e.agr_conceptos_base, 
        IsNull(e.concepto_base,0), IsNull(e.quinta_parte,0), 
        IsNull(e.monto_total,0), IsNull(e.saldo_actual,0),
        IsNull(e.porcentaje,0), IsNull(e.cuota_fija,0)
    FROM fdt_embargos e
    INNER JOIN trabajadores_grales tg ON e.compania = tg.compania And e.trabajador = tg.trabajador AND tg.sit_trabajador = 1
    INNER JOIN rel_conc_tipo_nomina rctn ON rctn.compania = e.compania AND rctn.concepto = e.concepto AND rctn.tipo_nomina = @pch_tipo_nomina
    INNER JOIN fdt_embargos_tipo_nom fetn ON fetn.compania = e.compania AND fetn.trabajador = e.trabajador AND fetn.concepto = e.concepto AND fetn.secuencia = e.secuencia AND fetn.tipo_nomina = @pch_tipo_nomina  
    WHERE
        e.compania = @pch_compania And
        e.situacion = 1 And
        (
         (LTrim(RTrim(tg.trabajador)) = LTrim(RTrim(@pch_trabajador)) And IsNull(LTrim(RTrim(@pch_trabajador)), '') <> '') OR
         (IsNull(LTrim(RTrim(@pch_trabajador)), '') = '' And 
          tg.trabajador in (SELECT trabajador FROM liquidaciones_enc 
                            WHERE compania = @pch_compania And
                                  numero_liquidacion = @psi_numero_liquidacion))
        )
    -- jcl nov-14-06 ajuste para Avidesa MacPollo
        and e.consecutivo_oficina = '10'

    OPEN cr_embargos

    FETCH cr_embargos
    INTO @cch_trabajador, @csi_concepto, @cti_secuencia, @cch_agr_base, @csi_cnc_base,
         @cti_quinta_parte, @cdc_monto_total, @cdc_saldo_actual, @cdc_porcentaje, @cdc_cuota_fija

    WHILE @@FETCH_STATUS = 0 
    BEGIN
        IF (@cdc_monto_total + @cdc_saldo_actual > 0) OR (@cdc_monto_total = 0)
        BEGIN
            /* factor_01 */
            IF @cdc_monto_total + @cdc_saldo_actual > 0
	BEGIN
                IF @cdc_saldo_actual - @cdc_cuota_fija > 0
                    SET @vdc_factor_01 = @cdc_cuota_fija
                ELSE
                    SET @vdc_factor_01 = @cdc_saldo_actual
	END
	ELSE
                    SET @vdc_factor_01 = @cdc_cuota_fija


            /* referencias */                        
            IF @csi_cnc_base > 0
                SELECT @vch_referencia = Convert(varchar, @csi_cnc_base),
                       @vch_referencia2 = 'C'
            ELSE
                SELECT @vch_referencia = @cch_agr_base,
                       @vch_referencia2 = 'A'
            
        EXEC sp_alta_liquidaciones_det
            @pch_compania,
            @pch_tipo_nomina,
            @psi_anio_acumular,
            @pti_mes_acumular,
            @psi_numero_liquidacion,
            @csi_concepto,
            @cch_trabajador,
            @vch_referencia,    /* referencia */
            @cti_secuencia,    		/* secuencia */ -- JCL NOV-02-06
            @vch_referencia2,	/* referencia2 */
            @pdt_fecha_hoy,	/* fecha */
            @pdt_fecha_hoy,    	/* fecha2*/
            @cdc_porcentaje,	/* tiempo */
            @vdc_factor_01,     /* factor_01 */
            @cti_secuencia, 	/* factor_02 */
            @cti_quinta_parte,  /* factor_03 */
            0,                  /* importe_reportado */
            0,       		/* importe */
            null,    		/* turno_trn */
            null,    		/* puesto_trn */
            null,    		/* agrupacion_01_trn */
            null,    		/* dato_01_trn */
            null,    		/* agrupacion_02_trn */
            null,    		/* dato_02_trn */
            null,    		/* agrupacion_03_trn */
            null,    		/* dato_03_trn */
            null,    		/* agrupacion_04_trn */
            null,    		/* dato_04_trn */
            null,               /* coleccion_1 */
            null,               /* coleccion_2 */
            null,               /* coleccion_2 */
            9,    		/* origen_transaccion */
            @pch_usuario, 	/* usuario_registro */
            @pdt_fecha_hoy,	/* fecha_registro */
            null,    		/* usuario_proceso */
            null,		/* fecha_proceso */
            null,    		/* usuario_aplico */
            null,    		/* fecha_aplico */
            1    		/* sit_transaccion */

        END /* IF (@cdc_monto_total + @cdc_saldo_actual > 0) OR (@cdc_monto_total = 0) */

        FETCH cr_embargos
        INTO @cch_trabajador, @csi_concepto, @cti_secuencia, @cch_agr_base, @csi_cnc_base,
             @cti_quinta_parte, @cdc_monto_total, @cdc_saldo_actual, @cdc_porcentaje, @cdc_cuota_fija

    END /* WHILE @@FETCH_STATUS = 0 */

    CLOSE cr_embargos
    DEALLOCATE cr_embargos
END
GO
GRANT EXECUTE ON dbo.sp_fdt_incorpora_embargos_ni TO PUBLIC
GO
