/*
* Copyright 2014 - LAit SpA
*				 Realizzato da Icona Management srl su commessa LAit SpA
* Copyright 2015- LAit SpA
*                                                  Aggiornato da LAit SpA
*
* Concesso in licenza a norma dell'EUPL, versione 1.1 o
* successive dell'EUPL (la "Licenza")– non appena saranno
* approvate dalla Commissione europea;
* Non è possibile utilizzare l'opera salvo nel rispetto della Licenza.
* È possibile ottenere una copia della Licenza al seguente indirizzo:
*
* http://ec.europa.eu/idabc/eupl
*
* Salvo diversamente indicato dalla legge applicabile o
* concordato per iscritto, il software distribuito secondo
* i termini della Licenza è distribuito "TAL QUALE",
* SENZA GARANZIE O CONDIZIONI DI ALCUN TIPO,
* esplicite o implicite.
* Si veda la Licenza per la lingua specifica che disciplina
* le autorizzazioni e le limitazioni secondo i termini della
* Licenza.
*/
/**
 * 
 */
package it.laitspa.cpf.util.misc;

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.text.ParseException;

/**
 * @author Dario
 * 
 */
public class DecimalUtils
{
  protected static DecimalFormat df;
  protected static DecimalFormat df2;
  
  static
  {
    DecimalFormatSymbols dfs = new DecimalFormatSymbols();
    dfs.setDecimalSeparator(',');
    df = new DecimalFormat("0.###", dfs);
    df2 = new DecimalFormat("0.##", dfs);
  }
  
  public static BigDecimal parse(String s) 
  {
    if(FormUtils.isEmpty(s))
      return null;

    // return new BigDecimal(s);
    try
    {
      return new BigDecimal(df.parse(s).doubleValue());
    }
    catch(ParseException e)
    {
      return null;
    }
  }
  
  public static String toString(BigDecimal bd, boolean twoDecimal)
  {
    if(bd == null)
      return "";
    
    if (twoDecimal)
      return df2.format(bd.doubleValue());
    else
      return df.format(bd.doubleValue());
  }
  
  public static String toString(BigDecimal bd)
  {   
    return toString(bd, false);
  }
}
