Acceso a multiples tablas (AJAX básico VI)


modulo de ventas completo

 

En esta ocasión y a pedido de un lector retomamos un viejo proyecto para hacer una modificación, en este caso se trata de un punto de ventas que mostramos hace mucho, en el cual agregábamos en un tabla HTML los artículos que se proporcionaban,  pero el punto que nos preguntaba @carlox_luna era ¿como podíamos agregar articulos a la lista cuando este estaba repetido en la tabla?, pues bien, veamos como sería.

Antes de comenzar recomendamos leer los anteriores post de la serie «Acceso a múltiples tablas»

como los datos son leídos de una tabla y se usa AJAX para incorporarlos a la pagina de venta, estos están disponibles para ser manipulados a través de Javascript, por lo que al darle clic al botón marcado con «+» estos se agregan a la tabla de HTML, esto lo hace en nuestro ejemplo, la función listado().

Por lo que es esta función la que vamos a modificar para que quede como a continuación se muestra

Captura de pantalla 2013-10-28 a la(s) 22.29.27

 

a partir de la linea 161 creamos una variable «encuentra» que es una bandera que usaremos para saber si después de la búsqueda hay que agregar el producto a la lista o si esta ya fue modificada.

En la 162 hacemos uso de un ciclo for que va de la linea 1(recuerde que en tablas de HTML todo se numera a partir de 0) porque en el 0 están los encabezados,  con el recorremos toda la tabla, verificando en la linea 167 si el código del producto que esta en la variable a1 ya esta en la tabla, si lo esta lo sumamos a la cantidad de articulos, si gustan pueden dejarlo en que se le suma «1»m después de eso, en la variable st recalculamos  el subtotal, pero se nos olvido actualizarlo en la tabla HTML, pero aun así lo que sigue es actualizar la bandera, para evitar que se agregue una nueva linea, por lo que lo que si en esa funciono es lo siguiente:

 

Captura de pantalla 2013-10-28 a la(s) 22.29.45

 

Si la variable de bandera no cambia, se continua el proceso de forma normal, agregando el producto y su subtotal al final de la tabla.

Bien, pues este es el cambio que hacia falta y por el que nos habían preguntado, recuerden que aceptamos sus dudas y sugerencias, así mismo esperamos nos disculpen si nos tardamos.

 

 

 

 

 

 

 

Anuncio publicitario

20 Comments

  1. function listado(){
    var c=document.getElementById(«codigo»);
    var can=document.getElementById(«cantidad»);
    var des=document.getElementById(«descripcion»);
    var tam=document.getElementById(«tamano»);
    var exi=document.getElementById(«existencia»);
    var pre=document.getElementById(«precio»);

    var x=parseInt(can.value,10);
    var y=parseInt(exi.value,10);
    if (x > y){
    alert («Existencia del producto insuficiente»);
    }
    else{

    var encuentra = 0;
    for(var linea=1;linea<t.rows.length;linea++){
    var a1=t.rows[linea].cells[0].innerHTML;
    var a2=t.rows[linea].cells[1].innerHTML;
    var a3=t.rows[linea].cells[4].innerHTML;

    if(a1==c.value){
    var nuevoa2 =x+parseInt(a2);
    t.rows[linea].cells[0].innerHTML=nuevoa2;
    var st=nuevoa2*parseInt(pre.value);
    encuentra=1;
    }
    }

    if(encuentra == 0){

    var st=x*parseFloat(pre.value);

    var t=document.getElementById("listado");
    var l=t.rows.length;
    t.insertRow(l);

    var c1=document.createElement("td");
    c1.innerHTML=c.value;

    var c2=document.createElement("td");
    c2.innerHTML=can.value;

    var c3=document.createElement("td");
    c3.innerHTML=des.value;

    var c4=document.createElement("td");
    c4.innerHTML=tam.value;

    var c5=document.createElement("td");
    c5.innerHTML=pre.value;

    var c6=document.createElement("td");
    c6.innerHTML=st;

    t.rows[l].appendChild(c1);
    t.rows[l].appendChild(c2);
    t.rows[l].appendChild(c3);
    t.rows[l].appendChild(c4);
    t.rows[l].appendChild(c5);
    t.rows[l].appendChild(c6);

    var p=document.getElementById("pago");
    var dinero= parseFloat(p.value);
    p.value=dinero+st;
    }
    }
    }

    Ing ese es el codigo que en este caso ud coloco en las imagenes, he seguido tal y kmo ud lo ha hecho pero no entiendo por q no me agrega con esta nueva modificacion q ud ha hecho el de no ingresar productos repetidos, si no mas bien ir sumando su cantidad .. espero su respuesta de antemano se lo agradesco

    Me gusta

    1. Usualmente no se maneja la posibilidad de modificar una venta, por cuestiones de seguridad y fiscales, lo que se maneja es que se cancela la venta y la vuelves a hacer con los datos correctos, al cancelarla, usualmente recurrimos a agregar un campo a la tabla de ventas en el que indicamos si la venta esta activa o cancelada de esa forma no desaparecen los folios y se mantiene la integridad y la seguridad.

      Me gusta

¿Qué estas pensando?

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.