c3sarin Posted January 9, 2007 Report Share Posted January 9, 2007 (edited) Esta funcion pasa una cifra a su equivalente en letras.. La pueden encontrar por google, pero tiene errores, pues con ciertas cifras habia problemas. Pero acá está sin problemas... Yo las uso en un sistema de ventas, ya que en las facturas tiene que salir el total en letras... Si la van a ocupar por lo menos den las gracias.. En una de esas les tiro otras funciones.... -------------------------------- <?php /* Funcion para pasar las cifras a letras, se usa en las facturas, pues debe salir el total en letras, y en otras ocasiones más... */ function centimos() { global $importe_parcial; // $importe_parcial = number_format($importe_parcial, 2, ".", "") * 100; // if ($importe_parcial > 0) $num_letra = " con ".decena_centimos($importe_parcial); else $num_letra = ""; // return $num_letra; } // function unidad_centimos($numero) { switch ($numero) { case 9: { $num_letra = "nueve céntimos"; break; } case 8: { $num_letra = "ocho céntimos"; break; } case 7: { $num_letra = "siete céntimos"; break; } case 6: { $num_letra = "seis céntimos"; break; } case 5: { $num_letra = "cinco céntimos"; break; } case 4: { $num_letra = "cuatro céntimos"; break; } case 3: { $num_letra = "tres céntimos"; break; } case 2: { $num_letra = "dos céntimos"; break; } case 1: { $num_letra = "un céntimo"; break; } } return $num_letra; } // function decena_centimos($numero) { if ($numero >= 10) { if ($numero >= 90 && $numero <= 99) { if ($numero == 90) return "noventa céntimos"; else if ($numero == 91) return "noventa y un céntimos"; else return "noventa y ".unidad_centimos($numero - 90); } if ($numero >= 80 && $numero <= 89) { if ($numero == 80) return "ochenta céntimos"; else if ($numero == 81) return "ochenta y un céntimos"; else return "ochenta y ".unidad_centimos($numero - 80); } if ($numero >= 70 && $numero <= 79) { if ($numero == 70) return "setenta céntimos"; else if ($numero == 71) return "setenta y un céntimos"; else return "setenta y ".unidad_centimos($numero - 70); } if ($numero >= 60 && $numero <= 69) { if ($numero == 60) return "sesenta céntimos"; else if ($numero == 61) return "sesenta y un céntimos"; else return "sesenta y ".unidad_centimos($numero - 60); } if ($numero >= 50 && $numero <= 59) { if ($numero == 50) return "cincuenta céntimos"; else if ($numero == 51) return "cincuenta y un céntimos"; else return "cincuenta y ".unidad_centimos($numero - 50); } if ($numero >= 40 && $numero <= 49) { if ($numero == 40) return "cuarenta céntimos"; else if ($numero == 41) return "cuarenta y un céntimos"; else return "cuarenta y ".unidad_centimos($numero - 40); } if ($numero >= 30 && $numero <= 39) { if ($numero == 30) return "treinta céntimos"; else if ($numero == 91) return "treinta y un céntimos"; else return "treinta y ".unidad_centimos($numero - 30); } if ($numero >= 20 && $numero <= 29) { if ($numero == 20) return "veinte céntimos"; else if ($numero == 21) return "veintiun céntimos"; else return "veinti".unidad_centimos($numero - 20); } if ($numero >= 10 && $numero <= 19) { if ($numero == 10) return "diez céntimos"; else if ($numero == 11) return "once céntimos"; else if ($numero == 11) return "doce céntimos"; else if ($numero == 11) return "trece céntimos"; else if ($numero == 11) return "catorce céntimos"; else if ($numero == 11) return "quince céntimos"; else if ($numero == 11) return "dieciseis céntimos"; else if ($numero == 11) return "diecisiete céntimos"; else if ($numero == 11) return "dieciocho céntimos"; else if ($numero == 11) return "diecinueve céntimos"; } } else return unidad_centimos($numero); } // function unidad($numero) { switch ($numero) { case 9: { $num = "nueve"; break; } case 8: { $num = "ocho"; break; } case 7: { $num = "siete"; break; } case 6: { $num = "seis"; break; } case 5: { $num = "cinco"; break; } case 4: { $num = "cuatro"; break; } case 3: { $num = "tres"; break; } case 2: { $num = "dos"; break; } case 1: { $num = "uno"; break; } } return $num; } // function decena($numero) { if ($numero >= 90 && $numero <= 99) { $num_letra = "noventa "; // if ($numero > 90) $num_letra = $num_letra."y ".unidad($numero - 90); } else if ($numero >= 80 && $numero <= 89) { $num_letra = "ochenta "; // if ($numero > 80) $num_letra = $num_letra."y ".unidad($numero - 80); } else if ($numero >= 70 && $numero <= 79) { $num_letra = "setenta "; // if ($numero > 70) $num_letra = $num_letra."y ".unidad($numero - 70); } else if ($numero >= 60 && $numero <= 69) { $num_letra = "sesenta "; // if ($numero > 60) $num_letra = $num_letra."y ".unidad($numero - 60); } else if ($numero >= 50 && $numero <= 59) { $num_letra = "cincuenta "; // if ($numero > 50) $num_letra = $num_letra."y ".unidad($numero - 50); } else if ($numero >= 40 && $numero <= 49) { $num_letra = "cuarenta "; // if ($numero > 40) $num_letra = $num_letra."y ".unidad($numero - 40); } else if ($numero >= 30 && $numero <= 39) { $num_letra = "treinta "; // if ($numero > 30) $num_letra = $num_letra."y ".unidad($numero - 30); } else if ($numero >= 20 && $numero <= 29) { if ($numero == 20) $num_letra = "veinte "; else $num_letra = "veinti".unidad($numero - 20); } else if ($numero >= 10 && $numero <= 19) { switch ($numero) { case 10: { $num_letra = "diez "; break; } case 11: { $num_letra = "once "; break; } case 12: { $num_letra = "doce "; break; } case 13: { $num_letra = "trece "; break; } case 14: { $num_letra = "catorce "; break; } case 15: { $num_letra = "quince "; break; } case 16: { $num_letra = "dieciseis "; break; } case 17: { $num_letra = "diecisiete "; break; } case 18: { $num_letra = "dieciocho "; break; } case 19: { $num_letra = "diecinueve "; break; } } } else $num_letra = unidad($numero); // return $num_letra; } // function centena($numero) { if ($numero >= 100) { if ($numero >= 900 & $numero <= 999) { $num_letra = "novecientos "; // if ($numero > 900) $num_letra = $num_letra.decena($numero - 900); } else if ($numero >= 800 && $numero <= 899) { $num_letra = "ochocientos "; // if ($numero > 800) $num_letra = $num_letra.decena($numero - 800); } else if ($numero >= 700 && $numero <= 799) { $num_letra = "setecientos "; // if ($numero > 700) $num_letra = $num_letra.decena($numero - 700); } else if ($numero >= 600 && $numero <= 699) { $num_letra = "seiscientos "; // if ($numero > 600) $num_letra = $num_letra.decena($numero - 600); } else if ($numero >= 500 && $numero <= 599) { $num_letra = "quinientos "; // if ($numero > 500) $num_letra = $num_letra.decena($numero - 500); } else if ($numero >= 400 && $numero <= 499) { $num_letra = "cuatrocientos "; // if ($numero > 400) $num_letra = $num_letra.decena($numero - 400); } else if ($numero >= 300 && $numero <= 399) { $num_letra = "trescientos "; // if ($numero > 300) $num_letra = $num_letra.decena($numero - 300); } else if ($numero >= 200 && $numero <= 299) { $num_letra = "doscientos "; // if ($numero > 200) $num_letra = $num_letra.decena($numero - 200); } else if ($numero >= 100 && $numero <= 199) { if ($numero == 100) $num_letra = "cien "; else $num_letra = "ciento ".decena($numero - 100); } } else $num_letra = decena($numero); // return $num_letra; } // function cien() { global $importe_parcial; // if ($importe_parcial==000){//no se hace nada !!! $num_letra=""; }else{ $parcial = 0; $car = 0; // while (substr($importe_parcial, 0, 1) == 0) $importe_parcial = substr($importe_parcial, 1, strlen($importe_parcial) - 1); // if ($importe_parcial >= 1 && $importe_parcial <= 9.99) $car = 1; else if ($importe_parcial >= 10 && $importe_parcial <= 99.99) $car = 2; else if ($importe_parcial >= 100 && $importe_parcial <= 999.99) $car = 3; // $parcial = substr($importe_parcial, 0, $car); $importe_parcial = substr($importe_parcial, $car); // $num_letra = centena($parcial).centimos(); // }// cerrando If que revisa si la cantidad termina en 000 return $num_letra; } // function cien_mil() { global $importe_parcial; // $parcial = 0; $car = 0; // $importe_crackeado=$importe_parcial*1; //cesarin if ($importe_crackeado<1000) {// no se calcula c3sarin $num_letra=""; }else{ while (substr($importe_parcial, 0, 1) == 0) $importe_parcial = substr($importe_parcial, 1, strlen($importe_parcial) - 1); // if ($importe_parcial >= 1000 && $importe_parcial <= 9999.99) $car = 1; else if ($importe_parcial >= 10000 && $importe_parcial <= 99999.99) $car = 2; else if ($importe_parcial >= 100000 && $importe_parcial <= 999999.99) $car = 3; // $parcial = substr($importe_parcial, 0, $car); $importe_parcial = substr($importe_parcial, $car); // if ($parcial > 0) { if ($parcial == 1) $num_letra = "mil "; else $num_letra = centena($parcial)." mil "; } }//cerrando if del importe crackeado // return $num_letra; } // function millon() { global $importe_parcial; // $parcial = 0; $car = 0; // while (substr($importe_parcial, 0, 1) == 0) $importe_parcial = substr($importe_parcial, 1, strlen($importe_parcial) - 1); // if ($importe_parcial >= 1000000 && $importe_parcial <= 9999999.99) $car = 1; else if ($importe_parcial >= 10000000 && $importe_parcial <= 99999999.99) $car = 2; else if ($importe_parcial >= 100000000 && $importe_parcial <= 999999999.99) $car = 3; // $parcial = substr($importe_parcial, 0, $car); $importe_parcial = substr($importe_parcial, $car); // if ($parcial == 1) $num_letras = "un millón "; else $num_letras = centena($parcial)." millones "; // return $num_letras; } // function convertir_a_letras($numero) { global $importe_parcial; // $importe_parcial = $numero; // if ($numero < 1000000000) { if ($numero >= 1000000 && $numero <= 999999999.99) $num_letras = millon().cien_mil().cien(); else if ($numero >= 1000 && $numero <= 999999.99) $num_letras = cien_mil().cien(); else if ($numero >= 1 && $numero <= 999.99) $num_letras = cien(); else if ($numero >= 0.01 && $numero <= 0.99) { if ($numero == 0.01) $num_letras = "un céntimo"; else $num_letras = convertir_a_letras(($numero * 100)."/100")." céntimos"; } } return $num_letras; } ?> ------------------------- Para hacer funkar este script se hace lo siguiente... Paso 1: Las paginas que necesiten usar este script, deben contar con un include o require para invocarlo. Paso 2: Hay que contar con un numero para poder efectuarla... $numero=463512812; por decir algo.... Paso 3: Se invoca la función... $letras=convertir_a_letras($numero); la variable $letras se puede reemplazar por cualquier nombre, dentro del parentesis va la variable que contenga la cantidad... Con eso ya todo estaría funkando,,, para ver la cifra en letras basta con mostrar la variable... se escribiria esto ... $numero=13612497; $letras=convertir_a_letras($numero); echo $letras; Ojalá les sirva chauuu Edited January 9, 2007 by c3sarin Link to comment Share on other sites More sharing options...
RockaMania Posted April 16, 2007 Report Share Posted April 16, 2007 Vale, la incluyo en mi respaldo de funciones, nunca se sabe ;) Link to comment Share on other sites More sharing options...
schadel Posted April 16, 2007 Report Share Posted April 16, 2007 :banana: Muchas GRacias Nuk e malo tener este programilla :banana: :ph34r: _________________________________ :ph34r: ______________________________ :ph34r: Link to comment Share on other sites More sharing options...
ideafija Posted June 1, 2007 Report Share Posted June 1, 2007 gracias viejito no ta demas tenerlo ahi por siaca saludos Link to comment Share on other sites More sharing options...
vitrito Posted June 21, 2007 Report Share Posted June 21, 2007 se agradece :banana: :banana: :banana: :banana: :banana: :banana: :banana: Link to comment Share on other sites More sharing options...
chantasour Posted September 26, 2007 Report Share Posted September 26, 2007 la verdad funka de maravillas el script se agradece Link to comment Share on other sites More sharing options...
cholonex Posted October 4, 2007 Report Share Posted October 4, 2007 gracias compare, lo vamos a utilizar mucho Link to comment Share on other sites More sharing options...
sttull Posted October 8, 2007 Report Share Posted October 8, 2007 gracias Link to comment Share on other sites More sharing options...
bearuy Posted November 21, 2007 Report Share Posted November 21, 2007 gracias, siempre es útil una rutinita de estas Link to comment Share on other sites More sharing options...
alfre_do Posted November 4, 2008 Report Share Posted November 4, 2008 Se agradece su aporte maestro Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now