USP_KPI_DESIGNATION_REVENUECOUNT_INTERNAL

Returns total count of revenue records for a designation.

Parameters

Parameter Parameter Type Mode Description
@ASOFDATE datetime IN
@TOTAL int INOUT
@DESIGNATIONID uniqueidentifier IN
@APPEALID uniqueidentifier IN
@BUSINESSUNITCODEID uniqueidentifier IN
@APPEALREPORTCODE1ID uniqueidentifier IN
@STARTDATE datetime IN

Definition

Copy


            CREATE procedure dbo.USP_KPI_DESIGNATION_REVENUECOUNT_INTERNAL

            @ASOFDATE datetime,
            @TOTAL int = 0 output,
            @DESIGNATIONID uniqueidentifier,
            @APPEALID uniqueidentifier = null,
            @BUSINESSUNITCODEID uniqueidentifier = null,
            @APPEALREPORTCODE1ID uniqueidentifier = null,
            @STARTDATE datetime = null

            as    

            set nocount on;

            declare @DL1ID uniqueidentifier;
            declare @DL2ID uniqueidentifier;
            declare @DL3ID uniqueidentifier;
            declare @DL4ID uniqueidentifier;
            declare @DL5ID uniqueidentifier;

            select @DL1ID = DESIGNATIONLEVEL1ID,
                    @DL2ID = DESIGNATIONLEVEL2ID,
                    @DL3ID = DESIGNATIONLEVEL3ID,
                    @DL4ID = DESIGNATIONLEVEL4ID,
                    @DL5ID = DESIGNATIONLEVEL5ID
            from dbo.DESIGNATION
            where ID = @DESIGNATIONID;

            with DESIGNATIONS_CTE as (
                select ID 
                from dbo.DESIGNATION D
                where D.DESIGNATIONLEVEL1ID = @DL1ID and
                      (D.DESIGNATIONLEVEL2ID = @DL2ID or @DL2ID is null) and 
                      (D.DESIGNATIONLEVEL3ID = @DL3ID or @DL3ID is null) and 
                      (D.DESIGNATIONLEVEL4ID = @DL4ID or @DL4ID is null) and 
                      (D.DESIGNATIONLEVEL5ID = @DL5ID or @DL5ID is null)
                )

            select @TOTAL = count(distinct R.ID)
                from dbo.REVENUESPLIT RDS
                inner join DESIGNATIONS_CTE D on RDS.DESIGNATIONID = D.ID
                inner join dbo.REVENUE R on R.ID = RDS.REVENUEID
                left join dbo.APPEAL A on R.APPEALID = A.ID
                where
                    (R.DATE >= @STARTDATE or @STARTDATE is null) and
                    (R.DATE <= @ASOFDATE or @ASOFDATE is null) and
                    (A.ID = @APPEALID or @APPEALID is null) and
                    (A.APPEALREPORT1CODEID = @APPEALREPORTCODE1ID or @APPEALREPORTCODE1ID is null) and
                    (A.BUSINESSUNITCODEID = @BUSINESSUNITCODEID or @BUSINESSUNITCODEID is null) and
                    ((R.TRANSACTIONTYPECODE in (1,3)
                    or
                    (R.TRANSACTIONTYPECODE = 0 and RDS.APPLICATIONCODE in (0, 1, 3))));