Fix * Problem saving new payment schedule on invoice
Link to SF Tracker: http://sourceforge.net/support/tracker.php?aid=2904313
This commit is contained in:
parent
dbd0fa1a01
commit
73b37fc7d5
|
@ -99,11 +99,10 @@ import org.compiere.util.ValueNamePair;
|
||||||
*/
|
*/
|
||||||
public class GridTab implements DataStatusListener, Evaluatee, Serializable
|
public class GridTab implements DataStatusListener, Evaluatee, Serializable
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 7198494041906579986L;
|
private static final long serialVersionUID = -8762357519103152929L;
|
||||||
|
|
||||||
public static final String DEFAULT_STATUS_MESSAGE = "NavigateOrUpdate";
|
public static final String DEFAULT_STATUS_MESSAGE = "NavigateOrUpdate";
|
||||||
|
|
||||||
|
@ -947,8 +946,8 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
|
||||||
fireStateChangeEvent(new StateChangeEvent(this, StateChangeEvent.DATA_SAVE));
|
fireStateChangeEvent(new StateChangeEvent(this, StateChangeEvent.DATA_SAVE));
|
||||||
|
|
||||||
if (retValue) {
|
if (retValue) {
|
||||||
// refresh parent tabs with the same table
|
// refresh parent tabs
|
||||||
refreshParentsSameTable();
|
refreshParents();
|
||||||
}
|
}
|
||||||
|
|
||||||
return retValue;
|
return retValue;
|
||||||
|
@ -999,7 +998,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void refreshParentsSameTable() {
|
private void refreshParents() {
|
||||||
if (isDetail()) {
|
if (isDetail()) {
|
||||||
// get parent tab
|
// get parent tab
|
||||||
// the parent tab is the first tab above with level = this_tab_level-1
|
// the parent tab is the first tab above with level = this_tab_level-1
|
||||||
|
@ -1007,9 +1006,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
|
||||||
for (int i = m_window.getTabIndex(this) - 1; i >= 0; i--) {
|
for (int i = m_window.getTabIndex(this) - 1; i >= 0; i--) {
|
||||||
GridTab parentTab = m_window.getTab(i);
|
GridTab parentTab = m_window.getTab(i);
|
||||||
if (parentTab.m_vo.TabLevel == level-1) {
|
if (parentTab.m_vo.TabLevel == level-1) {
|
||||||
if (parentTab.getAD_Table_ID() == getAD_Table_ID()) {
|
parentTab.dataRefresh();
|
||||||
parentTab.dataRefresh();
|
|
||||||
}
|
|
||||||
// search for the next parent
|
// search for the next parent
|
||||||
if (parentTab.isDetail()) {
|
if (parentTab.isDetail()) {
|
||||||
level = parentTab.m_vo.TabLevel;
|
level = parentTab.m_vo.TabLevel;
|
||||||
|
|
|
@ -141,12 +141,14 @@ public class MPaymentTerm extends X_C_PaymentTerm
|
||||||
getSchedule(true);
|
getSchedule(true);
|
||||||
if (m_schedule.length == 0)
|
if (m_schedule.length == 0)
|
||||||
{
|
{
|
||||||
setIsValid(true);
|
if (! isValid())
|
||||||
|
setIsValid(true);
|
||||||
return "@OK@";
|
return "@OK@";
|
||||||
}
|
}
|
||||||
if (m_schedule.length == 1)
|
if (m_schedule.length == 1)
|
||||||
{
|
{
|
||||||
setIsValid(false);
|
if (isValid())
|
||||||
|
setIsValid(false);
|
||||||
if (m_schedule[0].isValid())
|
if (m_schedule[0].isValid())
|
||||||
{
|
{
|
||||||
m_schedule[0].setIsValid(false);
|
m_schedule[0].setIsValid(false);
|
||||||
|
@ -164,7 +166,8 @@ public class MPaymentTerm extends X_C_PaymentTerm
|
||||||
total = total.add(percent);
|
total = total.add(percent);
|
||||||
}
|
}
|
||||||
boolean valid = total.compareTo(HUNDRED) == 0;
|
boolean valid = total.compareTo(HUNDRED) == 0;
|
||||||
setIsValid (valid);
|
if (isValid() != valid)
|
||||||
|
setIsValid (valid);
|
||||||
for (int i = 0; i < m_schedule.length; i++)
|
for (int i = 0; i < m_schedule.length; i++)
|
||||||
{
|
{
|
||||||
if (m_schedule[i].isValid() != valid)
|
if (m_schedule[i].isValid() != valid)
|
||||||
|
|
Loading…
Reference in New Issue