USP_DATAFORMTEMPLATE_EDIT_PROPERTYDETAILGLDISTRIBUTIONBYTRANSACTION

The save procedure used by the edit dataform template "Sold Property GL Distribution By Transaction 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 Revenue 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_PROPERTYDETAILGLDISTRIBUTIONBYTRANSACTION
                    (
                        @ID uniqueidentifier,
                        @GLDISTRIBUTION xml,
                        @CHANGEAGENTID uniqueidentifier = null
                    )
                as
                    set nocount on;

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

                    begin try        
                        -- If user hasn't entered anything in the grid we will assume that user 

                        -- wants to use system-generated values for Post to GL and delete any previous entries

                        --if (select count(*) FROM dbo.UFN_REVENUETRANSACTION_GETPROPERTYDETAILGLDISTRIBUTION_FROMITEMLISTXML(@GLDISTRIBUTION)) = 0

                        --    begin

                        --        delete dbo.PROPERTYDETAILGLDISTRIBUTION 

                        --        from dbo.PROPERTYDETAILGLDISTRIBUTION

                        --        inner join dbo.REVENUEPAYMENTMETHOD

                        --            on REVENUEPAYMENTMETHOD.ID = PROPERTYDETAILGLDISTRIBUTION.PROPERTYDETAILID

                        --        where REVENUEPAYMENTMETHOD.REVENUEID = @ID;

                        --        return 0;

                        --    end


                        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 @REVID uniqueidentifier
                        select @REVID = REVENUEID from dbo.REVENUEPAYMENTMETHOD 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 @POSTDATE datetime;
                        select @POSTDATE = SALEPOSTDATE from dbo.PROPERTYDETAIL where ID = @ID;

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

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

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

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

                    return 0;