diff --git a/include/common/articolo.php b/include/common/articolo.php index 6aaa88927..968863f78 100755 --- a/include/common/articolo.php +++ b/include/common/articolo.php @@ -78,9 +78,9 @@ $(document).ready(function () { var id_conto = $data.idconto_'.($options['dir'] == 'entrata' ? 'vendita' : 'acquisto').'; - $("#prezzo").val($data.prezzo_'.($options['dir'] == 'entrata' ? 'vendita' : 'acquisto').'); + $("#prezzo_unitario").val($data.prezzo_'.($options['dir'] == 'entrata' ? 'vendita' : 'acquisto').'); - $("#prezzo_acquisto").val($data.prezzo_acquisto); + $("#costo_unitario").val($data.prezzo_acquisto); $("#descrizione_riga").val($data.descrizione); diff --git a/include/common/riga.php b/include/common/riga.php index 6f75bbf78..8afa978b6 100755 --- a/include/common/riga.php +++ b/include/common/riga.php @@ -41,22 +41,22 @@ if ($options['dir'] == 'entrata') { // Prezzo di acquisto unitario echo '
- {[ "type": "number", "label": "'.tr('Prezzo unitario di acquisto').'", "name": "prezzo_acquisto", "value": "'.$result['costo_unitario'].'", "icon-after": "'.currency().'" ]} + {[ "type": "number", "label": "'.tr('Prezzo unitario di acquisto').'", "name": "costo_unitario", "value": "'.$result['costo_unitario'].'", "icon-after": "'.currency().'" ]}
'; // Funzione per l'aggiornamento in tempo reale del guadagno echo ' '; @@ -81,7 +81,7 @@ if ($options['dir'] == 'entrata') { // Prezzo di vendita unitario echo '
- {[ "type": "number", "label": "'.$label.'", "name": "prezzo", "value": "'.$result['prezzo_unitario'].'", "required": 1, "icon-after": "'.currency().'" ]} + {[ "type": "number", "label": "'.$label.'", "name": "prezzo_unitario", "value": "'.$result['prezzo_unitario'].'", "required": 1, "icon-after": "'.currency().'", "help": "'.($options['dir'] == 'entrata' && setting('Utilizza prezzi di vendita con IVA incorporata') ? tr('Importo con IVA incorporata') : '').'" ]}
'; // Sconto unitario diff --git a/include/src/Components/Row.php b/include/src/Components/Row.php index 8abc2dff4..433284c0b 100755 --- a/include/src/Components/Row.php +++ b/include/src/Components/Row.php @@ -132,6 +132,61 @@ abstract class Row extends Description $this->load('aliquota'); } + /** + * Imposta il prezzo unitario per la riga. + * + * @param int $value + */ + public function setPrezzoUnitarioAttribute($value) + { + $percentuale_iva = floatval($this->aliquota->percentuale) / 100; + + // Gestione IVA incorporata + if ($this->parent->direzione == 'entrata' && setting('Utilizza prezzi di vendita con IVA incorporata')) { + $this->attributes['prezzo_unitario_ivato'] = $value; + + $this->attributes['iva_unitaria'] = $value * $percentuale_iva / (1 + $percentuale_iva); // Calcolo IVA + $this->attributes['prezzo_unitario'] = $value - $this->attributes['iva_unitaria']; + } else { + $this->attributes['prezzo_unitario'] = $value; + + $this->attributes['iva_unitaria'] = $value * $percentuale_iva; // Calcolo IVA + $this->attributes['prezzo_unitario_ivato'] = $value + $this->attributes['iva_unitaria']; + } + } + + public function setSconto($value, $type) + { + $percentuale_iva = floatval($this->aliquota->percentuale) / 100; + + if ($type == 'PRC') { + $this->attributes['sconto_percentuale'] = $value; + + $sconto = calcola_sconto([ + 'sconto' => $this->sconto_unitario, + 'prezzo' => $this->prezzo_unitario, + 'tipo' => 'PRC', + 'qta' => 1, + ]); + } else { + $this->attributes['sconto_percentuale'] = 0; + $sconto = $value; + } + + // Gestione IVA incorporata + if ($this->parent->direzione == 'entrata' && setting('Utilizza prezzi di vendita con IVA incorporata')) { + $this->attributes['sconto_unitario_ivato'] = $sconto; + + $this->attributes['sconto_iva'] = $sconto * $percentuale_iva / (1 + $percentuale_iva); // Calcolo IVA + $this->attributes['sconto_unitario'] = $sconto - $this->attributes['sconto_iva']; + } else { + $this->attributes['sconto_unitario'] = $sconto; + + $this->attributes['sconto_iva'] = $sconto * $percentuale_iva; // Calcolo IVA + $this->attributes['sconto_unitario_ivato'] = $sconto + $this->attributes['sconto_iva']; + } + } + /** * Salva la riga, impostando i campi dipendenti dai singoli parametri. * diff --git a/lib/common.php b/lib/common.php index 276e3db80..60bda8825 100755 --- a/lib/common.php +++ b/lib/common.php @@ -43,6 +43,19 @@ function sum($first, $second = null, $decimals = 4) return floatval($result); } +/** + * @param $field + * @param $id_riga + * @param $old_qta + * @param $new_qta + * @param $dir + * + * @throws Exception + * + * @return bool + * + * @deprecated + */ function controlla_seriali($field, $id_riga, $old_qta, $new_qta, $dir) { $dbo = database(); @@ -79,6 +92,8 @@ function controlla_seriali($field, $id_riga, $old_qta, $new_qta, $dir) * @param string $dir * * @return array + * + * @deprecated */ function seriali_non_rimuovibili($field, $id_riga, $dir) { @@ -249,3 +264,25 @@ function orderValue($table, $field, $id) { return database()->fetchOne('SELECT IFNULL(MAX(`order`) + 1, 0) AS value FROM '.$table.' WHERE '.$field.' = '.prepare($id))['value']; } + +/** + * Visualizza le informazioni relative allo sconto presente su una riga. + * + * @param \Common\Components\Row $riga + * @param bool $mostra_maggiorazione + * + * @return string|null + */ +function discountInfo(\Common\Components\Row $riga, $mostra_maggiorazione = true) +{ + if (empty($riga->sconto_unitario) || (!$mostra_maggiorazione && $riga->sconto_unitario < 0)) { + return null; + } + + $text = $riga->sconto_unitario > 0 ? tr('sconto _TOT_ _TYPE_') : tr('maggiorazione _TOT_ _TYPE_'); + + return replace($text, [ + '_TOT_' => Translator::numberToLocale(!empty($riga->sconto_percentuale) ? $riga->sconto_percentuale : $riga->sconto_unitario), + '_TYPE_' => (!empty($riga->sconto_percentuale) ? '%' : currency()), + ]); +} diff --git a/modules/contratti/actions.php b/modules/contratti/actions.php index 5ba225801..1511523f9 100755 --- a/modules/contratti/actions.php +++ b/modules/contratti/actions.php @@ -122,10 +122,9 @@ switch (post('op')) { $articolo->id_iva = post('idiva'); - $articolo->costo_unitario = post('prezzo_acquisto') ?: 0; - $articolo->prezzo_unitario = post('prezzo'); - $articolo->sconto_unitario = post('sconto'); - $articolo->tipo_sconto = post('tipo_sconto'); + $articolo->costo_unitario = post('costo_unitario') ?: 0; + $articolo->prezzo_unitario = post('prezzo_unitario'); + $articolo->setSconto(post('sconto'), post('tipo_sconto')); try { $articolo->qta = $qta; @@ -180,10 +179,9 @@ switch (post('op')) { $riga->id_iva = post('idiva'); - $riga->costo_unitario = post('prezzo_acquisto') ?: 0; - $riga->prezzo_unitario = post('prezzo'); - $riga->sconto_unitario = post('sconto'); - $riga->tipo_sconto = post('tipo_sconto'); + $riga->costo_unitario = post('costo_unitario') ?: 0; + $riga->prezzo_unitario = post('prezzo_unitario'); + $riga->setSconto(post('sconto'), post('tipo_sconto')); $riga->qta = $qta; diff --git a/modules/ddt/actions.php b/modules/ddt/actions.php index 40c3dedf3..9e21ee053 100755 --- a/modules/ddt/actions.php +++ b/modules/ddt/actions.php @@ -132,10 +132,9 @@ switch (post('op')) { $articolo->um = post('um') ?: null; $articolo->id_iva = post('idiva'); - $articolo->costo_unitario = post('prezzo_acquisto') ?: 0; - $articolo->prezzo_unitario = post('prezzo'); - $articolo->sconto_unitario = post('sconto'); - $articolo->tipo_sconto = post('tipo_sconto'); + $articolo->costo_unitario = post('costo_unitario') ?: 0; + $articolo->prezzo_unitario = post('prezzo_unitario'); + $articolo->setSconto(post('sconto'), post('tipo_sconto')); try { $articolo->qta = post('qta'); @@ -193,10 +192,9 @@ switch (post('op')) { $riga->um = post('um') ?: null; $riga->id_iva = post('idiva'); - $riga->costo_unitario = post('prezzo_acquisto') ?: 0; - $riga->prezzo_unitario = post('prezzo'); - $riga->sconto_unitario = post('sconto'); - $riga->tipo_sconto = post('tipo_sconto'); + $riga->costo_unitario = post('costo_unitario') ?: 0; + $riga->prezzo_unitario = post('prezzo_unitario'); + $riga->setSconto(post('sconto'), post('tipo_sconto')); $riga->qta = post('qta'); diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index decb7f285..2d40b2d46 100755 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -357,10 +357,9 @@ switch (post('op')) { $articolo->ritenuta_contributi = boolval(post('ritenuta_contributi')); $articolo->id_rivalsa_inps = post('id_rivalsa_inps') ?: null; - $articolo->costo_unitario = post('prezzo_acquisto') ?: 0; - $articolo->prezzo_unitario = post('prezzo'); - $articolo->sconto_unitario = post('sconto'); - $articolo->tipo_sconto = post('tipo_sconto'); + $articolo->costo_unitario = post('costo_unitario') ?: 0; + $articolo->prezzo_unitario = post('prezzo_unitario'); + $articolo->setSconto(post('sconto'), post('tipo_sconto')); try { $articolo->qta = $qta; @@ -437,10 +436,9 @@ switch (post('op')) { $riga->ritenuta_contributi = boolval(post('ritenuta_contributi')); $riga->id_rivalsa_inps = post('id_rivalsa_inps') ?: null; - $riga->costo_unitario = post('prezzo_acquisto') ?: 0; - $riga->prezzo_unitario = post('prezzo'); - $riga->sconto_unitario = post('sconto'); - $riga->tipo_sconto = post('tipo_sconto'); + $riga->costo_unitario = post('costo_unitario') ?: 0; + $riga->prezzo_unitario = post('prezzo_unitario'); + $riga->setSconto(post('sconto'), post('tipo_sconto')); $riga->qta = $qta; diff --git a/modules/interventi/actions.php b/modules/interventi/actions.php index fc800f53d..329cbb246 100755 --- a/modules/interventi/actions.php +++ b/modules/interventi/actions.php @@ -254,10 +254,9 @@ $riga = $intervento->getRiga($type, $id_riga); $articolo->id_iva = post('idiva'); - $articolo->costo_unitario = post('prezzo_acquisto') ?: 0; - $articolo->prezzo_unitario = post('prezzo'); - $articolo->sconto_unitario = post('sconto'); - $articolo->tipo_sconto = post('tipo_sconto'); + $articolo->costo_unitario = post('costo_unitario') ?: 0; + $articolo->prezzo_unitario = post('prezzo_unitario'); + $articolo->setSconto(post('sconto'), post('tipo_sconto')); try { $articolo->qta = $qta; @@ -315,10 +314,9 @@ $riga = $intervento->getRiga($type, $id_riga); $riga->id_iva = post('idiva'); - $riga->costo_unitario = post('prezzo_acquisto') ?: 0; - $riga->prezzo_unitario = post('prezzo'); - $riga->sconto_unitario = post('sconto'); - $riga->tipo_sconto = post('tipo_sconto'); + $riga->costo_unitario = post('costo_unitario') ?: 0; + $riga->prezzo_unitario = post('prezzo_unitario'); + $riga->setSconto(post('sconto'), post('tipo_sconto')); $riga->qta = $qta; diff --git a/modules/interventi/edit.php b/modules/interventi/edit.php index 0c75f3ef7..7a3a9640d 100755 --- a/modules/interventi/edit.php +++ b/modules/interventi/edit.php @@ -237,12 +237,12 @@ if (!$block_edit) { '.tr('Riga').' '; -/* - echo ' - - '.tr('Descrizione').' - '; -*/ + /* + echo ' + + '.tr('Descrizione').' + '; + */ echo ' '.tr('Sconto/maggiorazione').' diff --git a/modules/ordini/actions.php b/modules/ordini/actions.php index 6a3af6ba8..64844a736 100755 --- a/modules/ordini/actions.php +++ b/modules/ordini/actions.php @@ -124,10 +124,9 @@ switch (post('op')) { $articolo->um = post('um') ?: null; $articolo->id_iva = post('idiva'); - $articolo->costo_unitario = post('prezzo_acquisto') ?: 0; - $articolo->prezzo_unitario = post('prezzo'); - $articolo->sconto_unitario = post('sconto'); - $articolo->tipo_sconto = post('tipo_sconto'); + $articolo->costo_unitario = post('costo_unitario') ?: 0; + $articolo->prezzo_unitario = post('prezzo_unitario'); + $articolo->setSconto(post('sconto'), post('tipo_sconto')); try { $articolo->qta = post('qta'); @@ -185,10 +184,9 @@ switch (post('op')) { $riga->um = post('um') ?: null; $riga->id_iva = post('idiva'); - $riga->costo_unitario = post('prezzo_acquisto') ?: 0; - $riga->prezzo_unitario = post('prezzo'); - $riga->sconto_unitario = post('sconto'); - $riga->tipo_sconto = post('tipo_sconto'); + $riga->costo_unitario = post('costo_unitario') ?: 0; + $riga->prezzo_unitario = post('prezzo_unitario'); + $riga->setSconto(post('sconto'), post('tipo_sconto')); $riga->qta = post('qta'); diff --git a/modules/preventivi/actions.php b/modules/preventivi/actions.php index 0c7639e0d..73f468286 100755 --- a/modules/preventivi/actions.php +++ b/modules/preventivi/actions.php @@ -153,10 +153,9 @@ switch (post('op')) { $articolo->id_iva = post('idiva'); - $articolo->costo_unitario = post('prezzo_acquisto') ?: 0; - $articolo->prezzo_unitario = post('prezzo'); - $articolo->sconto_unitario = post('sconto'); - $articolo->tipo_sconto = post('tipo_sconto'); + $articolo->costo_unitario = post('costo_unitario') ?: 0; + $articolo->prezzo_unitario = post('prezzo_unitario'); + $articolo->setSconto(post('sconto'), post('tipo_sconto')); try { $articolo->qta = $qta; @@ -211,10 +210,9 @@ switch (post('op')) { $riga->id_iva = post('idiva'); - $riga->costo_unitario = post('prezzo_acquisto') ?: 0; - $riga->prezzo_unitario = post('prezzo'); - $riga->sconto_unitario = post('sconto'); - $riga->tipo_sconto = post('tipo_sconto'); + $riga->costo_unitario = post('costo_unitario') ?: 0; + $riga->prezzo_unitario = post('prezzo_unitario'); + $riga->setSconto(post('sconto'), post('tipo_sconto')); $riga->qta = $qta; diff --git a/tests/_support/Helper/Common/RowHelper.php b/tests/_support/Helper/Common/RowHelper.php index e5d2ccd66..b93a006f8 100755 --- a/tests/_support/Helper/Common/RowHelper.php +++ b/tests/_support/Helper/Common/RowHelper.php @@ -163,7 +163,7 @@ class RowHelper extends \Codeception\Module $t->fillField('#descrizione_riga', $descrizione); $t->fillField('#qta', $qta); - $t->fillField('#prezzo', $prezzo); + $t->fillField('#prezzo_unitario', $prezzo); if (!empty($sconto)) { $t->fillField('#sconto', $sconto); diff --git a/update/2_4_14.sql b/update/2_4_14.sql index 6ea02e985..f9e4e2165 100755 --- a/update/2_4_14.sql +++ b/update/2_4_14.sql @@ -47,37 +47,78 @@ ALTER TABLE `in_righe_interventi` DROP `old_id`; ALTER TABLE `in_righe_interventi` CHANGE `prezzo_acquisto` `costo_unitario` decimal(12,6) NOT NULL AFTER `qta`, CHANGE `prezzo_vendita` `prezzo_unitario` decimal(12,6) NOT NULL AFTER `costo_unitario`, - ADD `prezzo_unitario_ivato` decimal(12,6) NOT NULL AFTER `prezzo_unitario`, + ADD `iva_unitaria` decimal(12,6) NOT NULL AFTER `prezzo_unitario`, + ADD `prezzo_unitario_ivato` decimal(12,6) NOT NULL AFTER `iva_unitaria`, + ADD `sconto_percentuale` decimal(12,6) NOT NULL AFTER `sconto_unitario`, ADD `sconto_iva` decimal(12,6) NOT NULL AFTER `sconto_unitario`, ADD `sconto_unitario_ivato` decimal(12,6) NOT NULL AFTER `sconto_iva`; ALTER TABLE `co_righe_documenti` CHANGE `prezzo_unitario_acquisto` `costo_unitario` decimal(12,6) NOT NULL AFTER `qta`, ADD `prezzo_unitario` decimal(12,6) NOT NULL AFTER `costo_unitario`, - ADD `prezzo_unitario_ivato` decimal(12,6) NOT NULL AFTER `prezzo_unitario`, + ADD `iva_unitaria` decimal(12,6) NOT NULL AFTER `prezzo_unitario`, + ADD `prezzo_unitario_ivato` decimal(12,6) NOT NULL AFTER `iva_unitaria`, + ADD `sconto_percentuale` decimal(12,6) NOT NULL AFTER `sconto_unitario`, ADD `sconto_iva` decimal(12,6) NOT NULL AFTER `sconto_unitario`, ADD `sconto_unitario_ivato` decimal(12,6) NOT NULL AFTER `sconto_iva`; ALTER TABLE `co_righe_preventivi` CHANGE `prezzo_unitario_acquisto` `costo_unitario` decimal(12,6) NOT NULL AFTER `qta`, ADD `prezzo_unitario` decimal(12,6) NOT NULL AFTER `costo_unitario`, - ADD `prezzo_unitario_ivato` decimal(12,6) NOT NULL AFTER `prezzo_unitario`, + ADD `iva_unitaria` decimal(12,6) NOT NULL AFTER `prezzo_unitario`, + ADD `prezzo_unitario_ivato` decimal(12,6) NOT NULL AFTER `iva_unitaria`, + ADD `sconto_percentuale` decimal(12,6) NOT NULL AFTER `sconto_unitario`, ADD `sconto_iva` decimal(12,6) NOT NULL AFTER `sconto_unitario`, ADD `sconto_unitario_ivato` decimal(12,6) NOT NULL AFTER `sconto_iva`; ALTER TABLE `co_righe_contratti` CHANGE `prezzo_unitario_acquisto` `costo_unitario` decimal(12,6) NOT NULL AFTER `qta`, ADD `prezzo_unitario` decimal(12,6) NOT NULL AFTER `costo_unitario`, - ADD `prezzo_unitario_ivato` decimal(12,6) NOT NULL AFTER `prezzo_unitario`, + ADD `iva_unitaria` decimal(12,6) NOT NULL AFTER `prezzo_unitario`, + ADD `prezzo_unitario_ivato` decimal(12,6) NOT NULL AFTER `iva_unitaria`, + ADD `sconto_percentuale` decimal(12,6) NOT NULL AFTER `sconto_unitario`, ADD `sconto_iva` decimal(12,6) NOT NULL AFTER `sconto_unitario`, ADD `sconto_unitario_ivato` decimal(12,6) NOT NULL AFTER `sconto_iva`; ALTER TABLE `dt_righe_ddt` CHANGE `prezzo_unitario_acquisto` `costo_unitario` decimal(12,6) NOT NULL AFTER `qta`, ADD `prezzo_unitario` decimal(12,6) NOT NULL AFTER `costo_unitario`, - ADD `prezzo_unitario_ivato` decimal(12,6) NOT NULL AFTER `prezzo_unitario`, + ADD `iva_unitaria` decimal(12,6) NOT NULL AFTER `prezzo_unitario`, + ADD `prezzo_unitario_ivato` decimal(12,6) NOT NULL AFTER `iva_unitaria`, + ADD `sconto_percentuale` decimal(12,6) NOT NULL AFTER `sconto_unitario`, ADD `sconto_iva` decimal(12,6) NOT NULL AFTER `sconto_unitario`, ADD `sconto_unitario_ivato` decimal(12,6) NOT NULL AFTER `sconto_iva`; ALTER TABLE `or_righe_ordini` CHANGE `prezzo_unitario_acquisto` `costo_unitario` decimal(12,6) NOT NULL AFTER `qta`, ADD `prezzo_unitario` decimal(12,6) NOT NULL AFTER `costo_unitario`, - ADD `prezzo_unitario_ivato` decimal(12,6) NOT NULL AFTER `prezzo_unitario`, - ADD `sconto_iva` decimal(12,6) NOT NULL AFTER `sconto_unitario`, + ADD `iva_unitaria` decimal(12,6) NOT NULL AFTER `prezzo_unitario`, + ADD `prezzo_unitario_ivato` decimal(12,6) NOT NULL AFTER `iva_unitaria`, + ADD `sconto_percentuale` decimal(12,6) NOT NULL AFTER `sconto_unitario`, + ADD `sconto_iva` decimal(12,6) NOT NULL AFTER `sconto_percentuale`, ADD `sconto_unitario_ivato` decimal(12,6) NOT NULL AFTER `sconto_iva`; -UPDATE `co_righe_documenti` SET `qta` = IF(`qta` = 0, 1, `qta`), `prezzo_unitario` = `subtotale` / `qta`, `prezzo_unitario_ivato` = `prezzo_unitario` + `iva`, `sconto_unitario_ivato` = `sconto_unitario`; -UPDATE `co_righe_preventivi` SET `qta` = IF(`qta` = 0, 1, `qta`), `prezzo_unitario` = `subtotale` / `qta`, `prezzo_unitario_ivato` = `prezzo_unitario` + `iva`, `sconto_unitario_ivato` = `sconto_unitario`; -UPDATE `co_righe_contratti` SET `qta` = IF(`qta` = 0, 1, `qta`), `prezzo_unitario` = `subtotale` / `qta`, `prezzo_unitario_ivato` = `prezzo_unitario` + `iva`, `sconto_unitario_ivato` = `sconto_unitario`; -UPDATE `dt_righe_ddt` SET `qta` = IF(`qta` = 0, 1, `qta`), `prezzo_unitario` = `subtotale` / `qta`, `prezzo_unitario_ivato` = `prezzo_unitario` + `iva`, `sconto_unitario_ivato` = `sconto_unitario`; -UPDATE `or_righe_ordini` SET `qta` = IF(`qta` = 0, 1, `qta`), `prezzo_unitario` = `subtotale` / `qta`, `prezzo_unitario_ivato` = `prezzo_unitario` + `iva`, `sconto_unitario_ivato` = `sconto_unitario`; +UPDATE `co_righe_documenti` SET `qta` = IF(`qta` = 0, 1, `qta`), + `prezzo_unitario` = `subtotale` / `qta`, + `prezzo_unitario_ivato` = `prezzo_unitario` + `iva`, + `sconto_percentuale` = IF(`tipo_sconto` = 'PRC', `sconto_unitario`, 0), + `sconto_unitario` = IF(`tipo_sconto` = 'PRC', `sconto` / `qta`, `sconto_unitario`), + `sconto_unitario_ivato` = `sconto_unitario`; +UPDATE `co_righe_preventivi` SET `qta` = IF(`qta` = 0, 1, `qta`), + `prezzo_unitario` = `subtotale` / `qta`, + `prezzo_unitario_ivato` = `prezzo_unitario` + `iva`, + `sconto_percentuale` = IF(`tipo_sconto` = 'PRC', `sconto_unitario`, 0), + `sconto_unitario` = IF(`tipo_sconto` = 'PRC', `sconto` / `qta`, `sconto_unitario`), + `sconto_unitario_ivato` = `sconto_unitario`; +UPDATE `co_righe_contratti` SET `qta` = IF(`qta` = 0, 1, `qta`), + `prezzo_unitario` = `subtotale` / `qta`, + `prezzo_unitario_ivato` = `prezzo_unitario` + `iva`, + `sconto_percentuale` = IF(`tipo_sconto` = 'PRC', `sconto_unitario`, 0), + `sconto_unitario` = IF(`tipo_sconto` = 'PRC', `sconto` / `qta`, `sconto_unitario`), + `sconto_unitario_ivato` = `sconto_unitario`; +UPDATE `dt_righe_ddt` SET `qta` = IF(`qta` = 0, 1, `qta`), + `prezzo_unitario` = `subtotale` / `qta`, + `prezzo_unitario_ivato` = `prezzo_unitario` + `iva`, + `sconto_percentuale` = IF(`tipo_sconto` = 'PRC', `sconto_unitario`, 0), + `sconto_unitario` = IF(`tipo_sconto` = 'PRC', `sconto` / `qta`, `sconto_unitario`), + `sconto_unitario_ivato` = `sconto_unitario`; +UPDATE `or_righe_ordini` SET `qta` = IF(`qta` = 0, 1, `qta`), + `prezzo_unitario` = `subtotale` / `qta`, + `prezzo_unitario_ivato` = `prezzo_unitario` + `iva`, + `sconto_unitario_ivato` = `sconto_unitario`, + `sconto_percentuale` = IF(`tipo_sconto` = 'PRC', `sconto_unitario`, 0), + `sconto_unitario` = IF(`tipo_sconto` = 'PRC', `sconto` / `qta`, `sconto_unitario`), + `sconto_unitario_ivato` = `sconto_unitario`; + +-- Aggiunta supporto a prezzi ivati +INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `created_at`, `updated_at`, `order`, `help`) VALUES (NULL, 'Utilizza prezzi di vendita con IVA incorporata', '1', 'boolean', '0', 'Fatturazione', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, 'Abilita la gestione degli importi ivati per i documenti di vendita.');