openstamanager/modules/combinazioni_articoli/actions.php

90 lines
2.9 KiB
PHP
Raw Normal View History

<?php
use Modules\CombinazioniArticoli\Combinazione;
include_once __DIR__.'/../../core.php';
switch (filter('op')) {
case 'add':
case 'update':
$nome = post('nome');
// Ricerca combinazione con nome indicato
2024-06-27 10:18:10 +02:00
$combinazione_new = Combinazione::where('id', '=', (new Combinazione())->getByField('title', $nome))->where('id', '!=', $id_record)->first();
2024-06-11 16:58:27 +02:00
if (!empty($combinazione_new)) {
2024-03-07 16:20:32 +01:00
flash()->error(tr('Questo nome è già stato utilizzato per un altra combinazione.'));
} else {
2024-03-08 13:10:32 +01:00
if (empty($combinazione)) {
$combinazione = Combinazione::build();
$id_record = $dbo->lastInsertedID();
}
2024-04-18 17:44:05 +02:00
$combinazione->setTranslation('title', $nome);
$combinazione->codice = post('codice');
2024-04-23 09:56:36 +02:00
$combinazione->id_categoria = post('id_categoria') ?: null;
$combinazione->id_sottocategoria = post('id_sottocategoria') ?: null;
$combinazione->save();
$id_record = $combinazione->id;
2024-04-18 17:44:05 +02:00
$database->query('INSERT INTO `mg_combinazioni_lang` (`id_record`, `id_lang`, `title`) VALUES ('.$id_record.', '.prepare(Models\Locale::getDefault()->id).', \''.post('nome').'\')');
2024-03-01 09:54:39 +01:00
// Selezione attributi per la combinazione
$combinazione->attributi()->sync((array) post('attributi'));
flash()->info(tr('Combinazione aggiornata correttamente!'));
}
break;
case 'delete':
$combinazione->delete();
flash()->info(tr('Combinazione rimossa correttamente!'));
break;
case 'edit-variante':
$valori = (array) filter('attributo');
$id_articolo = filter('id_articolo');
$database->delete('mg_articolo_attributo', ['id_articolo' => $id_articolo]);
2023-08-04 14:54:28 +02:00
foreach ($valori as $valore) {
$database->insert('mg_articolo_attributo', [
'id_articolo' => $id_articolo,
'id_valore' => $valore,
]);
}
flash()->info(tr('Variante modificata correttamente!'));
break;
case 'add-variante':
$combinazione->generaVariante((array) filter('attributo'), filter('id_articolo'));
flash()->info(tr('Variante aggiunta correttamente!'));
break;
case 'remove-variante':
$id_articolo = filter('id_articolo');
$database->delete('mg_articolo_attributo', ['id_articolo' => $id_articolo]);
$database->update('mg_articoli', ['id_combinazione' => null], ['id' => $id_articolo]);
2024-07-09 14:52:53 +02:00
Modules\Articoli\Articolo::find($id_articolo)->delete();
flash()->info(tr('Variante rimossa correttamente!'));
break;
case 'genera-varianti':
2024-07-09 10:53:26 +02:00
$nome_articolo = $combinazione->getTranslation('title');
$combinazione->generaTutto($nome_articolo);
flash()->info(tr('Varianti generate correttamente!'));
break;
}