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;