From 70322be9573e989849dcbfd16fb22a12dc27f4ae Mon Sep 17 00:00:00 2001 From: loviuz Date: Wed, 15 Apr 2020 16:25:44 +0200 Subject: [PATCH] #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; }