USP_DATAFORMTEMPLATE_EDIT_REVENUE_SPLIT

Saves splits for a revenue detail within a revenue context.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@REVENUEAMOUNT money IN Total amount
@SPLITS xml IN

Definition

Copy


      CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_REVENUE_SPLIT
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @REVENUEAMOUNT money,
                        @SPLITS xml
                    )
                    as 
                        set nocount on;

                        declare @CONSTITUENTISINDIVIDUAL bit = null;

                        exec dbo.[USP_DATAFORMTEMPLATE_EDITLOAD_REVENUE_SPLIT] @ID = @ID;

                        exec dbo.[USP_DATAFORMTEMPLATE_EDIT_REVENUE_SPLIT_2] @ID=@ID, @CHANGEAGENTID=@CHANGEAGENTID, @REVENUEAMOUNT=@REVENUEAMOUNT, @SPLITS=@SPLITS, @CONSTITUENTISINDIVIDUAL=@CONSTITUENTISINDIVIDUAL;

                        --declare @TRANSACTIONTYPECODE tinyint;

                        --declare @CHANGEDATE datetime;

                        --set @CHANGEDATE = getdate();


                        --select @TRANSACTIONTYPECODE = TRANSACTIONTYPECODE from dbo.REVENUE where REVENUE.ID = @ID;


                        --if @TRANSACTIONTYPECODE = 1

                            --raiserror('NOTVALIDFORPLEDGE',13,1)


                        --if @TRANSACTIONTYPECODE = 3

                            --raiserror('NOTVALIDFORMGPLEDGE',13,1)


                        --declare @SPLITSCHANGED bit

                        --set @SPLITSCHANGED = dbo.UFN_CHECKDETAIL_SPLITSCHANGED(@ID, @SPLITS)


                        ---- if the designations have changed, clear any user-defined gl distributions for this revenue record

                        --if exists (select ID from dbo.REVENUEGLDISTRIBUTION where REVENUEID = @ID) or

                            --exists (select ID from dbo.STOCKSALEGLDISTRIBUTION where REVENUEID = @ID) or

                            --exists (select ID from dbo.PROPERTYDETAILGLDISTRIBUTION where PROPERTYDETAILID = @ID) or

                            --exists (select GL.ID from dbo.WRITEOFFGLDISTRIBUTION GL inner join dbo.WRITEOFF on GL.WRITEOFFID = WRITEOFF.ID where WRITEOFF.REVENUEID = @ID) 

                        --begin


                            ---- check to see if designations have changed

                            --if @SPLITSCHANGED = 1

                            ---- clear the user-defined gl distributions

                            --begin

                                ----Cache CONTEXT INFO

                                --declare @contextCache varbinary(128);

                                --set @contextCache = CONTEXT_INFO();


                                --if not @CHANGEAGENTID is null

                                    --set CONTEXT_INFO @CHANGEAGENTID;


                                --delete from dbo.REVENUEGLDISTRIBUTION where REVENUEID = @ID;    


                                --if @TRANSACTIONTYPECODE = 1

                                    --delete from dbo.WRITEOFFGLDISTRIBUTION where WRITEOFFID in (select WO.ID from dbo.WRITEOFF WO where WO.REVENUEID = @ID);

                                --else

                                --begin    

                                    --delete from dbo.STOCKSALEGLDISTRIBUTION where REVENUEID = @ID;

                                    --delete from dbo.PROPERTYDETAILGLDISTRIBUTION where PROPERTYDETAILID = @ID;

                                --end


                                ----Restore CONTEXT_INFO

                                --if not @contextCache is null

                                    --set CONTEXT_INFO @contextCache;

                            --end

                        --end


                        ---- check to see if the revenue record needs to be re-acknowledged                            

                        --if (coalesce((select top 1 REACKNOWLEDGEREVENUE from dbo.ACKNOWLEDGEMENTPREFERENCE), 0)) = 1

                        --begin


                            ---- if designations have changed, mark the revenue letters for this record out of date, if necessary

                            --if dbo.UFN_CHECKDETAIL_SPLITSCHANGED(@ID, @SPLITS) = 1

                                --exec dbo.USP_REVENUELETTER_SETREACKNOWLEDGEMENTS @ID, @CHANGEAGENTID;                     


                        --end


                        ---- Set the IDs for any blank entries in the splits XML so that it can associate the declines with gift aid

                        ---- flag with the generated splits.  Also, pull in the existing value for declines gift aid if it wasn't passed

                        ---- in the xml.

                        --set @SPLITS = (    select 

                                            --case when SPLITS.[ID] is null or SPLITS.[ID] = '00000000-0000-0000-0000-000000000000' then newid() else SPLITS.[ID] end [ID],

                                            --SPLITS.[AMOUNT],

                                            --SPLITS.[APPLICATIONCODE],

                                            --SPLITS.[DESIGNATIONID],

                                            --SPLITS.[TYPECODE],

                                            --case when SPLITS.[DECLINESGIFTAID] is null then REVENUESPLITGIFTAID.DECLINESGIFTAID else SPLITS.DECLINESGIFTAID end DECLINESGIFTAID

                                        --from dbo.UFN_REVENUE_GETSPLITS_FROMITEMLISTXML(@SPLITS) SPLITS

                                        --left join dbo.REVENUESPLITGIFTAID on SPLITS.ID = REVENUESPLITGIFTAID.ID

                                        --for xml raw('ITEM'),type,elements,root('SPLITS'),BINARY BASE64)


                        --exec dbo.USP_REVENUE_SPLIT_EDIT_SAVE @ID, @CHANGEAGENTID, @CHANGEDATE, @REVENUEAMOUNT, @SPLITS;


                        --if @TRANSACTIONTYPECODE = 1 

                            --exec dbo.USP_PLEDGE_FIXDEPENDENTSPLITS @ID, @CHANGEAGENTID, @CHANGEDATE;


                        --if @SPLITSCHANGED = 1

                        --begin

                            --exec dbo.USP_REVENUE_CLEARANDADDCAMPAIGNS @REVENUEID = @ID, 

                                --@CHANGEAGENTID = @CHANGEAGENTID,

                                --@CHANGEDATE = @CHANGEDATE

                        --end


                        ----Gift Aid is for UK only

                        --if dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('9568A6C2-F7AA-45fd-8F54-21FE9654EE2D') = 1

                        --begin

                            --declare @DATE datetime, @APPEALID uniqueidentifier, @PAYMENTMETHODCODE tinyint;

                            --declare @CREDITTYPECODEID uniqueidentifier;

                            --select

                                --@DATE = REVENUE.DATE,

                                --@APPEALID = REVENUE.APPEALID,

                                --@PAYMENTMETHODCODE = REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE

                            --from dbo.REVENUE

                            --inner join dbo.REVENUEPAYMENTMETHOD on REVENUE.ID = REVENUEPAYMENTMETHOD.REVENUEID

                            --where REVENUE.ID = @ID;


                            --if @PAYMENTMETHODCODE = 2

                                --select @CREDITTYPECODEID = CREDITCARD.CREDITTYPECODEID 

                                --from dbo.REVENUE

                                --inner join dbo.REVENUEPAYMENTMETHOD on REVENUE.ID = REVENUEPAYMENTMETHOD.REVENUEID

                                --left join dbo.REVENUESCHEDULE on REVENUE.ID = REVENUESCHEDULE.ID

                                --left join dbo.CREDITCARD on CREDITCARD.ID = REVENUESCHEDULE.CREDITCARDID

                                --where REVENUE.ID = @ID;


                            --declare @SPLITSDECLININGGIFTAID xml

                            --set @SPLITSDECLININGGIFTAID = (    select

                                                                --ID as REVENUESPLITID

                                                            --from dbo.UFN_REVENUE_GETSPLITS_FROMITEMLISTXML(@SPLITS)

                                                            --where DECLINESGIFTAID = 1

                                                            --for xml raw('ITEM'),type,elements,root('SPLITSDECLININGGIFTAID'),BINARY BASE64)


                            --exec dbo.USP_GIFTAIDREVENUESPLIT_ADDUPDATESPLITS @ID, @APPEALID, @PAYMENTMETHODCODE, @CREDITTYPECODEID, @CHANGEAGENTID, @DATE, @TRANSACTIONTYPECODE, @SPLITSDECLININGGIFTAID

                        --end


                        return 0;