USP_DATAFORMTEMPLATE_ADD_GIFTINKINDAPPRAISAL

The save procedure used by the add dataform template "Gift-in-Kind Appraisal Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@GIFTINKINDPAYMENTMETHODDETAILID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@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_ADD_GIFTINKINDAPPRAISAL
(
    @ID uniqueidentifier = null output,
    @GIFTINKINDPAYMENTMETHODDETAILID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @APPRAISERID uniqueidentifier = null,
    @AMOUNT money = null,
    @DATE date = null,
    @DESCRIPTION nvarchar(max) = null,
    @APPRAISALFEE money = 0
)
as

set nocount on;

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

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();

    if not exists (select ID from dbo.GIFTINKINDPAYMENTMETHODDETAIL where ID = @GIFTINKINDPAYMENTMETHODDETAILID)
    begin
        insert into dbo.GIFTINKINDPAYMENTMETHODDETAIL
        (
            ID,
            TRANSACTIONCURRENCYID,
            BASECURRENCYID,
            BASEEXCHANGERATEID,
            ORGANIZATIONEXCHANGERATEID,
            ADDEDBYID,
            CHANGEDBYID,
            DATEADDED,
            DATECHANGED
        )
        values
        (
            @GIFTINKINDPAYMENTMETHODDETAILID,
            @ORGANIZATIONCURRENCYID,
            @ORGANIZATIONCURRENCYID,
            null,
            null,
            @CHANGEAGENTID,
            @CHANGEAGENTID,
            @CURRENTDATE,
            @CURRENTDATE
        );
    end
    else
    begin
        select
            @TRANSACTIONCURRENCYID = TRANSACTIONCURRENCYID,
            @BASECURRENCYID = BASECURRENCYID
        from
            dbo.GIFTINKINDPAYMENTMETHODDETAIL
        where
            ID = @GIFTINKINDPAYMENTMETHODDETAILID;
    end

    if @BASECURRENCYID is null
        set @BASECURRENCYID = @ORGANIZATIONCURRENCYID;

    if @TRANSACTIONCURRENCYID is null
        set @TRANSACTIONCURRENCYID = @BASECURRENCYID;

    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;

    insert into dbo.GIFTINKINDAPPRAISAL
    (
        ID,
        GIFTINKINDPAYMENTMETHODDETAILID,
        APPRAISERID,
        AMOUNT,
        TRANSACTIONAMOUNT,
        ORGANIZATIONAMOUNT,
        DATE,
        DESCRIPTION,
        TRANSACTIONCURRENCYID,
        BASECURRENCYID,
        BASEEXCHANGERATEID,
        ORGANIZATIONEXCHANGERATEID,
        ADDEDBYID,
        CHANGEDBYID,
        DATEADDED,
        DATECHANGED,
        APPRAISALFEE,
        TRANSACTIONAPPRAISALFEE,
        ORGANIZATIONAPPRAISALFEE
    )
    values
    (
        @ID,
        @GIFTINKINDPAYMENTMETHODDETAILID,
        @APPRAISERID,
        @BASEAMOUNT,
        @AMOUNT,
        @ORGANIZATIONAMOUNT,
        @DATE,
        @DESCRIPTION,
        @TRANSACTIONCURRENCYID,
        @BASECURRENCYID,
        @BASEEXCHANGERATEID,
        @ORGANIZATIONEXCHANGERATEID,
        @CHANGEAGENTID,
        @CHANGEAGENTID,
        @CURRENTDATE,
        @CURRENTDATE,
        @BASEAPPRAISALFEE,
        @APPRAISALFEE,
        @ORGANIZATIONAPPRAISALFEE
    );

end try

begin catch
    exec dbo.USP_RAISE_ERROR
    return 1
end catch

return 0