IF NOT EXISTS (SELECT 1 FROM syscolumns sc INNER JOIN sysobjects so ON sc.id = so.id WHERE so.name = 'fdt_embargos' AND sc.name = 'porcentaje_aumento')
    ALTER TABLE fdt_embargos ADD porcentaje_aumento	tinyint NULL
GO
IF NOT EXISTS (SELECT 1 FROM syscolumns sc INNER JOIN sysobjects so ON sc.id = so.id WHERE so.name = 'fdt_embargos' AND sc.name = 'valor_aumento')
    ALTER TABLE fdt_embargos ADD valor_aumento decimal(14,2) NULL
GO
IF NOT EXISTS (SELECT 1 FROM syscolumns sc INNER JOIN sysobjects so ON sc.id = so.id WHERE so.name = 'fdt_embargos' AND sc.name = 'mes_aumento')
    ALTER TABLE fdt_embargos ADD mes_aumento tinyint NULL
GO
IF NOT EXISTS (SELECT 1 FROM syscolumns sc INNER JOIN sysobjects so ON sc.id = so.id WHERE so.name = 'fdt_embargos' AND sc.name = 'anio_desde')
    ALTER TABLE fdt_embargos ADD anio_desde integer NULL
GO
IF OBJECT_ID('dbo.fdt_hist_aum_emb') IS NOT NULL
drop table dbo.fdt_hist_aum_emb
go
CREATE TABLE dbo.fdt_hist_aum_emb
(
    compania            char(4) NOT NULL,
    trabajador          char(10) NOT NULL,
    concepto            smallint NOT NULL,
    secuencia           tinyint NOT NULL,
    id_calendario       integer NOT NULL,
    cuota_anterior      decimal(14,2)  NULL,
    cuota_nueva         decimal(14,2)  NULL,
    porcentaje_aum      decimal(14,2)  NULL,
    valor_aum           decimal(14,2)  NULL,
    tipo_nomina         char(2)        NULL,
    anio                smallint       NULL,
    periodo             smallint       NULL,
    CONSTRAINT PK_fdt_hist_aum_emb PRIMARY KEY NONCLUSTERED 
    (compania, trabajador, concepto, secuencia, id_calendario) 
)
ON [PRIMARY]
GO
GRANT ALL ON fdt_hist_aum_emb TO PUBLIC
GO
IF OBJECT_ID('dbo.fdt_embargos_tipo_nom') IS NOT NULL
    drop table dbo.fdt_embargos_tipo_nom
GO
CREATE TABLE dbo.fdt_embargos_tipo_nom
(
    compania            char(4) NOT NULL,
    trabajador          char(10) NOT NULL,
    concepto            smallint NOT NULL,
    secuencia           tinyint NOT NULL,
    tipo_nomina         char(4)  NOT NULL,
    CONSTRAINT PK_fdt_embargos_tipo_nom PRIMARY KEY NONCLUSTERED 
    (compania, trabajador, concepto, secuencia, tipo_nomina) 
)
ON [PRIMARY]
GO
GRANT ALL ON fdt_embargos_tipo_nom TO PUBLIC
GO
IF OBJECT_ID('dbo.sp_fdt_alta_emb_tipo_nom') IS NOT NULL
   DROP PROCEDURE dbo.sp_fdt_alta_emb_tipo_nom
GO
CREATE PROCEDURE dbo.sp_fdt_alta_emb_tipo_nom  
(  
    @pch_compania      char(4),  
    @pch_trabajador    char(10),  
    @psi_concepto      smallint,  
    @pti_secuencia     tinyint,  
    @pch_tipo_nom	   char(2),
    @pti_alta          tinyint
)  
/*********************************************************************/  
/*** Modulo:      Módulo Fiscal ADAM V.3 - Embargos                ***/  
/*** Descripcion: Crea o Actualiza los tipos de nomina del embargo ***/  
/*** Autor:   Laura A. Guzmán                                      ***/  
/*** Fecha:   Junio 28 de 2006                                     ***/  
/*** Motor:   SQL Server 7.0 Version interna: 1.00                 ***/  
/*********************************************************************/  
AS  
BEGIN  
    DELETE FROM fdt_embargos_tipo_nom
    WHERE compania = @pch_compania And   
    trabajador = @pch_trabajador And  
    concepto = @psi_concepto And  
    secuencia = @pti_secuencia and
    tipo_nomina = @pch_tipo_nom

    IF @pti_alta = 1
        INSERT INTO fdt_embargos_tipo_nom
            (compania,  
             trabajador,  
             concepto,  
             secuencia,  
             tipo_nomina)  
        VALUES  
            (@pch_compania,  
             @pch_trabajador,  
             @psi_concepto,  
             @pti_secuencia,  
             @pch_tipo_nom)

END  
GO
GRANT EXECUTE ON dbo.sp_fdt_alta_emb_tipo_nom TO PUBLIC
GO
IF OBJECT_ID('dbo.sp_fdt_aum_embargos_ns') IS NOT NULL
   DROP PROCEDURE dbo.sp_fdt_aum_embargos_ns
GO
CREATE PROCEDURE dbo.sp_fdt_aum_embargos_ns
(
    @pch_compania      char(4),
    @psi_id_calendario smallint
)
/*********************************************************************/
/*** Modulo:      Módulo Fiscal Colombiano - Embargos              ***/
/*** Descripcion: aumenta cuota fija de embargos                   ***/
/*** Autor:	  Laura A. Guzman M                                    ***/
/*** Fecha:	  Junio 29 de 2006                                     ***/
/*** Motor:	  SQL Server 2000	Version interna: 1.00              ***/
/*********************************************************************/
AS


DECLARE
    @vch_tipo_nom    char(2),
    @vsi_anio        smallint,
    @vsi_periodo     smallint,
    @vsi_mes         smallint

BEGIN
    SELECT
        @vch_tipo_nom = tipo_nomina, @vsi_anio = anio, @vsi_periodo = periodo, @vsi_mes = mes_acumular
    FROM
        calendario_procesos
    WHERE
        id_calendario = @psi_id_calendario


    INSERT INTO fdt_hist_aum_emb (compania, 
                                  trabajador, 
                                  concepto, 
                                  secuencia, 
                                  id_calendario,
                                  cuota_anterior,
                                  cuota_nueva,
                                  porcentaje_aum,
                                  valor_aum,
                                  tipo_nomina,
                                  anio,
                                  periodo)
    SELECT @pch_compania, a.trabajador, a.concepto, a.secuencia, @psi_id_calendario, a.cuota_fija, a.cuota_fija + (a.cuota_fija * (convert(decimal(5,2),b.dato) / 100)),
    convert(decimal(5,2),b.dato), 0, @vch_tipo_nom, @vsi_anio, @vsi_periodo
    FROM fdt_embargos a, fdt_parametros b
    WHERE a.compania = b.compania
    AND b.secuencia = a.porcentaje_aumento
    AND a.compania = @pch_compania
    AND a.situacion = 1
    AND a.porcentaje_aumento = b.secuencia
    AND b.parametro = 'otros'
    AND ISNULL(a.porcentaje_aumento,0) > 0
    AND a.mes_aumento = @vsi_mes
    AND a.anio_desde >= @vsi_anio


    INSERT INTO fdt_hist_aum_emb (compania, 
                                  trabajador, 
                                  concepto, 
                                  secuencia, 
                                  id_calendario,
                                  cuota_anterior,
                                  cuota_nueva,
                                  porcentaje_aum,
                                  valor_aum,
                                  tipo_nomina,
                                  anio,
                                  periodo)
    SELECT @pch_compania, a.trabajador, a.concepto, a.secuencia, @psi_id_calendario, a.cuota_fija, a.cuota_fija + a.valor_aumento,
    0, a.valor_aumento, @vch_tipo_nom, @vsi_anio, @vsi_periodo
    FROM fdt_embargos a, fdt_parametros b
    WHERE a.compania = b.compania
    AND b.secuencia = a.porcentaje_aumento
    AND a.compania = @pch_compania
    AND a.situacion = 1
    AND a.porcentaje_aumento = b.secuencia
    AND b.parametro = 'otros'
    AND ISNULL(a.valor_aumento,0) > 0
    AND a.mes_aumento = @vsi_mes
    AND a.anio_desde >= @vsi_anio

    UPDATE
        fdt_embargos
    SET
        cuota_fija = cuota_nueva
    FROM
        fdt_hist_aum_emb a
    WHERE
        a.compania = fdt_embargos.compania And
        a.trabajador = fdt_embargos.trabajador And
        a.concepto = fdt_embargos.concepto And
        a.secuencia = fdt_embargos.secuencia And
        a.id_calendario = @psi_id_calendario And
        fdt_embargos.situacion = 1

END
GO
GRANT EXECUTE ON dbo.sp_fdt_aum_embargos_ns TO PUBLIC
GO
IF OBJECT_ID('dbo.sp_fdt_rea_aum_emb_ns') IS NOT NULL
   DROP PROCEDURE dbo.sp_fdt_rea_aum_emb_ns
GO
CREATE PROCEDURE dbo.sp_fdt_rea_aum_emb_ns
(
    @pch_compania      char(4),
    @psi_id_calendario smallint
)
/*********************************************************************/
/*** Modulo:      Módulo Fiscal Colombiano - Embargos              ***/
/*** Descripcion: aumenta cuota fija de embargos                   ***/
/*** Autor:	  Laura A. Guzman M                                    ***/
/*** Fecha:	  Junio 29 de 2006                                     ***/
/*** Motor:	  SQL Server 2000	Version interna: 1.00              ***/
/*********************************************************************/
AS
BEGIN
    UPDATE
        fdt_embargos
    SET
        cuota_fija = cuota_anterior
    FROM
        fdt_hist_aum_emb a
    WHERE
        a.compania = fdt_embargos.compania And
        a.trabajador = fdt_embargos.trabajador And
        a.concepto = fdt_embargos.concepto And
        a.secuencia = fdt_embargos.secuencia And
        fdt_embargos.compania = @pch_compania And
        a.id_calendario = @psi_id_calendario 

    DELETE
        fdt_hist_aum_emb
    WHERE
        compania = @pch_compania And
        id_calendario = @psi_id_calendario
    

END
GO
GRANT EXECUTE ON dbo.sp_fdt_rea_aum_emb_ns TO PUBLIC
GO
IF OBJECT_ID('dbo.sp_fdt_crea_embargo') IS NOT NULL
   DROP PROCEDURE dbo.sp_fdt_crea_embargo
GO
CREATE PROCEDURE dbo.sp_fdt_crea_embargo  
(  
    @pch_compania      char(4),  
    @pch_trabajador    char(10),  
    @psi_concepto      smallint,  
    @pti_secuencia     tinyint,  
    @pdt_fecha_embargo smalldatetime,  
    @pdc_oficina       decimal(6,0),  
    @pti_clase         tinyint,  
    @pvc_expediente    varchar(10),  
    @pdc_juzgado       decimal(12,0),  
    @pti_banco         tinyint,  
    @pdc_cuenta        decimal(12,0),  
    @pti_tipo_id_dem   tinyint,  
    @pdc_id_demandante decimal(11,0),  
    @pvc_apellidos     varchar(20),  
    @pvc_nombres       varchar(20),  
    @pch_agr_conceptos char(3),  
    @psi_cnc_base      smallint,  
    @pti_quinta_parte  tinyint,  
    @pdc_monto_total   decimal(14,2),  
    @pdc_porcentaje    decimal(5,2),  
    @pdc_cuota_fija    decimal(14,2),  
    @pdc_saldo_actual  decimal(14,2)
--agregado por DCRP Agosto 22/2003
    ,@pch_ofOrigen	char(4)
    ,@pch_ofDestino	char(4)
    ,@pch_ciudad_pago   char(2)  
    ,@pti_porcentaje_aum tinyint
    ,@pti_valor_aum	decimal(14,2)
    ,@pti_mes_aum   tinyint
    ,@pin_anio_desde	integer
)  
/*********************************************************************/  
/*** Modulo:      Módulo Fiscal ADAM V.3 - Embargos                ***/  
/*** Descripcion: Crea o Actualiza el embargo para el trabajador   ***/  
/*** Autor:   Juan Carlos Leguizamon                           ***/  
/*** Fecha:   Abril 22 de 2002                                 ***/  
/*** Motor:   SQL Server 7.0 Version interna: 1.00      ***/  
/*********************************************************************/  
AS  
BEGIN  
    IF NOT EXISTS(SELECT 1 FROM fdt_embargos  
                  WHERE compania = @pch_compania And   
                        trabajador = @pch_trabajador And  
                        concepto = @psi_concepto And  
                        secuencia = @pti_secuencia)  
    BEGIN  
        INSERT INTO fdt_embargos  
            (compania,  
             trabajador,  
             concepto,  
             secuencia,  
             fecha_alta,  
             situacion,  
             consecutivo_oficina,  
             oficina_origen,  
             oficina_destino,  
             clase_deposito,  
             numero_expediente,  
             codigo_juzgado,  
             banco,  
             cuenta,  
             tipo_id_demandante,  
             id_demandante,  
             apellido_demandante,  
             nombre_demandante,  
             agr_conceptos_base,  
             concepto_base,  
             quinta_parte,  
             monto_total,  
             saldo_actual,  
             porcentaje,  
             cuota_fija,
	         ciudad_pago,
	         porcentaje_aumento,
             valor_aumento,
             mes_aumento,
             anio_desde)  
        VALUES  
            (@pch_compania,  
             @pch_trabajador,  
             @psi_concepto,  
             @pti_secuencia,  
             @pdt_fecha_embargo,  
             1,  
             @pdc_oficina,  
             @pch_ofOrigen, --'0010',  
             @pch_ofDestino, --'0010',  
             @pti_clase,  
             @pvc_expediente,  
             @pdc_juzgado,  
             @pti_banco,  
             @pdc_cuenta,  
             @pti_tipo_id_dem,  
             @pdc_id_demandante,  
             @pvc_apellidos,  
             @pvc_nombres,  
             @pch_agr_conceptos,  
             @psi_cnc_base,  
             @pti_quinta_parte,  
             @pdc_monto_total,  
             @pdc_monto_total,  
             @pdc_porcentaje,  
             @pdc_cuota_fija,
	         @pch_ciudad_pago,
             @pti_porcentaje_aum,
	         @pti_valor_aum,
             @pti_mes_aum,
             @pin_anio_desde)  
    END  
    ELSE  
    BEGIN  
        UPDATE fdt_embargos  
        SET  fecha_alta = @pdt_fecha_embargo,  
             consecutivo_oficina = @pdc_oficina,  
             clase_deposito = @pti_clase,  
             numero_expediente = @pvc_expediente,  
             codigo_juzgado = @pdc_juzgado,  
             banco = @pti_banco,  
             cuenta = @pdc_cuenta,  
             tipo_id_demandante = @pti_tipo_id_dem,  
             id_demandante = @pdc_id_demandante,  
             apellido_demandante = @pvc_apellidos,  
             nombre_demandante = @pvc_nombres,  
             agr_conceptos_base = @pch_agr_conceptos,  
             concepto_base = @psi_cnc_base,  
             quinta_parte = @pti_quinta_parte,   
             monto_total = @pdc_monto_total,  
             porcentaje = @pdc_porcentaje,  
             cuota_fija = @pdc_cuota_fija,  
             saldo_actual = @pdc_saldo_actual,
	         oficina_origen = @pch_ofOrigen,  --agregado DCRP Agosto21/2003
             oficina_destino = @pch_ofDestino,
             ciudad_pago = @pch_ciudad_pago,
	         porcentaje_aumento = @pti_porcentaje_aum,
	         valor_aumento = @pti_valor_aum,
             mes_aumento = @pti_mes_aum,
             anio_desde = @pin_anio_desde
      WHERE  
            compania = @pch_compania And  
            trabajador = @pch_trabajador And  
            concepto = @psi_concepto And  
            secuencia = @pti_secuencia  
    END  

    UPDATE fdt_embargos SET cuenta = null WHERE cuenta = 0
END  
GO
GRANT EXECUTE ON dbo.sp_fdt_crea_embargo TO PUBLIC
GO
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      ***/
/*********************************************************************/
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))
        )

    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 */
            null,    		/* secuencia */
            @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
IF OBJECT_ID('dbo.sp_fdt_incorpora_embargos_ns') IS NOT NULL
   DROP PROCEDURE dbo.sp_fdt_incorpora_embargos_ns
GO
CREATE PROCEDURE dbo.sp_fdt_incorpora_embargos_ns  
(  
    @pch_compania        char(4),  
    @psi_id_calendario   smallint,  
    @pch_clase_nomina    char(2),  
    @pch_trabajador      char(10),  
    @pvc_usuario         varchar(30),  
    @pdt_fecha_hoy       smalldatetime  
)  
AS  
/*********************************************************************/  
/*** Modulo:      Modulo Fiscal ADAM v3 - Embargos                 ***/  
/*** Descripcion: Incorpora embargos a la nómina                   ***/  
/*** Autor:   Juan Carlos Leguizamon                               ***/  
/*** Fecha:   Abril 23 de 2002                                     ***/  
-- Revisiones:   
-- Sept.01/04.   
-- Sept.02/04. Incorporar el saldo actual en el factor_03 (implica   
-- variable para que la política halle si debe utilizar "quinta parte"  
-- Junio 29/06.  Tener en cuenta nueva tabla fdt_embargos_tipo_nom ***/  
/*********************************************************************/  
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),  
    @vch_tipo_nomina   char(2)  
BEGIN  
    IF EXISTS (SELECT 1 FROM cal_proc_cias WHERE compania = @pch_compania AND id_calendario = @psi_id_calendario AND sit_periodo = 2)  
    BEGIN  
        RAISERROR ('El periodo está cerrado', 16, 1)  
        RETURN  
    END  
  
    /* Hallar el Tipo de Nómina */  
    SELECT @vch_tipo_nomina = tipo_nomina FROM calendario_procesos  
    WHERE id_calendario = @psi_id_calendario  
  
    /* Eliminar las transacciones ya generadas por este incorpora */  
    DELETE  
        transacciones_ns  
    WHERE  
        compania = @pch_compania And  
        clase_nomina = @pch_clase_nomina And  
        id_calendario = @psi_id_calendario 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 = @vch_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 = @vch_tipo_nomina  
    WHERE  
        e.compania = @pch_compania And  
        tg.clase_nomina = @pch_clase_nomina And  
        e.situacion = 1 And  
        (  
         (e.trabajador = @pch_trabajador And IsNull(LTrim(RTrim(@pch_trabajador)), '') <> '') OR  
         (IsNull(LTrim(RTrim(@pch_trabajador)), '') = '')  
        )   
  
    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'  
  
        SET @vch_referencia = ISNULL(@vch_referencia, '')  
          
        EXEC sp_alta_transacciones_ns  
            @pch_compania,  
            @pch_clase_nomina,  
            @psi_id_calendario,  
            @csi_concepto,  
            @cch_trabajador,  
            @vch_referencia,   /* referencia */  
            NULL,      /* secuencia */  
            @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 */  
            9,      /* origen_transaccion */  
            @pvc_usuario,  /* usuario_registro */  
            @pdt_fecha_hoy, /* fecha_registro */  
            null,      /* usuario_proceso */  
            null,  /* fecha_proceso */  
            null,      /* usuario_cambio */  
            null,      /* fecha_cambio */  
            1,      /* sit_transaccion */  
            1          /* checa bajas del periodo */  
  
        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_ns TO PUBLIC
GO
IF OBJECT_ID('dbo.vw_fdt_embargos') IS NOT NULL
    DROP VIEW dbo.vw_fdt_embargos
GO
CREATE VIEW dbo.vw_fdt_embargos
AS
SELECT
    E.compania, D.nombre_cia, 
    D.registro_fiscal, 
    T.clave_unica cedula, E.trabajador, 
    ltrim(rtrim(dbo.fn_Primer_Apellido(T.nombre))) + ' ' + 
    ltrim(rtrim(dbo.fn_Segundo_Apellido(T.nombre))) As Apellidos,  
    ltrim(rtrim(dbo.fn_Primer_Nombre(T.nombre))) + ' ' +  
    ltrim(rtrim(dbo.fn_Segundo_Nombre(T.nombre))) As Nombres,  
    E.concepto, C.descripcion, E.secuencia, 
    E.fecha_alta, E.fecha_baja, E.situacion, E.consecutivo_oficina,
    E.oficina_origen, E.oficina_destino, E.clase_deposito,
    E.numero_expediente, E.codigo_juzgado, E.banco, E.cuenta,
    E.tipo_id_demandante, E.id_demandante, E.apellido_demandante, 
    E.nombre_demandante, E.agr_conceptos_base, E.concepto_base,
    base = CASE IsNull(E.concepto_base, 0) WHEN 0 THEN E.agr_conceptos_base ELSE Convert(varchar,E.concepto_base) END,
    E.quinta_parte, E.monto_total, E.saldo_actual, E.porcentaje, E.cuota_fija, E.ciudad_pago, E.porcentaje_aumento,
    E.valor_aumento, E.mes_aumento, E.anio_desde
FROM 
    fdt_embargos E, trabajadores T, conceptos C, companias D
WHERE
    E.compania = D.compania And
    E.trabajador = T.trabajador And
    E.concepto = C.concepto
GO
GRANT SELECT ON vw_fdt_embargos TO PUBLIC
GO
