USP_POSTTOGLPROCESS_UPDATEREVENUEPOSTSTATUS
Marks the Revenue table rows as Processed or Posted.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@OUTPUTTABLE | nvarchar(255) | IN | |
@POSTINGOPTION | tinyint | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@LEGACYGLBUSINESSPROCESSSTATUSID | uniqueidentifier | IN | |
@BASICGLBUSINESSPROCESSSTATUSID | uniqueidentifier | IN |
Definition
Copy
CREATE proc dbo.USP_POSTTOGLPROCESS_UPDATEREVENUEPOSTSTATUS
(
@OUTPUTTABLE nvarchar(255),
@POSTINGOPTION tinyint = 0,
@CHANGEAGENTID uniqueidentifier,
@LEGACYGLBUSINESSPROCESSSTATUSID uniqueidentifier = null,
@BASICGLBUSINESSPROCESSSTATUSID uniqueidentifier = null
)
as
set nocount on;
declare @POSTSTATUSCODE tinyint;
declare @SQL nvarchar(4000);
set @POSTSTATUSCODE = 0;
declare @POSTSTATUSCODE2 tinyint = 2;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
begin transaction UPDATEREVENUE;
begin try
/*Use a temp table to store GL details so it can be accessed across dynamic sql calls*/
declare @POSTDETAILS_TEMPTABLE nvarchar(100) = '##REVENUEPOSTED_' + replace(cast(newid() as nvarchar(36)), '-', '_')
set @SQL =
'
create table dbo.[' + @POSTDETAILS_TEMPTABLE + ']
(
REVENUEID uniqueidentifier,
GLBATCHID uniqueidentifier,
AMOUNT money,
REFERENCE nvarchar(255)
)
'
exec sp_executesql @SQL;
/*Capture GiftAid Transactions*/
declare @GIFTAID_TEMPTABLE nvarchar(100) = '##GIFTAID_' + replace(cast(newid() as nvarchar(36)), '-', '_')
set @SQL =
'
create table dbo.[' + @GIFTAID_TEMPTABLE + ']
(
JOURNALENTRYID uniqueidentifier
)
'
exec sp_executesql @SQL;
set @SQL =
'
insert into dbo.[' + @GIFTAID_TEMPTABLE + '](JOURNALENTRYID)
select T1.ID
from dbo.JOURNALENTRY_EXT T1
inner join ' + @OUTPUTTABLE + ' as [T2] on [T2].GLTRANSACTIONID = T1.ID
where T1.TABLENAMECODE = 7
group by T1.ID
'
exec sp_executesql @SQL;
/* Insert a GLBATCH record. */
set @SQL = 'insert into dbo.GLBATCH(ID,POSTDATE,POSTPROCESSSTATUSID,POSTPROCESSTYPECODE,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
select distinct T.BATCHID,@TODAY,
coalesce(@LEGACYGLBUSINESSPROCESSSTATUSID,@BASICGLBUSINESSPROCESSSTATUSID),
case when not @LEGACYGLBUSINESSPROCESSSTATUSID is null then 0 when not @BASICGLBUSINESSPROCESSSTATUSID is null then 1 else 255 end,
@DYNCHANGEAGENTID, @DYNCHANGEAGENTID, @TODAY, @TODAY
from ' + @OUTPUTTABLE + ' as T';
exec sp_executesql @SQL,
N'@DYNCHANGEAGENTID uniqueidentifier, @TODAY datetime, @LEGACYGLBUSINESSPROCESSSTATUSID uniqueidentifier, @BASICGLBUSINESSPROCESSSTATUSID uniqueidentifier',
@DYNCHANGEAGENTID = @CHANGEAGENTID, @TODAY = @CURRENTDATE,
@LEGACYGLBUSINESSPROCESSSTATUSID = @LEGACYGLBUSINESSPROCESSSTATUSID,
@BASICGLBUSINESSPROCESSSTATUSID = @BASICGLBUSINESSPROCESSSTATUSID;
if (select dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('0E85C527-E6E9-4C5F-A8E8-105FD0E18FE7')) = 1
begin
/* Mark the bank account transaction records as posted for a deposit */
set @SQL = 'update T1
set T1.POSTSTATUSCODE = @DYNPOSTSTATUSCODE, T1.CHANGEDBYID = @DYNCHANGEAGENTID, T1.DATECHANGED = GETDATE()
from dbo.FINANCIALTRANSACTION T1
inner join ' + @OUTPUTTABLE + ' T2 on T1.ID = T2.DEPOSITID and T1.TYPECODE = 10
where T1.POSTSTATUSCODE = 1';
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier, @DYNPOSTSTATUSCODE tinyint', @DYNCHANGEAGENTID = @CHANGEAGENTID, @DYNPOSTSTATUSCODE = @POSTSTATUSCODE2;
set @SQL = 'update T2
set T2.POSTSTATUSCODE = @DYNPOSTSTATUSCODE, T2.CHANGEDBYID = @DYNCHANGEAGENTID, T2.DATECHANGED = GETDATE()
from dbo.FINANCIALTRANSACTION T1
inner join dbo.FINANCIALTRANSACTIONLINEITEM T2 on T1.ID = T2.FINANCIALTRANSACTIONID
inner join ' + @OUTPUTTABLE + ' T3 on T1.ID = T3.DEPOSITID and T1.TYPECODE = 10
where T2.POSTSTATUSCODE = 1';
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier, @DYNPOSTSTATUSCODE tinyint', @DYNCHANGEAGENTID = @CHANGEAGENTID, @DYNPOSTSTATUSCODE = @POSTSTATUSCODE2;
/* Mark the revenue records that are linked to a deposit with a post date of the deposit */
set @SQL = 'update T1
set T1.POSTDATE = T6.POSTDATE ,CHANGEDBYID = @DYNCHANGEAGENTID ,DATECHANGED = getdate()
from dbo.JOURNALENTRY T1
inner join dbo.FINANCIALTRANSACTIONLINEITEM T2 on T1.FINANCIALTRANSACTIONLINEITEMID = T2.ID and T2.TYPECODE != 3
inner join dbo.FINANCIALTRANSACTION T3 on T2.FINANCIALTRANSACTIONID = T3.ID
inner join dbo.BANKACCOUNTDEPOSITPAYMENT T4 on T4.ID = T3.ID
inner join ' + @OUTPUTTABLE + ' T5 on T1.ID = T5.GLTRANSACTIONID and T5.RECORDID = T3.ID
inner join dbo.FINANCIALTRANSACTION T6 on T6.ID = T4.DEPOSITID
where T2.REVERSEDLINEITEMID not in (select ID from dbo.FINANCIALTRANSACTIONLINEITEM where TYPECODE = 3)
or T2.REVERSEDLINEITEMID is null';
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier', @DYNCHANGEAGENTID = @CHANGEAGENTID;
/* Mark the revenue records that are linked to a deposit with a post date of the deposit */
set @SQL = 'update T1
set T1.POSTDATE = isnull(T4.POSTDATE, isnull(T3.POSTDATE, T1.POSTDATE)) ,CHANGEDBYID = @DYNCHANGEAGENTID, DATECHANGED = getdate()
from dbo.FINANCIALTRANSACTION T1
inner join ' + @OUTPUTTABLE + ' T2 on T2.RECORDID = T1.ID
left outer join dbo.FINANCIALTRANSACTION T3 on T3.ID = T2.DEPOSITID and T3.TYPECODE = 10
left outer join dbo.ADJUSTMENT T4 on T4.REVENUEID = T1.ID and T4.POSTSTATUSCODE = 1';
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier', @DYNCHANGEAGENTID = @CHANGEAGENTID;
/* Mark the revenue records that are linked to a deposit with a post date of the deposit */
set @SQL = 'update T2
set T2.POSTDATE = T6.POSTDATE ,CHANGEDBYID = @DYNCHANGEAGENTID ,DATECHANGED = getdate()
from dbo.JOURNALENTRY T1
inner join dbo.FINANCIALTRANSACTIONLINEITEM T2 on T1.FINANCIALTRANSACTIONLINEITEMID = T2.ID and T2.TYPECODE != 3
inner join dbo.FINANCIALTRANSACTION T3 on T2.FINANCIALTRANSACTIONID = T3.ID
inner join dbo.BANKACCOUNTDEPOSITPAYMENT T4 on T4.ID = T3.ID
inner join ' + @OUTPUTTABLE + ' T5 on T1.ID = T5.GLTRANSACTIONID and T5.RECORDID = T3.ID
inner join dbo.FINANCIALTRANSACTION T6 on T6.ID = T4.DEPOSITID
where T2.REVERSEDLINEITEMID not in (select ID from dbo.FINANCIALTRANSACTIONLINEITEM where TYPECODE = 3)
or T2.REVERSEDLINEITEMID is null';
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier', @DYNCHANGEAGENTID = @CHANGEAGENTID;
/*Make the bank account deposit as locked */
set @SQL = 'update dbo.BANKACCOUNTDEPOSIT set STATUSCODE = 0, CHANGEDBYID = @DYNCHANGEAGENTID, DATECHANGED = GETDATE()
from dbo.BANKACCOUNTDEPOSIT
inner join ' + @OUTPUTTABLE + ' as T on BANKACCOUNTDEPOSIT.ID = T.DEPOSITID';
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier', @DYNCHANGEAGENTID = @CHANGEAGENTID;
/* Mark the bank account transaction records as posted for a deposit */
set @SQL = 'update T1
set POSTSTATUSCODE = @DYNPOSTSTATUSCODE, CHANGEDBYID = @DYNCHANGEAGENTID, DATECHANGED = GETDATE()
from dbo.FINANCIALTRANSACTION T1
inner join ' + @OUTPUTTABLE + ' T2 on T1.ID = T2.RECORDID
where T1.POSTSTATUSCODE = 1 and T1.TYPECODE = 11'
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier, @DYNPOSTSTATUSCODE tinyint', @DYNCHANGEAGENTID = @CHANGEAGENTID, @DYNPOSTSTATUSCODE = @POSTSTATUSCODE2;
/* Mark the refund records that are linked to a deposit with a post date of the deposit */
set @SQL = 'update T1
set T1.POSTDATE = T7.POSTDATE ,CHANGEDBYID = @DYNCHANGEAGENTID ,DATECHANGED = getdate()
from dbo.JOURNALENTRY T1
inner join dbo.JOURNALENTRY_EXT T2 on T1.ID = T2.ID and TABLENAMECODE = 6
inner join dbo.FINANCIALTRANSACTIONLINEITEM T3 on T1.FINANCIALTRANSACTIONLINEITEMID = T3.ID
inner join dbo.FINANCIALTRANSACTION T4 on T3.FINANCIALTRANSACTIONID = T4.ID
inner join dbo.BANKACCOUNTDEPOSITCREDITPAYMENT T5 on T2.CREDITPAYMENTID = T5.ID
inner join ' + @OUTPUTTABLE + ' T6 on T1.ID = T6.GLTRANSACTIONID
inner join dbo.FINANCIALTRANSACTION T7 on T7.ID = T5.DEPOSITID';
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier', @DYNCHANGEAGENTID = @CHANGEAGENTID;
set @SQL = 'update T3
set T3.POSTDATE = T7.POSTDATE ,CHANGEDBYID = @DYNCHANGEAGENTID ,DATECHANGED = getdate()
from dbo.JOURNALENTRY T1
inner join dbo.JOURNALENTRY_EXT T2 on T1.ID = T2.ID and TABLENAMECODE = 6
inner join dbo.FINANCIALTRANSACTIONLINEITEM T3 on T1.FINANCIALTRANSACTIONLINEITEMID = T3.ID
inner join dbo.FINANCIALTRANSACTION T4 on T3.FINANCIALTRANSACTIONID = T4.ID
inner join dbo.BANKACCOUNTDEPOSITCREDITPAYMENT T5 on T2.CREDITPAYMENTID = T5.ID
inner join ' + @OUTPUTTABLE + ' T6 on T1.ID = T6.GLTRANSACTIONID
inner join dbo.FINANCIALTRANSACTION T7 on T7.ID = T5.DEPOSITID';
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier', @DYNCHANGEAGENTID = @CHANGEAGENTID;
/* Mark the Unrealized Gain/Loss Adjustment records as posted */
set @SQL = 'update dbo.UNREALIZEDGAINLOSSADJUSTMENT set POSTSTATUSCODE = @DYNPOSTSTATUSCODE, CHANGEDBYID = @DYNCHANGEAGENTID, DATECHANGED = GETDATE()
from dbo.GLTRANSACTION
inner join ' + @OUTPUTTABLE + ' as T on GLTRANSACTION.ID = T.GLTRANSACTIONID
inner join dbo.UNREALIZEDGAINLOSSGLDISTRIBUTION on GLTRANSACTION.ID = UNREALIZEDGAINLOSSGLDISTRIBUTION.GLTRANSACTIONID
inner join dbo.UNREALIZEDGAINLOSSADJUSTMENT on UNREALIZEDGAINLOSSGLDISTRIBUTION.REVENUEID = UNREALIZEDGAINLOSSADJUSTMENT.REVENUEID
where UNREALIZEDGAINLOSSADJUSTMENT.POSTSTATUSCODE = 1';
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier, @DYNPOSTSTATUSCODE tinyint', @DYNCHANGEAGENTID = @CHANGEAGENTID, @DYNPOSTSTATUSCODE = @POSTSTATUSCODE;
/* Update WRITEOFF with adjustment postdate */
set @SQL = 'update T3
set T3.POSTDATE = isnull(T4.POSTDATE,T3.POSTDATE) ,CHANGEDBYID = @DYNCHANGEAGENTID, DATECHANGED = getdate()
from dbo.FINANCIALTRANSACTION T1
inner join ' + @OUTPUTTABLE + ' T2 on T2.RECORDID = T1.ID
left outer join dbo.FINANCIALTRANSACTION T3 on T3.PARENTID = T1.ID and T3.TYPECODE = 20
left outer join dbo.WRITEOFFADJUSTMENT T4 on T4.WRITEOFFID = T3.ID and T4.POSTSTATUSCODE = 1';
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier', @DYNCHANGEAGENTID = @CHANGEAGENTID;
end
/* Mark the GL Transaction records as posted */
set @SQL = 'update T3
set T3.POSTSTATUSCODE = @DYNPOSTSTATUSCODE, CHANGEDBYID = @DYNCHANGEAGENTID, DATECHANGED = getdate()
from dbo.JOURNALENTRY T1
inner join dbo.FINANCIALTRANSACTIONLINEITEM T2 on T1.FINANCIALTRANSACTIONLINEITEMID = T2.ID
inner join dbo.FINANCIALTRANSACTION T3 on T2.FINANCIALTRANSACTIONID = T3.ID
inner join ' + @OUTPUTTABLE + ' T4 on T1.ID = T4.GLTRANSACTIONID
left outer join ' + @GIFTAID_TEMPTABLE + ' T5 on T1.ID = T5.JOURNALENTRYID
where T3.TYPECODE between 0 and 99 and T3.POSTSTATUSCODE = 1 and T5.JOURNALENTRYID is null ';
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier, @DYNPOSTSTATUSCODE tinyint', @DYNCHANGEAGENTID = @CHANGEAGENTID, @DYNPOSTSTATUSCODE = @POSTSTATUSCODE2;
set @SQL = 'update T2
set T2.POSTSTATUSCODE = @DYNPOSTSTATUSCODE, CHANGEDBYID = @DYNCHANGEAGENTID, DATECHANGED = getdate()
from dbo.JOURNALENTRY T1
inner join dbo.FINANCIALTRANSACTIONLINEITEM T2 on T1.FINANCIALTRANSACTIONLINEITEMID = T2.ID
inner join dbo.FINANCIALTRANSACTION T3 on T2.FINANCIALTRANSACTIONID = T3.ID
inner join ' + @OUTPUTTABLE + ' T4 on T1.ID = T4.GLTRANSACTIONID
where T2.POSTSTATUSCODE = 1';
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier, @DYNPOSTSTATUSCODE tinyint', @DYNCHANGEAGENTID = @CHANGEAGENTID, @DYNPOSTSTATUSCODE = @POSTSTATUSCODE2;
/* set batch number for all */
set @SQL = 'update T2
set T2.BATCHID = T3.BATCHID, CHANGEDBYID = @DYNCHANGEAGENTID, DATECHANGED = getdate()
from dbo.JOURNALENTRY T1
inner join dbo.JOURNALENTRY_EXT T2 on T1.ID = T2.ID
inner join ' + @OUTPUTTABLE + ' T3 on T1.ID = T3.GLTRANSACTIONID';
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier', @DYNCHANGEAGENTID = @CHANGEAGENTID;
/*Store the post details into the temp table. NOTE: This will only store the details for newly posted revenues*/
set @SQL =
'
insert into dbo.[' + @POSTDETAILS_TEMPTABLE + '](REVENUEID, GLBATCHID, AMOUNT, REFERENCE)
select
T4.FINANCIALTRANSACTIONID as REVENUEID
,T2.BATCHID as [GLBATCHID]
,sum(T1.TRANSACTIONAMOUNT)
,isnull(nullif(T6.REFERENCE, ''''), max(T1.COMMENT)) as REFERENCE
from dbo.JOURNALENTRY T1
inner join dbo.JOURNALENTRY_EXT T2 on T1.ID = T2.ID
inner join ' + @OUTPUTTABLE + ' as [T3] on [T3].GLTRANSACTIONID = T1.ID
inner join dbo.FINANCIALTRANSACTIONLINEITEM T4 on T1.FINANCIALTRANSACTIONLINEITEMID = T4.ID
left join dbo.REVENUEPOSTEDDETAIL T5 on T5.REVENUEPOSTEDID = T4.FINANCIALTRANSACTIONID
left join dbo.REVENUE_EXT T6 on T6.ID = T4.FINANCIALTRANSACTIONID
where T5.REVENUEPOSTEDID is null and T1.TYPECODE = 0
and T2.TABLENAMECODE = 1 and T1.TRANSACTIONTYPECODE = 1
group by T4.FINANCIALTRANSACTIONID, T2.BATCHID, T6.REFERENCE
'
exec sp_executesql @SQL;
/*Store the post details for auction purchases into the temp table. */
set @SQL =
'
insert into dbo.[' + @POSTDETAILS_TEMPTABLE + '](REVENUEID, GLBATCHID, AMOUNT, REFERENCE)
select
T4.FINANCIALTRANSACTIONID as REVENUEID
,T2.BATCHID as [GLBATCHID]
,sum(T1.TRANSACTIONAMOUNT)
,isnull(nullif(T6.REFERENCE, ''''), max(T1.COMMENT)) as REFERENCE
from dbo.JOURNALENTRY T1
inner join dbo.JOURNALENTRY_EXT T2 on T1.ID = T2.ID
inner join ' + @OUTPUTTABLE + ' as [T3] on [T3].GLTRANSACTIONID = T1.ID
inner join dbo.FINANCIALTRANSACTIONLINEITEM T4 on T1.FINANCIALTRANSACTIONLINEITEMID = T4.ID
left join dbo.REVENUEPOSTEDDETAIL T5 on T5.REVENUEPOSTEDID = T4.FINANCIALTRANSACTIONID
left join dbo.REVENUE_EXT T6 on T6.ID = T4.FINANCIALTRANSACTIONID
where T5.REVENUEPOSTEDID is null and T1.TYPECODE = 0
and T2.TABLENAMECODE = 2 and T1.TRANSACTIONTYPECODE = 1
group by T4.FINANCIALTRANSACTIONID, T2.BATCHID, T6.REFERENCE
'
exec sp_executesql @SQL;
/* Store the post details for each newly posted revenue */
set @SQL =
'
insert into dbo.REVENUEPOSTEDDETAIL(REVENUEPOSTEDID, GLBATCHID, AMOUNT, REFERENCE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
select
REVENUEID,
GLBATCHID,
AMOUNT,
REFERENCE,
@DYNCHANGEAGENTID,
@DYNCHANGEAGENTID,
@TODAY,
@TODAY
from dbo.[' + @POSTDETAILS_TEMPTABLE + ']
'
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier, @TODAY datetime', @DYNCHANGEAGENTID = @CHANGEAGENTID, @TODAY = @CURRENTDATE;
/* Mark the gift aid as posted */
set @SQL = 'insert into dbo.REVENUESPLITGIFTAIDPOSTED (ID,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
select distinct GIFTAIDGLDISTRIBUTION.REVENUESPLITGIFTAIDID, @DYNCHANGEAGENTID, @DYNCHANGEAGENTID, @TODAY, @TODAY
from dbo.GLTRANSACTION
inner join ' + @OUTPUTTABLE + ' as T on GLTRANSACTION.ID = T.GLTRANSACTIONID
inner join dbo.GIFTAIDGLDISTRIBUTION on GLTRANSACTION.ID = GIFTAIDGLDISTRIBUTION.GLTRANSACTIONID
left join dbo.REVENUESPLITGIFTAIDPOSTED on REVENUESPLITGIFTAIDPOSTED.ID = GIFTAIDGLDISTRIBUTION.REVENUESPLITGIFTAIDID
where REVENUESPLITGIFTAIDPOSTED.ID is null';
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier, @DYNPOSTSTATUSCODE tinyint, @TODAY datetime', @DYNCHANGEAGENTID = @CHANGEAGENTID, @DYNPOSTSTATUSCODE = @POSTSTATUSCODE, @TODAY = @CURRENTDATE;
/* Mark the Plannedgiftpayout Adjustment records as posted */
set @SQL = 'update T5 set T5.POSTSTATUSCODE = @DYNPOSTSTATUSCODE, T5.CHANGEDBYID = @DYNCHANGEAGENTID, T5.DATECHANGED = GETDATE()
from dbo.JOURNALENTRY T
inner join ' + @OUTPUTTABLE + ' as T1 on T.ID = T1.GLTRANSACTIONID
inner join dbo.JOURNALENTRY_EXT T2 on T.ID = T2.ID and T2.TABLENAMECODE = 9
inner join dbo.FINANCIALTRANSACTIONLINEITEM T3 on T3.ID = T.FINANCIALTRANSACTIONLINEITEMID
inner join dbo.FINANCIALTRANSACTION T4 on T4.ID = T3.FINANCIALTRANSACTIONID
inner join dbo.PLANNEDGIFTPAYOUTADJUSTMENT T5 on T4.PARENTID = T5.REVENUEID
where T5.POSTSTATUSCODE = 1 ';
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier, @DYNPOSTSTATUSCODE tinyint', @DYNCHANGEAGENTID = @CHANGEAGENTID, @DYNPOSTSTATUSCODE = @POSTSTATUSCODE;
/* Mark the Stock Detail Adjustment records as posted */
set @SQL = 'update dbo.STOCKSALEADJUSTMENT set POSTSTATUSCODE = @DYNPOSTSTATUSCODE, CHANGEDBYID = @DYNCHANGEAGENTID, DATECHANGED = GETDATE()
from dbo.GLTRANSACTION
inner join ' + @OUTPUTTABLE + ' as T on GLTRANSACTION.ID = T.GLTRANSACTIONID
inner join dbo.STOCKSALEGLDISTRIBUTION on GLTRANSACTION.ID = STOCKSALEGLDISTRIBUTION.GLTRANSACTIONID
inner join dbo.STOCKSALEADJUSTMENT on STOCKSALEGLDISTRIBUTION.STOCKSALEID = STOCKSALEADJUSTMENT.STOCKSALEID
where STOCKSALEADJUSTMENT.POSTSTATUSCODE = 1';
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier, @DYNPOSTSTATUSCODE tinyint', @DYNCHANGEAGENTID = @CHANGEAGENTID, @DYNPOSTSTATUSCODE = @POSTSTATUSCODE;
/* Mark the Gift-in-kind Detail Adjustment records as posted */
set @SQL = 'update dbo.GIFTINKINDSALEADJUSTMENT set POSTSTATUSCODE = @DYNPOSTSTATUSCODE, CHANGEDBYID = @DYNCHANGEAGENTID, DATECHANGED = GETDATE()
from dbo.GLTRANSACTION
inner join ' + @OUTPUTTABLE + ' as T on GLTRANSACTION.ID = T.GLTRANSACTIONID
inner join dbo.GIFTINKINDSALEGLDISTRIBUTION on GLTRANSACTION.ID = GIFTINKINDSALEGLDISTRIBUTION.GLTRANSACTIONID
inner join dbo.GIFTINKINDSALEADJUSTMENT on GIFTINKINDSALEGLDISTRIBUTION.GIFTINKINDSALEID = GIFTINKINDSALEADJUSTMENT.GIFTINKINDSALEID
where GIFTINKINDSALEADJUSTMENT.POSTSTATUSCODE = 1';
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier, @DYNPOSTSTATUSCODE tinyint', @DYNCHANGEAGENTID = @CHANGEAGENTID, @DYNPOSTSTATUSCODE = @POSTSTATUSCODE;
/* Mark the Property Detail Adjustment records as posted */
set @SQL = 'update dbo.PROPERTYDETAILADJUSTMENT set POSTSTATUSCODE = @DYNPOSTSTATUSCODE, CHANGEDBYID = @DYNCHANGEAGENTID, DATECHANGED = GETDATE()
from dbo.GLTRANSACTION
inner join ' + @OUTPUTTABLE + ' as T on GLTRANSACTION.ID = T.GLTRANSACTIONID
inner join dbo.PROPERTYDETAILGLDISTRIBUTION on GLTRANSACTION.ID = PROPERTYDETAILGLDISTRIBUTION.GLTRANSACTIONID
inner join dbo.PROPERTYDETAILADJUSTMENT on PROPERTYDETAILGLDISTRIBUTION.PROPERTYDETAILID = PROPERTYDETAILADJUSTMENT.PROPERTYDETAILID
where PROPERTYDETAILADJUSTMENT.POSTSTATUSCODE = 1';
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier, @DYNPOSTSTATUSCODE tinyint', @DYNCHANGEAGENTID = @CHANGEAGENTID, @DYNPOSTSTATUSCODE = @POSTSTATUSCODE;
/* Mark the Write-off Adjustment records as posted */
set @SQL = 'update dbo.WRITEOFFADJUSTMENT set POSTSTATUSCODE = @DYNPOSTSTATUSCODE, CHANGEDBYID = @DYNCHANGEAGENTID, DATECHANGED = GETDATE()
from dbo.GLTRANSACTION
inner join ' + @OUTPUTTABLE + ' as T on GLTRANSACTION.ID = T.GLTRANSACTIONID
inner join dbo.WRITEOFFGLDISTRIBUTION on GLTRANSACTION.ID = WRITEOFFGLDISTRIBUTION.GLTRANSACTIONID
inner join dbo.WRITEOFFADJUSTMENT on WRITEOFFGLDISTRIBUTION.WRITEOFFID = WRITEOFFADJUSTMENT.WRITEOFFID
where WRITEOFFADJUSTMENT.POSTSTATUSCODE = 1';
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier, @DYNPOSTSTATUSCODE tinyint', @DYNCHANGEAGENTID = @CHANGEAGENTID, @DYNPOSTSTATUSCODE = @POSTSTATUSCODE;
/* Mark the benefit adjustment records as posted */
set @SQL = 'update dbo.BENEFITADJUSTMENT set POSTSTATUSCODE = @DYNPOSTSTATUSCODE, CHANGEDBYID = @DYNCHANGEAGENTID, DATECHANGED = GETDATE()
from dbo.GLTRANSACTION
inner join ' + @OUTPUTTABLE + ' as T on GLTRANSACTION.ID = T.GLTRANSACTIONID
inner join dbo.BENEFITGLDISTRIBUTION on GLTRANSACTION.ID = BENEFITGLDISTRIBUTION.GLTRANSACTIONID
inner join dbo.BENEFITADJUSTMENT on BENEFITADJUSTMENT.REVENUEID = BENEFITGLDISTRIBUTION.REVENUEID
where BENEFITADJUSTMENT.POSTSTATUSCODE = 1';
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier, @DYNPOSTSTATUSCODE tinyint', @DYNCHANGEAGENTID = @CHANGEAGENTID, @DYNPOSTSTATUSCODE = @POSTSTATUSCODE;
/* Mark the auction purchase adjustment records as posted */
set @SQL = 'update dbo.AUCTIONPURCHASEADJUSTMENT set POSTSTATUSCODE = @DYNPOSTSTATUSCODE, CHANGEDBYID = @DYNCHANGEAGENTID, DATECHANGED = GETDATE()
from dbo.GLTRANSACTION
inner join ' + @OUTPUTTABLE + ' as T on GLTRANSACTION.ID = T.GLTRANSACTIONID
inner join dbo.AUCTIONPURCHASEGLDISTRIBUTION on GLTRANSACTION.ID = AUCTIONPURCHASEGLDISTRIBUTION.GLTRANSACTIONID
inner join dbo.AUCTIONPURCHASEADJUSTMENT on AUCTIONPURCHASEADJUSTMENT.REVENUEID = AUCTIONPURCHASEGLDISTRIBUTION.REVENUEPURCHASEID
where AUCTIONPURCHASEADJUSTMENT.POSTSTATUSCODE = 1';
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier, @DYNPOSTSTATUSCODE tinyint', @DYNCHANGEAGENTID = @CHANGEAGENTID, @DYNPOSTSTATUSCODE = @POSTSTATUSCODE;
/* Mark the Adjustment records as posted */
set @SQL = 'update dbo.ADJUSTMENT set POSTSTATUSCODE = @DYNPOSTSTATUSCODE, CHANGEDBYID = @DYNCHANGEAGENTID, DATECHANGED = GETDATE()
from dbo.GLTRANSACTION
inner join ' + @OUTPUTTABLE + ' as T on GLTRANSACTION.ID = T.GLTRANSACTIONID
inner join dbo.REVENUEGLDISTRIBUTION on GLTRANSACTION.ID = REVENUEGLDISTRIBUTION.GLTRANSACTIONID
inner join dbo.ADJUSTMENT on ADJUSTMENT.REVENUEID = REVENUEGLDISTRIBUTION.REVENUEID
where ADJUSTMENT.POSTSTATUSCODE = 1';
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier, @DYNPOSTSTATUSCODE tinyint', @DYNCHANGEAGENTID = @CHANGEAGENTID, @DYNPOSTSTATUSCODE = @POSTSTATUSCODE;
/* Mark auction purchase adjustment records as posted */
set @SQL = 'update dbo.ADJUSTMENT set POSTSTATUSCODE = @DYNPOSTSTATUSCODE, CHANGEDBYID = @DYNCHANGEAGENTID, DATECHANGED = GETDATE()
from dbo.GLTRANSACTION
inner join ' + @OUTPUTTABLE + ' as T on GLTRANSACTION.ID = T.GLTRANSACTIONID
inner join dbo.AUCTIONPURCHASEGLDISTRIBUTION on GLTRANSACTION.ID = AUCTIONPURCHASEGLDISTRIBUTION.GLTRANSACTIONID
inner join dbo.ADJUSTMENT on ADJUSTMENT.REVENUEID = AUCTIONPURCHASEGLDISTRIBUTION.REVENUEPURCHASEID
where ADJUSTMENT.POSTSTATUSCODE = 1';
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier, @DYNPOSTSTATUSCODE tinyint', @DYNCHANGEAGENTID = @CHANGEAGENTID, @DYNPOSTSTATUSCODE = @POSTSTATUSCODE;
/* Mark the gift fee adjustment records as posted */
set @SQL = 'update dbo.GIFTFEEADJUSTMENT set POSTSTATUSCODE = @DYNPOSTSTATUSCODE, CHANGEDBYID = @DYNCHANGEAGENTID, DATECHANGED = GETDATE()
from dbo.GLTRANSACTION
inner join ' + @OUTPUTTABLE + ' as T on GLTRANSACTION.ID = T.GLTRANSACTIONID
inner join dbo.GIFTFEEGLDISTRIBUTION on GLTRANSACTION.ID = GIFTFEEGLDISTRIBUTION.GLTRANSACTIONID
inner join dbo.GIFTFEEADJUSTMENT on GIFTFEEADJUSTMENT.REVENUEID = GIFTFEEGLDISTRIBUTION.REVENUEID
where GIFTFEEADJUSTMENT.POSTSTATUSCODE = 1';
exec sp_executesql @SQL, N'@DYNCHANGEAGENTID uniqueidentifier, @DYNPOSTSTATUSCODE tinyint', @DYNCHANGEAGENTID = @CHANGEAGENTID, @DYNPOSTSTATUSCODE = @POSTSTATUSCODE;
end try
begin catch
if @@TRANCOUNT > 0
rollback transaction UPDATEREVENUE;
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
if @@TRANCOUNT > 0
commit transaction UPDATEREVENUE;
return 0;