USP_DATAFORMTEMPLATE_EDITLOAD_PLEDGEADJUST_3
The load procedure used by the edit dataform template "Posted Pledge Edit Form 3"
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 |
@REFERENCE | nvarchar(255) | INOUT | Reference |
@CATEGORYCODEID | uniqueidentifier | INOUT | Revenue category |
@ADJUSTMENTDATE | datetime | INOUT | Adjusted Date |
@ADJUSTMENTPOSTDATE | datetime | INOUT | Adjusted Post Date |
@ADJUSTMENTPOSTSTATUSCODE | tinyint | INOUT | Post Status Code |
@ADJUSTMENTREASON | nvarchar(300) | INOUT | Adjustment reason |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_PLEDGEADJUST_3
(
@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,
@REFERENCE nvarchar(255) = null output,
@CATEGORYCODEID uniqueidentifier = null output,
@ADJUSTMENTDATE datetime = null output,
@ADJUSTMENTPOSTDATE datetime = null output,
@ADJUSTMENTPOSTSTATUSCODE tinyint = null output,
@ADJUSTMENTREASON nvarchar(300) = null output
)
as
begin
set nocount on;
set @DATALOADED = 0;
set @TSLONG = 0;
declare @LASTINSTALLMENT uniqueidentifier;
select @ADJUSTMENTDATE = getdate(),
@ADJUSTMENTPOSTDATE = getdate(),
@ADJUSTMENTPOSTSTATUSCODE = 0
select
@ADJUSTMENTDATE = DATE,
@ADJUSTMENTPOSTDATE = POSTDATE,
@ADJUSTMENTPOSTSTATUSCODE = 1,
@ADJUSTMENTREASON = REASON
from dbo.ADJUSTMENT
where REVENUEID = @ID and POSTSTATUSCODE = 1
select
@DATALOADED = 1,
@CONSTITUENTID = CONSTITUENT.ID,
@CONSTITUENTNAME = CONSTITUENT.NAME,
@DATE = REVENUE.DATE,
@AMOUNT = REVENUE.AMOUNT,
@POSTSTATUSCODE = 0,
@MAXSOFTCREDITAMOUNT = 0,
@MAXSOLICITORAMOUNT = coalesce((select max(AMOUNT) from dbo.REVENUESOLICITOR where REVENUESPLITID = REVENUE.ID), 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,
@REFERENCE = REVENUEREFERENCE.REFERENCE,
@CATEGORYCODEID = (select top 1 GLREVENUECATEGORYMAPPINGID from dbo.REVENUECATEGORY inner join dbo.REVENUESPLIT on REVENUECATEGORY.ID = REVENUESPLIT.ID where REVENUEID = REVENUE.ID)
from
dbo.REVENUE
inner join
dbo.REVENUESCHEDULE on REVENUE.ID = REVENUESCHEDULE.ID
inner join
dbo.CONSTITUENT on REVENUE.CONSTITUENTID = CONSTITUENT.ID
left join
dbo.REVENUEREFERENCE on REVENUE.ID = REVENUEREFERENCE.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