UFN_CONSTITUENTRECOGNITION_CALCULATEEXPIRATIONDATE
Return
| Return Type |
|---|
| datetime |
Parameters
| Parameter | Parameter Type | Mode | Description |
|---|---|---|---|
| @RECOGNITIONPROGRAMID | uniqueidentifier | IN | |
| @STARTDATE | datetime | IN |
Definition
Copy
create function dbo.UFN_CONSTITUENTRECOGNITION_CALCULATEEXPIRATIONDATE
(
@RECOGNITIONPROGRAMID uniqueidentifier,
@STARTDATE datetime
)
returns datetime
as
begin
declare @CUTOFFDATEFORYEAR char(4)
declare @EXPIRATIONDATE datetime
declare @MONTH nvarchar(2)
declare @DAY nvarchar(2)
declare @BACKDATEMEMBERSHIPS bit
select
@CUTOFFDATEFORYEAR = CUTOFFDATEFORYEAR,
@BACKDATEMEMBERSHIPS = BACKDATEMEMBERSHIPS
from dbo.RECOGNITIONPROGRAM
where ID = @RECOGNITIONPROGRAMID;
set @EXPIRATIONDATE = dbo.UFN_DATE_THISCALENDARYEAR_LASTDAY(@STARTDATE,1)
-- If set expiration enabled
if @BACKDATEMEMBERSHIPS =1
begin
set @MONTH = SUBSTRING(@CUTOFFDATEFORYEAR,1,2)
set @DAY = SUBSTRING(@CUTOFFDATEFORYEAR,3,2)
if @MONTH < MONTH(@STARTDATE)
set @EXPIRATIONDATE = dateadd(year, 1, @EXPIRATIONDATE)
else if @MONTH = MONTH(@STARTDATE) and @DAY <= DAY(@STARTDATE)
set @EXPIRATIONDATE = dateadd(year, 1, @EXPIRATIONDATE)
end
return @EXPIRATIONDATE
end