mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-03 17:27:29 +01:00
Allineamento add tipi documento
This commit is contained in:
parent
5d2d4ca620
commit
00e8fb9be1
@ -28,6 +28,16 @@ class Tipo extends Model
|
||||
|
||||
protected $table = 'co_tipidocumento';
|
||||
|
||||
|
||||
public static function build($dir, $codice_tipo_documento_fe)
|
||||
{
|
||||
$model = new static();
|
||||
$model->dir = $dir;
|
||||
$model->codice_tipo_documento_fe = $codice_tipo_documento_fe;
|
||||
$model->save();
|
||||
|
||||
return $model;
|
||||
}
|
||||
public function fatture()
|
||||
{
|
||||
return $this->hasMany(Fattura::class, 'idtipodocumento');
|
||||
@ -47,6 +57,30 @@ class Tipo extends Model
|
||||
->first()->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Imposta l'attributo name del tipo di documento.
|
||||
*/
|
||||
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 del tipo documento a partire dal nome.
|
||||
*
|
||||
|
@ -18,63 +18,52 @@
|
||||
*/
|
||||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
use Modules\Fatture\Tipo;
|
||||
|
||||
switch (filter('op')) {
|
||||
case 'update':
|
||||
$descrizione = filter('descrizione');
|
||||
$dir = filter('dir');
|
||||
$codice_tipo_documento_fe = filter('codice_tipo_documento_fe');
|
||||
$predefined = post('predefined');
|
||||
$tipo_new = Tipo::where('id', '=', (new Tipo())->getByName($descrizione)->id_record)->where('dir', '=', $dir)->where('codice_tipo_documento_fe', '=', $codice_tipo_documento_fe)->first();
|
||||
|
||||
if (isset($descrizione) && isset($dir) && isset($codice_tipo_documento_fe)) {
|
||||
if ($dbo->fetchNum('SELECT * FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento_lang`.`id_record` = `co_tipidocumento`.`id` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `dir`='.prepare($dir).' AND `name`='.prepare($descrizione).' AND `codice_tipo_documento_fe`='.prepare($codice_tipo_documento_fe).' AND `id`!='.prepare($id_record)) == 0) {
|
||||
$predefined = post('predefined');
|
||||
if (!empty($tipo_new) && $tipo_new->id != $id_record){
|
||||
flash()->error(tr('Questa combinazione di nome, codice e direzione è già stata utilizzata per un altro tipo di documento.'));
|
||||
} else {
|
||||
if (!empty($predefined)) {
|
||||
$dbo->query('UPDATE `co_tipidocumento` SET `predefined` = 0 WHERE `dir` = '.prepare($dir));
|
||||
}
|
||||
|
||||
$dbo->update('co_tipidocumento', [
|
||||
'dir' => $dir,
|
||||
'codice_tipo_documento_fe' => $codice_tipo_documento_fe,
|
||||
'help' => filter('help'),
|
||||
'predefined' => $predefined,
|
||||
'enabled' => post('enabled'),
|
||||
'id_segment' => post('id_segment'),
|
||||
], ['id' => $id_record]);
|
||||
|
||||
$dbo->update('co_tipidocumento_lang', [
|
||||
'name' => $descrizione,
|
||||
], ['id_record' => $id_record, 'id_lang' => setting('Lingua')]);
|
||||
$tipo->dir = $dir;
|
||||
$tipo->codice_tipo_documento_fe = $codice_tipo_documento_fe;
|
||||
$tipo->help = filter('help');
|
||||
$tipo->predefined = $predefined;
|
||||
$tipo->enabled = post('enabled');
|
||||
$tipo->id_segment = post('id_segment');
|
||||
$tipo->name = $descrizione;
|
||||
$tipo->save();
|
||||
|
||||
flash()->info(tr('Salvataggio completato!'));
|
||||
} else {
|
||||
flash()->error(tr("E' già presente una tipologia di _TYPE_ con la stessa combinazione di direzione, descrizione e tipo documento FE", [
|
||||
'_TYPE_' => 'tipo documento',
|
||||
]));
|
||||
}
|
||||
} else {
|
||||
flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio'));
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
|
||||
case 'add':
|
||||
$descrizione = filter('descrizione');
|
||||
$dir = filter('dir');
|
||||
$codice_tipo_documento_fe = filter('codice_tipo_documento_fe');
|
||||
$tipo_new = Tipo::where('id', '=', (new Tipo())->getByName($descrizione)->id_record)->where('dir', '=', $dir)->where('codice_tipo_documento_fe', '=', $codice_tipo_documento_fe)->first();
|
||||
|
||||
if (isset($descrizione) && isset($dir) && isset($codice_tipo_documento_fe)) {
|
||||
if ($dbo->fetchNum('SELECT * FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento_lang`.`id_record` = `co_tipidocumento`.`id` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `dir`='.prepare($dir).' AND `name`='.prepare($descrizione).' AND `codice_tipo_documento_fe`='.prepare($codice_tipo_documento_fe)) == 0) {
|
||||
$dbo->insert('co_tipidocumento', [
|
||||
'dir' => $dir,
|
||||
'codice_tipo_documento_fe' => $codice_tipo_documento_fe,
|
||||
]);
|
||||
if (!empty($tipo_new) && $tipo_new->id != $id_record){
|
||||
flash()->error(tr('Questa combinazione di nome, codice e direzione è già stata utilizzata per un altro tipo di documento.'));
|
||||
} else {
|
||||
$tipo = Tipo::build($dir, $codice_tipo_documento_fe);
|
||||
$id_record = $dbo->lastInsertedID();
|
||||
|
||||
$dbo->insert('co_tipidocumento_lang', [
|
||||
'name' => $descrizione,
|
||||
'id_record' => $id_record,
|
||||
'id_lang' => setting('Lingua'),
|
||||
]);
|
||||
$tipo->name = $descrizione;
|
||||
$tipo->save();
|
||||
|
||||
if (isAjaxRequest()) {
|
||||
echo json_encode(['id' => $id_record, 'text' => $descrizione]);
|
||||
@ -83,13 +72,7 @@ switch (filter('op')) {
|
||||
flash()->info(tr('Aggiunta nuova tipologia di _TYPE_', [
|
||||
'_TYPE_' => 'tipo documento',
|
||||
]));
|
||||
} else {
|
||||
flash()->error(tr("E' già presente una tipologia di _TYPE_ con la stessa combinazione di direzione, descrizione e tipo documento FE", [
|
||||
'_TYPE_' => 'tipo documento',
|
||||
]));
|
||||
}
|
||||
} else {
|
||||
flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio'));
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -27,7 +27,7 @@ use Models\Module;
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$descrizione$" ]}
|
||||
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$name$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
|
@ -18,7 +18,10 @@
|
||||
*/
|
||||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
use Modules\Fatture\Tipo;
|
||||
|
||||
if (isset($id_record)) {
|
||||
$record = $dbo->fetchOne('SELECT * FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento_lang`.`id_record` = `co_tipidocumento`.`id` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `co_tipidocumento`.`id`='.prepare($id_record));
|
||||
|
||||
$tipo = Tipo::find($id_record);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user