You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.7 KiB
73 lines
1.7 KiB
package;
|
|
import Common;
|
|
|
|
/**
|
|
* Formatting tools used on both client and server side.
|
|
*
|
|
* @author fbarbut
|
|
*/
|
|
class Formatting
|
|
{
|
|
|
|
/** smart quantity filter : display easier-to-read quantity when it's floats
|
|
*
|
|
* 0.33 x Lemon 12kg => 2kg Lemon
|
|
*/
|
|
public static function smartQt(orderQt:Float,productQt:Float,unit:Unit):String{
|
|
return formatNum(orderQt * productQt) + " " + Formatting.unit(unit);
|
|
}
|
|
|
|
public static function formatNum(n:Float):String {
|
|
if (n == null) return "";
|
|
|
|
//arrondi a 2 apres virgule
|
|
var out = Std.string(roundTo(n, 2));
|
|
|
|
//ajout un zéro, 1,8-->1,80
|
|
if (out.indexOf(".")!=-1 && out.split(".")[1].length == 1) out = out +"0";
|
|
|
|
//virgule et pas point
|
|
return out.split(".").join(",");
|
|
}
|
|
|
|
|
|
/**
|
|
* Round a number to r digits after coma.
|
|
*/
|
|
public static function roundTo(n:Float, r:Int):Float {
|
|
return Math.round(n * Math.pow(10,r)) / Math.pow(10,r) ;
|
|
}
|
|
|
|
public static function parseFloat(s:String):Float{
|
|
if(s.indexOf(",")>0){
|
|
return Std.parseFloat(StringTools.replace(s,",","."));
|
|
}else{
|
|
return Std.parseFloat(s);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Display a unit
|
|
* @param u -
|
|
*/
|
|
public static function unit(u:Unit):String{
|
|
/*t = sugoi.i18n.Locale.texts;
|
|
if(u==null) return t._("piece||unit of a product)");
|
|
return switch(u){
|
|
case Kilogram: t._("Kg.||kilogramms");
|
|
case Gram: t._("g.||gramms");
|
|
case Piece: t._("piece||unit of a product)");
|
|
case Litre: t._("L.||liter");
|
|
case Centilitre: t._("cl.||centiliter");
|
|
}*/
|
|
if(u==null) return "pièce(s)";
|
|
return switch(u){
|
|
case Kilogram: "Kg.";
|
|
case Gram: "g.";
|
|
case Piece: "pièce(s)";
|
|
case Litre: "L.";
|
|
case Centilitre:"cl.";
|
|
}
|
|
|
|
}
|
|
}
|