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