diff --git a/base/src/org/compiere/model/MPaySchedule.java b/base/src/org/compiere/model/MPaySchedule.java index f8c1baaf94..748a3d027e 100644 --- a/base/src/org/compiere/model/MPaySchedule.java +++ b/base/src/org/compiere/model/MPaySchedule.java @@ -88,7 +88,7 @@ public class MPaySchedule extends X_C_PaySchedule */ protected boolean beforeSave (boolean newRecord) { - if (is_ValueChanged("Percentage")) + if (is_ValueChanged("Percentage") || is_ValueChanged("IsActive")) { log.fine("beforeSave"); setIsValid(false); @@ -104,7 +104,7 @@ public class MPaySchedule extends X_C_PaySchedule */ protected boolean afterSave (boolean newRecord, boolean success) { - if (newRecord || is_ValueChanged("Percentage")) + if (newRecord || is_ValueChanged("Percentage") || is_ValueChanged("IsActive")) { log.fine("afterSave"); getParent(); @@ -113,5 +113,16 @@ public class MPaySchedule extends X_C_PaySchedule } return success; } // afterSave + + @Override + protected boolean afterDelete(boolean success) { + if (!success) + return false; + getParent(); + m_parent.validate(); + m_parent.save(); + return true; + } + } // MPaySchedule diff --git a/base/src/org/compiere/model/MPaymentTerm.java b/base/src/org/compiere/model/MPaymentTerm.java index 0af349ee6f..406616fee1 100644 --- a/base/src/org/compiere/model/MPaymentTerm.java +++ b/base/src/org/compiere/model/MPaymentTerm.java @@ -80,7 +80,7 @@ public class MPaymentTerm extends X_C_PaymentTerm { if (m_schedule != null && !requery) return m_schedule; - String sql = "SELECT * FROM C_PaySchedule WHERE C_PaymentTerm_ID=? ORDER BY NetDays"; + String sql = "SELECT * FROM C_PaySchedule WHERE C_PaymentTerm_ID=? AND IsActive='Y' ORDER BY NetDays"; ArrayList list = new ArrayList(); PreparedStatement pstmt = null; try @@ -133,6 +133,11 @@ public class MPaymentTerm extends X_C_PaymentTerm if (m_schedule.length == 1) { setIsValid(false); + if (m_schedule[0].isValid()) + { + m_schedule[0].setIsValid(false); + m_schedule[0].save(); + } return "@Invalid@ @Count@ # = 1 (@C_PaySchedule_ID@)"; }