USP_SOCIALMEDIAACCOUNT_ADD

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@CHANGEAGENTID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN
@WEALTHSOURCE nvarchar(100) IN
@CONSTITUENTID uniqueidentifier IN
@EMAILADDRESS UDT_EMAILADDRESS IN
@SOCIALMEDIASERVICEID uniqueidentifier IN
@INFORMATIONSOURCEID uniqueidentifier IN
@URL UDT_WEBADDRESS IN
@USERID nvarchar(100) IN
@MC nvarchar(3) IN
@FULLHASH nvarchar(32) IN
@PARTIALHASH nvarchar(32) IN

Definition

Copy


CREATE procedure dbo.USP_SOCIALMEDIAACCOUNT_ADD (
                @ID uniqueidentifier = null output,
                @CHANGEAGENTID uniqueidentifier = null,
        @CURRENTAPPUSERID uniqueidentifier = null,
        @WEALTHSOURCE nvarchar(100),
        @CONSTITUENTID uniqueidentifier,
        @EMAILADDRESS dbo.UDT_EMAILADDRESS = '',
        @SOCIALMEDIASERVICEID uniqueidentifier,
        @INFORMATIONSOURCEID uniqueidentifier = null,
        @URL dbo.UDT_WEBADDRESS = '',
        @USERID nvarchar(100) = '',
        @MC nvarchar(3) = '',
        @FULLHASH nvarchar(32) = '',
                @PARTIALHASH nvarchar(32) = ''
        ) as begin
        set nocount on;

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

                begin try
                    declare @CURRENTDATE datetime;

                    set @CURRENTDATE = getdate();

          --Get any existing ID

                    select 
                        @ID = ID 
                    from 
                        dbo.SOCIALMEDIAACCOUNT
                    where 
                        CONSTITUENTID = @CONSTITUENTID and PARTIALHASH=@PARTIALHASH;

          declare @CONFIRMED bit;    
                    declare @CONFIRMEDBYAPPUSERID uniqueidentifier;
                    declare @DATECONFIRMED datetime;
                    declare @REJECTED bit;
                    declare @REJECTEDBYAPPUSERID uniqueidentifier; 
                    declare @DATEREJECTED datetime;    

                    set @CONFIRMED = 0;
                    set @REJECTED = 0;

                    if @CURRENTAPPUSERID is not null
                    begin
                        declare @CONFIDENCE int

                        select 
                            @CONFIDENCE = coalesce(CR.CONFIDENCE,MC.DEFAULTCONFIDENCE)
                        from
                            dbo.MATCHCODE MC
                            left outer join
                                dbo.WEALTHSOURCE WS on @WEALTHSOURCE = WS.SOURCE
                            left outer join 
                                dbo.CONFIDENCERATING CR on CR.MATCHCODEID = MC.ID and CR.WEALTHSOURCEID = WS.ID
                        where
                            MC.MATCHCODE = @MC

                        select                   
                            @REJECTED =                case @CONFIDENCE
                                                        when 5 then 0
                                                        when 0 then 1
                                                    end,
                            @DATEREJECTED =            case @CONFIDENCE
                                                        when 5 then NULL
                                                        when 0 then @CURRENTDATE 
                                                    end,
                            @REJECTEDBYAPPUSERID =     case @CONFIDENCE
                                                        when 5 then NULL
                                                        when 0 then @CURRENTAPPUSERID 
                                                    end,
                            @CONFIRMED =            case @CONFIDENCE
                                                        when 5 then 1
                                                        when 0 then 0
                                                    end,
                            @DATECONFIRMED =        case @CONFIDENCE
                                                        when 5 then @CURRENTDATE 
                                                        when 0 then    NULL
                                                    end,
                            @CONFIRMEDBYAPPUSERID = case @CONFIDENCE
                                                        when 5 then  @CURRENTAPPUSERID 
                                                        when 0 then NULL
                                                    end 
                        where
                            @CONFIDENCE in (0,5);                    
                    end        


          if @ID is not null
          begin
                        if not exists(select 1 from dbo.SOCIALMEDIAACCOUNT where CONSTITUENTID=@CONSTITUENTID and FULLHASH=@FULLHASH)
            begin
              update
                                dbo.SOCIALMEDIAACCOUNT
                            set
                                FULLHASH = @FULLHASH,
                                WPMATCHCODE = @MC,
                USERID = @USERID,
                INFOSOURCECODEID = @INFORMATIONSOURCEID,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE,
                                CONFIRMED = case when @CONFIRMED = 1 and CONFIRMED = 0 and REJECTED = 0 then 1 else CONFIRMED end,
                                CONFIRMEDBYAPPUSERID = case when @CONFIRMED = 1 and CONFIRMED = 0 and REJECTED = 0 then @CONFIRMEDBYAPPUSERID else CONFIRMEDBYAPPUSERID end,
                                DATECONFIRMED = case when @CONFIRMED = 1 and CONFIRMED = 0 and REJECTED = 0 then @DATECONFIRMED else DATECONFIRMED end
                            where
                                CONSTITUENTID=@CONSTITUENTID and PARTIALHASH=@PARTIALHASH;
            end
          end
          else
          begin
            --Record is new and needs to be Added


              if @ID is null
                            set @ID = newid();

              declare @SEQUENCE int;

            select
                @SEQUENCE = coalesce(max(SEQUENCE),0)+1
            from
                dbo.SOCIALMEDIAACCOUNT
            where
                CONSTITUENTID=@CONSTITUENTID;

            insert into dbo.SOCIALMEDIAACCOUNT(
              ID,
              CONSTITUENTID,
              SOCIALMEDIASERVICEID,
              USERID,
              URL,
              SOCIALMEDIAACCOUNTTYPECODEID,
              INFOSOURCECODEID,
              DONOTCONTACT,
              CONFIRMED,
              DATECONFIRMED,
              CONFIRMEDBYAPPUSERID,
              REJECTED,
              DATEREJECTED,
              REJECTEDBYAPPUSERID,
              EMAILADDRESS,
              WEALTHSOURCE,
              WPMATCHCODE,
              PARTIALHASH,
              FULLHASH,
              SEQUENCE,
              ADDEDBYID,
              CHANGEDBYID,
              DATEADDED,
              DATECHANGED
            )
            values (
              @ID,
              @CONSTITUENTID,
              @SOCIALMEDIASERVICEID,
              @USERID,
              @URL,
              null,
              @INFORMATIONSOURCEID,
              0,
              @CONFIRMED,
              @DATECONFIRMED,
              @CONFIRMEDBYAPPUSERID,
              @REJECTED,
              @DATEREJECTED,
              @REJECTEDBYAPPUSERID,
              @EMAILADDRESS,
              @WEALTHSOURCE,
              @MC,
              @PARTIALHASH,
              @FULLHASH,
              @SEQUENCE,
              @CHANGEAGENTID,
              @CHANGEAGENTID,
              @CURRENTDATE,
              @CURRENTDATE
            )
          end

        end try
                begin catch
                    exec dbo.USP_RAISE_ERROR;
                end catch

                return 0;

end