diff --git a/include/common/riga.php b/include/common/riga.php
index 50ea0aa22..bb4be0267 100755
--- a/include/common/riga.php
+++ b/include/common/riga.php
@@ -55,6 +55,8 @@ if ($options['dir'] == 'entrata') {
var parent = $("#costo_unitario").closest("div").parent();
var div = parent.find("div[id*=\"errors\"]");
+ margine = isNaN(margine) || !isFinite(margine) ? 0: margine; // Fix per magine NaN
+
div.html("' . tr('Guadagno') . ': " + guadagno.toLocale() + " " + globals.currency + " ' . tr('Margine') . ': " + margine.toLocale() + " %");
if (guadagno < 0) {
parent.addClass("has-error");
diff --git a/modules/articoli/actions.php b/modules/articoli/actions.php
index 6da4f6ae8..23afda80a 100755
--- a/modules/articoli/actions.php
+++ b/modules/articoli/actions.php
@@ -29,9 +29,8 @@ switch (post('op')) {
$articolo->barcode = post('barcode');
$articolo->threshold_qta = post('threshold_qta');
- $articolo->prezzo_vendita = post('prezzo_vendita');
$articolo->prezzo_acquisto = post('prezzo_acquisto');
- $articolo->idiva_vendita = post('idiva_vendita');
+ $articolo->setPrezzoVendita(post('prezzo_vendita'), post('idiva_vendita'));
$articolo->save();
$id_record = $articolo->id;
@@ -74,9 +73,7 @@ switch (post('op')) {
$articolo->abilita_serial = post('abilita_serial');
$articolo->ubicazione = post('ubicazione');
$articolo->threshold_qta = post('threshold_qta');
- $articolo->prezzo_vendita = post('prezzo_vendita');
$articolo->prezzo_acquisto = post('prezzo_acquisto');
- $articolo->idiva_vendita = post('idiva_vendita');
$articolo->idconto_vendita = post('idconto_vendita');
$articolo->idconto_acquisto = post('idconto_acquisto');
$articolo->id_fornitore = post('id_fornitore');
@@ -85,6 +82,8 @@ switch (post('op')) {
$articolo->volume = post('volume');
$articolo->peso_lordo = post('peso_lordo');
+ $articolo->setPrezzoVendita(post('prezzo_vendita'), post('idiva_vendita'));
+
$componente = post('componente_filename');
$articolo->componente_filename = $componente;
$articolo->attivo = post('attivo');
diff --git a/modules/articoli/ajax/select.php b/modules/articoli/ajax/select.php
index 755ec105c..0792fafad 100755
--- a/modules/articoli/ajax/select.php
+++ b/modules/articoli/ajax/select.php
@@ -5,6 +5,7 @@ include_once __DIR__.'/../../../core.php';
switch ($resource) {
case 'articoli':
$sedi_non_impostate = !isset($superselect['idsede_partenza']) && !isset($superselect['idsede_destinazione']);
+ $prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA');
$query = 'SELECT
mg_articoli.id,
@@ -12,6 +13,7 @@ switch ($resource) {
IFNULL(mg_fornitore_articolo.codice_fornitore, mg_articoli.codice) AS codice,
IFNULL(mg_fornitore_articolo.descrizione, mg_articoli.descrizione) AS descrizione,
IFNULL(mg_fornitore_articolo.prezzo_acquisto, mg_articoli.prezzo_acquisto) AS prezzo_acquisto,
+ mg_articoli.'.($prezzi_ivati ? 'prezzo_vendita_ivato' : 'prezzo_vendita').' AS prezzo_vendita,
IFNULL(mg_fornitore_articolo.qta_minima, 0) AS qta_minima,
mg_fornitore_articolo.id AS id_dettaglio_fornitore,
round(mg_articoli.qta,'.setting('Cifre decimali per quantità ').') AS qta,
@@ -20,7 +22,6 @@ switch ($resource) {
mg_articoli.idiva_vendita,
mg_articoli.idconto_vendita,
mg_articoli.idconto_acquisto,
- mg_articoli.prezzo_vendita,
categoria.`nome` AS categoria,
sottocategoria.`nome` AS sottocategoria,
co_iva.descrizione AS iva_vendita,
diff --git a/modules/articoli/edit.php b/modules/articoli/edit.php
index 908957f2b..feec33c6f 100755
--- a/modules/articoli/edit.php
+++ b/modules/articoli/edit.php
@@ -168,14 +168,17 @@ $_SESSION['superselect']['id_categoria'] = $record['id_categoria'];
';
}
-?>
- {[ "type": "number", "label": "", "name": "prezzo_vendita", "value": "$prezzo_vendita$", "icon-after": "", "help": "" ]}
-
+echo '
+ {[ "type": "number", "label": "'.tr('Prezzo di vendita').'", "name": "prezzo_vendita", "value": "'.($prezzi_ivati ? $articolo->prezzo_vendita_ivato : $articolo->prezzo_vendita).'", "icon-after": "'.currency().'", "help": "'.($prezzi_ivati ? tr('Importo IVA inclusa') : '').'" ]}
+
';
+
+?>
{[ "type": "select", "label": "", "name": "idiva_vendita", "ajax-source": "iva", "value": "$idiva_vendita$", "valore_predefinito": "Iva predefinita", "help": "" ]}
@@ -405,4 +408,4 @@ if (!empty($elementi)) {
-
\ No newline at end of file
+
diff --git a/modules/articoli/src/Articolo.php b/modules/articoli/src/Articolo.php
index 8a56f7c7f..dd2f5d7bc 100755
--- a/modules/articoli/src/Articolo.php
+++ b/modules/articoli/src/Articolo.php
@@ -6,6 +6,7 @@ use Common\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Modules;
use Modules\Interventi\Components\Articolo as ArticoloIntervento;
+use Modules\Iva\Aliquota;
use Plugins\FornitoriArticolo\Dettaglio;
use Traits\RecordTrait;
use Uploads;
@@ -39,9 +40,9 @@ class Articolo extends Model
* Funzione per inserire i movimenti di magazzino.
*
* @param $qta
- * @param null $descrizone
- * @param null $data
- * @param bool $manuale
+ * @param null $descrizone
+ * @param null $data
+ * @param bool $manuale
* @param array $array
*
* @return bool
@@ -63,9 +64,9 @@ class Articolo extends Model
* Funzione per registrare i movimenti di magazzino.
*
* @param $qta
- * @param null $descrizone
- * @param null $data
- * @param bool $manuale
+ * @param null $descrizone
+ * @param null $data
+ * @param bool $manuale
* @param array $array
*
* @return bool
@@ -94,6 +95,22 @@ class Articolo extends Model
return $id;
}
+ public function setPrezzoVendita($prezzo_vendita, $id_iva)
+ {
+ $this->idiva_vendita = $id_iva;
+
+ // Calcolo prezzo di vendita ivato e non ivato
+ $prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA');
+ $percentuale_aliquota = floatval(Aliquota::find($id_iva)->percentuale);
+ if ($prezzi_ivati) {
+ $this->prezzo_vendita_ivato = $prezzo_vendita;
+ $this->prezzo_vendita = $prezzo_vendita / (1 + $percentuale_aliquota / 100);
+ } else {
+ $this->prezzo_vendita = $prezzo_vendita;
+ $this->prezzo_vendita_ivato = $prezzo_vendita * (1 + $percentuale_aliquota / 100);
+ }
+ }
+
// Attributi Eloquent
public function getImmagineUploadAttribute()
@@ -114,11 +131,11 @@ class Articolo extends Model
$module = Modules::get($this->module);
$fileinfo = Uploads::fileInfo($this->immagine);
- $directory = '/'.$module->upload_directory.'/';
- $image = $directory.$this->immagine;
- $image_thumbnail = $directory.$fileinfo['filename'].'_thumb600.'.$fileinfo['extension'];
+ $directory = '/' . $module->upload_directory . '/';
+ $image = $directory . $this->immagine;
+ $image_thumbnail = $directory . $fileinfo['filename'] . '_thumb600.' . $fileinfo['extension'];
- $url = file_exists(DOCROOT.$image_thumbnail) ? ROOTDIR.$image_thumbnail : ROOTDIR.$image;
+ $url = file_exists(DOCROOT . $image_thumbnail) ? ROOTDIR . $image_thumbnail : ROOTDIR . $image;
return $url;
}
diff --git a/modules/ddt/actions.php b/modules/ddt/actions.php
index 69d09c11f..52f6a6838 100755
--- a/modules/ddt/actions.php
+++ b/modules/ddt/actions.php
@@ -265,13 +265,6 @@ switch (post('op')) {
$ddt->num_item = $documento->num_item;
$ddt->idsede_destinazione = $documento->idsede;
- $ddt->id_documento_fe = $documento->id_documento_fe;
- $ddt->codice_cup = $documento->codice_cup;
- $ddt->codice_cig = $documento->codice_cig;
- $ddt->num_item = $documento->num_item;
- $ddt->idsede_destinazione = $id_sede;
- }
-
$ddt->save();
$id_record = $ddt->id;
diff --git a/modules/ordini/actions.php b/modules/ordini/actions.php
index 13b399962..4f79fdb6a 100755
--- a/modules/ordini/actions.php
+++ b/modules/ordini/actions.php
@@ -304,12 +304,6 @@ switch (post('op')) {
$ordine->codice_cig = $documento->codice_cig;
$ordine->num_item = $documento->num_item;
- $ordine->id_documento_fe = $documento->id_documento_fe;
- $ordine->codice_cup = $documento->codice_cup;
- $ordine->codice_cig = $documento->codice_cig;
- $ordine->num_item = $documento->num_item;
- }
-
$ordine->save();
$id_record = $ordine->id;
diff --git a/update/2_4_16.sql b/update/2_4_16.sql
index b95e329d5..3b6f30e9b 100644
--- a/update/2_4_16.sql
+++ b/update/2_4_16.sql
@@ -97,3 +97,7 @@ ALTER TABLE `in_righe_interventi` ADD `id_dettaglio_fornitore` int(11) NULL,
ADD FOREIGN KEY (`id_dettaglio_fornitore`) REFERENCES `mg_fornitore_articolo`(`id`) ON DELETE SET NULL;
ALTER TABLE `co_righe_promemoria` ADD `id_dettaglio_fornitore` int(11) NULL,
ADD FOREIGN KEY (`id_dettaglio_fornitore`) REFERENCES `mg_fornitore_articolo`(`id`) ON DELETE SET NULL;
+
+-- Aggiunta campo prezzo_vendita_ivato per gli Articoli
+ALTER TABLE `mg_articoli` ADD `prezzo_vendita_ivato` decimal(15,6) NOT NULL AFTER `prezzo_vendita`;
+UPDATE `mg_articoli` SET `prezzo_vendita_ivato` = `prezzo_vendita`;