Aggiunto prezzo vendita ivato per gli Articoli

This commit is contained in:
Thomas Zilio 2020-07-06 13:57:45 +02:00
parent 02ba6e8398
commit 25edf663f2
8 changed files with 46 additions and 33 deletions

View File

@ -55,6 +55,8 @@ if ($options['dir'] == 'entrata') {
var parent = $("#costo_unitario").closest("div").parent(); var parent = $("#costo_unitario").closest("div").parent();
var div = parent.find("div[id*=\"errors\"]"); var div = parent.find("div[id*=\"errors\"]");
margine = isNaN(margine) || !isFinite(margine) ? 0: margine; // Fix per magine NaN
div.html("<small>' . tr('Guadagno') . ': " + guadagno.toLocale() + " " + globals.currency + " &nbsp; ' . tr('Margine') . ': " + margine.toLocale() + " %</small>"); div.html("<small>' . tr('Guadagno') . ': " + guadagno.toLocale() + " " + globals.currency + " &nbsp; ' . tr('Margine') . ': " + margine.toLocale() + " %</small>");
if (guadagno < 0) { if (guadagno < 0) {
parent.addClass("has-error"); parent.addClass("has-error");

View File

@ -29,9 +29,8 @@ switch (post('op')) {
$articolo->barcode = post('barcode'); $articolo->barcode = post('barcode');
$articolo->threshold_qta = post('threshold_qta'); $articolo->threshold_qta = post('threshold_qta');
$articolo->prezzo_vendita = post('prezzo_vendita');
$articolo->prezzo_acquisto = post('prezzo_acquisto'); $articolo->prezzo_acquisto = post('prezzo_acquisto');
$articolo->idiva_vendita = post('idiva_vendita'); $articolo->setPrezzoVendita(post('prezzo_vendita'), post('idiva_vendita'));
$articolo->save(); $articolo->save();
$id_record = $articolo->id; $id_record = $articolo->id;
@ -74,9 +73,7 @@ switch (post('op')) {
$articolo->abilita_serial = post('abilita_serial'); $articolo->abilita_serial = post('abilita_serial');
$articolo->ubicazione = post('ubicazione'); $articolo->ubicazione = post('ubicazione');
$articolo->threshold_qta = post('threshold_qta'); $articolo->threshold_qta = post('threshold_qta');
$articolo->prezzo_vendita = post('prezzo_vendita');
$articolo->prezzo_acquisto = post('prezzo_acquisto'); $articolo->prezzo_acquisto = post('prezzo_acquisto');
$articolo->idiva_vendita = post('idiva_vendita');
$articolo->idconto_vendita = post('idconto_vendita'); $articolo->idconto_vendita = post('idconto_vendita');
$articolo->idconto_acquisto = post('idconto_acquisto'); $articolo->idconto_acquisto = post('idconto_acquisto');
$articolo->id_fornitore = post('id_fornitore'); $articolo->id_fornitore = post('id_fornitore');
@ -85,6 +82,8 @@ switch (post('op')) {
$articolo->volume = post('volume'); $articolo->volume = post('volume');
$articolo->peso_lordo = post('peso_lordo'); $articolo->peso_lordo = post('peso_lordo');
$articolo->setPrezzoVendita(post('prezzo_vendita'), post('idiva_vendita'));
$componente = post('componente_filename'); $componente = post('componente_filename');
$articolo->componente_filename = $componente; $articolo->componente_filename = $componente;
$articolo->attivo = post('attivo'); $articolo->attivo = post('attivo');

View File

@ -5,6 +5,7 @@ include_once __DIR__.'/../../../core.php';
switch ($resource) { switch ($resource) {
case 'articoli': case 'articoli':
$sedi_non_impostate = !isset($superselect['idsede_partenza']) && !isset($superselect['idsede_destinazione']); $sedi_non_impostate = !isset($superselect['idsede_partenza']) && !isset($superselect['idsede_destinazione']);
$prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA');
$query = 'SELECT $query = 'SELECT
mg_articoli.id, mg_articoli.id,
@ -12,6 +13,7 @@ switch ($resource) {
IFNULL(mg_fornitore_articolo.codice_fornitore, mg_articoli.codice) AS codice, 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.descrizione, mg_articoli.descrizione) AS descrizione,
IFNULL(mg_fornitore_articolo.prezzo_acquisto, mg_articoli.prezzo_acquisto) AS prezzo_acquisto, 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, IFNULL(mg_fornitore_articolo.qta_minima, 0) AS qta_minima,
mg_fornitore_articolo.id AS id_dettaglio_fornitore, mg_fornitore_articolo.id AS id_dettaglio_fornitore,
round(mg_articoli.qta,'.setting('Cifre decimali per quantità').') AS qta, round(mg_articoli.qta,'.setting('Cifre decimali per quantità').') AS qta,
@ -20,7 +22,6 @@ switch ($resource) {
mg_articoli.idiva_vendita, mg_articoli.idiva_vendita,
mg_articoli.idconto_vendita, mg_articoli.idconto_vendita,
mg_articoli.idconto_acquisto, mg_articoli.idconto_acquisto,
mg_articoli.prezzo_vendita,
categoria.`nome` AS categoria, categoria.`nome` AS categoria,
sottocategoria.`nome` AS sottocategoria, sottocategoria.`nome` AS sottocategoria,
co_iva.descrizione AS iva_vendita, co_iva.descrizione AS iva_vendita,

View File

@ -168,14 +168,17 @@ $_SESSION['superselect']['id_categoria'] = $record['id_categoria'];
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
<?php <?php
if (!setting('Utilizza prezzi di vendita comprensivi di IVA')) { $prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA');
if (empty($prezzi_ivati)) {
echo ' echo '
<button type="button" class="btn btn-info btn-xs pull-right tip pull-right" title="'.tr('Scorpora iva dal prezzo di vendita.').'" id="scorpora_iva"><i class="fa fa-calculator" aria-hidden="true"></i></button>'; <button type="button" class="btn btn-info btn-xs pull-right tip pull-right" title="'.tr('Scorpora iva dal prezzo di vendita.').'" id="scorpora_iva"><i class="fa fa-calculator" aria-hidden="true"></i></button>';
} }
?>
{[ "type": "number", "label": "<?php echo tr('Prezzo di vendita'); ?>", "name": "prezzo_vendita", "value": "$prezzo_vendita$", "icon-after": "<?php echo currency(); ?>", "help": "<?php echo setting('Utilizza prezzi di vendita comprensivi di IVA') ? tr('Importo IVA inclusa') : ''; ?>" ]} echo '
</div> {[ "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') : '').'" ]}
</div>';
?>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "<?php echo tr('Iva di vendita'); ?>", "name": "idiva_vendita", "ajax-source": "iva", "value": "$idiva_vendita$", "valore_predefinito": "Iva predefinita", "help": "<?php echo tr('Se non specificata, verrà utilizzata l\'iva di default delle impostazioni'); ?>" ]} {[ "type": "select", "label": "<?php echo tr('Iva di vendita'); ?>", "name": "idiva_vendita", "ajax-source": "iva", "value": "$idiva_vendita$", "valore_predefinito": "Iva predefinita", "help": "<?php echo tr('Se non specificata, verrà utilizzata l\'iva di default delle impostazioni'); ?>" ]}

View File

@ -6,6 +6,7 @@ use Common\Model;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
use Modules; use Modules;
use Modules\Interventi\Components\Articolo as ArticoloIntervento; use Modules\Interventi\Components\Articolo as ArticoloIntervento;
use Modules\Iva\Aliquota;
use Plugins\FornitoriArticolo\Dettaglio; use Plugins\FornitoriArticolo\Dettaglio;
use Traits\RecordTrait; use Traits\RecordTrait;
use Uploads; use Uploads;
@ -39,9 +40,9 @@ class Articolo extends Model
* Funzione per inserire i movimenti di magazzino. * Funzione per inserire i movimenti di magazzino.
* *
* @param $qta * @param $qta
* @param null $descrizone * @param null $descrizone
* @param null $data * @param null $data
* @param bool $manuale * @param bool $manuale
* @param array $array * @param array $array
* *
* @return bool * @return bool
@ -63,9 +64,9 @@ class Articolo extends Model
* Funzione per registrare i movimenti di magazzino. * Funzione per registrare i movimenti di magazzino.
* *
* @param $qta * @param $qta
* @param null $descrizone * @param null $descrizone
* @param null $data * @param null $data
* @param bool $manuale * @param bool $manuale
* @param array $array * @param array $array
* *
* @return bool * @return bool
@ -94,6 +95,22 @@ class Articolo extends Model
return $id; 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 // Attributi Eloquent
public function getImmagineUploadAttribute() public function getImmagineUploadAttribute()
@ -114,11 +131,11 @@ class Articolo extends Model
$module = Modules::get($this->module); $module = Modules::get($this->module);
$fileinfo = Uploads::fileInfo($this->immagine); $fileinfo = Uploads::fileInfo($this->immagine);
$directory = '/'.$module->upload_directory.'/'; $directory = '/' . $module->upload_directory . '/';
$image = $directory.$this->immagine; $image = $directory . $this->immagine;
$image_thumbnail = $directory.$fileinfo['filename'].'_thumb600.'.$fileinfo['extension']; $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; return $url;
} }

View File

@ -265,13 +265,6 @@ switch (post('op')) {
$ddt->num_item = $documento->num_item; $ddt->num_item = $documento->num_item;
$ddt->idsede_destinazione = $documento->idsede; $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(); $ddt->save();
$id_record = $ddt->id; $id_record = $ddt->id;

View File

@ -304,12 +304,6 @@ switch (post('op')) {
$ordine->codice_cig = $documento->codice_cig; $ordine->codice_cig = $documento->codice_cig;
$ordine->num_item = $documento->num_item; $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(); $ordine->save();
$id_record = $ordine->id; $id_record = $ordine->id;

View File

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