USP_DATAFORMTEMPLATE_EDITLOAD_PLEDGE_2

The load procedure used by the edit dataform template "Pledge Edit Form 2"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@CONSTITUENTID uniqueidentifier INOUT
@CONSTITUENTNAME nvarchar(255) INOUT Constituent
@DATE datetime INOUT Date
@AMOUNT money INOUT Amount
@POSTSTATUSCODE tinyint INOUT Post status
@POSTDATE datetime INOUT Post date
@SENDPLEDGEREMINDER bit INOUT Send pledge reminders
@SPLITS xml INOUT Designations
@FREQUENCYCODE tinyint INOUT Frequency
@NUMBEROFINSTALLMENTS int INOUT No. installments remaining
@NEXTTRANSACTIONDATE datetime INOUT Next installment date
@AMOUNTPAID money INOUT Amount paid
@INSTALLMENTS xml INOUT
@FINDERNUMBER bigint INOUT Finder number
@SOURCECODE nvarchar(50) INOUT Source code
@APPEALID uniqueidentifier INOUT Appeal
@BENEFITS xml INOUT Benefits
@BENEFITSWAIVED bit INOUT Benefits waived
@GIVENANONYMOUSLY bit INOUT Pledge is anonymous
@MAILINGID uniqueidentifier INOUT Mailing
@CHANNELCODEID uniqueidentifier INOUT Channel
@DONOTACKNOWLEDGE bit INOUT Do not acknowledge
@PLEDGESUBTYPEID uniqueidentifier INOUT Subtype
@MAXSOFTCREDITAMOUNT money INOUT Max soft credit amount
@MAXSOLICITORAMOUNT money INOUT Max solicitor amount
@TSLONG bigint INOUT Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record.
@MAINSINGLEDESIGNATIONID uniqueidentifier INOUT Designation
@FINDERNUMBERVALID bit INOUT FINDERNUMBERVALID
@OPPORTUNITYID uniqueidentifier INOUT Opportunity
@OPPORTUNITYCONSTITUENTNAME nvarchar(154) INOUT
@OPPORTUNITYASKDATE datetime INOUT
@OPPORTUNITYASKAMOUNT money INOUT
@LASTPAYMENTSEQUENCE int INOUT Installment sequence of last payment
@MAXSOLICITORSPLITAMOUNTS xml INOUT Max solicitor split amounts

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_PLEDGE_2
                    (
                        @ID uniqueidentifier,
                        @DATALOADED bit = 0 output,
                        @CONSTITUENTID uniqueidentifier = null output,
                        @CONSTITUENTNAME nvarchar(255) = null output,
                        @DATE datetime = null output,
                        @AMOUNT money = null output,
                        @POSTSTATUSCODE tinyint = null output,
                        @POSTDATE datetime = null output,
                        @SENDPLEDGEREMINDER bit = null output,
                        @SPLITS xml = null output,
                        @FREQUENCYCODE tinyint = null output,
                        @NUMBEROFINSTALLMENTS int = null output,
                        @NEXTTRANSACTIONDATE datetime = null output,
                        @AMOUNTPAID money = null output,
                        @INSTALLMENTS xml = null output,
                        @FINDERNUMBER bigint = null output,
                        @SOURCECODE nvarchar(50) = null output,
                        @APPEALID uniqueidentifier = null output,
                        @BENEFITS xml = null output,
                        @BENEFITSWAIVED bit = null output,
                        @GIVENANONYMOUSLY bit = null output,
                        @MAILINGID uniqueidentifier = null output,
                        @CHANNELCODEID uniqueidentifier = null output,
                        @DONOTACKNOWLEDGE bit = null output,
                        @PLEDGESUBTYPEID uniqueidentifier = null output,
                        @MAXSOFTCREDITAMOUNT money = null output,
                        @MAXSOLICITORAMOUNT money = null output,
                        @TSLONG bigint = 0 output,
                        @MAINSINGLEDESIGNATIONID uniqueidentifier = null output,
                        @FINDERNUMBERVALID bit = null output,
                        @OPPORTUNITYID uniqueidentifier = null output,
                        @OPPORTUNITYCONSTITUENTNAME nvarchar(154) = null output,
                        @OPPORTUNITYASKDATE datetime = null output,
                        @OPPORTUNITYASKAMOUNT money = null output,
                        @LASTPAYMENTSEQUENCE int = null output,
                        @MAXSOLICITORSPLITAMOUNTS xml = null output
                    )
                    as
                    begin
                        set nocount on;

                        set @DATALOADED = 0;
                        set @TSLONG = 0;

                        declare @LASTINSTALLMENT uniqueidentifier;

                        select 
                            @DATALOADED = 1,
                            @CONSTITUENTID = CONSTITUENT.ID,
                            @CONSTITUENTNAME = CONSTITUENT.NAME,
                            @DATE = REVENUE.DATE,
                            @AMOUNT = REVENUE.AMOUNT,
                            @POSTSTATUSCODE = case when REVENUE.DONOTPOST = 1 then 2 when REVENUEPOSTED.ID is not null then 0 else 1 end,
                            @MAXSOFTCREDITAMOUNT = 0,
                            @MAXSOLICITORAMOUNT = 0,
                            @POSTDATE = REVENUE.POSTDATE,
                            @SENDPLEDGEREMINDER = REVENUESCHEDULE.SENDPLEDGEREMINDER,
                            @FREQUENCYCODE = REVENUESCHEDULE.FREQUENCYCODE,
                            @NUMBEROFINSTALLMENTS = REVENUESCHEDULE.NUMBEROFINSTALLMENTS,
                            @NEXTTRANSACTIONDATE = coalesce(REVENUESCHEDULE.NEXTTRANSACTIONDATE, REVENUESCHEDULE.STARTDATE),
                            @TSLONG = REVENUE.TSLONG,                            
                            @FINDERNUMBER = FINDERNUMBER,
                            @SOURCECODE = SOURCECODE,
                            @APPEALID = APPEALID,
                            @BENEFITSWAIVED = BENEFITSWAIVED,
                            @GIVENANONYMOUSLY = GIVENANONYMOUSLY,
                            @MAILINGID = MAILINGID,
                            @CHANNELCODEID = CHANNELCODEID,
                            @DONOTACKNOWLEDGE = DONOTACKNOWLEDGE,
                            @PLEDGESUBTYPEID = PLEDGESUBTYPEID,
                            @MAXSOLICITORSPLITAMOUNTS = dbo.UFN_REVENUEDETAIL_GETMAXSOLICITORSPLITAMOUNTS_TOITEMLISTXML(@ID)
                        from
                            dbo.REVENUE
                        left join
                            dbo.REVENUEPOSTED on REVENUEPOSTED.ID = REVENUE.ID
                        inner join
                            dbo.REVENUESCHEDULE on REVENUE.ID = REVENUESCHEDULE.ID
                        inner join
                            dbo.CONSTITUENT on REVENUE.CONSTITUENTID = CONSTITUENT.ID
                        where
                            REVENUE.ID = @ID and REVENUE.TRANSACTIONTYPECODE = 1;

                        if @DATALOADED = 1
                        begin

                            select top 1
                                @OPPORTUNITYID = RO.OPPORTUNITYID,
                                @OPPORTUNITYCONSTITUENTNAME = OC.NAME,
                                @OPPORTUNITYASKDATE = O.ASKDATE,
                                @OPPORTUNITYASKAMOUNT = O.ASKAMOUNT
                            from
                                dbo.REVENUESPLIT
                            left outer join
                                dbo.REVENUEOPPORTUNITY RO on RO.ID = REVENUESPLIT.ID
                            left outer join
                                dbo.OPPORTUNITY O on O.ID = RO.OPPORTUNITYID
                            left outer join
                                dbo.PROSPECTPLAN PP on PP.ID = O.PROSPECTPLANID
                            left outer join
                                dbo.CONSTITUENT OC on OC.ID = PP.PROSPECTID
                            where REVENUESPLIT.REVENUEID = @ID

                            set @AMOUNTPAID = @AMOUNT - dbo.UFN_PLEDGE_GETBALANCE(@ID);            

                            set @LASTINSTALLMENT = dbo.UFN_INSTALLMENT_GETLASTINSTALLMENTPAID(@ID);

                            if @LASTINSTALLMENT is null 
                                begin
                                    set @LASTPAYMENTSEQUENCE = 0;
                                end
                            else
                                begin
                                    set @LASTPAYMENTSEQUENCE = (select SEQUENCE from dbo.INSTALLMENT where ID = @LASTINSTALLMENT);
                                end

                            set @INSTALLMENTS = dbo.UFN_INSTALLMENT_GETINSTALLMENTS_TOITEMLISTXML(@ID);

                            -- set @NUMBEROFINSTALLMENTS to the number of unpaid installments

                            select @NUMBEROFINSTALLMENTS = @NUMBEROFINSTALLMENTS - @LASTPAYMENTSEQUENCE


                            set @SPLITS = dbo.UFN_REVENUE_GETSPLITS_TOITEMLISTXML(@ID);
                            set @INSTALLMENTS = dbo.UFN_INSTALLMENT_GETINSTALLMENTS_TOITEMLISTXML(@ID);
                            set @BENEFITS = dbo.UFN_REVENUE_GETBENEFITS_TOITEMLISTXML(@ID);

                            if @FINDERNUMBER = 0
                                set @FINDERNUMBER = null;

                            if (not @FINDERNUMBER is null)
                                set @FINDERNUMBERVALID = 1;
                            else
                                set @FINDERNUMBERVALID = 0;

                        end

                        return 0;

                    end