USP_DATAFORMTEMPLATE_EDIT_GIFTINKINDSALEGLDISTRIBUTION

The save procedure used by the edit dataform template "Gift-in-Kind Sale 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 Sold gift-in-kind 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_GIFTINKINDSALEGLDISTRIBUTION
                    (
                        @ID uniqueidentifier,
                        @GLDISTRIBUTION xml,
                        @CHANGEAGENTID uniqueidentifier = null
                    )
                as
                    set nocount on;

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

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

                        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 @REVENUEID uniqueidentifier
                        select @REVENUEID = REVENUEPAYMENTMETHOD.REVENUEID from dbo.GIFTINKINDSALE join dbo.REVENUEPAYMENTMETHOD on GIFTINKINDSALE.GIFTINKINDPAYMENTMETHODDETAILID = REVENUEPAYMENTMETHOD.ID where GIFTINKINDSALE.ID =  @ID;

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

                        declare @POSTDATE datetime;
                        select @POSTDATE = SALEPOSTDATE from dbo.GIFTINKINDSALE where ID = @ID;

                        declare @DEFAULTTRANSACTIONCURRENCYID uniqueidentifier;
                        declare @BASECURRENCYID uniqueidentifier;
                        declare @BASEEXCHANGERATEID uniqueidentifier;
                        declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;

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

                        set @GLDISTRIBUTION = dbo.UFN_GLDISTRIBUTION_CONVERTAMOUNTSINXML(@GLDISTRIBUTION, @BASECURRENCYID, @ORGANIZATIONEXCHANGERATEID, @DEFAULTTRANSACTIONCURRENCYID, @BASEEXCHANGERATEID, @ORGANIZATIONEXCHANGERATEID, @BASEEXCHANGERATEID);
                        exec dbo.USP_REVENUE_GETGIFTINKINDSALEGLDISTRIBUTION_CUSTOMUPDATEFROMXML @ID, @GLDISTRIBUTION, @POSTDATE, @CHANGEAGENTID;
                    end try

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

                    return 0;