USP_REVENUE_SPLIT_EDIT_SAVE_2

Provides a common method to save data for revenue detail split edit forms.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@CHANGEDATE datetime IN
@REVENUEAMOUNT money IN
@SPLITS xml IN

Definition

Copy


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

                begin try
                    declare @TRANSACTIONTYPECODE int;
                    declare @TRANSACTIONCURRENCYID uniqueidentifier;
                    declare @BASECURRENCYID uniqueidentifier;
                    declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
                    declare @BASEEXCHANGERATEID uniqueidentifier;
                    declare @ISMEMBERSHIPTRANSACTION bit;

                    select
                        @TRANSACTIONTYPECODE = REVENUE.TYPECODE,
                        @TRANSACTIONCURRENCYID = REVENUE.TRANSACTIONCURRENCYID,
                        @BASECURRENCYID = BASECURRENCYID,
                        @ORGANIZATIONEXCHANGERATEID = REVENUE.ORGEXCHANGERATEID,
                        @BASEEXCHANGERATEID = REVENUE.BASEEXCHANGERATEID,
                        @ISMEMBERSHIPTRANSACTION = case REVENUE.TYPECODE when 2 then dbo.UFN_RECURRINGGIFT_ISMEMBERSHIP(@ID)
                                                                         when 15 then 1
                                                                         else 0 end
                    from dbo.FINANCIALTRANSACTION REVENUE 
                    inner join dbo.REVENUE_EXT on REVENUE.ID = REVENUE_EXT.ID
                    inner join dbo.PDACCOUNTSYSTEM on REVENUE.PDACCOUNTSYSTEMID = PDACCOUNTSYSTEM.ID
                    inner join dbo.CURRENCYSET on PDACCOUNTSYSTEM.CURRENCYSETID = CURRENCYSET.ID
                    where REVENUE.ID = @ID
                        and REVENUE.DELETEDON is null;

                    if @ISMEMBERSHIPTRANSACTION = 1
                    begin
                        exec dbo.USP_MEMBERSHIPPLEDGE_VALIDATESPLITS @SPLITS, @REVENUEAMOUNT, @TRANSACTIONTYPECODE, @ID, @TRANSACTIONCURRENCYID;

                        --add in missing splits

                        set @SPLITS = (    select ID, AMOUNT, APPLICATIONCODE, DESIGNATIONID, TYPECODE, DECLINESGIFTAID, TRANSACTIONCURRENCYID
                                        from (select 
                                                SPLITS.[ID],
                                                SPLITS.[AMOUNT],
                                                SPLITS.[APPLICATIONCODE],
                                                SPLITS.[DESIGNATIONID],
                                                SPLITS.[TYPECODE],
                                                SPLITS.[DECLINESGIFTAID],
                                                SPLITS.[TRANSACTIONCURRENCYID]
                                            from dbo.UFN_REVENUE_GETSPLITS_2_FROMITEMLISTXML(@SPLITS) SPLITS

                                            union all

                                            select
                                                SPLIT.ID,
                                                SPLIT.TRANSACTIONAMOUNT as AMOUNT,
                                                SPLIT.APPLICATIONCODE,
                                                SPLIT.DESIGNATIONID,
                                                SPLIT.TYPECODE,
                                                SPLIT.DECLINESGIFTAID,
                                                SPLIT.TRANSACTIONCURRENCYID
                                            from dbo.UFN_REVENUE_GETSPLITS_2(@ID) SPLIT
                                            where SPLIT.DESIGNATIONID is null) SPLITS
                                        for xml raw('ITEM'),type,elements,root('SPLITS'),BINARY BASE64);
                    end
                    else
                    begin
                        -- JamesWill 03/13/2006 CR237716-031306

                        exec dbo.USP_REVENUESPLIT_VALIDATESPLITS @SPLITS, @REVENUEAMOUNT, @TRANSACTIONTYPECODE, @ID, @TRANSACTIONCURRENCYID;
                    end

                    if @CHANGEAGENTID is null  
                        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

                    if @CHANGEDATE is null
                        set @CHANGEDATE = getdate()

                    --Multicurrency - RobertDi 4/15/10 - Process the splits xml to calculate the base and organization amounts and place them in proper nodes.

                    set @SPLITS = dbo.UFN_REVENUESPLIT_CONVERTAMOUNTSINXML(@SPLITS,@BASECURRENCYID,@ORGANIZATIONEXCHANGERATEID,@TRANSACTIONCURRENCYID,@BASEEXCHANGERATEID)
                    exec dbo.USP_REVENUE_GETSPLITS_2_UPDATEFROMXML @ID, @SPLITS, @CHANGEAGENTID, @CHANGEDATE;

                end try

                begin catch
                    exec dbo.USP_RAISE_ERROR;
                    return 1;
                end catch

                return 0;