/** * Get the measure according to the appropriate measure base. If the measure configured in store * is IN and it needs CM or vise versa then the appropriate calculation is done * * @param weight * @param store * @param base * @return */ public static double getMeasure(double measure, MerchantStore store, String base) { if (base.equals(MeasureUnit.IN.name())) { if (store.getSeizeunitcode().equals(MeasureUnit.IN.name())) { return new BigDecimal(String.valueOf(measure)) .setScale(2, BigDecimal.ROUND_HALF_UP) .doubleValue(); } else { // centimeter (inch to centimeter) double measureConstant = 2.54; double answer = measure * measureConstant; BigDecimal w = new BigDecimal(answer); return w.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); } } else { // need CM if (store.getSeizeunitcode().equals(MeasureUnit.CM.name())) { return new BigDecimal(String.valueOf(measure)).setScale(2).doubleValue(); } else { // in (centimeter to inch) double measureConstant = 0.39; double answer = measure * measureConstant; BigDecimal w = new BigDecimal(answer); return w.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); } } }