UFN_PLANNEDGIFTADDITIONHISTORY_PLANNEDGIFTADDITIONCHILDTABLES_AUDIT

Returns the audit information for planned gift addition child tables for a given planned gift addition record.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@PLANNEDGIFTADDITIONID uniqueidentifier IN
@PLANNEDGIFTADDITIONDATEADDED datetime IN
@ACTIONTYPECODE tinyint IN

Definition

Copy


            CREATE function dbo.UFN_PLANNEDGIFTADDITIONHISTORY_PLANNEDGIFTADDITIONCHILDTABLES_AUDIT
            (
                @PLANNEDGIFTADDITIONID uniqueidentifier,
                @PLANNEDGIFTADDITIONDATEADDED 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),
                SEQUENCE int,
                ACTION nvarchar(8),
                CHANGEDBYAPP nvarchar(200)
            )
            as
            begin
                insert into @RESULTS
                    select
                        RECORDID,
                        case when ACTION = 'Insert' then DATEADDED when ACTION = 'Update' then DATECHANGED else AUDITDATE end as [AUDITDATE],
                        CHANGEDBYUSER,
                        PROCESS,
                        FIELD,
                        OLD,
                        NEW,
                        30 as [SEQUENCE],
                        ACTION,
                        CHANGEDBYAPP
                    from dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST('DESIGNATIONID, AMOUNT', 'PLANNEDGIFTADDITIONDESIGNATION', 'PLANNEDGIFTADDITIONID', @PLANNEDGIFTADDITIONID, @PLANNEDGIFTADDITIONDATEADDED, 'Designation', '')
                    union all
                    select
                        RECORDID,
                        case when ACTION = 'Insert' then DATEADDED when ACTION = 'Update' then DATECHANGED else AUDITDATE end as [AUDITDATE],
                        CHANGEDBYUSER,
                        PROCESS,
                        FIELD,
                        OLD,
                        NEW,
                        50 as [SEQUENCE],
                        ACTION,
                        CHANGEDBYAPP
                    from dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST('ASSETTYPECODEID, DESCRIPTION, VALUE, COSTBASIS, ASSETVALUATIONMETHODCODEID, VALUATIONSOURCE, ADDRESSID', 'PLANNEDGIFTADDITIONASSET', 'PLANNEDGIFTADDITIONID', @PLANNEDGIFTADDITIONID, @PLANNEDGIFTADDITIONDATEADDED, 'Asset', '')
                    union all
                    select
                        RECORDID,
                        case when ACTION = 'Insert' then DATEADDED when ACTION = 'Update' then DATECHANGED else AUDITDATE end as [AUDITDATE],
                        CHANGEDBYUSER,
                        PROCESS,
                        FIELD,
                        OLD,
                        NEW,
                        60 as [SEQUENCE],
                        ACTION,
                        CHANGEDBYAPP
                    from dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST('REVENUEID', 'PLANNEDGIFTADDITIONREVENUE', 'ID', @PLANNEDGIFTADDITIONID, @PLANNEDGIFTADDITIONDATEADDED, 'Revenue', '')

                    declare @ASSETID uniqueidentifier;
                    declare @ASSETDESCRIPTION nvarchar(128);
                    declare ASSETCURSOR cursor local fast_forward for
                        select ID, DESCRIPTION from dbo.PLANNEDGIFTADDITIONASSET where PLANNEDGIFTADDITIONID = @PLANNEDGIFTADDITIONID;

                    open ASSETCURSOR;
                        fetch next from ASSETCURSOR into @ASSETID, @ASSETDESCRIPTION;

                        while @@FETCH_STATUS = 0
                        begin
                            insert into @RESULTS
                                select 
                                    RECORDID,
                                    case when ACTION = 'Insert' then DATEADDED when ACTION = 'Update' then DATECHANGED else AUDITDATE end as [AUDITDATE],
                                    CHANGEDBYUSER,
                                    PROCESS,
                                    FIELD,
                                    OLD,
                                    NEW,
                                    51 as [SEQUENCE],
                                    ACTION,
                                    CHANGEDBYAPP
                                from dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST('HOLDERCONSTITUENTID', 'PLANNEDGIFTADDITIONASSETHOLDER', 'PLANNEDGIFTADDITIONASSETID', @ASSETID, @PLANNEDGIFTADDITIONDATEADDED, 'Asset holder (' + @ASSETDESCRIPTION + ')', '');

                            fetch next from ASSETCURSOR into @ASSETID, @ASSETDESCRIPTION;
                        end
                    --When a cursor is used, it should be explicitly closed/deallocated in case of blocking or USP running long

                    close ASSETCURSOR;
                    deallocate ASSETCURSOR;

                    declare @DESIGNATIONID uniqueidentifier;
                    declare DESIGNATIONCURSOR cursor local fast_forward for
                        select ID from dbo.PLANNEDGIFTADDITIONDESIGNATION where PLANNEDGIFTADDITIONID = @PLANNEDGIFTADDITIONID;

                    open DESIGNATIONCURSOR;
                        fetch next from DESIGNATIONCURSOR into @DESIGNATIONID;

                        while @@FETCH_STATUS = 0
                        begin
                            insert into @RESULTS
                                select 
                                    RECORDID,
                                    case when ACTION = 'Insert' then DATEADDED when ACTION = 'Update' then DATECHANGED else AUDITDATE end as [AUDITDATE],
                                    CHANGEDBYUSER,
                                    PROCESS,
                                    FIELD,
                                    OLD,
                                    NEW,
                                    70 as [SEQUENCE],
                                    ACTION,
                                    CHANGEDBYAPP
                                from dbo.UFN_AUDIT_GETDETAILFORCHILDTABLE_BYFIELDLIST('CAMPAIGNID, CAMPAIGNSUBPRIORITYID', 'PLANNEDGIFTADDITIONDESIGNATIONCAMPAIGN', 'PLANNEDGIFTADDITIONDESIGNATIONID', @DESIGNATIONID, @PLANNEDGIFTADDITIONDATEADDED, 'Campaign', '');

                            fetch next from DESIGNATIONCURSOR into @DESIGNATIONID;
                        end
                    --When a cursor is used, it should be explicitly closed/deallocated in case of blocking or USP running long

                    close DESIGNATIONCURSOR;
                    deallocate DESIGNATIONCURSOR;



                    if @ACTIONTYPECODE = 1
                        delete from @RESULTS where ACTION = 'Delete' or ACTION = 'Update';
                    if @ACTIONTYPECODE = 2
                        delete from @RESULTS where ACTION = 'Insert' or ACTION = 'Delete';
                    if @ACTIONTYPECODE = 3
                        delete from @RESULTS where ACTION = 'Insert' or ACTION = 'Update';

                    return;
            end