IDEMPIERE-3702 Post if clearing is equal is not working on AP Payments AP2-140
This commit is contained in:
parent
9e64009c9c
commit
78309342a7
|
|
@ -116,14 +116,16 @@ public class Doc_Payment extends Doc
|
||||||
return facts;
|
return facts;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FactLine dr = null;
|
||||||
|
FactLine cr = null;
|
||||||
int AD_Org_ID = getBank_Org_ID(); // Bank Account Org
|
int AD_Org_ID = getBank_Org_ID(); // Bank Account Org
|
||||||
if (getDocumentType().equals(DOCTYPE_ARReceipt))
|
if (getDocumentType().equals(DOCTYPE_ARReceipt))
|
||||||
{
|
{
|
||||||
// Asset
|
// Asset
|
||||||
FactLine fl = fact.createLine(null, getAccount(Doc.ACCTTYPE_BankInTransit, as),
|
dr = fact.createLine(null, getAccount(Doc.ACCTTYPE_BankInTransit, as),
|
||||||
getC_Currency_ID(), getAmount(), null);
|
getC_Currency_ID(), getAmount(), null);
|
||||||
if (fl != null && AD_Org_ID != 0)
|
if (dr != null && AD_Org_ID != 0)
|
||||||
fl.setAD_Org_ID(AD_Org_ID);
|
dr.setAD_Org_ID(AD_Org_ID);
|
||||||
//
|
//
|
||||||
MAccount acct = null;
|
MAccount acct = null;
|
||||||
if (getC_Charge_ID() != 0)
|
if (getC_Charge_ID() != 0)
|
||||||
|
|
@ -132,11 +134,11 @@ public class Doc_Payment extends Doc
|
||||||
acct = getAccount(Doc.ACCTTYPE_C_Prepayment, as);
|
acct = getAccount(Doc.ACCTTYPE_C_Prepayment, as);
|
||||||
else
|
else
|
||||||
acct = getAccount(Doc.ACCTTYPE_UnallocatedCash, as);
|
acct = getAccount(Doc.ACCTTYPE_UnallocatedCash, as);
|
||||||
fl = fact.createLine(null, acct,
|
cr = fact.createLine(null, acct,
|
||||||
getC_Currency_ID(), null, getAmount());
|
getC_Currency_ID(), null, getAmount());
|
||||||
if (fl != null && AD_Org_ID != 0
|
if (cr != null && AD_Org_ID != 0
|
||||||
&& getC_Charge_ID() == 0) // don't overwrite charge
|
&& getC_Charge_ID() == 0) // don't overwrite charge
|
||||||
fl.setAD_Org_ID(AD_Org_ID);
|
cr.setAD_Org_ID(AD_Org_ID);
|
||||||
}
|
}
|
||||||
// APP
|
// APP
|
||||||
else if (getDocumentType().equals(DOCTYPE_APPayment))
|
else if (getDocumentType().equals(DOCTYPE_APPayment))
|
||||||
|
|
@ -148,17 +150,17 @@ public class Doc_Payment extends Doc
|
||||||
acct = getAccount(Doc.ACCTTYPE_V_Prepayment, as);
|
acct = getAccount(Doc.ACCTTYPE_V_Prepayment, as);
|
||||||
else
|
else
|
||||||
acct = getAccount(Doc.ACCTTYPE_PaymentSelect, as);
|
acct = getAccount(Doc.ACCTTYPE_PaymentSelect, as);
|
||||||
FactLine fl = fact.createLine(null, acct,
|
dr = fact.createLine(null, acct,
|
||||||
getC_Currency_ID(), getAmount(), null);
|
getC_Currency_ID(), getAmount(), null);
|
||||||
if (fl != null && AD_Org_ID != 0
|
if (dr != null && AD_Org_ID != 0
|
||||||
&& getC_Charge_ID() == 0) // don't overwrite charge
|
&& getC_Charge_ID() == 0) // don't overwrite charge
|
||||||
fl.setAD_Org_ID(AD_Org_ID);
|
dr.setAD_Org_ID(AD_Org_ID);
|
||||||
|
|
||||||
// Asset
|
// Asset
|
||||||
fl = fact.createLine(null, getAccount(Doc.ACCTTYPE_BankInTransit, as),
|
cr = fact.createLine(null, getAccount(Doc.ACCTTYPE_BankInTransit, as),
|
||||||
getC_Currency_ID(), null, getAmount());
|
getC_Currency_ID(), null, getAmount());
|
||||||
if (fl != null && AD_Org_ID != 0)
|
if (cr != null && AD_Org_ID != 0)
|
||||||
fl.setAD_Org_ID(AD_Org_ID);
|
cr.setAD_Org_ID(AD_Org_ID);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -166,6 +168,25 @@ public class Doc_Payment extends Doc
|
||||||
log.log(Level.SEVERE, p_Error);
|
log.log(Level.SEVERE, p_Error);
|
||||||
fact = null;
|
fact = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Avoid usage of clearing accounts
|
||||||
|
// If both accounts and orgs are the same then remove the posting
|
||||||
|
MAccount acct_dr = dr.getAccount();
|
||||||
|
MAccount acct_cr = cr.getAccount();
|
||||||
|
int org_dr = dr.getAD_Org_ID();
|
||||||
|
int org_cr = cr.getAD_Org_ID();
|
||||||
|
if (!as.isPostIfClearingEqual() && acct_dr!=null && acct_dr.equals(acct_cr) && org_dr == org_cr) {
|
||||||
|
|
||||||
|
BigDecimal debit = dr.getAmtSourceDr();
|
||||||
|
BigDecimal credit = cr.getAmtSourceCr();
|
||||||
|
|
||||||
|
if (debit.compareTo(credit) == 0) {
|
||||||
|
fact.remove(dr);
|
||||||
|
fact.remove(cr);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
// End Avoid usage of clearing accounts
|
||||||
//
|
//
|
||||||
ArrayList<Fact> facts = new ArrayList<Fact>();
|
ArrayList<Fact> facts = new ArrayList<Fact>();
|
||||||
facts.add(fact);
|
facts.add(fact);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue