spConvertEventTransactionsForBBPS

Definition

Copy


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

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

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

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

                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.EventTransactions et on t.TransactionID = et.EventTransactionsID
                    where t.TransactionType = '{172A5D9A-5241-493c-A2C2-EAC164C095B0}' and et.processed_date is not null

                update @temp set data.modify('declare namespace ns="urn:blackbaud.RE7.XDATA";
                replace value of (/ns:ShelbyEventRegTran/ns:Gift/ns:CreditCardNumber/text())[1]
                with "****************" ')
                where data.exist('declare namespace ns="urn:blackbaud.RE7.XDATA"; /ns:ShelbyEventRegTran/ns:Gift/ns:CreditCardNumber')=1
                and (substring(ltrim(data.value('declare namespace ns="urn:blackbaud.RE7.XDATA"; (/ns:ShelbyEventRegTran/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