Allineamento add stati contratti
This commit is contained in:
parent
7a904d5450
commit
5f79a6ee71
|
@ -28,6 +28,19 @@ class Stato extends Model
|
|||
|
||||
protected $table = 'co_staticontratti';
|
||||
|
||||
public static function build($icona, $colore, $is_completato, $is_fatturabile, $is_pianificabile)
|
||||
{
|
||||
$model = new static();
|
||||
$model->icona = $icona;
|
||||
$model->colore = $colore;
|
||||
$model->is_completato = $is_completato;
|
||||
$model->is_fatturabile = $is_fatturabile;
|
||||
$model->is_pianificabile = $is_pianificabile;
|
||||
$model->save();
|
||||
|
||||
return $model;
|
||||
}
|
||||
|
||||
public function preventivi()
|
||||
{
|
||||
return $this->hasMany(Contratto::class, 'idstato');
|
||||
|
@ -47,6 +60,29 @@ class Stato extends Model
|
|||
->first()->name;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Imposta l'attributo name dell'articolo.
|
||||
*/
|
||||
public function setNameAttribute($value)
|
||||
{
|
||||
$translated = database()->table($this->table.'_lang')
|
||||
->where('id_record', '=', $this->id)
|
||||
->where('id_lang', '=', setting('Lingua'));
|
||||
|
||||
if ($translated->count() > 0) {
|
||||
$translated->update([
|
||||
'name' => $value
|
||||
]);
|
||||
} else {
|
||||
$translated->insert([
|
||||
'id_record' => $this->id,
|
||||
'id_lang' => setting('Lingua'),
|
||||
'name' => $value
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Ritorna l'id dello stato contratto a partire dal nome.
|
||||
*
|
||||
|
|
|
@ -23,23 +23,19 @@ use Modules\Contratti\Stato;
|
|||
|
||||
switch (post('op')) {
|
||||
case 'update':
|
||||
$id_stato_old = (new Stato())->getByName($record['name'])->id_record;
|
||||
$id_stato = (new Stato())->getByName(post('descrizione'))->id_record;
|
||||
$descrizione = post('descrizione');
|
||||
$stato_new = Stato::find((new Stato())->getByName($descrizione)->id_record);
|
||||
|
||||
if ($id_stato) {
|
||||
if ($stato_new) {
|
||||
flash()->error(tr('Questo nome è già stato utilizzato per un altro stato dei contratti.'));
|
||||
} else {
|
||||
$dbo->update('co_staticontratti', [
|
||||
'icona' => post('icona'),
|
||||
'colore' => post('colore'),
|
||||
'is_completato' => post('is_completato') ?: null,
|
||||
'is_fatturabile' => post('is_fatturabile') ?: null,
|
||||
'is_pianificabile' => post('is_pianificabile') ?: null,
|
||||
], ['id' => $id_stato_old]);
|
||||
|
||||
$dbo->update('co_staticontratti_lang', [
|
||||
'name' => post('descrizione'),
|
||||
], ['id_record' => $id_stato_old]);
|
||||
$stato->icona = post('icona');
|
||||
$stato->colore = post('colore');
|
||||
$stato->is_completato = post('is_completato');
|
||||
$stato->is_fatturabile = post('is_fatturabile');
|
||||
$stato->is_pianificabile = post('is_pianificabile');
|
||||
$stato->name = $descrizione;
|
||||
$stato->save();
|
||||
|
||||
flash()->info(tr('Informazioni salvate correttamente.'));
|
||||
}
|
||||
|
@ -54,13 +50,15 @@ switch (post('op')) {
|
|||
$is_fatturabile = post('is_fatturabile') ?: null;
|
||||
$is_pianificabile = post('is_pianificabile') ?: null;
|
||||
|
||||
// controlla descrizione che non sia duplicata
|
||||
if ((new Stato())->getByName($descrizione)->id_record) {
|
||||
$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 dei contratti.'));
|
||||
} else {
|
||||
$dbo->query('INSERT INTO `co_staticontratti` (`icona`, `colore`, `is_completato`, `is_fatturabile`, `is_pianificabile`) VALUES ('.prepare($icona).', '.prepare($colore).', '.prepare($is_completato).', '.prepare($is_fatturabile).', '.prepare($is_pianificabile).' )');
|
||||
$id_record = $dbo->lastInsertedID();
|
||||
$dbo->query('INSERT INTO `co_staticontratti_lang` (`name`, `id_record`, `id_lang`) VALUES ('.prepare($descrizione).', '.prepare($id_record).', '.prepare(setting('Lingua')).' )');
|
||||
$stato = Stato::build($icona, $colore, $is_completato, $is_fatturabile, $is_pianificabile);
|
||||
$id_record= $dbo->lastInsertedID();
|
||||
$stato->name = $descrizione;
|
||||
$stato->save();
|
||||
|
||||
flash()->info(tr('Nuovo stato contratto aggiunto.'));
|
||||
}
|
||||
|
|
|
@ -18,7 +18,10 @@
|
|||
*/
|
||||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
use Modules\Contratti\Stato;
|
||||
|
||||
if (isset($id_record)) {
|
||||
$record = $dbo->fetchOne('SELECT * FROM `co_staticontratti` LEFT JOIN `co_staticontratti_lang` ON `co_staticontratti`.`id` = `co_staticontratti_lang`.`id_record` WHERE `co_staticontratti`.`id`='.prepare($id_record));
|
||||
|
||||
$stato = Stato::find($id_record);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue