UFN_REVENUEHISTORY_REVENUECHILDTABLES_AUDIT
Returns the audit information for revenue detail child tables for a given revenue record.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@REVENUEID | uniqueidentifier | IN | |
@REVENUEDATEADDED | datetime | IN | |
@ACTIONTYPECODE | tinyint | IN | |
@RECORDTYPECODE | tinyint | IN |
Definition
Copy
CREATE function dbo.UFN_REVENUEHISTORY_REVENUECHILDTABLES_AUDIT
(
@REVENUEID uniqueidentifier,
@REVENUEDATEADDED datetime,
@ACTIONTYPECODE tinyint,
@RECORDTYPECODE tinyint
)
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('LETTERCODEID, PROCESSDATE, ACKNOWLEDGEDATE, ACKNOWLEDGEEID , MKTPACKAGEID','REVENUELETTER','REVENUEID',@REVENUEID,null,'Letter','')
--Benefits
if @RECORDTYPECODE = 0 or @RECORDTYPECODE = 4
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,
40 as [SEQUENCE],
ACTION,
CHANGEDBYAPP
from dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST('BENEFITID,QUANTITY,UNITVALUE,DETAILS,PERCENTAPPLICABLEAMOUNT,VALUEPERCENT','REVENUEBENEFIT','REVENUEID',@REVENUEID,@REVENUEDATEADDED,'Benefit for','')
--GL
if @RECORDTYPECODE = 0 or @RECORDTYPECODE = 5
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,
50 as [SEQUENCE],
ACTION,
CHANGEDBYAPP
from dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST('GLPAYMENTMETHODREVENUETYPEMAPPINGID,ACCOUNT,TRANSACTIONTYPECODE,PROJECT,REFERENCE,AMOUNT','REVENUEGLDISTRIBUTION','REVENUEID',@REVENUEID,@REVENUEDATEADDED,'GL Distribution for','')
--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,
OLD,
NEW,
60 as [SEQUENCE],
ACTION,
CHANGEDBYAPP
from dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST('STARTDATE,ENDDATE,NUMBEROFINSTALLMENTS,FREQUENCYCODE,NEXTTRANSACTIONDATE,STATUSCODE,SENDPLEDGEREMINDER,ISPENDING,CREDITCARDID','REVENUESCHEDULE','ID',@REVENUEID,@REVENUEDATEADDED,'Schedule','')
--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('DATE,AMOUNT','INSTALLMENT','REVENUEID',@REVENUEID,@REVENUEDATEADDED,'Installment','')
--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('TYPECODE, AMOUNT, SCHEDULEDATE','RECURRINGGIFTACTIVITY','SOURCEREVENUEID',@REVENUEID,null,'Recurring gift activity','')
--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('MGSOURCEREVENUEID, ISACTIVE','REVENUEMATCHINGGIFT','ID',@REVENUEID,null,'Matching gift claim for','')
--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('REVENUESPLITID','DONORCHALLENGEENCUMBERED','MATCHEDREVENUEID',@REVENUEID,null,'Donor Challenge claim for','')
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.REVENUESPLITAUDIT where REVENUEID = @REVENUEID
end
--Application details
if @RECORDTYPECODE = 0 or @RECORDTYPECODE = 11
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,
30 as [SEQUENCE],
ACTION,
CHANGEDBYAPP
from dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST('DESIGNATIONID,AMOUNT','REVENUESPLIT','REVENUEID',@REVENUEID,@REVENUEDATEADDED,'Application details','')
union all
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,
100 as [SEQUENCE],
DETAILS.ACTION,
DETAILS.CHANGEDBYAPP
from @REVENUESPLITSTIDS as REVENUESPLIT
cross apply dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST('OTHERTYPECODEID', 'REVENUESPLITOTHER', 'ID', REVENUESPLIT.ID, @REVENUEDATEADDED, 'Other application', '') DETAILS
union all
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,
110 as [SEQUENCE],
DETAILS.ACTION,
DETAILS.CHANGEDBYAPP
from @REVENUESPLITSTIDS as REVENUESPLIT
cross apply dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST('GLREVENUECATEGORYMAPPINGID', 'REVENUECATEGORY', 'ID', REVENUESPLIT.ID, @REVENUEDATEADDED, 'Revenue Category', '') DETAILS
--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('CONSTITUENTID, AMOUNT', 'REVENUESOLICITOR', 'REVENUESPLITID', REVENUESPLIT.ID, @REVENUEDATEADDED, 'Solicitors', '') DETAILS
--Recognition
if @RECORDTYPECODE = 0 or @RECORDTYPECODE = 13
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,
130 as [SEQUENCE],
DETAILS.ACTION,
DETAILS.CHANGEDBYAPP
from @REVENUESPLITSTIDS as REVENUESPLIT
cross apply dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST('CONSTITUENTID, AMOUNT, EFFECTIVEDATE, REVENUERECOGNITIONTYPECODEID', 'REVENUERECOGNITION', 'REVENUESPLITID', REVENUESPLIT.ID, @REVENUEDATEADDED, 'Recognition', '') DETAILS
--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('NAMINGOPPORTUNITYRECOGNITIONID', 'NAMINGOPPORTUNITYRECOGNITIONREVENUESPLIT', 'REVENUESPLITID', REVENUESPLIT.ID, '01/01/1900', 'Named recognition', '') DETAILS
--Campaigns
if @RECORDTYPECODE = 0 or @RECORDTYPECODE = 15
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,
140 as [SEQUENCE],
DETAILS.ACTION,
DETAILS.CHANGEDBYAPP
from @REVENUESPLITSTIDS as REVENUESPLIT
cross apply dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST('CAMPAIGNID, CAMPAIGNSUBPRIORITYID', 'REVENUESPLITCAMPAIGN', 'REVENUESPLITID', REVENUESPLIT.ID, @REVENUEDATEADDED, 'Campaigns', '') DETAILS
--Business Units
if @RECORDTYPECODE = 0 or @RECORDTYPECODE = 16
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,
150 as [SEQUENCE],
DETAILS.ACTION,
DETAILS.CHANGEDBYAPP
from @REVENUESPLITSTIDS as REVENUESPLIT
cross apply dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST('BUSINESSUNITCODEID, AMOUNT', 'REVENUESPLITBUSINESSUNIT', 'REVENUESPLITID', REVENUESPLIT.ID, @REVENUEDATEADDED, 'Business Unit', '') DETAILS
--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('TRIBUTEID, AMOUNT','REVENUETRIBUTE','REVENUEID',@REVENUEID,null,'Tribute','')
--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('DECLINESGIFTAID, TAXCLAIMNUMBER, BASETAXCLAIMAMOUNT, TRANSITIONALTAXCLAIMAMOUNT, ISCOVENANT, ISSPONSORSHIP, CHARITYCLAIMREFERENCENUMBER', 'REVENUESPLITGIFTAID', 'ID', REVENUESPLIT.ID, @REVENUEDATEADDED, 'Gift Aid', '') 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('AMOUNTTOTAX, VATTAXRATEID, VATAMOUNT','REVENUEVAT', 'ID', @REVENUEID, @REVENUEDATEADDED, 'VAT', '')
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('CARDHOLDERNAME, CREDITTYPECODEID, CREDITCARDPARTIALNUMBER, EXPIRESON', 'CREDITCARD', 'ID', CREDITCARD.CREDITCARDID, @REVENUEDATEADDED, 'Credit card', '') 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