diff --git a/include/common/riga.php b/include/common/riga.php
index 786019cb3..4dd5b31bc 100755
--- a/include/common/riga.php
+++ b/include/common/riga.php
@@ -123,6 +123,9 @@ if (in_array($module['name'], ['Ordini cliente', 'Ordini fornitore'])) {
{[ "type": "date", "label": "'.tr('Data prevista evasione').'", "name": "data_evasione", "value": "'.$result['data_evasione'].'" ]}
+
+ {[ "type": "checkbox", "label": "'.tr('Articolo confermato').'", "name": "confermato", "value": "'.($options['action'] == 'add' ? setting("Conferma automaticamente le quantità negli ordini cliente") : $result['confermato']).'" ]}
+
';
diff --git a/modules/articoli/plugins/articoli.giacenze.php b/modules/articoli/plugins/articoli.giacenze.php
index d21a34edf..5af545da8 100755
--- a/modules/articoli/plugins/articoli.giacenze.php
+++ b/modules/articoli/plugins/articoli.giacenze.php
@@ -34,6 +34,7 @@ FROM or_ordini
WHERE idarticolo = '.prepare($articolo->id)."
AND (SELECT dir FROM or_tipiordine WHERE or_tipiordine.id=or_ordini.idtipoordine) = '|dir|'
AND (or_righe_ordini.qta - or_righe_ordini.qta_evasa) > 0
+ AND or_righe_ordini.confermato = 1
GROUP BY or_ordini.id
HAVING qta_ordinata > 0";
diff --git a/modules/ordini/actions.php b/modules/ordini/actions.php
index 06593472a..29b18675d 100755
--- a/modules/ordini/actions.php
+++ b/modules/ordini/actions.php
@@ -175,6 +175,7 @@ switch (post('op')) {
$articolo->costo_unitario = post('costo_unitario') ?: 0;
$articolo->data_evasione = post('data_evasione') ?: null;
+ $articolo->confermato = post('confermato') ?: 0;
$articolo->setPrezzoUnitario(post('prezzo_unitario'), post('idiva'));
$articolo->setSconto(post('sconto'), post('tipo_sconto'));
diff --git a/modules/ordini/quantita_impegnate.php b/modules/ordini/quantita_impegnate.php
index 952d7ed84..fc7fed4a9 100644
--- a/modules/ordini/quantita_impegnate.php
+++ b/modules/ordini/quantita_impegnate.php
@@ -54,9 +54,9 @@ foreach ($articoli as $elenco) {
$qta_impegnata = $database->fetchOne("SELECT SUM(qta) as qta
FROM or_righe_ordini
JOIN or_ordini ON or_ordini.id = or_righe_ordini.idordine
- WHERE or_ordini.id != '.prepare($ordine->id).'
- AND idstatoordine = (SELECT id FROM or_statiordine WHERE descrizione = 'Bozza')
+ WHERE idstatoordine = (SELECT id FROM or_statiordine WHERE descrizione = 'Bozza')
AND idtipoordine IN (SELECT id FROM or_tipiordine WHERE dir = 'entrata')
+ AND confermato = 1
AND idarticolo=".prepare($articolo->id).'
GROUP BY idarticolo')['qta'];
$qta_impegnata = floatval($qta_impegnata);
diff --git a/modules/ordini/row-list.php b/modules/ordini/row-list.php
index 1b7c57cc4..3790d6283 100755
--- a/modules/ordini/row-list.php
+++ b/modules/ordini/row-list.php
@@ -137,6 +137,7 @@ foreach ($righe as $riga) {
// Quantità e unità di misura
echo '
+
'.numberFormat($riga->qta_rimanente, 'qta').' / '.numberFormat($riga->qta, 'qta').' '.$riga->um.'
| ';
diff --git a/update/2_4_18.sql b/update/2_4_18.sql
index 67ed02432..d63b936c4 100644
--- a/update/2_4_18.sql
+++ b/update/2_4_18.sql
@@ -220,3 +220,12 @@ UPDATE `co_documenti` SET `id_banca_azienda` = NULL WHERE `id_banca_azienda` = 0
-- Aggiunta unità di misura secondaria per le stampe documenti di vendita
ALTER TABLE `mg_articoli` ADD `um_secondaria` varchar(255), ADD `fattore_um_secondaria` DECIMAL(15, 6);
+
+-- Aggiunta impostazione per impegnare o meno automaticamente le quantità negli ordini
+INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Conferma automaticamente le quantità negli ordini cliente', '1', 'boolean', '1', 'Ordini', NULL, NULL);
+
+ALTER TABLE `or_righe_ordini` ADD `confermato` BOOLEAN NOT NULL AFTER `id_dettaglio_fornitore`;
+UPDATE `or_righe_ordini` SET `confermato`=1;
+
+
+UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `mg_articoli` LEFT JOIN an_anagrafiche ON mg_articoli.id_fornitore=an_anagrafiche.idanagrafica LEFT JOIN co_iva ON mg_articoli.idiva_vendita=co_iva.id LEFT JOIN (SELECT SUM(qta-qta_evasa) AS qta_impegnata, idarticolo FROM or_righe_ordini INNER JOIN or_ordini ON or_righe_ordini.idordine=or_ordini.id INNER JOIN or_tipiordine ON or_ordini.idtipoordine=or_tipiordine.id WHERE idstatoordine IN(SELECT id FROM or_statiordine WHERE completato=0) AND or_tipiordine.dir=\'entrata\' AND or_righe_ordini.confermato = 1 GROUP BY idarticolo) a ON a.idarticolo=mg_articoli.id LEFT JOIN mg_categorie ON mg_articoli.id_categoria=mg_categorie.id LEFT JOIN mg_categorie AS sottocategorie ON mg_articoli.id_sottocategoria=sottocategorie.id WHERE 1=1 AND (`mg_articoli`.`deleted_at`) IS NULL HAVING 2=2 ORDER BY `mg_articoli`.`descrizione`' WHERE `zz_modules`.`name` = 'Articoli';
\ No newline at end of file