From c120f7a6f1f4ab44d98e1053743e5e1dc0c8c7dc Mon Sep 17 00:00:00 2001 From: MatteoPistorello Date: Fri, 22 Oct 2021 17:14:13 +0200 Subject: [PATCH] Aggiunta selezione prezzo di acquisto per stampa inventario --- .../articoli/widgets/stampa_inventario.php | 6 ++- templates/magazzino_inventario/body.php | 24 ++++++++++- templates/magazzino_inventario/header.php | 43 +++++++++++++++++++ 3 files changed, 70 insertions(+), 3 deletions(-) create mode 100644 templates/magazzino_inventario/header.php diff --git a/modules/articoli/widgets/stampa_inventario.php b/modules/articoli/widgets/stampa_inventario.php index 5c4aee57c..bbb8e53a5 100755 --- a/modules/articoli/widgets/stampa_inventario.php +++ b/modules/articoli/widgets/stampa_inventario.php @@ -27,10 +27,14 @@ echo '
-
+
{[ "type": "select", "label": "'.tr('Articoli da stampare').'", "name": "tipo", "required": "1", "values": "list=\"full\": \"'.tr('Tutti').'\", \"nozero\": \"'.tr('Solo esistenti').'\"", "value": "nozero" ]}
+
+ {[ "type": "select", "label": "'.tr('Prezzo di acquisto').'", "name": "acquisto", "required": "1", "values": "list=\"standard\": \"'.tr('Scheda articolo').'\", \"first\": \"'.tr('Primo acquisto').'\", \"last\": \"'.tr('Ultimo acquisto').'\", \"media\": \"'.tr('Media ponderata').'\"", "value": "standard" ]} +
+

 

diff --git a/templates/magazzino_inventario/body.php b/templates/magazzino_inventario/body.php index 6fc07c0c1..8d9443dd0 100755 --- a/templates/magazzino_inventario/body.php +++ b/templates/magazzino_inventario/body.php @@ -45,11 +45,24 @@ $query = Modules::replaceAdditionals($id_module, $query); // Modifiche alla query principale $query = preg_replace('/FROM `mg_articoli`/', ' FROM mg_articoli LEFT JOIN (SELECT idarticolo, SUM(qta) AS qta_totale FROM mg_movimenti WHERE data <='.prepare($period_end).' GROUP BY idarticolo) movimenti ON movimenti.idarticolo=mg_articoli.id ', $query); -$query = preg_replace('/^SELECT /', 'SELECT mg_articoli.prezzo_acquisto,', $query); $query = preg_replace('/^SELECT /', 'SELECT mg_articoli.prezzo_vendita,', $query); $query = preg_replace('/^SELECT /', 'SELECT mg_articoli.um,', $query); $query = preg_replace('/^SELECT /', 'SELECT movimenti.qta_totale,', $query); +if (post('acquisto') == 'standard') { + $query = preg_replace('/^SELECT /', 'SELECT mg_articoli.prezzo_acquisto AS acquisto,', $query); + $text = "al prezzo presente nella scheda articolo"; +} elseif(post('acquisto') == 'first') { + $query = preg_replace('/^SELECT /', 'SELECT (SELECT (prezzo_unitario-sconto_unitario) AS acquisto FROM co_righe_documenti LEFT JOIN co_documenti ON co_righe_documenti.iddocumento=co_documenti.id WHERE co_documenti.idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir="uscita") AND idarticolo=mg_articoli.id ORDER BY co_righe_documenti.id ASC LIMIT 0,1) AS acquisto,', $query); + $text = "al primo articolo acquistato"; +} elseif(post('acquisto') == 'last') { + $query = preg_replace('/^SELECT /', 'SELECT (SELECT (prezzo_unitario-sconto_unitario) AS acquisto FROM co_righe_documenti LEFT JOIN co_documenti ON co_righe_documenti.iddocumento=co_documenti.id WHERE co_documenti.idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir="uscita") AND idarticolo=mg_articoli.id ORDER BY co_righe_documenti.id DESC LIMIT 0,1) AS acquisto,', $query); + $text = "all'ultimo articolo acquistato"; +} else { + $query = preg_replace('/^SELECT /', 'SELECT (SELECT (SUM(prezzo_unitario-sconto_unitario)/SUM(qta)) AS acquisto FROM co_righe_documenti LEFT JOIN co_documenti ON co_righe_documenti.iddocumento=co_documenti.id WHERE co_documenti.idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir="uscita") AND idarticolo=mg_articoli.id) AS acquisto,', $query); + $text = "alla media ponderata dell'articolo"; +} + if (post('tipo') == 'nozero') { $query = str_replace('2=2', '2=2 AND movimenti.qta_totale > 0', $query); } @@ -61,6 +74,13 @@ echo ' '_DATE_' => Translator::dateToLocale($period_end), ], ['upper' => true]).' +

+ '.tr("Prezzo di acquisto calcolato in base _TEXT_", + [ + "_TEXT_" => $text, + ]).' +

+ @@ -88,7 +108,7 @@ foreach ($data['results'] as $r) { - + '; diff --git a/templates/magazzino_inventario/header.php b/templates/magazzino_inventario/header.php new file mode 100644 index 000000000..088f081cb --- /dev/null +++ b/templates/magazzino_inventario/header.php @@ -0,0 +1,43 @@ +. + */ + +/* + * Header di default. + * I contenuti di questo file vengono utilizzati per generare l'header delle stampe nel caso non esista un file header.php all'interno della stampa. + * + * Per modificare l'header della stampa basta aggiungere un file header.php all'interno della cartella della stampa con i contenuti da mostrare (vedasi templates/fatture/header.php). + * + * La personalizzazione specifica dell'header deve comunque seguire lo standard della cartella custom: anche se il file header.php non esiste nella stampa originaria, se si vuole personalizzare l'header bisogna crearlo all'interno della cartella custom. + */ + +echo ' +
+
+

'.$f_ragionesociale.'

+

'.$f_indirizzo.'

+

'.$f_citta_full.'

+

'.(!empty($f_piva) ? tr('P.Iva').': '.$f_piva : '').'

+

'.(!empty($f_codicefiscale) ? tr('C.F.').': '.$f_codicefiscale : '').'

+

'.(!empty($f_capsoc) ? tr('Cap.Soc.').': '.$f_capsoc : '').'

+

'.(!empty($f_telefono) ? tr('Tel').': '.$f_telefono : '').'

+

'.(!empty($f_email) ? tr('Email').': '.$f_email : '').'

+

'.(!empty($f_pec) ? tr('PEC').': '.$f_pec : '').'

+

'.(!empty($f_sitoweb) ? tr('Web').': '.$f_sitoweb : '').'

+
+
';
'.$r['Descrizione'].' '.moneyFormat($r['prezzo_vendita']).' '.Translator::numberToLocale($r['qta_totale']).' '.$r['um'].''.moneyFormat($r['prezzo_acquisto']).''.moneyFormat($r['acquisto']).' '.moneyFormat($valore_magazzino).'