UFN_REVENUEHISTORY_REVENUE_AUDIT
Returns the audit information for the revenue details on a revenue record.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@REVENUEID | uniqueidentifier | IN | |
@REVENUEDATEADDED | datetime | IN | |
@ACTIONTYPECODE | tinyint | IN |
Definition
Copy
create function dbo.UFN_REVENUEHISTORY_REVENUE_AUDIT
(
@REVENUEID uniqueidentifier,
@REVENUEDATEADDED datetime,
@ACTIONTYPECODE tinyint
)
returns @RESULTS table
(
RECORDID uniqueidentifier,
AUDITDATE datetime,
CHANGEDBYUSER nvarchar(128),
PROCESS nvarchar(255),
FIELD nvarchar(128),
OLD nvarchar(4000),
NEW nvarchar(4000),
ACTION nvarchar(8),
CHANGEDBYAPP nvarchar(200)
)
as
begin
/*
* NOTE: This function is no longer called by any Blackbaud code.
*
* This function currently exists only for backwards compatibility
* with Blackbaud Enterprise 1.0.
*/
declare @TEMP_RESULTS table
(
RECORDID uniqueidentifier,
AUDITDATE datetime,
CHANGEDBYUSER nvarchar(128),
PROCESS nvarchar(255),
FIELD nvarchar(128),
OLD nvarchar(4000),
NEW nvarchar(4000),
ACTION nvarchar(8),
CHANGEDBYAPP nvarchar(200)
)
if @ACTIONTYPECODE = 0 or @ACTIONTYPECODE = 1
insert into @TEMP_RESULTS
select
RECORDID,
DATEADDED,
CHANGEDBYUSER,
PROCESS,
FIELD,
OLD,
NEW,
'Insert',
CHANGEDBYAPP
from dbo.UFN_AUDIT_GETINSERTS_FORTABLE_BYFIELDLIST(
'AMOUNT, RECEIPTAMOUNT, SOURCECODE'
, 'REVENUE', 'ID', @REVENUEID, 1, @REVENUEDATEADDED);
--Delete the fields where no data was added
delete from @TEMP_RESULTS
where (NEW = '')
insert into @TEMP_RESULTS
select
@REVENUEID,
case when [CHANGES].CHANGETYPE = 'Delete' then [CHANGES].AUDITDATE else [CHANGES].DATECHANGED end as [AUDITDATE],
[CHANGES].CHANGEDBYUSER,
(select PROCESSDISPLAYNAME from dbo.CHANGEAGENT where ID = [CHANGES].AUDITCHANGEAGENTID) as [PROCESS],
[DETAIL].FIELD,
[DETAIL].OLD,
case when [CHANGES].CHANGETYPE = 'Delete' then 'n/a' else [DETAIL].NEW end,
case when [CHANGES].CHANGETYPE = 'Delete' then 'Delete' else 'Update' end,
[CHANGES].CHANGEDBYAPP
from dbo.UFN_AUDIT_GETRECENTCHANGES_FORTABLE('REVENUE', 500, null, null, 0, 1, 1, null, null, @REVENUEID) as [CHANGES]
cross apply dbo.UFN_AUDIT_GETDETAIL_BYFIELDLIST('REVENUEAUDIT', [CHANGES].AUDITKEY, @REVENUEID, 'AMOUNT, FINDERNUMBER, RECEIPTAMOUNT, SOURCECODE' ) as [DETAIL]
where ([CHANGES].CHANGETYPE <> 'Delete' or (OLD <> ''))
and (([CHANGES].CHANGETYPE = 'Delete' and (@ACTIONTYPECODE = 0 or @ACTIONTYPECODE = 3))
or ([CHANGES].CHANGETYPE = 'Update' and (@ACTIONTYPECODE = 0 or @ACTIONTYPECODE = 2)))
--Add the type of the revenue detail to the field name.
insert into @RESULTS
select
RECORDID,
AUDITDATE,
CHANGEDBYUSER,
PROCESS,
dbo.UFN_REVENUE_GETSUBTYPETRANSLATION_AUDIT([TEMP].RECORDID) + ': ' + FIELD,
OLD,
NEW,
ACTION,
CHANGEDBYAPP
from @TEMP_RESULTS as [TEMP]
return;
end