USP_DATAFORMTEMPLATE_EDIT_GIFTAIDGLDISTRIBUTION

The save procedure used by the edit dataform template "Gift Aid GL Distribution Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@GLDISTRIBUTION xml IN Gift Aid GL distribution
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_GIFTAIDGLDISTRIBUTION 
                    (
                        @ID uniqueidentifier,
                        @GLDISTRIBUTION xml,
                        @CHANGEAGENTID uniqueidentifier = null
                    )
                    as

                        set nocount on;

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

                        declare @CURRENTDATE datetime;
                        set @CURRENTDATE = getdate();

                        begin try
                            if (dbo.UFN_GLDISTRIBUTION_DEBITSEQUALCREDITS(@GLDISTRIBUTION) = 0)
                                raiserror('The sum of the debit accounts must equal the sum of the credit accounts.', 13, 1)    

                            declare @REVID uniqueidentifier
                            select @REVID = REVENUEID from REVENUESPLIT where ID =  @ID    

                            if (dbo.UFN_GLDISTRIBUTION_ACCOUNTEXISTS_2(@GLDISTRIBUTION,@REVID) = 0)
                                raiserror('One or more of the edited accounts do not exist.', 13, 1)

                            declare @TRANSACTIONCURRENCYID uniqueidentifier;
                            declare @BASECURRENCYID uniqueidentifier;
                            declare @BASEEXCHANGERATEID uniqueidentifier;
                            declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;

                            select 
                                @TRANSACTIONCURRENCYID = TRANSACTIONCURRENCYID,
                                @BASECURRENCYID = BASECURRENCYID,
                                @BASEEXCHANGERATEID = BASEEXCHANGERATEID,
                                @ORGANIZATIONEXCHANGERATEID = ORGANIZATIONEXCHANGERATEID
                            from
                                dbo.REVENUESPLITGIFTAID
                            where
                                ID = @ID;

                            --Set the currency values in the GLDISTRIBUTION collection.

                            select @GLDISTRIBUTION = dbo.UFN_GLDISTRIBUTION_CONVERTAMOUNTSINXML
                            (
                                @GLDISTRIBUTION,
                                @BASECURRENCYID,
                                @ORGANIZATIONEXCHANGERATEID,
                                @TRANSACTIONCURRENCYID,
                                @BASEEXCHANGERATEID
                                @ORGANIZATIONEXCHANGERATEID
                                @BASEEXCHANGERATEID
                            )

                            exec dbo.USP_REVENUESPLITGIFTAID_GETGLDISTRIBUTION_CUSTOMUPDATEFROMXML_2 @ID, @GLDISTRIBUTION, @CURRENTDATE, @CHANGEAGENTID;
                        end try
                        begin catch
                            exec dbo.USP_RAISE_ERROR
                            return 1
                        end catch

                    return 0;