Correzione creazione sottocategoria al volo
Correzione per la creazione delle sottocategorie al volo in modal consecutivi, che sovrascrivevano l'ID della categoria di origine.
This commit is contained in:
parent
c27169086a
commit
dc92d34e3e
|
@ -26,7 +26,14 @@ switch (filter('op')) {
|
|||
$colore = filter('colore');
|
||||
|
||||
if (isset($nome) && isset($nota) && isset($colore)) {
|
||||
$dbo->query('UPDATE `mg_categorie` SET `nome`='.prepare($nome).', `nota`='.prepare($nota).', `colore`='.prepare($colore).' WHERE `id`='.prepare($id_record));
|
||||
$database->table('mg_categorie')
|
||||
->where('id', '=', $id_record)
|
||||
->update([
|
||||
'nome' => $nome,
|
||||
'nota' => $nota,
|
||||
'colore' => $colore,
|
||||
]);
|
||||
|
||||
flash()->info(tr('Salvataggio completato!'));
|
||||
} else {
|
||||
flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio!'));
|
||||
|
@ -39,26 +46,36 @@ switch (filter('op')) {
|
|||
$nota = filter('nota');
|
||||
$colore = filter('colore');
|
||||
|
||||
$n = $dbo->fetchNum('SELECT * FROM `mg_categorie` WHERE `nome` LIKE '.prepare($nome));
|
||||
$id_original = filter('id_original') ?: null;
|
||||
|
||||
if (isset($nome)) {
|
||||
if ($n == 0) {
|
||||
$dbo->query('INSERT INTO `mg_categorie` (`nome`, `colore`, `nota`) VALUES ('.prepare($nome).', '.prepare($colore).', '.prepare($nota).')');
|
||||
// Ricerca corrispondenze con stesso nome
|
||||
$corrispondenze = $database->table('mg_categorie')
|
||||
->where('nome', '=', $nome);
|
||||
if (!empty($id_original)) {
|
||||
$corrispondenze = $corrispondenze->where('parent', '=', $id_original);
|
||||
}
|
||||
$corrispondenze = $corrispondenze->get();
|
||||
|
||||
$id_record = $dbo->lastInsertedID();
|
||||
// Eventuale creazione del nuovo record
|
||||
if ($corrispondenze->count() == 0) {
|
||||
$id_record = $database->table('mg_categorie')
|
||||
->insertGetId([
|
||||
'nome' => $nome,
|
||||
'nota' => $nota,
|
||||
'colore' => $colore,
|
||||
'parent' => $id_original,
|
||||
]);
|
||||
|
||||
if (isAjaxRequest()) {
|
||||
echo json_encode(['id' => $id_record, 'text' => $nome]);
|
||||
}
|
||||
|
||||
flash()->info(tr('Aggiunta nuova tipologia di _TYPE_', [
|
||||
'_TYPE_' => 'categoria',
|
||||
]));
|
||||
} else {
|
||||
flash()->error(tr('Esiste già una categoria con lo stesso nome!'));
|
||||
}
|
||||
flash()->info(tr('Aggiunta nuova tipologia di _TYPE_', [
|
||||
'_TYPE_' => 'categoria',
|
||||
]));
|
||||
} else {
|
||||
flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio!'));
|
||||
$id_record = $corrispondenze->first()->id;
|
||||
flash()->error(tr('Esiste già una categoria con lo stesso nome!'));
|
||||
}
|
||||
|
||||
if (isAjaxRequest()) {
|
||||
echo json_encode(['id' => $id_record, 'text' => $nome]);
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -79,31 +96,5 @@ switch (filter('op')) {
|
|||
flash()->error(tr('Esistono alcuni articoli collegati a questa categoria. Impossibile eliminarla.'));
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'row':
|
||||
$nome = filter('nome');
|
||||
$nota = filter('nota');
|
||||
$colore = filter('colore');
|
||||
$original = filter('id_original');
|
||||
|
||||
if (isset($nome) && isset($nota) && isset($colore)) {
|
||||
if (!empty($id_record)) {
|
||||
$dbo->query('UPDATE `mg_categorie` SET `nome`='.prepare($nome).', `nota`='.prepare($nota).', `colore`='.prepare($colore).' WHERE `id`='.prepare($id_record));
|
||||
} else {
|
||||
$dbo->query('INSERT INTO `mg_categorie` (`nome`,`nota`,`colore`, `parent`) VALUES ('.prepare($nome).', '.prepare($nota).', '.prepare($colore).', '.prepare($original).')');
|
||||
|
||||
$id_record = $dbo->lastInsertedID();
|
||||
|
||||
if (isAjaxRequest()) {
|
||||
echo json_encode(['id' => $id_record, 'text' => $nome]);
|
||||
}
|
||||
}
|
||||
flash()->info(tr('Salvataggio completato!'));
|
||||
$id_record = $original;
|
||||
} else {
|
||||
flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio!'));
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -35,19 +35,8 @@ if (isset($id_original)) {
|
|||
}
|
||||
?>" method="post" id="add-form">
|
||||
<input type="hidden" name="backto" value="record-edit">
|
||||
|
||||
<?php
|
||||
if (!isset($id_original)) {
|
||||
?>
|
||||
<input type="hidden" name="op" value="add">
|
||||
<?php
|
||||
} else {
|
||||
?>
|
||||
<input type="hidden" name="op" value="row">
|
||||
<input type="hidden" name="id_original" value="<?php echo $id_original; ?>">
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<input type="hidden" name="id_original" value="<?php echo $id_original; ?>">
|
||||
<input type="hidden" name="op" value="<?php echo $id_record ? 'update' : 'add'; ?>">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
|
|
Loading…
Reference in New Issue