USP_DATAFORMTEMPLATE_ADD_PLANNEDGIFTREVENUE

The save procedure used by the add dataform template "Planned Gift Revenue Add As Revenue".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@PLANNEDGIFTID 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.
@AMOUNT money IN Revenue amount
@DATE datetime IN Date
@GENERATEGLDISTRIBUTIONS bit IN Generate GL distributions
@PDACCOUNTSYSTEMID uniqueidentifier IN Account system
@TRANSACTIONCURRENCYID uniqueidentifier IN Transaction currency
@BASEEXCHANGERATEID uniqueidentifier IN Exchange rate ID
@EXCHANGERATE decimal(20, 8) IN Exchange rate
@DONOTRECEIPT bit IN Do not receipt
@RECEIPTAMOUNT money IN Receipt amount

Definition

Copy

                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_PLANNEDGIFTREVENUE
                    (
                        @ID uniqueidentifier output,
                        @PLANNEDGIFTID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @AMOUNT money = null,                        
                        @DATE datetime = null,
                        @GENERATEGLDISTRIBUTIONS bit = 1,
                        @PDACCOUNTSYSTEMID uniqueidentifier = null,
                        @TRANSACTIONCURRENCYID uniqueidentifier = null,
                        @BASEEXCHANGERATEID uniqueidentifier = null,
                        @EXCHANGERATE decimal(20,8) = null,
                        @DONOTRECEIPT bit = null,
                        @RECEIPTAMOUNT money = null
                    )
                    as
                        set nocount on;

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

                        declare @CURRENTDATE datetime = getdate();

                        if @PDACCOUNTSYSTEMID is null
                            set @PDACCOUNTSYSTEMID = '4B121C2C-CCE6-440D-894C-EA0DEF80D50B'

                        -- Check GL business rule for this account system and set to 'Do not post' if needed.
                        -- ****
                        if @GENERATEGLDISTRIBUTIONS = 1
                          set @GENERATEGLDISTRIBUTIONS = dbo.UFN_PDACCOUNTSYSTEM_ALLOWGLDISTRIBUTIONS(@PDACCOUNTSYSTEMID);
                        -- ****

                        --Multicurrency - AdamBu 5/19/10 - Retrieve base currency from the account system's currency set.
                        declare @CURRENCYSETID uniqueidentifier
                        select 
                            @CURRENCYSETID = CURRENCYSETID
                        from 
                            dbo.PDACCOUNTSYSTEM
                        where 
                            ID = @PDACCOUNTSYSTEMID

                        declare @BASECURRENCYID uniqueidentifier;
                        select 
                            @BASECURRENCYID = BASECURRENCYID
                        from 
                            dbo.CURRENCYSET
                        where 
                            ID = coalesce(@CURRENCYSETID,dbo.UFN_CURRENCYSET_GETAPPUSERDEFAULTCURRENCYSET())

                        --Multicurrency - AdamBu 5/19/10 - If needed, create the spot exchange rate.
                        if @BASEEXCHANGERATEID = '00000000-0000-0000-0000-000000000001'
                        begin
                            set @BASEEXCHANGERATEID = newid()

                            insert into dbo.CURRENCYEXCHANGERATE(
                                ID, 
                                FROMCURRENCYID,
                                TOCURRENCYID,
                                RATE,
                                ASOFDATE,
                                TYPECODE,
                                SOURCECODEID,
                                ADDEDBYID, 
                                CHANGEDBYID, 
                                DATEADDED, 
                                DATECHANGED
                            )
                            values(
                                @BASEEXCHANGERATEID,
                                @TRANSACTIONCURRENCYID,
                                @BASECURRENCYID,
                                @EXCHANGERATE,
                                @DATE,
                                2,
                                null,
                                @CHANGEAGENTID,
                                @CHANGEAGENTID,
                                @CURRENTDATE,
                                @CURRENTDATE
                            );
                        end

                        begin try
                            declare @ISANONYMOUS bit;
                            declare @VEHICLECODE2 smallint;
                            declare @PAYOUTAMOUNT money;
                            select 
                                @ISANONYMOUS = ISANONYMOUS, 
                                @VEHICLECODE2 = VEHICLECODE,
                                @PAYOUTAMOUNT = case VEHICLECODE when 6 then TRANSACTIONLIFEINSURANCEPREMIUM else TRANSACTIONPAYOUTAMOUNT end
                            from dbo.PLANNEDGIFT where id = @PLANNEDGIFTID;                                    

                            set @RECEIPTAMOUNT = coalesce(@RECEIPTAMOUNT, @AMOUNT); --For backwards compatibility with old behavior

                            exec USP_ADDPLANNEDGIFTREVENUE 
                                @PLANNEDGIFTID
                                @AMOUNT
                                @DATE
                                @RECEIPTAMOUNT
                                @CHANGEAGENTID
                                @ISANONYMOUS
                                @ID
                                @GENERATEGLDISTRIBUTIONS
                                @PDACCOUNTSYSTEMID,
                                @TRANSACTIONCURRENCYID,
                                @BASECURRENCYID,
                                @BASEEXCHANGERATEID,
                                @DONOTRECEIPT;

                            select @ID = REVENUEID from dbo.PLANNEDGIFTREVENUE where id = @PLANNEDGIFTID;

                            if (@VEHICLECODE2 = 0 or @VEHICLECODE2 = 5 or @VEHICLECODE2 = 6) and dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('0E85C527-E6E9-4C5F-A8E8-105FD0E18FE7') = 1 
                            begin
                                exec USP_ADDPLANNEDGIFTPAYOUT 
                                    @PLANNEDGIFTID
                                    @PAYOUTAMOUNT
                                    @DATE
                                    @AMOUNT
                                    @CHANGEAGENTID
                                    @ISANONYMOUS
                                    @ID
                                    @GENERATEGLDISTRIBUTIONS,
                                    @TRANSACTIONCURRENCYID,
                                    @BASECURRENCYID,
                                    @BASEEXCHANGERATEID;
                            end
                        end try

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

                        return 0;