IDEMPIERE-5560 Cannot save more than one order line when an _ID field is not displayed (#1764)
This commit is contained in:
parent
09df36a78f
commit
ee1b6828f4
|
@ -2752,6 +2752,11 @@ public class GridTable extends AbstractTableModel
|
||||||
for (int i = 0; i < size; i++)
|
for (int i = 0; i < size; i++)
|
||||||
{
|
{
|
||||||
GridField field = (GridField)m_fields.get(i);
|
GridField field = (GridField)m_fields.get(i);
|
||||||
|
if (field.getGridTab() != null) {
|
||||||
|
//avoid getting default from previous row
|
||||||
|
String key = field.getVO().WindowNo+"|"+field.getVO().TabNo+"|"+field.getVO().ColumnName;
|
||||||
|
field.getVO().ctx.remove(key);
|
||||||
|
}
|
||||||
Object value = field.getDefault();
|
Object value = field.getDefault();
|
||||||
field.setValue(value, m_inserting);
|
field.setValue(value, m_inserting);
|
||||||
field.validateValueNoDirect();
|
field.validateValueNoDirect();
|
||||||
|
|
|
@ -193,9 +193,8 @@ public class GridTabTest extends AbstractTestCase {
|
||||||
boolean displayGridOri = field.isDisplayed();
|
boolean displayGridOri = field.isDisplayed();
|
||||||
try {
|
try {
|
||||||
/* IDEMPIERE-5560 */
|
/* IDEMPIERE-5560 */
|
||||||
DB.executeUpdateEx("UPDATE AD_Field SET IsDisplayed='N', IsDisplayedGrid='N' WHERE AD_Field_ID=?", new Object[] {FIELD_ORDERLINE_SHIPPER}, getTrxName());
|
// must not use trx here for the test case below to get the update
|
||||||
// we need to commit here for the test case below to get the update
|
DB.executeUpdateEx("UPDATE AD_Field SET IsDisplayed='N', IsDisplayedGrid='N' WHERE AD_Field_ID=?", new Object[] {FIELD_ORDERLINE_SHIPPER}, null);
|
||||||
commit();
|
|
||||||
CacheMgt.get().reset();
|
CacheMgt.get().reset();
|
||||||
|
|
||||||
// Sales Order
|
// Sales Order
|
||||||
|
@ -253,6 +252,8 @@ public class GridTabTest extends AbstractTestCase {
|
||||||
assertTrue(gTab0.dataNew(false));
|
assertTrue(gTab0.dataNew(false));
|
||||||
assertTrue(gTab0.isNew(), "Grid Tab dataNew call not working as expected");
|
assertTrue(gTab0.isNew(), "Grid Tab dataNew call not working as expected");
|
||||||
gTab0.setValue(MOrder.COLUMNNAME_C_BPartner_ID, DictionaryIDs.C_BPartner.C_AND_W.id);
|
gTab0.setValue(MOrder.COLUMNNAME_C_BPartner_ID, DictionaryIDs.C_BPartner.C_AND_W.id);
|
||||||
|
gTab0.setValue(MOrder.COLUMNNAME_C_DocTypeTarget_ID, DictionaryIDs.C_DocType.STANDARD_ORDER.id);
|
||||||
|
gTab0.setValue(MOrder.COLUMNNAME_SalesRep_ID, DictionaryIDs.AD_User.GARDEN_USER.id);
|
||||||
assertTrue(gTab0.dataSave(true), CLogger.retrieveWarningString("Could not save order"));
|
assertTrue(gTab0.dataSave(true), CLogger.retrieveWarningString("Could not save order"));
|
||||||
|
|
||||||
GridTab gTab1 = gridWindow.getTab(1);
|
GridTab gTab1 = gridWindow.getTab(1);
|
||||||
|
@ -269,9 +270,7 @@ public class GridTabTest extends AbstractTestCase {
|
||||||
} finally {
|
} finally {
|
||||||
// rollback the work from the test
|
// rollback the work from the test
|
||||||
rollback();
|
rollback();
|
||||||
DB.executeUpdateEx("UPDATE AD_Field SET IsDisplayed=?, IsDisplayedGrid=? WHERE AD_Field_ID=?", new Object[] {displayOri, displayGridOri, FIELD_ORDERLINE_SHIPPER}, getTrxName());
|
DB.executeUpdateEx("UPDATE AD_Field SET IsDisplayed=?, IsDisplayedGrid=? WHERE AD_Field_ID=?", new Object[] {displayOri, displayGridOri, FIELD_ORDERLINE_SHIPPER}, null);
|
||||||
// commit the cleanup
|
|
||||||
commit();
|
|
||||||
CacheMgt.get().reset();
|
CacheMgt.get().reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue