PROCEDURE entero_a_letras(numero)
nEntero is int
nTemporal is int
sLetras is string
nEntero = numero
SWITCH nEntero
CASE 0 : sLetras = "CERO"
CASE 1 : sLetras = "UN"
CASE 2 : sLetras = "DOS"
CASE 3 : sLetras = "TRES"
CASE 4 : sLetras = "CUATRO"
CASE 5 : sLetras = "CINCO"
CASE 6 : sLetras = "SEIS"
CASE 7 : sLetras = "SIETE"
CASE 8 : sLetras = "OCHO"
CASE 9 : sLetras = "NUEVE"
CASE 10 : sLetras = "DIEZ"
CASE 11 : sLetras = "ONCE"
CASE 12 : sLetras = "DOCE"
CASE 13 : sLetras = "TRECE"
CASE 14 : sLetras = "CATORCE"
CASE 15 : sLetras = "QUINCE"
CASE < 20 : sLetras = "DIECI" + entero_a_letras(nEntero - 10)
CASE 20 : sLetras = "VEINTE"
CASE < 30 : sLetras = "VEINTI" + entero_a_letras(nEntero - 20)
CASE 30 : sLetras = "TREINTA"
CASE 40 : sLetras = "CUARENTA"
CASE 50 : sLetras = "CINCUENTA"
CASE 60 : sLetras = "SESENTA"
CASE 70 : sLetras = "SETENTA"
CASE 80 : sLetras = "OCHENTA"
CASE 90 : sLetras = "NOVENTA"
CASE < 100 :
nTemporal = nEntero / 10
nTemporal = nTemporal * 10
sLetras = entero_a_letras(nTemporal) + " Y " + entero_a_letras(nEntero-nTemporal)
CASE 100 : sLetras = "CIEN"
CASE < 200 : sLetras = "CIENTO " + entero_a_letras(nEntero - 100)
CASE 200, 300, 400, 600, 800 : sLetras = entero_a_letras(nEntero/100) + "CIENTOS"
CASE 500 : sLetras = "QUINIENTOS"
CASE 700 : sLetras = "SETECIENTOS"
CASE 900 : sLetras = "NOVECIENTOS"
CASE < 1000 :
nTemporal = nEntero / 100
nTemporal = nTemporal * 100
sLetras = entero_a_letras(nTemporal) + " " + entero_a_letras(nEntero-nTemporal)
CASE 1000 : sLetras = "MIL"
CASE < 2000 : sLetras = "MIL " + entero_a_letras(nEntero-1000)
CASE < 1000000 :
sLetras = entero_a_letras(nEntero/1000) + " MIL"
nTemporal = nEntero / 1000
nTemporal = nTemporal * 1000
nTemporal = nEntero - nTemporal
IF nTemporal < 1000 AND nTemporal > 0 THEN
sLetras = sLetras + " " + entero_a_letras(nTemporal)
END
CASE 1000000 : sLetras = "UN MILLON"
CASE < 2000000 : sLetras = "UN MILLON " + entero_a_letras(nEntero - 1000000)
CASE < 1000000000000 :
sLetras = entero_a_letras(nEntero/1000000) + " MILLONES"
nTemporal = nEntero / 1000000
nTemporal = nTemporal * 1000000
nTemporal = nEntero - nTemporal
IF nTemporal < 1000000 AND nTemporal > 0 THEN
sLetras = sLetras + " " + entero_a_letras(nTemporal)
END
END
RESULT sLetras
nEntero is int
nTemporal is int
sLetras is string
nEntero = numero
SWITCH nEntero
CASE 0 : sLetras = "CERO"
CASE 1 : sLetras = "UN"
CASE 2 : sLetras = "DOS"
CASE 3 : sLetras = "TRES"
CASE 4 : sLetras = "CUATRO"
CASE 5 : sLetras = "CINCO"
CASE 6 : sLetras = "SEIS"
CASE 7 : sLetras = "SIETE"
CASE 8 : sLetras = "OCHO"
CASE 9 : sLetras = "NUEVE"
CASE 10 : sLetras = "DIEZ"
CASE 11 : sLetras = "ONCE"
CASE 12 : sLetras = "DOCE"
CASE 13 : sLetras = "TRECE"
CASE 14 : sLetras = "CATORCE"
CASE 15 : sLetras = "QUINCE"
CASE < 20 : sLetras = "DIECI" + entero_a_letras(nEntero - 10)
CASE 20 : sLetras = "VEINTE"
CASE < 30 : sLetras = "VEINTI" + entero_a_letras(nEntero - 20)
CASE 30 : sLetras = "TREINTA"
CASE 40 : sLetras = "CUARENTA"
CASE 50 : sLetras = "CINCUENTA"
CASE 60 : sLetras = "SESENTA"
CASE 70 : sLetras = "SETENTA"
CASE 80 : sLetras = "OCHENTA"
CASE 90 : sLetras = "NOVENTA"
CASE < 100 :
nTemporal = nEntero / 10
nTemporal = nTemporal * 10
sLetras = entero_a_letras(nTemporal) + " Y " + entero_a_letras(nEntero-nTemporal)
CASE 100 : sLetras = "CIEN"
CASE < 200 : sLetras = "CIENTO " + entero_a_letras(nEntero - 100)
CASE 200, 300, 400, 600, 800 : sLetras = entero_a_letras(nEntero/100) + "CIENTOS"
CASE 500 : sLetras = "QUINIENTOS"
CASE 700 : sLetras = "SETECIENTOS"
CASE 900 : sLetras = "NOVECIENTOS"
CASE < 1000 :
nTemporal = nEntero / 100
nTemporal = nTemporal * 100
sLetras = entero_a_letras(nTemporal) + " " + entero_a_letras(nEntero-nTemporal)
CASE 1000 : sLetras = "MIL"
CASE < 2000 : sLetras = "MIL " + entero_a_letras(nEntero-1000)
CASE < 1000000 :
sLetras = entero_a_letras(nEntero/1000) + " MIL"
nTemporal = nEntero / 1000
nTemporal = nTemporal * 1000
nTemporal = nEntero - nTemporal
IF nTemporal < 1000 AND nTemporal > 0 THEN
sLetras = sLetras + " " + entero_a_letras(nTemporal)
END
CASE 1000000 : sLetras = "UN MILLON"
CASE < 2000000 : sLetras = "UN MILLON " + entero_a_letras(nEntero - 1000000)
CASE < 1000000000000 :
sLetras = entero_a_letras(nEntero/1000000) + " MILLONES"
nTemporal = nEntero / 1000000
nTemporal = nTemporal * 1000000
nTemporal = nEntero - nTemporal
IF nTemporal < 1000000 AND nTemporal > 0 THEN
sLetras = sLetras + " " + entero_a_letras(nTemporal)
END
END
RESULT sLetras
PROCEDURE centavos_a_letras(numero)
sCentavos is string
xDecimales is numeric
xDecimales = DecimalPart(numero)
xDecimales = xDecimales * 100
IF xDecimales = 0 THEN
sCentavos = " PESOS 00/100 M.N."
ELSE
IF xDecimales < 10 THEN
sCentavos = " PESOS 0" + xDecimales + "/100 M.N."
ELSE
sCentavos = " PESOS " + xDecimales + "/100 M.N."
END
END
RESULT sCentavos