Números A Letras

Desarrollo Web, Programación, Scripts 3 Comentarios »
Publicado por lopongoaca

Hace algunos días estaba realizando un sistema de información para la compañía en la que trabajo y entre todas las cosas que tenia que hacer este sistemas se incluía el hecho de realizar facturas de venta.

Hace mucho tiempo que no realizaba este típico proceso, por lo cual tuve que hacer memoria de mis clases de Bases De Datos recibidas en la Universidad y recordar que en la mayoría de casos una factura tiene un Encabezado, un Detalle y un Pie o Total.

Al fin pude realizar la factura y su modelo, pero el problema vino cuando me dijeron que el valor de la factura debía estar escrito en letras. Después de mucho tiempo de intentar crear una función que me permitiera esto, decidí buscar en Google y me encontré con esta excelente función que nos permite realizar esto sin ningún problema.

:
  1. <?
  2. /*
  3. @function num2letras ()
  4. @abstract Dado un n?mero lo devuelve escrito.
  5. @param $num number - N?mero a convertir.
  6. @param $fem bool - Forma femenina (true) o no (false).
  7. @param $dec bool - Con decimales (true) o no (false).
  8. @result string - Devuelve el n?mero escrito en letra.
  9. */
  10. function num2letras($num, $fem = false, $dec = true) {
  11. $matuni[2]  = "dos";
  12. $matuni[3]  = "tres";
  13. $matuni[4]  = "cuatro";
  14. $matuni[5]  = "cinco";
  15. $matuni[6]  = "seis";
  16. $matuni[7]  = "siete";
  17. $matuni[8]  = "ocho";
  18. $matuni[9]  = "nueve";
  19. $matuni[10] = "diez";
  20. $matuni[11] = "once";
  21. $matuni[12] = "doce";
  22. $matuni[13] = "trece";
  23. $matuni[14] = "catorce";
  24. $matuni[15] = "quince";
  25. $matuni[16] = "dieciseis";
  26. $matuni[17] = "diecisiete";
  27. $matuni[18] = "dieciocho";
  28. $matuni[19] = "diecinueve";
  29. $matuni[20] = "veinte";
  30. $matunisub[2] = "dos";
  31. $matunisub[3] = "tres";
  32. $matunisub[4] = "cuatro";
  33. $matunisub[5] = "quin";
  34. $matunisub[6] = "seis";
  35. $matunisub[7] = "sete";
  36. $matunisub[8] = "ocho";
  37. $matunisub[9] = "nove";
  38.  
  39. $matdec[2] = "veint";
  40. $matdec[3] = "treinta";
  41. $matdec[4] = "cuarenta";
  42. $matdec[5] = "cincuenta";
  43. $matdec[6] = "sesenta";
  44. $matdec[7] = "setenta";
  45. $matdec[8] = "ochenta";
  46. $matdec[9] = "noventa";
  47. $matsub[3]  = 'mill';
  48. $matsub[5]  = 'bill';
  49. $matsub[7]  = 'mill';
  50. $matsub[9]  = 'trill';
  51. $matsub[11] = 'mill';
  52. $matsub[13] = 'bill';
  53. $matsub[15] = 'mill';
  54. $matmil[4]  = 'millones';
  55. $matmil[6]  = 'billones';
  56. $matmil[7]  = 'de billones';
  57. $matmil[8]  = 'millones de billones';
  58. $matmil[10] = 'trillones';
  59. $matmil[11] = 'de trillones';
  60. $matmil[12] = 'millones de trillones';
  61. $matmil[13] = 'de trillones';
  62. $matmil[14] = 'billones de trillones';
  63. $matmil[15] = 'de billones de trillones';
  64. $matmil[16] = 'millones de billones de trillones';
  65.  
  66. $num = trim((string)@$num);
  67. if ($num[0] == '-') {
  68. $neg = 'menos ';
  69. $num = substr($num, 1);
  70. }else
  71. $neg = '';
  72. while ($num[0] == '0') $num = substr($num, 1);
  73. if ($num[0] &lt;'1' or $num[0]&gt; 9) $num = '0' . $num;
  74. $zeros = true;
  75. $punt = false;
  76. $ent = '';
  77. $fra = '';
  78. for ($c = 0; $c &lt;strlen($num); $c++) {
  79. $n = $num[$c];
  80. if (! (strpos(".,'''", $n) === false)) {
  81. if ($punt) break;
  82. else{
  83. $punt = true;
  84. continue;
  85. }
  86.  
  87. }elseif (! (strpos('0123456789', $n) === false)) {
  88. if ($punt) {
  89. if ($n != '0') $zeros = false;
  90. $fra .= $n;
  91. }else
  92.  
  93. $ent .= $n;
  94. }else
  95. <p align="justify">break;</p>
  96. }
  97. $ent = '     ' . $ent;
  98. if ($dec and $fra and ! $zeros) {
  99. $fin = ' coma';
  100. for ($n = 0; $n &lt;strlen($fra); $n++) {
  101. if (($s = $fra[$n]) == '0')
  102. $fin .= ' cero';
  103. elseif ($s == '1')
  104. $fin .= $fem ? ' una' : ' un';
  105. else
  106. $fin .= ' ' . $matuni[$s];
  107. }
  108. }else
  109. $fin = '';
  110. if ((int)$ent === 0) return 'Cero ' . $fin;
  111. $tex = '';
  112. $sub = 0;
  113. $mils = 0;
  114. $neutro = false;
  115. while ( ($num = substr($ent, -3)) != '   ') {
  116. $ent = substr($ent, 0, -3);
  117. if (++$sub &lt;3 and $fem) {
  118. $matuni[1] = 'una';
  119. $subcent = 'as';
  120. }else{
  121. $matuni[1] = $neutro ? 'un' : 'uno';
  122. $subcent = 'os';
  123. }
  124. $t = '';
  125. $n2 = substr($num, 1);
  126. if ($n2 == '00') {
  127. }elseif ($n2 &lt;21)
  128. $t = ' ' . $matuni[(int)$n2];
  129. elseif ($n2 &lt;30) {
  130. $n3 = $num[2];
  131. if ($n3 != 0) $t = 'i' . $matuni[$n3];
  132. $n2 = $num[1];
  133. $t = ' ' . $matdec[$n2] . $t;
  134. }else{
  135. $n3 = $num[2];
  136. if ($n3 != 0) $t = ' y ' . $matuni[$n3];
  137. $n2 = $num[1];
  138. $t = ' ' . $matdec[$n2] . $t;
  139. }
  140. $n = $num[0];
  141. if ($n == 1) {
  142. if ($n2 &lt;&gt; '00') {
  143. $t = ' ciento' . $t;
  144. } else {
  145. $t = ' cien' . $t;
  146. }
  147. }elseif ($n == 5){
  148. $t = ' ciento' . $t;
  149. }elseif ($n == 5){
  150. $t = ' ' . $matunisub[$n] . 'ient' . $subcent . $t;
  151. }elseif ($n != 0){
  152. $t = ' ' . $matunisub[$n] . 'cient' . $subcent . $t;
  153. }
  154. if ($sub == 1) {
  155. }elseif (! isset($matsub[$sub])) {
  156. if ($num == 1) {
  157. $t = ' mil';
  158. }elseif ($num&gt; 1){
  159. $t .= ' mil';
  160. }
  161. }elseif ($num == 1) {
  162. $t .= ' ' . $matsub[$sub] . 'ón';
  163. }elseif ($num&gt; 1){
  164. $t .= ' ' . $matsub[$sub] . 'ones';
  165. }
  166. if ($num == '000') $mils ++;
  167. elseif ($mils != 0) {
  168. if (isset($matmil[$sub])) $t .= ' ' . $matmil[$sub];
  169. $mils = 0;
  170. }
  171. $neutro = true;
  172. $tex = $t . $tex;
  173. }
  174. $tex = $neg . substr($tex, 1) . $fin;
  175. return ucfirst($tex);
  176. }
  177. ?>

Para llamar a la función sencillamente incluimos el archivo donde tenemos y la funcion y la llamos asi:

:
  1. <?
  2. include 'numero2letras.';
  3. echo num2letras(1500);
  4. ?>

Aca pongo el demo (un poco mejorado) y el archivo para descargar la función y el demo.

Enlace Script Original

Cambiar Login Administrador WordPress

Diseño, Scripts, WordPress 1 Comentario »
Publicado por lopongoaca

BM Custom Login Plugin

Este nos permite modificar nuestro formulario de ingreso al panel de administración de con la imagen que deseemos.

En Lo Pongo Acá usamos este . Ver

Instalación y configuración

  1. Descargar el plugin
  2. Extraer los archivos en una carpeta (bm-custom-login) y subirlos al servidor donde esta alojado el en la carpeta de plugins (wp-content/plugins) de modo que la ruta quede (wp-content/plugins/bm-custom-login)
  3. Crear tu propia imagen basado en el archivo (.) de muestra incluido en la carpeta (image-templates)
  4. Subir tu nuevo diseño a la carpeta wp-content/plugins/bm-custom-login/images con el nombre login-bkg-tile.jpg
  5. Disfruta tu nuevo formulario de login.

Si tienes cualquier duda puedes dejarla en los comentarios

Scripts para crear gráficas con: Javascript, PHP, Flash, Java, ASP…

Programación, Scripts Sin Comentarios »
Publicado por lopongoaca

Desde Informatica Practica leo este interesante articulo:

Vamos a ver algunos scripts interesantes para crear gráficos, que utilizan Javascript, , y en un caso.

  • Flot: realizado puramente con Javascript utilizando , puedes interaccionar con los datos incluso ofrece la posibilidad de realizar zoom.
    flot
  • Open Flash Chart: es una de las mejores opciones, tanto por el aspecto visual, como por la cantidad de clases disponibles en diferentes lenguajes, como son , Perl, Python, , on Rails, y .Net; que posibilitan conectar con los gráficos.open-flash-chart
  • AmCharts: realizado con , ofrece diferentes tipos de gráficos, todos ellos muy atractivos. Se pueden usar datos extraidos de ficheros , incluso se pueden leer datos generados dinamicamente con , .NET, , on Rails, Perl y ColdFusion. Ésta opción ya la hemos comentado en el blog, es complematemente gratuito siempre y cuando respetemos el link que incorporan en la parte superior de las tablas.
    amcharts
  • Emprise Javascript Charts: para crear gráficas utilizando unicamente Javascript.javascript-charts
  • Plotkit: otra solución Javascript perfectamente documentada, basada en la librería MochiKit.plotkit
  • Flotr: éste script se basa en la librería . Puedes hacer zooms, crear leyendas, soporte para valores negativos, etc.
    flotr
  • PHP/SFW Charts: como su propio nombre indica, para poder fusionar con . Realmente recomendable, además goza de un monton de gráficos diversos.phpswf
  • Visfire: bastante simple, permite funcionar con , .Net, , JSP, ColdFusion, on Rails o solamente HTML
    .visifire
  • FusionCharts: funciona de manera equivalente a Visfire.fusioncharts
  • JFreeCharts: elúltimo scriot puede resultar muy interesante, puesto que funciona con , de forma que cualquier programador pueda mostrar sus gráficas en unos sencillos pasos. Una joya para los desarrolladores en .
    java

Vía: | Informatica Practica


Cerrar
Enviar por Correo