USP_DATAFORMTEMPLATE_EDIT_REVENUESOLICITORS

The save procedure used by the edit dataform template "Revenue Solicitor Edit Form".

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.
@SOLICITORS xml IN

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_REVENUESOLICITORS
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @SOLICITORS xml
                    )
                as
                    set nocount on;

                    begin try
                        declare @BASECURRENCYID uniqueidentifier;
                        declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
                        declare @BASEEXCHANGERATEID uniqueidentifier;
                        declare @BASETOORGANIZATIONEXCHANGERATEID uniqueidentifier;

                        select
                            @BASECURRENCYID = isnull(REVENUE_EXT.NONPOSTABLEBASECURRENCYID, CURRENCYSET.BASECURRENCYID),
                            @ORGANIZATIONEXCHANGERATEID = FINANCIALTRANSACTION.ORGEXCHANGERATEID
                        from
                            dbo.FINANCIALTRANSACTIONLINEITEM
                        inner join 
                            dbo.REVENUESPLIT_EXT on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID
                        inner join 
                            dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = FINANCIALTRANSACTION.ID
                        inner join 
                            dbo.REVENUE_EXT on FINANCIALTRANSACTION.ID = REVENUE_EXT.ID
                        inner join 
                            dbo.PDACCOUNTSYSTEM on FINANCIALTRANSACTION.PDACCOUNTSYSTEMID = PDACCOUNTSYSTEM.ID
                        inner join 
                            dbo.CURRENCYSET on PDACCOUNTSYSTEM.CURRENCYSETID = CURRENCYSET.ID
                        where
                            FINANCIALTRANSACTIONLINEITEM.ID = @ID
                            and FINANCIALTRANSACTION.DELETEDON is null
                            and FINANCIALTRANSACTIONLINEITEM.TYPECODE <> 1;

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

                        --Solicitors don't have a transaction currency, @BASETOORGANIZATIONEXCHANGERATEID handles the

                        -- case where the revenue split ORGANIZATIONEXCHANGERATE is for converting from transaction to org currencies                 


                        exec dbo.USP_CURRENCY_GETCURRENCYVALUES
                              0,
                              null,
                              @BASECURRENCYID,
                              @BASEEXCHANGERATEID,
                              null,
                              null,
                              null,
                              null,
                              @ORGANIZATIONEXCHANGERATEID,
                              0,
                              @BASETOORGANIZATIONEXCHANGERATEID output;

                        -- Process the solicitors xml to calculate organization amounts.

                        set @SOLICITORS = dbo.UFN_REVENUESOLICITOR_CONVERTAMOUNTSINXML(@SOLICITORS, @BASECURRENCYID, @BASETOORGANIZATIONEXCHANGERATEID);

                        exec dbo.USP_REVENUE_GETSOLICITORS_2_UPDATEFROMXML @ID, @SOLICITORS, @CHANGEAGENTID;
                    end try
                    begin catch
                        exec dbo.USP_RAISE_ERROR;
                        return 1;
                    end catch

                    return 0;