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