USP_DATAFORMTEMPLATE_EDIT_GIFTINKINDAPPRAISAL_2

The save procedure used by the edit dataform template "Gift-in-Kind Appraisal 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.
@APPRAISERID uniqueidentifier IN Appraiser
@AMOUNT money IN Appraised value
@DATE date IN Date of appraisal
@DESCRIPTION nvarchar(max) IN Description
@APPRAISALFEE money IN Appraisal fee

Definition

Copy


create procedure dbo.USP_DATAFORMTEMPLATE_EDIT_GIFTINKINDAPPRAISAL_2
(
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @APPRAISERID uniqueidentifier,
    @AMOUNT money,
    @DATE date,
    @DESCRIPTION nvarchar(max),
    @APPRAISALFEE money
)
as

    set nocount on;

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

    declare @CURRENTDATE datetime
    set @CURRENTDATE = getdate()

    begin try

        declare @TRANSACTIONCURRENCYID uniqueidentifier;
        declare @BASECURRENCYID uniqueidentifier;
        declare @BASEEXCHANGERATEID uniqueidentifier;
        declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
        declare @ORGANIZATIONCURRENCYID uniqueidentifier;
        declare @BASEAMOUNT money;
        declare @ORGANIZATIONAMOUNT money;
        declare @BASEAPPRAISALFEE money;
        declare @ORGANIZATIONAPPRAISALFEE money;

        set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

        select
            @TRANSACTIONCURRENCYID = TRANSACTIONCURRENCYID,
            @BASECURRENCYID = BASECURRENCYID
        from
            dbo.GIFTINKINDAPPRAISAL
        where
            ID = @ID;

        declare @DATEFORRATE datetime = coalesce(@DATE, @CURRENTDATE);
        set @BASEEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@TRANSACTIONCURRENCYID, @BASECURRENCYID, @DATEFORRATE, 1, null);

        exec dbo.USP_CURRENCY_GETCURRENCYVALUES @AMOUNT, @DATEFORRATE, @BASECURRENCYID, @BASEEXCHANGERATEID output, @TRANSACTIONCURRENCYID output, @BASEAMOUNT output, @ORGANIZATIONCURRENCYID output, @ORGANIZATIONAMOUNT output, @ORGANIZATIONEXCHANGERATEID output, 1;
        exec dbo.USP_CURRENCY_GETCURRENCYVALUES @APPRAISALFEE, @DATEFORRATE, @BASECURRENCYID, @BASEEXCHANGERATEID output, @TRANSACTIONCURRENCYID output, @BASEAPPRAISALFEE output, @ORGANIZATIONCURRENCYID output, @ORGANIZATIONAPPRAISALFEE output, @ORGANIZATIONEXCHANGERATEID output, 0;

        update 
            dbo.GIFTINKINDAPPRAISAL
        set
            APPRAISERID = @APPRAISERID,
            AMOUNT = @BASEAMOUNT,
            TRANSACTIONAMOUNT = @AMOUNT,
            ORGANIZATIONAMOUNT = @ORGANIZATIONAMOUNT,
            DATE = @DATE,
            DESCRIPTION = @DESCRIPTION,
            TRANSACTIONCURRENCYID = @TRANSACTIONCURRENCYID,
            BASECURRENCYID = @BASECURRENCYID,
            BASEEXCHANGERATEID = @BASEEXCHANGERATEID,
            ORGANIZATIONEXCHANGERATEID = @ORGANIZATIONEXCHANGERATEID,
            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = @CURRENTDATE,
            APPRAISALFEE = @BASEAPPRAISALFEE,
            TRANSACTIONAPPRAISALFEE = @APPRAISALFEE,
            ORGANIZATIONAPPRAISALFEE = @ORGANIZATIONAPPRAISALFEE
        where ID = @ID
    end try
    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1
    end catch

return 0;