USP_DATAFORMTEMPLATE_VIEW_MARRIAGEOPTIONSPAGEDATA

The load procedure used by the view dataform template "Marriage Options Page Expression 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.
@NAME nvarchar(400) INOUT NAME
@HASSPOUSE bit INOUT HASSPOUSE
@SPOUSEID uniqueidentifier INOUT SPOUSEID
@SPOUSENAME nvarchar(400) INOUT SPOUSENAME
@HASHOUSEHOLD bit INOUT HASHOUSEHOLD
@HOUSEHOLDID uniqueidentifier INOUT HOUSEHOLDID
@HOUSEHOLDNAME nvarchar(400) INOUT HOUSEHOLDNAME
@SHOWCONTACTINFO bit INOUT SHOWCONTACTINFO
@SHOWNAMEFORMATS bit INOUT SHOWNAMEFORMATS
@SHOWHOUSEHOLDRECOGNITION bit INOUT SHOWHOUSEHOLDRECOGNITION
@SEPERATEHOUSEHOLDS bit INOUT SEPERATEHOUSEHOLDS
@SHOWINDIVIDUALRELATIONSHIPS bit INOUT SHOWINDIVIDUALRELATIONSHIPS

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_MARRIAGEOPTIONSPAGEDATA
(
  @ID uniqueidentifier,
  @DATALOADED bit = 0 output,
  @NAME nvarchar(400) = null output,
  @HASSPOUSE bit = null output,
  @SPOUSEID uniqueidentifier = null output,
  @SPOUSENAME nvarchar(400) = null output,
  @HASHOUSEHOLD bit = null output,
  @HOUSEHOLDID uniqueidentifier = null output,
  @HOUSEHOLDNAME nvarchar(400) = null output,
  @SHOWCONTACTINFO bit = null output,
  @SHOWNAMEFORMATS bit = null output,
  @SHOWHOUSEHOLDRECOGNITION bit = null output,
  @SEPERATEHOUSEHOLDS bit = null output,
  @SHOWINDIVIDUALRELATIONSHIPS bit = null output
)
as
  set nocount on;

  set @DATALOADED = 0;

  declare @CURRENTDATE datetime;
  set @CURRENTDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate());

  select
    @NAME = NF.NAME,
    @HASSPOUSE = case when RELATIONSHIP.ID is not null then 1 else 0 end,
    @SPOUSEID = RELATIONSHIP.RECIPROCALCONSTITUENTID,
    @SPOUSENAME = NF_SPOUSE.NAME,
    @DATALOADED = 1
  from
    dbo.CONSTITUENT CONSTIT
  left join
    dbo.RELATIONSHIP
  on
    RELATIONSHIP.RELATIONSHIPCONSTITUENTID = CONSTIT.ID and RELATIONSHIP.ISSPOUSE = 1
  left join
    dbo.CONSTITUENT SPOUSE
  on
    RELATIONSHIP.RECIPROCALCONSTITUENTID = SPOUSE.ID
  outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(CONSTIT.ID) NF
  outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(SPOUSE.ID) NF_SPOUSE
  where 
    CONSTIT.ID = @ID

  select
    @SHOWCONTACTINFO = UPDATECONTACTINFO,
    @SHOWNAMEFORMATS = UPDATENAMEFORMATS,
    @SHOWHOUSEHOLDRECOGNITION = UPDATEHOUSEHOLDRECOGNITION,
    @SHOWINDIVIDUALRELATIONSHIPS = UPDATEINDIVIDUALRELATIONSHIPS
  from
    dbo.UFN_MARRIAGEOPTION_GETRULES();

  --Household fields

  select
    @HASHOUSEHOLD = case when CONSTITUENT.ID is not null then 1 else 0 end,
    @HOUSEHOLDID = CONSTITUENT.ID,
    @HOUSEHOLDNAME = CONSTITUENT.NAME
  from
    dbo.GROUPMEMBER
  inner join
    dbo.GROUPDATA
  on
    GROUPDATA.ID = GROUPMEMBER.GROUPID and GROUPDATA.GROUPTYPECODE = 0
  left join
    dbo.CONSTITUENT
  on
    CONSTITUENT.ID = GROUPMEMBER.GROUPID
  left join 
    dbo.GROUPMEMBERDATERANGE as GMDR 
  on 
    GROUPMEMBER.ID = GMDR.GROUPMEMBERID
  where 
    GROUPMEMBER.MEMBERID = @ID
  and
    ((GMDR.DATEFROM is null and (GMDR.DATETO is null or GMDR.DATETO > @CURRENTDATE))
    or 
    (GMDR.DATETO is null and (GMDR.DATEFROM is null or GMDR.DATEFROM <= @CURRENTDATE)) 
    or 
    (GMDR.DATEFROM <= @CURRENTDATE and GMDR.DATETO > @CURRENTDATE))

  --Separate Household?

  if @HOUSEHOLDID is not null and
  exists(
    select
      GROUPMEMBER.GROUPID
    from
      dbo.GROUPMEMBER
    inner join
      dbo.GROUPDATA
    on
      GROUPDATA.ID = GROUPMEMBER.GROUPID and GROUPDATA.GROUPTYPECODE = 0
    left join 
      dbo.GROUPMEMBERDATERANGE as GMDR 
    on 
      GROUPMEMBER.ID = GMDR.GROUPMEMBERID
    where 
      GROUPMEMBER.MEMBERID = @SPOUSEID
    and
      GROUPMEMBER.GROUPID <> @HOUSEHOLDID
    and
      ((GMDR.DATEFROM is null and (GMDR.DATETO is null or GMDR.DATETO > @CURRENTDATE))
      or 
      (GMDR.DATETO is null and (GMDR.DATEFROM is null or GMDR.DATEFROM <= @CURRENTDATE)) 
      or 
      (GMDR.DATEFROM <= @CURRENTDATE and GMDR.DATETO > @CURRENTDATE))
    )
      set @SEPERATEHOUSEHOLDS = 1;
  else
      set @SEPERATEHOUSEHOLDS = 0;

return 0;