USP_DATAFORMTEMPLATE_EDIT_STOCKSALEGLDISTRIBUTION

The save procedure used by the edit dataform template "Stock 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 Stock 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_STOCKSALEGLDISTRIBUTION
                    (
                        @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)    

                        --if (dbo.UFN_GLDISTRIBUTION_ACCOUNTEXISTS(@GLDISTRIBUTION) = 0)

                        --    raiserror('One or more of the edited accounts do not exist.', 13, 1)


                        declare @REVENUEID uniqueidentifier
                        select @REVENUEID = b.REVENUEID from STOCKSALE as a join REVENUEPAYMENTMETHOD as b on a.STOCKDETAILID = b.ID where a.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.STOCKSALE where ID = @ID;

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

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

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

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

                    return 0;