Buongiorno a tutti. Dopo aver aggiornato la versione del gestionale dalla 2.4.37 alla 2.4.38 non mi funziona più la visualizzazione della giacenza delle sedi. Qualunque sede cambio dall'apposito menù a tendina "Sede", la tabella non viene popolata correttamente con le giacenze ma appare sempre la dicitura "Nessun dato presente nella tabella". Natuarlmente ci sono articoli con giacenze quindi c'è qualche problema nella query (presumibilmente). E' capitato anche ad altri o è un problema mio? eventualmente cosa potrei controllare per risolverlo?
NB: Aggiungo che nella vista Articoli, vedo correttamente le quantità degli articoli che ho nei magazzini.
Grazie per le eventuali risposte.
Come non detto, ho capito dove è il problema e risolto. Nell'ultima versione c'è un problema nella query di default ovvero:
SELECT
|select|
FROM
mg_articoli
LEFT JOIN an_anagrafiche ON mg_articoli.id_fornitore = an_anagrafiche.idanagrafica
LEFT JOIN co_iva ON mg_articoli.idiva_vendita = co_iva.id
LEFT JOIN (SELECT SUM(qta - qta_evasa) AS qta_impegnata, idarticolo FROM or_righe_ordini INNER JOIN or_ordini ON or_righe_ordini.idordine = or_ordini.id WHERE idstatoordine IN(SELECT id FROM or_statiordine WHERE completato = 0) GROUP BY idarticolo) ordini ON ordini.idarticolo = mg_articoli.id
LEFT JOIN (SELECT idarticolo
, idsede
, SUM(qta
) AS qta
FROM mg_movimenti
WHERE idsede
= '' GROUP BY idarticolo
, idsede
) movimenti ON mg_articoli
.id
= movimenti
.idarticolo
LEFT JOIN (SELECT id, nome AS nome FROM mg_categorie)AS categoria ON categoria.id= mg_articoli.id_categoria
LEFT JOIN (SELECT id, nome AS nome FROM mg_categorie)AS sottocategoria ON sottocategoria.id=mg_articoli.id_sottocategoria
LEFT JOIN (SELECT co_iva.percentuale AS perc, co_iva.id, zz_settings.nome FROM co_iva INNER JOIN zz_settings ON co_iva.id=zz_settings.valore)AS iva ON iva.nome= 'Iva predefinita'
WHERE
1=1 AND mg_articoli
.deleted_at
IS NULL
HAVING
2=2 AND Q.tà
> 0
ORDER BY
descrizione
Query funzionante
SELECT
|select|
FROM
mg_articoli
LEFT JOIN an_anagrafiche ON mg_articoli.id_fornitore = an_anagrafiche.idanagrafica
LEFT JOIN co_iva ON mg_articoli.idiva_vendita = co_iva.id
LEFT JOIN (SELECT SUM(qta - qta_evasa) AS qta_impegnata, idarticolo FROM or_righe_ordini INNER JOIN or_ordini ON or_righe_ordini.idordine = or_ordini.id WHERE idstatoordine IN(SELECT id FROM or_statiordine WHERE completato = 0) GROUP BY idarticolo) ordini ON ordini.idarticolo = mg_articoli.id
LEFT JOIN (SELECT idarticolo
, idsede
, SUM(qta
) AS qta
FROM mg_movimenti
WHERE idsede
= |giacenze_sedi_idsede| GROUP BY idarticolo
, idsede
) movimenti ON mg_articoli
.id
= movimenti
.idarticolo
LEFT JOIN (SELECT id, nome AS nome FROM mg_categorie)AS categoria ON categoria.id= mg_articoli.id_categoria
LEFT JOIN (SELECT id, nome AS nome FROM mg_categorie)AS sottocategoria ON sottocategoria.id=mg_articoli.id_sottocategoria
LEFT JOIN (SELECT co_iva.percentuale AS perc, co_iva.id, zz_settings.nome FROM co_iva INNER JOIN zz_settings ON co_iva.id=zz_settings.valore)AS iva ON iva.nome= 'Iva predefinita'
WHERE
1=1 AND mg_articoli
.deleted_at
IS NULL
HAVING
2=2 AND Q.tà
> 0
ORDER BY
descrizione
In pratica il problema risiede nella riga 10 della query per chi ha più di una sede e quindi (più di un magazzino) non veniva considerato correttamente l' id_sede.
Si può chiudere, grazie