From b38367ee2f6a118dd211eb412f44f08ce6297a7b Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Mon, 21 May 2018 20:00:05 +0200 Subject: [PATCH] IDEMPIERE-3702 Post if clearing is equal is not working on AP Payments AP2-140 / fix NPE when payment is zero --- .../src/org/compiere/acct/Doc_Payment.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/org.adempiere.base/src/org/compiere/acct/Doc_Payment.java b/org.adempiere.base/src/org/compiere/acct/Doc_Payment.java index 2d598d3b17..558d5d8071 100644 --- a/org.adempiere.base/src/org/compiere/acct/Doc_Payment.java +++ b/org.adempiere.base/src/org/compiere/acct/Doc_Payment.java @@ -171,20 +171,22 @@ public class Doc_Payment extends Doc // 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) { + if (dr != null && cr != null) { + 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(); + BigDecimal debit = dr.getAmtSourceDr(); + BigDecimal credit = cr.getAmtSourceCr(); + + if (debit.compareTo(credit) == 0) { + fact.remove(dr); + fact.remove(cr); + } - if (debit.compareTo(credit) == 0) { - fact.remove(dr); - fact.remove(cr); } - } // End Avoid usage of clearing accounts //