diff --git a/modules/articoli/header.php b/modules/articoli/header.php index 103ac1347..06ff6390e 100644 --- a/modules/articoli/header.php +++ b/modules/articoli/header.php @@ -37,10 +37,9 @@ echo '
'.($marchio['link']? ' '.$marchio['name'].'' : $marchio['name']).'
' : ''). + '.($articolo->id_marchio ? ''.($articolo->marchio->name? ' '.$articolo->marchio->name.'' : $articolo->marchio->name).'
' : ''). ($articolo->id_categoria ? ''.$articolo->categoria->getTranslation('title') : '').($articolo->id_sottocategoria ? ' '.$articolo->sottocategoria->getTranslation('title') : '').'
'.$articolo->codice.' '.($articolo->barcode ? ' - '.$articolo->barcode.'
' : '').' diff --git a/modules/articoli/src/Articolo.php b/modules/articoli/src/Articolo.php index 017c07887..485a40b46 100755 --- a/modules/articoli/src/Articolo.php +++ b/modules/articoli/src/Articolo.php @@ -330,6 +330,11 @@ class Articolo extends Model return $this->belongsTo(Categoria::class, 'id_sottocategoria'); } + public function marchio() + { + return $this->belongsTo(Marchio::class, 'id_marchio'); + } + public function dettaglioFornitori() { return $this->hasMany(DettaglioFornitore::class, 'id_articolo'); diff --git a/modules/articoli/src/Marchio.php b/modules/articoli/src/Marchio.php new file mode 100644 index 000000000..4c07ab905 --- /dev/null +++ b/modules/articoli/src/Marchio.php @@ -0,0 +1,54 @@ +. + */ + +namespace Modules\Articoli; + +use Common\SimpleModelTrait; +use Illuminate\Database\Eloquent\Model; +use Traits\HierarchyTrait; +use Traits\RecordTrait; + +class Marchio extends Model +{ + use SimpleModelTrait; + use HierarchyTrait; + use RecordTrait; + + protected $table = 'mg_marchi'; + + + public static function build($nome = null) + { + $model = new static(); + $model->name = $nome; + $model->save(); + + return $model; + } + + public function articoli() + { + return $this->hasMany(Articolo::class, 'id_marchio'); + } + + public function getModuleAttribute() + { + return 'Marchi'; + } +} diff --git a/modules/marchi/actions.php b/modules/marchi/actions.php index 7b784e36c..71a620087 100644 --- a/modules/marchi/actions.php +++ b/modules/marchi/actions.php @@ -19,27 +19,55 @@ include_once __DIR__.'/../../core.php'; +use Modules\Articoli\Marchio; + switch (post('op')) { // Aggiorno informazioni di base marchio case 'update': - $dbo->update('mg_marchi', [ - 'name' => post('name'), - 'link' => post('link'), - ], ['id' => $id_record]); + $nome = filter('name'); + $link = filter('link'); - flash()->info(tr('Informazioni salvate correttamente!')); + $marchio_new = Marchio::where('name', '=', $nome)->first(); + + if (!empty($marchio_new)) { + flash()->error(tr('Questo nome è già stato utilizzato per un altro marchio.')); + } else { + $marchio = Marchio::find($id_record); + $marchio->name = $nome; + $marchio->link = $link; + $marchio->save(); + + flash()->info(tr('Marchio aggiornato!')); + } + + if (isAjaxRequest()) { + echo json_encode(['id' => $id_record, 'text' => $nome]); + } break; + // Aggiungo marchio case 'add': - $dbo->insert('mg_marchi', [ - 'name' => post('name'), - 'link' => post('link'), - ]); - $id_record = $dbo->lastInsertedID(); + $nome = filter('name'); + $link = filter('link'); - flash()->info(tr('Aggiunto nuovo marchio!')); + $marchio_new = Marchio::where('name', '=', $nome)->first(); + + if (!empty($marchio_new)) { + flash()->error(tr('Questo nome è già stato utilizzato per un altro marchio.')); + } else { + $marchio = Marchio::build($nome); + $id_record = $dbo->lastInsertedID(); + $marchio->link = $link; + $marchio->save(); + + flash()->info(tr('Aggiunto nuovo marchio')); + } + + if (isAjaxRequest()) { + echo json_encode(['id' => $id_record, 'text' => $nome]); + } break; diff --git a/modules/marchi/add.php b/modules/marchi/add.php index f19d63ee9..741e69a39 100644 --- a/modules/marchi/add.php +++ b/modules/marchi/add.php @@ -27,7 +27,7 @@ $id_anagrafica = filter('id_anagrafica');