package com.salesmanager.core.business.utils; import java.math.BigDecimal; import com.salesmanager.core.constants.MeasureUnit; import com.salesmanager.core.model.merchant.MerchantStore; public class DataUtils { /** * Removes dashes * @param postalCode * @return */ public static String trimPostalCode(String postalCode) { String pc = postalCode.replaceAll("[^a-zA-Z0-9]", ""); return pc; } /** * Get the measure according to the appropriate measure base. If the measure * configured in store is LB and it needs KG then the appropriate * calculation is done * * @param weight * @param store * @param base * @return */ public static double getWeight(double weight, MerchantStore store, String base) { double weightConstant = 2.2; if (base.equals(MeasureUnit.LB.name())) { if (store.getWeightunitcode().equals(MeasureUnit.LB.name())) { return new BigDecimal(String.valueOf(weight)).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); } else {// pound = kilogram double answer = weight * weightConstant; BigDecimal w = new BigDecimal(answer); return w.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); } } else {// need KG if (store.getWeightunitcode().equals(MeasureUnit.KG.name())) { return new BigDecimal(String.valueOf(weight)).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); } else { double answer = weight / weightConstant; BigDecimal w = new BigDecimal(answer); return w.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); } } } /** * 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(); } } } }