Agrupar dados via Ajax
Pessoal,
preciso agrupar dados de uma consulta, o que tenho retorna os dados que preciso mas
não consigo organizá-los dessa forma:
////////////////////////////////////////////////
2018(3) - R$ 480,00
-Fevereiro - (2) - R$ 240,00
Gabriel - 20/02/2018
Alberto - 19/02/2018
-Janeiro - (1) - R$ 240,00
Alberto - 17/01/2018
2017(2) - R$ 240,00
-Dezembro - (1) - R$ 120,00
Gabriel - 18/12/2017
-Novembro - (1) - R$ 120,00
Gabriel - 18/11/2017
////////////////////////////////////////////////
Mas o que eu consegui foi dessa forma:
////////////////////////////////////////////////
2017(2) - R$ 240,00
2018(3) - R$ 480,00
Fevereiro - (2) - R$ 240,00
Janeiro - (1) - R$ 240,00
Dezembro - (1) - R$ 120,00
Novembro - (1) - R$ 120,00
Gabriel - 20/02/2018
Alberto - 19/02/2018
Alberto - 17/01/2018
Gabriel - 18/11/2017
Gabriel - 18/12/2017
////////////////////////////////////////////////
Segue abaixo as consulta do PHP, lembrando que o campo da data é do tipo varchar:
listar-vendas.php
$idusuario = $_POST['idusuario'];
$db->sql("SELECT *, RIGHT(datacad, 4) as ano, COUNT(*) AS totalAno, sum(totalcomp) AS somaAno FROM cad_compras WHERE idusuario = $idusuario AND nivel = 'Venda' GROUP BY RIGHT(datacad, 4) ORDER BY guidcomp DESC");
$res = $db->getResult();
echo json_encode($res);
listar-vendas-mes.php
$idusuario = $_POST['idusuarioo'];
$ano = $_POST['ano'];
$db->sql("SELECT DISTINCT SUBSTRING(datacad, 3, 4) AS mes, COUNT(*) AS contagem, sum(totalcomp) AS total, guidcomp FROM cad_compras WHERE RIGHT(datacad, 4) = '$ano' AND idusuario = '$idusuario' AND nivel = 'Venda' GROUP BY mes ORDER BY mes DESC");
$res = $db->getResult();
echo json_encode($res);
listar-vendas-vendas.php
$idusuario = $_POST['idusuariooo'];
$ano = $_POST['ano'];
$mes = $_POST['mes'];
$db->sql("SELECT * FROM cad_compras WHERE idusuario = '$idusuario' AND RIGHT(datacad, 4) = '$ano' AND SUBSTRING(datacad, 3, 4) = '$mes' ORDER BY datacad DESC");
$res = $db->getResult();
echo json_encode($res);
Javascript
this.listarVendas = function(page, callback) {
var idgravadouser = localStorage.getItem('idusuario');
var listavend = $("#listaVendas");
fw7.showIndicator();
$.ajax({
url: 'model/Cadastros/Compras/listar-vendas.php',
type: 'POST',
data: 'idusuario='+idgravadouser,
success: function(dados){
var i = null;
$.each(dados, function(index,dado){
var ano = dado.ano;
var totalAno = dado.totalAno;
var somaAno = 'R$ '+formataMoeda(dado.somaAno);
i++;
$.ajax({
url: 'model/Cadastros/Compras/listar-vendas-mes.php',
type: 'POST',
data: 'idusuarioo='+idgravadouser+'&ano='+ano,
success: function(dados){
var j = null;
$.each(dados, function(index,dado){
var mes = dado.mes;
var contagem = dado.contagem;
var total = 'R$ '+formataMoeda(dado.total);
if(mes == "/01/"){
var mestext = "Janeiro";
}else if(mes == "/02/"){
var mestext = "Fevereiro";
}else if(mes == "/03/"){
var mestext = "Março";
}else if(mes == "/04/"){
var mestext = "Abril";
}else if(mes == "/05/"){
var mestext = "Maio";
}else if(mes == "/06/"){
var mestext = "Junho";
}else if(mes == "/07/"){
var mestext = "Julho";
}else if(mes == "/08/"){
var mestext = "Agosto";
}else if(mes == "/09/"){
var mestext = "Setembro";
}else if(mes == "/10/"){
var mestext = "Outubro";
}else if(mes == "/11/"){
var mestext = "Novembro";
}else if(mes == "/12/"){
var mestext = "Dezembro";
}
j++;
$("#meSes").append(mestext+' - '+contagem+' - '+total+'<br>');
$.ajax({
url: 'model/Cadastros/Compras/listar-vendas-vendas.php',
type: 'POST',
data: 'idusuariooo='+idgravadouser+'&ano='+ano+'&mes='+mes,
success: function(dados){
var j = null;
$.each(dados, function(j,obj){
var nomeclientecomp = obj.nomeclientecomp;
var datacad = obj.datacad;
j++;
$("#liSta").append(nomeclientecomp+' - '+datacad+'<br>');
});
}
});
});
}
});
$("#aNos").append(ano+'('+totalAno+') - '+somaAno+'<br>');
});
}
});
fw7.hideIndicator();
};
Eu tenho essa aplicação em PHP que funciona mas queria passar para ajax porque todos os dados precisarão
ser atualizados ao editar/excluir.
Alguém alguma solução de como posso trazer esses dados organizados/agrupados?
Desde já agradeço a ajuda.Discussão (4)
Carregando comentários...