USP_DATAFORMTEMPLATE_ADD_EVENTEXPENSE

The save procedure used by the add dataform template "Event Expense Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@EVENTID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@EVENTEXPENSETYPECODEID uniqueidentifier IN Type
@VENDORID uniqueidentifier IN Vendor
@ACTUALAMOUNT money IN Agreed amount
@COMMENT nvarchar(250) IN Comment
@BUDGETEDAMOUNT money IN Budgeted amount
@AMOUNTPAID money IN Amount paid
@DATEDUE datetime IN Date due
@DATEPAID datetime IN Date paid
@SELECTEDEVENTID uniqueidentifier IN Event
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_EVENTEXPENSE
                    (
                        @ID uniqueidentifier = null output,
                        @CHANGEAGENTID uniqueidentifier = null,    
                        @EVENTID uniqueidentifier,
                        @EVENTEXPENSETYPECODEID uniqueidentifier,
                        @VENDORID uniqueidentifier = null,
                        @ACTUALAMOUNT money = 0,
                        @COMMENT nvarchar(250) = '',                        
                        @BUDGETEDAMOUNT money = 0,                        
                        @AMOUNTPAID money = 0,
                        @DATEDUE datetime = null,
                        @DATEPAID datetime = null,
                        @SELECTEDEVENTID uniqueidentifier = null,
                        @CURRENTAPPUSERID uniqueidentifier = null
                    )
                    as
                        set nocount on;

                        declare @CURRENTDATE datetime;


                        begin try
                            if @ID is null
                                set @ID = newid();

                            if (@SELECTEDEVENTID is not null) and (@SELECTEDEVENTID <> '00000000-0000-0000-0000-000000000000')
                                set @EVENTID = @SELECTEDEVENTID

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

                            set @CURRENTDATE = getdate();



                            declare @BASECURRENCYID uniqueidentifier;
                            declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
                            declare @ORGANIZATIONCURRENCYID uniqueidentifier;

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

                            select 
                                @BASECURRENCYID = EVENT.BASECURRENCYID 
                            from dbo.EVENT
                            where EVENT.ID = @EVENTID;

                            if @BASECURRENCYID is null
                                set @BASECURRENCYID = dbo.UFN_APPUSER_GETBASECURRENCY(@CURRENTAPPUSERID);

                            set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                            if @ORGANIZATIONCURRENCYID = @BASECURRENCYID
                            begin
                                set @ORGANIZATIONACTUALAMOUNT = @ACTUALAMOUNT;
                                set @ORGANIZATIONAMOUNTPAID = @AMOUNTPAID;
                                set @ORGANIZATIONBUDGETEDAMOUNT = @BUDGETEDAMOUNT;
                            end
                            else
                            begin
                                set @ORGANIZATIONEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @CURRENTDATE, 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

                            insert into dbo.EVENTEXPENSE 
                                (ID, EVENTEXPENSETYPECODEID, ACTUALAMOUNT, ORGANIZATIONACTUALAMOUNT, COMMENT, EVENTID, BUDGETEDAMOUNT, ORGANIZATIONBUDGETEDAMOUNT, AMOUNTPAID, ORGANIZATIONAMOUNTPAID, DATEDUE, DATEPAID, VENDORID, BASECURRENCYID, ORGANIZATIONEXCHANGERATEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                            values
                                (@ID, @EVENTEXPENSETYPECODEID, @ACTUALAMOUNT, @ORGANIZATIONACTUALAMOUNT, @COMMENT, @EVENTID, @BUDGETEDAMOUNT, @ORGANIZATIONBUDGETEDAMOUNT, @AMOUNTPAID, @ORGANIZATIONAMOUNTPAID, @DATEDUE, @DATEPAID, @VENDORID, @BASECURRENCYID, @ORGANIZATIONEXCHANGERATEID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)

                        end try

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

                        return 0;