USP_EDITDEPOSIT_RECREATECREDITPAYMENTGLDISTRIBUTIONS
Recreate the credit payment's GL distributions after a change in the deposit.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@DEPOSITID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
create procedure dbo.USP_EDITDEPOSIT_RECREATECREDITPAYMENTGLDISTRIBUTIONS
(
@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 all credit payment distributions
delete from dbo.GLTRANSACTION where ID in
(
select DIST.GLTRANSACTIONID
from dbo.BANKACCOUNTDEPOSITCREDITPAYMENT as C
inner join dbo.CREDITGLDISTRIBUTION as DIST on C.ID = DIST.CREDITPAYMENTID
where C.DEPOSITID = @DEPOSITID
)
if not @CONTEXTCACHE is null
set CONTEXT_INFO @CONTEXTCACHE;
declare @CREDITPAYMENTID uniqueidentifier;
declare @CREDITID uniqueidentifier;
declare recreatedistributions_cursor cursor for
select BANKACCOUNTDEPOSITCREDITPAYMENT.ID, CREDITPAYMENT.CREDITID
from dbo.BANKACCOUNTDEPOSITCREDITPAYMENT
inner join dbo.CREDITPAYMENT on BANKACCOUNTDEPOSITCREDITPAYMENT.ID = CREDITPAYMENT.ID
where BANKACCOUNTDEPOSITCREDITPAYMENT.DEPOSITID = @DEPOSITID
open recreatedistributions_cursor
fetch next from recreatedistributions_cursor
into @CREDITPAYMENTID, @CREDITID
while @@FETCH_STATUS=0
begin
exec dbo.USP_REFUND_CREATEGLDISTRIBUTION @CREDITID, @CHANGEAGENTID, @CURRENTDATE, @CREDITPAYMENTID;
exec dbo.USP_BANKACCOUNTDEPOSIT_OVERWRITECREDITPAYMENTCREDITACCOUNTS @CREDITPAYMENTID, @DEPOSITID, @CHANGEAGENTID, @CURRENTDATE;
fetch next from recreatedistributions_cursor into @CREDITPAYMENTID, @CREDITID;
end
close recreatedistributions_cursor
deallocate recreatedistributions_cursor
end