diff --git a/config/namespaces.php b/config/namespaces.php index b70f22330..c2f3b04fe 100644 --- a/config/namespaces.php +++ b/config/namespaces.php @@ -1,10 +1,10 @@ 'Modules\\Anagrafiche\\', - 'modules/articoli' => 'Modules\\Articoli\\', - 'modules/fatture' => 'Modules\\Fatture\\', - 'modules/interventi' => 'Modules\\Interventi\\', - 'plugins/exportPA' => 'Plugins\\ExportPA\\', - 'plugins/importPA' => 'Plugins\\ImportPA\\', + 'modules/anagrafiche' => 'Modules\Anagrafiche', + 'modules/articoli' => 'Modules\Articoli', + 'modules/fatture' => 'Modules\Fatture', + 'modules/interventi' => 'Modules\Interventi', + 'plugins/exportPA' => 'Plugins\ExportPA', + 'plugins/importPA' => 'Plugins\ImportPA', ]; diff --git a/core.php b/core.php index 5e8bddf38..d38fe8d72 100644 --- a/core.php +++ b/core.php @@ -26,8 +26,8 @@ $loader = require_once __DIR__.'/vendor/autoload.php'; $namespaces = require_once __DIR__.'/config/namespaces.php'; foreach ($namespaces as $path => $namespace) { - $loader->addPsr4($namespace, $path.'/custom/src'); - $loader->addPsr4($namespace, $path.'/src'); + $loader->addPsr4($namespace.'\\', $path.'/custom/src'); + $loader->addPsr4($namespace.'\\', $path.'/src'); } // Individuazione dei percorsi di base diff --git a/include/common/conti.php b/include/common/conti.php index bc84f3940..09fd00a5d 100644 --- a/include/common/conti.php +++ b/include/common/conti.php @@ -1,123 +1,71 @@ '; // Rivalsa INPS - if ($show_idrivalsainps == 1) { + if ($show_rivalsa_inps == 1) { echo '
- {[ "type": "select", "label": "'.tr('Rivalsa INPS').'", "name": "idrivalsainps", "value": "'.$idrivalsainps.'", "values": "query=SELECT * FROM co_rivalsainps" ]} + {[ "type": "select", "label": "'.tr('Rivalsa INPS').'", "name": "idrivalsainps", "value": "'.$id_rivalsa_inps.'", "values": "query=SELECT * FROM co_rivalsainps" ]}
'; } // Ritenuta d'acconto - if ($show_idritenutaacconto == 1) { + if ($show_ritenuta_acconto == 1) { echo '
- {[ "type": "select", "label": "'.tr("Ritenuta d'acconto").'", "name": "idritenutaacconto", "value": "'.$idritenutaacconto.'", "values": "query=SELECT * FROM co_ritenutaacconto" ]} + {[ "type": "select", "label": "'.tr("Ritenuta d'acconto").'", "name": "idritenutaacconto", "value": "'.$id_ritenuta_acconto.'", "values": "query=SELECT * FROM co_ritenutaacconto" ]}
'; } // Calcola ritenuta d'acconto su - if ($show_calcolo_ritenutaacconto == 1) { + if ($show_calcolo_ritenuta_acconto == 1) { echo '
- {[ "type": "select", "label": "'.tr("Calcola ritenuta d'acconto su").'", "name": "calcolo_ritenutaacconto", "value": "'.((empty($calcolo_ritenutaacconto)) ? 'Imponibile' : $calcolo_ritenutaacconto).'", "values": "list=\"Imponibile\":\"Imponibile\", \"Imponibile + rivalsa inps\":\"Imponibile + rivalsa inps\"", "required": "1" ]} + {[ "type": "select", "label": "'.tr("Calcola ritenuta d'acconto su").'", "name": "calcolo_ritenutaacconto", "value": "'.((empty($calcolo_ritenuta_acconto)) ? 'Imponibile' : $calcolo_ritenuta_acconto).'", "values": "list=\"Imponibile\":\"Imponibile\", \"Imponibile + rivalsa inps\":\"Imponibile + rivalsa inps\"", "required": "1" ]}
'; } @@ -132,4 +80,3 @@ if ($module['name'] == 'Fatture di acquisto' || $module['name'] == 'Fatture di v {[ "type": "select", "label": "'.tr('Conto').'", "name": "idconto", "required": 1, "value": "'.$result['idconto'].'", "ajax-source": "'.$options['conti'].'" ]} '; -} diff --git a/modules/fatture/row-add.php b/modules/fatture/row-add.php index 51eabf898..5731f7957 100644 --- a/modules/fatture/row-add.php +++ b/modules/fatture/row-add.php @@ -47,8 +47,8 @@ $iva = $dbo->fetchArray('SELECT idiva_'.($dir == 'uscita' ? 'acquisti' : 'vendit $result['idiva'] = $iva[0]['idiva'] ?: setting('Iva predefinita'); // Leggo la ritenuta d'acconto predefinita per l'anagrafica e se non c'è leggo quella predefinita generica -$ritenuta_acconto = $dbo->fetchArray('SELECT id_ritenuta_acconto_'.($dir == 'uscita' ? 'acquisti' : 'vendite').' AS id_ritenuta_acconto FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica)); -$result['id_ritenuta_acconto'] = $ritenuta_acconto[0]['id_ritenuta_acconto'] ?: setting("Percentuale ritenuta d'acconto"); +$ritenuta_acconto = $dbo->fetchOne('SELECT id_ritenuta_acconto_'.($dir == 'uscita' ? 'acquisti' : 'vendite').' AS id_ritenuta_acconto FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica)); +$result['id_ritenuta_acconto_predefined'] = $ritenuta_acconto['id_ritenuta_acconto']; // Sconto unitario $rss = $dbo->fetchArray('SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_'.($dir == 'uscita' ? 'acquisti' : 'vendite').' FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica).')'); diff --git a/modules/fatture/src/Articolo.php b/modules/fatture/src/Articolo.php index ec6576982..c6347085c 100644 --- a/modules/fatture/src/Articolo.php +++ b/modules/fatture/src/Articolo.php @@ -42,10 +42,10 @@ class Articolo extends Article $data = $fattura->data; $carico = ($tipo->dir == 'entrata') ? tr('Ripristino articolo da _TYPE_ _NUM_') : tr('Carico magazzino da _TYPE_ numero _NUM_'); - $scarico = ($tipo->dir == 'uscita') ? tr('Rimozione articolo da _TYPE_ _NUM_') : tr('Scarico magazzino per _TYPE_ numero _NUM_'); + $scarico = ($tipo->dir == 'entrata') ? tr('Scarico magazzino per _TYPE_ numero _NUM_') : tr('Rimozione articolo da _TYPE_ _NUM_') ; - $movimento = ($qta > 0) ? $carico : $scarico; $qta = ($tipo->dir == 'uscita') ? -$qta : $qta; + $movimento = ($qta < 0) ? $carico : $scarico; $movimento = replace($movimento, [ '_TYPE_' => $tipo->descrizione, diff --git a/plugins/importPA/actions.php b/plugins/importPA/actions.php index e298ac340..dda54a83d 100644 --- a/plugins/importPA/actions.php +++ b/plugins/importPA/actions.php @@ -49,4 +49,9 @@ switch (filter('op')) { redirect(ROOTDIR.'/editor.php?id_module='.$id_module.'&id_record='.$id_record); break; + + case 'list': + include __DIR__.'/rows.php'; + + break; } diff --git a/plugins/importPA/edit.php b/plugins/importPA/edit.php index ed3fc1387..832f92b30 100644 --- a/plugins/importPA/edit.php +++ b/plugins/importPA/edit.php @@ -24,7 +24,7 @@ echo ' data = JSON.parse(data); if (!data.already) { - launch_modal("'.tr('Righe fattura').'", globals.rootdir + "/plugins/importPA/rows.php?id_module=" + globals.id_module + "&id_plugin=" + '.$id_plugin.' + "&id=" + data.id + "&filename=" + data.filename + "&id_segment=" + data.id_segment) + launch_modal("'.tr('Righe fattura').'", globals.rootdir + "/actions.php?id_module=" + globals.id_module + "&id_plugin=" + '.$id_plugin.' + "&op=list&id=" + data.id + "&filename=" + data.filename + "&id_segment=" + data.id_segment); } else { swal({ title: "'.tr('Fattura già importata!').'", diff --git a/src/Base/Description.php b/src/Base/Description.php index ff9e61d9a..1d824d630 100644 --- a/src/Base/Description.php +++ b/src/Base/Description.php @@ -6,12 +6,14 @@ use Illuminate\Database\Eloquent\Builder; abstract class Description extends Model { - protected static function boot() + protected static function boot($bypass) { parent::boot(); - static::addGlobalScope('descriptions', function (Builder $builder) { - $builder->where('is_descrizione', '=', 0); - }); + if (!$bypass) { + static::addGlobalScope('descriptions', function (Builder $builder) { + $builder->where('is_descrizione', '=', 0); + }); + } } } diff --git a/src/base/Article.php b/src/base/Article.php index 82773e310..d250790d6 100644 --- a/src/base/Article.php +++ b/src/base/Article.php @@ -13,7 +13,7 @@ abstract class Article extends Row protected static function boot() { - parent::boot(); + parent::boot(true); static::addGlobalScope('articles', function (Builder $builder) { $builder->whereNotNull('idarticolo')->where('idarticolo', '<>', 0); diff --git a/src/base/Row.php b/src/base/Row.php index 54618be87..7582fdbcf 100644 --- a/src/base/Row.php +++ b/src/base/Row.php @@ -4,15 +4,17 @@ namespace Base; use Illuminate\Database\Eloquent\Builder; -abstract class Row extends Model +abstract class Row extends Description { - protected static function boot() + protected static function boot($bypass) { - parent::boot(); + parent::boot($bypass); - static::addGlobalScope('rows', function (Builder $builder) { - $builder->whereNull('idarticolo')->where('idarticolo', '=', 0); - }); + if (!$bypass) { + static::addGlobalScope('rows', function (Builder $builder) { + $builder->whereNull('idarticolo')->where('idarticolo', '=', 0); + }); + } } /* @@ -96,12 +98,10 @@ abstract class Row extends Model $this->attributes['sconto'] = $this->sconto; } - public function setIdIvaAttribute($value) + protected function fixIva() { - $this->attributes['idiva'] = $value; - $iva = database()->fetchOne('SELECT * FROM co_iva WHERE id = :id_iva', [ - ':id_iva' => $value, + ':id_iva' => $this->idiva, ]); $descrizione = $iva['descrizione']; @@ -114,6 +114,15 @@ abstract class Row extends Model if (!isset($this->prezzo_vendita)) { $this->iva_indetraibile = $valore / 100 * $iva['indetraibile']; } + + $this->attributes['sconto'] = $this->sconto; + } + + public function setIdIvaAttribute($value) + { + $this->attributes['idiva'] = $value; + + $this->fixIva(); } public function getPrezzoAttribute() @@ -126,5 +135,7 @@ abstract class Row extends Model $this->qta = $qta; $this->subtotale = $prezzo * $qta; + + $this->fixIva(); } }