UFN_REVENUEHISTORY_REVENUECHILDTABLES_AUDIT2

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@REVENUEID uniqueidentifier IN
@REVENUEDATEADDED datetime IN
@ACTIONTYPECODE tinyint IN
@RECORDTYPECODE tinyint IN
@STARTDATE datetime IN
@ENDDATE datetime IN

Definition

Copy


    CREATE function [dbo].[UFN_REVENUEHISTORY_REVENUECHILDTABLES_AUDIT2]
      (
        @REVENUEID uniqueidentifier,
        @REVENUEDATEADDED datetime,
        @ACTIONTYPECODE tinyint,
        @RECORDTYPECODE tinyint,
        @STARTDATE datetime,
        @ENDDATE datetime
      )
      returns @RESULTS table
      (
        RECORDID uniqueidentifier,
        AUDITDATE datetime,
        CHANGEDBYUSER nvarchar(128),
        PROCESS nvarchar(255),
        FIELD nvarchar(128),
        OLD nvarchar(4000),
        NEW nvarchar(4000),
        SEQUENCE int,
        ACTION nvarchar(8),
        CHANGEDBYAPP nvarchar(200)
      )
      as
      begin
        declare @DETAILID uniqueidentifier;
        declare @REVENUETYPECODE tinyint;

        --Letter

        if @RECORDTYPECODE = 0 or @RECORDTYPECODE = 3
          insert into @RESULTS
          select          
            RECORDID,
            case when ACTION = 'Insert' then DATEADDED when ACTION = 'Update' then DATECHANGED else AUDITDATE end as [AUDITDATE],
            CHANGEDBYUSER,
            PROCESS,
            FIELD,
            OLD,
            NEW,
            200 as [SEQUENCE],
            ACTION,
            CHANGEDBYAPP         
          from dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST_WITHDATERANGE('LETTERCODEID, PROCESSDATE, ACKNOWLEDGEDATE, ACKNOWLEDGEEID , MKTPACKAGEID','REVENUELETTER','REVENUEID',@REVENUEID,null,'Letter','',@STARTDATE,@ENDDATE)    

        --Benefits

        if @RECORDTYPECODE = 0 or @RECORDTYPECODE = 4
        insert into @RESULTS (
          RECORDID
          ,AUDITDATE
          ,CHANGEDBYUSER
          ,PROCESS
          ,FIELD
          ,OLD
          ,NEW
          ,SEQUENCE
          ,ACTION
          ,CHANGEDBYAPP)
        select 
          RECORDID
          ,AUDITDATE
          ,CHANGEDBYUSER
          ,PROCESS
          ,FIELD
          ,OLD
          ,NEW
          ,SEQUENCE
          ,ACTION
          ,CHANGEDBYAPP    
        from dbo.UFN_AUDIT_GETDETAILSFORREVENUEBENEFIT(@REVENUEID)
        where AUDITDATE >= isnull(@STARTDATE, AUDITDATE) and AUDITDATE <= isnull(@ENDDATE, AUDITDATE)

        --GL

        if @RECORDTYPECODE = 0 or @RECORDTYPECODE = 5
          insert into @RESULTS (
            RECORDID
            ,AUDITDATE
            ,CHANGEDBYUSER
            ,PROCESS
            ,FIELD
            ,OLD
            ,NEW
            ,SEQUENCE
            ,ACTION
            ,CHANGEDBYAPP)
          select 
            RECORDID
            ,AUDITDATE
            ,CHANGEDBYUSER
            ,PROCESS
            ,FIELD
            ,OLD
            ,NEW
            ,SEQUENCE
            ,ACTION
            ,CHANGEDBYAPP
          from dbo.UFN_AUDIT_GETDETAILSFORREVENUEGLDISTRIBUTION(@REVENUEID)
          where AUDITDATE >= isnull(@STARTDATE, AUDITDATE) and AUDITDATE <= isnull(@ENDDATE, AUDITDATE)

        --Schedule

        if @RECORDTYPECODE = 0 or @RECORDTYPECODE = 6
          insert into @RESULTS
          select          
            RECORDID,
            case when ACTION = 'Insert' then DATEADDED when ACTION = 'Update' then DATECHANGED else AUDITDATE end as [AUDITDATE],
            CHANGEDBYUSER,
            PROCESS,
            FIELD,

            -- 10/23/2014 431380 JasonPe "Completed" to "Canceled" mapping. This is required for new Recurring Gift status codes. "Completed" is deprecated.

            case FIELD
            when 'Schedule:STATUSCODE' then
              case OLD
              when 'Completed' then 'Canceled' 
              else OLD end 
            else OLD
            end,                                
            case FIELD
            when 'Schedule:STATUSCODE' then
              case NEW
              when 'Completed' then 'Canceled'
              else NEW end 
            else NEW
            end,
            60 as [SEQUENCE],
            ACTION,
            CHANGEDBYAPP         
          from dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST_WITHDATERANGE('STARTDATE,ENDDATE,NUMBEROFINSTALLMENTS,FREQUENCYCODE,NEXTTRANSACTIONDATE,STATUSCODE,SENDPLEDGEREMINDER,ISPENDING,CREDITCARDID','REVENUESCHEDULE','ID',@REVENUEID,@REVENUEDATEADDED,'Schedule','',@STARTDATE,@ENDDATE)

        --Installments

        if @RECORDTYPECODE = 0 or @RECORDTYPECODE = 7
          insert into @RESULTS
          select          
          RECORDID,
          case when ACTION = 'Insert' then DATEADDED when ACTION = 'Update' then DATECHANGED else AUDITDATE end as [AUDITDATE],
          CHANGEDBYUSER,
          PROCESS,
          FIELD,
          OLD,
          NEW,
          70 as [SEQUENCE],
          ACTION,
          CHANGEDBYAPP         
          from dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST_WITHDATERANGE('DATE,AMOUNT','INSTALLMENT','REVENUEID',@REVENUEID,@REVENUEDATEADDED,'Installment','',@STARTDATE,@ENDDATE)

        --RGA

        if @RECORDTYPECODE = 0 or @RECORDTYPECODE = 8
          insert into @RESULTS
          select
          RECORDID,
          case when ACTION = 'Insert' then DATEADDED when ACTION = 'Update' then DATECHANGED else AUDITDATE end as [AUDITDATE],
          CHANGEDBYUSER,
          PROCESS,
          FIELD,
          OLD,
          NEW,
          80 as [SEQUENCE],
          ACTION,
          CHANGEDBYAPP         
          from dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST_WITHDATERANGE('TYPECODE, AMOUNT, SCHEDULEDATE','RECURRINGGIFTACTIVITY','SOURCEREVENUEID',@REVENUEID,null,'Recurring gift activity','',@STARTDATE,@ENDDATE)

        --MG Claim

        if @RECORDTYPECODE = 0 or @RECORDTYPECODE = 9
          insert into @RESULTS
          select          
          RECORDID,
          case when ACTION = 'Insert' then DATEADDED when ACTION = 'Update' then DATECHANGED else AUDITDATE end as [AUDITDATE],
          CHANGEDBYUSER,
          PROCESS,
          FIELD,
          OLD,
          NEW,
          90 as [SEQUENCE],
          ACTION,
          CHANGEDBYAPP         
          from dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST_WITHDATERANGE('MGSOURCEREVENUEID, ISACTIVE','REVENUEMATCHINGGIFT','ID',@REVENUEID,null,'Matching gift claim for','',@STARTDATE,@ENDDATE)    

        --Donor Challenge

        if @RECORDTYPECODE = 0 or @RECORDTYPECODE = 10
          insert into @RESULTS
          select          
          RECORDID,
          case when ACTION = 'Insert' then DATEADDED when ACTION = 'Update' then DATECHANGED else AUDITDATE end as [AUDITDATE],
          CHANGEDBYUSER,
          PROCESS,
          FIELD,
          OLD,
          NEW,
          170 as [SEQUENCE],
          ACTION,
          CHANGEDBYAPP         
          from dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST_WITHDATERANGE('REVENUESPLITID','DONORCHALLENGEENCUMBERED','MATCHEDREVENUEID',@REVENUEID,null,'Donor Challenge claim for','',@STARTDATE,@ENDDATE)    

        declare @REVENUESPLITSTIDS table (ID uniqueidentifier)
        if(@RECORDTYPECODE in (0,11,12,13,14,15,16,18))
        begin
          insert into @REVENUESPLITSTIDS
            select ID from dbo.REVENUESPLIT where REVENUEID = @REVENUEID
            union 
            select AUDITRECORDID as ID
            from dbo.FINANCIALTRANSACTIONLINEITEMAUDIT
            inner join dbo.REVENUESPLIT_EXT on REVENUESPLIT_EXT.ID = FINANCIALTRANSACTIONLINEITEMAUDIT.AUDITRECORDID
            where FINANCIALTRANSACTIONID = @REVENUEID
        end

        --Application details

        if @RECORDTYPECODE = 0 or @RECORDTYPECODE = 11
          insert into @RESULTS
          select 
            RECORDID
            ,AUDITDATE
            ,CHANGEDBYUSER
            ,PROCESS
            ,FIELD
            ,OLD
            ,NEW
            ,SEQUENCE
            ,ACTION
            ,CHANGEDBYAPP
          from dbo.UFN_AUDIT_GETDETAILSFORREVENUESPLIT(@REVENUEID)
        where AUDITDATE >= isnull(@STARTDATE, AUDITDATE) and AUDITDATE <= isnull(@ENDDATE, AUDITDATE)
          union all
          select 
            RECORDID
            ,AUDITDATE
            ,CHANGEDBYUSER
            ,PROCESS
            ,FIELD
            ,OLD
            ,NEW
            ,SEQUENCE
            ,ACTION
            ,CHANGEDBYAPP
          from dbo.UFN_AUDIT_GETDETAILSFORREVENUESPLITOTHER(@REVENUEID)
          where AUDITDATE >= isnull(@STARTDATE, AUDITDATE) and AUDITDATE <= isnull(@ENDDATE, AUDITDATE)
          union all
          select 
            RECORDID
            ,AUDITDATE
            ,CHANGEDBYUSER
            ,PROCESS
            ,FIELD
            ,OLD
            ,NEW
            ,SEQUENCE
            ,ACTION
            ,CHANGEDBYAPP
          from dbo.UFN_AUDIT_GETDETAILSFORREVENUECATEGORY(@REVENUEID)
          where AUDITDATE >= isnull(@STARTDATE, AUDITDATE) and AUDITDATE <= isnull(@ENDDATE, AUDITDATE)

        --Solicitors

        if @RECORDTYPECODE = 0 or @RECORDTYPECODE = 12
          insert into @RESULTS
          select 
            DETAILS.RECORDID,
            case when DETAILS.ACTION = 'Insert' then DETAILS.DATEADDED when DETAILS.ACTION = 'Update' then DETAILS.DATECHANGED else DETAILS.AUDITDATE end as [AUDITDATE],
            DETAILS.CHANGEDBYUSER,
            DETAILS.PROCESS,
            DETAILS.FIELD,
            DETAILS.OLD,
            DETAILS.NEW,
            120 as [SEQUENCE],
            DETAILS.ACTION,
            DETAILS.CHANGEDBYAPP
          from @REVENUESPLITSTIDS as REVENUESPLIT
          cross apply dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST_WITHDATERANGE('CONSTITUENTID, AMOUNT', 'REVENUESOLICITOR', 'REVENUESPLITID', REVENUESPLIT.ID, @REVENUEDATEADDED, 'Solicitors', '',@STARTDATE,@ENDDATE) DETAILS

        --Recognition

        if @RECORDTYPECODE = 0 or @RECORDTYPECODE = 13
          insert into @RESULTS (
            RECORDID
            ,AUDITDATE
            ,CHANGEDBYUSER
            ,PROCESS
            ,FIELD
            ,OLD
            ,NEW
            ,SEQUENCE
            ,ACTION
            ,CHANGEDBYAPP)
          select 
            RECORDID
            ,AUDITDATE
            ,CHANGEDBYUSER
            ,PROCESS
            ,FIELD
            ,OLD
            ,NEW
            ,SEQUENCE
            ,ACTION
            ,CHANGEDBYAPP
          from dbo.UFN_AUDIT_GETDETAILSFORREVENUERECOGNITION(@REVENUEID)
          where AUDITDATE >= isnull(@STARTDATE, AUDITDATE) and AUDITDATE <= isnull(@ENDDATE, AUDITDATE)

        --Named Recognition

        if @RECORDTYPECODE = 0 or @RECORDTYPECODE = 14
          insert into @RESULTS
          select 
            DETAILS.RECORDID,
            case when DETAILS.ACTION = 'Insert' then DETAILS.DATEADDED when DETAILS.ACTION = 'Update' then DETAILS.DATECHANGED else DETAILS.AUDITDATE end as [AUDITDATE],
            DETAILS.CHANGEDBYUSER,
            DETAILS.PROCESS,
            DETAILS.FIELD,
            DETAILS.OLD,
            DETAILS.NEW,
            160 as [SEQUENCE],
            DETAILS.ACTION,
            DETAILS.CHANGEDBYAPP
          from @REVENUESPLITSTIDS as REVENUESPLIT
          cross apply dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST_WITHDATERANGE('NAMINGOPPORTUNITYRECOGNITIONID', 'NAMINGOPPORTUNITYRECOGNITIONREVENUESPLIT', 'REVENUESPLITID', REVENUESPLIT.ID, '01/01/1900', 'Named recognition', '',@STARTDATE,@ENDDATE) DETAILS

        --Campaigns

        if @RECORDTYPECODE = 0 or @RECORDTYPECODE = 15
          insert into @RESULTS
          select 
            RECORDID
            ,AUDITDATE
            ,CHANGEDBYUSER
            ,PROCESS
            ,FIELD
            ,OLD
            ,NEW
            ,SEQUENCE
            ,ACTION
            ,CHANGEDBYAPP
          from dbo.UFN_AUDIT_GETDETAILSFORREVENUESPLITCAMPAIGN(@REVENUEID)
          where AUDITDATE >= isnull(@STARTDATE, AUDITDATE) and AUDITDATE <= isnull(@ENDDATE, AUDITDATE)

        --Business Units

        if @RECORDTYPECODE = 0 or @RECORDTYPECODE = 16
          insert into @RESULTS
          select 
            RECORDID
            ,AUDITDATE
            ,CHANGEDBYUSER
            ,PROCESS
            ,FIELD
            ,OLD
            ,NEW
            ,SEQUENCE
            ,ACTION
            ,CHANGEDBYAPP
          from dbo.UFN_AUDIT_GETDETAILSFORREVENUESPLITBUSINESSUNIT(@REVENUEID)
          where AUDITDATE >= isnull(@STARTDATE, AUDITDATE) and AUDITDATE <= isnull(@ENDDATE, AUDITDATE)

        --Tributes

        if @RECORDTYPECODE = 0 or @RECORDTYPECODE = 17
          insert into @RESULTS
          select          
            RECORDID,
            case when ACTION = 'Insert' then DATEADDED when ACTION = 'Update' then DATECHANGED else AUDITDATE end as [AUDITDATE],
            CHANGEDBYUSER,
            PROCESS,
            FIELD,
            OLD,
            NEW,
            210 as [SEQUENCE],
            ACTION,
            CHANGEDBYAPP         
          from dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST_WITHDATERANGE('TRIBUTEID, AMOUNT','REVENUETRIBUTE','REVENUEID',@REVENUEID,null,'Tribute','',@STARTDATE,@ENDDATE)    

        --Gift Aid/VAT

        if @RECORDTYPECODE = 0 or @RECORDTYPECODE = 18
        begin
          insert into @RESULTS
          select 
            DETAILS.RECORDID,
            case when DETAILS.ACTION = 'Insert' then DETAILS.DATEADDED when DETAILS.ACTION = 'Update' then DETAILS.DATECHANGED else DETAILS.AUDITDATE end as [AUDITDATE],
            DETAILS.CHANGEDBYUSER,
            DETAILS.PROCESS,
            DETAILS.FIELD,
            DETAILS.OLD,
            DETAILS.NEW,
            220 as [SEQUENCE],
            DETAILS.ACTION,
            DETAILS.CHANGEDBYAPP
          from @REVENUESPLITSTIDS as REVENUESPLIT
          cross apply dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST_WITHDATERANGE('DECLINESGIFTAID, TAXCLAIMNUMBER, BASETAXCLAIMAMOUNT, TRANSITIONALTAXCLAIMAMOUNT, ISCOVENANT, ISSPONSORSHIP, CHARITYCLAIMREFERENCENUMBER', 'REVENUESPLITGIFTAID', 'ID', REVENUESPLIT.ID, @REVENUEDATEADDED, 'Gift Aid', '',@STARTDATE,@ENDDATE) DETAILS

          insert into @RESULTS
          select
            RECORDID,
            case when ACTION = 'Insert' then DATEADDED when ACTION = 'Update' then DATECHANGED else AUDITDATE end as [AUDITDATE],
            CHANGEDBYUSER,
            PROCESS,
            FIELD,
            OLD,
            NEW,
            230 as [SEQUENCE],
            ACTION,
            CHANGEDBYAPP
          from dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST_WITHDATERANGE('AMOUNTTOTAX, VATTAXRATEID, VATAMOUNT','REVENUEVAT', 'ID', @REVENUEID, @REVENUEDATEADDED, 'VAT', '',@STARTDATE,@ENDDATE)
        end

        --Revenue schedule credit card

        if @RECORDTYPECODE = 0 or @RECORDTYPECODE = 6
        begin
          with REVENUESCHEDULECREDITCARDS_CTE as
          (
            select distinct CREDITCARDID
            from 
              (select CREDITCARDID from dbo.REVENUESCHEDULE where ID = @REVENUEID
              union all
              select CREDITCARDID from dbo.REVENUESCHEDULEAUDIT where AUDITRECORDID = @REVENUEID
            ) a
            where CREDITCARDID is not null
          )
          insert into @RESULTS
          select 
            DETAILS.RECORDID,
            case when DETAILS.ACTION = 'Insert' then DETAILS.DATEADDED when DETAILS.ACTION = 'Update' then DETAILS.DATECHANGED else DETAILS.AUDITDATE end as [AUDITDATE],
            DETAILS.CHANGEDBYUSER,
            DETAILS.PROCESS,
            DETAILS.FIELD,
            DETAILS.OLD,
            DETAILS.NEW,
            60 as [SEQUENCE],
            DETAILS.ACTION,
            DETAILS.CHANGEDBYAPP
          from REVENUESCHEDULECREDITCARDS_CTE as CREDITCARD
          cross apply dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST_WITHDATERANGE('CARDHOLDERNAME, CREDITTYPECODEID, CREDITCARDPARTIALNUMBER, EXPIRESON', 'CREDITCARD', 'ID', CREDITCARD.CREDITCARDID, @REVENUEDATEADDED, 'Credit card', '',@STARTDATE,@ENDDATE) DETAILS
        end

        if @ACTIONTYPECODE = 1
          delete from @RESULTS where ACTION = 'Delete' or ACTION = 'Update';
        if @ACTIONTYPECODE = 2
          delete from @RESULTS where ACTION = 'Insert' or ACTION = 'Delete';
        if @ACTIONTYPECODE = 3
          delete from @RESULTS where ACTION = 'Insert' or ACTION = 'Update';

        return;
      end