USP_DATAFORMTEMPLATE_ADD_DESIGNATIONLEVELFINANCIALINFORMATIONBATCHCOMMIT

The save procedure used by the add dataform template "Fundraising Purpose Financial Information Batch Row Commit 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 Purpose
@STARTDATE datetime IN Start date
@ENDDATE datetime IN End date
@BOOKVALUESTART money IN Book value start
@BOOKVALUEEND money IN Book value end
@MARKETVALUESTART money IN Market value start
@MARKETVALUEEND money IN Market value end
@TOTALGIFTREVENUE money IN Total gift revenue
@TOTALDISBURSEMENTS money IN Total disbursements
@PLEDGEBALANCE money IN Pledge balance
@VALIDATEONLY bit IN Validate only

Definition

Copy

                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_DESIGNATIONLEVELFINANCIALINFORMATIONBATCHCOMMIT
                    (
                        @ID uniqueidentifier output
                        @CHANGEAGENTID uniqueidentifier,
                        @DESIGNATIONLEVELID uniqueidentifier = null,
                        @STARTDATE datetime = null,                                          
                        @ENDDATE datetime = null,
                        @BOOKVALUESTART money = 0,
                        @BOOKVALUEEND money = 0,                                          
                        @MARKETVALUESTART money = 0,
                        @MARKETVALUEEND money = 0,
                        @TOTALGIFTREVENUE money = 0,
                        @TOTALDISBURSEMENTS money = 0,
                        @PLEDGEBALANCE money = 0,                        
                        @VALIDATEONLY bit = 0
                    )
                    as
                    set nocount on;

                    declare @CHANGEDATE datetime;
                    set @CHANGEDATE = getdate();

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

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

                    begin try

                            declare @BASECURRENCYID uniqueidentifier;
                            declare @CURRENCYEXCHANGERATEID uniqueidentifier;
                            declare @ORGANIZATIONBOOKVALUESTART money;
                            declare @ORGANIZATIONBOOKVALUEEND money;
                            declare @ORGANIZATIONMARKETVALUESTART money;
                            declare @ORGANIZATIONMARKETVALUEEND money;
                            declare @ORGANIZATIONTOTALGIFTREVENUE money;
                            declare @ORGANIZATIONPLEDGEBALANCE money;
                            declare @ORGANIZATIONTOTALDISBURSEMENTS money;
                            declare @ORGANIZATIONCURRENCYID uniqueidentifier;
                            declare @DATEADDED datetime;
                            set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                            select
                                @BASECURRENCYID = BATCHDESIGNATIONLEVELFINANCIALINFO.BASECURRENCYID,
                                @DATEADDED = BATCHDESIGNATIONLEVELFINANCIALINFO.DATEADDED
                            from
                                dbo.BATCHDESIGNATIONLEVELFINANCIALINFO
                            where
                                BATCHDESIGNATIONLEVELFINANCIALINFO.ID = @ID

                            if @BASECURRENCYID is null
                                select @BASECURRENCYID = DESIGNATIONLEVEL.BASECURRENCYID from dbo.DESIGNATIONLEVEL where DESIGNATIONLEVEL.ID = @DESIGNATIONLEVELID

                            if (@ORGANIZATIONCURRENCYID = @BASECURRENCYID)
                            begin
                                select @ORGANIZATIONBOOKVALUESTART = @BOOKVALUESTART,
                                    @ORGANIZATIONBOOKVALUEEND = @BOOKVALUEEND,
                                    @ORGANIZATIONMARKETVALUESTART = @MARKETVALUESTART,
                                    @ORGANIZATIONMARKETVALUEEND = @MARKETVALUEEND,
                                    @ORGANIZATIONTOTALGIFTREVENUE = @TOTALGIFTREVENUE,
                                    @ORGANIZATIONPLEDGEBALANCE = @PLEDGEBALANCE,
                                    @ORGANIZATIONTOTALDISBURSEMENTS = @TOTALDISBURSEMENTS
                            end
                            else
                            begin
                                set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @DATEADDED, 0, null);

                                select @ORGANIZATIONBOOKVALUESTART = dbo.UFN_CURRENCY_CONVERT(@BOOKVALUESTART, @CURRENCYEXCHANGERATEID),
                                    @ORGANIZATIONBOOKVALUEEND = dbo.UFN_CURRENCY_CONVERT(@BOOKVALUEEND, @CURRENCYEXCHANGERATEID),
                                    @ORGANIZATIONMARKETVALUESTART = dbo.UFN_CURRENCY_CONVERT(@MARKETVALUESTART, @CURRENCYEXCHANGERATEID),
                                    @ORGANIZATIONMARKETVALUEEND = dbo.UFN_CURRENCY_CONVERT(@MARKETVALUEEND, @CURRENCYEXCHANGERATEID),
                                    @ORGANIZATIONTOTALGIFTREVENUE = dbo.UFN_CURRENCY_CONVERT(@TOTALGIFTREVENUE, @CURRENCYEXCHANGERATEID),
                                    @ORGANIZATIONPLEDGEBALANCE = dbo.UFN_CURRENCY_CONVERT(@PLEDGEBALANCE, @CURRENCYEXCHANGERATEID),
                                    @ORGANIZATIONTOTALDISBURSEMENTS = dbo.UFN_CURRENCY_CONVERT(@TOTALDISBURSEMENTS, @CURRENCYEXCHANGERATEID)
                            end

                        insert into dbo.DESIGNATIONLEVELFINANCIALINFO(ID, DESIGNATIONLEVELID, STARTDATE, ENDDATE, BOOKVALUESTART,ORGANIZATIONBOOKVALUESTART,BOOKVALUEEND,ORGANIZATIONBOOKVALUEEND,MARKETVALUESTART,ORGANIZATIONMARKETVALUESTART,MARKETVALUEEND,ORGANIZATIONMARKETVALUEEND,TOTALGIFTREVENUE,ORGANIZATIONTOTALGIFTREVENUE,PLEDGEBALANCE,ORGANIZATIONPLEDGEBALANCE,TOTALDISBURSEMENTS,ORGANIZATIONTOTALDISBURSEMENTS,ORGANIZATIONEXCHANGERATEID,BASECURRENCYID,ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                            values(@ID, @DESIGNATIONLEVELID, @STARTDATE, @ENDDATE, @BOOKVALUESTART,@ORGANIZATIONBOOKVALUESTART,@BOOKVALUEEND,@ORGANIZATIONBOOKVALUEEND,@MARKETVALUESTART,@ORGANIZATIONMARKETVALUESTART,@MARKETVALUEEND,@ORGANIZATIONMARKETVALUEEND,@TOTALGIFTREVENUE,@ORGANIZATIONTOTALGIFTREVENUE,@PLEDGEBALANCE,@ORGANIZATIONPLEDGEBALANCE,@TOTALDISBURSEMENTS,@ORGANIZATIONTOTALDISBURSEMENTS,@CURRENCYEXCHANGERATEID,@BASECURRENCYID,@CHANGEAGENTID, @CHANGEAGENTID, @CHANGEDATE, @CHANGEDATE)                            
                    end try
                    begin catch 
                        exec dbo.USP_RAISE_ERROR;
                        return 1;
                    end catch

                    return 0;