Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
mx.emite.sdk.NU Maven / Gradle / Ivy
package mx.emite.sdk;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.math.MathContext;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.text.Format;
import java.text.NumberFormat;
import java.util.Locale;
import org.apache.log4j.Logger;
public class NU {
public final static Locale local = new Locale("es","MX");
public final static RoundingMode redondeo = RoundingMode.HALF_EVEN;
public final static MathContext MC = new MathContext(10, redondeo);
private final Logger log = Logger.getLogger(NU.class);
//dateTimeFormat = new SimpleDateFormat
//cardDateFormat = new SimpleDateFormat("MMyyyy");
private NumberUtilCache Cache = new NumberUtilCache();
private enum Tipos{
TIPO_DINERO,DOUBLE,ENTERO,MONTO, CODIGOBARRAS
}
public enum NumeroFormatos{
DINERO(Tipos.TIPO_DINERO,2),
DOSDECIMALES(Tipos.DOUBLE,2),
ENTERO5(Tipos.ENTERO,5),
ENTERO7(Tipos.ENTERO,5),
LONG(Tipos.ENTERO,7),
SINDECIMALES(Tipos.DOUBLE,0),
DINEROSINDECIMALES(Tipos.TIPO_DINERO,0),
MONTO(Tipos.MONTO,3),
CANTIDAD5DECIMALES(Tipos.MONTO,5),
CANTIDAD10DECIMALES(Tipos.MONTO,10),
PORCENTAJE(Tipos.MONTO,2),
CODIGOBARRAS(Tipos.CODIGOBARRAS,0),
ENTERO3(Tipos.ENTERO,3),
CANTIDAD8DECIMALES(Tipos.MONTO,8),
CINCODECIMALES(Tipos.DOUBLE,5);
;
//private SimpleDateFormat dftc = new SimpleDateFormat("dd/MM/yy HH:mm");
//private SimpleDateFormat dft = new SimpleDateFormat();
//private SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
//private SimpleDateFormat dfc = new SimpleDateFormat("dd/MM/yy");
//private SimpleDateFormat dfcfdi = new SimpleDateFormat("yyyy-MM-dd");
//private SimpleDateFormat dfmini = new SimpleDateFormat("dd/MM");
//private SimpleDateFormat dftarde = new SimpleDateFormat("aa");
private final Tipos tipo;
private final int decimales;
NumeroFormatos(Tipos tipo){
this(tipo,2);
}
NumeroFormatos(Tipos tipo,int decimales){
this.tipo=tipo;
this.decimales=decimales;
}
public Format getFormato(){
switch(tipo){
case TIPO_DINERO: return NumberFormat.getCurrencyInstance(local);
case DOUBLE: NumberFormat res = NumberFormat.getInstance(local);
res.setMinimumFractionDigits(decimales);
res.setMaximumFractionDigits(decimales);
res.setGroupingUsed(false);
return res;
case ENTERO: return new DecimalFormat(getCeros(decimales));
case MONTO: NumberFormat mf = NumberFormat.getInstance(local);
mf.setMinimumFractionDigits(2);
mf.setMaximumFractionDigits(decimales);
mf.setGroupingUsed(false);
return mf;
case CODIGOBARRAS: return new DecimalFormat("0000000000.000000",new DecimalFormatSymbols(local));
}
return null;
}
public String getValorFormato() {
String res="";
for(int x=0;x T nvl(T a, T b) {
return (a == null) ? b : a;
}
public static BigDecimal montoimpuesto(BigDecimal subtotal, BigDecimal tasa) {
if(subtotal!=null&&tasa!=null){
BigDecimal monto = subtotal;
monto = monto.multiply(tasa);
monto = monto.divide(new BigDecimal(100),3,redondeo);
return monto;
}
return BigDecimal.ZERO;
}
public static int comparaNumeros(final Number x, final Number y) {
if(isSpecial(x) || isSpecial(y))
return Double.compare(x.doubleValue(), y.doubleValue());
else
return toBigDecimal(x).compareTo(toBigDecimal(y));
}
private static boolean isSpecial(final Number x) {
boolean specialDouble = x instanceof Double
&& (Double.isNaN((Double) x) || Double.isInfinite((Double) x));
boolean specialFloat = x instanceof Float
&& (Float.isNaN((Float) x) || Float.isInfinite((Float) x));
return specialDouble || specialFloat;
}
private static BigDecimal toBigDecimal(final Number number) {
if(number instanceof BigDecimal)
return (BigDecimal) number;
if(number instanceof BigInteger)
return new BigDecimal((BigInteger) number);
if(number instanceof Byte || number instanceof Short
|| number instanceof Integer || number instanceof Long)
return new BigDecimal(number.longValue());
if(number instanceof Float || number instanceof Double)
return new BigDecimal(number.doubleValue());
try {
return new BigDecimal(number.toString());
} catch(final NumberFormatException e) {
throw new RuntimeException("The given number (\"" + number
+ "\" of class " + number.getClass().getName()
+ ") does not have a parsable string representation", e);
}
}
/*public void main(String[] args){
final BigDecimal factor = divide(BigDecimal.valueOf(9.2),BigDecimal.valueOf(100),3);
final BigDecimal tasa = divide(BigDecimal.valueOf(16),BigDecimal.valueOf(100),2);//,3,RoundingMode.HALF_UP);
BigDecimal primaNeta = new BigDecimal(15622.99);
BigDecimal derechos = new BigDecimal(450);
BigDecimal recargos = multiplica(primaNeta,factor,2);
BigDecimal impuestos = multiplica(primaNeta.add(derechos).add(recargos),tasa,2);
//BigDecimal tasa=solicitada.tasa;
BigDecimal primaTotal=primaNeta.add( derechos).add( recargos).add( impuestos);
//BigDecimal id_Frecuencia_Cobro=frecuencia.getId_Frecuencia_Cobro();
System.out.print(primaTotal);
}*/
}