USP_DATAFORMTEMPLATE_EDITLOAD_BIOGRAPHICALDEMOGRAPHICUPDATE

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@DATALOADED bit INOUT
@TSLONG bigint INOUT
@CONSTITUENTID uniqueidentifier INOUT
@FULLNAME nvarchar(200) INOUT
@CONSTITUENTTYPE int INOUT
@GENDERCODE int INOUT
@LASTNAME_NEW nvarchar(200) INOUT
@LASTNAME_VALUE nvarchar(200) INOUT
@LASTNAME_UPD bit INOUT
@FIRSTNAME_NEW nvarchar(200) INOUT
@FIRSTNAME_VALUE nvarchar(200) INOUT
@FIRSTNAME_UPD bit INOUT
@MIDDLENAME_NEW nvarchar(200) INOUT
@MIDDLENAME_VALUE nvarchar(200) INOUT
@MIDDLENAME_UPD bit INOUT
@TITLECODEID_NEW uniqueidentifier INOUT
@TITLECODEID_VALUE uniqueidentifier INOUT
@TITLE_NEW nvarchar(200) INOUT
@TITLE_VALUE nvarchar(200) INOUT
@TITLE_UPD bit INOUT
@SUFFIXCODEID_NEW uniqueidentifier INOUT
@SUFFIXCODEID_VALUE uniqueidentifier INOUT
@SUFFIX_NEW nvarchar(200) INOUT
@SUFFIX_VALUE nvarchar(200) INOUT
@SUFFIX_UPD bit INOUT
@BIRTHDATE_NEW UDT_FUZZYDATE INOUT
@BIRTHDATE_VALUE UDT_FUZZYDATE INOUT
@BIRTHDATE_UPD bit INOUT
@MARITALSTATUSCODEID_NEW uniqueidentifier INOUT
@MARITALSTATUSCODEID_VALUE uniqueidentifier INOUT
@MARITALSTATUS_NEW nvarchar(200) INOUT
@MARITALSTATUS_VALUE nvarchar(200) INOUT
@MARITALSTATUS_UPD bit INOUT
@DISCRETIONARYSPENDING_NEW money INOUT
@DISCRETIONARYSPENDING_VALUE money INOUT
@DISCRETIONARYSPENDING_UPD bit INOUT
@HHINCOMECODEID_NEW uniqueidentifier INOUT
@HHINCOME_NEW nvarchar(200) INOUT
@HHINCOME_VALUE nvarchar(200) INOUT
@HHINCOME_UPD bit INOUT
@MOSAIC_NEW nvarchar(200) INOUT
@MOSAIC_VALUE nvarchar(200) INOUT
@MOSAIC_UPD bit INOUT
@HASSPOUSE bit INOUT
@HHMEMBERS xml INOUT
@SPOUSEID uniqueidentifier INOUT
@SPOUSE_LASTNAME nvarchar(200) INOUT
@SPOUSE_FIRSTNAME nvarchar(200) INOUT
@SPOUSE_MIDDLENAME nvarchar(200) INOUT
@SPOUSE_TITLECODEID uniqueidentifier INOUT
@SPOUSE_TITLE2CODEID uniqueidentifier INOUT
@SPOUSE_SUFFIXCODEID uniqueidentifier INOUT
@SPOUSE_NICKNAME nvarchar(200) INOUT
@SPOUSE_MAIDENNAME nvarchar(200) INOUT
@SPOUSE_BIRTHDATE UDT_FUZZYDATE INOUT
@SPOUSE_GENDERCODE int INOUT
@SPOUSE_RELATIONSHIPTYPECODEID uniqueidentifier INOUT
@SPOUSE_RECIPROCALTYPECODEID uniqueidentifier INOUT
@SPOUSERELATIONSHIPTYPECODE uniqueidentifier INOUT
@SPOUSE_MARITALSTATUSCODEID uniqueidentifier INOUT
@ISSPOUSEMATCHCODE bit INOUT

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_BIOGRAPHICALDEMOGRAPHICUPDATE
(
    @ID uniqueidentifier,
    @DATALOADED bit = 0 output,
    @TSLONG bigint = 0 output,

    @CONSTITUENTID uniqueidentifier = null output,
    @FULLNAME nvarchar(200) = null output,
    @CONSTITUENTTYPE integer = null output,
    @GENDERCODE integer = null output,

    @LASTNAME_NEW nvarchar(200) = null output,
    @LASTNAME_VALUE nvarchar(200) = null output,
    @LASTNAME_UPD bit = null output,

    @FIRSTNAME_NEW nvarchar(200) = null output,
    @FIRSTNAME_VALUE nvarchar(200) = null output,
    @FIRSTNAME_UPD bit = null output,

    @MIDDLENAME_NEW nvarchar(200) = null output
    @MIDDLENAME_VALUE nvarchar(200) = null output,
    @MIDDLENAME_UPD bit = null output,

    @TITLECODEID_NEW uniqueidentifier = null output,
    @TITLECODEID_VALUE uniqueidentifier = null output,
    @TITLE_NEW nvarchar(200) = null output,
    @TITLE_VALUE nvarchar(200) = null output,
    @TITLE_UPD bit = null output,

    @SUFFIXCODEID_NEW uniqueidentifier = null output,
    @SUFFIXCODEID_VALUE uniqueidentifier = null output,
    @SUFFIX_NEW nvarchar(200) = null output,
    @SUFFIX_VALUE nvarchar(200) = null output,
    @SUFFIX_UPD bit = null output,

    @BIRTHDATE_NEW dbo.UDT_FUZZYDATE = null output,
    @BIRTHDATE_VALUE dbo.UDT_FUZZYDATE = null output,
    @BIRTHDATE_UPD bit = null output,

    @MARITALSTATUSCODEID_NEW uniqueidentifier = null output,
    @MARITALSTATUSCODEID_VALUE uniqueidentifier = null output,
    @MARITALSTATUS_NEW nvarchar(200) = null output,
    @MARITALSTATUS_VALUE nvarchar(200) = null output,
    @MARITALSTATUS_UPD bit = null output,

    @DISCRETIONARYSPENDING_NEW money = null output,
    @DISCRETIONARYSPENDING_VALUE money = null output,
    @DISCRETIONARYSPENDING_UPD bit = null output,

    @HHINCOMECODEID_NEW uniqueidentifier = null output,
    @HHINCOME_NEW nvarchar(200) = null output,
    @HHINCOME_VALUE nvarchar(200) = null output,
    @HHINCOME_UPD bit = null output,

    @MOSAIC_NEW nvarchar(200) = null output,
    @MOSAIC_VALUE nvarchar(200) = null output,
    @MOSAIC_UPD bit = null output,

    @HASSPOUSE bit = null output,
    @HHMEMBERS xml = null output,
    @SPOUSEID uniqueidentifier = null output,
    @SPOUSE_LASTNAME nvarchar(200) = null output,
    @SPOUSE_FIRSTNAME nvarchar(200) = null output,
    @SPOUSE_MIDDLENAME nvarchar(200) = null output,
    @SPOUSE_TITLECODEID uniqueidentifier = null output,
    @SPOUSE_TITLE2CODEID uniqueidentifier = null output,
    @SPOUSE_SUFFIXCODEID uniqueidentifier = null output,
    @SPOUSE_NICKNAME nvarchar(200) = null output,
    @SPOUSE_MAIDENNAME nvarchar(200) = null output,
    @SPOUSE_BIRTHDATE dbo.UDT_FUZZYDATE = null output,
    @SPOUSE_GENDERCODE integer = null output,
    @SPOUSE_RELATIONSHIPTYPECODEID uniqueidentifier = null output,
    @SPOUSE_RECIPROCALTYPECODEID uniqueidentifier = null output,
    @SPOUSERELATIONSHIPTYPECODE uniqueidentifier = null output,
    @SPOUSE_MARITALSTATUSCODEID uniqueidentifier = null output,

    @ISSPOUSEMATCHCODE bit = null output

)
as

    set nocount on;

    -- be sure to set these, in case the select returns no rows
    set @DATALOADED = 0
    set @TSLONG = 0
  set @HASSPOUSE = 0
  set @CONSTITUENTTYPE = 0

    declare @CHANGEAGENTID uniqueidentifier = null;
    exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

    -- populate the output parameters, which correspond to fields on the form.  Note that
    -- we set @DATALOADED = 1 to indicate that the load was successful.  Otherwise, the system
    -- will display a "no data loaded" message.  Also note that we fetch the TSLONG so that concurrency
    -- can be considered.

  select
      @DATALOADED = 1,
    @CONSTITUENTID = C.ID,
    @FULLNAME = C.NAME,
    @GENDERCODE = C.GENDERCODE,

    @LASTNAME_NEW = D.LASTNAME,
    @FIRSTNAME_NEW = left(D.FIRSTNAME, 50),
    @MIDDLENAME_NEW = left(D.MIDDLENAME, 50),
    @SUFFIXCODEID_NEW = D.SUFFIXCODEID,
    @SUFFIX_NEW = case when (C.SUFFIX2CODEID is null or C.SUFFIX2CODEID <> D.SUFFIXCODEID) then D.SUFFIX else '' end,
    @TITLECODEID_NEW = D.TITLECODEID,
    @TITLE_NEW = case when (C.TITLE2CODEID is null or C.TITLE2CODEID <> D.TITLECODEID) then D.TITLE else '' end,
    @BIRTHDATE_NEW = D.BIRTHDATE,
    @MARITALSTATUSCODEID_NEW = D.MARITALSTATUSCODEID,
    @MARITALSTATUS_NEW = D.MARITALSTATUS,
    @DISCRETIONARYSPENDING_NEW = D.DISCRETIONARY_SPEND,
    @HHINCOMECODEID_NEW = D.HOUSEHOLD_INCOMECODEID,    
    @MOSAIC_NEW = D.HOUSEHOLD_MOSAIC,
    @ISSPOUSEMATCHCODE = case when D.MC like 'S%' then 1 else 0 end,

    @LASTNAME_VALUE = C.KEYNAME,
    @FIRSTNAME_VALUE = C.FIRSTNAME,
    @MIDDLENAME_VALUE = C.MIDDLENAME,
    @SUFFIXCODEID_VALUE = C.SUFFIXCODEID,
    @SUFFIX_VALUE = S.DESCRIPTION,
    @TITLECODEID_VALUE = C.TITLECODEID,
    @TITLE_VALUE = T.DESCRIPTION,
    @BIRTHDATE_VALUE = C.BIRTHDATE,
    @MARITALSTATUSCODEID_VALUE = C.MARITALSTATUSCODEID,
    @MARITALSTATUS_VALUE = M.DESCRIPTION,

    @HHMEMBERS = dbo.UFN_WPBIOGRAPHICAL_GETHHMEMBERS2_TOITEMLISTXML(@ID)

  from
    WPBIOGRAPHICALDEMOGRAPHIC as D
  left join
    CONSTITUENT C on C.ID = D.WEALTHID
  left join 
    SUFFIXCODE S on S.ID = C.SUFFIXCODEID
  left join 
    TITLECODE T on T.ID = C.TITLECODEID
  left join 
    MARITALSTATUSCODE M on M.ID = C.MARITALSTATUSCODEID
  where @ID = D.ID;

  if exists(select ID from RELATIONSHIP where @CONSTITUENTID = RELATIONSHIPCONSTITUENTID and ISSPOUSE = 1)
    set @HASSPOUSE = 1

  exec USP_RELATIONSHIPTYPECODE_GETORCREATE @SPOUSERELATIONSHIPTYPECODE output, 'Spouse', @CHANGEAGENTID, 'true','false','false', 'false', 'true', 'false', 'false', 'false'

  select 
    @HHINCOME_NEW = DESCRIPTION 
  from 
    HOUSEHOLDINCOMEESTIMATECODE 
  where 
    @HHINCOMECODEID_NEW = ID 

  DECLARE @DEMOGRAPHICMODELS TABLE
      CATEGORY nvarchar(200), 
      STRINGVALUE nvarchar(200),
      CURRENCYVALUE money 
  )

  insert into @DEMOGRAPHICMODELS (
      CATEGORY, 
      STRINGVALUE, 
      CURRENCYVALUE
  )
  select 
      CATEGORY,
      STRINGVALUE,
      CURRENCYVALUE
  from 
      dbo.UFN_ATTRIBUTE_GETATTRIBUTELIST('Model Scores and Ratings', @CONSTITUENTID, @CHANGEAGENTID)

  select
      @DISCRETIONARYSPENDING_VALUE = CURRENCYVALUE
  from @DEMOGRAPHICMODELS
  where CATEGORY = 'Discretionary spending estimate'

  select
      @HHINCOME_VALUE = STRINGVALUE
  from @DEMOGRAPHICMODELS
  where CATEGORY = 'Household income estimate'

  select
      @MOSAIC_VALUE = STRINGVALUE
  from @DEMOGRAPHICMODELS
  where CATEGORY = 'Household Mosaic'


    return 0;