USP_DATAFORMTEMPLATE_EDIT_BIOGRAPHICALDEMOGRAPHICUPDATE

Parameters

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

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_BIOGRAPHICALDEMOGRAPHICUPDATE 
(
    @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier,
  @CURRENTAPPUSERID uniqueidentifier,

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

    @LASTNAME_NEW nvarchar(200),
    @LASTNAME_VALUE nvarchar(200),
    @LASTNAME_UPD bit,

    @FIRSTNAME_NEW nvarchar(200),
    @FIRSTNAME_VALUE nvarchar(200),
    @FIRSTNAME_UPD bit,

    @MIDDLENAME_NEW nvarchar(200),
    @MIDDLENAME_VALUE nvarchar(200),
    @MIDDLENAME_UPD bit,

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

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

    @BIRTHDATE_NEW dbo.UDT_FUZZYDATE,
    @BIRTHDATE_VALUE dbo.UDT_FUZZYDATE,
    @BIRTHDATE_UPD bit,

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

    @MOSAIC_NEW nvarchar(200),
    @MOSAIC_VALUE nvarchar(200),
    @MOSAIC_UPD bit,

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

    @DISCRETIONARYSPENDING_NEW money,
    @DISCRETIONARYSPENDING_VALUE money,
    @DISCRETIONARYSPENDING_UPD bit,

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

    set nocount on;

    if @CHANGEAGENTID is null  
        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

    declare @CURRENTDATE datetime
    set @CURRENTDATE = getdate()

    begin try
        -- handle updating the data

      --This is the workaround we use on USP_TACONSTITUENT_ADD for spouse belongs to a house error msg 
      if exists(select 1 from GROUPMEMBER
                        left join GROUPDATA on GROUPDATA.ID = GROUPMEMBER.GROUPID
                        left join GROUPMEMBERDATERANGE on GROUPMEMBERDATERANGE.GROUPMEMBERID = GROUPMEMBER.ID
                    where
                        @SPOUSEID = MEMBERID
                        and GROUPDATA.GROUPTYPECODE = 0
                        and (GROUPMEMBERDATERANGE.DATETO is null or GROUPMEMBERDATERANGE.DATETO > @CURRENTDATE
            )
      begin  
        declare @ERRMSG nvarchar(400);
        declare @SPOUSENAME nvarchar(100);
        declare @SPOUSEHOUSEHOLDNAME nvarchar(100);

        select @SPOUSENAME = NAME
        from CONSTITUENT
        where @SPOUSEID = CONSTITUENT.ID

        select @SPOUSEHOUSEHOLDNAME = CONSTITUENT.NAME 
        from GROUPMEMBER
              left join GROUPDATA on GROUPDATA.ID = GROUPMEMBER.GROUPID
              left join CONSTITUENT on CONSTITUENT.ID = GROUPMEMBER.GROUPID
        where
          @SPOUSEID = MEMBERID
          and GROUPDATA.GROUPTYPECODE = 0

        select @ERRMSG = @SPOUSENAME + ' is already a member of the "' + @SPOUSEHOUSEHOLDNAME + '" household. If this is inaccurate, please visit ' + @SPOUSENAME + '''s record to correct this information.'

        raiserror(@ERRMSG, 13, 1);
      end

    if @LASTNAME_UPD = 1
      set @LASTNAME_VALUE = @LASTNAME_NEW

    if @FIRSTNAME_UPD = 1
      set @FIRSTNAME_VALUE = @FIRSTNAME_NEW

    if @MIDDLENAME_UPD = 1
      set @MIDDLENAME_VALUE = @MIDDLENAME_NEW

    if @SUFFIX_UPD = 1
      set @SUFFIXCODEID_VALUE = @SUFFIXCODEID_NEW

    if @TITLE_UPD = 1
      set @TITLECODEID_VALUE = @TITLECODEID_NEW

    if @BIRTHDATE_UPD = 1
      set @BIRTHDATE_VALUE = @BIRTHDATE_NEW

    if @MARITALSTATUS_UPD = 1
      set @MARITALSTATUSCODEID_VALUE = @MARITALSTATUSCODEID_NEW

    --Update fields as they have been selected on the form
    update
      dbo.CONSTITUENT
    set
      KEYNAME = @LASTNAME_VALUE,
      FIRSTNAME = @FIRSTNAME_VALUE,
      MIDDLENAME = @MIDDLENAME_VALUE,
      SUFFIXCODEID = @SUFFIXCODEID_VALUE,
      TITLECODEID = @TITLECODEID_VALUE,
      BIRTHDATE = @BIRTHDATE_VALUE,
      MARITALSTATUSCODEID = @MARITALSTATUSCODEID_VALUE
    where
      ID = @CONSTITUENTID

    --Update spouse as it has been selected on the form
    if @HASSPOUSE = 0 and ISNULL(@SPOUSE_LASTNAME, '') <> ''
    begin

      if @SPOUSEID is null
      begin

        declare @SPOUSE_FIRSTNAME_SHORT nvarchar(50),
                @SPOUSE_MIDDLENAME_SHORT nvarchar(50);

        select @SPOUSE_FIRSTNAME_SHORT = left(@SPOUSE_FIRSTNAME, 50),
              @SPOUSE_MIDDLENAME_SHORT = left(@SPOUSE_MIDDLENAME, 50);

        exec USP_DATAFORMTEMPLATE_INDIVIDUALRECORDSIMPLIFIED_ADD 
                @ID = @SPOUSEID output
                @CURRENTAPPUSERID=@CURRENTAPPUSERID
                @CHANGEAGENTID=@CHANGEAGENTID
                @LASTNAME=@SPOUSE_LASTNAME,
                @FIRSTNAME= @SPOUSE_FIRSTNAME_SHORT,
                @MIDDLENAME= @SPOUSE_MIDDLENAME_SHORT,
                @TITLECODEID=@SPOUSE_TITLECODEID,
                @SUFFIXCODEID=@SPOUSE_SUFFIXCODEID,
                @GENDERCODE=@SPOUSE_GENDERCODE,
                @BIRTHDATE=@SPOUSE_BIRTHDATE;

        update CONSTITUENT
        set MARITALSTATUSCODEID = @SPOUSE_MARITALSTATUSCODEID
        where ID = @SPOUSEID;
      end

      declare @UPDATERELATIONSHIPID uniqueidentifier = null;
      select @UPDATERELATIONSHIPID = ID 
      from RELATIONSHIP
      where RELATIONSHIPCONSTITUENTID = @CONSTITUENTID
          and RECIPROCALCONSTITUENTID = @SPOUSEID
          and RELATIONSHIPTYPECODEID = @SPOUSE_RELATIONSHIPTYPECODEID
          and RECIPROCALTYPECODEID = @SPOUSE_RECIPROCALTYPECODEID

      exec USP_DATAFORMTEMPLATE_ADD_CONSITUENTSPOUSE_2
              @CURRENTAPPUSERID = @CURRENTAPPUSERID,
              @CHANGEAGENTID = @CHANGEAGENTID,
              @CONSTITUENTID = @CONSTITUENTID,
              @RECIPROCALCONSTITUENTID = @SPOUSEID,
              @RECIPROCALTYPECODEID = @SPOUSE_RECIPROCALTYPECODEID,
              @RELATIONSHIPTYPECODEID = @SPOUSE_RELATIONSHIPTYPECODEID,
              @UPDATERELATIONSHIPID = @UPDATERELATIONSHIPID;

    end

    --still needs to update model scores  

    return 1
    end try

    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1
    end catch

return 0;