IF OBJECT_ID('dbo.sp_var_ailiq_refe') IS NOT NULL
DROP PROCEDURE dbo.sp_var_ailiq_refe
GO
CREATE PROCEDURE dbo.sp_var_ailiq_refe
    @bcalind bit,
    @pch_compania char(4),
    @pch_clase_nomina char(2),
    @psi_id_cal smallint,
    @pch_tipo_nomina char(2),
    @psi_anio smallint,
    @pti_periodo tinyint,
    @pdt_fec_termino smalldatetime,
    @pch_trabajador char(10),
    @psi_concepto smallint,
    @pch_referencia char(10),
    @psi_secuencia smallint, 
    @chsub_var1 varchar(10),
    @chsub_var2	varchar(10),
    @mvar_value	decimal(19,6) OUTPUT, 
    @chvar_value varchar(40) OUTPUT,
    @id_sesion smallint
AS 
/*****************************************************************/
/*** Modulo:      Módulo Fiscal Colombiano ADAM V.3 - Embargos ***/
/*** Descripcion: Halla el valor base en tiempo de cálculo     ***/
/*** Autor:	  Laura Guzman / 2001                          ***/
/*** Revision:    Juan Carlos Leguizamón                       ***/
/*** Fecha:	  Junio 5 2002                                 ***/
/*** Motor:	  SQL Server 7.0	Version interna: 1.00  ***/
/*****************************************************************/
BEGIN 
DECLARE 
    @vdc_valor decimal(19,6), 
    @vvc_clave varchar(10),
    @vvc_varname varchar(40), 
    @vti_status tinyint, 
    @vvc_valor varchar(40), 
    @vch_varclass char(2),
    @vti_flag tinyint,
    @vsi_anio_acumular smallint,
    @vti_mes_acumular tinyint,
    @vch_tipo_nomina char(2),
    @vsi_numero_liquidacion smallint

 
    SELECT @vdc_valor = 0, @mvar_value = 0, @chvar_value = NULL

    IF @pti_periodo > 0
        RETURN

    /*** Se obtiene la información necesaria para la consulta ***/
    SET @vvc_varname = "anio_acumular"
    EXEC sp_varname 
        @vvc_varname, 
        @vdc_valor 		OUTPUT,
	@vvc_valor 		OUTPUT,
	@vch_varclass 		OUTPUT,
	@vti_flag		OUTPUT,
	@vti_status 		OUTPUT,
	@id_sesion
    SET @vsi_anio_acumular = @vdc_valor

    SET @vvc_varname = "mes_acumular"
    EXEC sp_varname 
        @vvc_varname,
	@vdc_valor 		OUTPUT,
	@vvc_valor 		OUTPUT,
	@vch_varclass 		OUTPUT,
	@vti_flag		OUTPUT,
	@vti_status 		OUTPUT,
	@id_sesion
    SET @vti_mes_acumular = @vdc_valor

    SELECT @vvc_varname = "numero_liquidacion"
    EXEC sp_varname 
        @vvc_varname,
	@vdc_valor 		OUTPUT,
	@vvc_valor 		OUTPUT,
	@vch_varclass 		OUTPUT,
	@vti_flag		OUTPUT,
	@vti_status 		OUTPUT,
	@id_sesion
    SET @vsi_numero_liquidacion = @vdc_valor

    SET @vvc_varname = "tipo_nomina"
    EXEC sp_varname 
	@vvc_varname,
	@vdc_valor 		OUTPUT,
	@vvc_valor 		OUTPUT,
	@vch_varclass 		OUTPUT,
	@vti_flag		OUTPUT,
	@vti_status 		OUTPUT,
	@id_sesion
    SET @vch_tipo_nomina = @vvc_valor
        
    SELECT
        @vvc_clave = referencia2
    FROM
        liquidaciones_det
    WHERE
        compania = @pch_compania And
        tipo_nomina = @vch_tipo_nomina And
        anio_acumular = @vsi_anio_acumular And
        concepto = @psi_concepto And
        numero_liquidacion = @vsi_numero_liquidacion And
        trabajador = @pch_trabajador And
        referencia = @pch_referencia And
        secuencia = @psi_secuencia

    IF @vvc_clave = 'A'  -- La base es una agrupación de conceptos
    BEGIN               
        SELECT
            @vdc_valor = Sum(IsNull(Case when signo = '-' then -1*importe else importe end,0))
        FROM
            liquidaciones_det liq, rel_conceptos_agr rca
	WHERE
            liq.compania = rca.compania And liq.concepto = rca.concepto And
            liq.compania = @pch_compania And
            liq.tipo_nomina  = @pch_tipo_nomina And
            liq.anio_acumular = @vsi_anio_acumular And
            liq.numero_liquidacion = @vsi_numero_liquidacion And
            liq.trabajador = @pch_trabajador And
            rca.agr_conceptos = LTrim(RTrim(@pch_referencia))

    END
    ELSE -- La base es un concepto
    BEGIN
        SELECT
            @vdc_valor = Sum(IsNull(importe,0))
        FROM
            liquidaciones_det
	WHERE
            compania = @pch_compania And
            tipo_nomina  = @pch_tipo_nomina And
            anio_acumular = @vsi_anio_acumular And
            numero_liquidacion = @vsi_numero_liquidacion And
            trabajador = @pch_trabajador And
            concepto = LTrim(RTrim(@pch_referencia))
    END


    SELECT @mvar_value = IsNull(@vdc_valor,0)
    RETURN
END
GO
GRANT EXECUTE ON dbo.sp_var_ailiq_refe TO PUBLIC
GO
