USP_DATALIST_FUNDINGREQUESTHISTORY
Returns historic audit information for a funding request.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@FUNDINGREQUESTID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
@USERID | uniqueidentifier | IN | User |
@ACTIONTYPECODE | tinyint | IN | Action |
@SHOWCODE | smallint | IN | Show |
@STARTDATE | datetime | IN | Start date |
@ENDDATE | datetime | IN | End date |
@RECORDTYPECODE | tinyint | IN | Field |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_FUNDINGREQUESTHISTORY
(
@FUNDINGREQUESTID uniqueidentifier,
@USERID uniqueidentifier = null,
@ACTIONTYPECODE tinyint = 0,
@SHOWCODE smallint = 1,
@STARTDATE datetime = null,
@ENDDATE datetime = null,
@RECORDTYPECODE tinyint = 0
)
as
set nocount on;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
if @SHOWCODE in (1,2,3,4,5,6)
begin
set @ENDDATE = dbo.UFN_DATE_GETLATESTTIME(@CURRENTDATE);
if @SHOWCODE = 1 --Last 30 days
set @STARTDATE = dbo.UFN_DATE_GETEARLIESTTIME(dateadd(day,-29,@CURRENTDATE));
else if @SHOWCODE = 2 --Last 60 days
set @STARTDATE = dbo.UFN_DATE_GETEARLIESTTIME(dateadd(day,-59,@CURRENTDATE));
else if @SHOWCODE = 3 --Last 90 days
set @STARTDATE = dbo.UFN_DATE_GETEARLIESTTIME(dateadd(day,-89,@CURRENTDATE));
else if @SHOWCODE = 4 --Last 6 months
set @STARTDATE = dbo.UFN_DATE_GETEARLIESTTIME(dateadd(day,1,dateadd(month,-6,@CURRENTDATE)));
else if @SHOWCODE = 5 --Last year
set @STARTDATE = dbo.UFN_DATE_GETEARLIESTTIME(dateadd(day,1,dateadd(year,-1,@CURRENTDATE)));
else if @SHOWCODE = 6 --Last 5 years
set @STARTDATE = dbo.UFN_DATE_GETEARLIESTTIME(dateadd(day,1,dateadd(year,-5,@CURRENTDATE)));
end
else if @SHOWCODE = 0
begin
set @STARTDATE = null;
set @ENDDATE = null;
end
else if @SHOWCODE = 99
begin
set @STARTDATE = dbo.UFN_DATE_GETEARLIESTTIME(@STARTDATE);
set @ENDDATE = dbo.UFN_DATE_GETLATESTTIME(@ENDDATE);
end
declare @USERNAME nvarchar(128);
if not @USERID is null
select
@USERNAME = USERNAME
from dbo.APPUSER
where APPUSER.ID = @USERID;
else
set @USERNAME = '';
select
RECORDID,
DATEADDED as [AUDITDATE],
'Add' as [ACTION],
FIELD,
OLD,
NEW,
CHANGEDBYUSER,
PROCESS,
CHANGEDBYAPP,
-1 as [SEQUENCE],
2 [ACTIONSORT]
from
dbo.UFN_AUDIT_GETINSERTS_FORTABLE('FUNDINGREQUEST', 'ID', @FUNDINGREQUESTID, 0, null)
where
(@USERID is null or CHANGEDBYUSER = @USERNAME)
and (@STARTDATE is null or DATEADDED >= @STARTDATE)
and (@ENDDATE is null or DATEADDED <= @ENDDATE)
and (@ACTIONTYPECODE = 0 or @ACTIONTYPECODE = 1)
union all
select
@FUNDINGREQUESTID as [RECORDID],
[CHANGES].DATECHANGED,
'Edit' as [ACTION],
[DETAIL].FIELD,
[DETAIL].OLD,
[DETAIL].NEW,
[CHANGES].CHANGEDBYUSER,
'' as [PROCESS],
[CHANGES].CHANGEDBYAPP,
0 as [SEQUENCE],
1 as [ACTIONSORT]
from dbo.UFN_AUDIT_GETRECENTCHANGES_FORTABLE('FUNDINGREQUEST', 500, null, null, 0, 1, 0, null, null, @FUNDINGREQUESTID) as [CHANGES]
cross apply dbo.UFN_AUDIT_GETDETAIL('FUNDINGREQUESTAUDIT', [CHANGES].AUDITKEY, @FUNDINGREQUESTID ) as [DETAIL]
where
([DETAIL].FIELD <> 'DATECHANGED' and [DETAIL].FIELD <> 'CHANGEDBYID' and [DETAIL].FIELD <> 'ADDEDBYID' and [DETAIL].FIELD <> 'DATEADDED')
and
(
@RECORDTYPECODE = 0
or (@RECORDTYPECODE = 1 and [DETAIL].FIELD = 'AMOUNTREQUESTED')
or (@RECORDTYPECODE = 2 and [DETAIL].FIELD = 'COMMENT')
or (@RECORDTYPECODE = 3 and [DETAIL].FIELD = 'DATESUBMITTED')
or (@RECORDTYPECODE = 4 and [DETAIL].FIELD = 'GRANTSID')
or (@RECORDTYPECODE = 5 and [DETAIL].FIELD = 'PRIMARYMANAGERID')
or (@RECORDTYPECODE = 6 and [DETAIL].FIELD = 'SECONDARYMANAGERID')
or (@RECORDTYPECODE = 7 and [DETAIL].FIELD = 'FUNDINGREQUESTSTATUSCODEID')
)
and (@USERID is null or CHANGEDBYUSER = @USERNAME)
and (@ACTIONTYPECODE = 0 or @ACTIONTYPECODE = 2)
and (@STARTDATE is null or [CHANGES].DATECHANGED >= @STARTDATE)
and (@ENDDATE is null or [CHANGES].DATECHANGED <= @ENDDATE)
order by
[ACTIONSORT] asc, SEQUENCE asc, AUDITDATE, RECORDID, FIELD;