USP_DEPOSITEDIT_UPDATEREVENUEGLDISTRIBUTION
Update the revenue's GL distribution after a change in the deposit.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@DEPOSITID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_DEPOSITEDIT_UPDATEREVENUEGLDISTRIBUTION
(
@DEPOSITID uniqueidentifier
,@CHANGEAGENTID uniqueidentifier = null
)as
begin
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate();
declare @CONTEXTCACHE varbinary(128);
set @CONTEXTCACHE = CONTEXT_INFO();
if @CHANGEAGENTID is not null
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.DEPOSITGLDISTRIBUTIONLINK
where DEPOSITID = @DEPOSITID;
create table #GLDEPOSITS
(
DEPOSITID uniqueidentifier
)
create clustered index IX_GLDEPOSITS_DEPOSITID on #GLDEPOSITS (DEPOSITID);
insert into #GLDEPOSITS
select J.ID as DEPOSITID
from JOURNALENTRY J
inner join JOURNALENTRY_EXT JE on J.ID = JE.ID
inner join dbo.FINANCIALTRANSACTIONLINEITEM on J.FINANCIALTRANSACTIONLINEITEMID = FINANCIALTRANSACTIONLINEITEM.ID
inner join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = FINANCIALTRANSACTION.ID
inner join dbo.BANKACCOUNTDEPOSITPAYMENT DP on DP.ID = FINANCIALTRANSACTION.ID
where JE.OUTDATED = 0 and DP.DEPOSITID = @DEPOSITID
union
select J.ID as DEPOSITID
from JOURNALENTRY J
inner join JOURNALENTRY_EXT JE on J.ID = JE.ID
inner join dbo.BANKACCOUNTDEPOSITPAYMENT DP on JE.REVENUEPURCHASEID = DP.ID
where JE.OUTDATED = 0 and DP.DEPOSITID = @DEPOSITID
union
select J.ID as DEPOSITID
from JOURNALENTRY J
inner join JOURNALENTRY_EXT JE on J.ID = JE.ID
inner join dbo.BANKACCOUNTDEPOSITPAYMENT DP on JE.LOGICALREVENUEID = DP.ID
where JE.OUTDATED = 0 and DP.DEPOSITID = @DEPOSITID;
delete dbo.JOURNALENTRY
from dbo.JOURNALENTRY
inner join #GLDEPOSITS on #GLDEPOSITS.DEPOSITID = JOURNALENTRY.ID;
if not @CONTEXTCACHE is null
set CONTEXT_INFO @CONTEXTCACHE;
declare @REVENUEID uniqueidentifier;
declare revenueCursor CURSOR for
select ID from dbo.BANKACCOUNTDEPOSITPAYMENT where DEPOSITID = @DEPOSITID;
open revenueCursor;
fetch next from revenueCursor into @REVENUEID
while @@FETCH_STATUS=0
begin
exec dbo.USP_SAVE_REVENUEGLDISTRIBUTION @REVENUEID, @CHANGEAGENTID, @CURRENTDATE;
exec dbo.USP_SAVE_AUCTIONPURCHASEGLDISTRIBUTION @REVENUEID, @CHANGEAGENTID, @CURRENTDATE;
if exists(select 1 from dbo.REVENUESPLITGIFTFEE inner join dbo.REVENUESPLIT on REVENUESPLITGIFTFEE.ID=REVENUESPLIT.ID where REVENUESPLIT.REVENUEID = @REVENUEID and REVENUESPLITGIFTFEE.WAIVED <> 1)
exec dbo.USP_SAVE_GIFTFEEGLDISTRIBUTION @REVENUEID, @CHANGEAGENTID, @CURRENTDATE;
fetch next from revenueCursor into @REVENUEID;
end
close revenueCursor;
deallocate revenueCursor;
declare @XML xml;
set @XML =
(select 0 [AMOUNT], [ID], '' [PAYMENTMETHOD], GETDATE() [TRANSACTIONDATE], '' [TRANSACTIONTYPE]
from dbo.BANKACCOUNTDEPOSITPAYMENT
where DEPOSITID = @DEPOSITID
for xml raw('ITEM'),type,elements,root('PAYMENTS'),BINARY BASE64);
exec dbo.USP_BANKACCOUNTDEPOSIT_OVERWRITEMULTIPLEPAYMENTSDEBITACCOUNTS @DEPOSITID, @XML, @CHANGEAGENTID, @CURRENTDATE;
drop table #GLDEPOSITS;
end