USP_DATAFORMTEMPLATE_EDIT_DESIGNATIONGOAL

The save procedure used by the edit dataform template "Designation Goals 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.
@DESIGNATIONLEVEL1GOALID uniqueidentifier IN Name
@GOAL money IN Goal

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_DESIGNATIONGOAL
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @DESIGNATIONLEVEL1GOALID uniqueidentifier,
                        @GOAL money
                    )
                    as                
                    begin

                        set nocount on;

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

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

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

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

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

                                set @ORGANIZATIONGOAL = dbo.UFN_CURRENCY_CONVERT(@GOAL, @ORGANIZATIONEXCHANGERATEID);
                            end

                            update
                                dbo.DESIGNATIONGOAL
                            set 
                                DESIGNATIONLEVELGOALID = @DESIGNATIONLEVEL1GOALID,                             
                                GOAL = @GOAL,
                                ORGANIZATIONEXCHANGERATEID = @ORGANIZATIONEXCHANGERATEID,
                                ORGANIZATIONGOAL = @ORGANIZATIONGOAL,                            
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE
                            where 
                                ID = @ID;
                        end try

                        begin catch
                            exec dbo.USP_RAISE_ERROR
                            return 1
                        end catch

                        return 0
                    end