USP_DATAFORMTEMPLATE_EDIT_REVENUETRIBUTE

The save procedure used by the edit dataform template "Revenue Tribute 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.
@AMOUNT money IN Amount
@ISTRIBUTEANONYMOUS bit IN Do not display on website

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_REVENUETRIBUTE (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @AMOUNT money,
                        @ISTRIBUTEANONYMOUS bit 
                    )
                    as
                        set nocount on;

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

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

                        begin try
                            declare @BASECURRENCYID uniqueidentifier;
                            declare @DATEADDED datetime;
                            declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
                            declare @ORGANIZATIONAMOUNT money;
                            declare @ORGANIZATIONCURRENCYID uniqueidentifier;
                            set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

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

                            if (@ORGANIZATIONCURRENCYID = @BASECURRENCYID)
                            begin
                                set @ORGANIZATIONAMOUNT = @AMOUNT;
                                set @ORGANIZATIONEXCHANGERATEID = null;
                            end
                            else
                            begin
                                if @ORGANIZATIONEXCHANGERATEID is null
                                    set @ORGANIZATIONEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @DATEADDED, 0, null);

                                set @ORGANIZATIONAMOUNT = dbo.UFN_CURRENCY_CONVERT(@AMOUNT, @ORGANIZATIONEXCHANGERATEID);
                            end


                            declare @REVENUEID uniqueidentifier;
                            select @REVENUEID = REVENUEID from dbo.REVENUETRIBUTE where ID = @ID;

                            if dbo.UFN_REVENUETRIBUTE_VALIDAMOUNT(@ID, @REVENUEID, @AMOUNT) = 0
                                raiserror('The sum of the tribute amounts cannot be greater than the revenue amount.', 13, 1)

                            update 
                                dbo.REVENUETRIBUTE
                            set
                                AMOUNT = @AMOUNT,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE,
                                ORGANIZATIONEXCHANGERATEID = @ORGANIZATIONEXCHANGERATEID,
                                ORGANIZATIONAMOUNT = @ORGANIZATIONAMOUNT,
                                ISTRIBUTEANONYMOUS = @ISTRIBUTEANONYMOUS
                            where 
                                ID = @ID

                            if dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('9568A6C2-F7AA-45fd-8F54-21FE9654EE2D') = 1
                            begin
                                exec dbo.USP_REVENUETRIBUTETAXCLAIMAMOUNT_ADDUPDATE @REVENUEID, @CHANGEAGENTID, @CURRENTDATE;
                            end

                        end try

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

                    return 0;