Foros del Web » Programando para Internet » Javascript »

Automatizar sistema de facturacion

Estas en el tema de Automatizar sistema de facturacion en el foro de Javascript en Foros del Web. Hola chicos, tengo muy pocas herramientas, y las que tengo no funcionan del todo bien. Bueno para empezar tengo esta tabla con estos campos. @import ...
  #1 (permalink)  
Antiguo 19/10/2010, 16:43
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Automatizar sistema de facturacion

Hola chicos, tengo muy pocas herramientas, y las que tengo no funcionan del todo bien.

Bueno para empezar tengo esta tabla con estos campos.

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=latin1"/>
  4. <title>Documento sin t&iacute;tulo</title>
  5. <script language="javascript">
  6. function aMays(e, elemento) {
  7. tecla=(document.all) ? e.keyCode : e.which;
  8. if(tecla == 49) elemento.value = "01", alert("HOLA");
  9. document.getElementById('cod1').focus();
  10. document.getElementById('cod1').value="";
  11.  
  12. }
  13.  
  14. </head>
  15.  
  16. <table width="100%" border="1">
  17.   <tr>
  18.     <td><input name="can1" type="text" id="can1" size="2" maxlength="2" autocomplete="off" onkeypress="aMays(event, this)"  /></td>
  19.     <td><input name="cod1" type="text" id="cod2" size="14" maxlength="13" autocomplete="off"/></td>
  20.     <td><input name="des1" type="text" id="des1" size="55" maxlength="50" autocomplete="off"/></td>
  21.     <td><input name="uni1" type="text" id="uni1" size="6" maxlength="4" autocomplete="off"/></td>
  22.     <td><input name="sub1" type="text" id="sub1" size="6" autocomplete="off"/></td>
  23.   </tr>
  24.                      
  25. </body>
  26. </html>
El primer campo es la cantidad de unidades.
El segundo el código del producto ( código insertado por lectora de barra)
El tercero es la descripción que la obtenemos de un base MySQL consultando por el código cargado en el campo anterior.
El Cuarto es el precio del producto, que lo obtenemos de un base MySQL consultando por el código cargado en el campo cod1.
El Quinto es calculo del precio multiplicado por la cantidad. (can1 * uni1)

Como verán en el código ya avance algo.
Hay un SCRIPT que al pararme en el campo "can1" y presiono 1 lanza un alerta diciendo HOLA (eso lo hice para ir viendo los pasos).
Cual es el primer problema cuando se posisiona en "cod1" ya escribe "1" cosa que esta mal, eso tiene que estar limpio para que la lectora escriba el código.

Como podemos corregir eso?.

Gracias a todos por tomarce el tiempo de leer.
  #2 (permalink)  
Antiguo 20/10/2010, 07:09
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Automatizar sistema de facturacion

Esque en el código que pusiste ahí #cod1 no existe, existe #cod2, cámbialo porque no veo ningún error en la función.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 20/10/2010, 08:20
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Automatizar sistema de facturacion

Perdon solo esta mal tipeado en Highlight es cod1 cod2 no existe.
(por alguna razon no puedo editarlo (?))
Si corres el codigo en un server vas a ver el problema.
Al precionar 1. envia el alerta HOLA, en can1 pone "01" y en cod1 pone "1" cosa que esta mal tiene que dejar en basio el cod1 "".
  #4 (permalink)  
Antiguo 20/10/2010, 08:24
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Automatizar sistema de facturacion

Prueba con esto:
Código Javascript:
Ver original
  1. function aMays(e, elemento) {
  2.  tecla=(document.all) ? e.keyCode : e.which;
  3.  if(tecla == 49){
  4.   elemento.value = "01";
  5.   alert("HOLA");
  6.   document.getElementById('cod1').focus();
  7.   document.getElementById('cod1').value="";
  8.  }
  9. }
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #5 (permalink)  
Antiguo 20/10/2010, 08:28
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Automatizar sistema de facturacion

Grax cronos2, apenas tenga oportunidad lo pruebo en este momento no tengo medios. gracias.
  #6 (permalink)  
Antiguo 21/10/2010, 04:38
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Automatizar sistema de facturacion

Cita:
Iniciado por _cronos2 Ver Mensaje
Prueba con esto:
Código Javascript:
Ver original
  1. function aMays(e, elemento) {
  2.  tecla=(document.all) ? e.keyCode : e.which;
  3.  if(tecla == 49){
  4.   elemento.value = "01";
  5.   alert("HOLA");
  6.   document.getElementById('cod1').focus();
  7.   document.getElementById('cod1').value="";
  8.  }
  9. }
Saludos (:
no Cronos2

el error continua. :( alguna otra idea, o otro metodo?

Me gustaba la idea de:

en el number pad, presionar la cantidad de productos, y que automaticamente pasara el codigo de barras, pero esto tiene un problema, la limitacion de numeros "1,2,3,4,5,6,7,8,9,0" capaz tendria que usar algo mas basico como dijitar la cantidad y despues precionar enter.

Algun comentario?

algun codigo para proponer?.
  #7 (permalink)  
Antiguo 21/10/2010, 05:11
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Automatizar sistema de facturacion

Bueno les cuento que buscando googleando y foreando arme esto.
funciona con ENTER y va saltando de campo en campo, a su ves muestra otra fila.
Me gusto mucho espero que les sirva.

Dejo mas abajo el codigo, Ahora necesito:

Con javascript, Sumar can1 * uni1 y el resultado mostrarlo en sub1.
Algun scrip?


Codigo en formacion:
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=latin1"/>
  4. <title>Recompilado por SirDuque</title>
  5. <script language="javascript">
  6. function cambiarDisplay(id) {
  7.   if (!document.getElementById) return false;
  8.   fila = document.getElementById(id);
  9.   if (fila.style.display != "none") {
  10.  //   fila.style.display = "none"; //ocultar fila
  11.   } else {
  12.     fila.style.display = ""; //mostrar fila
  13.   }
  14. }
  15.  
  16. nextfield = "can1"; // name of first box on page
  17. netscape = "";
  18. ver = navigator.appVersion; len = ver.length;
  19. for(iln = 0; iln < len; iln++) if (ver.charAt(iln) == "(") break;
  20. netscape = (ver.charAt(iln+1).toUpperCase() != "C");
  21.  
  22. function keyDown(DnEvents) { // handles keypress
  23. // determines whether Netscape or Internet Explorer
  24. k = (netscape) ? DnEvents.which : window.event.keyCode;
  25. if (k == 13) { // enter key pressed
  26. if (nextfield == 'done') return true; // submit, we finished all fields
  27. else { // we're not done yet, send focus to next box
  28. eval('document.yourform.' + nextfield + '.focus()');// ATENTOS Aca va el nombre del FORM
  29. return false;
  30.      }
  31.   }
  32. }
  33. document.onkeydown = keyDown; // work together to analyze keystrokes
  34. if (netscape) document.captureEvents(Event.KEYDOWN|Event.KEYUP);
  35. //  End -->
  36. </head>
  37. <form name=yourform>
  38. <table width="100%" border="1">
  39.   <tr id="a">
  40.     <td><input name="can1" type="text" id="can1" size="2" maxlength="2" autocomplete="off" onFocus="nextfield ='cod1';" /></td>
  41.     <td><input name="cod1" type="text" id="cod1" size="14" maxlength="13" autocomplete="off" onkeypress="cambiarDisplay('b')"onFocus="nextfield ='can2';" /></td>
  42.     <td><input name="des1" type="text" id="des1" size="55" maxlength="50" autocomplete="off"/></td>
  43.     <td><input name="uni1" type="text" id="uni1" size="6" maxlength="4" autocomplete="off"/></td>
  44.     <td><input name="sub1" type="text" id="sub1" size="6" autocomplete="off" /></td>
  45.   </tr>
  46.     <tr id="b" style="display:none">
  47.     <td><input name="can2" type="text" id="can2" size="2" maxlength="2" autocomplete="off" onFocus="nextfield ='cod2';"   /></td>
  48.     <td><input name="cod2" type="text" id="cod2" size="14" maxlength="13" autocomplete="off" onkeypress="cambiarDisplay('c')"
  49.    onFocus="nextfield ='can3';" /></td>
  50.     <td><input name="des2" type="text" id="des2" size="55" maxlength="50" autocomplete="off"/></td>
  51.     <td><input name="uni2" type="text" id="uni2" size="6" maxlength="4" autocomplete="off"/></td>
  52.     <td><input name="sub2" type="text" id="sub2" size="6" autocomplete="off"/></td>
  53.   </tr>
  54.     </tr>
  55.     <tr id="c" style="display:none">
  56.     <td><input name="can3" type="text" id="can3" size="2" maxlength="2" autocomplete="off" onFocus="nextfield ='cod3';"   /></td>
  57.     <td><input name="cod3" type="text" id="cod3" size="14" maxlength="13" autocomplete="off" onkeypress="cambiarDisplay('d')" onFocus="nextfield ='can4';" /></td>
  58.     <td><input name="des3" type="text" id="des3" size="55" maxlength="50" autocomplete="off"/></td>
  59.     <td><input name="uni3" type="text" id="uni3" size="6" maxlength="4" autocomplete="off"/></td>
  60.     <td><input name="sub3" type="text" id="sub3" size="6" autocomplete="off"/></td>
  61.   </tr>
  62.     </tr>
  63.     <tr id="d" style="display:none">
  64.     <td><input name="can4" type="text" id="can4" size="2" maxlength="2" autocomplete="off" onFocus="nextfield ='cod4';"   /></td>
  65.     <td><input name="cod4" type="text" id="cod4" size="14" maxlength="13" autocomplete="off" onFocus="nextfield ='done';"/></td>
  66.     <td><input name="des4" type="text" id="des4" size="55" maxlength="50" autocomplete="off"/></td>
  67.     <td><input name="uni4" type="text" id="uni4" size="6" maxlength="4" autocomplete="off"/></td>
  68.     <td><input name="sub4" type="text" id="sub4" size="6" autocomplete="off" /></td>
  69.   </tr>
  70. <center>               
  71. <input type=submit name=done value="Submit">
  72. </center>
  73. </form>
  74. </body>
  75. </html>
  #8 (permalink)  
Antiguo 21/10/2010, 05:48
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Automatizar sistema de facturacion

Tengo esta funcion, que no me es de todo valida.
ya que no se como automatizarlo.
Cuando escribo la cantidad, salta automaticamente a el campo de codigo (mas adelante al voy hacer que el campo de codigo comple descripcion y precio unitario).

y despues salta al campo de unidades de abajo que fue creado automaticamente.

AHORA en que momento tengo que ejecutar la funcion "SUMAR" me imagino que al momento de completar los campos descripcion y precio unitario (mas adelante) es proceso jacascript php y mysql va a demorar unos segundos.
por lo tanto. DONDE EJECUTO javascript:sumar(can1,uni1)

TAMBIEN a este codigo en ves de alerta, tengo que agregar algo como esto:
function sumar(uno,dos,tres)
y tres seria el remplazo de alerta donde seria el valor del campo "sub1".

Código Javascript:
Ver original
  1. function sumar(uno,dos)
  2. {
  3. var total;
  4. total = parseInt(uno.value)+parseInt(dos.value);
  5. alert("El valor es " + total);
  6. }

Alguna mano (?)
  #9 (permalink)  
Antiguo 21/10/2010, 10:22
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Automatizar sistema de facturacion

Bueno me encanta los aportes de tods :D
ak actualizo la funcion SUMAR
Código Javascript:
Ver original
  1. function sumar(uno,dos,name)
  2. {
  3. var total;
  4. var fila;
  5. var primer;
  6. var segundo;
  7. fila = document.getElementById(name);
  8. primer=parseInt(uno.value);
  9. segundo=parseFloat(dos.value);
  10. if (segundo==0)
  11.     {
  12.         alert("Error Precio Unitario no Ingresado\nPor favor verifique el codigo de barra\n Si el producto no esta ingresado en el ABC de Almacen No puede ser vendido.");
  13.         name.value="Error";
  14.     }else{
  15.         parseFloat(total = primer+segundo);
  16.         name.value=total;
  17.     }
  18. }
El siguiente paso es:
Mas complejo por eso lo deje a lo ultimo.
al colocar el codigo de barra la LECTORA DE BARRA preciona enter, actualmente salta a la linea de abajo.
lo que necesito agregar ahora es un funcion. Que tiene que hacer esta (?)
bueno tiene que tomar los 13 numeros que disco la lectora de barra y completar el campo des1 (descripcion) y uni1 (precio unidad).

la unica herramienta que tengo esto:

<?php include('config.php'); $codigo= "SELECT * FROM ar_almacen WHERE AR_CODIGO='111'";
$query1=mysql_query($codigo);
$row=mysql_fetch_array($query1);
?>

y la funcion.

function completar (uni,des){

uni.value="<?php echo "".$row['AR_PRECIO']."";?>";
des.value="<?php echo "".$row['AR_DESCRIP']."";?>";
}

Lo que me falta es agarrar la consulta php: y cambiar AR_CODIGO='111' (el 111) por el contenido del campo "cod1".

No se si me explico. alguna idea?

Etiquetas: automatizar, facturacion, sitemap
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:13.