USP_DATAFORMTEMPLATE_VIEW_RECURRINGGIFT
The load procedure used by the view dataform template "Recurring Gift 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. |
| @ENDDATE | datetime | INOUT | End date |
| @STARTDATE | datetime | INOUT | Start date |
| @SOURCECODE | nvarchar(50) | INOUT | Source code |
| @MAILING | nvarchar(100) | INOUT | Effort |
| @CHANNEL | nvarchar(100) | INOUT | Inbound channel |
| @APPEAL | nvarchar(100) | INOUT | Appeal |
| @REVENUEREFERENCE | nvarchar(255) | INOUT | Revenue reference |
| @TAXCLAIMELIGIBILITY | nvarchar(30) | INOUT | Tax claim eligibility |
| @QUALIFICATIONSTATUS | nvarchar(30) | INOUT | Gift Aid qualification status |
| @CONSTITUENTISGROUP | bit | INOUT | Constituent is group |
| @TAXCLAIMELIGIBILITYSTATUSCODE | tinyint | INOUT | Tax claim eligibility |
| @BASECURRENCYID | uniqueidentifier | INOUT | Base currency ID |
| @TRANSACTIONCURRENCYID | uniqueidentifier | INOUT | Transaction currency ID |
| @ORGANIZATIONAMOUNT | money | INOUT | Organization amount |
| @BASEEXCHANGERATE | decimal(20, 8) | INOUT | Transaction to base exchange rate |
| @ORGANIZATIONEXCHANGERATE | decimal(20, 8) | INOUT | Base to organization exchange rate |
| @APPEALID | uniqueidentifier | INOUT | Appeal ID |
| @MEMBERSHIPID | uniqueidentifier | INOUT | |
| @MEMBERSHIP | nvarchar(100) | INOUT | |
| @MEMBERSHIPDATE | date | INOUT | |
| @MEMBERCONSTITUENTID | uniqueidentifier | INOUT | |
| @MEMBERCONSTITUENT | nvarchar(100) | INOUT | |
| @MEMBERSHIPEARNEDINCOMEAMOUNT | money | INOUT | |
| @MEMBERSHIPCONTRIBUTEDINCOMEAMOUNT | money | INOUT | |
| @LOOKUPID | nvarchar(100) | INOUT | |
| @VATAMOUNT | money | INOUT | |
| @BATCHNUMBER | nvarchar(100) | INOUT | |
| @REVENUECATEGORYCODE | nvarchar(100) | INOUT | |
| @ACKNOWLEDGEMENTSTATUS | nvarchar(50) | INOUT | |
| @ACKNOWLEDGEMENTDATE | datetime | INOUT | |
| @SPONSORSHIPID | uniqueidentifier | INOUT | |
| @SPONSORSHIP | nvarchar(100) | INOUT | |
| @SPONSORSHIPDATE | date | INOUT | |
| @SPONSORSHIPOPPORTUNITY | nvarchar(154) | INOUT | |
| @CONSTITUENTACCOUNTID | uniqueidentifier | INOUT | |
| @DDISOURCE | nvarchar(100) | INOUT | |
| @DDISOURCEDATE | date | INOUT | |
| @SENDPMINSTRUCTION | bit | INOUT | |
| @PMINSTRUCTIONTOSEND | nvarchar(10) | INOUT | |
| @PMINSTRUCTIONDATE_NEW | date | INOUT | |
| @PMINSTRUCTIONDATE_CANCEL | date | INOUT | |
| @PMINSTRUCTIONDATE_SETUP | date | INOUT | |
| @PMADVANCENOTICESENTDATE | date | INOUT | |
| @SEPAMANDATELOOKUPID | nvarchar(35) | INOUT | |
| @SEPAMANDATESIGNATUREDATE | datetime | INOUT | |
| @SEPAMANDATESTATUSCODE | tinyint | INOUT | |
| @CURRENTAPPUSERID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_RECURRINGGIFT
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@ENDDATE datetime = null output,
@STARTDATE datetime = null output,
@SOURCECODE nvarchar(50) = null output,
@MAILING nvarchar(100) = null output,
@CHANNEL nvarchar(100) = null output,
@APPEAL nvarchar(100) = null output,
@REVENUEREFERENCE nvarchar(255) = null output,
@TAXCLAIMELIGIBILITY nvarchar(30) = null output,
@QUALIFICATIONSTATUS nvarchar(30) = null output,
@CONSTITUENTISGROUP bit = null output,
@TAXCLAIMELIGIBILITYSTATUSCODE tinyint = null output,
@BASECURRENCYID uniqueidentifier = null output,
@TRANSACTIONCURRENCYID uniqueidentifier = null output,
@ORGANIZATIONAMOUNT money = null output,
@BASEEXCHANGERATE decimal(20,8) = null output,
@ORGANIZATIONEXCHANGERATE decimal(20,8) = null output,
@APPEALID uniqueidentifier = null output,
@MEMBERSHIPID uniqueidentifier = null output,
@MEMBERSHIP nvarchar(100) = null output,
@MEMBERSHIPDATE date = null output,
@MEMBERCONSTITUENTID uniqueidentifier = null output,
@MEMBERCONSTITUENT nvarchar(100) = null output,
@MEMBERSHIPEARNEDINCOMEAMOUNT money = null output,
@MEMBERSHIPCONTRIBUTEDINCOMEAMOUNT money = null output,
@LOOKUPID nvarchar(100) = null output,
@VATAMOUNT money = null output,
@BATCHNUMBER nvarchar(100) = null output,
@REVENUECATEGORYCODE nvarchar(100) = null output,
@ACKNOWLEDGEMENTSTATUS nvarchar(50) = null output,
@ACKNOWLEDGEMENTDATE datetime = null output,
@SPONSORSHIPID uniqueidentifier = null output,
@SPONSORSHIP nvarchar(100) = null output,
@SPONSORSHIPDATE date = null output,
@SPONSORSHIPOPPORTUNITY nvarchar(154) = null output,
@CONSTITUENTACCOUNTID uniqueidentifier = null output,
@DDISOURCE nvarchar(100) = null output,
@DDISOURCEDATE date = null output,
@SENDPMINSTRUCTION bit = null output,
@PMINSTRUCTIONTOSEND nvarchar(10) = null output,
@PMINSTRUCTIONDATE_NEW date = null output,
@PMINSTRUCTIONDATE_CANCEL date = null output,
@PMINSTRUCTIONDATE_SETUP date = null output,
@PMADVANCENOTICESENTDATE date = null output,
@SEPAMANDATELOOKUPID nvarchar(35) = null output,
@SEPAMANDATESIGNATUREDATE datetime = null output,
@SEPAMANDATESTATUSCODE tinyint = null output,
@CURRENTAPPUSERID uniqueidentifier = null
)
as
set nocount on;
set @DATALOADED = 0;
select @CONSTITUENTISGROUP = (ISGROUP|ISORGANIZATION)
from dbo.CONSTITUENT
inner join dbo.REVENUE on REVENUE.CONSTITUENTID = CONSTITUENT.ID
where REVENUE.ID = @ID;
declare @PAYMENTMETHODCODE tinyint;
select
@DATALOADED = 1,
@STARTDATE = REVENUESCHEDULE.STARTDATE,
@ENDDATE = REVENUESCHEDULE.ENDDATE,
@SOURCECODE = REXT.SOURCECODE,
@MAILING = dbo.UFN_MKTSEGMENTATION_GETNAME(REXT.MAILINGID),
@APPEAL = dbo.UFN_APPEAL_GETNAME(REXT.APPEALID),
@CHANNEL = CHANNELCODE.DESCRIPTION,
@REVENUEREFERENCE = REVENUEREFERENCE.REFERENCE,
@BASECURRENCYID = case when REVENUE.DELETEDON is null then isnull(REXT.NONPOSTABLEBASECURRENCYID, V.BASECURRENCYID) else null end,
@TRANSACTIONCURRENCYID = REVENUE.TRANSACTIONCURRENCYID,
@ORGANIZATIONAMOUNT = REVENUE.ORGAMOUNT,
@APPEALID = REXT.APPEALID,
@LOOKUPID = REVENUE.CALCULATEDUSERDEFINEDID,
@BATCHNUMBER = REXT.BATCHNUMBER,
@PAYMENTMETHODCODE = REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE
from dbo.FINANCIALTRANSACTION REVENUE
inner join dbo.REVENUE_EXT REXT ON REXT.ID = REVENUE.ID
left outer join dbo.V_BASECURRENCYFORFINANCIALTRANSACTION_I V with (noexpand) on REVENUE.ID = V.FINANCIALTRANSACTIONID
inner join dbo.REVENUESCHEDULE on REVENUESCHEDULE.ID = REVENUE.ID
left join dbo.CHANNELCODE on CHANNELCODE.ID = REXT.CHANNELCODEID
left join dbo.REVENUEREFERENCE on REVENUEREFERENCE.ID = REVENUE.ID
inner join dbo.REVENUEPAYMENTMETHOD on REVENUEPAYMENTMETHOD.REVENUEID = REVENUE.ID
where REVENUE.ID = @ID and REVENUE.TYPECODE = 2;
-- Pull membership data
select top 1
@MEMBERSHIPID = MEMBERSHIP.ID,
@MEMBERSHIPDATE = MEMBERSHIPTRANSACTION.TRANSACTIONDATE,
@MEMBERSHIP = dbo.UFN_MEMBERSHIPPROGRAM_GETNAME(MEMBERSHIP.MEMBERSHIPPROGRAMID),
@MEMBERCONSTITUENT = NF.NAME,
@MEMBERCONSTITUENTID = case
when MEMBERSHIP.GIVENBYID is not null then MEMBER.CONSTITUENTID
else null
end,
@MEMBERSHIPEARNEDINCOMEAMOUNT = dbo.UFN_PLEDGE_CALCULATEEARNEDINCOMEAMOUNT(FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID),
@MEMBERSHIPCONTRIBUTEDINCOMEAMOUNT = dbo.UFN_PLEDGE_CALCULATECONTRIBUTEDINCOMEAMOUNT(FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID)
from
dbo.MEMBERSHIPTRANSACTION
inner join dbo.MEMBERSHIP on MEMBERSHIPTRANSACTION.MEMBERSHIPID = MEMBERSHIP.ID
inner join dbo.MEMBER on MEMBERSHIP.ID = MEMBER.MEMBERSHIPID
inner join dbo.FINANCIALTRANSACTIONLINEITEM on MEMBERSHIPTRANSACTION.REVENUESPLITID = FINANCIALTRANSACTIONLINEITEM.ID
inner join dbo.REVENUESPLIT_EXT on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(MEMBER.CONSTITUENTID) NF
where
FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = @ID and MEMBER.ISPRIMARY = 1
and FINANCIALTRANSACTIONLINEITEM.DELETEDON is null
and FINANCIALTRANSACTIONLINEITEM.TYPECODE <> 1;
select
@BASEEXCHANGERATE = CURRENCYEXCHANGERATE.RATE
from dbo.REVENUE
left join dbo.CURRENCYEXCHANGERATE on REVENUE.BASEEXCHANGERATEID = CURRENCYEXCHANGERATE.ID
where REVENUE.ID = @ID;
select
@ORGANIZATIONEXCHANGERATE = CURRENCYEXCHANGERATE.RATE
from dbo.REVENUE
left join dbo.CURRENCYEXCHANGERATE on REVENUE.ORGANIZATIONEXCHANGERATEID = CURRENCYEXCHANGERATE.ID
where REVENUE.ID = @ID;
--Gift Aid is for UK only
if dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('9568A6C2-F7AA-45fd-8F54-21FE9654EE2D') = 1
begin
-- @TAXCLAIMELIGIBILITY is deprecated. Should use @TAXCLAIMELIGIBILITYSTATUSCODE instead.
select @TAXCLAIMELIGIBILITY = dbo.UFN_RECURRINGGIFTELIGIBILITY(@ID);
select @TAXCLAIMELIGIBILITYSTATUSCODE = dbo.UFN_RECURRINGGIFTELIGIBILITYSTATUS(@ID);
set @QUALIFICATIONSTATUS = dbo.UFN_RECURRINGGIFTQUALIFICATIONSTATUS(@ID);
set @VATAMOUNT = isnull((select REVENUEVAT.TRANSACTIONVATAMOUNT from dbo.REVENUEVAT where dbo.REVENUEVAT.ID = @ID), 0);
end
select top 1 @REVENUECATEGORYCODE = GLREVENUECATEGORYMAPPING.REVENUECATEGORYNAME
from dbo.FINANCIALTRANSACTIONLINEITEM REVENUESPLIT
inner join dbo.REVENUECATEGORY on REVENUECATEGORY.ID = REVENUESPLIT.ID
inner join dbo.GLREVENUECATEGORYMAPPING on REVENUECATEGORY.GLREVENUECATEGORYMAPPINGID = GLREVENUECATEGORYMAPPING.ID
where REVENUESPLIT.FINANCIALTRANSACTIONID = @ID;
set @ACKNOWLEDGEMENTSTATUS = dbo.UFN_REVENUETRANSACTION_GETACKNOWLEDGESTATUS(@ID);
select top 1 @ACKNOWLEDGEMENTDATE = ACKNOWLEDGEDATE
from dbo.REVENUELETTER
where REVENUELETTER.REVENUEID = @ID;
--Pull sponsorship Data
select top 1 @SPONSORSHIPID = SPONSORSHIP.ID,
@SPONSORSHIPDATE = SPONSORSHIP.STARTDATE,
@SPONSORSHIPOPPORTUNITY = OPNAME.NAME,
@SPONSORSHIP = 'X'
from dbo.SPONSORSHIP
inner join dbo.FINANCIALTRANSACTIONLINEITEM FTLI ON SPONSORSHIP.REVENUESPLITID = FTLI.ID
cross apply (select SPONSORSHIPOPPORTUNITYCHILD.NAME
from dbo.SPONSORSHIPOPPORTUNITYCHILD
where SPONSORSHIPOPPORTUNITYCHILD.ID = SPONSORSHIP.SPONSORSHIPOPPORTUNITYID
union all
select SPONSORSHIPOPPORTUNITYPROJECT.NAME
from SPONSORSHIPOPPORTUNITYPROJECT
where SPONSORSHIPOPPORTUNITYPROJECT.ID = SPONSORSHIP.SPONSORSHIPOPPORTUNITYID) OPNAME
WHERE SPONSORSHIP.ISMOSTRECENTFORCOMMITMENT = 1
and FTLI.FINANCIALTRANSACTIONID = @ID;
if @PAYMENTMETHODCODE = 3 --Direct Debit
begin
--If you have permission, do the select otherwise account id will be null so you won't see this information in the detail.
declare @USER_GRANTED_PAYMENTINFORMATION_VIEW bit
if dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1
set @USER_GRANTED_PAYMENTINFORMATION_VIEW = 1;
else
set @USER_GRANTED_PAYMENTINFORMATION_VIEW = dbo.UFN_SECURITY_APPUSER_GRANTED_FORM_IN_SYSTEMROLE(@CURRENTAPPUSERID,'bafca6f5-4cdb-4173-aece-113713d38bfb');
if @USER_GRANTED_PAYMENTINFORMATION_VIEW = 1
select
@CONSTITUENTACCOUNTID = REVENUESCHEDULEDIRECTDEBITPAYMENT.CONSTITUENTACCOUNTID,
@DDISOURCE = coalesce((select DESCRIPTION from dbo.DDISOURCECODE where ID = DDISOURCECODEID), N''),
@DDISOURCEDATE = REVENUESCHEDULEDIRECTDEBITPAYMENT.DDISOURCEDATE,
@SENDPMINSTRUCTION = REVENUESCHEDULEDIRECTDEBITPAYMENT.SENDPMINSTRUCTION,
@PMINSTRUCTIONTOSEND = REVENUESCHEDULEDIRECTDEBITPAYMENT.PMINSTRUCTIONTOSEND,
@PMINSTRUCTIONDATE_NEW = REVENUESCHEDULEDIRECTDEBITPAYMENT.PMINSTRUCTIONDATE_NEW,
@PMINSTRUCTIONDATE_CANCEL = REVENUESCHEDULEDIRECTDEBITPAYMENT.PMINSTRUCTIONDATE_CANCEL,
@PMINSTRUCTIONDATE_SETUP = REVENUESCHEDULEDIRECTDEBITPAYMENT.PMINSTRUCTIONDATE_SETUP,
@PMADVANCENOTICESENTDATE = REVENUESCHEDULEDIRECTDEBITPAYMENT.PMADVANCENOTICESENTDATE,
@SEPAMANDATELOOKUPID = SEPAMANDATE.LOOKUPID,
@SEPAMANDATESIGNATUREDATE = SEPAMANDATE.SIGNATUREDATE,
@SEPAMANDATESTATUSCODE = SEPAMANDATE.STATUSCODE
from dbo.REVENUESCHEDULEDIRECTDEBITPAYMENT
left join dbo.SEPAMANDATE on SEPAMANDATE.ID = REVENUESCHEDULEDIRECTDEBITPAYMENT.SEPAMANDATEID
where REVENUESCHEDULEDIRECTDEBITPAYMENT.ID = @ID;
end
return 0;