From bc42def20b94924ee66a4c6136fddc3499830a97 Mon Sep 17 00:00:00 2001 From: loviuz Date: Tue, 14 Apr 2020 15:13:22 +0200 Subject: [PATCH 1/5] Fix totale volume e peso in stampa ddt e fatture --- templates/ddt/footer.php | 4 ++-- templates/fatture/footer.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/templates/ddt/footer.php b/templates/ddt/footer.php index 101f3ed97..b62c48318 100755 --- a/templates/ddt/footer.php +++ b/templates/ddt/footer.php @@ -12,10 +12,10 @@ $totale_iva = $documento->iva; $totale = $documento->totale; $volume = $righe->sum(function ($item) { - return $item->isArticolo() ? $item->articolo->volume : 0; + return $item->isArticolo() ? $item->articolo->volume*$item->qta : 0; }); $peso_lordo = $righe->sum(function ($item) { - return $item->isArticolo() ? $item->articolo->peso_lordo : 0; + return $item->isArticolo() ? $item->articolo->peso_lordo*$item->qta : 0; }); // TABELLA PRINCIPALE diff --git a/templates/fatture/footer.php b/templates/fatture/footer.php index d8034d899..ed6a1b560 100755 --- a/templates/fatture/footer.php +++ b/templates/fatture/footer.php @@ -15,10 +15,10 @@ $netto_a_pagare = abs($documento->netto); $show_sconto = $sconto > 0; $volume = $righe->sum(function ($item) { - return $item->isArticolo() ? $item->articolo->volume : 0; + return $item->isArticolo() ? $item->articolo->volume*$item->qta : 0; }); $peso_lordo = $righe->sum(function ($item) { - return $item->isArticolo() ? $item->articolo->peso_lordo : 0; + return $item->isArticolo() ? $item->articolo->peso_lordo*$item->qta : 0; }); $width = round(100 / ($show_sconto ? 5 : 3), 2); From 4788173a0205e81bc07547b419eb98c55fc370db Mon Sep 17 00:00:00 2001 From: loviuz Date: Wed, 15 Apr 2020 14:28:30 +0200 Subject: [PATCH 2/5] Fix php --- reset.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reset.php b/reset.php index d6b2a78a0..24f514edb 100755 --- a/reset.php +++ b/reset.php @@ -41,7 +41,7 @@ switch (post('op')) { flash()->info(tr("Se le informazioni inserite corrispondono ai dati di un utente, riceverai a breve un'email all'indirizzo collegato").'.'); redirect(ROOTDIR.'/index.php'); - exit() + exit(); break; case 'update': From 70322be9573e989849dcbfd16fb22a12dc27f4ae Mon Sep 17 00:00:00 2001 From: loviuz Date: Wed, 15 Apr 2020 16:25:44 +0200 Subject: [PATCH 3/5] #779 Ottimizzazione suggerimento prezzi di acquisto e vendita --- include/common/articolo.php | 27 ++++++------ modules/articoli/ajax/complete.php | 68 ++++++++++++++++-------------- 2 files changed, 50 insertions(+), 45 deletions(-) diff --git a/include/common/articolo.php b/include/common/articolo.php index c6765d864..b7fb30c1c 100755 --- a/include/common/articolo.php +++ b/include/common/articolo.php @@ -16,10 +16,11 @@ if (empty($result['idarticolo'])) { '; } else { $database = database(); - $articolo = $database->fetchArray('SELECT codice, descrizione FROM mg_articoli WHERE id = '.prepare($result['idarticolo']))[0]; + $articolo = $database->fetchArray('SELECT id, codice, descrizione FROM mg_articoli WHERE id = '.prepare($result['idarticolo']))[0]; echo ' -

'.tr('Articolo').': '.$articolo['codice'].' - '.$articolo['descrizione'].'.

'; +

'.tr('Articolo').': '.$articolo['codice'].' - '.$articolo['descrizione'].'.

+ '; } // Selezione impianto per gli Interventi @@ -41,22 +42,22 @@ if ($module['name'] != 'Contratti' && $module['name'] != 'Preventivi') { echo '
- -
-
- -
-
- +
+
+ +
+
diff --git a/modules/articoli/ajax/complete.php b/modules/articoli/ajax/complete.php index 9b06fb8b5..cc2906f6d 100755 --- a/modules/articoli/ajax/complete.php +++ b/modules/articoli/ajax/complete.php @@ -13,24 +13,26 @@ switch ($resource) { echo ''; if (!empty($idarticolo)) { // Ultime 5 vendite al cliente - $fatture = $dbo->fetchArray('SELECT iddocumento, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM co_documenti WHERE id=iddocumento) AS n_fattura, (SELECT numero_esterno FROM co_documenti WHERE id=iddocumento) AS n2_fattura, (SELECT data FROM co_documenti WHERE id=iddocumento) AS data_fattura FROM co_righe_documenti WHERE idarticolo="'.$idarticolo."\" AND iddocumento IN(SELECT id FROM co_documenti WHERE idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir='entrata') AND idanagrafica=\"".$idanagrafica.'") LIMIT 0,5'); + $documenti = $dbo->fetchArray('SELECT iddocumento AS id, "Fattura" AS tipo, "Fatture di vendita" AS modulo, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM co_documenti WHERE id=iddocumento) AS n_documento, (SELECT numero_esterno FROM co_documenti WHERE id=iddocumento) AS n2_documento, (SELECT data FROM co_documenti WHERE id=iddocumento) AS data_documento FROM co_righe_documenti WHERE idarticolo='.prepare($idarticolo).' AND iddocumento IN(SELECT id FROM co_documenti WHERE idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir="entrata") AND idanagrafica='.prepare($idanagrafica).') + UNION + SELECT idddt AS id, "Ddt" AS tipo, "Ddt di vendita" AS modulo, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM dt_ddt WHERE id=idddt) AS n_documento, (SELECT numero_esterno FROM dt_ddt WHERE id=idddt) AS n2_documento, (SELECT data FROM dt_ddt WHERE id=idddt) AS data_documento FROM dt_righe_ddt WHERE idarticolo='.$idarticolo.' AND idddt IN(SELECT id FROM dt_ddt WHERE idtipoddt IN(SELECT id FROM dt_tipiddt WHERE dir="entrata") AND idanagrafica='.prepare($idanagrafica).') LIMIT 0,5'); - if (sizeof($fatture) > 0) { + if (sizeof($documenti) > 0) { echo "
\n"; echo "\n"; echo "\n"; - for ($i = 0; $i < sizeof($fatture); ++$i) { - ($fatture[$i]['n2_fattura'] != '') ? $n_fattura = $fatture[$i]['n2_fattura'] : $n_fattura = $fatture[$i]['n_fattura']; + for ($i = 0; $i < sizeof($documenti); ++$i) { + ($documenti[$i]['n2_documento'] != '') ? $n_documento = $documenti[$i]['n2_documento'] : $n_documento = $documenti[$i]['n_documento']; - $link_id = Modules::get('Fatture di vendita')['id']; - echo "\n"; - echo "\n"; - array_push($ids, '"'.$fatture[$i]['iddocumento'].'"'); + $link_id = Modules::get($documenti[$i]['modulo'])['id']; + echo "\n"; + echo "\n"; + array_push($ids, '"'.$documenti[$i]['id'].'"'); } echo "
DocumentoTotale
Fatt. n. ".$n_fattura.' del '.Translator::dateToLocale($fatture[$i]['data_fattura'])." ".moneyFormat($fatture[$i]['costo_unitario'])."
".$documenti[$i]['tipo'].". n. ".$n_documento.' del '.Translator::dateToLocale($documenti[$i]['data_documento'])." ".moneyFormat($documenti[$i]['costo_unitario'])."
\n"; } else { - echo '
'.tr('Nessuna vendita di questo articolo al cliente selezionato')."...
\n"; + echo '
'.tr('Nessuna vendita trovata di questo articolo al cliente')."...
\n"; } } echo '
'; @@ -40,53 +42,55 @@ switch ($resource) { case 'getprezzivendita': echo ''; // Ultime 5 vendite totali - $fatture = $dbo->fetchArray("SELECT DISTINCT iddocumento, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM co_documenti WHERE id=iddocumento) AS n_fattura, (SELECT numero_esterno FROM co_documenti WHERE id=iddocumento) AS n2_fattura, (SELECT data FROM co_documenti WHERE id=iddocumento) AS data_fattura FROM co_righe_documenti WHERE idarticolo='".$idarticolo."' AND iddocumento IN(SELECT id FROM co_documenti WHERE idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir='entrata') ) ORDER BY data_fattura DESC, n_fattura DESC LIMIT 0,5"); + $documenti = $dbo->fetchArray('SELECT iddocumento AS id, "Fattura" AS tipo, "Fatture di vendita" AS modulo, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM co_documenti WHERE id=iddocumento) AS n_documento, (SELECT numero_esterno FROM co_documenti WHERE id=iddocumento) AS n2_documento, (SELECT data FROM co_documenti WHERE id=iddocumento) AS data_documento FROM co_righe_documenti WHERE idarticolo='.prepare($idarticolo).' AND iddocumento IN(SELECT id FROM co_documenti WHERE idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir="entrata")) + UNION + SELECT idddt AS id, "Ddt" AS tipo, "Ddt di vendita" AS modulo, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM dt_ddt WHERE id=idddt) AS n_documento, (SELECT numero_esterno FROM dt_ddt WHERE id=idddt) AS n2_documento, (SELECT data FROM dt_ddt WHERE id=idddt) AS data_documento FROM dt_righe_ddt WHERE idarticolo='.prepare($idarticolo).' AND idddt IN(SELECT id FROM dt_ddt WHERE idtipoddt IN(SELECT id FROM dt_tipiddt WHERE dir="entrata")) LIMIT 0,5'); - if (sizeof($fatture) > 0) { + if (sizeof($documenti) > 0) { echo "
\n"; echo "\n"; echo "\n"; - for ($i = 0; $i < sizeof($fatture); ++$i) { - ($fatture[$i]['n2_fattura'] != '') ? $n_fattura = $fatture[$i]['n2_fattura'] : $n_fattura = $fatture[$i]['n_fattura']; + for ($i = 0; $i < sizeof($documenti); ++$i) { + ($documenti[$i]['n2_documento'] != '') ? $n_documento = $documenti[$i]['n2_documento'] : $n_documento = $documenti[$i]['n_documento']; - $link_id = Modules::get('Fatture di vendita')['id']; - echo "\n"; - echo "\n"; + $link_id = Modules::get($documenti[$i]['modulo'])['id']; + echo "\n"; + echo "\n"; + array_push($ids, '"'.$documenti[$i]['id'].'"'); } echo "
DocumentoTotale
Fatt. n. ".$n_fattura.' del '.Translator::dateToLocale($fatture[$i]['data_fattura'])."".moneyFormat($fatture[$i]['costo_unitario'])."
".$documenti[$i]['tipo'].". n. ".$n_documento.' del '.Translator::dateToLocale($documenti[$i]['data_documento'])." ".moneyFormat($documenti[$i]['costo_unitario'])."
\n"; } else { - echo '
'.tr('Questo articolo non è mai stato venduto')."...
\n"; + echo '
'.tr('Nessuna vendita trovata di questo articolo')."...
\n"; } - echo '
'; - echo '
'; break; - // Legge gli ultimi prezzi di vendita di un determinato articolo e li visualizza per suggerire il prezzo di vendita + // Legge gli ultimi prezzi di acquisto di un determinato articolo e li visualizza per suggerire il prezzo di acquisto case 'getprezziacquisto': echo ''; - // Ultime 5 vendite totali - $fatture = $dbo->fetchArray("SELECT DISTINCT iddocumento, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM co_documenti WHERE id=iddocumento) AS n_fattura, (SELECT numero_esterno FROM co_documenti WHERE id=iddocumento) AS n2_fattura, (SELECT data FROM co_documenti WHERE id=iddocumento) AS data_fattura FROM co_righe_documenti WHERE idarticolo='".$idarticolo."' AND iddocumento IN(SELECT id FROM co_documenti WHERE idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir='uscita') ) ORDER BY data_fattura DESC, n_fattura DESC LIMIT 0,5"); + // Ultimi 5 acquisti totali + $documenti = $dbo->fetchArray('SELECT iddocumento AS id, "Fattura" AS tipo, "Fatture di vendita" AS modulo, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM co_documenti WHERE id=iddocumento) AS n_documento, (SELECT numero_esterno FROM co_documenti WHERE id=iddocumento) AS n2_documento, (SELECT data FROM co_documenti WHERE id=iddocumento) AS data_documento FROM co_righe_documenti WHERE idarticolo='.prepare($idarticolo).' AND iddocumento IN(SELECT id FROM co_documenti WHERE idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir="uscita")) + UNION + SELECT idddt AS id, "Ddt" AS tipo, "Ddt di vendita" AS modulo, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM dt_ddt WHERE id=idddt) AS n_documento, (SELECT numero_esterno FROM dt_ddt WHERE id=idddt) AS n2_documento, (SELECT data FROM dt_ddt WHERE id=idddt) AS data_documento FROM dt_righe_ddt WHERE idarticolo='.prepare($idarticolo).' AND idddt IN(SELECT id FROM dt_ddt WHERE idtipoddt IN(SELECT id FROM dt_tipiddt WHERE dir="uscita")) LIMIT 0,5'); - if (sizeof($fatture) > 0) { + if (sizeof($documenti) > 0) { echo "
\n"; echo "\n"; - echo "\n"; + echo "\n"; - for ($i = 0; $i < sizeof($fatture); ++$i) { - ($fatture[$i]['n2_fattura'] != '') ? $n_fattura = $fatture[$i]['n2_fattura'] : $n_fattura = $fatture[$i]['n_fattura']; + for ($i = 0; $i < sizeof($documenti); ++$i) { + ($documenti[$i]['n2_documento'] != '') ? $n_documento = $documenti[$i]['n2_documento'] : $n_documento = $documenti[$i]['n_documento']; - $link_id = Modules::get('Fatture di acquisto')['id']; - echo "\n"; - echo "\n"; + $link_id = Modules::get($documenti[$i]['modulo'])['id']; + echo "\n"; + echo "\n"; + array_push($ids, '"'.$documenti[$i]['id'].'"'); } echo "
DocumentoTotale
Totale
Fatt. n. ".$n_fattura.' del '.Translator::dateToLocale($fatture[$i]['data_fattura'])."".moneyFormat($fatture[$i]['costo_unitario'])."
".$documenti[$i]['tipo'].". n. ".$n_documento.' del '.Translator::dateToLocale($documenti[$i]['data_documento'])." ".moneyFormat($documenti[$i]['costo_unitario'])."
\n"; } else { - echo '
'.tr('Questo articolo non è mai stato acquistato')."...
\n"; + echo '
'.tr('Nessun acquisto trovato di questo articolo')."...
\n"; } - echo '
'; - echo '
'; break; } From 22e731c280dbf2756858b212e128133cf6bc633a Mon Sep 17 00:00:00 2001 From: loviuz Date: Wed, 15 Apr 2020 16:43:23 +0200 Subject: [PATCH 4/5] Fix resize tabella serials --- modules/articoli/plugins/articoli.lotti.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/articoli/plugins/articoli.lotti.php b/modules/articoli/plugins/articoli.lotti.php index 48a22a183..effa8addc 100755 --- a/modules/articoli/plugins/articoli.lotti.php +++ b/modules/articoli/plugins/articoli.lotti.php @@ -94,7 +94,7 @@ $query = 'SELECT id, serial, created_at FROM mg_prodotti WHERE serial IS NOT NUL $rs2 = $dbo->fetchArray($query); echo ' - +
@@ -244,6 +244,7 @@ echo ' echo '
'.tr('Serial').'