From 5cb487d5c4b4977d7c7a636b9cd3d30a208df4e0 Mon Sep 17 00:00:00 2001 From: MatteoPistorello Date: Tue, 2 May 2023 14:55:21 +0200 Subject: [PATCH] =?UTF-8?q?Gestione=20quantit=C3=A0=20secondaria?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/common/riga.php | 37 +++++++++++++++++++++-- modules/articoli/ajax/select.php | 1 + plugins/importFE/src/FatturaOrdinaria.php | 8 +++-- 3 files changed, 41 insertions(+), 5 deletions(-) diff --git a/include/common/riga.php b/include/common/riga.php index 4e10c2de3..cd5f365ba 100755 --- a/include/common/riga.php +++ b/include/common/riga.php @@ -17,6 +17,9 @@ * along with this program. If not, see . */ +$articolo = $database->selectOne('mg_articoli', '*', ['id' => $result['idarticolo']]); +$width = $options['dir'] == 'uscita' && $articolo['fattore_um_secondaria'] ? 3 : 4; + // Descrizione echo App::internalLoad('descrizione.php', $result, $options); @@ -26,21 +29,49 @@ echo App::internalLoad('conti.php', $result, $options); // Iva echo '
-
+
{[ "type": "select", "label": "'.tr('Iva').'", "name": "idiva", "required": 1, "value": "'.$result['idiva'].'", "ajax-source": "iva", "select-options": '.json_encode($options['select-options']['iva']).' ]}
'; // Quantità echo ' -
+
{[ "type": "number", "label": "'.tr('Q.tà').'", "name": "qta", "required": 1, "value": "'.abs((float) $result['qta']).'", "decimals": "qta"'.(isset($result['max_qta']) ? ', "icon-after": "/ '.numberFormat(abs((float) $result['max_qta']), 'qta').' "' : '').', "min-value": "'.abs((float) $result['qta_evasa']).'" ]}
'; // Unità di misura echo ' -
+
{[ "type": "select", "label": "'.tr('Unità di misura').'", "icon-after": "add|'.Modules::get('Unità di misura')['id'].'", "name": "um", "value": "'.$result['um'].'", "ajax-source": "misure" ]} +
'; + +// Unità di misura +if ($options['dir'] == 'uscita' && $articolo['fattore_um_secondaria']) { +echo ' +
+ {[ "type": "number", "label": "'.tr('Q.tà secondaria').'", "name": "fattore_um_secondaria", "value": "'.abs((float)$articolo['fattore_um_secondaria'] * $result['qta']).'", "icon-after": "'.$articolo['um_secondaria'].'" ]}
+ + '; +} +echo '
'; $is_nota = $options['is_nota'] ?: 0; diff --git a/modules/articoli/ajax/select.php b/modules/articoli/ajax/select.php index 46c095a2b..78d8c0d7d 100755 --- a/modules/articoli/ajax/select.php +++ b/modules/articoli/ajax/select.php @@ -86,6 +86,7 @@ switch ($resource) { $query .= ' round(mg_articoli.qta,'.setting('Cifre decimali per quantità').") AS qta, mg_articoli.um, + mg_articoli.fattore_um_secondaria, mg_articoli.servizio, mg_articoli.idconto_vendita, diff --git a/plugins/importFE/src/FatturaOrdinaria.php b/plugins/importFE/src/FatturaOrdinaria.php index 186775e80..5ef4bd397 100755 --- a/plugins/importFE/src/FatturaOrdinaria.php +++ b/plugins/importFE/src/FatturaOrdinaria.php @@ -238,14 +238,18 @@ class FatturaOrdinaria extends FatturaElettronica // Nel caso il prezzo sia negativo viene gestito attraverso l'inversione della quantità (come per le note di credito) // TODO: per migliorare la visualizzazione, sarebbe da lasciare negativo il prezzo e invertire gli sconti. $prezzo = $totale_righe > 0 ? $riga['PrezzoUnitario'] : -$riga['PrezzoUnitario']; - $qta = $riga['Quantita'] ?: 1; + $qta = (!empty($articolo->um) && !empty($articolo->fattore_um_secondaria) && $riga['UnitaMisura'] == $articolo->um_secondaria) ? $riga['Quantita'] / $articolo->fattore_um_secondaria : ($riga['Quantita'] ?: 1); // Prezzo e quantità $obj->prezzo_unitario = $prezzo; $obj->qta = $qta; if (!empty($riga['UnitaMisura'])) { - $obj->um = $riga['UnitaMisura']; + if (!empty($articolo->um) && !empty($articolo->fattore_um_secondaria) && $riga['UnitaMisura'] == $articolo->um_secondaria) { + $obj->um = $articolo->um; + } else { + $obj->um = $riga['UnitaMisura']; + } } // Sconti e maggiorazioni