Ayarlar --> Otomasyon --> Komutlar --> Komut Ekle
Adı: NumFunctions
Denetimci: num
Komut:
//var unidades = ["", "un", "dos", "tres", "cuatro", "cinco", "seis", "siete", "ocho", "nueve", "diez", "once", "doce", "trece", "catorce", "quince", "dieciséis", "diecisiete", "dieciocho", "diecinueve", "veinte", "veintiún", "veintidós", "veintitrés", "veinticuatro", "veinticinco", "veintiséis", "veintisiete", "veintiocho", "veintinueve"];
var unidades = ["", "bir", "iki", "üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz", "on", "onbir", "oniki", "onüç", "ondört", "onbeş", "onaltı", "onyedi", "onsekiz", "ondokuz", "yirmi", "yirmibir", "yirmiiki", "yirmiüç", "yirmidört", "yirmibeş", "yirmialtı", "yirmiyedi", "yirmisekiz", "yirmidokuz"];
var decenas = ["", "", "", "otuz ", "kırk ", "elli ", "altmış ", "yetmiş ", "seksen ", "doksan "];
var centenas = ["", "yüz ", "ikiyüz ", "üçyüz ", "dörtyüz ", "beşyüz ", "altıyüz ", "yediyüz ", "sekizyüz ", "dokuzyüz "]
var ordenes = ["", " bin", " millones", " mil", " billones", " mil", " trillones", " mil", " cuatrillones", " mil"];
var gen = "num";
//var gen = "fem";
var digits = "0";
function numToSpanish(numToConvert,xr) {
xr = typeof(xr)==='undefined' || xr=='' ? 1 : xr;
numToConvert = Helper.ToNumber(numToConvert)/Number(xr);
//numToConvert = Math.round(numToConvert);
numToConvert = parseInt(numToConvert);
numToConvert = numToConvert.toString();
var numeral = "";
var numParts = chop(new String(numToConvert));
for (i = 0; i < numParts.length; i++)
numerator(numParts, i);
numeral += numParts.reverse().join(" ");
if (numeral.length == 0)
numeral = "cero";
if (/((llón)|(llones))\s*$/.test(numeral) && gen != "num")
numeral += " de";
if (gen == "fem")
numeral += (digits == "1 " ? " lempira" : " lempiras");
else if (gen == "mas")
numeral += (digits == "1 " ? " dólar" : " dólares");
if (gen != "num")
digits += (gen == "fem" ? "£" : "$");
//return digits + "
" + numeral;
numeral = numeral.toUpperCase();
return numeral;
}
function numerator(numParts, pos) {
var centena, decena, unidad, numeral;
centena = numParts[pos].charAt(0);
decena = numParts[pos].charAt(1);
unidad = numParts[pos].charAt(2);
if (parseInt(decena, 10) < 3)
numeral = new String(centenas[centena] + unidades[parseInt(decena + unidad, 10)]);
else
numeral = new String(centenas[centena] + decenas[decena] + unidades[unidad]);
switch (centena + decena + unidad) {
case "000":
if (ordenes[pos] != " mil" && numParts[pos + 1] != "000")
numeral += ordenes[pos];
break;
case "001":
numeral += ordenes[pos];
numeral = numeral.replace(/^un\smil$/, "mil");
if (pos == numParts.length - 1 || (pos < numParts.length - 1 && numParts[pos + 1] == "000"))
numeral = numeral.replace(/llones$/, "llón");
if (pos == 0 && gen != "mas")
numeral = (gen == "fem" ? "una" : "bir");
break;
case "100":
numeral = "yüz " + ordenes[pos];
break;
default:
numeral = numeral.replace(/@/g, ((gen == "fem" && pos < 2) ? "a" : "o"));
numeral = numeral.replace(/\sy\s$/, "");
numeral += ordenes[pos];
}
if (pos == 0 && gen != "mas") {
numeral = numeral.replace(/veintiún$/, (gen == "fem" ? "veintiuna" : "veintiuno"));
numeral = numeral.replace(/un$/, (gen == "fem" ? "una" : "bir"));
} else if (pos == 1 && gen == "fem") {
numeral = numeral.replace(/veintiún/, "veintiuna");
numeral = numeral.replace(/un\smil/, "una mil");
}
numParts[pos] = numeral;
}
function chop(numString) {
var numParts = new Array();
var numPart = 0;
var numDigits = 0;
numString = numString.replace(/\D*/g, "").replace(/^0*/, "");
if (numString == "")
numString = "0";
digits = "";
for (var i = numString.length; i > 0; i -= 3) {
numPart = numParts.push(numString.substring(i - 3, i));
digits = numParts[numPart - 1] + " " + digits;
}
numDigits = numParts[numPart - 1].length;
if (numDigits < 3)
numParts[numPart - 1] = (numDigits == 2 ? "0" : "00") + numParts[numPart - 1];
return numParts;
}
function padR(str,padChar,padLen) {
while (str.length < padLen)
str = str + padChar;
return str;
}
function cents(num,xr,dec) {
xr = typeof(xr)==='undefined' || xr=='' ? 1 : xr;
xr = Number(xr);
dec = typeof(dec)==='undefined' || dec=='' ? 6 : dec;
dec = Number(dec);
var div = Number(padR('1','0',dec-1)); // create our divider based on currency decimal places
num = Helper.ToNumber(num); // strip thousands separators
num = num/xr;
num = num.toString();
if (num.indexOf('.') > -1) {
num = num.substr(num.indexOf('.')+1); // get digits after decimal
} else {
num = '0'; // there are no digits after decimal
}
num = num.substr(0,dec); // use only supplied decimal places
num = padR(num,'0',dec); // ensure the number is as long as our currency decimal places by padding right with zeros
num = num/div;
num = Math.round(num);
num = num.toString();
//num = ('00' + num).slice(-2); // pad left with zeros
return num;
}
function toSpanish(num,xr,dec,format) {
xr = typeof(xr)==='undefined' || xr=='' ? 1 : xr;
xr = Number(xr);
dec = typeof(dec)==='undefined' || dec=='' ? 1 : dec;
dec = Number(dec);
format = typeof(format)==='undefined' || format=='' ? '' : format;
var leftPart = numToSpanish(num,xr);
var rightPart = cents(num,xr,dec);
var currency = xr==1 ? '' : 'Lempiras';
var ret = '';
switch (format) {
case 'text':
ret = leftPart + ' ' + currency + ' ' + numToSpanish(rightPart,1) + ' Centavos';
break;
default:
ret = leftPart + ' ' + currency + ' ' + ('' + rightPart).slice(-2) + '';
break;
}
return ret;
}
Kaydet
Ayarlar --> Yazdırma --> Yazıcı Şablonları
⇊ Kullandığınız şablonu açın ilgili yere ekleyin ⇊
<L00>{CALL:num.toSpanish('{TICKET TOTAL}')} LİRA
Bir milyon a kadar doğru yazar