details: https://code.openbravo.com/erp/devel/pi/rev/309ac3557a9f changeset: 30537:309ac3557a9f user: Alvaro Ferraz <alvaro.ferraz <at> openbravo.com> date: Mon Oct 24 19:56:29 2016 +0200 summary: Related to issue 34192: Code review improvements
Round order quantity to order uom standard precision. diffstat: src/org/openbravo/erpCommon/ad_forms/MaterialReceiptPending.java | 29 +++++---- 1 files changed, 16 insertions(+), 13 deletions(-) diffs (51 lines): diff -r c70a9fe71bff -r 309ac3557a9f src/org/openbravo/erpCommon/ad_forms/MaterialReceiptPending.java --- a/src/org/openbravo/erpCommon/ad_forms/MaterialReceiptPending.java Wed Oct 12 16:10:28 2016 -0400 +++ b/src/org/openbravo/erpCommon/ad_forms/MaterialReceiptPending.java Mon Oct 24 19:56:29 2016 +0200 @@ -394,31 +394,34 @@ if (new BigDecimal(dataLine[0].qtyordered).compareTo(new BigDecimal(strQtyordered)) == 0) { qtyorder = dataLine[0].quantityorder; } else { + UOM uom = OBDal.getInstance().get(UOM.class, dataLine[0].cUomId); + UOM orderUom = OBDal.getInstance().get(ProductUOM.class, dataLine[0].mProductUomId) + .getUOM(); + int stdPrecision = orderUom.getStandardPrecision().intValue(); + OBCriteria<UOMConversion> conversion = OBDal.getInstance().createCriteria( UOMConversion.class); - conversion.add(Restrictions.eq(UOMConversion.PROPERTY_UOM, - OBDal.getInstance().get(UOM.class, dataLine[0].cUomId))); - conversion.add(Restrictions.eq(UOMConversion.PROPERTY_TOUOM, - OBDal.getInstance().get(ProductUOM.class, dataLine[0].mProductUomId).getUOM())); + conversion.add(Restrictions.eq(UOMConversion.PROPERTY_UOM, uom)); + conversion.add(Restrictions.eq(UOMConversion.PROPERTY_TOUOM, orderUom)); + List<UOMConversion> conversionList = conversion.list(); + Boolean useDivideRateBy = false; - Boolean useDivideRateBy = false; // Inverting search of UOM conversion if conversion list is empty - if (conversion.list().size() == 0) { + if (conversionList.isEmpty()) { conversion = OBDal.getInstance().createCriteria(UOMConversion.class); - conversion.add(Restrictions.eq(UOMConversion.PROPERTY_UOM, - OBDal.getInstance().get(ProductUOM.class, dataLine[0].mProductUomId).getUOM())); - conversion.add(Restrictions.eq(UOMConversion.PROPERTY_TOUOM, OBDal.getInstance() - .get(UOM.class, dataLine[0].cUomId))); + conversion.add(Restrictions.eq(UOMConversion.PROPERTY_UOM, orderUom)); + conversion.add(Restrictions.eq(UOMConversion.PROPERTY_TOUOM, uom)); + conversionList = conversion.list(); useDivideRateBy = true; } - for (UOMConversion conv : conversion.list()) { + for (UOMConversion conv : conversionList) { if (!useDivideRateBy) { qtyorder = new BigDecimal(strQtyordered).multiply(conv.getMultipleRateBy()) - .toString(); + .setScale(stdPrecision, BigDecimal.ROUND_HALF_UP).toString(); } else { qtyorder = new BigDecimal(strQtyordered).multiply(conv.getDivideRateBy()) - .toString(); + .setScale(stdPrecision, BigDecimal.ROUND_HALF_UP).toString(); } } } ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Openbravo-commits mailing list Openbravo-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbravo-commits