package com.rjconsultores.ventaboletos.utilerias;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Locale;

import org.apache.commons.lang.StringUtils;

/**
 * 
 * @author Wilian
 *
 */
public class BigDecimalUtil {

	public static BigDecimal getStringToBigDecimal(String value, Locale locale) throws ParseException {
		if(value != null && StringUtils.isNotBlank(value)) {
			NumberFormat nf = NumberFormat.getInstance(locale);
			return new BigDecimal(nf.parse(value).toString());
		}
		
		return null;
	}
	
	public static String getBigDecimalToStringDouble2CasasDecimaisFormatado(BigDecimal value, Locale locale) {
		if(value != null) {
			NumberFormat nf = NumberFormat.getInstance(locale);
			nf.setMinimumFractionDigits(2);
			nf.setMaximumFractionDigits(2);
			nf.setRoundingMode(RoundingMode.HALF_UP);
			return nf.format(value.doubleValue());
		}
		
		return null;
	}
	
	public static BigDecimal getStringToBigDecimal(String value, int qtdeCasasDecimais, Locale locale) throws ParseException {
		if(value != null && StringUtils.isNotBlank(value)) {
			DecimalFormat df = (DecimalFormat) NumberFormat.getInstance(locale);
			df.setMinimumFractionDigits(qtdeCasasDecimais);
			df.setMaximumFractionDigits(qtdeCasasDecimais);
			value = value.substring(0, value.length() - qtdeCasasDecimais).concat(df.getDecimalFormatSymbols().getDecimalSeparator()+"").concat(value.substring(value.length() - qtdeCasasDecimais, value.length()));
			return new BigDecimal(df.parse(value).toString());
		}
		
		return null;
	}
	
}
