USP_DATAFORMTEMPLATE_ADD_DESIGNATIONGOAL

The save procedure used by the add dataform template "Designation Goal 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.
@DESIGNATIONID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@DESIGNATIONLEVEL1GOALID uniqueidentifier IN Name
@GOAL money IN Goal

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_DESIGNATIONGOAL
                    (
                        @ID uniqueidentifier = null output,
                        @CHANGEAGENTID uniqueidentifier = null,    
                        @DESIGNATIONID uniqueidentifier,
                        @DESIGNATIONLEVEL1GOALID uniqueidentifier = null,
                        @GOAL money = null
                    )
                    as

                        set nocount on;
                        declare @CURRENTDATE datetime;                                        

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

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

                        set @CURRENTDATE = getdate();

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

                        select
                            @BASECURRENCYID = DESIGNATION.BASECURRENCYID
                        from
                            dbo.DESIGNATION
                        where
                            DESIGNATION.ID = @DESIGNATIONID;

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

                        begin try                                   
                            insert into dbo.DESIGNATIONGOAL
                                (ID,DESIGNATIONID,DESIGNATIONLEVELGOALID,GOAL,ORGANIZATIONGOAL,ORGANIZATIONEXCHANGERATEID,BASECURRENCYID,ADDEDBYID,CHANGEDBYID, DATEADDED, DATECHANGED)
                            values
                                (@ID, @DESIGNATIONID, @DESIGNATIONLEVEL1GOALID, @GOAL,@ORGANIZATIONGOAL,@ORGANIZATIONEXCHANGERATEID,@BASECURRENCYID,@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);

                        end try

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

                        return 0;