USP_REVENUEUPDATEBATCH_VALIDATIONREPORT
Provide data for the revenue update batch validation report.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@BATCHID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_REVENUEUPDATEBATCH_VALIDATIONREPORT
(
@BATCHID uniqueidentifier
)
as
set nocount on;
set transaction isolation level read uncommitted;
declare @NULLGUID uniqueidentifier;
set @NULLGUID = newid();
declare @NULLDATE datetime;
set @NULLDATE = '1/1/1753';
declare @DATEFORMAT tinyint;
set @DATEFORMAT = 101;
declare @RESULTS table (BATCHRECORDSEQUENCE int,
FIELDRECORDTYPE nvarchar(200),
FIELDRECORDTYPEDATE datetime,
FIELDRECORDID uniqueidentifier,
--Longest value is generated by Recognition CTE
--DESIGNATION.NAME + ' - ' + CONSTITUENT.NAME
--512 + 3 + 154 = 669
FIELDRECORDKEY nvarchar(670),
FIELDRECORDKEYDATE datetime,
FIELDRECORDCODE tinyint, -- 0=edit, 1=added, 2=deleted
FIELDNAME nvarchar(50),
BEFOREVALUE nvarchar(max),
AFTERVALUE nvarchar(max),
FIELDSEQUENCE smallint,
DATATYPE nvarchar(20),
ISO4217 nvarchar(3),
CURRENCYSYMBOL nvarchar(5),
DECIMALDIGITS tinyint,
SYMBOLDISPLAYSETTINGCODE tinyint
);
with CTE as (
select BR.SEQUENCE,
C.NAME CONSTITUENTNAME,
BR.TYPE,
ARC.CODE ADJUSTMENTREASONCODE,
-- field differences
BR.CONSTITUENTID BCONSTITUENTID,
R.CONSTITUENTID RCONSTITUENTID,
BR.DATE BDATE,
R.DATE RDATE,
BR.REVENUELOOKUPID BLOOKUPID,
R.LOOKUPID RLOOKUPID,
BR.AMOUNT BAMOUNT,
R.TRANSACTIONAMOUNT RAMOUNT,
BR.PAYMENTMETHODCODE BPAYMENTMETHODCODE,
RPM.PAYMENTMETHODCODE RPAYMENTMETHODCODE,
BR.PAYMENTMETHOD BPAYMENTMETHOD,
RPM.PAYMENTMETHOD RPAYMENTMETHOD,
BR.DONOTACKNOWLEDGE BDONOTACKNOWLEDGE,
R.DONOTACKNOWLEDGE RDONOTACKNOWLEDGE,
-- receipt fields
BR.RECEIPTAMOUNT BRECEIPTAMOUNT,
R.RECEIPTAMOUNT RRECEIPTAMOUNT,
case when BR.TYPECODE <> 3 then BR.DONOTRECEIPT end BDONOTRECEIPT,
R.DONOTRECEIPT RDONOTRECEIPT,
BR.RECEIPTTYPE BRECEIPTTYPE,
R.RECEIPTTYPE RRECEIPTTYPE,
-- installment fields
BR.INSTALLMENTSTARTDATE BINSTALLMENTSTARTDATE,
RS.STARTDATE RINSTALLMENTSTARTDATE,
BR.INSTALLMENTENDDATE BINSTALLMENTENDDATE,
RS.ENDDATE RINSTALLMENTENDDATE,
BR.NUMBEROFINSTALLMENTS BNUMBEROFINSTALLMENTS,
RS.NUMBEROFINSTALLMENTS RNUMBEROFINSTALLMENTS,
BR.INSTALLMENTFREQUENCY BINSTALLMENTFREQUENCY,
RS.FREQUENCY RINSTALLMENTFREQUENCY,
-- DM fields
BR.FINDERNUMBER BFINDERNUMBER,
R.FINDERNUMBER RFINDERNUMBER,
BR.SOURCECODE BSOURCECODE,
R.SOURCECODE RSOURCECODE,
BR.APPEALID BAPPEALID,
R.APPEALID RAPPEALID,
BR.MAILINGID BMAILINGID,
R.MAILINGID RMAILINGID,
BR.CHANNELCODEID BCHANNELCODEID,
R.CHANNELCODEID RCHANNELCODEID,
-- misc fields
BR.BENEFITSWAIVED BBENEFITSWAIVED,
R.BENEFITSWAIVED RBENEFITSWAIVED,
case when BR.TYPECODE <> 3 then BR.POSTDATE end BPOSTDATE,
R.POSTDATE RPOSTDATE,
BR.POSTSTATUS BPOSTSTATUS,
case R.DONOTPOST when 0 then 'Not posted' when 1 then 'Do not post' end RPOSTSTATUS,
BR.SENDPLEDGEREMINDER BSENDPLEDGEREMINDER,
RS.SENDPLEDGEREMINDER RSENDPLEDGEREMINDER,
BR.GIVENANONYMOUSLY BGIVENANONYMOUSLY,
R.GIVENANONYMOUSLY RGIVENANONYMOUSLY,
BR.PLEDGESUBTYPEID BPLEDGESUBTYPEID,
RS.PLEDGESUBTYPEID RPLEDGESUBTYPEID,
-- lockbox fields
BR.LOCKBOXID BLOCKBOXID,
RL.LOCKBOXID RLOCKBOXID,
BR.LOCKBOXBATCHNUMBER BLOCKBOXBATCHNUMBER,
RL.BATCHNUMBER RLOCKBOXBATCHNUMBER,
BR.LOCKBOXBATCHSEQUENCE BLOCKBOXBATCHSEQUENCE,
RL.BATCHSEQUENCE RLOCKBOXBATCHSEQUENCE,
-- payment method fields used across multiple payment methods
case when BR.PAYMENTMETHODCODE in(0,3,10,11) then BR.REFERENCEDATE end BREFERENCEDATE,
case RPM.PAYMENTMETHODCODE
when 0 then CAPM.REFERENCEDATE
when 3 then DDPM.REFERENCEDATE
when 10 then OPM.REFERENCEDATE
when 11 then SOPM.REFERENCEDATE
end RREFERENCEDATE,
case when BR.PAYMENTMETHODCODE in(0,3,10,11) then BR.REFERENCENUMBER end BREFERENCENUMBER,
case RPM.PAYMENTMETHODCODE
when 0 then CAPM.REFERENCENUMBER
when 3 then DDPM.REFERENCENUMBER
when 10 then OPM.REFERENCENUMBER
when 11 then SOPM.REFERENCENUMBER
end RREFERENCENUMBER,
case when BR.PAYMENTMETHODCODE in(1,3,11) then BR.CONSTITUENTACCOUNTID end BCONSTITUENTACCOUNTID,
case RPM.PAYMENTMETHODCODE
when 1 then CHPM.CONSTITUENTACCOUNTID
when 3 then DDPM.CONSTITUENTACCOUNTID
when 11 then SOPM.CONSTITUENTACCOUNTID
end RCONSTITUENTACCOUNTID,
-- check payment method fields
case BR.PAYMENTMETHODCODE when 1 then BR.CHECKDATE end BCHECKDATE,
CHPM.CHECKDATE RCHECKDATE,
case BR.PAYMENTMETHODCODE when 1 then BR.CHECKNUMBER end BCHECKNUMBER,
CHPM.CHECKNUMBER RCHECKNUMBER,
-- credit card payment method fields
BCC.CARDHOLDERNAME BCARDHOLDERNAME,
case R.TRANSACTIONTYPECODE when 0 then CRPM.CARDHOLDERNAME else RCC.CARDHOLDERNAME end RCARDHOLDERNAME,
BCC.CREDITTYPECODEID BCREDITTYPECODEID,
case R.TRANSACTIONTYPECODE when 0 then CRPM.CREDITTYPECODEID else RCC.CREDITTYPECODEID end RCREDITTYPECODEID,
BCC.CREDITCARDPARTIALNUMBER BCREDITCARDPARTIALNUMBER,
case R.TRANSACTIONTYPECODE when 0 then CRPM.CREDITCARDPARTIALNUMBER else RCC.CREDITCARDPARTIALNUMBER end RCREDITCARDPARTIALNUMBER,
BCC.EXPIRESON BEXPIRESON,
case R.TRANSACTIONTYPECODE when 0 then CRPM.EXPIRESON else RCC.EXPIRESON end REXPIRESON,
BR.AUTHORIZATIONCODE BAUTHORIZATIONCODE,
CRPM.AUTHORIZATIONCODE RAUTHORIZATIONCODE,
-- direct debit payment method fields
case BR.PAYMENTMETHODCODE when 3 then BR.DIRECTDEBITRESULTCODE end BDIRECTDEBITRESULTCODE,
DDPM.DIRECTDEBITRESULTCODE RDIRECTDEBITRESULTCODE,
case BR.PAYMENTMETHODCODE when 3 then BR.DIRECTDEBITISREJECTED end BDIRECTDEBITISREJECTED,
DDPM.ISREJECTED RDIRECTDEBITISREJECTED,
-- stock payment method fields
case BR.PAYMENTMETHODCODE when 4 then BR.ISSUER end BISSUER,
SD.ISSUER RISSUER,
case BR.PAYMENTMETHODCODE when 4 then BR.MEDIANPRICE end BMEDIANPRICE,
SD.MEDIANPRICE RMEDIANPRICE,
case BR.PAYMENTMETHODCODE when 4 then BR.NUMBEROFUNITS end BNUMBEROFUNITS,
SD.NUMBEROFUNITS RNUMBEROFUNITS,
case BR.PAYMENTMETHODCODE when 4 then BR.SYMBOL end BSYMBOL,
SD.SYMBOL RSYMBOL,
case BR.PAYMENTMETHODCODE when 4 then BR.LOWPRICE end BLOWPRICE,
SD.LOWPRICE RLOWPRICE,
case BR.PAYMENTMETHODCODE when 4 then BR.HIGHPRICE end BHIGHPRICE,
SD.HIGHPRICE RHIGHPRICE,
-- property payment method fields
case BR.PAYMENTMETHODCODE when 5 then BR.PROPERTYSUBTYPECODEID end BPROPERTYSUBTYPECODEID,
PD.PROPERTYSUBTYPECODEID RPROPERTYSUBTYPECODEID,
case BR.PAYMENTMETHODCODE when 5 then BR.SALEDATE end BSALEDATE,
PD.SALEDATE RSALEDATE,
case BR.PAYMENTMETHODCODE when 5 then BR.SALEAMOUNT end BSALEAMOUNT,
PD.TRANSACTIONSALEAMOUNT RSALEAMOUNT,
case BR.PAYMENTMETHODCODE when 5 then BR.BROKERFEE end BBROKERFEE,
PD.BROKERFEE RBROKERFEE,
case BR.PAYMENTMETHODCODE when 5 then BR.SALEPOSTDATE end BSALEPOSTDATE,
PD.SALEPOSTDATE RSALEPOSTDATE,
case BR.PAYMENTMETHODCODE when 5 then BR.SALEPOSTSTATUS end BSALEPOSTSTATUS,
PD.SALEPOSTSTATUS RSALEPOSTSTATUS,
-- gift-in-kind payment method fields
case BR.PAYMENTMETHODCODE when 6 then BR.GIFTINKINDSUBTYPECODEID end BGIFTINKINDSUBTYPECODEID,
GIKPM.GIFTINKINDSUBTYPECODEID RGIFTINKINDSUBTYPECODEID,
case BR.PAYMENTMETHODCODE when 6 then BR.GIFTINKINDITEMNAME end BGIFTINKINDITEMNAME,
GIKPM.ITEMNAME RGIFTINKINDITEMNAME,
case BR.PAYMENTMETHODCODE when 6 then BR.GIFTINKINDDISPOSITION end BGIFTINKINDDISPOSITION,
GIKPM.DISPOSITION RGIFTINKINDDISPOSITION,
case BR.PAYMENTMETHODCODE when 6 then BR.GIFTINKINDNUMBEROFUNITS end BGIFTINKINDNUMBEROFUNITS,
GIKPM.NUMBEROFUNITS RGIFTINKINDNUMBEROFUNITS,
case BR.PAYMENTMETHODCODE when 6 then BR.GIFTINKINDFAIRMARKETVALUE end BGIFTINKINDFAIRMARKETVALUE,
GIKPM.FAIRMARKETVALUE RGIFTINKINDFAIRMARKETVALUE,
-- other payment method fields
case BR.PAYMENTMETHODCODE when 10 then BR.OTHERPAYMENTMETHODCODEID end BOTHERPAYMENTMETHODCODEID,
OPM.OTHERPAYMENTMETHODCODEID ROTHERPAYMENTMETHODCODEID,
BR.EXCHANGERATE BEXCHANGERATE,
REVENUEBASERATE.RATE REXCHANGERATE,
CURRENCY.ISO4217,
CURRENCY.CURRENCYSYMBOL,
CURRENCY.DECIMALDIGITS,
CURRENCY.SYMBOLDISPLAYSETTINGCODE
from dbo.BATCHREVENUE BR
inner join dbo.REVENUE R on R.ID = BR.REVENUEID
inner join dbo.CONSTITUENT C on C.ID = BR.CONSTITUENTID
inner join dbo.CURRENCY on CURRENCY.ID = BR.TRANSACTIONCURRENCYID
left join dbo.ADJUSTMENTREASONCODE ARC on ARC.ID = BR.ADJUSTMENTREASONCODEID
left join dbo.REVENUEPAYMENTMETHOD RPM on RPM.REVENUEID = R.ID
left join dbo.REVENUESCHEDULE RS on RS.ID = R.ID
left join dbo.REVENUELOCKBOX RL on RL.ID = R.ID
left join dbo.CASHPAYMENTMETHODDETAIL CAPM on CAPM.ID = RPM.ID and RPM.PAYMENTMETHODCODE = 0
left join dbo.CHECKPAYMENTMETHODDETAIL CHPM on CHPM.ID = RPM.ID and RPM.PAYMENTMETHODCODE = 1
left join dbo.CREDITCARDPAYMENTMETHODDETAIL CRPM on CRPM.ID = RPM.ID and RPM.PAYMENTMETHODCODE = 2 and R.TRANSACTIONTYPECODE = 0
left join dbo.CREDITCARD BCC on BCC.ID = BR.CREDITCARDID
left join dbo.CREDITCARD RCC on RCC.ID = RS.CREDITCARDID and R.TRANSACTIONTYPECODE <> 0
left join dbo.DIRECTDEBITPAYMENTMETHODDETAIL DDPM on DDPM.ID = RPM.ID and RPM.PAYMENTMETHODCODE = 3
left join dbo.STOCKDETAIL SD on SD.ID = RPM.ID and RPM.PAYMENTMETHODCODE = 4
left join dbo.PROPERTYDETAIL PD on PD.ID = RPM.ID and RPM.PAYMENTMETHODCODE = 5
left join dbo.GIFTINKINDPAYMENTMETHODDETAIL GIKPM on GIKPM.ID = RPM.ID and RPM.PAYMENTMETHODCODE = 6
left join dbo.OTHERPAYMENTMETHODDETAIL OPM on OPM.ID = RPM.ID and RPM.PAYMENTMETHODCODE = 10
left join dbo.STANDINGORDERPAYMENTMETHODDETAIL SOPM on SOPM.ID = RPM.ID and RPM.PAYMENTMETHODCODE = 11
left join dbo.CURRENCYEXCHANGERATE REVENUEBASERATE on REVENUEBASERATE.ID = R.BASEEXCHANGERATEID
where BR.BATCHID = @BATCHID
)
insert into @RESULTS
select SEQUENCE, TYPE + '-' + CONSTITUENTNAME + '-<!DATE!>-' + BLOOKUPID +
case when ADJUSTMENTREASONCODE is not null then '-Adjustment(' + ADJUSTMENTREASONCODE + ')' else '' end, BDATE,
null, null, null, 0, FIELDNAME, BEFOREVALUE, AFTERVALUE, FIELDSEQUENCE, DATATYPE, ISO4217, CURRENCYSYMBOL, DECIMALDIGITS, SYMBOLDISPLAYSETTINGCODE
from (
--
select CTE.SEQUENCE, null FIELDNAME, null BEFOREVALUE, null AFTERVALUE,
0 FIELDSEQUENCE, CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
union all
--
select CTE.SEQUENCE, 'Constituent',
RC.NAME + ' (' + RC.LOOKUPID + ')', BC.NAME + ' (' + BC.LOOKUPID + ')',
0, CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
inner join dbo.CONSTITUENT BC on BC.ID = CTE.BCONSTITUENTID
inner join dbo.CONSTITUENT RC on RC.ID = CTE.RCONSTITUENTID
where CTE.BCONSTITUENTID <> CTE.RCONSTITUENTID
union all
--
select CTE.SEQUENCE, 'Date', convert(nvarchar(100),CTE.RDATE), convert(nvarchar(100),CTE.BDATE), 1,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, 'DATE' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BDATE <> CTE.RDATE
union all
--
select CTE.SEQUENCE, 'Revenue ID', CTE.RLOOKUPID, CTE.BLOOKUPID, 2,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BLOOKUPID <> CTE.RLOOKUPID
union all
---
select CTE.SEQUENCE, 'Amount', convert(nvarchar(100), CTE.RAMOUNT, 126), convert(nvarchar(100), CTE.BAMOUNT, 126), 3,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, 'MONEY' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BAMOUNT <> CTE.RAMOUNT
union all
--
select CTE.SEQUENCE, 'Payment method', CTE.RPAYMENTMETHOD, CTE.BPAYMENTMETHOD, 4,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BPAYMENTMETHOD <> CTE.RPAYMENTMETHOD
union all
--
select CTE.SEQUENCE, 'Do not acknowledge',
case CTE.RDONOTACKNOWLEDGE when 1 then 'True' when 0 then 'False' end,
case CTE.BDONOTACKNOWLEDGE when 1 then 'True' when 0 then 'False' end, 10,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BDONOTACKNOWLEDGE <> CTE.RDONOTACKNOWLEDGE
union all
--
-- receipt fields
--
select CTE.SEQUENCE, 'Receipt amount',
convert(nvarchar(100), CTE.RRECEIPTAMOUNT, 126),convert(nvarchar(100), CTE.BRECEIPTAMOUNT, 126), 20,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, 'MONEY' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BRECEIPTAMOUNT <> CTE.RRECEIPTAMOUNT
union all
--
select CTE.SEQUENCE, 'Do not receipt',
case CTE.RDONOTRECEIPT when 1 then 'True' when 0 then 'False' end,
case CTE.BDONOTRECEIPT when 1 then 'True' when 0 then 'False' end, 21,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BDONOTRECEIPT <> CTE.RDONOTRECEIPT
union all
--
select CTE.SEQUENCE, 'Receipt type', CTE.RRECEIPTTYPE, CTE.BRECEIPTTYPE, 22,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BRECEIPTTYPE <> CTE.RRECEIPTTYPE
union all
--
-- installment fields
--
select CTE.SEQUENCE, 'Installment start date',
convert(nvarchar(100),CTE.RINSTALLMENTSTARTDATE), convert(nvarchar(100),CTE.BINSTALLMENTSTARTDATE), 30,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, 'DATE' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BINSTALLMENTSTARTDATE <> CTE.RINSTALLMENTSTARTDATE
union all
--
select CTE.SEQUENCE, 'Installment end date',
convert(nvarchar(100),CTE.RINSTALLMENTENDDATE), convert(nvarchar(100),CTE.BINSTALLMENTENDDATE), 31,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, 'DATE' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where isnull(CTE.BINSTALLMENTENDDATE,@NULLDATE) <> isnull(CTE.RINSTALLMENTENDDATE,@NULLDATE)
union all
--
select CTE.SEQUENCE, 'No. installments',
cast(CTE.RNUMBEROFINSTALLMENTS as nvarchar(10)),
cast(CTE.BNUMBEROFINSTALLMENTS as nvarchar(10)), 32,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BNUMBEROFINSTALLMENTS <> CTE.RNUMBEROFINSTALLMENTS
union all
--
select CTE.SEQUENCE, 'Installment frequency', CTE.RINSTALLMENTFREQUENCY, CTE.BINSTALLMENTFREQUENCY, 33,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BINSTALLMENTFREQUENCY <> CTE.RINSTALLMENTFREQUENCY
union all
--
-- DM fields
--
select CTE.SEQUENCE, 'Finder number',
cast(CTE.RFINDERNUMBER as nvarchar(19)), cast(CTE.BFINDERNUMBER as nvarchar(19)), 40,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where isnull(CTE.BFINDERNUMBER,-1) <> isnull(CTE.RFINDERNUMBER,-1)
union all
--
select CTE.SEQUENCE, 'Source code', CTE.RSOURCECODE, CTE.BSOURCECODE, 41,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BSOURCECODE <> CTE.RSOURCECODE
union all
--
select CTE.SEQUENCE, 'Appeal', RA.NAME, BA.NAME, 42,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
left join dbo.APPEAL BA on BA.ID = CTE.BAPPEALID
left join dbo.APPEAL RA on RA.ID = CTE.RAPPEALID
where isnull(CTE.BAPPEALID,@NULLGUID) <> isnull(CTE.RAPPEALID,@NULLGUID)
union all
--
select CTE.SEQUENCE, 'Effort', RM.NAME, BM.NAME, 43,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
left join dbo.MKTSEGMENTATION BM on BM.ID = CTE.BMAILINGID
left join dbo.MKTSEGMENTATION RM on RM.ID = CTE.RMAILINGID
where isnull(CTE.BMAILINGID,@NULLGUID) <> isnull(CTE.RMAILINGID,@NULLGUID)
union all
--
select CTE.SEQUENCE, 'Inbound channel', RC.DESCRIPTION, BC.DESCRIPTION, 44,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
left join dbo.CHANNELCODE BC on BC.ID = CTE.BCHANNELCODEID
left join dbo.CHANNELCODE RC on RC.ID = CTE.RCHANNELCODEID
where isnull(CTE.BCHANNELCODEID,@NULLGUID) <> isnull(CTE.RCHANNELCODEID,@NULLGUID)
union all
--
-- misc fields
--
select CTE.SEQUENCE, 'Benefits waived',
case CTE.RBENEFITSWAIVED when 1 then 'Yes' when 0 then 'No' end,
case CTE.BBENEFITSWAIVED when 1 then 'Yes' when 0 then 'No' end, 50,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BBENEFITSWAIVED <> CTE.RBENEFITSWAIVED
union all
--
select CTE.SEQUENCE, 'GL post date',
convert(nvarchar(100),CTE.RPOSTDATE), convert(nvarchar(100),CTE.BPOSTDATE), 50,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, 'DATE' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where isnull(CTE.BPOSTDATE,@NULLDATE) <> isnull(CTE.RPOSTDATE,@NULLDATE)
union all
--
select CTE.SEQUENCE, 'GL post status', CTE.RPOSTSTATUS, CTE.BPOSTSTATUS, 50,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BPOSTSTATUS <> CTE.RPOSTSTATUS
and CTE.BPOSTSTATUS <> 'None'
union all
--
select CTE.SEQUENCE, 'Send reminders',
case CTE.RSENDPLEDGEREMINDER when 1 then 'Yes' when 0 then 'No' end,
case CTE.BSENDPLEDGEREMINDER when 1 then 'Yes' when 0 then 'No' end, 50,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BSENDPLEDGEREMINDER <> CTE.RSENDPLEDGEREMINDER
union all
--
select CTE.SEQUENCE, 'Pledge is anonymous',
case CTE.RGIVENANONYMOUSLY when 1 then 'Yes' when 0 then 'No' end,
case CTE.BGIVENANONYMOUSLY when 1 then 'Yes' when 0 then 'No' end, 50,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BGIVENANONYMOUSLY <> CTE.RGIVENANONYMOUSLY
union all
--
select CTE.SEQUENCE, 'Pledge subtype', RP.NAME, BP.NAME, 50,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
left join dbo.PLEDGESUBTYPE BP on BP.ID = CTE.BPLEDGESUBTYPEID
left join dbo.PLEDGESUBTYPE RP on RP.ID = CTE.RPLEDGESUBTYPEID
where isnull(CTE.BPLEDGESUBTYPEID,@NULLGUID) <> isnull(CTE.RPLEDGESUBTYPEID,@NULLGUID)
union all
--
-- lockbox fields
--
select CTE.SEQUENCE, 'Lockbox', R.NAME, B.NAME, 60,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
left join dbo.LOCKBOX B on B.ID = CTE.BLOCKBOXID
left join dbo.LOCKBOX R on R.ID = CTE.RLOCKBOXID
where isnull(CTE.BLOCKBOXID,@NULLGUID) <> isnull(CTE.RLOCKBOXID,@NULLGUID)
union all
--
select CTE.SEQUENCE, 'Lockbox batch number', CTE.RLOCKBOXBATCHNUMBER, CTE.BLOCKBOXBATCHNUMBER, 61,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BLOCKBOXBATCHNUMBER <> isnull(CTE.RLOCKBOXBATCHNUMBER,'')
union all
--
select CTE.SEQUENCE, 'Lockbox batch sequence',
cast(CTE.RLOCKBOXBATCHSEQUENCE as nvarchar(10)),
cast(CTE.BLOCKBOXBATCHSEQUENCE as nvarchar(10)), 62,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BLOCKBOXBATCHSEQUENCE <> isnull(CTE.RLOCKBOXBATCHSEQUENCE,0)
union all
--
-- payment method fields used across multiple payment methods
--
select CTE.SEQUENCE, 'Reference date',
case when CTE.RPAYMENTMETHODCODE in(0,3,10,11) then convert(nvarchar(100),dbo.UFN_DATE_FROMFUZZYDATE(CTE.RREFERENCEDATE)) end,
case when CTE.BPAYMENTMETHODCODE in(0,3,10,11) then convert(nvarchar(100),dbo.UFN_DATE_FROMFUZZYDATE(CTE.BREFERENCEDATE)) end,
70, CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, 'DATE' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BREFERENCEDATE <> isnull(CTE.RREFERENCEDATE,'00000000')
union all
--
select CTE.SEQUENCE, 'Reference number', CTE.RREFERENCENUMBER, CTE.BREFERENCENUMBER, 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BREFERENCENUMBER <> isnull(CTE.RREFERENCENUMBER,'')
union all
--
select CTE.SEQUENCE, 'Account', R.DESCRIPTION, B.DESCRIPTION, 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
left join dbo.CONSTITUENTACCOUNT B on B.ID = CTE.BCONSTITUENTACCOUNTID
left join dbo.CONSTITUENTACCOUNT R on R.ID = CTE.RCONSTITUENTACCOUNTID
where isnull(CTE.BCONSTITUENTACCOUNTID,@NULLGUID) <> isnull(CTE.RCONSTITUENTACCOUNTID,@NULLGUID)
union all
--
-- check payment method fields
--
select CTE.SEQUENCE, 'Check date',
case CTE.RPAYMENTMETHODCODE when 1 then convert(nvarchar(100),dbo.UFN_DATE_FROMFUZZYDATE(CTE.RCHECKDATE)) end,
case CTE.BPAYMENTMETHODCODE when 1 then convert(nvarchar(100),dbo.UFN_DATE_FROMFUZZYDATE(CTE.BCHECKDATE)) end, 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, 'DATE' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BCHECKDATE <> isnull(CTE.RCHECKDATE,'00000000')
union all
--
select CTE.SEQUENCE, 'Check number', CTE.RCHECKNUMBER, CTE.BCHECKNUMBER, 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BCHECKNUMBER <> isnull(CTE.RCHECKNUMBER,'')
union all
--
-- credit card payment method fields
--
select CTE.SEQUENCE, 'Name on credit card', CTE.RCARDHOLDERNAME, CTE.BCARDHOLDERNAME, 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where isnull(CTE.BCARDHOLDERNAME,'') <> isnull(CTE.RCARDHOLDERNAME,'')
union all
--
select CTE.SEQUENCE, 'Credit card type', R.DESCRIPTION, B.DESCRIPTION, 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
left join dbo.CREDITTYPECODE B on B.ID = CTE.BCREDITTYPECODEID
left join dbo.CREDITTYPECODE R on R.ID = CTE.RCREDITTYPECODEID
where isnull(CTE.BCREDITTYPECODEID,@NULLGUID) <> isnull(CTE.RCREDITTYPECODEID,@NULLGUID)
union all
--
select CTE.SEQUENCE, 'Credit card number', CTE.RCREDITCARDPARTIALNUMBER, CTE.BCREDITCARDPARTIALNUMBER, 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where isnull(CTE.BCREDITCARDPARTIALNUMBER,'') <> isnull(CTE.RCREDITCARDPARTIALNUMBER,'')
union all
--
select CTE.SEQUENCE, 'Credit card expires on',
case when CTE.RPAYMENTMETHODCODE = 2 then convert(nvarchar(100),dbo.UFN_DATE_FROMFUZZYDATE(CTE.REXPIRESON)) end,
case when CTE.BPAYMENTMETHODCODE = 2 then convert(nvarchar(100),dbo.UFN_DATE_FROMFUZZYDATE(CTE.BEXPIRESON)) end, 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, 'DATE' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where isnull(CTE.BEXPIRESON,'00000000') <> isnull(CTE.REXPIRESON,'00000000')
union all
--
select CTE.SEQUENCE, 'Credit card authorization code', CTE.RAUTHORIZATIONCODE, CTE.BAUTHORIZATIONCODE, 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where isnull(CTE.BAUTHORIZATIONCODE,'') <> isnull(CTE.RAUTHORIZATIONCODE,'')
union all
--
-- direct debit payment method fields
--
select CTE.SEQUENCE, 'Direct debit result', CTE.RDIRECTDEBITRESULTCODE, CTE.BDIRECTDEBITRESULTCODE, 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BDIRECTDEBITRESULTCODE <> isnull(CTE.RDIRECTDEBITRESULTCODE,'')
union all
--
select CTE.SEQUENCE, 'Direct debit is rejected',
case CTE.RDIRECTDEBITISREJECTED when 1 then 'Yes' when 0 then 'No' end,
case CTE.BDIRECTDEBITISREJECTED when 1 then 'Yes' when 0 then 'No' end, 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where isnull(CTE.BDIRECTDEBITISREJECTED,-1) <> isnull(CTE.RDIRECTDEBITISREJECTED,-1)
union all
--
-- stock payment method fields
--
select CTE.SEQUENCE, 'Issuer', CTE.RISSUER, CTE.BISSUER, 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BISSUER <> isnull(CTE.RISSUER,'')
union all
--
select CTE.SEQUENCE, 'Median price',
cast(CTE.RMEDIANPRICE as nvarchar(15)), cast(CTE.BMEDIANPRICE as nvarchar(15)), 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BMEDIANPRICE <> isnull(CTE.RMEDIANPRICE,0)
union all
--
select CTE.SEQUENCE, 'Stock number of units',
cast(CTE.RNUMBEROFUNITS as nvarchar(24)), cast(CTE.BNUMBEROFUNITS as nvarchar(24)), 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BNUMBEROFUNITS <> isnull(CTE.RNUMBEROFUNITS,0)
union all
--
select CTE.SEQUENCE, 'Symbol', CTE.RSYMBOL, CTE.BSYMBOL, 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BSYMBOL <> isnull(CTE.RSYMBOL,'')
union all
--
select CTE.SEQUENCE, 'Low price',
cast(CTE.RLOWPRICE as nvarchar(24)), cast(CTE.BLOWPRICE as nvarchar(24)), 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BLOWPRICE <> isnull(CTE.RLOWPRICE,0)
union all
--
select CTE.SEQUENCE, 'High price',
cast(CTE.RHIGHPRICE as nvarchar(24)), cast(CTE.BHIGHPRICE as nvarchar(24)), 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BHIGHPRICE <> isnull(CTE.RHIGHPRICE,0)
union all
--
-- property payment method fields
--
select CTE.SEQUENCE, 'Property subtype', R.DESCRIPTION, B.DESCRIPTION, 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
left join dbo.PROPERTYSUBTYPECODE B on B.ID = CTE.BPROPERTYSUBTYPECODEID
left join dbo.PROPERTYSUBTYPECODE R on R.ID = CTE.RPROPERTYSUBTYPECODEID
where isnull(CTE.BPROPERTYSUBTYPECODEID,@NULLGUID) <> isnull(CTE.RPROPERTYSUBTYPECODEID,@NULLGUID)
union all
--
select CTE.SEQUENCE, 'Sale date',
convert(nvarchar(100),CTE.RSALEDATE), convert(nvarchar(100),CTE.BSALEDATE), 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, 'DATE' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where isnull(CTE.BSALEDATE,@NULLDATE) <> isnull(CTE.RSALEDATE,@NULLDATE)
union all
--
select CTE.SEQUENCE, 'Sale amount',
convert(nvarchar(100), CTE.RSALEAMOUNT, 126),convert(nvarchar(100), CTE.BSALEAMOUNT, 126), 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, 'MONEY' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BSALEAMOUNT <> isnull(CTE.RSALEAMOUNT,0)
union all
--
select CTE.SEQUENCE, 'Sale fees',
cast(CTE.RBROKERFEE as nvarchar(19)), cast(CTE.BBROKERFEE as nvarchar(19)), 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BBROKERFEE <> isnull(CTE.RBROKERFEE,0)
union all
--
select CTE.SEQUENCE, 'Sale GL post date',
convert(nvarchar(100),CTE.RSALEPOSTDATE), convert(nvarchar(100),CTE.BSALEPOSTDATE), 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, 'DATE' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where isnull(CTE.BSALEPOSTDATE,@NULLDATE) <> isnull(CTE.RSALEPOSTDATE,@NULLDATE)
union all
--
select CTE.SEQUENCE, 'Sale GL post status', CTE.RSALEPOSTSTATUS, CTE.BSALEPOSTSTATUS, 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where isnull(CTE.BSALEPOSTSTATUS,'') <> isnull(CTE.RSALEPOSTSTATUS,'')
union all
--
-- gift-in-kind payment method fields
--
select CTE.SEQUENCE, 'Gift-in-kind subtype', R.DESCRIPTION, B.DESCRIPTION, 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
left join dbo.GIFTINKINDSUBTYPECODE B on B.ID = CTE.BGIFTINKINDSUBTYPECODEID
left join dbo.GIFTINKINDSUBTYPECODE R on R.ID = CTE.RGIFTINKINDSUBTYPECODEID
where isnull(CTE.BGIFTINKINDSUBTYPECODEID,@NULLGUID) <> isnull(CTE.RGIFTINKINDSUBTYPECODEID,@NULLGUID)
union all
--
select CTE.SEQUENCE, 'Item name', CTE.RGIFTINKINDITEMNAME, CTE.BGIFTINKINDITEMNAME, 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BGIFTINKINDITEMNAME <> isnull(CTE.RGIFTINKINDITEMNAME,'')
union all
--
select CTE.SEQUENCE, 'Disposition', CTE.RGIFTINKINDDISPOSITION, CTE.BGIFTINKINDDISPOSITION, 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where isnull(CTE.BGIFTINKINDDISPOSITION,'') <> isnull(CTE.RGIFTINKINDDISPOSITION,'')
union all
--
select CTE.SEQUENCE, 'Gift-in-kind number of units',
cast(CTE.RGIFTINKINDNUMBEROFUNITS as nvarchar(10)),
cast(CTE.BGIFTINKINDNUMBEROFUNITS as nvarchar(10)), 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BGIFTINKINDNUMBEROFUNITS <> isnull(CTE.RGIFTINKINDNUMBEROFUNITS,0)
union all
--
select CTE.SEQUENCE, 'Fair market value per unit',
cast(CTE.RGIFTINKINDFAIRMARKETVALUE as nvarchar(19)),
cast(CTE.BGIFTINKINDFAIRMARKETVALUE as nvarchar(19)), 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BGIFTINKINDFAIRMARKETVALUE <> isnull(CTE.RGIFTINKINDFAIRMARKETVALUE,0)
union all
--
-- other payment method fields
--
select CTE.SEQUENCE, 'Other method', R.DESCRIPTION, B.DESCRIPTION, 70,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
left join dbo.OTHERPAYMENTMETHODCODE B on B.ID = CTE.BOTHERPAYMENTMETHODCODEID
left join dbo.OTHERPAYMENTMETHODCODE R on R.ID = CTE.ROTHERPAYMENTMETHODCODEID
where isnull(CTE.BOTHERPAYMENTMETHODCODEID,@NULLGUID) <> isnull(CTE.ROTHERPAYMENTMETHODCODEID,@NULLGUID)
union all
--
select CTE.SEQUENCE, 'Exchange rate',
convert(nvarchar(100),CTE.REXCHANGERATE,126),
convert(nvarchar(100),CTE.BEXCHANGERATE,126), 4,
CTE.TYPE, CTE.CONSTITUENTNAME, CTE.BDATE, CTE.BLOOKUPID, CTE.ADJUSTMENTREASONCODE, 'DECIMAL' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BEXCHANGERATE <> isnull(CTE.REXCHANGERATE,0)
) X;
----------------------------------------------------------------------
-- Splits
with CTE as (
-- single non-application split
select BR.SEQUENCE,
BR.REVENUESPLITID FIELDRECORDID,
case BR.TYPECODE when 0 then BR.APPLICATION + ' - ' else '' end + dbo.UFN_DESIGNATION_GETNAME(BR.SINGLEDESIGNATIONID) FIELDRECORDKEY,
null FIELDRECORDKEYDATE,
case when RS.ID is not null then 0 else 1 end FIELDRECORDCODE,
0 BAMOUNT, -- ignore changes in amount to single split scenario, this will just mirror change to revenue amount
0 RAMOUNT,
null BCAMPAIGNS,
(select dbo.UDA_BUILDLIST(C.USERID+case when len(X.SUBPRIORITIES) > 0 then '('+X.SUBPRIORITIES+')' else '' end)
from (select RSC.CAMPAIGNID, dbo.UDA_BUILDLIST(CS.NAME) SUBPRIORITIES
from dbo.REVENUESPLITCAMPAIGN RSC
left join dbo.CAMPAIGNSUBPRIORITY CS on CS.ID = RSC.CAMPAIGNSUBPRIORITYID
where RSC.REVENUESPLITID = RS.ID
group by RSC.CAMPAIGNID) X
inner join dbo.CAMPAIGN C on C.ID = X.CAMPAIGNID) RCAMPAIGNS,
CURRENCY.ISO4217,
CURRENCY.CURRENCYSYMBOL,
CURRENCY.DECIMALDIGITS,
CURRENCY.SYMBOLDISPLAYSETTINGCODE
from dbo.BATCHREVENUE BR
inner join dbo.CURRENCY on CURRENCY.ID = BR.TRANSACTIONCURRENCYID
left join dbo.REVENUESPLIT RS on RS.ID = BR.REVENUESPLITID and RS.DESIGNATIONID = BR.SINGLEDESIGNATIONID and RS.APPLICATIONCODE = case BR.APPLICATIONCODE when 1 then 4 when 2 then 7 when 3 then 0 else BR.APPLICATIONCODE end
where BR.BATCHID = @BATCHID
and not exists(select 'x'
from dbo.BATCHREVENUESPLIT BRS
where BRS.BATCHREVENUEID = BR.ID)
and not exists(select 'x'
from dbo.BATCHREVENUEAPPLICATION BRA
where BRA.BATCHREVENUEID = BR.ID)
and not exists(select 'x'
from dbo.BATCHREVENUEADDITIONALAPPLICATIONS BRA
where BRA.BATCHREVENUEID = BR.ID)
union all
-- added/updated multiple non-application splits
select BR.SEQUENCE,
BRS.REVENUESPLITID,
case BR.TYPECODE when 0 then BR.APPLICATION + ' - ' else '' end + dbo.UFN_DESIGNATION_GETNAME(BRS.DESIGNATIONID),
null FIELDRECORDKEYDATE,
case when RS.ID is not null then 0 else 1 end,
BRS.AMOUNT,
RS.TRANSACTIONAMOUNT,
(select dbo.UDA_BUILDLIST(C.USERID+case when len(X.SUBPRIORITIES) > 0 then '('+X.SUBPRIORITIES+')' else '' end)
from (select BRSC.CAMPAIGNID, dbo.UDA_BUILDLIST(CS.NAME) SUBPRIORITIES
from dbo.BATCHREVENUESPLITCAMPAIGN BRSC
left join dbo.CAMPAIGNSUBPRIORITY CS on CS.ID = BRSC.CAMPAIGNSUBPRIORITYID
where BRSC.BATCHREVENUESPLITID = BRS.ID
group by BRSC.CAMPAIGNID) X
inner join dbo.CAMPAIGN C on C.ID = X.CAMPAIGNID),
(select dbo.UDA_BUILDLIST(C.USERID+case when len(X.SUBPRIORITIES) > 0 then '('+X.SUBPRIORITIES+')' else '' end)
from (select RSC.CAMPAIGNID, dbo.UDA_BUILDLIST(CS.NAME) SUBPRIORITIES
from dbo.REVENUESPLITCAMPAIGN RSC
left join dbo.CAMPAIGNSUBPRIORITY CS on CS.ID = RSC.CAMPAIGNSUBPRIORITYID
where RSC.REVENUESPLITID = RS.ID
group by RSC.CAMPAIGNID) X
inner join dbo.CAMPAIGN C on C.ID = X.CAMPAIGNID),
CURRENCY.ISO4217,
CURRENCY.CURRENCYSYMBOL,
CURRENCY.DECIMALDIGITS,
CURRENCY.SYMBOLDISPLAYSETTINGCODE
from dbo.BATCHREVENUE BR
inner join dbo.CURRENCY on CURRENCY.ID = BR.TRANSACTIONCURRENCYID
inner join dbo.BATCHREVENUESPLIT BRS on BRS.BATCHREVENUEID = BR.ID
left join dbo.REVENUESPLIT RS on RS.ID = BRS.REVENUESPLITID and RS.DESIGNATIONID = BRS.DESIGNATIONID and RS.APPLICATIONCODE = BRS.APPLICATIONCODE
where BR.BATCHID = @BATCHID
and not exists(select 'x'
from dbo.BATCHREVENUEAPPLICATION BRA
where BRA.BATCHREVENUEID = BR.ID)
and not exists(select 'x'
from dbo.BATCHREVENUEADDITIONALAPPLICATIONS BRA
where BRA.BATCHREVENUEID = BR.ID)
union all
-- added/updated application splits
select BR.SEQUENCE,
BRA.REVENUESPLITID,
case BRA.APPLICATIONTYPECODE
-- existing revenue item
when 0 then (select AR.TRANSACTIONTYPE + '(' + cast(AR.AMOUNT as nvarchar(19)) + ',<!DATE!>,' + D.NAME + ')' +
case when AR.CONSTITUENTID <> BR.CONSTITUENTID then ' from ' + AC.NAME else '' end
from dbo.REVENUE AR
left join dbo.CONSTITUENT AC on AC.ID = AR.CONSTITUENTID
left join dbo.DESIGNATION D on D.ID = RS.DESIGNATIONID
where AR.ID = BRA.REVENUEID)
-- event registrant
when 1 then (select 'Event registration(' + AE.NAME + ')' +
case when AR.CONSTITUENTID <> BR.CONSTITUENTID then ' for ' + AC.NAME else '' end
from dbo.REGISTRANT AR
inner join dbo.EVENT AE on AE.ID = AR.EVENTID
left join dbo.CONSTITUENT AC on AC.ID = AR.CONSTITUENTID
where AR.ID = BRA.REGISTRANTID
union all
select 'New event registration(' + AE.NAME + ')' +
case when AR.CONSTITUENTID <> BR.CONSTITUENTID then ' for ' + isnull(AC.NAME,ANC.NAME) else '' end
from dbo.BATCHREVENUEREGISTRANT AR
inner join dbo.EVENT AE on AE.ID = AR.EVENTID
left join dbo.CONSTITUENT AC on AC.ID = AR.CONSTITUENTID
left join dbo.BATCHREVENUECONSTITUENT ANC on ANC.ID = AR.CONSTITUENTID
where AR.ID = BRA.BATCHREVENUEREGISTRANTID)
-- new pledge
when 2 then (select 'New pledge(' + cast(AR.AMOUNT as nvarchar(19)) + ',' + cast(AR.DATE as nvarchar(20)) + ')' +
case when AR.CONSTITUENTID <> BR.CONSTITUENTID then ' from ' + isnull(AC.NAME,ANC.NAME) else '' end
from dbo.BATCHREVENUEAPPLICATIONPLEDGE AR
left join dbo.CONSTITUENT AC on AC.ID = AR.CONSTITUENTID
left join dbo.BATCHREVENUECONSTITUENT ANC on ANC.ID = AR.CONSTITUENTID
where AR.ID = BRA.BATCHREVENUEAPPLICATIONPLEDGEID)
when 5 then (select 'Membership(' + AMP.NAME + ')'
from dbo.BATCHREVENUEAPPLICATIONMEMBERSHIP AR
inner join dbo.MEMBERSHIPPROGRAM AMP on AMP.ID = AR.MEMBERSHIPPROGRAMID
where AR.ID = BRA.BATCHREVENUEAPPLICATIONMEMBERSHIPID)
end,
REVENUE.DATE FIELDRECORDKEYDATE,
case when RS.ID is not null then 0 else 1 end,
BRA.APPLIED,
RS.TRANSACTIONAMOUNT,
null,
null,
CURRENCY.ISO4217,
CURRENCY.CURRENCYSYMBOL,
CURRENCY.DECIMALDIGITS,
CURRENCY.SYMBOLDISPLAYSETTINGCODE
from dbo.BATCHREVENUE BR
inner join dbo.CURRENCY on CURRENCY.ID = BR.TRANSACTIONCURRENCYID
inner join dbo.BATCHREVENUEAPPLICATION BRA on BRA.BATCHREVENUEID = BR.ID
left join dbo.REVENUESPLIT RS on RS.ID = BRA.REVENUESPLITID
left join dbo.REVENUE on REVENUE.ID = BRA.REVENUEID
where BR.BATCHID = @BATCHID
-- bug 128781
and BRA.APPLIED > 0
union all
-- added/updated additional non-application splits
select BR.SEQUENCE,
BRA.REVENUESPLITID,
case BR.TYPECODE when 0 then BRA.TYPE + ' - ' else '' end + dbo.UFN_DESIGNATION_GETNAME(BRA.DESIGNATIONID) FIELDRECORDKEY,
null FIELDRECORDKEYDATE,
case when RS.ID is not null then 0 else 1 end,
BRA.APPLIED,
RS.TRANSACTIONAMOUNT,
(select dbo.UDA_BUILDLIST(C.USERID+case when len(X.SUBPRIORITIES) > 0 then '('+X.SUBPRIORITIES+')' else '' end)
from (select BRAC.CAMPAIGNID, dbo.UDA_BUILDLIST(CS.NAME) SUBPRIORITIES
from dbo.BATCHREVENUEADDITIONALAPPLICATIONCAMPAIGN BRAC
left join dbo.CAMPAIGNSUBPRIORITY CS on CS.ID = BRAC.CAMPAIGNSUBPRIORITYID
where BRAC.BATCHREVENUEADDITIONALAPPLICATIONSID = BRA.ID
group by BRAC.CAMPAIGNID) X
inner join dbo.CAMPAIGN C on C.ID = X.CAMPAIGNID),
(select dbo.UDA_BUILDLIST(C.USERID+case when len(X.SUBPRIORITIES) > 0 then '('+X.SUBPRIORITIES+')' else '' end)
from (select RSC.CAMPAIGNID, dbo.UDA_BUILDLIST(CS.NAME) SUBPRIORITIES
from dbo.REVENUESPLITCAMPAIGN RSC
left join dbo.CAMPAIGNSUBPRIORITY CS on CS.ID = RSC.CAMPAIGNSUBPRIORITYID
where RSC.REVENUESPLITID = RS.ID
group by RSC.CAMPAIGNID) X
inner join dbo.CAMPAIGN C on C.ID = X.CAMPAIGNID),
CURRENCY.ISO4217,
CURRENCY.CURRENCYSYMBOL,
CURRENCY.DECIMALDIGITS,
CURRENCY.SYMBOLDISPLAYSETTINGCODE
from dbo.BATCHREVENUE BR
inner join dbo.CURRENCY on CURRENCY.ID = BR.TRANSACTIONCURRENCYID
inner join dbo.BATCHREVENUEADDITIONALAPPLICATIONS BRA on BRA.BATCHREVENUEID = BR.ID
left join dbo.REVENUESPLIT RS on RS.ID = BRA.REVENUESPLITID and RS.DESIGNATIONID = BRA.DESIGNATIONID and RS.APPLICATIONCODE = case BRA.TYPECODE when 1 then 4 when 2 then 7 when 3 then 0 else BRA.TYPECODE end
where BR.BATCHID = @BATCHID
union all
-- deleted splits
select BR.SEQUENCE,
RS.ID,
case R.TRANSACTIONTYPECODE when 0 then RS.APPLICATION + ' - ' else '' end + dbo.UFN_DESIGNATION_GETNAME(RS.DESIGNATIONID),
null FIELDRECORDKEYDATE,
2,
null,
RS.TRANSACTIONAMOUNT,
null,
(select dbo.UDA_BUILDLIST(C.USERID+case when len(X.SUBPRIORITIES) > 0 then '('+X.SUBPRIORITIES+')' else '' end)
from (select RSC.CAMPAIGNID, dbo.UDA_BUILDLIST(CS.NAME) SUBPRIORITIES
from dbo.REVENUESPLITCAMPAIGN RSC
left join dbo.CAMPAIGNSUBPRIORITY CS on CS.ID = RSC.CAMPAIGNSUBPRIORITYID
where RSC.REVENUESPLITID = RS.ID
group by RSC.CAMPAIGNID) X
inner join dbo.CAMPAIGN C on C.ID = X.CAMPAIGNID),
CURRENCY.ISO4217,
CURRENCY.CURRENCYSYMBOL,
CURRENCY.DECIMALDIGITS,
CURRENCY.SYMBOLDISPLAYSETTINGCODE
from dbo.BATCHREVENUE BR
inner join dbo.CURRENCY on CURRENCY.ID = BR.TRANSACTIONCURRENCYID
inner join dbo.REVENUE R on R.ID = BR.REVENUEID
inner join dbo.REVENUESPLIT RS on RS.REVENUEID = R.ID
where BR.BATCHID = @BATCHID
and (((BR.REVENUESPLITID is null or
RS.ID <> BR.REVENUESPLITID or
RS.DESIGNATIONID <> BR.SINGLEDESIGNATIONID or
RS.APPLICATIONCODE <> case BR.APPLICATIONCODE when 1 then 4 when 2 then 7 when 3 then 0 else BR.APPLICATIONCODE end) and
not exists(select 'x'
from dbo.BATCHREVENUESPLIT BRS
where BRS.BATCHREVENUEID = BR.ID) and
not exists(select 'x'
from dbo.BATCHREVENUEAPPLICATION BRA
where BRA.BATCHREVENUEID = BR.ID) and
not exists(select 'x'
from dbo.BATCHREVENUEADDITIONALAPPLICATIONS BRA
where BRA.BATCHREVENUEID = BR.ID)) or
(not exists(select 'x'
from dbo.BATCHREVENUESPLIT BRS
where BRS.BATCHREVENUEID = BR.ID
and BRS.REVENUESPLITID = RS.ID
and BRS.DESIGNATIONID = RS.DESIGNATIONID
and BRS.APPLICATIONCODE = RS.APPLICATIONCODE) and
not exists(select 'x'
from dbo.BATCHREVENUEAPPLICATION BRA
where BRA.BATCHREVENUEID = BR.ID
and BRA.REVENUESPLITID = RS.ID) and
not exists(select 'x'
from dbo.BATCHREVENUEADDITIONALAPPLICATIONS BRA
where BRA.BATCHREVENUEID = BR.ID
and BRA.REVENUESPLITID = RS.ID
and BRA.DESIGNATIONID = RS.DESIGNATIONID
and case BRA.TYPECODE when 1 then 4 when 2 then 7 when 3 then 0 else BRA.TYPECODE end = RS.APPLICATIONCODE)))
)
insert into @RESULTS
select CTE.SEQUENCE, 'Splits', null, CTE.FIELDRECORDID, CTE.FIELDRECORDKEY, CTE.FIELDRECORDKEYDATE, CTE.FIELDRECORDCODE,
'Amount', convert(nvarchar(100), CTE.RAMOUNT, 126),convert(nvarchar(100), CTE.BAMOUNT, 126), 200, 'MONEY' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BAMOUNT <> CTE.RAMOUNT
or CTE.BAMOUNT is null
or CTE.RAMOUNT is null
union all
--
select CTE.SEQUENCE, 'Splits', null, CTE.FIELDRECORDID, CTE.FIELDRECORDKEY, CTE.FIELDRECORDKEYDATE, CTE.FIELDRECORDCODE,
'Campaigns', CTE.RCAMPAIGNS, CTE.BCAMPAIGNS, 201, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where isnull(CTE.BCAMPAIGNS,'') <> isnull(CTE.RCAMPAIGNS,'');
----------------------------------------------------------------------
-- Recognition
with CTE as (
-- added/updated recognition credits
select BR.SEQUENCE,
BRR.REVENUERECOGNITIONID FIELDRECORDID,
case when BRR.DONORCHALLENGERECOGNITIONTYPECODE in (1, 2) then case when RCD.NAME is not null then RCD.NAME + ' - ' else '' end else case when D.NAME is not null then D.NAME + ' - ' else '' end end + isnull(C.NAME,BC.NAME) FIELDRECORDKEY,
case when RR.ID is not null and BRR.CONSTITUENTID = RR.CONSTITUENTID then 0 when RC.ID is not null and BRR.CONSTITUENTID = RC.CONSTITUENTID then 0 else 1 end FIELDRECORDCODE,
BRR.AMOUNT BAMOUNT,
case when RC.ID is not null then RC.AMOUNT else RR.AMOUNT end RAMOUNT,
BRR.EFFECTIVEDATE BEFFECTIVEDATE,
case when RC.ID is not null then RC.EFFECTIVEDATE else RR.EFFECTIVEDATE end REFFECTIVEDATE,
BRR.REVENUERECOGNITIONTYPECODEID BREVENUERECOGNITIONTYPECODEID,
case when RC.ID is not null then RC.USERRECOGNITIONTYPECODEID else RR.REVENUERECOGNITIONTYPECODEID end RREVENUERECOGNITIONTYPECODEID,
CURRENCY.ISO4217,
CURRENCY.CURRENCYSYMBOL,
CURRENCY.DECIMALDIGITS,
CURRENCY.SYMBOLDISPLAYSETTINGCODE
from dbo.BATCHREVENUE BR
inner join dbo.CURRENCY on CURRENCY.ID = BR.BASECURRENCYID
inner join dbo.BATCHREVENUERECOGNITION BRR on BRR.BATCHREVENUEID = BR.ID
left join dbo.CONSTITUENT C on C.ID = BRR.CONSTITUENTID
left join dbo.BATCHREVENUECONSTITUENT BC on BC.ID = BRR.CONSTITUENTID
left join dbo.DESIGNATION D on D.ID = BRR.ADDITIONALAPPLICATIONDESIGNATIONID
left join dbo.REVENUERECOGNITION RR on RR.ID = BRR.REVENUERECOGNITIONID
left join dbo.RECOGNITIONCREDIT RC on RC.ID = BRR.REVENUERECOGNITIONID
left join dbo.DESIGNATION RCD on RCD.ID = BRR.RECOGNITIONCREDITDESIGNATIONID
where BR.BATCHID = @BATCHID
union all
-- deleted recognition credits
select BR.SEQUENCE,
RR.ID,
D.NAME + ' - ' + C.NAME,
2,
null,
RR.AMOUNT,
null,
RR.EFFECTIVEDATE,
null,
RR.REVENUERECOGNITIONTYPECODEID,
CURRENCY.ISO4217,
CURRENCY.CURRENCYSYMBOL,
CURRENCY.DECIMALDIGITS,
CURRENCY.SYMBOLDISPLAYSETTINGCODE
from dbo.BATCHREVENUE BR
inner join dbo.CURRENCY on CURRENCY.ID = BR.BASECURRENCYID
inner join dbo.REVENUESPLIT RS on RS.REVENUEID = BR.REVENUEID
inner join dbo.REVENUERECOGNITION RR on RR.REVENUESPLITID = RS.ID
inner join dbo.DESIGNATION D on D.ID = RS.DESIGNATIONID
inner join dbo.CONSTITUENT C on C.ID = RR.CONSTITUENTID
where BR.BATCHID = @BATCHID
and not exists(select 'x'
from dbo.BATCHREVENUERECOGNITION BRR
where BRR.BATCHREVENUEID = BR.ID
and BRR.REVENUERECOGNITIONID = RR.ID
and BRR.CONSTITUENTID = RR.CONSTITUENTID)
union all
-- deleted recognition credits matched by donor challenge
select BR.SEQUENCE,
RC.ID,
D.NAME + ' - ' + C.NAME,
2,
null,
RC.AMOUNT,
null,
RC.EFFECTIVEDATE,
null,
RC.REVENUERECOGNITIONTYPECODEID,
CURRENCY.ISO4217,
CURRENCY.CURRENCYSYMBOL,
CURRENCY.DECIMALDIGITS,
CURRENCY.SYMBOLDISPLAYSETTINGCODE
from dbo.BATCHREVENUE BR
inner join dbo.CURRENCY on CURRENCY.ID = BR.BASECURRENCYID
inner join dbo.REVENUESPLIT RS on RS.REVENUEID = BR.REVENUEID
cross apply dbo.UFN_RECOGNITIONCREDIT_DONORCHALLENGE_GETRECOGNITIONS(RS.ID) RC
inner join dbo.DESIGNATION D on D.ID = RC.DESIGNATIONID
inner join dbo.CONSTITUENT C on C.ID = RC.CONSTITUENTID
where BR.BATCHID = @BATCHID and RC.DONORCHALLENGERECOGNITIONTYPECODE in (1, 2)
and not exists(select 'x'
from dbo.BATCHREVENUERECOGNITION BRR
where BRR.BATCHREVENUEID = BR.ID
and BRR.REVENUERECOGNITIONID = RC.ID
and BRR.CONSTITUENTID = RC.CONSTITUENTID)
)
insert into @RESULTS
select CTE.SEQUENCE, 'Recognition credits', null, CTE.FIELDRECORDID, CTE.FIELDRECORDKEY, null, CTE.FIELDRECORDCODE,
'Amount', convert(nvarchar(100), CTE.RAMOUNT, 126),convert(nvarchar(100), CTE.BAMOUNT, 126), 210, 'MONEY' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where isnull(CTE.BAMOUNT,0) <> isnull(CTE.RAMOUNT,0)
union all
--
select CTE.SEQUENCE, 'Recognition credits', null, CTE.FIELDRECORDID, CTE.FIELDRECORDKEY, null, CTE.FIELDRECORDCODE,
'Effective date', convert(nvarchar(100),CTE.REFFECTIVEDATE),
convert(nvarchar(100),CTE.BEFFECTIVEDATE), 211, 'DATE' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where isnull(CTE.BEFFECTIVEDATE,@NULLDATE) <> isnull(CTE.REFFECTIVEDATE,@NULLDATE)
union all
--
select CTE.SEQUENCE, 'Recognition credits', null, CTE.FIELDRECORDID, CTE.FIELDRECORDKEY, null, CTE.FIELDRECORDCODE,
'Type', R.DESCRIPTION, B.DESCRIPTION, 212, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
left join dbo.REVENUERECOGNITIONTYPECODE B on B.ID = CTE.BREVENUERECOGNITIONTYPECODEID
left join dbo.REVENUERECOGNITIONTYPECODE R on R.ID = CTE.RREVENUERECOGNITIONTYPECODEID
where isnull(CTE.BREVENUERECOGNITIONTYPECODEID,@NULLGUID) <> isnull(CTE.RREVENUERECOGNITIONTYPECODEID,@NULLGUID);
----------------------------------------------------------------------
-- Solicitors
with CTE as (
-- added/updated solicitors
select BR.SEQUENCE,
BRS.REVENUESOLICITORID FIELDRECORDID,
case when D.NAME is not null then D.NAME + ' - ' else '' end + isnull(C.NAME,BC.NAME) FIELDRECORDKEY,
case when RS.ID is not null and BRS.CONSTITUENTID = RS.CONSTITUENTID then 0 else 1 end FIELDRECORDCODE,
BRS.AMOUNT BAMOUNT,
RS.AMOUNT RAMOUNT,
CURRENCY.ISO4217,
CURRENCY.CURRENCYSYMBOL,
CURRENCY.DECIMALDIGITS,
CURRENCY.SYMBOLDISPLAYSETTINGCODE
from dbo.BATCHREVENUE BR
inner join dbo.CURRENCY on CURRENCY.ID = BR.BASECURRENCYID
inner join dbo.BATCHREVENUESOLICITOR BRS on BRS.BATCHREVENUEID = BR.ID
left join dbo.CONSTITUENT C on C.ID = BRS.CONSTITUENTID
left join dbo.BATCHREVENUECONSTITUENT BC on BC.ID = BRS.CONSTITUENTID
left join dbo.DESIGNATION D on D.ID = BRS.ADDITIONALAPPLICATIONDESIGNATIONID
left join dbo.REVENUESOLICITOR RS on RS.ID = BRS.REVENUESOLICITORID
where BR.BATCHID = @BATCHID
union all
-- deleted solicitors
select BR.SEQUENCE,
RSO.ID,
D.NAME + ' - ' + C.NAME,
2,
null,
RSO.AMOUNT,
CURRENCY.ISO4217,
CURRENCY.CURRENCYSYMBOL,
CURRENCY.DECIMALDIGITS,
CURRENCY.SYMBOLDISPLAYSETTINGCODE
from dbo.BATCHREVENUE BR
inner join dbo.CURRENCY on CURRENCY.ID = BR.BASECURRENCYID
inner join dbo.REVENUESPLIT RS on RS.REVENUEID = BR.REVENUEID
inner join dbo.REVENUESOLICITOR RSO on RSO.REVENUESPLITID = RS.ID
inner join dbo.DESIGNATION D on D.ID = RS.DESIGNATIONID
inner join dbo.CONSTITUENT C on C.ID = RSO.CONSTITUENTID
where BR.BATCHID = @BATCHID
and not exists(select 'x'
from dbo.BATCHREVENUESOLICITOR BRSO
where BRSO.BATCHREVENUEID = BR.ID
and BRSO.REVENUESOLICITORID = RSO.ID
and BRSO.CONSTITUENTID = RSO.CONSTITUENTID)
)
insert into @RESULTS
select CTE.SEQUENCE, 'Solicitors', null, CTE.FIELDRECORDID, CTE.FIELDRECORDKEY, null, CTE.FIELDRECORDCODE,
'Amount', convert(nvarchar(100), CTE.RAMOUNT, 126),convert(nvarchar(100), CTE.BAMOUNT, 126), 220, 'MONEY' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where isnull(CTE.BAMOUNT,0) <> isnull(CTE.RAMOUNT,0);
------------------------------------------------------------------------
-- Benefits
with CTE as (
-- added/updated amount benefits
select BR.SEQUENCE,
BRB.REVENUEBENEFITID FIELDRECORDID,
B.NAME FIELDRECORDKEY,
case when RB.ID is not null and RB.BENEFITID = BRB.BENEFITID then 0 else 1 end FIELDRECORDCODE,
0 BENEFITTYPE,
BRB.QUANTITY BQUANTITY,
RB.QUANTITY RQUANTITY,
BRB.UNITVALUE BUNITVALUE,
RB.UNITVALUE RUNITVALUE,
BRB.DETAILS BDETAILS,
RB.DETAILS RDETAILS,
CURRENCY.ISO4217,
CURRENCY.CURRENCYSYMBOL,
CURRENCY.DECIMALDIGITS,
CURRENCY.SYMBOLDISPLAYSETTINGCODE
from dbo.BATCHREVENUE BR
inner join dbo.BATCHREVENUEBENEFIT BRB on BRB.BATCHREVENUEID = BR.ID
inner join dbo.BENEFIT B on B.ID = BRB.BENEFITID
inner join dbo.CURRENCY on CURRENCY.ID = B.BASECURRENCYID
left join dbo.REVENUEBENEFIT RB on RB.ID = BRB.REVENUEBENEFITID
where BR.BATCHID = @BATCHID
union all
-- added/updated percent benefits
select BR.SEQUENCE,
BRB.REVENUEBENEFITID,
B.NAME,
case when RB.ID is not null and RB.BENEFITID = BRB.BENEFITID then 0 else 1 end,
1,
BRB.VALUEPERCENT,
RB.VALUEPERCENT,
BRB.PERCENTAPPLICABLEAMOUNT,
RB.PERCENTAPPLICABLEAMOUNT,
BRB.DETAILS,
RB.DETAILS,
CURRENCY.ISO4217,
CURRENCY.CURRENCYSYMBOL,
CURRENCY.DECIMALDIGITS,
CURRENCY.SYMBOLDISPLAYSETTINGCODE
from dbo.BATCHREVENUE BR
inner join dbo.BATCHREVENUEBENEFITPCT BRB on BRB.BATCHREVENUEID = BR.ID
inner join dbo.BENEFIT B on B.ID = BRB.BENEFITID
inner join dbo.CURRENCY on CURRENCY.ID = B.BASECURRENCYID
left join dbo.REVENUEBENEFIT RB on RB.ID = BRB.REVENUEBENEFITID
where BR.BATCHID = @BATCHID
union all
-- deleted benefits
select BR.SEQUENCE,
RB.ID,
B.NAME,
2,
case RB.UNITVALUE when 0 then 1 else 0 end,
null,
case RB.UNITVALUE when 0 then RB.VALUEPERCENT else RB.QUANTITY end,
null,
case RB.UNITVALUE when 0 then RB.PERCENTAPPLICABLEAMOUNT else RB.UNITVALUE end,
null,
RB.DETAILS RDETAILS,
CURRENCY.ISO4217,
CURRENCY.CURRENCYSYMBOL,
CURRENCY.DECIMALDIGITS,
CURRENCY.SYMBOLDISPLAYSETTINGCODE
from dbo.BATCHREVENUE BR
inner join dbo.REVENUEBENEFIT RB on RB.REVENUEID = BR.REVENUEID
inner join dbo.BENEFIT B on B.ID = RB.BENEFITID
inner join dbo.CURRENCY on CURRENCY.ID = B.BASECURRENCYID
where BR.BATCHID = @BATCHID
and not exists(select 'x'
from dbo.BATCHREVENUEBENEFIT BRB
where BRB.BATCHREVENUEID = BR.ID
and BRB.BENEFITID = RB.BENEFITID)
)
insert into @RESULTS
select CTE.SEQUENCE, 'Benefits', null, CTE.FIELDRECORDID, CTE.FIELDRECORDKEY, null, CTE.FIELDRECORDCODE,
case CTE.BENEFITTYPE when 0 then 'Quantity' else 'Percent value' end,
cast(CTE.RQUANTITY as nvarchar(10)), cast(CTE.BQUANTITY as nvarchar(10)), 230, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BQUANTITY <> isnull(CTE.RQUANTITY,0)
union all
--
select CTE.SEQUENCE, 'Benefits', null, CTE.FIELDRECORDID, CTE.FIELDRECORDKEY, null, CTE.FIELDRECORDCODE,
case CTE.BENEFITTYPE when 0 then 'Unit value' else 'Amount' end,
convert(nvarchar(100), CTE.RUNITVALUE, 126),convert(nvarchar(100), CTE.BUNITVALUE, 126), 231, 'MONEY' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BUNITVALUE <> isnull(CTE.RUNITVALUE,0)
union all
--
select CTE.SEQUENCE, 'Benefits', null, CTE.FIELDRECORDID, CTE.FIELDRECORDKEY, null, CTE.FIELDRECORDCODE,
'Details', CTE.RDETAILS, CTE.BDETAILS, 232, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where CTE.BDETAILS <> isnull(CTE.RDETAILS,'');
------------------------------------------------------------------------
-- Tributes
with CTE as (
-- added/updated tributes
select BR.SEQUENCE,
BRT.REVENUETRIBUTEID FIELDRECORDID,
C.NAME FIELDRECORDKEY,
case when RT.ID is not null and RT.TRIBUTEID = BRT.TRIBUTEID then 0 else 1 end FIELDRECORDCODE,
BRT.AMOUNT BAMOUNT,
RT.AMOUNT RAMOUNT,
CURRENCY.ISO4217,
CURRENCY.CURRENCYSYMBOL,
CURRENCY.DECIMALDIGITS,
CURRENCY.SYMBOLDISPLAYSETTINGCODE
from dbo.BATCHREVENUE BR
inner join dbo.BATCHREVENUETRIBUTE BRT on BRT.BATCHREVENUEID = BR.ID
inner join dbo.TRIBUTE T on T.ID = BRT.TRIBUTEID
inner join dbo.CONSTITUENT C on C.ID = T.TRIBUTEEID
left join dbo.REVENUETRIBUTE RT on RT.ID = BRT.REVENUETRIBUTEID
left join dbo.CURRENCY on CURRENCY.ID = RT.BASECURRENCYID
where BR.BATCHID = @BATCHID
union all
-- deleted tributes
select BR.SEQUENCE,
RT.ID,
C.NAME,
2,
null,
RT.AMOUNT,
CURRENCY.ISO4217,
CURRENCY.CURRENCYSYMBOL,
CURRENCY.DECIMALDIGITS,
CURRENCY.SYMBOLDISPLAYSETTINGCODE
from dbo.BATCHREVENUE BR
inner join dbo.REVENUETRIBUTE RT on RT.REVENUEID = BR.REVENUEID
inner join dbo.CURRENCY on CURRENCY.ID = RT.BASECURRENCYID
inner join dbo.TRIBUTE T on T.ID = RT.TRIBUTEID
inner join dbo.CONSTITUENT C on C.ID = T.TRIBUTEEID
where BR.BATCHID = @BATCHID
and not exists(select 'x'
from dbo.BATCHREVENUETRIBUTE BRT
where BRT.BATCHREVENUEID = BR.ID
and BRT.TRIBUTEID = RT.TRIBUTEID)
)
insert into @RESULTS
select CTE.SEQUENCE, 'Tributes', null, CTE.FIELDRECORDID, CTE.FIELDRECORDKEY, null, CTE.FIELDRECORDCODE,
'Amount', convert(nvarchar(100), CTE.RAMOUNT, 126),convert(nvarchar(100), CTE.BAMOUNT, 126), 240, 'MONEY' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where isnull(CTE.BAMOUNT,0) <> isnull(CTE.RAMOUNT,0);
------------------------------------------------------------------------
-- Matching gift claims
with CTE as (
-- added/updated matching gift claims
select BR.SEQUENCE,
BRM.REVENUEMATCHINGGIFTID FIELDRECORDID,
C.NAME FIELDRECORDKEY,
case when R.ID is not null and R.CONSTITUENTID = BRM.ORGANIZATIONID then 0 else 1 end FIELDRECORDCODE,
BRM.RELATIONSHIPID BRELATIONSHIPID,
RMG.RELATIONSHIPID RRELATIONSHIPID,
BRM.MATCHINGGIFTCONDITIONID BMATCHINGGIFTCONDITIONID,
RMG.MATCHINGGIFTCONDITIONID RMATCHINGGIFTCONDITIONID,
BRM.AMOUNT BAMOUNT,
R.TRANSACTIONAMOUNT RAMOUNT,
BRM.DATE BDATE,
R.DATE RDATE,
(select dbo.UDA_BUILDLIST(D.NAME+'('+cast(BRMS.AMOUNT as nvarchar(19))+')')
from dbo.BATCHREVENUEENHANCEDMATCHINGGIFTSPLIT BRMS
inner join dbo.DESIGNATION D on D.ID = BRMS.DESIGNATIONID
where BRMS.BATCHREVENUEENHANCEDMATCHINGGIFTID = BRM.ID) BSPLITS,
(select dbo.UDA_BUILDLIST(D.NAME+'('+cast(RS.AMOUNT as nvarchar(19))+')')
from dbo.REVENUESPLIT RS
inner join dbo.DESIGNATION D on D.ID = RS.DESIGNATIONID
where RS.REVENUEID = R.ID) RSPLITS,
CURRENCY.ISO4217,
CURRENCY.CURRENCYSYMBOL,
CURRENCY.DECIMALDIGITS,
CURRENCY.SYMBOLDISPLAYSETTINGCODE
from dbo.BATCHREVENUE BR
inner join dbo.CURRENCY on CURRENCY.ID = BR.BASECURRENCYID
inner join dbo.BATCHREVENUEENHANCEDMATCHINGGIFTS BRM on BRM.BATCHREVENUEID = BR.ID
inner join dbo.CONSTITUENT C on C.ID = BRM.ORGANIZATIONID
left join dbo.REVENUE R on R.ID = BRM.REVENUEMATCHINGGIFTID
left join dbo.REVENUEMATCHINGGIFT RMG on RMG.ID = R.ID and RMG.MGSOURCEREVENUEID = BR.REVENUEID
where BR.BATCHID = @BATCHID
union all
-- deleted benefits
select BR.SEQUENCE,
RMG.ID,
C.NAME,
2,
null,
RMG.RELATIONSHIPID,
null,
RMG.MATCHINGGIFTCONDITIONID,
null,
R.TRANSACTIONAMOUNT,
null,
R.DATE,
null,
(select dbo.UDA_BUILDLIST(D.NAME+'('+cast(RS.AMOUNT as nvarchar(19))+')')
from dbo.REVENUESPLIT RS
inner join dbo.DESIGNATION D on D.ID = RS.DESIGNATIONID
where RS.REVENUEID = R.ID) RSPLITS,
CURRENCY.ISO4217,
CURRENCY.CURRENCYSYMBOL,
CURRENCY.DECIMALDIGITS,
CURRENCY.SYMBOLDISPLAYSETTINGCODE
from dbo.BATCHREVENUE BR
inner join dbo.CURRENCY on CURRENCY.ID = BR.BASECURRENCYID
inner join dbo.REVENUEMATCHINGGIFT RMG on RMG.MGSOURCEREVENUEID = BR.REVENUEID
inner join dbo.REVENUE R on R.ID = RMG.ID
inner join dbo.CONSTITUENT C on C.ID = R.CONSTITUENTID
where BR.BATCHID = @BATCHID
and not exists(select 'x'
from dbo.BATCHREVENUEENHANCEDMATCHINGGIFTS BRM
where BRM.BATCHREVENUEID = BR.ID
and BRM.ORGANIZATIONID = R.CONSTITUENTID)
)
insert into @RESULTS
select CTE.SEQUENCE, 'Matching gift claims', null, CTE.FIELDRECORDID, CTE.FIELDRECORDKEY, null, CTE.FIELDRECORDCODE,
'Relationship', RT.DESCRIPTION, BT.DESCRIPTION, 250, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
left join dbo.RELATIONSHIP B on B.ID = CTE.BRELATIONSHIPID
left join dbo.RELATIONSHIPTYPECODE BT on BT.ID = B.RELATIONSHIPTYPECODEID
left join dbo.RELATIONSHIP R on R.ID = CTE.RRELATIONSHIPID
left join dbo.RELATIONSHIPTYPECODE RT on RT.ID = R.RELATIONSHIPTYPECODEID
where isnull(CTE.BRELATIONSHIPID,@NULLGUID) <> isnull(CTE.RRELATIONSHIPID,@NULLGUID)
union all
--
select CTE.SEQUENCE, 'Matching gift claims', null, CTE.FIELDRECORDID, CTE.FIELDRECORDKEY, null, CTE.FIELDRECORDCODE,
'MG condition type', RT.DESCRIPTION, BT.DESCRIPTION, 251, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
left join dbo.MATCHINGGIFTCONDITION B on B.ID = CTE.BMATCHINGGIFTCONDITIONID
left join dbo.MATCHINGGIFTCONDITIONTYPECODE BT on BT.ID = B.MATCHINGGIFTCONDITIONTYPECODEID
left join dbo.MATCHINGGIFTCONDITION R on R.ID = CTE.RMATCHINGGIFTCONDITIONID
left join dbo.MATCHINGGIFTCONDITIONTYPECODE RT on RT.ID = R.MATCHINGGIFTCONDITIONTYPECODEID
where isnull(CTE.BMATCHINGGIFTCONDITIONID,@NULLGUID) <> isnull(CTE.RMATCHINGGIFTCONDITIONID,@NULLGUID)
union all
--
select CTE.SEQUENCE, 'Matching gift claims', null, CTE.FIELDRECORDID, CTE.FIELDRECORDKEY, null, CTE.FIELDRECORDCODE,
'Amount', convert(nvarchar(100), CTE.RAMOUNT, 126),convert(nvarchar(100), CTE.BAMOUNT, 126), 252, 'MONEY' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where isnull(CTE.BAMOUNT,0) <> isnull(CTE.RAMOUNT,0)
union all
--
select CTE.SEQUENCE, 'Matching gift claims', null, CTE.FIELDRECORDID, CTE.FIELDRECORDKEY, null, CTE.FIELDRECORDCODE,
'Date', convert(nvarchar(100),CTE.RDATE), convert(nvarchar(100),CTE.BDATE), 253, 'DATE' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where isnull(CTE.BDATE,@NULLDATE) <> isnull(CTE.RDATE,@NULLDATE)
union all
--
select CTE.SEQUENCE, 'Matching gift claims', null, CTE.FIELDRECORDID, CTE.FIELDRECORDKEY, null, CTE.FIELDRECORDCODE,
'Splits', CTE.RSPLITS, CTE.BSPLITS, 254, '' DATATYPE,
CTE.ISO4217, CTE.CURRENCYSYMBOL, CTE.DECIMALDIGITS, CTE.SYMBOLDISPLAYSETTINGCODE
from CTE
where isnull(CTE.BSPLITS,'') <> isnull(CTE.RSPLITS,'');
----------------------------------------------------------------------
-- Return results!!!
select *
from @RESULTS
order by BATCHRECORDSEQUENCE, FIELDSEQUENCE, FIELDRECORDID;