USP_DATAFORMTEMPLATE_ADD_DESIGNATIONLEVELDECAPITALIZATION

The save procedure used by the add dataform template "Fundraising Purpose Decapitalization 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.
@DESIGNATIONLEVELID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@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_ADD_DESIGNATIONLEVELDECAPITALIZATION
                (
                    @ID uniqueidentifier = null output,
                    @CHANGEAGENTID uniqueidentifier = null,    
                    @DESIGNATIONLEVELID uniqueidentifier,
                    @APPROVALDATE dbo.UDT_FUZZYDATE = null,
                    @APPROVEDBYID uniqueidentifier = null,
                    @AMOUNT money = null,
                    @ACCOUNTID uniqueidentifier = null,
                    @RATIONALE varchar(max) = null
                )
                as
                    set nocount on;

                    declare @CURRENTDATE datetime;

                    begin try
                        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 @CURRENCYEXCHANGERATEID uniqueidentifier;
                        declare @ORGANIZATIONAMOUNT money;
                        declare @ORGANIZATIONCURRENCYID uniqueidentifier;
                        set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                        select
                            @BASECURRENCYID = DESIGNATIONLEVEL.BASECURRENCYID
                        from
                            dbo.DESIGNATIONLEVEL
                        where
                            DESIGNATIONLEVEL.ID = @DESIGNATIONLEVELID

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

                        insert into dbo.DESIGNATIONLEVELDECAPITALIZATION (
                            [ID],
                            [DESIGNATIONLEVELID],
                            [APPROVALDATE],
                            [APPROVEDBYID],
                            [AMOUNT],
                            [ACCOUNTID],
                            [RATIONALE],
                            [ORGANIZATIONAMOUNT],
                            [ORGANIZATIONEXCHANGERATEID],
                            [BASECURRENCYID],
                            [ADDEDBYID],
                            [CHANGEDBYID],
                            [DATEADDED],
                            [DATECHANGED]
                        ) values (
                            @ID,
                            @DESIGNATIONLEVELID,
                            @APPROVALDATE,
                            @APPROVEDBYID
                            @AMOUNT,
                            @ACCOUNTID,
                            @RATIONALE,
                            @ORGANIZATIONAMOUNT,
                            @CURRENCYEXCHANGERATEID,
                            @BASECURRENCYID,
                            @CHANGEAGENTID,
                            @CHANGEAGENTID,
                            @CURRENTDATE,
                            @CURRENTDATE
                        );

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

                    return 0;