USP_DATAFORMTEMPLATE_EDIT_EVENTPRICE_2

The save procedure used by the edit dataform template "Registration Option Edit Form 2".

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.
@AMOUNT money IN Registration fee
@RECEIPTAMOUNT money IN Receipt amount
@BENEFIT xml IN Benefits
@COST money IN Cost
@NAME nvarchar(100) IN Name
@REGISTRATIONCOUNT int IN Registration count

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_EVENTPRICE_2
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,                            
                        @AMOUNT money,
                        @RECEIPTAMOUNT money,
                        @BENEFIT xml,
                        @COST money,
                        @NAME nvarchar(100),
                        @REGISTRATIONCOUNT int
                        --@DESIGNATION xml

                        --@DESIGNATIONAMOUNT money

                    )
                    as
                        set nocount on;

                        declare @CURRENTDATE datetime                                        

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

                        set @CURRENTDATE = getdate()

                        begin try                        

                            declare @EVENTBASECURRENCYID uniqueidentifier;
                            declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
                            declare @ORGANIZATIONAMOUNT money;
                            declare @ORGANIZATIONCOST money;
                            declare @ORGANIZATIONCURRENCYID uniqueidentifier;

                            set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                            select
                                @EVENTBASECURRENCYID = EVENT.BASECURRENCYID
                            from 
                                dbo.EVENTPRICE
                                inner join dbo.EVENT on EVENTPRICE.EVENTID = EVENT.ID
                            where 
                                EVENTPRICE.ID = @ID

                            if (@ORGANIZATIONCURRENCYID = @EVENTBASECURRENCYID)
                            begin
                                set @ORGANIZATIONAMOUNT = @AMOUNT;
                                set @ORGANIZATIONCOST = @COST;
                            end
                            else
                            begin
                                set @ORGANIZATIONEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@EVENTBASECURRENCYID, @ORGANIZATIONCURRENCYID, @CURRENTDATE, 0, null);
                                set @ORGANIZATIONAMOUNT = dbo.UFN_CURRENCY_CONVERT(@AMOUNT, @ORGANIZATIONEXCHANGERATEID);
                                set @ORGANIZATIONCOST = dbo.UFN_CURRENCY_CONVERT(@COST, @ORGANIZATIONEXCHANGERATEID);                                
                            end

                            update 
                                dbo.EVENTPRICE
                            set
                                AMOUNT = @AMOUNT,
                                RECEIPTAMOUNT = @RECEIPTAMOUNT,
                                COST = @COST,
                                NAME = @NAME,
                                REGISTRATIONCOUNT = @REGISTRATIONCOUNT,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE,
                                ORGANIZATIONEXCHANGERATEID = @ORGANIZATIONEXCHANGERATEID,
                                ORGANIZATIONAMOUNT = @ORGANIZATIONAMOUNT,
                                ORGANIZATIONCOST = @ORGANIZATIONCOST
                            where 
                                ID = @ID;

                            --Update the organization total value, transaction total value, and exchange rates in the @BENEFITS XML.

                            set @BENEFIT = dbo.UFN_EVENTPRICEBENEFIT_CONVERTAMOUNTSINXML(@BENEFIT,@EVENTBASECURRENCYID);

                            exec dbo.USP_EVENTPRICE_GETBENEFITS_2_UPDATEFROMXML @ID, @BENEFIT, @CHANGEAGENTID;
                            --exec dbo.USP_EVENTPRICE_GETDESIGNATIONS_UPDATEFROMXML @ID, @DESIGNATION, @CHANGEAGENTID;

                        end try

                        begin catch
                            exec dbo.USP_RAISE_ERROR
                            return 1
                        end catch

                        return 0