ALTER TABLE fco_diagnosticos ALTER COLUMN descripcion varchar(255) NOT NULL
GO
update fdt_parametros set descripcion = 'Método para obtener Porcentaje de Riesgos'
where parametro = 'autoliq' and secuencia = 33;
GO
IF OBJECT_ID('dbo.vw_fco_companias') IS NOT NULL
    DROP VIEW dbo.vw_fco_companias
GO
CREATE VIEW dbo.vw_fco_companias  
AS  
SELECT  
 C.compania,  
 registro_fiscal,  
 C.nombre_cia,  
 ISNULL(C.domicilio,' ') domicilio,   
 ISNULL(C.telefono,' ') telefono,   
 ISNULL(A.cod_dpto,'11') cod_dpto,   
 ISNULL(A.cod_ciudad,'001') cod_ciudad,   
 ISNULL(A.fax,' ') fax,   
 ISNULL(A.nit_ARP,'000000000-0') nit_ARP,   
 ISNULL(A.nombre_ARP,' ') nombre_ARP,   
 ISNULL(A.clase_aportante,'G') clase_aportante,   
 ISNULL(A.forma_presentacion,'U') forma_presentacion,   
 ISNULL(A.nro_patronal,' ') nro_patronal,  
 ISNULL(A.nombre_retenedor, ' ') pagador_nombre,  
 ISNULL(A.cedula_retenedor, ' ') pagador_id,  
 ISNULL(A.agencias, ' ') agencias,  
 ISNULL(A.cod_admon, ' ') cod_admon,
 isnull(d.nombre, ' ') nom_dpto,
 isnull(m.nombre, ' ') nom_ciudad
FROM  
 companias C
LEFT JOIN fco_cias_datos_adi A ON C.compania = A.compania  
LEFT JOIN fco_departamentos d ON d.codigo = a.cod_dpto
LEFT JOIN fco_ciudades m ON m.cod_dpto = d.codigo and m.codigo = a.cod_ciudad
GO
GRANT ALL ON vw_fco_companias TO PUBLIC
GO
if not exists (select 1 from fdt_parametros where pais = 'COL' and compania = '0' and parametro = 'autoliq' and secuencia = 48)
    insert into fdt_parametros (pais, compania, parametro, secuencia, descripcion, dato, tipo, campo) values ('COL', '0', 'autoliq',48,'Variable % aporte salud colombianos residentes en el exterior',50,8,0);
go
IF OBJECT_ID('dbo.vw_fco_hist_traslados_sena') IS NOT NULL
    DROP VIEW dbo.vw_fco_hist_traslados_sena
GO
CREATE VIEW dbo.vw_fco_hist_traslados_sena
AS
SELECT compania, trabajador, YEAR(fecha_alta) anio, MONTH(fecha_alta) mes
FROM hist_agrupaciones h
WHERE agrupacion = 'TIPO_COTIZ'
AND dato = '19'
AND EXISTS
(SELECT 1 FROM hist_agrupaciones x
 WHERE x.compania = h.compania AND x.agrupacion = h.agrupacion
 AND x.trabajador = h.trabajador 
 AND x.fecha_baja = h.fecha_alta
 AND x.dato = '12')
GO
GRANT ALL ON vw_fco_hist_traslados_sena TO PUBLIC
GO
IF OBJECT_ID('dbo.vw_fco_ausentismos') IS NOT NULL
    DROP VIEW dbo.vw_fco_ausentismos
GO
CREATE VIEW dbo.vw_fco_ausentismos
AS
SELECT 
    a.trabajador, 
    nombre = convert(varchar(60), replace(replace(t.nombre, '/', ' '), '  ', ' ')),
    tipo_ausentismo = b.descripcion,
    a.observaciones,
    cargo = (SELECT r.dato FROM rel_trab_agr r 
             WHERE r.compania = a.compania AND r.trabajador = a.trabajador AND r.agrupacion = 'CARGO'),
    cargo_des = (SELECT d.descripcion FROM rel_trab_agr r INNER JOIN datos_agr_trab d ON r.agrupacion = d.agrupacion AND r.dato = d.dato
             WHERE r.compania = a.compania AND r.trabajador = a.trabajador AND r.agrupacion = 'CARGO'),
    a.fecha_registro, a.usuario_registro, 
    a.fecha_inicio, fecha_pago, fecha_fin,
    a.dias,
    a.diagnostico,
    diagnostico_des = (SELECT x.descripcion FROM fco_diagnosticos x WHERE x.diagnostico = a.diagnostico)
FROM fco_ausentismos a
INNER JOIN trabajadores t ON a.trabajador = t.trabajador
LEFT JOIN criterios_valores_col b ON a.tipo = b.item AND b.campo = 'tipo_ausentismo'
GO
GRANT SELECT ON dbo.vw_fco_ausentismos TO PUBLIC
GO
IF EXISTS (SELECT 1 FROM dbo.sysobjects WHERE ID = OBJECT_ID(N'[dbo].[sp_fco_crea_ausentismo]') 
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
   DROP PROCEDURE dbo.sp_fco_crea_ausentismo
GO
CREATE PROCEDURE dbo.sp_fco_crea_ausentismo
(
    @pch_compania char(4),
    @pin_id_ausentismo int,
    @pch_trabajador char(10),
    @psi_concepto smallint,
    @pti_tipo tinyint,
    @pdt_inicio smalldatetime,
    @pdt_causacion smalldatetime,
    @pdt_pago smalldatetime,
    @pdt_fin smalldatetime,
    @psi_dias smallint,
    @pti_tipo_dias tinyint,
    @pvc_diagnostico varchar(5),
    @pvc_observaciones varchar(1000),
    @psi_randomico smallint,
    @pin_prorroga  int,  --agregado DCRP Agosto25/2003. Puede venir nulo
    @pde_valor_ibc  decimal(19,6),
    @pti_calculo_ibc decimal(19,6)
)
AS
DECLARE
    @vin_id_ausentismo int
BEGIN

    IF @pti_tipo = 4  --PRORROGA 
		BEGIN
			 IF NOT EXISTS(SELECT 1 
					          FROM fco_ausentismos
					          WHERE compania = @pch_compania   AND
					          trabajador = @pch_trabajador AND
					          id_ausentismo = @pin_prorroga AND
					          concepto = @psi_concepto AND
					          tipo <> 4)
			 BEGIN
					RAISERROR 206800 'El registro a prorrogarar en [FCO_AUSENTISMOS] no existe.'
          RETURN;
       END
    END

    IF @psi_randomico = 0 --UPDATE
        UPDATE fco_ausentismos
        SET concepto = @psi_concepto,
            tipo = @pti_tipo,
            fecha_inicio = @pdt_inicio,
            fecha_causacion = @pdt_causacion,
            fecha_pago = @pdt_pago,
            fecha_fin = @pdt_fin,
            dias = @psi_dias,
            tipo_dias = @pti_tipo_dias,
            diagnostico = @pvc_diagnostico,
            observaciones = @pvc_observaciones,
            id_origen = @pin_prorroga,
            valor_ibc = @pde_valor_ibc,
            calculo_ibc = @pti_calculo_ibc            
        WHERE
            compania = @pch_compania And
            id_ausentismo = @pin_id_ausentismo
    ELSE
    BEGIN
        BEGIN TRAN

        SELECT @vin_id_ausentismo = IsNull(id_ausentismo,0) + 1     
        FROM fco_ausentismos_id
        WHERE compania = @pch_compania

        IF IsNull(@vin_id_ausentismo, 0) = 0
        BEGIN
            SET @vin_id_ausentismo = 1
            INSERT INTO fco_ausentismos_id VALUES (@pch_compania, 1)
        END
        ELSE        
            UPDATE fco_ausentismos_id
            SET id_ausentismo = @vin_id_ausentismo
            WHERE compania = @pch_compania
        

        INSERT INTO fco_ausentismos 
        (compania, id_ausentismo, trabajador, concepto, tipo, fecha_inicio, fecha_causacion, fecha_pago, fecha_fin, dias, tipo_dias, diagnostico, observaciones, id_origen, valor_ibc, calculo_ibc)
        VALUES
        (
            @pch_compania,
            @vin_id_ausentismo,
            @pch_trabajador,
            @psi_concepto,
            @pti_tipo,
            @pdt_inicio,
            @pdt_causacion,
            @pdt_pago,
            @pdt_fin,
            @psi_dias,
            @pti_tipo_dias,
            @pvc_diagnostico,
            @pvc_observaciones,
            @pin_prorroga,
            @pde_valor_ibc,
            @pti_calculo_ibc
        )

        DELETE fco_ausentismos_id_as
        COMMIT TRAN        

        INSERT INTO fco_ausentismos_id_as VALUES (@psi_randomico, @vin_id_ausentismo)

    END
END
GO
GRANT EXECUTE ON sp_fco_crea_ausentismo TO Public
GO
IF OBJECT_ID('dbo.vw_fco_integrada_rt02') IS NOT NULL
    DROP VIEW dbo.vw_fco_integrada_rt02
GO
CREATE VIEW dbo.vw_fco_integrada_rt02
AS
/*************************************************************************/
-- Modulo Fiscal Colombiano 2.0 ADAM V3
-- Descripcion: Archivo Plano Planilla Integrada Registro Tipo 2
-- Autor: Juan Carlos Leguizamon
-- Fecha: Junio 2005
-- Revisiones:
/*************************************************************************/
SELECT
    compania, anio, mes, sucursal, trabajador, secuencia, 
    registro2 =
    '02' + secuencia + tipo_documento + CONVERT(char(16), nro_id) + 
    RIGHT('00' + RTRIM(tipo_cotizante), 2) + 
    RIGHT('00' + RTRIM(subtipo_cotizante), 2) + 
    extranjero_no_pension + residente_en_exterior + departamento + municipio +
    dbo.fn_fco_valida_nombre(CONVERT(char(20), LTRIM(REPLACE(primer_apellido, '  ', ' ')))) + -- JCL Ajuste Junio 21/06
    dbo.fn_fco_valida_nombre(CONVERT(char(30), LTRIM(REPLACE(segundo_apellido, '  ', ' ')))) + -- JCL Ajuste Junio 21/06
    dbo.fn_fco_valida_nombre(CONVERT(char(20), LTRIM(REPLACE(primer_nombre, '  ', ' ')))) + -- JCL Ajuste Junio 21/06
    dbo.fn_fco_valida_nombre(CONVERT(char(30), LTRIM(REPLACE(segundo_nombre, '  ', ' ')))) + -- JCL Ajuste Junio 21/06
    nov_ING	+ nov_RET + nov_TDE + nov_TAE + nov_TDP + nov_TAP + nov_VSP + nov_VTE +
    nov_VST + nov_SLN + nov_IGE + nov_LMA + nov_VAC + nov_AVP + nov_VCT + 
    RIGHT('00' + ltrim(rtrim(nov_IRP)), 2) +
    dbo.fn_fco_cod_super('AFP', cod_AFP) + 
    dbo.fn_fco_cod_super('AFP', cod_AFP_Tras) + -- JCL Ajuste Oct-09-06
    dbo.fn_fco_cod_super('EPS', cod_EPS) + 
    dbo.fn_fco_cod_super('EPS', cod_EPS_Tras) + -- JCL Ajuste Oct-09-06
    dbo.fn_fco_cod_super('CCF', cod_CCF) + 
    RIGHT('00' + RTRIM(dias_AFP), 2) + 
    RIGHT('00' + RTRIM(dias_EPS), 2) + 
    RIGHT('00' + RTRIM(dias_ARP), 2) + 
    RIGHT('00' + RTRIM(dias_CCF), 2) + 
    RIGHT('000000000' + RTRIM(salario), 9) + integral + 
    RIGHT('000000000' + RTRIM(IBC_AFP), 9) +
    RIGHT('000000000' + RTRIM(IBC_EPS), 9) +
    RIGHT('000000000' + RTRIM(IBC_ARP), 9) +
    RIGHT('000000000' + RTRIM(IBC_CCF), 9) +
    LEFT(RTRIM(tarifa_AFP) + '0000000', 7) + -- JCL Ajuste Junio 21/06
    RIGHT('000000000' + RTRIM(aporte_AFP), 9) + 
    RIGHT('000000000' + RTRIM(voluntario_AFP), 9) + 
    RIGHT('000000000' + RTRIM(voluntario_AFP_cia), 9) + 
    RIGHT('000000000' + RTRIM(aporte_total_AFP), 9) + 
    RIGHT('000000000' + RTRIM(aporte_FSP), 9) + 
    RIGHT('000000000' + RTRIM(aporte_FSP_subsistencia), 9) + 
    RIGHT('000000000' + RTRIM(valor_no_retenido), 9) + 
    LEFT(RTRIM(tarifa_EPS) + '0000000', 7) + -- JCL Ajuste Junio 21/06
    RIGHT('000000000' + RTRIM(aporte_EPS), 9) + 
    RIGHT('000000000' + RTRIM(UPC_adicional), 9) + 
    CONVERT(char(15), nro_aut_IGE) + 
    RIGHT('000000000' + RTRIM(vlr_aut_IGE), 9) + 
    CONVERT(char(15), nro_aut_LMA) +
    RIGHT('000000000' + RTRIM(vlr_aut_LMA), 9) + 
    LEFT(RTRIM(tarifa_ARP) + '000000000', 9) + -- JCL Ajuste Junio 21/06
    RIGHT('000000000' + RTRIM(centro_trabajo), 9) +  + 
    RIGHT('000000000' + RTRIM(aporte_ARP), 9) + 
    LEFT(RTRIM(tarifa_CCF) + '0000000', 7) + -- JCL Ajuste Junio 21/06
    RIGHT('000000000' + RTRIM(aporte_CCF), 9) + 
    LEFT(RTRIM(tarifa_SENA) + '0000000', 7) + -- JCL Ajuste Junio 21/06
    RIGHT('000000000' + RTRIM(aporte_SENA), 9) + 
    LEFT(RTRIM(tarifa_ICBF) + '0000000', 7) + -- JCL Ajuste Junio 21/06
    RIGHT('000000000' + RTRIM(aporte_ICBF), 9) + 
    LEFT(RTRIM(tarifa_ESAP) + '0000000', 7) + -- JCL Ajuste Junio 21/06
    RIGHT('000000000' + RTRIM(aporte_ESAP), 9) + 
    LEFT(RTRIM(tarifa_MEdu) + '0000000', 7) + -- JCL Ajuste Junio 21/06
    RIGHT('000000000' + RTRIM(aporte_MEdu), 9)
FROM fco_integrada_det
WHERE eliminada = 0
AND aporte_EPS + aporte_AFP + aporte_CCF + aporte_ARP <> 0
GO
GRANT SELECT ON dbo.vw_fco_integrada_rt02 TO PUBLIC
GO
IF OBJECT_ID('dbo.vw_fco_procesos_pi') IS NOT NULL
    DROP VIEW dbo.vw_fco_procesos_pi
GO
CREATE VIEW dbo.vw_fco_procesos_pi  
AS  
SELECT a.compania, a.anio, a.mes, a.sucursal,   
CASE WHEN a.sucursal = '' THEN '(Consolidado)' ELSE ISNULL(rtrim(a.sucursal) + '-' + rtrim(suc.descripcion), '(Consolidado)') END suc_des,   
CONVERT(tinyint,procesar) procesar, sit_periodo =   
ISNULL((SELECT MAX(sit_periodo) FROM fco_integrada_cab x  
        WHERE x.compania = a.compania AND x.anio = a.anio AND x.mes = a.mes), 1)  
FROM fco_procesos_pi a  
LEFT JOIN vw_fco_sucursales suc ON suc.compania = a.compania AND suc.sucursal = a.sucursal  
AND  
(   (a.sucursal = '')   
 OR (a.sucursal IN   
     (SELECT sucursal FROM vw_fco_sucursales_cia   
      WHERE (   (clase_nomina = '--')  
             OR (clase_nomina IN (SELECT clase_nomina FROM rel_usu_clase_nom  
                                  WHERE usuario = SYSTEM_USER))  
            )   
      )  
     )  
)  
GO
GRANT SELECT ON dbo.vw_fco_procesos_pi TO PUBLIC
GO
IF OBJECT_ID('dbo.vw_fco_integrada_det') IS NOT NULL
    DROP VIEW dbo.vw_fco_integrada_det
GO
CREATE VIEW dbo.vw_fco_integrada_det
AS
SELECT 
    a.compania, a.anio, a.mes, a.sucursal, a.trabajador, a.secuencia, a.tipo_documento, a.nro_id, a.digito_chequeo, 
    a.tipo_cotizante, a.subtipo_cotizante, a.extranjero_no_pension, a.residente_en_exterior, a.departamento, a.municipio, 
    primer_apellido = dbo.fn_fco_valida_nombre(CONVERT(char(20), LTRIM(REPLACE(a.primer_apellido, '  ', ' ')))),  -- JCL Ajuste Agosto 25/06
    segundo_apellido = dbo.fn_fco_valida_nombre(CONVERT(char(30), LTRIM(REPLACE(a.segundo_apellido, '  ', ' ')))), -- JCL Ajuste Agosto 25/06
    primer_nombre = dbo.fn_fco_valida_nombre(CONVERT(char(20), LTRIM(REPLACE(a.primer_nombre, '  ', ' ')))), -- JCL Ajuste Agosto 25/06
    segundo_nombre = dbo.fn_fco_valida_nombre(CONVERT(char(30), LTRIM(REPLACE(a.segundo_nombre, '  ', ' ')))), -- JCL Ajuste Agosto 25/06
    a.nov_ING, a.nov_RET, a.nov_TDE, a.nov_TAE, a.nov_TDP, a.nov_TAP, a.nov_VSP, a.nov_VTE, a.nov_VST, 
    a.nov_SLN, a.nov_IGE, a.nov_LMA, a.nov_VAC, a.nov_AVP, a.nov_VCT, a.nov_IRP, a.cod_AFP, a.cod_AFP_Tras, 
    a.cod_EPS, a.cod_EPS_Tras, a.cod_CCF, a.dias_AFP, a.dias_EPS, a.dias_ARP, a.dias_CCF, a.salario, a.integral, 
    a.IBC_AFP, a.IBC_EPS, a.IBC_ARP, a.IBC_CCF, 
    a.tarifa_AFP, a.aporte_AFP, a.voluntario_AFP, a.voluntario_AFP_cia, a.aporte_total_AFP, a.aporte_FSP, aporte_FSP_subsistencia, 
    a.valor_no_retenido, a.tarifa_EPS, a.aporte_EPS, a.UPC_adicional, a.nro_aut_IGE, a.vlr_aut_IGE, 
    a.nro_aut_LMA, a.vlr_aut_LMA, a.tarifa_ARP, a.centro_trabajo, a.aporte_ARP, 
    a.tarifa_CCF, a.aporte_CCF, a.tarifa_SENA, a.aporte_SENA, a.tarifa_ICBF, a.aporte_ICBF, 
    a.tarifa_ESAP, a.aporte_ESAP, a.tarifa_MEdu, a.aporte_MEdu, a.origen, a.eliminada,
    ISNULL(b.descripcion, '') AS tipo_cotizante_des,

    LTRIM((SELECT eps.cod_super FROM fco_administradoras eps 
                           WHERE eps.tipo = 'EPS' AND eps.codigo = a.cod_EPS)) AS eps_cod_super,
    (SELECT eps.descripcion FROM vw_fco_administradoras eps 
     WHERE eps.compania = a.compania AND eps.tipo = 'EPS' AND eps.codigo = a.cod_EPS) AS eps_nombre,

    LTRIM((SELECT afp.cod_super FROM fco_administradoras afp 
                           WHERE afp.tipo = 'AFP' AND afp.codigo = a.cod_AFP)) AS afp_cod_super,
    (SELECT afp.descripcion FROM vw_fco_administradoras afp
     WHERE afp.compania = a.compania AND afp.tipo = 'AFP' AND afp.codigo = a.cod_AFP) AS afp_nombre,

    LTRIM((SELECT ccf.cod_super FROM fco_administradoras ccf
                           WHERE ccf.tipo = 'CCF' AND ccf.codigo = a.cod_CCF)) AS ccf_cod_super,
    (SELECT ccf.descripcion FROM vw_fco_administradoras ccf
     WHERE ccf.compania = a.compania AND ccf.tipo = 'CCF' AND ccf.codigo = a.cod_CCF) AS ccf_nombre,

    LTRIM((SELECT neps.cod_super FROM fco_administradoras neps 
                           WHERE neps.tipo = 'EPS' AND neps.codigo = a.cod_EPS_Tras)) AS neps_cod_super,
    (SELECT neps.descripcion FROM vw_fco_administradoras neps 
     WHERE neps.compania = a.compania AND neps.tipo = 'EPS' AND neps.codigo = a.cod_EPS_Tras) AS neps_nombre,

    LTRIM((SELECT nafp.cod_super FROM fco_administradoras nafp 
                           WHERE nafp.tipo = 'AFP' AND nafp.codigo = a.cod_AFP_Tras)) AS nafp_cod_super,
    (SELECT nafp.descripcion FROM vw_fco_administradoras nafp
     WHERE nafp.compania = a.compania AND nafp.tipo = 'AFP' AND nafp.codigo = a.cod_AFP_Tras) AS nafp_nombre,

    (SELECT ctr.descripcion FROM vw_fco_centros_trabajo ctr
     WHERE ctr.compania = a.compania AND ctr.codigo_reporte = rtrim(a.centro_trabajo)) AS ctr_nombre,

    suc.descripcion AS suc_nombre

FROM fco_integrada_det a
LEFT JOIN criterios_valores_col b ON b.campo = 'tipo_cotizante' AND b.item = a.tipo_cotizante
LEFT JOIN vw_fco_sucursales suc ON suc.compania = a.compania AND suc.sucursal = a.sucursal
WHERE aporte_EPS + aporte_AFP + aporte_CCF + aporte_ARP <> 0
-- CONDICIONES DE SEGURIDAD
AND
(
    (origen <> 1) OR
    (origen = 1
        AND EXISTS (SELECT 1 FROM aut_companias x WHERE x.compania = a.compania AND x.usuario = SYSTEM_USER)
        AND EXISTS (SELECT 1 FROM trabajadores_grales tg INNER JOIN rel_usu_clase_nom cn ON tg.clase_nomina = cn.clase_nomina
                    WHERE tg.compania = a.compania AND tg.trabajador = a.trabajador AND cn.usuario = SYSTEM_USER)
        AND NOT EXISTS (SELECT 1 FROM rel_trab_agr rta INNER JOIN rel_usu_agr_trab x ON rta.agrupacion = x.agrupacion AND rta.dato = x.dato
                        WHERE rta.compania = a.compania AND rta.trabajador = a.trabajador AND x.usuario = SYSTEM_USER)
    )
)
GO
GRANT SELECT ON dbo.vw_fco_integrada_det TO PUBLIC
GO
IF OBJECT_ID('dbo.sp_fdt_cierre_embargos_ni') IS NOT NULL
    DROP PROCEDURE dbo.sp_fdt_cierre_embargos_ni
GO
CREATE PROCEDURE dbo.sp_fdt_cierre_embargos_ni
(  
    @pch_compania char(4),  
    @pch_trabajador char(10),  
    @pch_tipo_nom char(2),  
    @psi_anio_acum smallint,  
    @pti_mes_acum tinyint,  
    @psi_num_liq smallint  
)  
/*****************************************************************/  
/*** Modulo:      Módulo Fiscal Colombiano - Embargos          ***/  
/*** Descripcion: Actualiza saldos y controla situacion en NI  ***/  
/*** Autor:       Juan Carlos Leguizamon                       ***/  
/*** Fecha:       Sep-22-06                                    ***/  
/*****************************************************************/  
AS  
DECLARE  
    @vdt_fecha_pago    smalldatetime  
BEGIN  
    SELECT @vdt_fecha_pago = fecha_liquidacion  
    FROM liquidaciones_enc  
    WHERE compania = @pch_compania  
      AND tipo_nomina = @pch_tipo_nom  
      AND anio_acumular = @psi_anio_acum  
      AND mes_acumular = @pti_mes_acum  
      AND numero_liquidacion = @psi_num_liq  
      AND trabajador = @pch_trabajador  
  
    SELECT con = concepto, sec = factor_02, imp = sum(importe)  
    INTO #embs  
    FROM liquidaciones_det a  
    WHERE compania = @pch_compania  
      AND tipo_nomina = @pch_tipo_nom  
      AND anio_acumular = @psi_anio_acum  
      AND mes_acumular = @pti_mes_acum  
      AND numero_liquidacion = @psi_num_liq  
      AND trabajador = @pch_trabajador  
      AND EXISTS (SELECT 1 FROM fdt_embargos x  
                  WHERE a.compania = x.compania AND a.trabajador = x.trabajador  
                    AND a.concepto = x.concepto AND x.monto_total > 0 and x.situacion = 1)  
    GROUP BY concepto, factor_02  
  
    UPDATE fdt_embargos  
    SET saldo_actual = saldo_actual - imp  
    FROM #embs  
    WHERE concepto = con   
      AND secuencia = sec  
      AND compania = @pch_compania  
      AND trabajador = @pch_trabajador  
      AND monto_total > 0  
      AND situacion = 1  
  
    DROP TABLE #embs  
  
    UPDATE  
        fdt_embargos  
    SET  
        saldo_actual = 0, situacion = 2, fecha_baja = @vdt_fecha_pago  
    WHERE  
        compania = @pch_compania And  
        monto_total > 0 And  
        situacion = 1 And  
        saldo_actual <= 0  
END  
GO
GRANT EXECUTE ON dbo.sp_fdt_cierre_embargos_ni TO PUBLIC
GO
IF OBJECT_ID('dbo.sp_fdt_cierre_embargos_ns') IS NOT NULL
    DROP PROCEDURE dbo.sp_fdt_cierre_embargos_ns
GO
CREATE PROCEDURE dbo.sp_fdt_cierre_embargos_ns
(  
    @pch_compania      char(4),  
    @psi_id_calendario smallint  
)  
/*********************************************************************/  
/*** Modulo:      Módulo Fiscal Colombiano - Embargos              ***/  
/*** Descripcion: Actualiza saldos y controla situacion            ***/  
/*** Autor:   Juan Carlos Leguizamon                           ***/  
/*** Fecha:   Junio 5 de 2002                                  ***/  
/*** Revisiones: Sep-22-06 Por si el mismo embargo queda en mas de un registro ***/  
/*********************************************************************/  
AS  
DECLARE  
    @vdt_fecha_pago    smalldatetime  
BEGIN  
    SELECT  
        @vdt_fecha_pago = fecha_pago  
    FROM  
        calendario_procesos  
    WHERE  
        id_calendario = @psi_id_calendario  
  
    SELECT tra = trabajador, con = concepto, sec = factor_02, imp = sum(importe)  
    INTO #embargos  
    FROM transacciones_ns a  
    WHERE compania = @pch_compania  
      AND id_calendario = @psi_id_calendario  
      AND EXISTS (SELECT 1 FROM fdt_embargos x  
                  WHERE x.compania = a.compania   
                    AND x.trabajador = a.trabajador  
                    AND x.secuencia = a.factor_02  
                    AND x.monto_total > 0  
                    AND x.situacion = 1)  
   GROUP BY trabajador, concepto, factor_02  
  
    UPDATE fdt_embargos  
    SET saldo_actual = saldo_actual - imp  
    FROM #embargos  
    WHERE trabajador = tra  
      AND concepto = con  
      AND secuencia = sec  
      AND compania = @pch_compania  
      AND monto_total > 0  
      AND situacion = 1  
  
    DROP TABLE #embargos  
  
    UPDATE fdt_embargos  
    SET saldo_actual = 0, situacion = 2, fecha_baja = @vdt_fecha_pago  
    WHERE compania = @pch_compania   
      AND monto_total > 0  
      AND situacion = 1  
      AND saldo_actual <= 0  
END  
GO
GRANT EXECUTE ON dbo.sp_fdt_cierre_embargos_ns TO PUBLIC
GO
IF OBJECT_ID('dbo.sp_fdt_reapertura_embargos_ni') IS NOT NULL
    DROP PROCEDURE dbo.sp_fdt_reapertura_embargos_ni
GO
CREATE PROCEDURE dbo.sp_fdt_reapertura_embargos_ni
(  
    @pch_compania char(4),  
    @pch_trabajador char(10),  
    @pch_tipo_nom char(2),  
    @psi_anio_acum smallint,  
    @pti_mes_acum tinyint,  
    @psi_num_liq smallint  
)  
/*****************************************************************/  
/*** Modulo:      Módulo Fiscal Colombiano - Embargos          ***/  
/*** Descripcion: Actualiza saldos y controla situacion en NI  ***/  
/*** Autor:       Juan Carlos Leguizamon                       ***/  
/*** Fecha:       Sep-22-06                                    ***/  
/*****************************************************************/  
AS  
BEGIN  
    SELECT con = concepto, sec = factor_02, imp = sum(importe)  
    INTO #embs  
    FROM liquidaciones_det a  
    WHERE compania = @pch_compania  
      AND tipo_nomina = @pch_tipo_nom  
      AND anio_acumular = @psi_anio_acum  
      AND mes_acumular = @pti_mes_acum  
      AND numero_liquidacion = @psi_num_liq  
      AND trabajador = @pch_trabajador  
      AND EXISTS (SELECT 1 FROM fdt_embargos x  
                  WHERE a.compania = x.compania AND a.trabajador = x.trabajador  
                    AND a.concepto = x.concepto AND x.monto_total > 0 and x.situacion = 1)  
    GROUP BY concepto, factor_02  
  
    UPDATE fdt_embargos  
    SET saldo_actual = saldo_actual + imp  
    FROM #embs  
    WHERE concepto = con   
      AND secuencia = sec  
      AND compania = @pch_compania  
      AND trabajador = @pch_trabajador  
      AND monto_total > 0  
  
    DROP TABLE #embs  
  
    UPDATE  
        fdt_embargos  
    SET  
        situacion = 1, fecha_baja = NULL  
    WHERE  
        compania = @pch_compania And  
        monto_total > 0 And  
        situacion = 2 And  
        saldo_actual > 0  
END  
GO
GRANT EXECUTE ON dbo.sp_fdt_reapertura_embargos_ni TO PUBLIC
GO
IF OBJECT_ID('dbo.sp_fdt_reapertura_embargos_ns') IS NOT NULL
    DROP PROCEDURE dbo.sp_fdt_reapertura_embargos_ns
GO
CREATE PROCEDURE dbo.sp_fdt_reapertura_embargos_ns
(  
    @pch_compania      char(4),  
    @psi_id_calendario smallint  
)  
/*********************************************************************/  
/*** Modulo:      Módulo Fiscal Colombiano - Embargos              ***/  
/*** Descripcion: Actualiza saldos y controla situacion            ***/  
/*** Autor:   Juan Carlos Leguizamon                           ***/  
/*** Fecha:   Junio 5 de 2002                                  ***/  
/*** Revisiones: Sep-22-06 Por si el mismo embargo queda en mas de un registro ***/  
/*********************************************************************/  
AS  
BEGIN  
    SELECT tra = trabajador, con = concepto, sec = factor_02, imp = sum(importe)  
    INTO #embargos  
    FROM transacciones_ns a  
    WHERE compania = @pch_compania  
      AND id_calendario = @psi_id_calendario  
      AND EXISTS (SELECT 1 FROM fdt_embargos x  
                  WHERE x.compania = a.compania   
                    AND x.trabajador = a.trabajador  
                    AND x.secuencia = a.factor_02  
                    AND x.monto_total > 0)  
   GROUP BY trabajador, concepto, factor_02  
  
    UPDATE fdt_embargos  
    SET saldo_actual = saldo_actual + imp  
    FROM #embargos  
    WHERE trabajador = tra  
      AND concepto = con  
      AND secuencia = sec  
      AND compania = @pch_compania  
      AND monto_total > 0  
  
    DROP TABLE #embargos  
  
    UPDATE fdt_embargos  
    SET situacion = 1, fecha_baja = NULL  
    WHERE compania = @pch_compania   
      AND monto_total > 0  
      AND situacion = 2  
      AND saldo_actual > 0  
END  
GO
GRANT EXECUTE ON dbo.sp_fdt_reapertura_embargos_ns TO PUBLIC
GO
