[ Foro de Javascript ]

Async

17-Mar-2020 02:51
Invitado (Leandro Rebolloso)
0 Respuestas

hola como les va? tengo un problema grande, tengo que hacer una sumatoria y agrupamiento de datos que estan en json,y lo plateee asi

function mostrarInformeCategoria(){
document.getElementById('datosDeLaConsultaCategoria').style.display='block';
idCategoria = document.getElementById('nombreHiddenCategoria').value;
nombreCategoria = document.getElementById('nombreHiddenNombreCategoria').value;
var desde = $("#fechaDesde").val();
var hasta = $("#fechaHasta").val();
//aca obtengo los articulos de mi categoria
var datosVer = new FormData();
datosVer.append("idCategoriaProductos", idCategoria);
datosVer.append("desdeDos", desde);
datosVer.append("hastaDos", hasta);

$.ajax({
url:"ajax/productos.ajax.php",
method: "POST",
data: datosVer,
cache: false,
contentType: false,
processData: false,
dataType:"json",
success:function(respuestaSuma) {
//aca dibujo la tabla con javascript
var html="<table class=table table-bordered table-striped dt-responsive tablas width=100%>";
html+="<thead>";
html+="<tr>";
html+="<th> Producto </th>";
html+="<th> Codigo </th>";
html+="<th> Cantidad </th>";
html+="<th> Total </th> </tr></thead>";
   html+="<tbody>";
   for(j = 0; j < respuestaSuma.length; j++){

    var datosDos = new FormData();

datosDos.append("productoContulta", respuestaSuma[j][5]);
datosDos.append("fechaInicio", desde);
datosDos.append("fechaFin", hasta);

$.ajax({

url:"ajax/sumaProductos.ajax.php",
method: "POST",
data: datosDos,
cache: false,
contentType: false,
processData: false,
dataType:"json",

success:function(respuestaDos) {
var total = 0;

for (var i = 0; i < respuestaDos.length; i++) {

var jsonComboDos  = respuestaDos[i][6];
var obj = JSON.parse(jsonComboDos);
//aca deberia de sumar pero no se detiene en cada ciclo sino que hace todo en forma sincrona
for (var k=0; k < obj.length; k++) {

if(obj[k]['descripcion'] == respuestaSuma[j][5]){
total = parseFloat(total) + parseFloat(obj[k]['cantidad']);
alert(total);
// console.log(total);

}else{
//alert("No entra");

}

}
}

}
})



    html+="<tr><td>"+respuestaSuma[j][5]+"</td><td>"+respuestaSuma[j][4]+"</td><td>"+total+"</td><td>datos3</td></tr>";
   }
   html+="</tbody>";
   html+="</table>";
   var total = 0;
document.getElementById("tabla").innerHTML=html;
//}

for (var i = 0; i < respuestaSuma.length; i++) {

console.log(respuestaSuma[i][5]);





// document.getElementById("totalCategoria").innerHTML = "Total: 20";

}
}
})
}




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)