USP_R68_GENERATER68DETAIL

Generates the R68DETAIL records for a given parameter set instance of the R68 business process.

Parameters

Parameter Parameter Type Mode Description
@PROCESSID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN

Definition

Copy


            CREATE procedure dbo.USP_R68_GENERATER68DETAIL
            (
                @PROCESSID uniqueidentifier,
                @CHANGEAGENTID uniqueidentifier = null,
                @CURRENTAPPUSERID uniqueidentifier = null
            )
            as 
            set nocount on;

            declare @IDSETREGISTERID uniqueidentifier
            declare @STARTDATE date
            declare @ENDDATE date
            declare @INCLUDEPOSTEDGIFTS bit
            declare @REFERENCENUMBER nvarchar(20)
            declare @SITESBYREFERENCENUMBER as table(SITEID uniqueidentifier)
            declare @ISADMIN bit
            declare @APPUSER_IN_NONRACROLE bit
            declare @APPUSER_IN_NOSECGROUPROLE bit

            set @ISADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID)

            if @ISADMIN = 0
                set @APPUSER_IN_NONRACROLE = dbo.UFN_SECURITY_APPUSER_IN_NONRACROLE(@CURRENTAPPUSERID)

            if @ISADMIN = 0 and @APPUSER_IN_NOSECGROUPROLE = 0
                set @APPUSER_IN_NOSECGROUPROLE = dbo.UFN_SECURITY_APPUSER_IN_NO_SECURITY_GROUP_ROLE(@CURRENTAPPUSERID)

            select
                @IDSETREGISTERID = IDSETREGISTERID,
                @STARTDATE = STARTDATE,
                @ENDDATE = ENDDATE,
                @INCLUDEPOSTEDGIFTS = INCLUDEPOSTEDGIFTS,
                @REFERENCENUMBER = REFERENCENUMBER
            from dbo.R68
            where ID = @PROCESSID

            insert into @SITESBYREFERENCENUMBER
            select SITEID 
            from dbo.UFN_R68_SITESBYREFERENCENUMBER(@REFERENCENUMBER)

            if @CHANGEAGENTID is null  
                exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

            set nocount off;

            if @IDSETREGISTERID is not null
                begin
                    insert into dbo.R68DETAIL 
                        (R68ID, 
                        REVENUESPLITID, 
                        CONSTITUENTID, 
                        NAME, 
                        DATE
                        AMOUNTRECEIVED, 
                        AMOUNTCLAIMED, 
                        ADDEDBYID, 
                        CHANGEDBYID, 
                        DATEADDED, 
                        DATECHANGED) 
                    select 
                        @PROCESSID
                        rs.ID, 
                        r.CONSTITUENTID, 
                        dbo.UFN_CONSTITUENT_BUILDNAME(r.constituentid), 
                        r.DATE
                        rs.AMOUNT, 
                        rsga.BASETAXCLAIMAMOUNT, 
                        @CHANGEAGENTID
                        @CHANGEAGENTID
                        GETDATE(), 
                        GETDATE() 
                    from dbo.REVENUE r 
                    inner join dbo.REVENUESPLIT rs on r.ID = rs.REVENUEID 
                    inner join dbo.REVENUESPLITGIFTAID rsga on rs.ID = RSGA.id 
                    inner join dbo.UFN_IDSETREADER_GETRESULTS_GUID(@IDSETREGISTERID) as s
                        on rs.ID = s.ID        
                    left join dbo.REVENUEPOSTED rp on rp.ID = r.ID
                    where r.TRANSACTIONTYPECODE = 0
                    and rsga.TAXCLAIMNUMBER = ''
                    and rsga.BASETAXCLAIMAMOUNT > 0
                    and (@STARTDATE is null or r.DATE >= @STARTDATE )
                    and (@ENDDATE is null or r.DATE <= @ENDDATE )
                    and (@INCLUDEPOSTEDGIFTS = 1 or rp.ID is null)
                    and rsga.DECLINESGIFTAID = 0
                    and rsga.RULES_STATUS = 1
                    and rsga.ATTRIBUTES_STATUS = 1 
                    and dbo.UFN_GIFTAIDREVENUESPLIT_GETTAXCLAIMELIGIBILITY(rs.ID) = 'Valid declaration'
                    and exists (
                          select REVSITES.SITEID
                          from dbo.UFN_SITEID_MAPFROM_REVENUESPLITID(rs.ID) REVSITES
                          join @SITESBYREFERENCENUMBER REFSITES on (REVSITES.SITEID = REFSITES.SITEID) or (REVSITES.SITEID is null and REFSITES.SITEID is null)
                          --where (dbo.UFN_APPUSER_ISSYSADMIN(@CHANGEAGENTID) = 1 

                                --or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CHANGEAGENTID, '5F83E4C6-7CAD-4b2c-95A6-506BB18130AB', 4) where SITEID=[REVSITES].[SITEID] or (SITEID is null and [REVSITES].[SITEID] is null)))

                          )
                    -- Record security filter

                    and (@ISADMIN = 1 or 
                        @APPUSER_IN_NONRACROLE = 1 or
                        dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT(@CURRENTAPPUSERID, r.CONSTITUENTID, @APPUSER_IN_NOSECGROUPROLE) = 1
                    -- Site security filter

                    and dbo.UFN_REVENUE_USERHASSITEACCESS(r.ID, @CURRENTAPPUSERID) = 1
                end
            else
                begin
                    insert into dbo.R68DETAIL 
                        (R68ID, 
                        REVENUESPLITID, 
                        CONSTITUENTID, 
                        NAME, 
                        DATE
                        AMOUNTRECEIVED, 
                        AMOUNTCLAIMED, 
                        ADDEDBYID, 
                        CHANGEDBYID, 
                        DATEADDED, 
                        DATECHANGED) 
                    select 
                        @PROCESSID
                        rs.ID, 
                        r.CONSTITUENTID, 
                        dbo.UFN_CONSTITUENT_BUILDNAME(r.constituentid), 
                        r.DATE
                        rs.AMOUNT, 
                        rsga.BASETAXCLAIMAMOUNT, 
                        @CHANGEAGENTID
                        @CHANGEAGENTID
                        GETDATE(), 
                        GETDATE() 
                    from dbo.REVENUE r 
                    inner join dbo.REVENUESPLIT rs on r.ID = rs.REVENUEID 
                    inner join dbo.REVENUESPLITGIFTAID rsga on rs.ID = RSGA.id 
                    left join dbo.REVENUEPOSTED rp on rp.ID = r.ID
                    where r.TRANSACTIONTYPECODE = 0
                    and rsga.TAXCLAIMNUMBER = ''
                    and rsga.BASETAXCLAIMAMOUNT > 0
                    and (@STARTDATE is null or r.DATE >= @STARTDATE )
                    and (@ENDDATE is null or r.DATE <= @ENDDATE )
                    and (@INCLUDEPOSTEDGIFTS = 1 or rp.ID is null)
                    and rsga.DECLINESGIFTAID = 0
                    and rsga.RULES_STATUS = 1
                    and rsga.ATTRIBUTES_STATUS = 1 
                    and dbo.UFN_GIFTAIDREVENUESPLIT_GETTAXCLAIMELIGIBILITY(rs.ID) = 'Valid declaration'
                    and exists (
                          select REVSITES.SITEID
                          from dbo.UFN_SITEID_MAPFROM_REVENUESPLITID(rs.ID) REVSITES
                          join @SITESBYREFERENCENUMBER REFSITES on (REVSITES.SITEID = REFSITES.SITEID) or (REVSITES.SITEID is null and REFSITES.SITEID is null)
                          --where (dbo.UFN_APPUSER_ISSYSADMIN(@CHANGEAGENTID) = 1 

                                --or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CHANGEAGENTID, '5F83E4C6-7CAD-4b2c-95A6-506BB18130AB', 4) where SITEID=[REVSITES].[SITEID] or (SITEID is null and [REVSITES].[SITEID] is null)))

                          )
                    -- Record security filter

                    and (@ISADMIN = 1 or 
                        @APPUSER_IN_NONRACROLE = 1 or
                        dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT(@CURRENTAPPUSERID, r.CONSTITUENTID, @APPUSER_IN_NOSECGROUPROLE) = 1
                    -- Site security filter

                    and dbo.UFN_REVENUE_USERHASSITEACCESS(r.ID, @CURRENTAPPUSERID) = 1
                end