UFN_CONSTITUENT_ISINCONSTITUENTBYADDRESS
Return
Return Type |
---|
bit |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CONSTITUENTBYADDRESSIDSETREGISTERID | uniqueidentifier | IN |
Definition
Copy
create function dbo.UFN_CONSTITUENT_ISINCONSTITUENTBYADDRESS (
@ID uniqueidentifier,
@CONSTITUENTBYADDRESSIDSETREGISTERID uniqueidentifier
)
returns bit
as begin
declare @DATAFORMITEMFILTERXML xml;
select
@DATAFORMITEMFILTERXML = SMARTQUERYINSTANCE.DATAFORMITEMFILTERXML
from
dbo.IDSETREGISTER
inner join
dbo.IDSETREGISTERSMARTQUERYINSTANCE on IDSETREGISTERSMARTQUERYINSTANCE.IDSETREGISTERID = IDSETREGISTER.ID
inner join
dbo.SMARTQUERYINSTANCE on SMARTQUERYINSTANCE.ID = IDSETREGISTERSMARTQUERYINSTANCE.SMARTQUERYINSTANCEID
where
IDSETREGISTER.ID = @CONSTITUENTBYADDRESSIDSETREGISTERID
and SMARTQUERYINSTANCE.SMARTQUERYCATALOGID = '9ed9e3b7-8b1e-4f3f-87c2-814d6b3e5a59';
if @DATAFORMITEMFILTERXML is not null begin
declare @GUIDFILTERS table (ID uniqueidentifier);
declare @STRINGFILTERS table (VALUE nvarchar(50));
declare @ADDRESSFIELD int;
with xmlnamespaces (default 'bb_appfx_dataforms')
select @ADDRESSFIELD = T.c.value('(Value)[1]', 'int')
from @DATAFORMITEMFILTERXML.nodes('/DataFormItem/Values/fv') as T(c)
where T.c.value('./@ID', 'nvarchar(max)') = 'ADDRESSFIELD';
if @ADDRESSFIELD = 0 begin
with xmlnamespaces (default 'bb_appfx_dataforms')
insert into @GUIDFILTERS
select T.c.value('(Value)[1]', 'uniqueidentifier')
from @DATAFORMITEMFILTERXML.nodes('/DataFormItem/Values/fv/Value/Items/DataFormItem/Values/fv') T(c)
where T.c.value('@ID', 'nvarchar(max)') = 'COUNTYCODEID';
end else if @ADDRESSFIELD = 1 begin
with xmlnamespaces (default 'bb_appfx_dataforms')
insert into @STRINGFILTERS
select T.c.value('(Value)[1]', 'nvarchar(50)')
from @DATAFORMITEMFILTERXML.nodes('/DataFormItem/Values/fv/Value/Items/DataFormItem/Values/fv') T(c)
where T.c.value('@ID', 'nvarchar(max)') = 'CITY';
end else if @ADDRESSFIELD = 2 begin
with xmlnamespaces (default 'bb_appfx_dataforms')
insert into @GUIDFILTERS
select T.c.value('(Value)[1]', 'uniqueidentifier')
from @DATAFORMITEMFILTERXML.nodes('/DataFormItem/Values/fv/Value/Items/DataFormItem/Values/fv') T(c)
where T.c.value('@ID', 'nvarchar(max)') = 'STATEID';
end else if @ADDRESSFIELD = 3 begin
with xmlnamespaces (default 'bb_appfx_dataforms')
insert into @STRINGFILTERS
select T.c.value('(Value)[1]', 'nvarchar(12)')
from @DATAFORMITEMFILTERXML.nodes('/DataFormItem/Values/fv/Value/Items/DataFormItem/Values/fv') T(c)
where T.c.value('@ID', 'nvarchar(max)') = 'POSTCODE';
end
if exists (
select 1
from dbo.[ADDRESS]
left join dbo.ADDRESSVALIDATIONUPDATE on ADDRESS.ID = ADDRESSVALIDATIONUPDATE.ID
where
ADDRESS.CONSTITUENTID = @ID
and ADDRESS.ISPRIMARY = 1
and (
(@ADDRESSFIELD = 0 and ADDRESSVALIDATIONUPDATE.COUNTYCODEID in (select ID from @GUIDFILTERS))
or (@ADDRESSFIELD = 1 and ADDRESS.CITY in (select VALUE from @STRINGFILTERS))
or (@ADDRESSFIELD = 2 and ADDRESS.STATEID in (select ID from @GUIDFILTERS))
or (@ADDRESSFIELD = 3 and ADDRESS.POSTCODE in (select VALUE from @STRINGFILTERS))
)
)
return 1;
end
return 0;
end