USP_MAPPINGERROR_BANKACCOUNTADJUSTMENT_RECREATEDISTRIBUTION

Recreate the distribution for a bank account adjustment if using holding account.

Parameters

Parameter Parameter Type Mode Description
@BANKACCOUNTADJUSTMENTID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@CURRENTDATE datetime IN
@PROCESSID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_MAPPINGERROR_BANKACCOUNTADJUSTMENT_RECREATEDISTRIBUTION
(
    @BANKACCOUNTADJUSTMENTID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @CURRENTDATE datetime = null,
    @PROCESSID uniqueidentifier = null
) as 
begin

    if @CHANGEAGENTID is null
        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

    if @CURRENTDATE is null
        set @CURRENTDATE = getdate();

    declare @DEFAULTGLACCOUNTID uniqueidentifier;
    select @DEFAULTGLACCOUNTID = S.DEFAULTGLACCOUNTID
    from dbo.PDACCOUNTSYSTEM S
    inner join dbo.BANKACCOUNT BA on S.ID = BA.PDACCOUNTSYSTEMID
    inner join dbo.BANKACCOUNTTRANSACTION BAT on BAT.BANKACCOUNTID = BA.ID
    where BAT.ID = @BANKACCOUNTADJUSTMENTID;

    if @DEFAULTGLACCOUNTID is not null and exists(select 1 
        from dbo.BANKACCOUNTTRANSACTIONGLDISTRIBUTION D
        inner join dbo.GLTRANSACTION T on D.GLTRANSACTIONID = T.ID
        where D.BANKACCOUNTTRANSACTIONID = @BANKACCOUNTADJUSTMENTID and T.GLACCOUNTID = @DEFAULTGLACCOUNTID and T.POSTSTATUSCODE = 1)
    begin
        delete from dbo.GLTRANSACTION where ID in (select GLTRANSACTIONID from dbo.BANKACCOUNTTRANSACTIONGLDISTRIBUTION where BANKACCOUNTTRANSACTIONID = @BANKACCOUNTADJUSTMENTID) and POSTSTATUSCODE >= 1;
        delete from dbo.BANKACCOUNTTRANSACTIONGLDISTRIBUTION where BANKACCOUNTTRANSACTIONID = @BANKACCOUNTADJUSTMENTID;

        exec dbo.USP_BANKACCOUNTADJUSTMENT_CREATEDISTRIBUTION @BANKACCOUNTADJUSTMENTID, @CHANGEAGENTID, @CURRENTDATE;
    end

    if exists(select 1 from dbo.GLACCOUNTMAPPINGERROR where TRANSACTIONID = @BANKACCOUNTADJUSTMENTID and DELETED = 0
        and ERRORMESSAGE in (select E.ERRORMESSAGE from dbo.GLACCOUNTMAPPINGERROR E where E.TRANSACTIONID = @BANKACCOUNTADJUSTMENTID and E.GLACCOUNTMAPPINGERRORUPDATEPROCESSID = @PROCESSID))
        return 0
    else
        return 1
end