From f5b15738a562972b8d70175c9102ef90bc2758c5 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Tue, 11 Oct 2022 10:28:25 +0200 Subject: [PATCH 1/3] Fix minore #1073 --- modules/statistiche/edit.php | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/modules/statistiche/edit.php b/modules/statistiche/edit.php index 57f990b5a..4d0533cd2 100755 --- a/modules/statistiche/edit.php +++ b/modules/statistiche/edit.php @@ -281,7 +281,34 @@ $tipi = $dbo->fetchArray('SELECT * FROM `in_tipiintervento`'); $dataset = ''; foreach ($tipi as $tipo) { - $interventi = $dbo->fetchArray('SELECT COUNT(*) AS result, YEAR(in_interventi.data_richiesta) AS year, MONTH(in_interventi.data_richiesta) AS month FROM in_interventi WHERE in_interventi.idtipointervento = '.prepare($tipo['idtipointervento']).' AND in_interventi.data_richiesta BETWEEN '.prepare($start).' AND '.prepare($end).' GROUP BY YEAR(in_interventi.data_richiesta), MONTH(in_interventi.data_richiesta) ORDER BY YEAR(in_interventi.data_richiesta) ASC, MONTH(in_interventi.data_richiesta) ASC'); + $interventi = $dbo->fetchArray('SELECT + COUNT(in_interventi.id) AS result, + YEAR(sessioni.orario_fine) AS `year`, + MONTH(sessioni.orario_fine) AS `month` +FROM + in_interventi +LEFT JOIN( + SELECT + in_interventi_tecnici.idintervento, + MAX(orario_fine) AS orario_fine + FROM + in_interventi_tecnici + GROUP BY + idintervento +) sessioni +ON + in_interventi.id = sessioni.idintervento +WHERE + in_interventi.idtipointervento = '.prepare($tipo['idtipointervento']).' AND IFNULL( + sessioni.orario_fine, + in_interventi.data_richiesta + ) BETWEEN '.prepare($start).' AND '.prepare($end).' +GROUP BY + YEAR(sessioni.orario_fine), + MONTH(sessioni.orario_fine) +ORDER BY + YEAR(sessioni.orario_fine) ASC, + MONTH(sessioni.orario_fine) ASC'); $interventi = Stats::monthly($interventi, $start, $end); @@ -337,7 +364,8 @@ $(document).ready(function() { // Ore interventi per tipologia $dataset = ''; foreach ($tipi as $tipo) { - $interventi = $dbo->fetchArray('SELECT ROUND( SUM(in_interventi_tecnici.ore), 2 ) AS result, YEAR(in_interventi.data_richiesta) AS year, MONTH(in_interventi.data_richiesta) AS month FROM in_interventi INNER JOIN in_interventi_tecnici ON in_interventi.id=in_interventi_tecnici.idintervento WHERE in_interventi.idtipointervento = '.prepare($tipo['idtipointervento']).' AND in_interventi.data_richiesta BETWEEN '.prepare($start).' AND '.prepare($end).' GROUP BY YEAR(in_interventi.data_richiesta), MONTH(in_interventi.data_richiesta) ORDER BY YEAR(in_interventi.data_richiesta) ASC, MONTH(in_interventi.data_richiesta) ASC'); + $interventi = $dbo->fetchArray('SELECT ROUND( SUM(in_interventi_tecnici.ore), 2 ) AS result, YEAR(in_interventi_tecnici.orario_fine) AS year, MONTH(in_interventi_tecnici.orario_fine) AS month FROM in_interventi INNER JOIN in_interventi_tecnici ON in_interventi.id=in_interventi_tecnici.idintervento WHERE in_interventi.idtipointervento = '.prepare($tipo['idtipointervento']).' AND in_interventi.data_richiesta BETWEEN '.prepare($start).' AND '.prepare($end).' GROUP BY + YEAR(in_interventi_tecnici.orario_fine), MONTH(in_interventi_tecnici.orario_fine) ORDER BY YEAR(in_interventi_tecnici.orario_fine) ASC, MONTH(in_interventi_tecnici.orario_fine) ASC'); $interventi = Stats::monthly($interventi, $start, $end); From 863ff987f1a214fc70c01da8f9ce0ad2939e3dcc Mon Sep 17 00:00:00 2001 From: Beppe Date: Tue, 11 Oct 2022 10:58:32 +0200 Subject: [PATCH 2/3] Migliorie minori plugin giacenze --- .../articoli/plugins/articoli.giacenze.php | 39 +++++- .../articoli/plugins/dettagli_giacenze.php | 116 ++++++++++++++++++ 2 files changed, 153 insertions(+), 2 deletions(-) create mode 100755 modules/articoli/plugins/dettagli_giacenze.php diff --git a/modules/articoli/plugins/articoli.giacenze.php b/modules/articoli/plugins/articoli.giacenze.php index e82ee7541..c0e409244 100755 --- a/modules/articoli/plugins/articoli.giacenze.php +++ b/modules/articoli/plugins/articoli.giacenze.php @@ -41,6 +41,25 @@ WHERE idarticolo = '.prepare($articolo->id)." GROUP BY or_ordini.id HAVING qta_ordinata > 0"; +echo ' +
+
+

'.tr('Articolo').'

+
+ +
+
+
+ '.tr("Codice: ").''.$articolo->codice.' +
+ +
+ '.tr("Descrizione: ").''.$articolo->descrizione.' +
+
+
+
'; + /* ** Impegnato */ @@ -240,8 +259,9 @@ echo ' - - + + + @@ -252,6 +272,11 @@ foreach ($sedi as $sede) { + '; } @@ -262,3 +287,13 @@ foreach ($sedi as $sede) { '; + +echo ' +'; \ No newline at end of file diff --git a/modules/articoli/plugins/dettagli_giacenze.php b/modules/articoli/plugins/dettagli_giacenze.php new file mode 100755 index 000000000..241c496d0 --- /dev/null +++ b/modules/articoli/plugins/dettagli_giacenze.php @@ -0,0 +1,116 @@ +. + */ + +include_once __DIR__.'/../../../core.php'; + +use Modules\Articoli\Articolo; + +$articolo = Articolo::find($id_record); + +$idsede = (empty(get('idsede')) ? 0 : get('idsede')); +$movimenti = $articolo->movimentiComposti() + ->where('idsede',$idsede) + ->orderBy('mg_movimenti.data', 'DESC') + ->orderBy('mg_movimenti.id', 'DESC'); + +// Raggruppamento per documento +$movimenti = $movimenti->get(); +if (!empty($movimenti)) { + $totale = 0; + echo ' +
+
'.tr('Sede').''.tr('Q.tà').''.tr('Sede').''.tr('Q.tà').'#
'.$sede['nomesede'].' '.numberFormat($giacenze[$sede['id']][0]).' '.$articolo->um.' + + + +
+ + + + + + + '; + + foreach ($movimenti as $i => $movimento) { + // Quantità progressiva + if ($i == 0) { + $movimento['progressivo_finale'] = $articolo->qta; + } else { + $movimento['progressivo_finale'] = $movimenti[$i - 1]['progressivo_iniziale']; + } + $movimento['progressivo_iniziale'] = $movimento['progressivo_finale'] - $movimento->qta; + $movimento['progressivo_iniziale'] = $movimento['progressivo_finale'] - $movimento->qta; + + $movimenti[$i]['progressivo_iniziale'] = $movimento['progressivo_iniziale']; + $movimenti[$i]['progressivo_finale'] = $movimento['progressivo_finale']; + + $totale += $movimento->qta; + + // Quantità + echo ' + + + + + + '; + + // Data + echo ' + '; + + // Operazioni + echo ' + + '; + } + + echo ' +
'.tr('Q.tà').''.tr('Q.tà progressiva').''.tr('Operazione').''.tr('Data').'#
+ '.numberFormat($movimento->qta, 'qta').' '.$record['um'].' + + '.numberFormat($movimento['progressivo_iniziale'], 'qta').' '.$record['um'].' + + '.numberFormat($movimento['progressivo_finale'], 'qta').' '.$record['um'].' + + '.$movimento->descrizione.''.($movimento->hasDocument() ? ' - '.reference($movimento->getDocument()) : '').' + '.dateFormat($movimento->data).' '; + + if (Auth::admin() && $movimento->isManuale()) { + echo ' + + + '; + } + + echo ' +
+ + + + + + +
'.tr('Totale').''.Translator::numberToLocale($totale,'qta').' '.$articolo->um.'
'; +} else { + echo ' +
+ + '.tr('Questo articolo non è ancora stato movimentato').'. +
'; +} \ No newline at end of file From 012018b257b6a98469f02ac8df5514a2825c8733 Mon Sep 17 00:00:00 2001 From: loviuz Date: Tue, 11 Oct 2022 12:00:22 +0200 Subject: [PATCH 3/3] #1078 - Fix popup duplicazione --- modules/interventi/bulk.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/interventi/bulk.php b/modules/interventi/bulk.php index 244a9a89c..3348bc07a 100755 --- a/modules/interventi/bulk.php +++ b/modules/interventi/bulk.php @@ -324,7 +324,8 @@ if (App::debug()) {
{[ "type": "select", "label": "'.tr('Stato').'", "name": "idstatointervento", "required": 1, "values": "query=SELECT idstatointervento AS id, descrizione, colore AS _bgcolor_ FROM in_statiintervento WHERE deleted_at IS NULL ORDER BY descrizione", "value": "" ]}
{[ "type":"checkbox", "label":"'.tr('Duplica righe').'", "name":"righe", "value":"" ]}
{[ "type":"checkbox", "label":"'.tr('Duplica sessioni').'", "name":"sessioni", "value":"" ]} -
{[ "type":"checkbox", "label":"'.tr('Duplica impianti').'", "name":"impianti", "value":"" ]}', +
{[ "type":"checkbox", "label":"'.tr('Duplica impianti').'", "name":"impianti", "value":"" ]} + ', 'button' => tr('Procedi'), 'class' => 'btn btn-lg btn-warning', 'blank' => false,