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