From 4d96ac1f8e1a5f063c0383731b5fdd8528ee230d Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Thu, 10 Dec 2020 13:57:25 +0100 Subject: [PATCH] IDEMPIERE-4593 Error completing a Standard Sales Order with Shipper and Calculated Freight Cost Rule (#454) --- .../adempiere/process/SalesOrderRateInquiryProcess.java | 8 ++++++-- org.adempiere.base/src/org/compiere/model/MOrder.java | 4 +++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/org.adempiere.base/src/org/adempiere/process/SalesOrderRateInquiryProcess.java b/org.adempiere.base/src/org/adempiere/process/SalesOrderRateInquiryProcess.java index ad98f25900..4c961a9862 100644 --- a/org.adempiere.base/src/org/adempiere/process/SalesOrderRateInquiryProcess.java +++ b/org.adempiere.base/src/org/adempiere/process/SalesOrderRateInquiryProcess.java @@ -96,7 +96,9 @@ public class SalesOrderRateInquiryProcess extends SvrProcess else if (ol.getM_Product_ID() > 0) { MProduct product = new MProduct(getCtx(), ol.getM_Product_ID(), get_TrxName()); - + if (product.isService()) + continue; + BigDecimal weight = product.getWeight(); if (weight == null || weight.compareTo(BigDecimal.ZERO) == 0) throw new AdempiereException("No weight defined for product " + product.toString()); @@ -250,7 +252,9 @@ public class SalesOrderRateInquiryProcess extends SvrProcess else if (ol.getM_Product_ID() > 0) { MProduct product = new MProduct(ctx, ol.getM_Product_ID(), trxName); - + if (product.isService()) + continue; + BigDecimal weight = product.getWeight(); if (weight == null || weight.compareTo(BigDecimal.ZERO) == 0) throw new AdempiereException("No weight defined for product " + product.toString()); diff --git a/org.adempiere.base/src/org/compiere/model/MOrder.java b/org.adempiere.base/src/org/compiere/model/MOrder.java index 0041a6843a..2392413d49 100644 --- a/org.adempiere.base/src/org/compiere/model/MOrder.java +++ b/org.adempiere.base/src/org/compiere/model/MOrder.java @@ -1550,7 +1550,9 @@ public class MOrder extends X_C_Order implements DocAction else if (ol.getM_Product_ID() > 0) { MProduct product = new MProduct(getCtx(), ol.getM_Product_ID(), get_TrxName()); - + if (product.isService()) + continue; + BigDecimal weight = product.getWeight(); if (weight == null || weight.compareTo(BigDecimal.ZERO) == 0) {