UFN_QUERY_RECEIPTFORMATTEDGIFTDETAILOUTPUT
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@NAMEFORMATPARAMETERID | uniqueidentifier | IN | |
@ADDRESSPROCESSINGOPTIONID | uniqueidentifier | IN | |
@SEASONALDATE | datetime | IN | |
@INDUSESEASONALADDRESS | bit | IN | |
@ORGMAILINGPREFERENCE | tinyint | IN | |
@INDALTADDRESS1TYPECODEID | uniqueidentifier | IN | |
@INDALTADDRESS1ISPRIMARY | bit | IN | |
@INDALTADDRESS2TYPECODEID | uniqueidentifier | IN | |
@INDALTADDRESS2ISPRIMARY | bit | IN | |
@ORGALTADDRESS1TYPECODEID | uniqueidentifier | IN | |
@ORGALTADDRESS1ISPRIMARY | bit | IN | |
@ORGALTADDRESS2TYPECODEID | uniqueidentifier | IN | |
@ORGALTADDRESS2ISPRIMARY | bit | IN | |
@INDINCLUDEWITHNOADDRESS | bit | IN | |
@ORGINCLUDEWITHNOADDRESS | bit | IN | |
@ORGINCLUDEWITHNOCONTACT | bit | IN | |
@ORGSENDTOALLCONTACTS | bit | IN | |
@INDUSECONSTITUENTPREFS | bit | IN | |
@ORGUSECONSTITUENTPREFS | bit | IN | |
@GROUPALTADDRESS1TYPECODEID | uniqueidentifier | IN | |
@GROUPALTADDRESS1ISPRIMARY | bit | IN | |
@GROUPALTADDRESS2TYPECODEID | uniqueidentifier | IN | |
@GROUPALTADDRESS2ISPRIMARY | bit | IN | |
@GROUPINCLUDEWITHNOADDRESS | bit | IN | |
@GROUPUSECONSTITUENTPREFS | bit | IN | |
@INDIVIDUALADDRESSEES | xml | IN | |
@ADDRESSEEFUNCTIONID | uniqueidentifier | IN | |
@INDIVIDUALSALUTATIONS | xml | IN | |
@SALUTATIONFUNCTIONID | uniqueidentifier | IN | |
@ORGADDRESSEES | xml | IN | |
@CONTACTADDRESSEEFUNCTIONID | uniqueidentifier | IN | |
@ORGSALUTATIONCODE | tinyint | IN | |
@ORGSALUTATIONS | xml | IN | |
@CONTACTSALUTATIONFUNCTIONID | uniqueidentifier | IN | |
@CONTACTSALUTATIONOPTIONCODE | tinyint | IN | |
@CUSTOMNAME | nvarchar(100) | IN | |
@GROUPADDRESSEES | xml | IN | |
@GROUPADDRESSEEFUNCTIONID | uniqueidentifier | IN | |
@GROUPSALUTATIONCODE | tinyint | IN | |
@GROUPSALUTATIONS | xml | IN | |
@GROUPSALUTATIONFUNCTIONID | uniqueidentifier | IN | |
@GROUPNOCONTACTOPTIONCODE | bit | IN | |
@GROUPNOCONTACTCUSTOMNAME | nvarchar(100) | IN | |
@JOINTRULETYPECODE | tinyint | IN | |
@JOINTSELECTIONID | uniqueidentifier | IN | |
@JOINTSELECTIONBOTHRULETYPECODE | tinyint | IN | |
@JOINTSELECTIONNEITHERRULETYPECODE | tinyint | IN |
Definition
Copy
CREATE function [dbo].[UFN_QUERY_RECEIPTFORMATTEDGIFTDETAILOUTPUT]
(
@NAMEFORMATPARAMETERID uniqueidentifier,
@ADDRESSPROCESSINGOPTIONID uniqueidentifier,
@SEASONALDATE datetime = null,
@INDUSESEASONALADDRESS bit,
@ORGMAILINGPREFERENCE tinyint,
@INDALTADDRESS1TYPECODEID uniqueidentifier,
@INDALTADDRESS1ISPRIMARY bit,
@INDALTADDRESS2TYPECODEID uniqueidentifier,
@INDALTADDRESS2ISPRIMARY bit,
@ORGALTADDRESS1TYPECODEID uniqueidentifier,
@ORGALTADDRESS1ISPRIMARY bit,
@ORGALTADDRESS2TYPECODEID uniqueidentifier,
@ORGALTADDRESS2ISPRIMARY bit,
@INDINCLUDEWITHNOADDRESS bit,
@ORGINCLUDEWITHNOADDRESS bit,
@ORGINCLUDEWITHNOCONTACT bit,
@ORGSENDTOALLCONTACTS bit,
@INDUSECONSTITUENTPREFS bit,
@ORGUSECONSTITUENTPREFS bit,
@GROUPALTADDRESS1TYPECODEID uniqueidentifier,
@GROUPALTADDRESS1ISPRIMARY bit,
@GROUPALTADDRESS2TYPECODEID uniqueidentifier,
@GROUPALTADDRESS2ISPRIMARY bit,
@GROUPINCLUDEWITHNOADDRESS bit,
@GROUPUSECONSTITUENTPREFS bit,
@INDIVIDUALADDRESSEES xml,
@ADDRESSEEFUNCTIONID uniqueidentifier,
@INDIVIDUALSALUTATIONS xml,
@SALUTATIONFUNCTIONID uniqueidentifier,
@ORGADDRESSEES xml,
@CONTACTADDRESSEEFUNCTIONID uniqueidentifier,
@ORGSALUTATIONCODE tinyint,
@ORGSALUTATIONS xml,
@CONTACTSALUTATIONFUNCTIONID uniqueidentifier,
@CONTACTSALUTATIONOPTIONCODE tinyint,
@CUSTOMNAME nvarchar(100),
@GROUPADDRESSEES xml,
@GROUPADDRESSEEFUNCTIONID uniqueidentifier,
@GROUPSALUTATIONCODE tinyint,
@GROUPSALUTATIONS xml,
@GROUPSALUTATIONFUNCTIONID uniqueidentifier,
@GROUPNOCONTACTOPTIONCODE bit,
@GROUPNOCONTACTCUSTOMNAME nvarchar(100),
@JOINTRULETYPECODE As tinyint,
@JOINTSELECTIONID As uniqueidentifier,
@JOINTSELECTIONBOTHRULETYPECODE As tinyint,
@JOINTSELECTIONNEITHERRULETYPECODE As tinyint
)
returns table
as
return
(
/*###WITH_CLAUSE_BEGIN###*/
with REV_CTE as
(
select ID,
CONSTITUENTID,
AMOUNT,
RECEIPTAMOUNT,
DATE,
GIVENANONYMOUSLY,
TRANSACTIONAMOUNT,
TRANSACTIONCURRENCYID
from dbo.REVENUE
where REVENUE.TRANSACTIONTYPECODE = 0
and REVENUE.DONOTRECEIPT = 0
and REVENUE.RECEIPTTYPECODE = 1 -- consolidated
and not exists (select RR.ID from REVENUERECEIPT RR where RR.REVENUEID = REVENUE.ID and REVENUE.NEEDSRERECEIPT = 0)
)
/*###WITH_CLAUSE_END###*/
select
REVENUE.ID REVENUEID,
A.CONSTITUENTID,
CONSTITUENT.NAME CONSTITUENTNAME,
CONSTITUENT.LOOKUPID CONSTITUENTLOOKUPID,
A.ADDRESSEE,
A.SALUTATION,
A.CONTACT as CONTACTADDRESSEE,
A.POSITION,
A.ADDRESSBLOCK as ADDRESSBLOCK,
A.CITY as CITY,
A.STATE as STATE,
A.POSTCODE as POSTCODE,
A.COUNTRY as COUNTRY,
REVENUE.DATE as DATE,
REVENUE.TRANSACTIONAMOUNT as PAYMENTAMOUNT,
REVENUE.RECEIPTAMOUNT as RECEIPTAMOUNT,
(select coalesce(sum(RB.TRANSACTIONTOTALVALUE),0) from dbo.REVENUEBENEFIT RB where RB.REVENUEID = REVENUE.ID) as TOTALBENEFITAMOUNT,
REVENUEPAYMENTMETHOD.PAYMENTMETHOD as PAYMENTMETHOD,
STOCKDETAIL.ISSUER as ISSUER,
STOCKDETAIL.SYMBOL as SYMBOL,
STOCKDETAIL.NUMBEROFUNITS as NUMBEROFUNITS,
STOCKDETAIL.TRANSACTIONMEDIANPRICE as MEDIANPRICE,
PROPERTYGIKSUBTYPE =
case when REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE in (5,8) then PTC.DESCRIPTION
when REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE = 6 then GIKTC.DESCRIPTION
else null end,
case REVENUE.GIVENANONYMOUSLY when 1 then 'Yes' else 'No' end as GIVENANONYMOUSLY,
/*###WITH_FIELDS_BEGIN###*/
(select coalesce(sum(TRANSACTIONAMOUNT),0)
from REV_CTE R
where
R.CONSTITUENTID = REVENUE.CONSTITUENTID and
R.TRANSACTIONCURRENCYID = REVENUE.TRANSACTIONCURRENCYID
) as CONSTITUENTPAYMENTAMOUNT,
(select coalesce(sum(RECEIPTAMOUNT),0)
from REV_CTE R
where
R.CONSTITUENTID = REVENUE.CONSTITUENTID and
R.TRANSACTIONCURRENCYID = REVENUE.TRANSACTIONCURRENCYID
) as CONSTITUENTRECEIPTAMOUNT,
(select coalesce(sum(RB.TRANSACTIONTOTALVALUE),0)
from REV_CTE R
inner join dbo.REVENUEBENEFIT RB on R.ID = RB.REVENUEID
where
R.CONSTITUENTID = REVENUE.CONSTITUENTID and
R.TRANSACTIONCURRENCYID = REVENUE.TRANSACTIONCURRENCYID
) as CONSTITUENTBENEFITAMOUNT,
(select count(distinct R.ID)
from REV_CTE R
where
R.CONSTITUENTID = REVENUE.CONSTITUENTID and
R.TRANSACTIONCURRENCYID = REVENUE.TRANSACTIONCURRENCYID
) as NUMBEROFTRANSACTIONS,
(select coalesce(sum(RV.TRANSACTIONAMOUNTTOTAX),0)
from REV_CTE R
left join REVENUEVAT RV on R.ID = RV.ID
where
R.CONSTITUENTID = REVENUE.CONSTITUENTID and
R.TRANSACTIONCURRENCYID = REVENUE.TRANSACTIONCURRENCYID
) as TOTALPORTIONSUBJECTTOVAT,
(select coalesce(sum(RV.TRANSACTIONVATAMOUNT),0)
from REV_CTE R
left join REVENUEVAT RV on R.ID = RV.ID
where
R.CONSTITUENTID = REVENUE.CONSTITUENTID and
R.TRANSACTIONCURRENCYID = REVENUE.TRANSACTIONCURRENCYID
) as TOTALVATAMOUNT,
/*###WITH_FIELDS_END###*/
[REVENUEVAT].TRANSACTIONAMOUNTTOTAX as [PORTIONSUBJECTTOVAT],
[VATTAXRATE].DESCRIPTION as [VATTAXRATEDESCRIPTION],
[VATTAXRATE].TAXRATE as [VATTAXRATE],
[REVENUEVAT].TRANSACTIONVATAMOUNT as VATAMOUNT,
[GIK].ITEMNAME as [GIFTINKINDITEMNAME],
[GIK].DISPOSITION as [GIFTINKINDDISPOSITION],
[GIK].NUMBEROFUNITS as [GIFTINKINDNUMBEROFUNITS],
[GIK].TRANSACTIONFAIRMARKETVALUE as [GIFTINKINDFAIRMARKETVALUE],
/*###WITH_FIELDS_CURRENCY_BEGIN###*/
[REVENUE].[TRANSACTIONCURRENCYID],
[CURRENCY].[ISO4217] as [TRANSACTIONCURRENCY],
/*###WITH_FIELDS_CURRENCY_END###*/
case when CONSTITUENT.ISORGANIZATION = 1 then
(select top 1 RELATIONSHIPJOBINFO.JOBTITLE
from dbo.RELATIONSHIP
inner join dbo.RELATIONSHIPJOBINFO on RELATIONSHIP.RELATIONSHIPSETID = RELATIONSHIPJOBINFO.RELATIONSHIPSETID
inner join dbo.CONSTITUENT CONTACT on RELATIONSHIP.RECIPROCALCONSTITUENTID = CONTACT.ID
where RELATIONSHIP.ISPRIMARYCONTACT = 1
and RELATIONSHIP.RELATIONSHIPCONSTITUENTID = CONSTITUENT.ID)
else
null
end as JOBTITLE
from dbo.REVENUE
inner join dbo.CONSTITUENT on CONSTITUENT.ID = REVENUE.CONSTITUENTID
inner join dbo.UFN_CONTACTPREFERENCES_GETFORMATS_EXT(
@NAMEFORMATPARAMETERID,
@ADDRESSPROCESSINGOPTIONID,
5,
null,
@SEASONALDATE,
0,
@INDUSESEASONALADDRESS ,
@ORGMAILINGPREFERENCE ,
@INDALTADDRESS1TYPECODEID,
@INDALTADDRESS1ISPRIMARY ,
@INDALTADDRESS2TYPECODEID,
@INDALTADDRESS2ISPRIMARY ,
@ORGALTADDRESS1TYPECODEID,
@ORGALTADDRESS1ISPRIMARY ,
@ORGALTADDRESS2TYPECODEID,
@ORGALTADDRESS2ISPRIMARY ,
@INDINCLUDEWITHNOADDRESS ,
@ORGINCLUDEWITHNOADDRESS ,
@ORGINCLUDEWITHNOCONTACT ,
@ORGSENDTOALLCONTACTS ,
@INDUSECONSTITUENTPREFS ,
@ORGUSECONSTITUENTPREFS ,
@GROUPALTADDRESS1TYPECODEID,
@GROUPALTADDRESS1ISPRIMARY ,
@GROUPALTADDRESS2TYPECODEID,
@GROUPALTADDRESS2ISPRIMARY ,
@GROUPINCLUDEWITHNOADDRESS ,
@GROUPUSECONSTITUENTPREFS ,
@INDIVIDUALADDRESSEES ,
@ADDRESSEEFUNCTIONID,
@INDIVIDUALSALUTATIONS ,
@SALUTATIONFUNCTIONID,
@ORGADDRESSEES ,
@CONTACTADDRESSEEFUNCTIONID,
@ORGSALUTATIONCODE,
@ORGSALUTATIONS ,
@CONTACTSALUTATIONFUNCTIONID,
@CONTACTSALUTATIONOPTIONCODE ,
@CUSTOMNAME ,
@GROUPADDRESSEES ,
@GROUPADDRESSEEFUNCTIONID,
@GROUPSALUTATIONCODE,
@GROUPSALUTATIONS ,
@GROUPSALUTATIONFUNCTIONID,
@GROUPNOCONTACTOPTIONCODE ,
@GROUPNOCONTACTCUSTOMNAME,
@JOINTRULETYPECODE,
@JOINTSELECTIONID,
@JOINTSELECTIONBOTHRULETYPECODE,
@JOINTSELECTIONNEITHERRULETYPECODE,
0) A
on CONSTITUENT.ID = A.CONSTITUENTID
inner join dbo.REVENUEPAYMENTMETHOD on REVENUEPAYMENTMETHOD.REVENUEID = REVENUE.ID
left join dbo.STOCKDETAIL on REVENUEPAYMENTMETHOD.ID = STOCKDETAIL.ID
left join dbo.PROPERTYDETAIL PD on PD.ID = REVENUEPAYMENTMETHOD.ID
left join dbo.PROPERTYSUBTYPECODE PTC on PTC.ID = PD.PROPERTYSUBTYPECODEID
left join dbo.GIFTINKINDPAYMENTMETHODDETAIL GIK on GIK.ID = REVENUEPAYMENTMETHOD.ID
left join dbo.GIFTINKINDSUBTYPECODE GIKTC on GIKTC.ID = GIK.GIFTINKINDSUBTYPECODEID
left join dbo.REVENUEVAT on REVENUE.ID = REVENUEVAT.ID
left join dbo.VATTAXRATE on REVENUEVAT.VATTAXRATEID = VATTAXRATE.ID
left join dbo.[CURRENCY] on [CURRENCY].[ID] = [REVENUE].[TRANSACTIONCURRENCYID]
/*###WITH_JOINS_BEGIN###*/
/*###WITH_JOINS_END###*/
where
REVENUE.TRANSACTIONTYPECODE in (0, 4)
and REVENUE.DONOTRECEIPT = 0
and REVENUE.RECEIPTTYPECODE = 1 -- consolidated
and not exists (select RR.ID from REVENUERECEIPT RR where RR.REVENUEID = REVENUE.ID and REVENUE.NEEDSRERECEIPT = 0)
)