spConvertDonationTransactionsForBBPS

Definition

Copy


            create procedure [dbo].[spConvertDonationTransactionsForBBPS]
            as
            begin
                declare @temp table (ID int, data xml)

                insert into @temp (ID, data
                    select donationtransactionsID, convert(xml, REPLACE(convert(nvarchar(max),XMLObjectData), 'encoding="utf-8"',    '')) 
                    from donationtransactions 
                    where processed_date is not null

                update @temp set data.modify('declare namespace ns="urn:blackbaud.RE7.XDATA";
                replace value of (/ns:ShelbyDonationTran/ns:Gift/ns:CreditCardNumber/text())[1]
                with "****************" ')
                where data.exist('declare namespace ns="urn:blackbaud.RE7.XDATA"; /ns:ShelbyDonationTran/ns:Gift/ns:CreditCardNumber')=1
                and (substring(ltrim(data.value('declare namespace ns="urn:blackbaud.RE7.XDATA"; (/ns:ShelbyDonationTran/ns:Gift/ns:CreditCardNumber)[1]','nvarchar(20)')), 1, 4)<>'****')

                update donationtransactions set XMLObjectData = '<?xml version="1.0" encoding="utf-8"?>' + convert(nvarchar(max),t.data
                from @temp t inner join donationtransactions on t.id=donationtransactions.donationtransactionsID

                delete from @temp

                --Transactions Table
                insert into @temp (ID, data
                    select t.ID, convert(xml, REPLACE(convert(nvarchar(max),t.Data), 'encoding="utf-8"',    '')) 
                    from dbo.Transactions t inner join dbo.donationtransactions dt on t.TransactionID = dt.DonationTransactionsID
                    where t.TransactionType = '{5705B543-4033-4a3a-BBCD-A731403EE1E6}' and dt.processed_date is not null

                update @temp set data.modify('declare namespace ns="urn:blackbaud.RE7.XDATA";
                replace value of (/ns:ShelbyDonationTran/ns:Gift/ns:CreditCardNumber/text())[1]
                with "****************" ')
                where data.exist('declare namespace ns="urn:blackbaud.RE7.XDATA"; /ns:ShelbyDonationTran/ns:Gift/ns:CreditCardNumber')=1
                and (substring(ltrim(data.value('declare namespace ns="urn:blackbaud.RE7.XDATA"; (/ns:ShelbyDonationTran/ns:Gift/ns:CreditCardNumber)[1]','nvarchar(20)')), 1, 4)<>'****')

                update dbo.Transactions set Data = '<?xml version="1.0" encoding="utf-8"?>' + convert(nvarchar(max),t.data
                from @temp t inner join dbo.Transactions on t.id=Transactions.ID
            end