USP_DATAFORMTEMPLATE_VIEW_INDIVIDUALSPOUSEHOUSEHOLD
The load procedure used by the view dataform template "Individual Spouse Household 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. |
@CONSTITUENTFIRSTNAME | nvarchar(400) | INOUT | First name |
@HASSPOUSE | bit | INOUT | Has spouse |
@SPOUSEID | uniqueidentifier | INOUT | Spouse ID |
@SPOUSENAME | nvarchar(700) | INOUT | Spouse |
@INHOUSEHOLD | bit | INOUT | Is in household |
@HOUSEHOLDID | uniqueidentifier | INOUT | Household ID |
@HOUSEHOLDNAME | nvarchar(700) | INOUT | Household |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_INDIVIDUALSPOUSEHOUSEHOLD
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@CONSTITUENTFIRSTNAME nvarchar(400) = null output,
@HASSPOUSE bit = null output,
@SPOUSEID uniqueidentifier = null output,
@SPOUSENAME nvarchar(700) = null output,
@INHOUSEHOLD bit = null output,
@HOUSEHOLDID uniqueidentifier = null output,
@HOUSEHOLDNAME nvarchar(700) = null output
)
as
set nocount on;
set @DATALOADED = 0;
select @DATALOADED = 1,
@CONSTITUENTFIRSTNAME = CONSTITUENT.FIRSTNAME
from dbo.CONSTITUENT
where CONSTITUENT.ID = @ID;
-- Check for spouse info first
set @HASSPOUSE = 0;
select @HASSPOUSE = 1,
@SPOUSENAME = NF.[NAME] ,
@SPOUSEID = SPOUSE.ID
from dbo.RELATIONSHIP
inner join dbo.CONSTITUENT AS SPOUSE
on SPOUSE.ID = RELATIONSHIP.RECIPROCALCONSTITUENTID
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(SPOUSE.ID) NF
where (RELATIONSHIP.RELATIONSHIPCONSTITUENTID = @ID) and
(RELATIONSHIP.ISSPOUSE = 1);
-- Check for household next
set @INHOUSEHOLD = 0;
declare @CURRENTDATEEARLIESTTIME date;
set @CURRENTDATEEARLIESTTIME = getdate();
select @INHOUSEHOLD = 1,
@HOUSEHOLDID = CONSTITUENTGROUP.ID,
@HOUSEHOLDNAME = NF.NAME
from dbo.CONSTITUENT as CONSTITUENTGROUP
inner join dbo.GROUPMEMBER
on CONSTITUENTGROUP.ID = GROUPMEMBER.GROUPID
inner join dbo.GROUPDATA
on GROUPMEMBER.GROUPID = GROUPDATA.ID
left join dbo.GROUPMEMBERDATERANGE
on GROUPMEMBER.ID = GROUPMEMBERDATERANGE.GROUPMEMBERID
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(CONSTITUENTGROUP.ID) NF
where (GROUPMEMBER.MEMBERID = @ID) and
(dbo.UFN_GROUPMEMBER_ISCURRENTMEMBER(GROUPMEMBER.ID) = 1) and
(GROUPDATA.GROUPTYPECODE = 0) and
-- Make sure their membership is current
((GROUPMEMBERDATERANGE.DATEFROM is null and (GROUPMEMBERDATERANGE.DATETO is null or GROUPMEMBERDATERANGE.DATETO > @CURRENTDATEEARLIESTTIME)) or
(GROUPMEMBERDATERANGE.DATETO is null and (GROUPMEMBERDATERANGE.DATEFROM is null or GROUPMEMBERDATERANGE.DATEFROM <= @CURRENTDATEEARLIESTTIME)) or
(GROUPMEMBERDATERANGE.DATEFROM <= @CURRENTDATEEARLIESTTIME and GROUPMEMBERDATERANGE.DATETO > @CURRENTDATEEARLIESTTIME));
return 0;