UNPKG

@vigilio/numeros-a-letras

Version:

Convert numbers a letters customizable - spanish

200 lines 6.71 kB
function Unidades(num) { switch (num) { case 1: return "UN"; case 2: return "DOS"; case 3: return "TRES"; case 4: return "CUATRO"; case 5: return "CINCO"; case 6: return "SEIS"; case 7: return "SIETE"; case 8: return "OCHO"; case 9: return "NUEVE"; } return ""; } //Unidades() function Decenas(num) { var decena = Math.floor(num / 10); var unidad = num - decena * 10; switch (decena) { case 1: switch (unidad) { case 0: return "DIEZ"; case 1: return "ONCE"; case 2: return "DOCE"; case 3: return "TRECE"; case 4: return "CATORCE"; case 5: return "QUINCE"; default: return "DIECI" + Unidades(unidad); } case 2: switch (unidad) { case 0: return "VEINTE"; default: return "VEINTI" + Unidades(unidad); } case 3: return DecenasY("TREINTA", unidad); case 4: return DecenasY("CUARENTA", unidad); case 5: return DecenasY("CINCUENTA", unidad); case 6: return DecenasY("SESENTA", unidad); case 7: return DecenasY("SETENTA", unidad); case 8: return DecenasY("OCHENTA", unidad); case 9: return DecenasY("NOVENTA", unidad); case 0: return Unidades(unidad); } } //Unidades() function DecenasY(strSin, numUnidades) { if (numUnidades > 0) return strSin + " Y " + Unidades(numUnidades); return strSin; } //DecenasY() function Centenas(num) { var centenas = Math.floor(num / 100); var decenas = num - centenas * 100; switch (centenas) { case 1: if (decenas > 0) return "CIENTO " + Decenas(decenas); return "CIEN"; case 2: return "DOSCIENTOS " + Decenas(decenas); case 3: return "TRESCIENTOS " + Decenas(decenas); case 4: return "CUATROCIENTOS " + Decenas(decenas); case 5: return "QUINIENTOS " + Decenas(decenas); case 6: return "SEISCIENTOS " + Decenas(decenas); case 7: return "SETECIENTOS " + Decenas(decenas); case 8: return "OCHOCIENTOS " + Decenas(decenas); case 9: return "NOVECIENTO " + Decenas(decenas); } return Decenas(decenas); } //Centenas() function Seccion(num, divisor, strSingular, strPlural) { var cientos = Math.floor(num / divisor); var resto = num - cientos * divisor; var letras = ""; if (cientos > 0) if (cientos > 1) letras = Centenas(cientos) + " " + strPlural; else letras = strSingular; if (resto > 0) letras += ""; return letras; } //Seccion() function Miles(num) { var divisor = 1000; var cientos = Math.floor(num / divisor); var resto = num - cientos * divisor; var strMiles = Seccion(num, divisor, "UN MIL", "MIL"); var strCentenas = Centenas(resto); if (strMiles == "") return strCentenas; return strMiles + " " + strCentenas; } //Miles() function Millones(num) { var divisor = 1000000; var cientos = Math.floor(num / divisor); var resto = num - cientos * divisor; var strMillones = Seccion(num, divisor, "UN MILLON DE", "MILLONES DE"); var strMiles = Miles(resto); if (strMillones == "") return strMiles; return strMillones + " " + strMiles; } //Millones() /** * * @param num * @param moneda - {singural: sol, plural: soles,centSingular:CENTIMOS,centPlural:CENTIMO} * @param isFactura -boolean true: 20/100 * @returns */ function numeroALetras(num, isMoney, moneda) { if (isMoney === void 0) { isMoney = false; } var _a = moneda || { Monedasingular: "SOLES", Monedaplural: "SOL", centSingular: "CENTIMO", centPlural: "CENTIMOS", isInvoice: false, }, _b = _a.Monedaplural, Monedaplural = _b === void 0 ? "SOLES" : _b, _c = _a.Monedasingular, Monedasingular = _c === void 0 ? "SOL" : _c, _d = _a.centPlural, centPlural = _d === void 0 ? "CENTIMOS" : _d, _e = _a.centSingular, centSingular = _e === void 0 ? "CENTIMO" : _e, _f = _a.isInvoice, isInvoice = _f === void 0 ? false : _f; var data = { numero: num, enteros: Math.floor(num), centavos: Math.round(num * 100) - Math.floor(num) * 100, letrasCentavos: "", letrasMonedaPlural: isMoney ? Monedaplural : "", //"PESOS", 'Dólares', 'Bolívares', 'etcs' letrasMonedaSingular: isMoney ? Monedasingular : "", //"PESO", 'Dólar', 'Bolivar', 'etc' letrasMonedaCentavoPlural: isMoney ? centPlural : "", letrasMonedaCentavoSingular: isMoney ? centSingular : "", }; if (data.centavos > 0) data.letrasCentavos = "".concat(isInvoice ? " " : "CON ").concat((function () { if (data.centavos > 9) return isInvoice ? data.centavos + "/100 " + data.letrasMonedaPlural : Millones(data.centavos) + " " + data.letrasMonedaCentavoSingular; else return isInvoice ? "0" + data.centavos + "/100 " + data.letrasMonedaPlural : Millones(data.centavos) + " " + data.letrasMonedaCentavoPlural; })()); var resultado; if (data.enteros == 0) resultado = isInvoice ? "CERO" + data.letrasCentavos : "CERO " + data.letrasMonedaPlural + " " + data.letrasCentavos; if (data.enteros == 1) resultado = isInvoice ? Millones(data.enteros) + data.letrasCentavos : Millones(data.enteros) + " " + data.letrasMonedaSingular + " " + data.letrasCentavos; else resultado = isInvoice ? Millones(data.enteros) + data.letrasCentavos : Millones(data.enteros) + " " + data.letrasMonedaPlural + " " + data.letrasCentavos; return resultado.replaceAll(" ", " "); } export default numeroALetras; //# sourceMappingURL=index.js.map