USP_BATCHCONSTITUENTAPPLYRULES_FORIMPORT

Parameters

Parameter Parameter Type Mode Description
@BATCHROWID uniqueidentifier IN
@CONSTITUENTID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@SIMILARADDRESSCODE tinyint IN
@UNSIMILARADDRESSCODE tinyint IN
@NEWADDRESSPRIMARYCODE tinyint IN
@DOMANUALREVIEWFORAUTOMATCH bit INOUT
@DIFFERENTPHONECODE tinyint IN
@NEWPHONEPRIMARYCODE tinyint IN
@DIFFERENTEMAILCODE tinyint IN
@NEWEMAILPRIMARYCODE tinyint IN
@ADDALL bit IN

Definition

Copy


CREATE procedure dbo.USP_BATCHCONSTITUENTAPPLYRULES_FORIMPORT(
  @BATCHROWID uniqueidentifier,
  @CONSTITUENTID uniqueidentifier,  
  @CHANGEAGENTID uniqueidentifier,
  @SIMILARADDRESSCODE tinyint,
  @UNSIMILARADDRESSCODE tinyint,
  @NEWADDRESSPRIMARYCODE tinyint,
  @DOMANUALREVIEWFORAUTOMATCH bit output,
  @DIFFERENTPHONECODE tinyint,
  @NEWPHONEPRIMARYCODE tinyint,
  @DIFFERENTEMAILCODE tinyint,
  @NEWEMAILPRIMARYCODE tinyint,
  @ADDALL bit
)
    as
    begin

        declare @CURRENTDATE datetime = getdate();

        exec dbo.USP_CONSTITUENTUPDATEBATCH_DOMANUALREVIEWFORAUTOMATCH @BATCHROWID, @CONSTITUENTID, 0, @SIMILARADDRESSCODE, @UNSIMILARADDRESSCODE, @DIFFERENTPHONECODE, @DIFFERENTEMAILCODE, @DOMANUALREVIEWFORAUTOMATCH output;

        -- ensure the correct value is set for @DOMANUALREVIEWFORAUTOMATCH

        update dbo.BATCHCONSTITUENTUPDATE set 
            DOMANUALREVIEWFORAUTOMATCH = @DOMANUALREVIEWFORAUTOMATCH
        where ID = @BATCHROWID;     

        if @DOMANUALREVIEWFORAUTOMATCH = 0 -- apply the rules  

          begin
            -- the incoming primary address/phone/email should be made non-primary if the existing record has a primary address/email/phone since the rules are handling this below

            if exists (select 'x' from dbo.ADDRESS where CONSTITUENTID = @CONSTITUENTID and ISPRIMARY = 1)
              update dbo.BATCHCONSTITUENTUPDATEADDRESSES set
                ISPRIMARY = 0,
                CHANGEDBYID = @CHANGEAGENTID,
                DATECHANGED = @CURRENTDATE
              where BATCHCONSTITUENTUPDATEID = @BATCHROWID
              and ISPRIMARY = 1
              and ADDRESSID is null;

            if exists (select 'x' from dbo.PHONE where CONSTITUENTID = @CONSTITUENTID and ISPRIMARY = 1)
              update dbo.BATCHCONSTITUENTUPDATEPHONES set
                ISPRIMARY = 0,
                CHANGEDBYID = @CHANGEAGENTID,
                DATECHANGED = @CURRENTDATE
              where BATCHCONSTITUENTUPDATEID = @BATCHROWID
              and ISPRIMARY = 1
              and PHONEID is null;

            if exists (select 'x' from dbo.EMAILADDRESS where CONSTITUENTID = @CONSTITUENTID and ISPRIMARY = 1)
              update dbo.BATCHCONSTITUENTUPDATEEMAILADDRESSES set
                ISPRIMARY = 0,
                CHANGEDBYID = @CHANGEAGENTID,
                DATECHANGED = @CURRENTDATE
              where BATCHCONSTITUENTUPDATEID = @BATCHROWID
              and ISPRIMARY = 1
              and EMAILADDRESSID is null;

            exec dbo.USP_CONSTITUENTUPDATEBATCH_APPLYADDRESSRULES @BATCHROWID, @CONSTITUENTID, @CHANGEAGENTID, @ADDALL, @SIMILARADDRESSCODE, @UNSIMILARADDRESSCODE, @NEWADDRESSPRIMARYCODE; -- Apply address rules

            exec dbo.USP_CONSTITUENTUPDATEBATCH_APPLYPHONERULES @BATCHROWID, @CONSTITUENTID, @CHANGEAGENTID, @ADDALL, @DIFFERENTPHONECODE, @NEWPHONEPRIMARYCODE; -- Apply phone rules          

            exec dbo.USP_CONSTITUENTUPDATEBATCH_APPLYEMAILRULES @BATCHROWID, @CONSTITUENTID, @CHANGEAGENTID, @ADDALL, @DIFFERENTEMAILCODE, @NEWEMAILPRIMARYCODE; -- Apply email rules

          end 
    end