IDEMPIERE-5066 Order Line Create Production not visible in the process toolbar dropdown (#1021)
This commit is contained in:
parent
f0404dad68
commit
7b1c9322f9
|
@ -135,7 +135,15 @@ public class DefaultEvaluatee implements Evaluatee {
|
||||||
{
|
{
|
||||||
po = s_ReferenceCache.get(key);
|
po = s_ReferenceCache.get(key);
|
||||||
if (po != null && po.get_ID() == id)
|
if (po != null && po.get_ID() == id)
|
||||||
refValue = po.get_ValueAsString(foreignColumn);
|
{
|
||||||
|
Object value = po.get_Value(foreignColumn);
|
||||||
|
if (value == null)
|
||||||
|
refValue = "";
|
||||||
|
else if (value instanceof Boolean)
|
||||||
|
refValue = (Boolean)value ? "Y" : "N";
|
||||||
|
else
|
||||||
|
refValue = value.toString();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
po = null;
|
po = null;
|
||||||
}
|
}
|
||||||
|
@ -145,7 +153,13 @@ public class DefaultEvaluatee implements Evaluatee {
|
||||||
if (po != null && po.get_ID() == id)
|
if (po != null && po.get_ID() == id)
|
||||||
{
|
{
|
||||||
s_ReferenceCache.put(key, po);
|
s_ReferenceCache.put(key, po);
|
||||||
refValue = po.get_ValueAsString(foreignColumn);
|
Object value = po.get_Value(foreignColumn);
|
||||||
|
if (value == null)
|
||||||
|
refValue = "";
|
||||||
|
else if (value instanceof Boolean)
|
||||||
|
refValue = (Boolean)value ? "Y" : "N";
|
||||||
|
else
|
||||||
|
refValue = value.toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return refValue;
|
return refValue;
|
||||||
|
|
|
@ -42,6 +42,7 @@ import org.compiere.model.MTable;
|
||||||
import org.compiere.model.PO;
|
import org.compiere.model.PO;
|
||||||
import org.compiere.model.Query;
|
import org.compiere.model.Query;
|
||||||
import org.compiere.util.DB;
|
import org.compiere.util.DB;
|
||||||
|
import org.compiere.util.DefaultEvaluatee;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
import org.compiere.util.Evaluatee;
|
import org.compiere.util.Evaluatee;
|
||||||
import org.compiere.util.LegacyLogicEvaluator;
|
import org.compiere.util.LegacyLogicEvaluator;
|
||||||
|
@ -574,6 +575,25 @@ public class LogicExpressionTest extends AbstractTestCase {
|
||||||
assertTrue(LegacyLogicEvaluator.evaluateLogic(evaluatee, expr));
|
assertTrue(LegacyLogicEvaluator.evaluateLogic(evaluatee, expr));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testNestedProperty() {
|
||||||
|
String expr = "@Processed@=Y & @M_Product_ID.IsBOM@=Y";
|
||||||
|
Env.setContext(Env.getCtx(), 1, "Processed", (String)null);
|
||||||
|
assertFalse(LegacyLogicEvaluator.evaluateLogic(new DefaultEvaluatee(null, 1, 0), expr));
|
||||||
|
|
||||||
|
int pchair = 133;
|
||||||
|
Env.setContext(Env.getCtx(), 1, "Processed", "Y");
|
||||||
|
Env.setContext(Env.getCtx(), 1, "M_Product_ID", pchair);
|
||||||
|
assertTrue(LegacyLogicEvaluator.evaluateLogic(new DefaultEvaluatee(null, 1, 0), expr));
|
||||||
|
|
||||||
|
Env.setContext(Env.getCtx(), 1, "Processed", (String)null);
|
||||||
|
assertFalse(LogicEvaluator.evaluateLogic(new DefaultEvaluatee(null, 1, 0), expr));
|
||||||
|
|
||||||
|
Env.setContext(Env.getCtx(), 1, "Processed", "Y");
|
||||||
|
Env.setContext(Env.getCtx(), 1, "M_Product_ID", pchair);
|
||||||
|
assertTrue(LogicEvaluator.evaluateLogic(new DefaultEvaluatee(null, 1, 0), expr));
|
||||||
|
}
|
||||||
|
|
||||||
private static class ContextEvaluatee implements Evaluatee {
|
private static class ContextEvaluatee implements Evaluatee {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue