1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-01-12 07:33:47 +01:00

Allineamento add stati ordine

This commit is contained in:
Pek5892 2024-03-07 16:46:41 +01:00
parent 54e1e961bf
commit cb7d6d425d
4 changed files with 70 additions and 23 deletions

View File

@ -28,12 +28,24 @@ class Stato extends Model
protected $table = 'or_statiordine';
public static function build($icona, $colore, $completato, $is_fatturabile, $impegnato)
{
$model = new static();
$model->icona = $icona;
$model->colore = $colore;
$model->completato = $completato;
$model->is_fatturabile = $is_fatturabile;
$model->impegnato = $impegnato;
$model->save();
return $model;
}
public function ordini()
{
return $this->hasMany(Ordine::class, 'idstatoordine');
}
/**
* Ritorna l'attributo name dello stato ordine.
*
@ -48,6 +60,31 @@ class Stato extends Model
->first()->name;
}
/**
* Imposta l'attributo name dello stato ordine.
*/
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 dello stato ordine a partire dal nome.
*

View File

@ -23,20 +23,22 @@ use Modules\Ordini\Stato;
switch (post('op')) {
case 'update':
$id_stato= (new Stato())->getByName(post('descrizione'))->id_record;
$dbo->update('or_statiordine', [
'icona' => post('icona'),
'colore' => post('colore'),
'completato' => post('completato') ?: null,
'is_fatturabile' => post('is_fatturabile') ?: null,
'impegnato' => post('impegnato') ?: null,
], ['id' => $id_record]);
$descrizione = post('descrizione');
$stato_new = (new Stato())->getByName($descrizione)->id_record;
$dbo->update('or_statiordine_lang', [
'name' => $id_stato ? $id_stato->name : post('descrizione'),
], ['id_record' => $id_record, 'id_lang' => setting('Lingua')]);
if (!empty($stato_new) && $stato_new != $id_record){
flash()->error(tr('Questo nome è già stato utilizzato per un altro stato attività.'));
} else {
$stato->icona = post('icona');
$stato->colore = post('colore');
$stato->completato = post('completato');
$stato->is_fatturabile = post('is_fatturabile');
$stato->impegnato = post('impegnato');
$stato->name = $descrizione;
$stato->save();
flash()->info(tr('Informazioni salvate correttamente.'));
flash()->info(tr('Informazioni salvate correttamente.'));
}
break;
@ -44,18 +46,19 @@ switch (post('op')) {
$descrizione = post('descrizione');
$icona = post('icona');
$colore = post('colore');
$completato = post('completato') ?: null;
$is_fatturabile = post('is_fatturabile') ?: null;
$impegnato = post('impegnato') ?: null;
$completato = post('completato');
$is_fatturabile = post('is_fatturabile');
$impegnato = post('impegnato');
// controlla descrizione che non sia duplicata
$id_stato= (new Stato())->getByName(post('descrizione'))->id_record;
if ($id_stato) {
flash()->error(tr('Stato ordine già esistente.'));
$stato_new = Stato::find((new Stato())->getByName($descrizione)->id_record);
if ($stato_new) {
flash()->error(tr('Questo nome è già stato utilizzato per un altro stato ordine.'));
} else {
$dbo->query('INSERT INTO `or_statiordine` (icona, colore, completato, is_fatturabile, impegnato) VALUES ('.prepare($icona).', '.prepare($colore).','.prepare($completato).', '.prepare($is_fatturabile).', '.prepare($impegnato).' )');
$id_record = $dbo->lastInsertedID();
$dbo->query('INSERT INTO `or_statiordine_lang` (`name`, `id_record`, `id_lang`) VALUES ('.prepare($descrizione).', '.prepare($id_record).', '.prepare(setting('Lingua')).')');
$stato = Stato::build($icona, $colore, $completato, $is_fatturabile, $impegnato);
$id_record= $dbo->lastInsertedID();
$stato->name = $descrizione;
$stato->save();
flash()->info(tr('Nuovo stato ordine aggiunto.'));
}

View File

@ -18,7 +18,10 @@
*/
include_once __DIR__.'/../../core.php';
use Modules\Ordini\Stato;
if (isset($id_record)) {
$record = $dbo->fetchOne('SELECT * FROM `or_statiordine` LEFT JOIN `or_statiordine_lang` ON (`or_statiordine_lang`.`id_record`=`or_statiordine`.`id` AND `or_statiordine_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `or_statiordine`.`id`='.prepare($id_record));
$stato = Stato::find($id_record);
}

View File

@ -1431,6 +1431,8 @@ FROM
WHERE
1=1 AND
`mg_combinazioni`.`deleted_at` IS NULL
GROUP BY
`mg_combinazioni`.`id`
HAVING
2=2" WHERE `name` = 'Combinazioni';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`mg_combinazioni_lang`.`name`' WHERE `zz_modules`.`name` = 'Combinazioni' AND `zz_views`.`name` = 'Nome';
@ -1933,6 +1935,7 @@ UPDATE `zz_plugins` SET `options` = '{ \"main_query\": [ { \"type\": \"table\",
DROP TABLE IF EXISTS `in_vociservizio`;
DELETE FROM `zz_views` WHERE `id_module` = (SELECT `id_record` FROM `zz_modules_lang` WHERE `name` = 'Voci di servizio');
DELETE FROM `zz_modules` WHERE `id` = (SELECT `id_record` FROM `zz_modules_lang` WHERE `name` = 'Voci di servizio');
DELETE FROM `zz_modules_lang` WHERE `name` = 'Voci di servizio';
@ -1944,3 +1947,4 @@ INSERT INTO `zz_api_resources` (`id`, `version`, `type`, `resource`, `class`, `e
(NULL, 'app-v1', 'retrieve', 'campi-personalizzati-valori', 'API\\App\\v1\\CampiPersonalizzatiValori', 1),
(NULL, 'app-v1', 'retrieve', 'campi-personalizzati-valori-cleanup', 'API\\App\\v1\\CampiPersonalizzatiValori', 1),
(NULL, 'app-v1', 'update', 'campi-personalizzati-valori', 'API\\App\\v1\\CampiPersonalizzatiValori', 1);