USP_DATAFORMTEMPLATE_EDIT_EVENTEXPENSE

The save procedure used by the edit dataform template "Event Expense 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.
@EVENTEXPENSETYPECODEID uniqueidentifier IN Type
@VENDORID uniqueidentifier IN Vendor
@BUDGETEDAMOUNT money IN Budgeted amount
@ACTUALAMOUNT money IN Agreed amount
@AMOUNTPAID money IN Amount paid
@COMMENT nvarchar(250) IN Comment
@DATEDUE datetime IN Date due
@DATEPAID datetime IN Date paid

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_EVENTEXPENSE
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @EVENTEXPENSETYPECODEID uniqueidentifier,
                        @VENDORID uniqueidentifier,
                        @BUDGETEDAMOUNT money,
                        @ACTUALAMOUNT money,
                        @AMOUNTPAID money,
                        @COMMENT nvarchar(250),
                        @DATEDUE datetime,
                        @DATEPAID datetime
                    )
                    as
                        set nocount on;

                        declare @CURRENTDATE datetime                                        

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

                        set @CURRENTDATE = getdate()

                        begin try    
                            declare @ORGANIZATIONCURRENCYID uniqueidentifier;
                            declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
                            declare @BASECURRENCYID uniqueidentifier;
                            declare @DATEADDED datetime;

                            declare @ORGANIZATIONACTUALAMOUNT money;
                            declare @ORGANIZATIONAMOUNTPAID money;
                            declare @ORGANIZATIONBUDGETEDAMOUNT money;

                            set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                            select 
                                @BASECURRENCYID = EVENTEXPENSE.BASECURRENCYID,
                                @ORGANIZATIONEXCHANGERATEID = EVENTEXPENSE.ORGANIZATIONEXCHANGERATEID,
                                @DATEADDED = EVENTEXPENSE.DATEADDED
                            from dbo.EVENTEXPENSE where ID = @ID;

                            if @ORGANIZATIONCURRENCYID = @BASECURRENCYID
                            begin
                                set @ORGANIZATIONACTUALAMOUNT = @ACTUALAMOUNT;
                                set @ORGANIZATIONAMOUNTPAID = @AMOUNTPAID;
                                set @ORGANIZATIONBUDGETEDAMOUNT = @BUDGETEDAMOUNT;
                            end
                            else
                            begin
                                set @ORGANIZATIONEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @DATEADDED, 0, null);

                                set @ORGANIZATIONACTUALAMOUNT = dbo.UFN_CURRENCY_CONVERT(@ACTUALAMOUNT, @ORGANIZATIONEXCHANGERATEID);
                                set @ORGANIZATIONAMOUNTPAID = dbo.UFN_CURRENCY_CONVERT(@AMOUNTPAID, @ORGANIZATIONEXCHANGERATEID);
                                set @ORGANIZATIONBUDGETEDAMOUNT = dbo.UFN_CURRENCY_CONVERT(@BUDGETEDAMOUNT, @ORGANIZATIONEXCHANGERATEID);
                            end

                            update 
                                dbo.EVENTEXPENSE
                            set
                                EVENTEXPENSETYPECODEID = @EVENTEXPENSETYPECODEID,
                                VENDORID = @VENDORID,
                                BUDGETEDAMOUNT = @BUDGETEDAMOUNT,
                                ORGANIZATIONBUDGETEDAMOUNT = @ORGANIZATIONBUDGETEDAMOUNT,
                                ACTUALAMOUNT = @ACTUALAMOUNT,                
                                ORGANIZATIONACTUALAMOUNT = @ORGANIZATIONACTUALAMOUNT,
                                AMOUNTPAID = @AMOUNTPAID,
                                ORGANIZATIONAMOUNTPAID = @ORGANIZATIONAMOUNTPAID,
                                ORGANIZATIONEXCHANGERATEID = @ORGANIZATIONEXCHANGERATEID,
                                COMMENT = @COMMENT,
                                DATEDUE = @DATEDUE,
                                DATEPAID = @DATEPAID,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE                                
                            where 
                                ID = @ID
                        end try

                        begin catch
                            exec dbo.USP_RAISE_ERROR
                            return 1
                        end catch

                        return 0