From 4f6b718ab1f80a5051653a76c034d2cc500a5117 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Wed, 14 Jun 2023 10:30:49 +0200 Subject: [PATCH] IDEMPIERE-5560 Cannot save Material Receipt after filling Order if the User1_ID field is not displayed (#1896) --- .../src/org/compiere/model/GridTab.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/org.adempiere.base/src/org/compiere/model/GridTab.java b/org.adempiere.base/src/org/compiere/model/GridTab.java index 8154608491..2e3e0ce8b6 100644 --- a/org.adempiere.base/src/org/compiere/model/GridTab.java +++ b/org.adempiere.base/src/org/compiere/model/GridTab.java @@ -2769,8 +2769,15 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable if (log.isLoggable(Level.FINE)) log.fine(field.getColumnName() + "=" + value + " - Row=" + m_currentRow); - if (DisplayType.isID(field.getDisplayType()) && value instanceof Integer && ((Integer)value).intValue() < 0) - value = null; + if (value instanceof Integer) { + if (((Integer)value).intValue() < 0 && DisplayType.isID(field.getDisplayType())) { + value = null; + } else if (((Integer)value).intValue() == 0 && field.isLookup()) { + MColumn column = MColumn.get(field.getAD_Column_ID()); + if (! MTable.isZeroIDTable(column.getReferenceTableName())) + value = null; + } + } int col = m_mTable.findColumn(field.getColumnName()); m_mTable.setValueAt(value, m_currentRow, col, false);