USP_DATAFORMTEMPLATE_VIEW_CONSTITUENTMEMBERSHIPPRIMARYMEMBERINFORMATIONVIEW2
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@DATALOADED | bit | INOUT | |
@PRIMARYMEMBERNAME | nvarchar(100) | INOUT | |
@ADDRESSID | uniqueidentifier | INOUT | |
@ADDRESS | nvarchar(300) | INOUT | |
@ADDRESSTYPE | nvarchar(100) | INOUT | |
@PHONENUMBERID | uniqueidentifier | INOUT | |
@PHONENUMBER | nvarchar(100) | INOUT | |
@PHONENUMBERTYPE | nvarchar(100) | INOUT | |
@EMAILADDRESSID | uniqueidentifier | INOUT | |
@EMAILADDRESS | UDT_EMAILADDRESS | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_CONSTITUENTMEMBERSHIPPRIMARYMEMBERINFORMATIONVIEW2
(
@ID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier,
@DATALOADED bit = 0 output,
@PRIMARYMEMBERNAME nvarchar(100) = null output,
@ADDRESSID uniqueidentifier = null output,
@ADDRESS nvarchar(300) = null output,
@ADDRESSTYPE nvarchar(100) = null output,
@PHONENUMBERID uniqueidentifier = null output,
@PHONENUMBER nvarchar(100) = null output,
@PHONENUMBERTYPE nvarchar(100) = null output,
@EMAILADDRESSID uniqueidentifier = null output,
@EMAILADDRESS dbo.UDT_EMAILADDRESS = null output
)
as
set nocount on;
set @DATALOADED = 0;
-- Find name
select
@PRIMARYMEMBERNAME = NAME
from
dbo.UFN_CONSTITUENT_DISPLAYNAME(@ID)
declare @SEASONALITEMS table
(
CONSTITUENTID uniqueidentifier,
ITEMID uniqueidentifier
)
-- Find seasonal addresses
insert into @SEASONALITEMS
select
CONSTITUENTID,
ADDRESSID
from
dbo.UFN_ADDRESSPROCESS_SEASONALADDRESSES(GETDATE())
where
CONSTITUENTID = @ID
-- Address
if exists (select * from @SEASONALITEMS)
begin
-- Address is seasonal
select
@ADDRESSID = SI.ITEMID,
@ADDRESS = dbo.UFN_BUILDFULLADDRESS(SI.ITEMID, A.ADDRESSBLOCK, A.CITY, A.STATEID, A.POSTCODE, A.COUNTRYID),
@ADDRESSTYPE = ATC.DESCRIPTION
from
@SEASONALITEMS SI
inner join dbo.ADDRESS A on SI.ITEMID = A.ID
left join dbo.ADDRESSTYPECODE ATC on A.ADDRESSTYPECODEID = ATC.ID
end
else
begin
-- Address is not seasonal
select
@ADDRESSID = A.ID,
@ADDRESS = dbo.UFN_BUILDFULLADDRESS(A.ID, A.ADDRESSBLOCK, A.CITY, A.STATEID, A.POSTCODE, A.COUNTRYID),
@ADDRESSTYPE = ATC.DESCRIPTION
from
dbo.ADDRESS A
left join dbo.ADDRESSTYPECODE ATC on A.ADDRESSTYPECODEID = ATC.ID
where
A.CONSTITUENTID = @ID
and A.ISPRIMARY = 1
end
-- Prepare for re-use
delete from @SEASONALITEMS
-- Find seasonal phone numbers
insert into @SEASONALITEMS
select
CONSTITUENTID,
ID
from
dbo.PHONE P
where
CONSTITUENTID = @ID and
((cast((right('0' + cast(month(GETDATE()) as varchar(2)), 2) + right('0' + cast(day(GETDATE()) as varchar(2)), 2)) as int) - cast(P.SEASONALSTARTDATE as int)) + 1231) % 1231 between 0 and ((cast(P.SEASONALENDDATE as int) - cast(P.SEASONALSTARTDATE as int)) + 1231) % 1231
-- Phone number
if exists (select * from @SEASONALITEMS)
begin
-- Phone number is seasonal
select
@PHONENUMBERID = SI.ITEMID,
@PHONENUMBER = dbo.UFN_PHONE_GETINTERNATIONALNUMBER(P.COUNTRYID, P.NUMBER),
@PHONENUMBERTYPE = PTC.DESCRIPTION
from
@SEASONALITEMS SI
inner join dbo.PHONE P on SI.ITEMID = P.ID
left join dbo.PHONETYPECODE PTC on P.PHONETYPECODEID = PTC.ID
end
else
begin
-- Phone number is not seasonal
select
@PHONENUMBERID = P.ID,
@PHONENUMBER = dbo.UFN_PHONE_GETINTERNATIONALNUMBER(P.COUNTRYID, P.NUMBER),
@PHONENUMBERTYPE = PTC.DESCRIPTION
from
dbo.PHONE P
left join dbo.PHONETYPECODE PTC on P.PHONETYPECODEID = PTC.ID
where
P.CONSTITUENTID = @ID
and P.ISPRIMARY = 1
end
-- Email address
select
@EMAILADDRESSID = E.ID,
@EMAILADDRESS = EMAILADDRESS
from
dbo.EMAILADDRESS E
where
E.CONSTITUENTID = @ID and
E.ISPRIMARY = 1
set @DATALOADED = 1;
return 0;