Introduzione separazione sconti

Modifiche instabili sulla gestione degli importi generali e sugli sconti.
This commit is contained in:
Thomas Zilio 2020-02-14 18:31:07 +01:00
parent 1985dda30f
commit ca0bfcfba6
13 changed files with 198 additions and 77 deletions

View File

@ -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);

View File

@ -41,22 +41,22 @@ if ($options['dir'] == 'entrata') {
// Prezzo di acquisto unitario
echo '
<div class="col-md-'.$width.'">
{[ "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().'" ]}
</div>';
// Funzione per l'aggiornamento in tempo reale del guadagno
echo '
<script>
function aggiorna_guadagno() {
var prezzo_acquisto = $("#prezzo_acquisto").val().toEnglish();
var prezzo = $("#prezzo").val().toEnglish();
var costo_unitario = $("#costo_unitario").val().toEnglish();
var prezzo = $("#prezzo_unitario").val().toEnglish();
var sconto = $("#sconto").val().toEnglish();
if ($("#tipo_sconto").val() === "PRC") {
sconto = sconto / 100 * prezzo;
}
var guadagno = prezzo - sconto - prezzo_acquisto;
var parent = $("#prezzo_acquisto").closest("div").parent();
var guadagno = prezzo - sconto - costo_unitario;
var parent = $("#costo_unitario").closest("div").parent();
var div = parent.find("div[id*=\"errors\"]");
div.html("<small>'.tr('Guadagno').': " + guadagno.toLocale() + " " + globals.currency + "</small>");
@ -71,8 +71,8 @@ if ($options['dir'] == 'entrata') {
aggiorna_guadagno();
$("#prezzo").keyup(aggiorna_guadagno);
$("#prezzo_acquisto").keyup(aggiorna_guadagno);
$("#prezzo_unitario").keyup(aggiorna_guadagno);
$("#costo_unitario").keyup(aggiorna_guadagno);
$("#sconto").keyup(aggiorna_guadagno);
$("#tipo_sconto").change(aggiorna_guadagno);
</script>';
@ -81,7 +81,7 @@ if ($options['dir'] == 'entrata') {
// Prezzo di vendita unitario
echo '
<div class="col-md-'.$width.'">
{[ "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') : '').'" ]}
</div>';
// Sconto unitario

View File

@ -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.
*

View File

@ -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()),
]);
}

View File

@ -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;

View File

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

View File

@ -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;

View File

@ -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;

View File

@ -237,12 +237,12 @@ if (!$block_edit) {
<i class="fa fa-plus"></i> '.tr('Riga').'
</a>';
/*
echo '
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_descrizione" data-toggle="tooltip" data-title="'.tr('Aggiungi descrizione').'">
<i class="fa fa-plus"></i> '.tr('Descrizione').'
</a>';
*/
/*
echo '
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_descrizione" data-toggle="tooltip" data-title="'.tr('Aggiungi descrizione').'">
<i class="fa fa-plus"></i> '.tr('Descrizione').'
</a>';
*/
echo '
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_sconto" data-toggle="tooltip" data-title="'.tr('Aggiungi sconto/maggiorazione').'">
<i class="fa fa-plus"></i> '.tr('Sconto/maggiorazione').'

View File

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

View File

@ -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;

View File

@ -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);

View File

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