USP_RECOGNITIONDEFAULTSUPDATE
Updates recognition defaults between two constituents.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN | |
@RECIPROCALCONSTITUENTID | uniqueidentifier | IN | |
@STARTDATE | datetime | IN | |
@ENDDATE | datetime | IN | |
@PRIMARYRECOGNITIONDEFAULTEXISTS | bit | IN | |
@PRIMARYRECOGNITIONDEFAULTMATCHFACTOR | decimal(5, 2) | IN | |
@PRIMARYRECOGNITIONDEFAULTTYPECODEID | uniqueidentifier | IN | |
@RECIPROCALRECOGNITIONDEFAULTEXISTS | bit | IN | |
@RECIPROCALRECOGNITIONDEFAULTMATCHFACTOR | decimal(5, 2) | IN | |
@RECIPROCALRECOGNITIONDEFAULTTYPECODEID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@PREVENTDEFAULTING | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_RECOGNITIONDEFAULTSUPDATE
(
@CONSTITUENTID uniqueidentifier,
@RECIPROCALCONSTITUENTID uniqueidentifier,
@STARTDATE datetime = null,
@ENDDATE datetime = null,
@PRIMARYRECOGNITIONDEFAULTEXISTS bit = 0,
@PRIMARYRECOGNITIONDEFAULTMATCHFACTOR decimal(5,2) = 100,
@PRIMARYRECOGNITIONDEFAULTTYPECODEID uniqueidentifier = null,
@RECIPROCALRECOGNITIONDEFAULTEXISTS bit = 0,
@RECIPROCALRECOGNITIONDEFAULTMATCHFACTOR decimal(5,2) = 100,
@RECIPROCALRECOGNITIONDEFAULTTYPECODEID uniqueidentifier = null,
@CHANGEAGENTID uniqueidentifier = null,
@PREVENTDEFAULTING bit = 1
)
as
set nocount on;
declare @CURRENTDATE datetime = getdate();
declare @ERRORMESSAGE nvarchar(4000);
declare @INFOMESSAGE nvarchar(100);
declare @ERRORSEVERITY int;
declare @ERRORSTATE int;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
begin try
begin try
if @PRIMARYRECOGNITIONDEFAULTEXISTS = 1
begin
update
dbo.REVENUERECOGNITIONDEFAULT
set
MATCHFACTOR = @PRIMARYRECOGNITIONDEFAULTMATCHFACTOR,
REVENUERECOGNITIONTYPECODEID = @PRIMARYRECOGNITIONDEFAULTTYPECODEID,
STARTDATE = @STARTDATE,
ENDDATE = @ENDDATE,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE,
PREVENTRECOGNITIONSDEFAULTING = 0
where
SOURCECONSTITUENTID = @CONSTITUENTID and
RECIPIENTCONSTITUENTID = @RECIPROCALCONSTITUENTID;
if @@ROWCOUNT = 0
begin
insert into dbo.REVENUERECOGNITIONDEFAULT
(
SOURCECONSTITUENTID,
RECIPIENTCONSTITUENTID,
MATCHFACTOR,
REVENUERECOGNITIONTYPECODEID,
STARTDATE,
ENDDATE,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@CONSTITUENTID,
@RECIPROCALCONSTITUENTID,
@PRIMARYRECOGNITIONDEFAULTMATCHFACTOR,
@PRIMARYRECOGNITIONDEFAULTTYPECODEID,
@STARTDATE,
@ENDDATE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
end
else
begin
if @PREVENTDEFAULTING =1
exec dbo.USP_CONSTITUENTRECOGNITIONDEFAULT_PREVENTDEFAULTING @ID = null, @SOURCECONSTITUENTID = @CONSTITUENTID,
@RECIPIENTCONSTITUENTID = @RECIPROCALCONSTITUENTID, @CHANGEAGENTID = @CHANGEAGENTID;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR 1;
return 1;
end catch
begin try
if @RECIPROCALRECOGNITIONDEFAULTEXISTS = 1
begin
update
dbo.REVENUERECOGNITIONDEFAULT
set
MATCHFACTOR = @RECIPROCALRECOGNITIONDEFAULTMATCHFACTOR,
REVENUERECOGNITIONTYPECODEID = @RECIPROCALRECOGNITIONDEFAULTTYPECODEID,
STARTDATE = @STARTDATE,
ENDDATE = @ENDDATE,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE,
PREVENTRECOGNITIONSDEFAULTING = 0
where
SOURCECONSTITUENTID = @RECIPROCALCONSTITUENTID and
RECIPIENTCONSTITUENTID = @CONSTITUENTID;
if @@ROWCOUNT = 0
begin
insert into dbo.REVENUERECOGNITIONDEFAULT
(
SOURCECONSTITUENTID,
RECIPIENTCONSTITUENTID,
MATCHFACTOR,
REVENUERECOGNITIONTYPECODEID,
STARTDATE,
ENDDATE,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@RECIPROCALCONSTITUENTID,
@CONSTITUENTID,
@RECIPROCALRECOGNITIONDEFAULTMATCHFACTOR,
@RECIPROCALRECOGNITIONDEFAULTTYPECODEID,
@STARTDATE,
@ENDDATE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
end
else
begin
if @PREVENTDEFAULTING =1
exec dbo.USP_CONSTITUENTRECOGNITIONDEFAULT_PREVENTDEFAULTING @ID = null, @SOURCECONSTITUENTID = @RECIPROCALCONSTITUENTID,
@RECIPIENTCONSTITUENTID = @CONSTITUENTID, @CHANGEAGENTID = @CHANGEAGENTID;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR 2;
return 1;
end catch
/*Check if either one of the constituents is a household and the other is a member or both are members of the
same household. If either of those conditions are true, the household's recognition settings have been overridden
and they should no longer use the global recognition settings.*/
if @PRIMARYRECOGNITIONDEFAULTEXISTS = 1 or @RECIPROCALRECOGNITIONDEFAULTEXISTS = 1
exec dbo.USP_HOUSEHOLDRECOGNITIONSETTINGS_OVERRIDEIFNEEDED @CONSTITUENTID, @RECIPROCALCONSTITUENTID, @CHANGEAGENTID;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch