Allineamento add combinazioni

This commit is contained in:
Pek5892 2024-03-07 16:20:32 +01:00
parent 344e116b90
commit ba2109c042
3 changed files with 33 additions and 10 deletions

View File

@ -10,13 +10,13 @@ switch (filter('op')) {
$nome = post('nome');
// Ricerca combinazione con nome indicato
$esistente = (new Combinazione())->getByName($nome)->id_record;
if (isset($combinazione)) {
$esistente = Combinazione::find($esistente)->where('id', '!=', $combinazione->id);
}
$combinazione_new = (new Combinazione())->getByName($nome)->id_record;
if (!$esistente) {
if (!empty($combinazione_new) && !empty($id_record) && $combinazione_new != $id_record){
flash()->error(tr('Questo nome è già stato utilizzato per un altra combinazione.'));
} else {
$combinazione = $combinazione ?: Combinazione::build();
$combinazione->name = $nome;
$combinazione->codice = post('codice');
$combinazione->id_categoria = post('id_categoria');
$combinazione->id_sottocategoria = post('id_sottocategoria');
@ -30,8 +30,6 @@ switch (filter('op')) {
$combinazione->attributi()->sync((array) post('attributi'));
flash()->info(tr('Combinazione aggiornata correttamente!'));
} else {
flash()->error(tr('Combinazione esistente con lo stesso nome!'));
}
break;

View File

@ -1,6 +1,7 @@
<?php
include_once __DIR__.'/../../core.php';
use Models\Module;
$numero_varianti = $combinazione->articoli()->count();
@ -27,16 +28,16 @@ echo '
<div class="row">
<div class="col-md-6">';
if (!empty($record['id_categoria'])) {
if (!empty($combinazione->id_categoria)) {
echo '
'.Modules::link('Categorie articoli', $record['id_categoria'], null, null, 'class="pull-right"');
'.Modules::link('Categorie articoli', $combinazione->id_categoria, null, null, 'class="pull-right"');
}
echo '
{[ "type": "select", "label": "'.tr('Categoria').'", "name": "id_categoria", "required": 0, "value": "$id_categoria$", "ajax-source": "categorie", "icon-after": "add|'.(new Module())->getByName('Categorie articoli')->id_record.'" ]}
</div>
<div class="col-md-6">
{[ "type": "select", "label": "'.tr('Sottocategoria').'", "name": "id_sottocategoria", "value": "$id_sottocategoria$", "ajax-source": "sottocategorie", "select-options": '.json_encode(['id_categoria' => $record['id_categoria']]).' ]}
{[ "type": "select", "label": "'.tr('Sottocategoria').'", "name": "id_sottocategoria", "value": "$id_sottocategoria$", "ajax-source": "sottocategorie", "select-options": '.json_encode(['id_categoria' => $combinazione->id_categoria]).' ]}
</div>
</div>

View File

@ -227,6 +227,30 @@ class Combinazione extends Model
->first()->name;
}
/**
* Imposta l'attributo name della combinazione.
*/
public function setNameAttribute($value)
{
$table = database()->table($this->table.'_lang');
$translated = $table
->where('id_record', '=', $this->id)
->where('id_lang', '=', setting('Lingua'));
if ($translated->count() > 0) {
$translated->update([
'name' => $value
]);
} else {
$table->insert([
'id_record' => $this->id,
'id_lang' => setting('Lingua'),
'name' => $value
]);
}
}
/**
* Ritorna l'id della combinazione a partire dal nome.
*