USP_DATAFORMTEMPLATE_EDIT_DESIGNATIONLEVELDECAPITALIZATION

The save procedure used by the edit dataform template "Fundraising Purpose Decapitalization 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.
@DESIGNATIONLEVELID uniqueidentifier IN Designation level
@APPROVALDATE UDT_FUZZYDATE IN Approval date
@APPROVEDBYID uniqueidentifier IN Approved by
@AMOUNT money IN Amount
@ACCOUNTID uniqueidentifier IN Account transferred to
@RATIONALE varchar(max) IN Rationale

Definition

Copy

                CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_DESIGNATIONLEVELDECAPITALIZATION
                (
                    @ID uniqueidentifier,
                    @CHANGEAGENTID uniqueidentifier = null,
                    @DESIGNATIONLEVELID uniqueidentifier,
                    @APPROVALDATE dbo.UDT_FUZZYDATE,
                    @APPROVEDBYID uniqueidentifier,
                    @AMOUNT money,
                    @ACCOUNTID uniqueidentifier,
                    @RATIONALE varchar(max)
                )
                as
                    set nocount on;

                    declare @CURRENTDATE datetime;

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

                        set @CURRENTDATE = getdate();

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

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

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

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

                        update
                            dbo.[DESIGNATIONLEVELDECAPITALIZATION]
                        set
                            [DESIGNATIONLEVELID] = @DESIGNATIONLEVELID,
                            [APPROVALDATE] = @APPROVALDATE,
                            [APPROVEDBYID] = @APPROVEDBYID,
                            [AMOUNT] = @AMOUNT,
                            [ACCOUNTID] = @ACCOUNTID,
                            [RATIONALE] = @RATIONALE,
                            [ORGANIZATIONAMOUNT] = @ORGANIZATIONAMOUNT,
                            [ORGANIZATIONEXCHANGERATEID] = @CURRENCYEXCHANGERATEID,
                            [CHANGEDBYID] = @CHANGEAGENTID,
                            [DATECHANGED] = @CURRENTDATE
                        where
                            [ID] = @ID;
                    end try

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

                    return 0;