Fix per ottimizzazione database

This commit is contained in:
Pek5892 2024-04-19 16:44:08 +02:00
parent 2f8fb8077a
commit e62d206c14
90 changed files with 997 additions and 280 deletions

View File

@ -26,7 +26,7 @@ include_once __DIR__.'/../../core.php';
<div class="row"> <div class="row">
<div class="col-md-5"> <div class="col-md-5">
{[ "type": "text", "label": "<?php echo tr('Name'); ?>", "name": "name", "value": "$name$", "required": 1 ]} {[ "type": "text", "label": "<?php echo tr('Name'); ?>", "name": "name", "value": "$title$", "required": 1 ]}
</div> </div>
<div class="col-md-5"> <div class="col-md-5">

View File

@ -0,0 +1,51 @@
<?php
/*
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
* Copyright (C) DevCode s.r.l.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
namespace Modules\Anagrafiche;
use Common\SimpleModelTrait;
use Illuminate\Database\Eloquent\Model;
use Traits\RecordTrait;
class Provenienza extends Model
{
use SimpleModelTrait;
use RecordTrait;
protected $table = 'an_provenienze';
protected static $translated_fields = [
'title',
];
public function anagrafiche()
{
return $this->hasMany(Anagrafica::class, 'id_provenienza');
}
public function getModuleAttribute()
{
return 'Provenienze clienti';
}
public static function getTranslatedFields()
{
return self::$translated_fields;
}
}

View File

@ -0,0 +1,51 @@
<?php
/*
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
* Copyright (C) DevCode s.r.l.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
namespace Modules\Anagrafiche;
use Common\SimpleModelTrait;
use Illuminate\Database\Eloquent\Model;
use Traits\RecordTrait;
class Relazione extends Model
{
use SimpleModelTrait;
use RecordTrait;
protected $table = 'an_relazioni';
protected static $translated_fields = [
'title',
];
public function anagrafiche()
{
return $this->hasMany(Anagrafica::class, 'idrelazione');
}
public function getModuleAttribute()
{
return 'Relazioni';
}
public static function getTranslatedFields()
{
return self::$translated_fields;
}
}

View File

@ -0,0 +1,51 @@
<?php
/*
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
* Copyright (C) DevCode s.r.l.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
namespace Modules\Anagrafiche;
use Common\SimpleModelTrait;
use Illuminate\Database\Eloquent\Model;
use Traits\RecordTrait;
class Settore extends Model
{
use SimpleModelTrait;
use RecordTrait;
protected $table = 'an_settori';
protected static $translated_fields = [
'title',
];
public function anagrafiche()
{
return $this->hasMany(Anagrafica::class, 'id_settore');
}
public function getModuleAttribute()
{
return 'Settori merceologici';
}
public static function getTranslatedFields()
{
return self::$translated_fields;
}
}

View File

@ -57,6 +57,9 @@ switch (post('op')) {
$sottocategoria = Categoria::find(post('subcategoria')); $sottocategoria = Categoria::find(post('subcategoria'));
$articolo = Articolo::build($codice, $categoria, $sottocategoria); $articolo = Articolo::build($codice, $categoria, $sottocategoria);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$articolo->name = $descrizione;
}
$articolo->barcode = post('barcode'); $articolo->barcode = post('barcode');
$articolo->threshold_qta = post('threshold_qta'); $articolo->threshold_qta = post('threshold_qta');
$articolo->coefficiente = post('coefficiente'); $articolo->coefficiente = post('coefficiente');
@ -121,6 +124,10 @@ switch (post('op')) {
])); ]));
} }
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$articolo->name = $descrizione;
}
$articolo->codice = post('codice', true); $articolo->codice = post('codice', true);
$articolo->barcode = post('barcode'); $articolo->barcode = post('barcode');
$articolo->um = post('um'); $articolo->um = post('um');

View File

@ -0,0 +1,47 @@
<?php
/*
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
* Copyright (C) DevCode s.r.l.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
namespace Modules\Articoli;
use Common\SimpleModelTrait;
use Illuminate\Database\Eloquent\Model;
use Traits\RecordTrait;
class CausaleMovimento extends Model
{
use SimpleModelTrait;
use RecordTrait;
protected $table = 'mg_causali_movimenti';
protected static $translated_fields = [
'title',
];
public function getModuleAttribute()
{
return 'Causali movimenti';
}
public static function getTranslatedFields()
{
return self::$translated_fields;
}
}

View File

@ -32,6 +32,9 @@ switch (filter('op')) {
flash()->error(tr('Questo nome è già stato utilizzato per un altro attributo.')); flash()->error(tr('Questo nome è già stato utilizzato per un altro attributo.'));
} else { } else {
$attributo = Attributo::build(); $attributo = Attributo::build();
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$attributo->name = $descrizione;
}
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
$attributo->setTranslation('title', $descrizione); $attributo->setTranslation('title', $descrizione);
$attributo->setTranslation('title', $title); $attributo->setTranslation('title', $title);
@ -49,6 +52,9 @@ switch (filter('op')) {
flash()->error(tr('Questo nome è già stato utilizzato per un altro attributo.')); flash()->error(tr('Questo nome è già stato utilizzato per un altro attributo.'));
} else { } else {
$attributo->setTranslation('title', $title); $attributo->setTranslation('title', $title);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$attributo->name = $descrizione;
}
$attributo->save(); $attributo->save();
flash()->info(tr('Attributo aggiornato correttamente!')); flash()->info(tr('Attributo aggiornato correttamente!'));

View File

@ -18,35 +18,55 @@
*/ */
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Modules\DDT\AspettoBeni;
switch (post('op')) { switch (post('op')) {
case 'update': case 'update':
$descrizione = post('descrizione'); $descrizione = post('descrizione');
if (empty($dbo->fetchArray('SELECT * FROM `dt_aspettobeni` LEFT JOIN `dt_aspettobeni_lang` ON (`dt_aspettobeni`.`id`=`dt_aspettobeni_lang`.`id_record` AND `dt_aspettobeni_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') WHERE `title`='.prepare($descrizione).' AND `dt_aspettobeni`.`id`!='.prepare($id_record)))) { if (isset($descrizione)) {
$dbo->query('UPDATE `dt_aspettobeni_lang` SET `title`='.prepare($descrizione).' WHERE `id_record`='.prepare($id_record)).' AND `id_lang`='.prepare(Models\Locale::getDefault()->id); $aspetto_new = AspettoBeni::where('id', '=', (new AspettoBeni())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first();
flash()->info(tr('Salvataggio completato.')); if (empty($aspetto_new)) {
$aspetto->setTranslation('title', $descrizione);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$aspetto->name = $descrizione;
}
$aspetto->save();
flash()->info(tr('Salvataggio completato.'));
} else {
flash()->error(tr("E' già presente un aspetto beni con questa descrizione."));
}
} else { } else {
flash()->error(tr("E' già presente un aspetto beni con questa descrizione.")); flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio'));
} }
break; break;
case 'add': case 'add':
$descrizione = post('descrizione'); $descrizione = post('descrizione');
if (empty($dbo->fetchArray('SELECT * FROM `dt_aspettobeni` LEFT JOIN `dt_aspettobeni_lang` ON (`dt_aspettobeni`.`id`=`dt_aspettobeni_lang`.`id_record` AND `dt_aspettobeni_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') WHERE `title`='.prepare($descrizione)))) { if (isset($descrizione)) {
$dbo->query('INSERT INTO `dt_aspettobeni` (`created_at`) VALUES (NOW())'); if (empty(AspettoBeni::where('id', '=', (new AspettoBeni())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first())) {
$id_record = $dbo->lastInsertedID(); $aspetto = AspettoBeni::build();
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$aspetto->name = $descrizione;
}
$aspetto->save();
$id_record = $dbo->lastInsertedID();
$aspetto->setTranslation('title', $descrizione);
$aspetto->save();
$dbo->query('INSERT INTO `dt_aspettobeni_lang` (`title`, `id_record`, `id_lang`) VALUES ('.prepare($descrizione).', '.prepare($id_record).', '.prepare(Models\Locale::getDefault()->id).')'); if (isAjaxRequest()) {
echo json_encode(['id' => $id_record, 'text' => $descrizione]);
}
if (isAjaxRequest()) { flash()->info(tr('Aggiunto nuovo Aspetto beni.'));
echo json_encode(['id' => $id_record, 'text' => $descrizione]); } else {
flash()->error(tr("E' già presente un aspetto beni con questa descrizione."));
} }
flash()->info(tr('Aggiunto nuovo Aspetto beni.'));
} else { } else {
flash()->error(tr("E' già presente un aspetto beni con questa descrizione.")); flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio'));
} }
break; break;

View File

@ -34,7 +34,7 @@ include_once __DIR__.'/../../core.php';
<div class="panel-body"> <div class="panel-body">
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$name$" ]} {[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$title$" ]}
</div> </div>
</div> </div>
</div> </div>

View File

@ -16,9 +16,12 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use Modules\DDT\AspettoBeni;
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
if (!empty($id_record)) { if (!empty($id_record)) {
$record = $dbo->fetchOne('SELECT * FROM `dt_aspettobeni` LEFT JOIN `dt_aspettobeni_lang` ON (`dt_aspettobeni`.`id`=`dt_aspettobeni_lang`.`id_record` AND `dt_aspettobeni_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') WHERE `dt_aspettobeni`.`id`='.prepare($id_record)); $record = $dbo->fetchOne('SELECT * FROM `dt_aspettobeni` LEFT JOIN `dt_aspettobeni_lang` ON (`dt_aspettobeni`.`id`=`dt_aspettobeni_lang`.`id_record` AND `dt_aspettobeni_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') WHERE `dt_aspettobeni`.`id`='.prepare($id_record));
$aspetto = AspettoBeni::find($id_record);
} }

View File

@ -32,6 +32,9 @@ switch (filter('op')) {
$categoria->colore = $colore; $categoria->colore = $colore;
$categoria->parent = $id_original ?: null; $categoria->parent = $id_original ?: null;
$categoria->setTranslation('title', $nome); $categoria->setTranslation('title', $nome);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$categoria->name = $descrizione;
}
$categoria->save(); $categoria->save();
flash()->info(tr('Salvataggio completato!')); flash()->info(tr('Salvataggio completato!'));
@ -66,6 +69,9 @@ switch (filter('op')) {
flash()->error(tr('Questo nome è già stato utilizzato per un altra categoria.')); flash()->error(tr('Questo nome è già stato utilizzato per un altra categoria.'));
} else { } else {
$categoria = Categoria::build($nota, $colore); $categoria = Categoria::build($nota, $colore);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$categoria->name = $descrizione;
}
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
$categoria->parent = $id_original; $categoria->parent = $id_original;
$categoria->setTranslation('title', $nome); $categoria->setTranslation('title', $nome);

View File

@ -40,7 +40,7 @@ if (isset($id_original)) {
<div class="row"> <div class="row">
<div class="col-md-8"> <div class="col-md-8">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$name$" ]} {[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$title$" ]}
</div> </div>
<div class="col-md-4"> <div class="col-md-4">

View File

@ -33,7 +33,7 @@ use Models\Module;
<div class="panel-body"> <div class="panel-body">
<div class="row"> <div class="row">
<div class="col-md-8"> <div class="col-md-8">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$name$" ]} {[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$title$" ]}
</div> </div>
<div class="col-md-4"> <div class="col-md-4">

View File

@ -32,6 +32,9 @@ switch (post('op')) {
])); ]));
} else { } else {
$categoria->setTranslation('title', $descrizione); $categoria->setTranslation('title', $descrizione);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$categoria->name = $descrizione;
}
$categoria->save(); $categoria->save();
$categoria->syncPermessi(post('permessi') ?: []); $categoria->syncPermessi(post('permessi') ?: []);
@ -51,6 +54,9 @@ switch (post('op')) {
])); ]));
} else { } else {
$categoria = Categoria::build(); $categoria = Categoria::build();
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$categoria->name = $descrizione;
}
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
$categoria->setTranslation('title', $descrizione); $categoria->setTranslation('title', $descrizione);
$categoria->save(); $categoria->save();

View File

@ -33,7 +33,7 @@ if ($record['doc_associati'] > 0) {
<div class="row"> <div class="row">
<div class="col-md-9"> <div class="col-md-9">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$name$" ]} {[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$title$" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">

View File

@ -34,7 +34,7 @@ use Models\Module;
<div class="panel-body"> <div class="panel-body">
<div class="row"> <div class="row">
<div class="col-md-8"> <div class="col-md-8">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$name$" ]} {[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$title$" ]}
</div> </div>
<div class="col-md-4"> <div class="col-md-4">

View File

@ -18,29 +18,24 @@
*/ */
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Modules\DDT\Causale;
switch (filter('op')) { switch (filter('op')) {
case 'update': case 'update':
$descrizione = filter('descrizione'); $descrizione = filter('descrizione');
$predefined = post('predefined');
if (isset($descrizione)) { if (isset($descrizione)) {
if (empty($dbo->fetchArray('SELECT * FROM `dt_causalet` LEFT JOIN `dt_causalet_lang` ON (`dt_causalet`.`id` = `dt_causalet_lang`.`id_record` AND `dt_causalet_lang`.`id_lang` ='.prepare(Models\Locale::getDefault()->id).') WHERE `deleted_at` IS NULL AND `title`='.prepare($descrizione).' AND `dt_causalet`.`id`!='.prepare($id_record)))) { $causale_new = Causale::where('id', '=', (new Causale())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first();
if (!empty($predefined)) { if (empty($causale_new)) {
$dbo->query('UPDATE dt_causalet SET predefined = 0'); $causale->setTranslation('title', $descrizione);
} if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$causale->name = $descrizione;
$dbo->update('dt_causalet', [ }
'is_importabile' => filter('is_importabile'), $causale->predefined = post('predefined');
'reversed' => filter('reversed'), $causale->is_importabile = filter('is_importabile');
'predefined' => $predefined, $causale->reversed = filter('reversed');
'is_rientrabile' => filter('is_rientrabile'), $causale->is_rientrabile = filter('is_rientrabile');
], ['id' => $id_record]); $causale->save();
$dbo->update('dt_causalet_lang', [
'name' => $descrizione,
], ['id_record' => $id_record, 'id_lang' => Models\Locale::getDefault()->id]);
flash()->info(tr('Salvataggio completato!')); flash()->info(tr('Salvataggio completato!'));
} else { } else {
flash()->error(tr("E' già presente una causale di trasporto con la stessa descrizione")); flash()->error(tr("E' già presente una causale di trasporto con la stessa descrizione"));
@ -55,16 +50,16 @@ switch (filter('op')) {
$descrizione = filter('descrizione'); $descrizione = filter('descrizione');
if (isset($descrizione)) { if (isset($descrizione)) {
if (empty($dbo->fetchArray('SELECT * FROM `dt_causalet` LEFT JOIN `dt_causalet_lang` ON (`dt_causalet`.`id` = `dt_causalet_lang`.`id_record` AND `dt_causalet_lang`.`id_lang` ='.prepare(Models\Locale::getDefault()->id).') WHERE `deleted_at` IS NULL AND `title`='.prepare($descrizione)))) { if (empty(Causale::where('id', '=', (new Causale())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first())) {
$dbo->insert('dt_causalet', [ $causale = Causale::build();
'is_importabile' => 1, if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
]); $causale->name = $descrizione;
}
$causale->save();
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
$dbo->insert('dt_causalet_lang', [ $causale->setTranslation('title', $descrizione);
'name' => $descrizione, $causale->save();
'id_record' => $id_record,
'id_lang' => Models\Locale::getDefault()->id,
]);
if (isAjaxRequest()) { if (isAjaxRequest()) {
echo json_encode(['id' => $id_record, 'text' => $descrizione]); echo json_encode(['id' => $id_record, 'text' => $descrizione]);

View File

@ -28,7 +28,7 @@ include_once __DIR__.'/../../core.php';
<div class="col-md-6"> <div class="col-md-6">
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$name$", "charcounter": 1, "maxlength": "100" ]} {[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$title$", "charcounter": 1, "maxlength": "100" ]}
</div> </div>
</div> </div>
</div> </div>

View File

@ -17,8 +17,12 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use Modules\DDT\Causale;
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
if (!empty($id_record)) { if (!empty($id_record)) {
$record = $dbo->fetchOne('SELECT * FROM `dt_causalet` LEFT JOIN `dt_causalet_lang` ON (`dt_causalet`.`id` = `dt_causalet_lang`.`id_record` AND `dt_causalet_lang`.`id_lang` ='.prepare(Models\Locale::getDefault()->id).') WHERE `dt_causalet`.`id`='.prepare($id_record)); $record = $dbo->fetchOne('SELECT * FROM `dt_causalet` LEFT JOIN `dt_causalet_lang` ON (`dt_causalet`.`id` = `dt_causalet_lang`.`id_record` AND `dt_causalet_lang`.`id_lang` ='.prepare(Models\Locale::getDefault()->id).') WHERE `dt_causalet`.`id`='.prepare($id_record));
$causale = Causale::find($id_record);
} }

View File

@ -19,16 +19,25 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Modules\Articoli\CausaleMovimento as Causale;
switch (filter('op')) { switch (filter('op')) {
case 'update': case 'update':
if (!empty($id_record)) { $nome = post('nome');
$database->update('mg_causali_movimenti', [ $descrizione = post('descrizione');
'tipo_movimento' => post('tipo_movimento'), if (isset($descrizione)) {
], ['id' => $id_record]); $causale_new = Causale::where('id', '=', (new Causale())->getByField('title', $nome))->where('id', '!=', $id_record)->first();
$database->update('mg_causali_movimenti_lang', [ if (empty($causale_new)) {
'name' => post('nome'), $causale->tipo_movimento = post('tipo_movimento');
'description' => post('descrizione'), $causale->setTranslation('title', $nome);
], ['id_record' => $id_record, 'id_lang' => Models\Locale::getDefault()->id]); $causale->setTranslation('description', $descrizione);
$causale->save();
flash()->info(tr('Salvataggio completato.'));
} else {
flash()->error(tr("E' già presente una causale con nome _NAME_.", [
'_NAME_' => $descrizione,
]));
}
} else { } else {
flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio')); flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio'));
} }
@ -36,16 +45,28 @@ switch (filter('op')) {
break; break;
case 'add': case 'add':
$database->insert('mg_causali_movimenti', [ $descrizione = post('descrizione');
'tipo_movimento' => post('tipo_movimento'), if (empty(Causale::where('id', '=', (new Causale())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first())) {
]); $causale = Causale::build();
$id_record = $database->lastInsertedID(); $causale->tipo_movimento = post('tipo_movimento');
$database->insert('mg_causali_movimenti_lang', [ $causale->save();
'name' => post('nome'), $id_record = $dbo->lastInsertedID();
'description' => post('descrizione'), $causale->setTranslation('title', post('nome'));
'id_record' => $id_record, $causale->setTranslation('description', $descrizione);
'id_lang' => Models\Locale::getDefault()->id, $causale->save();
]);
if (isAjaxRequest()) {
echo json_encode(['id' => $id_record, 'text' => $descrizione]);
}
flash()->info(tr('Aggiunta nuova causale con nome _NAME_', [
'_NAME_' => $descrizione,
]));
} else {
flash()->error(tr("E' già presente una causale con nome _NAME_.", [
'_NAME_' => $descrizione,
]));
}
break; break;
case 'delete': case 'delete':

View File

@ -32,7 +32,7 @@ include_once __DIR__.'/../../core.php';
<div class="panel-body"> <div class="panel-body">
<div class="row"> <div class="row">
<div class="col-md-9"> <div class="col-md-9">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$name$" ]} {[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$title$" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">

View File

@ -19,6 +19,10 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Modules\Articoli\CausaleMovimento;
if (!empty($id_record)) { if (!empty($id_record)) {
$record = $dbo->fetchOne('SELECT * FROM `mg_causali_movimenti` LEFT JOIN `mg_causali_movimenti_lang` ON (`mg_causali_movimenti`.`id` = `mg_causali_movimenti_lang`.`id_record` AND `mg_causali_movimenti_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `mg_causali_movimenti`.`id`='.prepare($id_record)); $record = $dbo->fetchOne('SELECT * FROM `mg_causali_movimenti` LEFT JOIN `mg_causali_movimenti_lang` ON (`mg_causali_movimenti`.`id` = `mg_causali_movimenti_lang`.`id_record` AND `mg_causali_movimenti_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `mg_causali_movimenti`.`id`='.prepare($id_record));
$causale = CausaleMovimento::find($id_record);
} }

View File

@ -26,7 +26,7 @@ echo '
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "text", "label": "'.tr('Nome').'", "name": "name", "value": "$name$", "required": 1 ]} {[ "type": "text", "label": "'.tr('Nome').'", "name": "name", "value": "$title$", "required": 1 ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">

View File

@ -33,7 +33,7 @@ echo '
<div class="panel-body"> <div class="panel-body">
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "text", "label": "'.tr('Nome').'", "name": "name", "value": "$name$", "required": 1 ]} {[ "type": "text", "label": "'.tr('Nome').'", "name": "name", "value": "$title$", "required": 1 ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">

View File

@ -17,6 +17,9 @@ switch (filter('op')) {
} else { } else {
if (empty($combinazione)) { if (empty($combinazione)) {
$combinazione = Combinazione::build(); $combinazione = Combinazione::build();
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$combinazione->name = $nome;
}
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
} }
$combinazione->setTranslation('title', $nome); $combinazione->setTranslation('title', $nome);

View File

@ -37,7 +37,7 @@ include_once __DIR__.'/../../core.php';
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "name", "required": 1, "value": "$name$" ]} {[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "name", "required": 1, "value": "$title$" ]}
</div> </div>
<div class="col-md-6"> <div class="col-md-6">

View File

@ -0,0 +1,50 @@
<?php
/*
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
* Copyright (C) DevCode s.r.l.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
namespace Modules\DDT;
use Common\SimpleModelTrait;
use Illuminate\Database\Eloquent\Model;
use Traits\RecordTrait;
class AspettoBeni extends Model
{
use SimpleModelTrait;
use RecordTrait;
protected $table = 'dt_aspettobeni';
protected static $translated_fields = [
'title',
];
public function ddt()
{
return $this->hasMany(DDT::class, 'idaspettobeni');
}
public function getModuleAttribute()
{
return 'Aspetto beni';
}
public static function getTranslatedFields()
{
return self::$translated_fields;
}
}

View File

@ -0,0 +1,50 @@
<?php
/*
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
* Copyright (C) DevCode s.r.l.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
namespace Modules\DDT;
use Common\SimpleModelTrait;
use Illuminate\Database\Eloquent\Model;
use Traits\RecordTrait;
class Causale extends Model
{
use SimpleModelTrait;
use RecordTrait;
protected $table = 'dt_causalet';
protected static $translated_fields = [
'title',
];
public function ddt()
{
return $this->hasMany(DDT::class, 'idcausalet');
}
public function getModuleAttribute()
{
return 'Causali trasporto';
}
public static function getTranslatedFields()
{
return self::$translated_fields;
}
}

50
modules/ddt/src/Porto.php Normal file
View File

@ -0,0 +1,50 @@
<?php
/*
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
* Copyright (C) DevCode s.r.l.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
namespace Modules\DDT;
use Common\SimpleModelTrait;
use Illuminate\Database\Eloquent\Model;
use Traits\RecordTrait;
class Porto extends Model
{
use SimpleModelTrait;
use RecordTrait;
protected $table = 'dt_porto';
protected static $translated_fields = [
'title',
];
public function ddt()
{
return $this->hasMany(DDT::class, 'idporto');
}
public function getModuleAttribute()
{
return 'Porto';
}
public static function getTranslatedFields()
{
return self::$translated_fields;
}
}

View File

@ -0,0 +1,50 @@
<?php
/*
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
* Copyright (C) DevCode s.r.l.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
namespace Modules\DDT;
use Common\SimpleModelTrait;
use Illuminate\Database\Eloquent\Model;
use Traits\RecordTrait;
class Spedizione extends Model
{
use SimpleModelTrait;
use RecordTrait;
protected $table = 'dt_spedizione';
protected static $translated_fields = [
'title',
];
public function ddt()
{
return $this->hasMany(DDT::class, 'idspedizione');
}
public function getModuleAttribute()
{
return 'Tipi di spedizione';
}
public static function getTranslatedFields()
{
return self::$translated_fields;
}
}

View File

@ -29,6 +29,9 @@ switch (post('op')) {
$subject = post('subject'); $subject = post('subject');
$template = Template::build($module, $id_account); $template = Template::build($module, $id_account);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$template->name = $descrizione;
}
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
$template->setTranslation('title', $name); $template->setTranslation('title', $name);
$template->setTranslation('subject', $subject); $template->setTranslation('subject', $subject);
@ -40,6 +43,9 @@ switch (post('op')) {
case 'update': case 'update':
$template->setTranslation('title', post('name')); $template->setTranslation('title', post('name'));
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$template->name = $descrizione;
}
$template->id_account = post('smtp'); $template->id_account = post('smtp');
$template->icon = post('icon'); $template->icon = post('icon');
$template->tipo_reply_to = post('tipo_reply_to'); $template->tipo_reply_to = post('tipo_reply_to');

View File

@ -41,7 +41,7 @@ if (!$record['predefined']) {
<div class="panel-body"> <div class="panel-body">
<div class="row"> <div class="row">
<div class="col-md-8"> <div class="col-md-8">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "name", "value": "$name$", "required": 1, "extra": "<?php echo $attr; ?>" ]} {[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "name", "value": "$title$", "required": 1, "extra": "<?php echo $attr; ?>" ]}
</div> </div>
<div class="col-md-4"> <div class="col-md-4">

View File

@ -18,73 +18,74 @@
*/ */
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Modules\TipiIntervento\FasciaOraria;
switch (post('op')) { switch (post('op')) {
case 'update': case 'update':
$nome = post('nome'); $descrizione = post('nome');
$giorni = (array) post('giorni'); $giorni = (array) post('giorni');
$ora_inizio = post('ora_inizio'); $ora_inizio = post('ora_inizio');
$ora_fine = post('ora_fine'); $ora_fine = post('ora_fine');
$include_bank_holidays = post('include_bank_holidays'); $include_bank_holidays = post('include_bank_holidays');
$is_predefined = post('is_predefined'); $is_predefined = post('is_predefined');
if (empty($dbo->fetchArray('SELECT `in_fasceorarie`.`id` FROM `in_fasceorarie` LEFT JOIN `in_fasceorarie_lang` ON (`in_fasceorarie_lang`.`id_record` = `in_fasceorarie`.`id` AND `in_fasceorarie_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `title`='.prepare($nome).' AND `in_fasceorarie`.`id`!='.prepare($id_record)))) { if (isset($descrizione)) {
if (!empty($is_predefined)) { $fascia_oraria_new = FasciaOraria::where('id', '=', (new FasciaOraria())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first();
$dbo->query('UPDATE `in_fasceorarie` SET `is_predefined` = 0'); if (empty($fascia_oraria_new)) {
if (!empty($is_predefined)) {
$dbo->query('UPDATE `in_fasceorarie` SET `predefined` = 0');
}
$fascia_oraria->setTranslation('title', $descrizione);
$fascia_oraria->giorni = $giorni;
$fascia_oraria->ora_inizio = $ora_inizio;
$fascia_oraria->ora_fine = $ora_fine;
$fascia_oraria->include_bank_holidays = $include_bank_holidays;
$fascia_oraria->is_predefined = $is_predefined;
$fascia_oraria->save();
flash()->info(tr('Salvataggio completato.'));
} else {
flash()->error(tr("E' già presente una fascia_oraria _NAME_.", [
'_NAME_' => $descrizione,
]));
} }
$dbo->update('in_fasceorarie', [
'giorni' => $giorni ? implode(',', $giorni) : null,
'ora_inizio' => $ora_inizio,
'ora_fine' => $ora_fine,
'include_bank_holidays' => $include_bank_holidays,
'is_predefined' => $is_predefined,
], ['id' => $id_record]);
$dbo->update('in_fasceorarie_lang', [
'name' => $nome,
], ['id_record' => $id_record, 'id_lang' => Models\Locale::getDefault()->id]);
flash()->info(tr('Salvataggio completato.'));
} else { } else {
flash()->error(tr("E' già presente una _TYPE_ con lo stesso nome", [ flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio'));
'_TYPE_' => 'fascia oraria',
]));
} }
break; break;
case 'add': case 'add':
$nome = post('nome'); $descrizione = post('nome');
$ora_inizio = post('ora_inizio'); $ora_inizio = post('ora_inizio');
$ora_fine = post('ora_fine'); $ora_fine = post('ora_fine');
if (empty($dbo->fetchArray('SELECT `in_fasceorarie`.`id` FROM `in_fasceorarie` LEFT JOIN `in_fasceorarie_lang` ON (`in_fasceorarie_lang`.`id_record` = `in_fasceorarie`.`id` AND `in_fasceorarie_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `title`='.prepare($nome)))) { if (isset($descrizione)) {
$dbo->insert('in_fasceorarie', [ if (empty(FasciaOraria::where('id', '=', (new FasciaOraria())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first())) {
'ora_inizio' => $ora_inizio, $fascia_oraria = FasciaOraria::build();
'ora_fine' => $ora_fine,
]);
$id_record = $dbo->lastInsertedID();
$dbo->insert('in_fasceorarie_lang', [
'name' => $nome,
'id_record' => $id_record,
'id_lang' => Models\Locale::getDefault()->id,
]);
$tipi_intervento = $dbo->select('in_tipiintervento', '*'); $fascia_oraria->ora_inizio = $ora_inizio;
foreach ($tipi_intervento as $tipo_intervento) { $fascia_oraria->ora_fine = $ora_fine;
$dbo->insert('in_fasceorarie_tipiintervento', [ $fascia_oraria->save();
'idfasciaoraria' => $id_record,
'idtipointervento' => $tipo_intervento['id'], $id_record = $dbo->lastInsertedID();
'costo_orario' => $tipo_intervento['costo_orario'], $fascia_oraria->setTranslation('title', $descrizione);
'costo_km' => $tipo_intervento['costo_km'], $fascia_oraria->save();
'costo_diritto_chiamata' => $tipo_intervento['costo_diritto_chiamata'],
'costo_orario_tecnico' => $tipo_intervento['costo_orario_tecnico'], $tipi_intervento = $dbo->select('in_tipiintervento', '*');
'costo_km_tecnico' => $tipo_intervento['costo_km_tecnico'], foreach ($tipi_intervento as $tipo_intervento) {
'costo_diritto_chiamata_tecnico' => $tipo_intervento['costo_km_tecnico'], $dbo->insert('in_fasceorarie_tipiintervento', [
]); 'idfasciaoraria' => $id_record,
'idtipointervento' => $tipo_intervento['id'],
'costo_orario' => $tipo_intervento['costo_orario'],
'costo_km' => $tipo_intervento['costo_km'],
'costo_diritto_chiamata' => $tipo_intervento['costo_diritto_chiamata'],
'costo_orario_tecnico' => $tipo_intervento['costo_orario_tecnico'],
'costo_km_tecnico' => $tipo_intervento['costo_km_tecnico'],
'costo_diritto_chiamata_tecnico' => $tipo_intervento['costo_km_tecnico'],
]);
}
} }
if (isAjaxRequest()) { if (isAjaxRequest()) {
echo json_encode(['id' => $id_record, 'text' => $nome]); echo json_encode(['id' => $id_record, 'text' => $nome]);
} }

View File

@ -38,7 +38,7 @@ use Modules\Pagamenti\Pagamento;
<div class="panel-body"> <div class="panel-body">
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$name$" ]} {[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$title$" ]}
</div> </div>
<div class="col-md-6"> <div class="col-md-6">

View File

@ -19,6 +19,10 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Modules\TipiIntervento\FasciaOraria;
if (!empty($id_record)) { if (!empty($id_record)) {
$record = $dbo->fetchOne('SELECT * FROM `in_fasceorarie` LEFT JOIN `in_fasceorarie_lang` ON (`in_fasceorarie_lang`.`id_record` = `in_fasceorarie`.`id` AND `in_fasceorarie_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `in_fasceorarie`.`id`='.prepare($id_record)); $record = $dbo->fetchOne('SELECT * FROM `in_fasceorarie` LEFT JOIN `in_fasceorarie_lang` ON (`in_fasceorarie_lang`.`id_record` = `in_fasceorarie`.`id` AND `in_fasceorarie_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `in_fasceorarie`.`id`='.prepare($id_record));
$fascia_oraria = FasciaOraria::find($id_record);
} }

View File

@ -27,7 +27,7 @@ echo '
<div class="row"> <div class="row">
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "text", "label": "'.tr('Nome').'", "name": "name", "required": 1, "value": "$name$" ]} {[ "type": "text", "label": "'.tr('Nome').'", "name": "name", "required": 1, "value": "$title$" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "text", "label": "'.tr('Classe').'", "name": "class", "required": 1, "value": "$class$" ]} {[ "type": "text", "label": "'.tr('Classe').'", "name": "class", "required": 1, "value": "$class$" ]}

View File

@ -37,8 +37,6 @@ switch ($op) {
'idanagrafica' => post('idanagrafica'), 'idanagrafica' => post('idanagrafica'),
'nome' => post('nome'), 'nome' => post('nome'),
'matricola' => $matricola, 'matricola' => $matricola,
'id_marca' => post('id_marca'),
'modello' => post('modello'),
'id_categoria' => post('id_categoria') ?: null, 'id_categoria' => post('id_categoria') ?: null,
'id_sottocategoria' => post('id_sottocategoria') ?: null, 'id_sottocategoria' => post('id_sottocategoria') ?: null,
'descrizione' => post('descrizione'), 'descrizione' => post('descrizione'),

View File

@ -79,10 +79,10 @@ if (!empty($record['immagine'])) {
</div> </div>
<div class ="row"> <div class ="row">
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "select", "label": "<?php echo tr('Marca'); ?>", "name": "id_marca", "value": "$id_marca$", "ajax-source": "marca", "icon-after": "add|<?php echo $id_modulo_marca_impianti; ?>" ]} <!--{[ "type": "select", "label": "<?php echo tr('Marca'); ?>", "name": "id_marca", "value": "$id_marca$", "ajax-source": "marca", "icon-after": "add|<?php echo $id_modulo_marca_impianti; ?>" ]}-->
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "text", "label": "<?php echo tr('Modello'); ?>", "name": "modello", "value": "$modello$" ]} <!--{[ "type": "text", "label": "<?php echo tr('Modello'); ?>", "name": "modello", "value": "$modello$" ]}-->
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "text", "label": "<?php echo tr('Proprietario'); ?>", "name": "proprietario", "value": "$proprietario$" ]} {[ "type": "text", "label": "<?php echo tr('Proprietario'); ?>", "name": "proprietario", "value": "$proprietario$" ]}

View File

@ -27,7 +27,7 @@ include_once __DIR__.'/../../core.php';
<div class="row"> <div class="row">
<div class="col-md-8"> <div class="col-md-8">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "name", "required": 1, "value": "$name$" ]} {[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "name", "required": 1, "value": "$title$" ]}
</div> </div>
</div> </div>
</form> </form>

View File

@ -41,6 +41,9 @@ switch (filter('op')) {
$iva->codice_natura_fe = $codice_natura_fe; $iva->codice_natura_fe = $codice_natura_fe;
$iva->esigibilita = $esigibilita; $iva->esigibilita = $esigibilita;
$iva->setTranslation('title', $descrizione); $iva->setTranslation('title', $descrizione);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$iva->name = $descrizione;
}
$iva->save(); $iva->save();
// Messaggio di avvertenza // Messaggio di avvertenza
@ -72,6 +75,9 @@ switch (filter('op')) {
$iva = Aliquota::build($esente, $percentuale, $indetraibile, $dicitura, $codice, $codice_natura_fe, $esigibilita); $iva = Aliquota::build($esente, $percentuale, $indetraibile, $dicitura, $codice, $codice_natura_fe, $esigibilita);
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
$iva->setTranslation('title', $descrizione); $iva->setTranslation('title', $descrizione);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$iva->name = $descrizione;
}
$iva->save(); $iva->save();
flash()->info(tr('Aggiunta nuova tipologia di _TYPE_', [ flash()->info(tr('Aggiunta nuova tipologia di _TYPE_', [

View File

@ -64,7 +64,7 @@ if ($res) {
</div> </div>
<div class="col-md-8"> <div class="col-md-8">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$name$" ]} {[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$title$" ]}
</div> </div>
</div> </div>

View File

@ -33,6 +33,9 @@ switch (filter('op')) {
flash()->error(tr('Esiste già una lista con questo nome.')); flash()->error(tr('Esiste già una lista con questo nome.'));
} else { } else {
$lista = Lista::build($name); $lista = Lista::build($name);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$lista->name = $descrizione;
}
$id_record = $lista->id; $id_record = $lista->id;
$lista->setTranslation('title', $name); $lista->setTranslation('title', $name);
$lista->save(); $lista->save();
@ -56,6 +59,9 @@ switch (filter('op')) {
if (!empty($lista_new) && $lista_new->id != $id_record) { if (!empty($lista_new) && $lista_new->id != $id_record) {
flash()->error(tr('Esiste già una lista con questo nome.')); flash()->error(tr('Esiste già una lista con questo nome.'));
} else { } else {
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$lista->name = $descrizione;
}
$lista->setTranslation('title', $name); $lista->setTranslation('title', $name);
$lista->setTranslation('description', $description); $lista->setTranslation('description', $description);
$lista->query = $query; $lista->query = $query;

View File

@ -37,7 +37,7 @@ echo '
<div class="panel-body"> <div class="panel-body">
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
{[ "type": "text", "label": "'.tr('Nome').'", "name": "name", "required": 1, "value": "$name$" ]} {[ "type": "text", "label": "'.tr('Nome').'", "name": "name", "required": 1, "value": "$title$" ]}
</div> </div>
</div> </div>

View File

@ -63,7 +63,7 @@ echo '
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "text", "label": "'.tr('Nome').'", "name": "name", "required": 1, "value": "$name$" ]} {[ "type": "text", "label": "'.tr('Nome').'", "name": "name", "required": 1, "value": "$title$" ]}
</div> </div>
</div> </div>

View File

@ -46,25 +46,20 @@ switch (filter('op')) {
$giorno = -post('giorno')[$key] - 1; $giorno = -post('giorno')[$key] - 1;
} }
if (!empty($id)) { if (empty($id)) {
$pagamento->setTranslation('title', $descrizione);
$pagamento->num_giorni = post('distanza')[$key];
$pagamento->giorno = $giorno;
$pagamento->prc = post('percentuale')[$key];
$pagamento->idconto_vendite = post('idconto_vendite') ?: null;
$pagamento->idconto_acquisti = post('idconto_acquisti') ?: null;
$pagamento->codice_modalita_pagamento_fe = post('codice_modalita_pagamento_fe');
$pagamento->save();
} else {
$pagamento = Pagamento::build(post('codice_modalita_pagamento_fe')); $pagamento = Pagamento::build(post('codice_modalita_pagamento_fe'));
$pagamento->num_giorni = post('distanza')[$key];
$pagamento->giorno = $giorno;
$pagamento->prc = post('percentuale')[$key];
$pagamento->idconto_vendite = post('idconto_vendite') ?: null;
$pagamento->idconto_acquisti = post('idconto_acquisti') ?: null;
$pagamento->setTranslation('title', $descrizione);
$pagamento->save();
} }
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$pagamento->name = $descrizione;
}
$pagamento->num_giorni = post('distanza')[$key];
$pagamento->giorno = $giorno;
$pagamento->prc = post('percentuale')[$key];
$pagamento->idconto_vendite = post('idconto_vendite') ?: null;
$pagamento->idconto_acquisti = post('idconto_acquisti') ?: null;
$pagamento->setTranslation('title', $descrizione);
$pagamento->save();
} }
flash()->info(tr('Salvataggio completato!')); flash()->info(tr('Salvataggio completato!'));
@ -85,6 +80,9 @@ switch (filter('op')) {
flash()->error(tr('Esiste già un metodo di pagamento con questo nome!')); flash()->error(tr('Esiste già un metodo di pagamento con questo nome!'));
} else { } else {
$pagamento = Pagamento::build($codice_modalita_pagamento_fe); $pagamento = Pagamento::build($codice_modalita_pagamento_fe);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$pagamento->name = $descrizione;
}
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
$pagamento->setTranslation('title', $descrizione); $pagamento->setTranslation('title', $descrizione);
$pagamento->save(); $pagamento->save();

View File

@ -32,7 +32,7 @@ include_once __DIR__.'/../../core.php';
<div class="panel-body"> <div class="panel-body">
<div class="row"> <div class="row">
<div class="col-md-8"> <div class="col-md-8">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "value": "$name$", "required": 1 ]} {[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "value": "$title$", "required": 1 ]}
</div> </div>
<div class="col-md-4"> <div class="col-md-4">

View File

@ -56,7 +56,7 @@ class Pagamento extends Model
public function calcola($importo, $data, $id_anagrafica) public function calcola($importo, $data, $id_anagrafica)
{ {
$rate = PagamentoLang::where('name', '=', $this->getTranslation('title'))->get()->sortBy('num_giorni')->pluck('id')->toArray(); $rate = PagamentoLang::where('title', '=', $this->getTranslation('title'))->get()->sortBy('num_giorni')->pluck('id')->toArray();
$number = count($rate); $number = count($rate);
$totale = 0.0; $totale = 0.0;

View File

@ -18,53 +18,62 @@
*/ */
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Modules\DDT\Porto;
switch (filter('op')) { switch (filter('op')) {
case 'update': case 'update':
$descrizione = filter('descrizione'); $descrizione = filter('descrizione');
$predefined = post('predefined'); $predefined = post('predefined');
if (empty($dbo->fetchArray('SELECT * FROM `dt_porto` LEFT JOIN `dt_porto_lang` ON (`dt_porto_lang`.`id_record` = `dt_porto`.`id` AND `dt_porto_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `title`='.prepare($descrizione).' AND `dt_porto`.`id`!='.prepare($id_record)) == 0)) { if (isset($descrizione)) {
if (!empty($predefined)) { $porto_new = Porto::where('id', '=', (new Porto())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first();
$dbo->query('UPDATE `dt_porto` SET `predefined` = 0'); if (empty($porto_new)) {
$porto->setTranslation('title', $descrizione);
if (!empty($predefined)) {
$dbo->query('UPDATE `dt_porto` SET `predefined` = 0');
}
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$porto->name = $descrizione;
}
$porto->predefined = $predefined;
$porto->save();
flash()->info(tr('Salvataggio completato.'));
} else {
flash()->error(tr("E' già presente un porto con questo nome."));
} }
$dbo->update('dt_porto', [
'predefined' => $predefined,
], ['id' => $id_record]);
$dbo->update('dt_porto_lang', [
'name' => $descrizione,
], ['id_record' => $id_record, 'id_lang' => Models\Locale::getDefault()->id]);
flash()->info(tr('Salvataggio completato!'));
} else { } else {
flash()->error(tr("E' già presente un Porto con questa descrizione")); flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio'));
} }
break; break;
case 'add': case 'add':
$descrizione = filter('descrizione'); $descrizione = filter('descrizione');
if (empty($dbo->fetchArray('SELECT `dt_porto`.`id` FROM `dt_porto` LEFT JOIN `dt_porto_lang` ON (`dt_porto_lang`.`id_record` = `dt_porto`.`id` AND `dt_porto_lang`.`id_lang` = '.Models\Locale::getDefault()->id.') WHERE `title`='.prepare($descrizione)))) { if (isset($descrizione)) {
$dbo->insert('dt_porto', [ if (empty(Porto::where('id', '=', (new Porto())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first())) {
'created_at' => 'NOW()', $porto = Porto::build();
]); if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$id_record = $dbo->lastInsertedID(); $porto->name = $descrizione;
}
$porto->save();
$id_record = $dbo->lastInsertedID();
$porto->setTranslation('title', $descrizione);
$porto->save();
$dbo->insert('dt_porto_lang', [ if (isAjaxRequest()) {
'name' => $descrizione, echo json_encode(['id' => $id_record, 'text' => $descrizione]);
'id_record' => $id_record, }
'id_lang' => Models\Locale::getDefault()->id,
]);
flash()->info(tr('Aggiunta nuova tipologia di _TYPE_', [ flash()->info(tr('Aggiunta nuova porto _NAME_', [
'_TYPE_' => 'porto', '_NAME_' => $descrizione,
])); ]));
} else {
flash()->error(tr("E' già presente un porto con questo nome."));
}
} else { } else {
flash()->error(tr("E' già presente una tipologia di _TYPE_ con la stessa descrizione", [ flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio'));
'_TYPE_' => 'porto',
]));
} }
break; break;

View File

@ -32,7 +32,7 @@ include_once __DIR__.'/../../core.php';
<div class="panel-body"> <div class="panel-body">
<div class="row"> <div class="row">
<div class="col-md-9"> <div class="col-md-9">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$name$" ]} {[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$title$" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">

View File

@ -17,8 +17,12 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use Modules\DDT\Porto;
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
if (!empty($id_record)) { if (!empty($id_record)) {
$record = $dbo->fetchOne('SELECT * FROM `dt_porto` LEFT JOIN `dt_porto_lang` ON (`dt_porto_lang`.`id_record` = `dt_porto`.`id` AND `dt_porto_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `dt_porto`.`id`='.prepare($id_record)); $record = $dbo->fetchOne('SELECT * FROM `dt_porto` LEFT JOIN `dt_porto_lang` ON (`dt_porto_lang`.`id_record` = `dt_porto`.`id` AND `dt_porto_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `dt_porto`.`id`='.prepare($id_record));
$porto = Porto::find($id_record);
} }

View File

@ -19,15 +19,22 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Modules\Anagrafiche\Provenienza;
switch (filter('op')) { switch (filter('op')) {
case 'update': case 'update':
$descrizione = filter('descrizione'); $descrizione = filter('descrizione');
$colore = filter('colore'); $colore = filter('colore');
if (isset($descrizione)) { if (isset($descrizione)) {
if (empty($dbo->fetchArray('SELECT `an_provenienze`.`id` FROM `an_provenienze` LEFT JOIN `an_provenienze_lang` ON (`an_provenienze`.`id` = `an_provenienze_lang`.`id_record` AND `an_provenienze_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `title`='.prepare($descrizione).' AND `an_provenienze`.`id`!='.prepare($id_record)))) { $provenienza_new = Provenienza::where('id', '=', (new Provenienza())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first();
$dbo->query('UPDATE `an_provenienze_lang` SET `title`='.prepare($descrizione).' WHERE `id_record` = '.prepare($id_record)); if (empty($provenienza_new)) {
$dbo->query('UPDATE `an_provenienze` SET `colore`='.prepare($colore).' WHERE `id`='.prepare($id_record)); $provenienza->setTranslation('title', $descrizione);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$provenienza->name = $descrizione;
}
$provenienza->colore = $colore;
$provenienza->save();
flash()->info(tr('Salvataggio completato.')); flash()->info(tr('Salvataggio completato.'));
} else { } else {
flash()->error(tr("E' già presente una provenienza _NAME_.", [ flash()->error(tr("E' già presente una provenienza _NAME_.", [
@ -45,10 +52,17 @@ switch (filter('op')) {
$colore = filter('colore'); $colore = filter('colore');
if (isset($descrizione)) { if (isset($descrizione)) {
if (empty($dbo->fetchArray('SELECT `an_provenienze`.`id` FROM `an_provenienze` LEFT JOIN `an_provenienze_lang` ON (`an_provenienze`.`id` = `an_provenienze_lang`.`id_record` AND `an_provenienze_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `title`='.prepare($descrizione)))) { if (empty(Provenienza::where('id', '=', (new Provenienza())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first())) {
$dbo->query('INSERT INTO `an_provenienze` (`colore`) VALUES ('.prepare($colore).')'); $provenienza = Provenienza::build();
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$provenienza->name = $descrizione;
}
$provenienza->colore = $colore;
$provenienza->save();
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
$dbo->query('INSERT INTO `an_provenienze_lang` (`title`, `id_record`, `id_lang`) VALUES ('.prepare($descrizione).', '.prepare($id_record).', '.prepare(Models\Locale::getDefault()->id).')'); $provenienza->setTranslation('title', $descrizione);
$provenienza->save();
if (isAjaxRequest()) { if (isAjaxRequest()) {
echo json_encode(['id' => $id_record, 'text' => $descrizione]); echo json_encode(['id' => $id_record, 'text' => $descrizione]);

View File

@ -32,7 +32,7 @@ include_once __DIR__.'/../../core.php';
<div class="panel-body"> <div class="panel-body">
<div class="row"> <div class="row">
<div class="col-md-9"> <div class="col-md-9">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$name$" ]} {[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$title$" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">

View File

@ -17,8 +17,12 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use Modules\Anagrafiche\Provenienza;
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
if (!empty($id_record)) { if (!empty($id_record)) {
$record = $dbo->fetchOne('SELECT * FROM `an_provenienze` LEFT JOIN `an_provenienze_lang` ON (`an_provenienze`.`id`=`an_provenienze_lang`.`id_record` AND `an_provenienze_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') WHERE `an_provenienze`.`id`='.prepare($id_record)); $record = $dbo->fetchOne('SELECT * FROM `an_provenienze` LEFT JOIN `an_provenienze_lang` ON (`an_provenienze`.`id`=`an_provenienze_lang`.`id_record` AND `an_provenienze_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') WHERE `an_provenienze`.`id`='.prepare($id_record));
$provenienza = Provenienza::find($id_record);
} }

View File

@ -17,6 +17,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use Modules\Anagrafiche\Relazione;
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
switch (filter('op')) { switch (filter('op')) {
@ -26,20 +28,24 @@ switch (filter('op')) {
$is_bloccata = filter('is_bloccata'); $is_bloccata = filter('is_bloccata');
if (isset($descrizione)) { if (isset($descrizione)) {
$esistente = $dbo->fetchArray('SELECT `an_relazioni`.`id` FROM `an_relazioni` LEFT JOIN `an_relazioni_lang` ON (`an_relazioni`.`id`=`an_relazioni_lang`.`id_record` AND `an_relazioni_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') WHERE `an_relazioni_lang`.`title`='.prepare($descrizione).' AND `an_relazioni`.`id` != '.prepare($id_record)); $relazione_new = Relazione::where('id', '=', (new Relazione())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first();
if (empty($esistente)) { if (empty($relazione_new)) {
$dbo->query('UPDATE `an_relazioni` SET `colore`='.prepare($colore).', `is_bloccata`='.prepare($is_bloccata).' WHERE `id`='.prepare($id_record)); $relazione->setTranslation('title', $descrizione);
$dbo->query('UPDATE `an_relazioni_lang` SET `title`='.prepare($descrizione).' WHERE `id_record`='.prepare($id_record)); if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$relazione->name = $descrizione;
}
$relazione->colore = $colore;
$relazione->is_bloccata = $is_bloccata;
$relazione->save();
flash()->info(tr('Salvataggio completato.')); flash()->info(tr('Salvataggio completato.'));
} else { } else {
flash()->error(tr("E' già presente una relazione '_NAME_'.", [ flash()->error(tr("E' già presente una relazione _NAME_.", [
'_NAME_' => $descrizione, '_NAME_' => $descrizione,
])); ]));
} }
} else { } else {
flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio')); flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio'));
} }
break; break;
case 'add': case 'add':
@ -48,11 +54,17 @@ switch (filter('op')) {
$is_bloccata = filter('is_bloccata'); $is_bloccata = filter('is_bloccata');
if (isset($descrizione)) { if (isset($descrizione)) {
$esistente = $dbo->fetchArray('SELECT `an_relazioni`.`id` FROM `an_relazioni` LEFT JOIN `an_relazioni_lang` ON (`an_relazioni`.`id`=`an_relazioni_lang`.`id_record` AND `an_relazioni_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') WHERE `an_relazioni_lang`.`title`='.prepare($descrizione)); if (empty(Relazione::where('id', '=', (new Relazione())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first())) {
if (empty($esistente)) { $relazione = Relazione::build();
$dbo->query('INSERT INTO `an_relazioni` (`colore`, `is_bloccata`) VALUES ('.prepare($colore).', '.prepare($is_bloccata).' )'); if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$relazione->name = $descrizione;
}
$relazione->colore = $colore;
$relazione->is_bloccata = $is_bloccata;
$relazione->save();
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
$dbo->query('INSERT INTO `an_relazioni_lang` (`title`, `id_record`, `id_lang`) VALUES ('.prepare($descrizione).', '.prepare($id_record).', '.prepare(Models\Locale::getDefault()->id).')'); $relazione->setTranslation('title', $descrizione);
$relazione->save();
if (isAjaxRequest()) { if (isAjaxRequest()) {
echo json_encode(['id' => $id_record, 'text' => $descrizione]); echo json_encode(['id' => $id_record, 'text' => $descrizione]);

View File

@ -32,7 +32,7 @@ include_once __DIR__.'/../../core.php';
<div class="panel-body"> <div class="panel-body">
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$name$" ]} {[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$title$" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">

View File

@ -16,9 +16,12 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use Modules\Anagrafiche\Relazione;
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
if (!empty($id_record)) { if (!empty($id_record)) {
$record = $dbo->fetchOne('SELECT * FROM `an_relazioni` LEFT JOIN `an_relazioni_lang` ON (`an_relazioni`.`id`=`an_relazioni_lang`.`id_record` AND `an_relazioni_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') WHERE `an_relazioni`.`id`='.prepare($id_record)); $record = $dbo->fetchOne('SELECT * FROM `an_relazioni` LEFT JOIN `an_relazioni_lang` ON (`an_relazioni`.`id`=`an_relazioni_lang`.`id_record` AND `an_relazioni_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') WHERE `an_relazioni`.`id`='.prepare($id_record));
$relazione = Relazione::find($id_record);
} }

View File

@ -0,0 +1,51 @@
<?php
/*
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
* Copyright (C) DevCode s.r.l.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
namespace Modules\Scadenzario;
use Common\SimpleModelTrait;
use Illuminate\Database\Eloquent\Model;
use Traits\RecordTrait;
class Tipo extends Model
{
use SimpleModelTrait;
use RecordTrait;
protected $table = 'co_tipi_scadenze';
protected static $translated_fields = [
'title',
];
public function anagrafiche()
{
return $this->hasMany(Scadenza::class, 'tipo');
}
public function getModuleAttribute()
{
return 'Tipi scadenze';
}
public static function getTranslatedFields()
{
return self::$translated_fields;
}
}

View File

@ -25,7 +25,7 @@ include_once __DIR__.'/../../core.php';
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "name", "required": 1, "value": "$name$" ]} {[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "name", "required": 1, "value": "$title$" ]}
</div> </div>
<div class="col-md-6"> <div class="col-md-6">

View File

@ -35,7 +35,7 @@ use Models\Module;
<div class="row"> <div class="row">
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "name", "required": 1, "value": "$name$" ]} {[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "name", "required": 1, "value": "$title$" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">

View File

@ -17,19 +17,25 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use Modules\Anagrafiche\Settore;
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
switch (filter('op')) { switch (filter('op')) {
case 'update': case 'update':
$descrizione = filter('descrizione'); $descrizione = filter('descrizione');
$colore = filter('colore');
if (isset($descrizione)) { if (isset($descrizione)) {
if (empty($dbo->fetchArray('SELECT `an_settori`.`id` FROM `an_settori` LEFT JOIN `an_settori_lang` ON (`an_settori`.`id` = `an_settori_lang`.`id_record` AND `an_settori_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `title`='.prepare($descrizione).' AND `an_settori`.`id`!='.prepare($id_record)))) { $settore_new = Settore::where('id', '=', (new Settore())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first();
$dbo->query('UPDATE `an_settori_lang` SET `title`='.prepare($descrizione).' WHERE `id_record`='.prepare($id_record)); if (empty($settore_new)) {
$settore->setTranslation('title', $descrizione);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$settore->name = $descrizione;
}
$settore->save();
flash()->info(tr('Salvataggio completato.')); flash()->info(tr('Salvataggio completato.'));
} else { } else {
flash()->error(tr("E' già presente il settore merceologico _NAME_.", [ flash()->error(tr("E' già presente una settore _NAME_.", [
'_NAME_' => $descrizione, '_NAME_' => $descrizione,
])); ]));
} }
@ -38,17 +44,21 @@ switch (filter('op')) {
} }
break; break;
case 'add': case 'add':
$descrizione = filter('descrizione'); $descrizione = filter('descrizione');
$colore = filter('colore');
if (isset($descrizione)) { if (isset($descrizione)) {
if (empty($dbo->fetchNum('SELECT `an_settori`.`id` FROM `an_settori` LEFT JOIN `an_settori_lang` ON (`an_settori`.`id` = `an_settori_lang`.`id_record` AND `an_settori_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `title`='.prepare($descrizione)))) { if (empty(Settore::where('id', '=', (new Settore())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first())) {
$dbo->query('INSERT INTO `an_settori` (`id`, `created_at`, `updated_at`) VALUES (NULL, NOW(), NOW())'); $settore = Settore::build();
$id_record = $dbo->lastInsertedID(); if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$dbo->query('INSERT INTO `an_settori_lang` (`title`, `id_record`, `id_lang`) VALUES ('.prepare($descrizione).', '.prepare($id_record).', '.prepare(Models\Locale::getDefault()->id).')'); $settore->name = $descrizione;
}
$settore->save();
$id_record = $dbo->lastInsertedID();
$settore->setTranslation('title', $descrizione);
$settore->save();
if (isAjaxRequest()) { if (isAjaxRequest()) {
echo json_encode(['id' => $id_record, 'text' => $descrizione]); echo json_encode(['id' => $id_record, 'text' => $descrizione]);
} }

View File

@ -32,7 +32,7 @@ include_once __DIR__.'/../../core.php';
<div class="panel-body"> <div class="panel-body">
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$name$" ]} {[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$title$" ]}
</div> </div>
</div> </div>
</div> </div>

View File

@ -16,9 +16,12 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use Modules\Anagrafiche\Settore;
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
if (!empty($id_record)) { if (!empty($id_record)) {
$record = $dbo->fetchOne('SELECT * FROM `an_settori` LEFT JOIN `an_settori_lang` ON (`an_settori`.`id`=`an_settori_lang`.`id_record` AND `an_settori_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') WHERE `an_settori`.`id`='.prepare($id_record)); $record = $dbo->fetchOne('SELECT * FROM `an_settori` LEFT JOIN `an_settori_lang` ON (`an_settori`.`id`=`an_settori_lang`.`id_record` AND `an_settori_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') WHERE `an_settori`.`id`='.prepare($id_record));
$settore = Settore::find($id_record);
} }

View File

@ -35,7 +35,7 @@ echo '
<div class="panel-body"> <div class="panel-body">
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "text", "label": "'.tr('Nome account').'", "name": "name", "value": "$name$", "required": 1 ]} {[ "type": "text", "label": "'.tr('Nome account').'", "name": "name", "value": "$title$", "required": 1 ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">

View File

@ -19,55 +19,63 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Modules\DDT\Spedizione;
switch (filter('op')) { switch (filter('op')) {
case 'update': case 'update':
$descrizione = filter('descrizione'); $descrizione = filter('descrizione');
$vettore = post('esterno'); $vettore = post('esterno');
$predefined = post('predefined'); $predefined = post('predefined');
if (empty($dbo->fetchArray('SELECT * FROM `dt_spedizione` LEFT JOIN `dt_spedizione_lang` ON (`dt_spedizione`.`id`=`dt_spedizione_lang`.`id_record` AND `dt_spedizione_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') WHERE `title`='.prepare($descrizione).' AND `dt_spedizione`.`id`!='.prepare($id_record)))) { if (isset($descrizione)) {
if (!empty($predefined)) { $spedizione_new = Spedizione::where('id', '=', (new Spedizione())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first();
$dbo->query('UPDATE `dt_spedizione` SET `predefined` = 0'); if (empty($spedizione_new)) {
$spedizione->setTranslation('title', $descrizione);
if (!empty($predefined)) {
$dbo->query('UPDATE `dt_spedizione` SET `predefined` = 0');
}
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$spedizione->name = $descrizione;
}
$spedizione->predefined = $predefined;
$spedizione->esterno = $vettore;
$spedizione->save();
flash()->info(tr('Salvataggio completato.'));
} else {
flash()->error(tr("E' già presente una spedizione con questo nome."));
} }
$dbo->update('dt_spedizione', [
'predefined' => $predefined,
'esterno' => $vettore,
], ['id' => $id_record]);
$dbo->update('dt_spedizione_lang', [
'name' => $descrizione,
], ['id_record' => $id_record, 'id_lang' => Models\Locale::getDefault()->id]);
flash()->info(tr('Salvataggio completato!'));
} else { } else {
flash()->error(tr("E' già presente una tipologia di _TYPE_ con la stessa descrizione", [ flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio'));
'_TYPE_' => 'spedizione',
]));
} }
break; break;
case 'add': case 'add':
$descrizione = filter('descrizione'); $descrizione = filter('descrizione');
if ($dbo->fetchNum('SELECT * FROM `dt_spedizione_lang` WHERE `title`='.prepare($descrizione)) == 0) { if (isset($descrizione)) {
$dbo->insert('dt_spedizione', [ if (empty(Spedizione::where('id', '=', (new Spedizione())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first())) {
'predefined' => 0, $spedizione = Spedizione::build();
]); if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$id_record = $dbo->lastInsertedID(); $spedizione->name = $descrizione;
}
$spedizione->save();
$id_record = $dbo->lastInsertedID();
$spedizione->setTranslation('title', $descrizione);
$spedizione->save();
$dbo->insert('dt_spedizione_lang', [ if (isAjaxRequest()) {
'id_record' => $id_record, echo json_encode(['id' => $id_record, 'text' => $descrizione]);
'id_lang' => Models\Locale::getDefault()->id, }
'name' => $descrizione,
]);
flash()->info(tr('Aggiunta nuova tipologia di _TYPE_', [ flash()->info(tr('Aggiunta nuova spedizione _NAME_', [
'_TYPE_' => 'spedizione', '_NAME_' => $descrizione,
])); ]));
} else {
flash()->error(tr("E' già presente un spedizione con questo nome."));
}
} else { } else {
flash()->error(tr("E' già presente una tipologia di _TYPE_ con la stessa descrizione", [ flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio'));
'_TYPE_' => 'spedizione',
]));
} }
break; break;
@ -83,7 +91,7 @@ switch (filter('op')) {
'_TYPE_' => 'spedizione', '_TYPE_' => 'spedizione',
])); ]));
} else { } else {
flash()->error(tr('Sono presenti dei documenti collegati a questo porto.')); flash()->error(tr('Sono presenti dei documenti collegati a questo spedizione.'));
} }
break; break;

View File

@ -32,7 +32,7 @@ include_once __DIR__.'/../../core.php';
<div class="panel-body"> <div class="panel-body">
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$name$" ]} {[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$title$" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">

View File

@ -17,8 +17,12 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use Modules\DDT\Spedizione;
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
if (!empty($id_record)) { if (!empty($id_record)) {
$record = $dbo->fetchOne('SELECT *, `dt_spedizione`.`id` FROM `dt_spedizione` LEFT JOIN `dt_spedizione_lang` ON (`dt_spedizione`.`id`=`dt_spedizione_lang`.`id_record` AND `dt_spedizione_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') WHERE `dt_spedizione`.`id`='.prepare($id_record)); $record = $dbo->fetchOne('SELECT *, `dt_spedizione`.`id` FROM `dt_spedizione` LEFT JOIN `dt_spedizione_lang` ON (`dt_spedizione`.`id`=`dt_spedizione_lang`.`id_record` AND `dt_spedizione_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') WHERE `dt_spedizione`.`id`='.prepare($id_record));
$spedizione = Spedizione::find($id_record);
} }

View File

@ -29,6 +29,9 @@ switch (post('op')) {
if ($stato_new) { if ($stato_new) {
flash()->error(tr('Questo nome è già stato utilizzato per un altro stato dei contratti.')); flash()->error(tr('Questo nome è già stato utilizzato per un altro stato dei contratti.'));
} else { } else {
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$stato->name = $descrizione;
}
$stato->icona = post('icona'); $stato->icona = post('icona');
$stato->colore = post('colore'); $stato->colore = post('colore');
$stato->is_completato = post('is_completato'); $stato->is_completato = post('is_completato');
@ -56,6 +59,9 @@ switch (post('op')) {
flash()->error(tr('Questo nome è già stato utilizzato per un altro stato dei contratti.')); flash()->error(tr('Questo nome è già stato utilizzato per un altro stato dei contratti.'));
} else { } else {
$stato = Stato::build($icona, $colore, $is_completato, $is_fatturabile, $is_pianificabile); $stato = Stato::build($icona, $colore, $is_completato, $is_fatturabile, $is_pianificabile);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$stato->name = $descrizione;
}
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
$stato->setTranslation('title', $descrizione); $stato->setTranslation('title', $descrizione);
$stato->save(); $stato->save();

View File

@ -34,7 +34,7 @@ if ($record['can_delete']) {
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$name$", "extra": "<?php echo $attr; ?>" ]} {[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$title$", "extra": "<?php echo $attr; ?>" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">

View File

@ -28,6 +28,9 @@ switch (post('op')) {
if (!empty($stato_new) && $stato_new != $id_record) { if (!empty($stato_new) && $stato_new != $id_record) {
flash()->error(tr('Questo nome è già stato utilizzato per un altro stato.')); flash()->error(tr('Questo nome è già stato utilizzato per un altro stato.'));
} else { } else {
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$stato->name = $descrizione;
}
$stato->icona = post('icona'); $stato->icona = post('icona');
$stato->colore = post('colore'); $stato->colore = post('colore');
$stato->setTranslation('title', $descrizione); $stato->setTranslation('title', $descrizione);

View File

@ -27,7 +27,7 @@ include_once __DIR__.'/../../core.php';
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$name$", "extra": "readonly" ]} {[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$title$", "extra": "readonly" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">

View File

@ -28,6 +28,9 @@ switch (post('op')) {
if (!empty($stato_new) && $stato_new != $id_record) { if (!empty($stato_new) && $stato_new != $id_record) {
flash()->error(tr('Questo nome è già stato utilizzato per un altro stato attività.')); flash()->error(tr('Questo nome è già stato utilizzato per un altro stato attività.'));
} else { } else {
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$stato->name = $descrizione;
}
$stato->codice = post('codice'); $stato->codice = post('codice');
$stato->colore = post('colore'); $stato->colore = post('colore');
$stato->is_completato = post('is_completato'); $stato->is_completato = post('is_completato');
@ -58,6 +61,9 @@ switch (post('op')) {
flash()->error(tr('Questo nome è già stato utilizzato per un altro stato attività.')); flash()->error(tr('Questo nome è già stato utilizzato per un altro stato attività.'));
} else { } else {
$stato = Stato::build($codice, $colore); $stato = Stato::build($codice, $colore);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$stato->name = $descrizione;
}
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
$stato->setTranslation('title', $descrizione); $stato->setTranslation('title', $descrizione);
$stato->save(); $stato->save();

View File

@ -43,7 +43,7 @@ if ($record['can_delete']) {
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$name$" ]} {[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$title$" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
@ -62,7 +62,7 @@ if ($record['can_delete']) {
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "<?php echo tr('Template email'); ?>", "name": "email", "value": "$id_email$", "values": "query=SELECT `em_templates`.`id`, `em_templates_lang`.`title` AS descrizione FROM `em_templates` LEFT JOIN `em_templates_lang` ON (`em_templates`.`id` = `em_templates_lang`.`id_record` AND `em_templates_lang`.`id_lang` = <?php echo prepare(Models\Locale::getDefault()->id); ?>) WHERE `id_module` = <?php echo (new Module())->getByField('title', 'Interventi', Models\Locale::getPredefined()->id); ?> AND `deleted_at` IS NULL", "disabled": <?php echo intval(empty($record['notifica'])); ?>, "required":1 ]} {[ "type": "select", "label": "<?php echo tr('Template email'); ?>", "name": "email", "value": "$id_email$", "values": "query=SELECT `em_templates`.`id`, `em_templates_lang`.`title` AS descrizione FROM `em_templates` LEFT JOIN `em_templates_lang` ON (`em_templates`.`id` = `em_templates_lang`.`id_record` AND `em_templates_lang`.`id_lang` = <?php echo prepare(Models\Locale::getDefault()->id); ?>) WHERE `id_module` = <?php echo (new Module())->getByField('title', 'Attività', Models\Locale::getPredefined()->id); ?> AND `deleted_at` IS NULL", "disabled": <?php echo intval(empty($record['notifica'])); ?>, "required":1 ]}
</div> </div>
<div class="col-md-6"> <div class="col-md-6">

View File

@ -29,6 +29,9 @@ switch (post('op')) {
if (!empty($stato_new) && $stato_new != $id_record) { if (!empty($stato_new) && $stato_new != $id_record) {
flash()->error(tr('Questo nome è già stato utilizzato per un altro stato attività.')); flash()->error(tr('Questo nome è già stato utilizzato per un altro stato attività.'));
} else { } else {
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$stato->name = $descrizione;
}
$stato->icona = post('icona'); $stato->icona = post('icona');
$stato->colore = post('colore'); $stato->colore = post('colore');
$stato->completato = post('completato'); $stato->completato = post('completato');
@ -56,6 +59,9 @@ switch (post('op')) {
flash()->error(tr('Questo nome è già stato utilizzato per un altro stato ordine.')); flash()->error(tr('Questo nome è già stato utilizzato per un altro stato ordine.'));
} else { } else {
$stato = Stato::build($icona, $colore, $completato, $is_fatturabile, $impegnato); $stato = Stato::build($icona, $colore, $completato, $is_fatturabile, $impegnato);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$stato->name = $descrizione;
}
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
$stato->setTranslation('title', $descrizione); $stato->setTranslation('title', $descrizione);
$stato->save(); $stato->save();

View File

@ -34,7 +34,7 @@ if ($record['can_delete']) {
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$name$", "extra": "<?php echo $attr; ?>" ]} {[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$title$", "extra": "<?php echo $attr; ?>" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">

View File

@ -28,6 +28,9 @@ switch (post('op')) {
if (!empty($stato_new) && $stato_new != $id_record) { if (!empty($stato_new) && $stato_new != $id_record) {
flash()->error(tr('Questo nome è già stato utilizzato per un altro stato dei preventivi.')); flash()->error(tr('Questo nome è già stato utilizzato per un altro stato dei preventivi.'));
} else { } else {
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$stato->name = $descrizione;
}
$stato->icona = post('icona'); $stato->icona = post('icona');
$stato->colore = post('colore'); $stato->colore = post('colore');
$stato->is_completato = post('is_completato'); $stato->is_completato = post('is_completato');
@ -53,6 +56,9 @@ switch (post('op')) {
flash()->error(tr('Questo nome è già stato utilizzato per un altro stato dei preventivi.')); flash()->error(tr('Questo nome è già stato utilizzato per un altro stato dei preventivi.'));
} else { } else {
$stato = Stato::build($icona, $colore, $is_completato, $is_fatturabile, $is_pianificabile); $stato = Stato::build($icona, $colore, $is_completato, $is_fatturabile, $is_pianificabile);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$stato->name = $descrizione;
}
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
$stato->setTranslation('title', $descrizione); $stato->setTranslation('title', $descrizione);
$stato->save(); $stato->save();

View File

@ -34,7 +34,7 @@ if ($record['can_delete']) {
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$name$", "extra": "<?php echo $attr; ?>" ]} {[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$title$", "extra": "<?php echo $attr; ?>" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">

View File

@ -30,6 +30,9 @@ switch (post('op')) {
if (!in_array($descrizione, $block)) { if (!in_array($descrizione, $block)) {
$tipo->setTranslation('title', $descrizione); $tipo->setTranslation('title', $descrizione);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$tipo->name = $descrizione;
}
$tipo->save(); $tipo->save();
flash()->info(tr('Informazioni salvate correttamente!')); flash()->info(tr('Informazioni salvate correttamente!'));
} else { } else {
@ -50,6 +53,9 @@ switch (post('op')) {
flash()->error(tr('Nome già esistente!')); flash()->error(tr('Nome già esistente!'));
} else { } else {
$tipo = Tipo::build($descrizione); $tipo = Tipo::build($descrizione);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$tipo->name = $descrizione;
}
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
$tipo->setTranslation('title', $descrizione); $tipo->setTranslation('title', $descrizione);
$tipo->save(); $tipo->save();

View File

@ -51,7 +51,7 @@ if (!empty($record['default'])) {
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$name$", "extra": "<?php echo $attr; ?>" ]} {[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$title$", "extra": "<?php echo $attr; ?>" ]}
</div> </div>
</div> </div>

View File

@ -35,6 +35,9 @@ switch (filter('op')) {
if (!empty($predefined)) { if (!empty($predefined)) {
$dbo->query('UPDATE `co_tipidocumento` SET `predefined` = 0 WHERE `dir` = '.prepare($dir)); $dbo->query('UPDATE `co_tipidocumento` SET `predefined` = 0 WHERE `dir` = '.prepare($dir));
} }
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$tipo->name = $descrizione;
}
$tipo->dir = $dir; $tipo->dir = $dir;
$tipo->codice_tipo_documento_fe = $codice_tipo_documento_fe; $tipo->codice_tipo_documento_fe = $codice_tipo_documento_fe;
$tipo->help = filter('help'); $tipo->help = filter('help');
@ -61,6 +64,9 @@ switch (filter('op')) {
flash()->error(tr('Questa combinazione di nome, codice e direzione è già stata utilizzata per un altro tipo di documento.')); flash()->error(tr('Questa combinazione di nome, codice e direzione è già stata utilizzata per un altro tipo di documento.'));
} else { } else {
$tipo = Tipo::build($dir, $codice_tipo_documento_fe); $tipo = Tipo::build($dir, $codice_tipo_documento_fe);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$tipo->name = $descrizione;
}
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
$tipo->setTranslation('title', $descrizione); $tipo->setTranslation('title', $descrizione);
$tipo->save(); $tipo->save();

View File

@ -27,7 +27,7 @@ use Models\Module;
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$name$" ]} {[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$title$" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">

View File

@ -23,6 +23,9 @@ include_once __DIR__.'/../../core.php';
switch (post('op')) { switch (post('op')) {
case 'update': case 'update':
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$tipo->name = $descrizione;
}
$tipo->calcola_km = post('calcola_km'); $tipo->calcola_km = post('calcola_km');
$tipo->tempo_standard = post('tempo_standard'); $tipo->tempo_standard = post('tempo_standard');
$tipo->costo_orario = post('costo_orario'); $tipo->costo_orario = post('costo_orario');
@ -70,6 +73,9 @@ switch (post('op')) {
$costo_diritto_chiamata_tecnico = post('costo_diritto_chiamata_tecnico'); $costo_diritto_chiamata_tecnico = post('costo_diritto_chiamata_tecnico');
$tipo = Tipo::build($codice, $calcola_km, $tempo_standard, $costo_orario, $costo_km, $costo_diritto_chiamata, $costo_orario_tecnico, $costo_km_tecnico, $costo_diritto_chiamata_tecnico); $tipo = Tipo::build($codice, $calcola_km, $tempo_standard, $costo_orario, $costo_km, $costo_diritto_chiamata, $costo_orario_tecnico, $costo_km_tecnico, $costo_diritto_chiamata_tecnico);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$tipo->name = $descrizione;
}
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
$tipo->setTranslation('title', post('descrizione')); $tipo->setTranslation('title', post('descrizione'));
$tipo->save(); $tipo->save();

View File

@ -30,7 +30,7 @@ include_once __DIR__.'/../../core.php';
</div> </div>
<div class="col-md-5"> <div class="col-md-5">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$name$" ]} {[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$title$" ]}
</div> </div>
<div class="col-md-2"> <div class="col-md-2">

View File

@ -0,0 +1,45 @@
<?php
/*
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
* Copyright (C) DevCode s.r.l.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
namespace Modules\TipiIntervento;
use Common\SimpleModelTrait;
use Illuminate\Database\Eloquent\Model;
use Traits\RecordTrait;
class FasciaOraria extends Model
{
use SimpleModelTrait;
use RecordTrait;
protected $table = 'in_fasceorarie';
protected static $translated_fields = [
'title',
];
public function getModuleAttribute()
{
return 'Fasce orarie';
}
public static function getTranslatedFields()
{
return self::$translated_fields;
}
}

View File

@ -19,6 +19,7 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Models\Module; use Models\Module;
use Modules\Scadenzario\Tipo;
switch (filter('op')) { switch (filter('op')) {
case 'update': case 'update':
@ -27,15 +28,16 @@ switch (filter('op')) {
if (isset($nome)) { if (isset($nome)) {
// Se non esiste già una tipo di scadenza con lo stesso nome // Se non esiste già una tipo di scadenza con lo stesso nome
$nome_new = $dbo->fetchOne('SELECT * FROM `co_tipi_scadenze` LEFT JOIN `co_tipi_scadenze_lang` ON (`co_tipi_scadenze_lang`.`id_record` = `co_tipi_scadenze`.`id` AND `co_tipi_scadenze_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `title` = '.prepare($nome).' AND `co_tipi_scadenze_lang`.`id_record` != '.prepare($id_record)); $nome_new = Tipo::where('id', '=', (new Tipo())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first();
$nome_prev = $tipo->getTranslation('title');
if (empty($nome_new)) { if (empty($nome_new)) {
// nome_prev // nome_prev
$nome_prev = $dbo->fetchOne('SELECT `title` AS nome_prev FROM `co_tipi_scadenze` LEFT JOIN `co_tipi_scadenze_lang` ON (`co_tipi_scadenze_lang`.`id_record` = `co_tipi_scadenze`.`id` AND `co_tipi_scadenze_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `co_tipi_scadenze`.`id`='.prepare($id_record))['nome_prev']; $tipo->setTranslation('title', $descrizione);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
$dbo->update('co_tipi_scadenze_lang', [ $tipo->name = $nome;
'name' => $nome, }
'description' => $descrizione, $tipo->save();
], ['id_record' => $id_record, 'id_lang' => Models\Locale::getDefault()->id]); flash()->info(tr('Salvataggio completato.'));
$segmento = $dbo->fetchOne('SELECT `zz_segments`.`id` FROM `zz_segments` LEFT JOIN `zz_segments_lang` ON (`zz_segments_lang`.`id_record` = `zz_segments`.`id` AND `zz_segments_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `id_module` = '.prepare((new Module())->getByField('title', 'Scadenzario', Models\Locale::getPredefined()->id)).' AND `clause` = "co_scadenziario.tipo=\''.$nome_prev.'\'" AND `zz_segments_lang`.`title` = "Scadenzario '.$nome_prev.'"')['id']; $segmento = $dbo->fetchOne('SELECT `zz_segments`.`id` FROM `zz_segments` LEFT JOIN `zz_segments_lang` ON (`zz_segments_lang`.`id_record` = `zz_segments`.`id` AND `zz_segments_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `id_module` = '.prepare((new Module())->getByField('title', 'Scadenzario', Models\Locale::getPredefined()->id)).' AND `clause` = "co_scadenziario.tipo=\''.$nome_prev.'\'" AND `zz_segments_lang`.`title` = "Scadenzario '.$nome_prev.'"')['id'];
@ -47,7 +49,7 @@ switch (filter('op')) {
]); ]);
$dbo->update('zz_segments_lang', [ $dbo->update('zz_segments_lang', [
'name' => 'Scadenzario '.$nome, 'title' => 'Scadenzario '.$nome,
], [ ], [
'id_record' => $segmento, 'id_record' => $segmento,
'id_lang' => Models\Locale::getDefault()->id, 'id_lang' => Models\Locale::getDefault()->id,
@ -72,17 +74,16 @@ switch (filter('op')) {
if (isset($nome)) { if (isset($nome)) {
// Se non esiste già un tipo di scadenza con lo stesso nome // Se non esiste già un tipo di scadenza con lo stesso nome
if (empty($dbo->fetchArray('SELECT * FROM `co_tipi_scadenze` LEFT JOIN `co_tipi_scadenze_lang` ON (`co_tipi_scadenze_lang`.`id_record` = `co_tipi_scadenze`.`id` AND `co_tipi_scadenze_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `title`='.prepare($nome)))) { if (empty(Tipo::where('id', '=', (new Tipo())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first())) {
$dbo->insert('co_tipi_scadenze', [ $tipo = tipo::build();
'created_at' => 'NOW()', if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
]); $tipo->name = $nome;
}
$tipo->save();
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
$dbo->insert('co_tipi_scadenze_lang', [ $tipo->setTranslation('title', $descrizione);
'name' => $nome, $tipo->save();
'description' => $descrizione,
'id_record' => $id_record,
'id_lang' => Models\Locale::getDefault()->id,
]);
// Aggiungo anche il segmento // Aggiungo anche il segmento
$dbo->insert('zz_segments', [ $dbo->insert('zz_segments', [
@ -92,7 +93,7 @@ switch (filter('op')) {
]); ]);
$id_segment = $dbo->lastInsertedID(); $id_segment = $dbo->lastInsertedID();
$dbo->insert('zz_segments_lang', [ $dbo->insert('zz_segments_lang', [
'name' => 'Scadenzario '.$nome, 'title' => 'Scadenzario '.$nome,
'id_record' => $id_segment, 'id_record' => $id_segment,
'id_lang' => Models\Locale::getDefault()->id, 'id_lang' => Models\Locale::getDefault()->id,
]); ]);

View File

@ -47,7 +47,7 @@ if ($record['can_delete'] and empty($scadenze)) {
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$description$" ]} {[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$title$" ]}
</div> </div>
</div> </div>

View File

@ -17,8 +17,12 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use Modules\Scadenzario\Tipo;
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
if (!empty($id_record)) { if (!empty($id_record)) {
$record = $dbo->fetchOne('SELECT *, `co_tipi_scadenze`.`id` as id FROM `co_tipi_scadenze` LEFT JOIN `co_tipi_scadenze_lang` ON (`co_tipi_scadenze_lang`.`id_record` = `co_tipi_scadenze`.`id` AND `co_tipi_scadenze_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `co_tipi_scadenze`.`id`='.prepare($id_record)); $record = $dbo->fetchOne('SELECT *, `co_tipi_scadenze`.`id` as id FROM `co_tipi_scadenze` LEFT JOIN `co_tipi_scadenze_lang` ON (`co_tipi_scadenze_lang`.`id_record` = `co_tipi_scadenze`.`id` AND `co_tipi_scadenze_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `co_tipi_scadenze`.`id`='.prepare($id_record));
$tipo = Tipo::find($id_record);
} }

View File

@ -126,10 +126,10 @@ class ButtonManager implements ManagerInterface
$results = \Prints::getModulePrints($options['id_module']); $results = \Prints::getModulePrints($options['id_module']);
} elseif ($options['type'] == 'email') { } elseif ($options['type'] == 'email') {
$results = TemplateEmail::where('id_module', $options['id_module'])->with(['translations' => function ($query) { $results = TemplateEmail::where('id_module', $options['id_module'])->with(['translations' => function ($query) {
$query->orderBy('name'); $query->orderBy('title');
}])->get()->toArray(); }])->get()->toArray();
} elseif ($options['type'] == 'sms') { } elseif ($options['type'] == 'sms') {
$results = TemplateSMS::where('id_module', $options['id_module'])->orderBy('name')->get()->toArray(); $results = TemplateSMS::where('id_module', $options['id_module'])->orderBy('title')->get()->toArray();
} }
return $results; return $results;

View File

@ -224,8 +224,6 @@ HAVING
2=2" WHERE `name` = 'Tipi di anagrafiche'; 2=2" WHERE `name` = 'Tipi di anagrafiche';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`an_tipianagrafiche`.`id`' WHERE `zz_modules`.`name` = 'Tipi di anagrafiche' AND `zz_views`.`name` = 'id'; UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`an_tipianagrafiche`.`id`' WHERE `zz_modules`.`name` = 'Tipi di anagrafiche' AND `zz_views`.`name` = 'id';
UPDATE `zz_settings` SET `tipo` = 'query=SELECT `an_anagrafiche`.`idanagrafica` AS id, `ragione_sociale` AS descrizione FROM `an_anagrafiche` INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `an_tipianagrafiche_anagrafiche`.`idanagrafica` WHERE `idtipoanagrafica` = (SELECT `an_tipianagrafiche`.`id` FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON(`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record`) WHERE `name` = \'Azienda\') AND `deleted_at` IS NULL' WHERE `zz_settings`.`nome` = 'Azienda predefinita';
-- Aggiunta tabella co_iva_lang -- Aggiunta tabella co_iva_lang
CREATE TABLE IF NOT EXISTS `co_iva_lang` ( CREATE TABLE IF NOT EXISTS `co_iva_lang` (
`id` int NOT NULL, `id` int NOT NULL,
@ -1639,7 +1637,6 @@ WHERE
HAVING HAVING
2=2" WHERE `zz_modules`.`id` = (SELECT `id_record` FROM `zz_modules_lang` WHERE `name` = 'Tipi scadenze'); 2=2" WHERE `zz_modules`.`id` = (SELECT `id_record` FROM `zz_modules_lang` WHERE `name` = 'Tipi scadenze');
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` LEFT JOIN `zz_modules_lang` ON (`zz_modules_lang`.`id_record` = `zz_modules`.`id` AND `zz_modules_lang`.`id_lang` = (SELECT `valore` FROM `zz_settings` WHERE `nome` = "Lingua")) SET `zz_views`.`query` = '`co_tipi_scadenze`.`id`' WHERE `zz_modules_lang`.`name` = 'Tipi scadenze' AND `zz_views`.`name` = 'id'; UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` LEFT JOIN `zz_modules_lang` ON (`zz_modules_lang`.`id_record` = `zz_modules`.`id` AND `zz_modules_lang`.`id_lang` = (SELECT `valore` FROM `zz_settings` WHERE `nome` = "Lingua")) SET `zz_views`.`query` = '`co_tipi_scadenze`.`id`' WHERE `zz_modules_lang`.`name` = 'Tipi scadenze' AND `zz_views`.`name` = 'id';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` LEFT JOIN `zz_modules_lang` ON (`zz_modules_lang`.`id_record` = `zz_modules`.`id` AND `zz_modules_lang`.`id_lang` = (SELECT `valore` FROM `zz_settings` WHERE `nome` = "Lingua")) SET `zz_views`.`query` = '`co_tipi_scadenze_lang`.`description`' WHERE `zz_modules_lang`.`name` = 'Tipi scadenze' AND `zz_views`.`name` = 'Descrizione';
-- Aggiunta tabella zz_segments_lang -- Aggiunta tabella zz_segments_lang
CREATE TABLE IF NOT EXISTS `zz_segments_lang` ( CREATE TABLE IF NOT EXISTS `zz_segments_lang` (

View File

@ -138,6 +138,9 @@ if (!$has_name) {
if (database()->columnExists('co_tipi_scadenze_lang', 'name')) { if (database()->columnExists('co_tipi_scadenze_lang', 'name')) {
$database->query('ALTER TABLE `co_tipi_scadenze_lang` DROP `name`'); $database->query('ALTER TABLE `co_tipi_scadenze_lang` DROP `name`');
} }
if (database()->columnExists('co_tipi_scadenze_lang', 'description')) {
$database->query('ALTER TABLE `co_tipi_scadenze_lang` CHANGE `description` `title` VARCHAR(255) NOT NULL');
}
// Controllo se è presente il campo name in do_categorie // Controllo se è presente il campo name in do_categorie
$has_name = database()->columnExists('do_categorie', 'name'); $has_name = database()->columnExists('do_categorie', 'name');

View File

@ -378,9 +378,6 @@ ALTER TABLE `zz_settings_lang` CHANGE `help` `help` VARCHAR(500) NULL;
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`) VALUES (NULL, 'Visualizza numero ordine cliente', '1', 'boolean', '1', 'Ordini', NULL); INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`) VALUES (NULL, 'Visualizza numero ordine cliente', '1', 'boolean', '1', 'Ordini', NULL);
INSERT INTO `zz_settings_lang` (`id_record`, `id_lang`, `title`, `help`) VALUES ((SELECT `id` FROM `zz_settings` WHERE `nome` = 'Visualizza numero ordine cliente'), (SELECT `valore` FROM `zz_settings` WHERE `nome` = "Lingua"), 'Visualizza numero ordine cliente', 'Se abilitata, utilizza nei documenti il numero d\'ordine del cliente al posto del numero interno dell\'ordine'); INSERT INTO `zz_settings_lang` (`id_record`, `id_lang`, `title`, `help`) VALUES ((SELECT `id` FROM `zz_settings` WHERE `nome` = 'Visualizza numero ordine cliente'), (SELECT `valore` FROM `zz_settings` WHERE `nome` = "Lingua"), 'Visualizza numero ordine cliente', 'Se abilitata, utilizza nei documenti il numero d\'ordine del cliente al posto del numero interno dell\'ordine');
-- Allineamento impostazioni
UPDATE `zz_settings` SET `tipo` = 'query=SELECT `zz_prints`.`id`, `zz_prints_lang`.`name` AS descrizione FROM `zz_prints` LEFT JOIN `zz_prints_lang` ON (`zz_prints_lang`.`id_record` = `zz_prints`.`id` AND `zz_prints_lang`.`id_lang` = (SELECT `valore` FROM `zz_settings` WHERE `nome` = "Lingua")) WHERE `id_module` = (SELECT `zz_modules`.`id` FROM `zz_modules` LEFT JOIN `zz_modules_lang` ON (`zz_modules_lang`.`id_record` = `zz_modules`.`id` AND `zz_modules_lang`.`id_lang` = (SELECT `valore` FROM `zz_settings` WHERE `nome` = "Lingua")) WHERE `name` = "Interventi") AND `is_record` = 1' WHERE `zz_settings`.`nome` = 'Stampa per anteprima e firma';
-- Allineamento vista Gestione documentale -- Allineamento vista Gestione documentale
UPDATE `zz_modules` SET `options` = " UPDATE `zz_modules` SET `options` = "
SELECT SELECT
@ -922,7 +919,7 @@ UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_module
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`zz_segments_lang`.`title`' WHERE `zz_modules`.`name` = 'Tipi documento' AND `zz_views`.`name` = 'Sezionale'; UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`zz_segments_lang`.`title`' WHERE `zz_modules`.`name` = 'Tipi documento' AND `zz_views`.`name` = 'Sezionale';
-- Allineamento vista Tipi scadenze -- Allineamento vista Tipi scadenze
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`co_tipi_scadenze_lang`.`title`' WHERE `zz_modules`.`name` = 'Tipi scadenze' AND `zz_views`.`name` = 'Nome'; UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`co_tipi_scadenze`.`name`' WHERE `zz_modules`.`name` = 'Tipi scadenze' AND `zz_views`.`name` = 'Nome';
UPDATE `zz_widgets` SET `query` = "SELECT\n CONCAT_WS(\' \', REPLACE(REPLACE(REPLACE(FORMAT((\n SELECT SUM(\n (`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto`) * IF(`co_tipidocumento`.`reversed`, -1, 1)\n )\n ), 2), \',\', \'#\'), \'.\', \',\'), \'#\', \'.\'), \'&euro;\') AS dato\nFROM \n `co_righe_documenti`\n INNER JOIN `co_documenti` ON `co_righe_documenti`.`iddocumento` = `co_documenti`.`id`\n INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id`\n INNER JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id`\n LEFT JOIN `co_statidocumento_lang` ON (`co_statidocumento`.`id` = `co_statidocumento_lang`.`id_record` AND `co_statidocumento_lang`.|lang|)\nWHERE \n `co_statidocumento_lang`.`title`!=\'Bozza\' AND `co_tipidocumento`.`dir`=\'entrata\' |segment(`co_documenti`.`id_segment`)| AND `data` >= \'|period_start|\' AND `data` <= \'|period_end|\' AND 1=1" WHERE `zz_widgets`.`name` = 'Fatturato'; UPDATE `zz_widgets` SET `query` = "SELECT\n CONCAT_WS(\' \', REPLACE(REPLACE(REPLACE(FORMAT((\n SELECT SUM(\n (`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto`) * IF(`co_tipidocumento`.`reversed`, -1, 1)\n )\n ), 2), \',\', \'#\'), \'.\', \',\'), \'#\', \'.\'), \'&euro;\') AS dato\nFROM \n `co_righe_documenti`\n INNER JOIN `co_documenti` ON `co_righe_documenti`.`iddocumento` = `co_documenti`.`id`\n INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id`\n INNER JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id`\n LEFT JOIN `co_statidocumento_lang` ON (`co_statidocumento`.`id` = `co_statidocumento_lang`.`id_record` AND `co_statidocumento_lang`.|lang|)\nWHERE \n `co_statidocumento_lang`.`title`!=\'Bozza\' AND `co_tipidocumento`.`dir`=\'entrata\' |segment(`co_documenti`.`id_segment`)| AND `data` >= \'|period_start|\' AND `data` <= \'|period_end|\' AND 1=1" WHERE `zz_widgets`.`name` = 'Fatturato';
@ -944,4 +941,13 @@ UPDATE `zz_widgets` SET `query` = 'SELECT COUNT(`dati`.`id`) AS dato FROM (SELEC
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`zz_plugins_lang`.`title`' WHERE `zz_modules`.`name` = 'Campi personalizzati' AND `zz_views`.`name` = 'Plugin'; UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`zz_plugins_lang`.`title`' WHERE `zz_modules`.`name` = 'Campi personalizzati' AND `zz_views`.`name` = 'Plugin';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`zz_plugins_lang`.`title`' WHERE `zz_modules`.`name` = 'Checklists' AND `zz_views`.`name` = 'Plugin'; UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`zz_plugins_lang`.`title`' WHERE `zz_modules`.`name` = 'Checklists' AND `zz_views`.`name` = 'Plugin';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`categoria_lang`.`title`' WHERE `zz_modules`.`name` = 'Giacenze sedi' AND `zz_views`.`name` = 'Categoria'; UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`categoria_lang`.`title`' WHERE `zz_modules`.`name` = 'Giacenze sedi' AND `zz_views`.`name` = 'Categoria';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`sottocategoria_lang`.`title`' WHERE `zz_modules`.`name` = 'Giacenze sedi' AND `zz_views`.`name` = 'Sottocategoria'; UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`sottocategoria_lang`.`title`' WHERE `zz_modules`.`name` = 'Giacenze sedi' AND `zz_views`.`name` = 'Sottocategoria';
-- Allineamento impostazioni
UPDATE `zz_settings` SET `tipo` = 'query=SELECT `zz_prints`.`id`, `zz_prints_lang`.`title` AS descrizione FROM `zz_prints` LEFT JOIN `zz_prints_lang` ON (`zz_prints_lang`.`id_record` = `zz_prints`.`id` AND `zz_prints_lang`.`id_lang` = (SELECT `valore` FROM `zz_settings` WHERE `nome` = "Lingua")) WHERE `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = "Interventi") AND `is_record` = 1' WHERE `zz_settings`.`nome` = 'Stampa per anteprima e firma';
UPDATE `zz_settings` SET `tipo` = 'query=SELECT `an_anagrafiche`.`idanagrafica` AS id, `ragione_sociale` AS descrizione FROM `an_anagrafiche` INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `an_tipianagrafiche_anagrafiche`.`idanagrafica` WHERE `idtipoanagrafica` = (SELECT `an_tipianagrafiche`.`id` FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON(`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record`) WHERE `title` = \'Azienda\') AND `deleted_at` IS NULL' WHERE `zz_settings`.`nome` = 'Azienda predefinita';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`co_tipi_scadenze_lang`.`title`' WHERE `zz_modules`.`name` = 'Tipi scadenze' AND `zz_views`.`name` = 'Descrizione';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`dt_causalet_lang`.`title`' WHERE `zz_modules`.`name` = 'Causali' AND `zz_views`.`name` = 'Descrizione';