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.');