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;