IF OBJECT_ID('dbo.sp_var_aiper_refe') IS NOT NULL
DROP PROCEDURE dbo.sp_var_aiper_refe  
GO
CREATE PROCEDURE dbo.sp_var_aiper_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)
 
    SELECT @vdc_valor = 0, @mvar_value = 0, @chvar_value = NULL

    IF @pti_periodo = 0
        RETURN

    SELECT
        @vvc_clave = referencia2
    FROM
        transacciones_ns
    WHERE
        compania = @pch_compania And
        clase_nomina = @pch_clase_nomina And
        id_calendario = @psi_id_cal And
        concepto = @psi_concepto 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
            transacciones_ns tns, rel_conceptos_agr rca
	WHERE
            tns.compania = rca.compania And tns.concepto = rca.concepto And
            tns.compania = @pch_compania And
            tns.clase_nomina  = @pch_clase_nomina And
            tns.id_calendario = @psi_id_cal And
            tns.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
            transacciones_ns
	WHERE
            compania = @pch_compania And
            clase_nomina  = @pch_clase_nomina And
            id_calendario = @psi_id_cal And
            concepto = LTrim(RTrim(@pch_referencia)) And
            trabajador = @pch_trabajador 
    END

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