USP_DATAFORMTEMPLATE_VIEW_SPONSORSHIPPAYMENT
The load procedure used by the view dataform template "Sponsorship Payment View Form"
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. |
@NAME | nvarchar(700) | INOUT | Financial sponsor |
@COST | money | INOUT | Amount |
@FREQUENCY | nvarchar(100) | INOUT | Frequency |
@STARTDATE | date | INOUT | Start date |
@ENDDATE | date | INOUT | End date |
@REVENUEID | uniqueidentifier | INOUT | RevenueID |
@DESIGNATION | nvarchar(100) | INOUT | Designation |
@PASTDUE | money | INOUT | Past due |
@NEXTTRANSACTION | date | INOUT | Next transaction |
@SHOWPASTDUE | bit | INOUT | SHOWPASTDUE |
@REVENUELOOKUPID | nvarchar(100) | INOUT | Revenue ID |
@TOTALCOMMITMENT | money | INOUT | Commitment paid to date |
@TOTALSPONSORSHIP | money | INOUT | Sponsorship paid to date |
@TRANSACTIONCURRENCYID | uniqueidentifier | INOUT | Transaction Currency ID |
@BASECURRENCYID | uniqueidentifier | INOUT | Base Currency ID |
@BASEAMOUNT | money | INOUT | Base amount |
@ISPENDING | bit | INOUT | |
@PENDINGBATCHNUMBER | nvarchar(100) | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_SPONSORSHIPPAYMENT (
@ID uniqueidentifier, --sponsorship id
@DATALOADED bit = 0 output,
@NAME nvarchar(700) = null output,
@COST money = null output,
@FREQUENCY nvarchar(100) = null output,
@STARTDATE date = null output,
@ENDDATE date = null output,
--@PMTMETHOD nvarchar(20)=null output,
--@PMTTYPE varchar(20)=null output,
--@CCNUM varchar(30)=null output,
--@EXPDATE dbo.UDT_FUZZYDATE = null output,
@REVENUEID uniqueidentifier = null output,
@DESIGNATION nvarchar(100) = null output,
@PASTDUE money = null output,
@NEXTTRANSACTION date = null output,
@SHOWPASTDUE bit = null output,
@REVENUELOOKUPID nvarchar(100) = null output,
@TOTALCOMMITMENT money = null output,
@TOTALSPONSORSHIP money = null output,
@TRANSACTIONCURRENCYID uniqueidentifier = null output,
@BASECURRENCYID uniqueidentifier = null output,
@BASEAMOUNT money = null output,
@ISPENDING bit = null output,
@PENDINGBATCHNUMBER nvarchar(100) = null output
)
as
set nocount on;
-- be sure to set this, in case the select returns no rows
set @DATALOADED = 0;
-- populate the output parameters, which correspond to fields on the form. Note that
-- we set @DATALOADED = 1 to indicate that the load was successful. Otherwise, the system
-- will display a "no data loaded" message.
declare @REVENUESPLITID uniqueidentifier = null
declare @DESIGNATIONID uniqueidentifier = null
declare @CONSTITUENTID uniqueidentifier = null
--Get Revenuesplitid from sponsorship table.
select @DATALOADED = 1,
@REVENUESPLITID = S.revenuesplitid,
@CONSTITUENTID = R.constituentid,
@TRANSACTIONCURRENCYID = (
case
when RS.TRANSACTIONCURRENCYID is null
then RS.BASECURRENCYID
else RS.TRANSACTIONCURRENCYID
end
),
@REVENUELOOKUPID = R.LOOKUPID,
@BASEAMOUNT = RS.AMOUNT,
@BASECURRENCYID = RS.BASECURRENCYID
from dbo.SPONSORSHIP S
left outer join REVENUESPLIT RS
on S.REVENUESPLITID = RS.ID
left outer join REVENUE R
on RS.REVENUEID = R.ID
where S.ID = @ID
--Get donor name
select @NAME = name
from dbo.UFN_CONSTITUENT_DISPLAYNAME(@CONSTITUENTID)
--Get Revenueid, cost designationid from Revenuesplit table.
select @REVENUEID = revenueid,
@COST = transactionamount,
@DESIGNATIONID = designationid
from dbo.REVENUESPLIT
where ID = @REVENUESPLITID
--Get start date, end date and frequency from RevenueSchedule table.
select @STARTDATE = startdate,
@ENDDATE = enddate,
@FREQUENCY = frequency,
@ISPENDING = REVENUESCHEDULE.ISPENDING
from dbo.REVENUESCHEDULE
where ID = @REVENUEID
--Get Designation name from designation table.
select @DESIGNATION = name
from dbo.DESIGNATION
where ID = @DESIGNATIONID
-- SET PAST DUE AND NEXT TRANSACTION DATE (#45863)
set @PASTDUE = dbo.UFN_RECURRINGGIFT_GETPASTDUEAMOUNT_2(@REVENUEID, null, 0);
select @NEXTTRANSACTION = case
when NEXTTRANSACTIONDATE > ENDDATE
then null
else NEXTTRANSACTIONDATE
end
from dbo.REVENUESCHEDULE
where ID = @REVENUEID;
--Total commitment paid
select @TOTALCOMMITMENT = ISNULL(sum(RECURRINGGIFTACTIVITY.amount), 0.00),
@TOTALSPONSORSHIP = ISNULL(sum(case
when sp.sponsorshipid = @ID
then RECURRINGGIFTACTIVITY.amount
else 0.00
end), 0.00)
from dbo.RECURRINGGIFTACTIVITY
inner join dbo.REVENUESPLIT
on REVENUESPLIT.ID = RECURRINGGIFTACTIVITY.PAYMENTREVENUEID
left join sponsorshippayment sp
on sp.id = REVENUESPLIT.ID
where SOURCEREVENUEID = @REVENUEID
--Total sponsorship paid
/*
select
@TOTALSPONSORSHIP = ISNULL(sum(rga.amount),0.00)
from
sponsorshippayment sp
inner join REVENUESPLIT rs on rs.ID = sp.id
inner join RECURRINGGIFTACTIV
where
sp.sponsorshipid = @ID
*/
--Always showing past due now that the payment handling rules replace the RECURRINGGIFTSETTING
set @SHOWPASTDUE = 1
if @ISPENDING = 1
begin
select top 1 @PENDINGBATCHNUMBER = BATCH.BATCHNUMBER
from dbo.BATCH
inner join dbo.BATCHREVENUE
on BATCHREVENUE.BATCHID = BATCH.ID
left join dbo.BATCHREVENUEAPPLICATION as [BATCHAPP]
on [BATCHAPP].BATCHREVENUEID = BATCHREVENUE.ID
where BATCH.STATUSCODE not in (
1,
2
)
and (
(
[BATCHAPP].REVENUEID = @REVENUEID
and BATCHREVENUE.PAYINGPENDINGREVENUEID is null
and [BATCHAPP].WASGENERATED = 1
)
or (
[BATCHAPP].REVENUEID is null
and BATCHREVENUE.PAYINGPENDINGREVENUEID = @REVENUEID
)
or (
[BATCHAPP].REVENUEID = @REVENUEID
and BATCHREVENUE.PAYINGPENDINGREVENUEID = @REVENUEID
)
)
end
return 0;