Allineamento standardizzazione lingue

This commit is contained in:
Pek5892 2024-03-20 11:13:28 +01:00
parent e5a2e75b2d
commit c349125f4f
303 changed files with 1019 additions and 2132 deletions

View File

@ -42,7 +42,7 @@ if (filter('op') == 'aggiungi-allegato' || filter('op') == 'rimuovi-allegato') {
// Controllo sui permessi di scrittura per il modulo
if (Modules::getPermission($id_module) != 'rw') {
flash()->error(tr('Non hai permessi di scrittura per il modulo _MODULE_', [
'_MODULE_' => '"'.Module::find($id_module)->name.'"',
'_MODULE_' => '"'.Module::find($id_module)->getTranslation('name').'"',
]));
}
@ -67,7 +67,7 @@ if (filter('op') == 'aggiungi-allegato' || filter('op') == 'rimuovi-allegato') {
$upload = Uploads::upload($_FILES['upload'], [
'name' => filter('nome_allegato'),
'category' => filter('categoria'),
'id_module' => (new Module())->getByName('Gestione documentale')->id_record,
'id_module' => (new Module())->getByField('name', 'Gestione documentale'),
'id_record' => $id_record,
]);
@ -222,7 +222,7 @@ elseif (filter('op') == 'modifica-allegato') {
if (sizeof($id_allegati) == 1) {
$upload = Upload::find($id_allegati[0]);
$upload->name = post('nome_allegato');
$upload->setTranslation('name', post('nome_allegato'));
$upload->category = post('categoria_allegato');
$upload->save();
} else {

View File

@ -112,7 +112,7 @@ switch (filter('op')) {
if ($hook->permission != '-') {
$results[] = [
'id' => $hook->id,
'name' => $hook->name,
'name' => $hook->getTranslation('name'),
];
}
}

View File

@ -39,7 +39,7 @@ echo '
<ul class="nav nav-tabs pull-right" id="tabs" role="tablist">
<li class="pull-left active header">
<a data-toggle="tab" href="#tab_0">
<i class="'.$structure['icon'].'"></i> '.$structure['title'];
<i class="'.$structure['icon'].'"></i> '.$structure->getTranslation('title');
// Pulsante "Aggiungi" solo se il modulo è di tipo "table" e se esiste il template per la popup
if ($structure->hasAddFile() && $structure->permission == 'rw') {

View File

@ -61,13 +61,13 @@ $handler->setFormatter($formatter);
$logger->pushHandler($handler);
// Lettura della cache
$ultima_esecuzione = Cache::find((new Cache())->getByName('Ultima esecuzione del cron')->id_record);
$ultima_esecuzione = Cache::find((new Cache())->getByField('name', 'Ultima esecuzione del cron'));
$data = $ultima_esecuzione->content;
$in_esecuzione = Cache::find((new Cache())->getByName('Cron in esecuzione')->id_record);
$cron_id = Cache::find((new Cache())->getByName('ID del cron')->id_record);
$in_esecuzione = Cache::find((new Cache())->getByField('name', 'Cron in esecuzione'));
$cron_id = Cache::find((new Cache())->getByField('name', 'ID del cron'));
$disattiva = Cache::find((new Cache())->getByName('Disabilita cron')->id_record);
$disattiva = Cache::find((new Cache())->getByField('name', 'Disabilita cron'));
if ($disattiva->content || (in_array($_SERVER['HTTP_HOST'], ['localhost', '127.0.0.1']) && !$forza_cron_localhost)) {
return;
}
@ -139,7 +139,7 @@ while (true) {
$task->registerNextExecution($inizio_iterazione);
$task->save();
$logger->info($task->name.': data mancante', [
$logger->info($task->getTranslation('name').': data mancante', [
'timestamp' => $task->next_execution_at->toDateTimeString(),
]);
}
@ -147,7 +147,7 @@ while (true) {
// Esecuzione diretta solo nel caso in cui sia prevista
if ($task->next_execution_at->copy()->addSeconds(20)->greaterThanOrEqualTo($inizio_iterazione) && $task->next_execution_at->lessThanOrEqualTo($adesso->copy()->addseconds(20))) {
// Registrazione dell'esecuzione nei log
$logger->info($task->name.': '.$task->expression);
$logger->info($task->getTranslation('name').': '.$task->expression);
try {
$task->execute();
} catch (Exception $e) {
@ -158,12 +158,12 @@ while (true) {
'trace' => $e->getTraceAsString(),
]);
$logger->error($task->name.': errore');
$logger->error($task->getTranslation('name').': errore');
}
}
// Esecuzione mancata
elseif ($task->next_execution_at->lessThan($inizio_iterazione)) {
$logger->warning($task->name.': mancata', [
$logger->warning($task->getTranslation('name').': mancata', [
'timestamp' => $task->next_execution_at->toDateTimeString(),
]);

View File

@ -112,7 +112,7 @@ if (empty($record) || !$has_access) {
<ul class="nav nav-tabs pull-right" id="tabs" role="tablist">
<li class="pull-left active header">
<a data-toggle="tab" href="#tab_0">
<i class="'.$structure['icon'].'"></i> '.$structure['title'];
<i class="'.$structure['icon'].'"></i> '.$structure->getTranslation('title');
// Pulsante "Aggiungi" solo se il modulo è di tipo "table" e se esiste il template per la popup
if ($structure->hasAddFile() && $structure->permission == 'rw') {
@ -173,7 +173,7 @@ if (empty($record) || !$has_access) {
{( "name": "button", "type": "email", "id_module": "'.$id_module.'", "id_plugin": "'.$id_plugin.'", "id_record": "'.$id_record.'" )}';
if (Module::find((new Module())->getByName('Account SMS')->id_record)) {
if (Module::find((new Module())->getByField('name', 'Account SMS'))) {
echo '
{( "name": "button", "type": "sms", "id_module": "'.$id_module.'", "id_plugin": "'.$id_plugin.'", "id_record": "'.$id_record.'" )}';
}

View File

@ -33,22 +33,22 @@ if (empty($documento)) {
// Informazioni utili
$dir = $documento->direzione;
$original_module = Module::find((new Module())->getByName($documento->module)->id_record);
$original_module = Module::find((new Module())->getByField('name', $documento->module));
$name = !empty($documento_finale) ? $documento_finale->module : $options['module'];
$final_module = Module::find((new Module())->getByName($name)->id_record);
$final_module = Module::find((new Module())->getByField('name', $name));
$id_segment = $_SESSION['module_'.$final_module->id]['id_segment'];
// IVA predefinita
$id_iva = $id_iva ?: setting('Iva predefinita');
$righe_totali = $documento->getRighe();
if ($final_module->name == 'Interventi') {
if ($final_module->getTranslation('name') == 'Interventi') {
$righe = $righe_totali->where('is_descrizione', '=', 0)
->where('qta_rimanente', '>', 0);
$righe_evase = $righe_totali->where('is_descrizione', '=', 0)
->where('qta_rimanente', '=', 0);
} elseif ($final_module->name == 'Ordini fornitore') {
} elseif ($final_module->getTranslation('name') == 'Ordini fornitore') {
$righe = $righe_totali;
$righe_evase = collect();
} else {
@ -92,12 +92,12 @@ if (!empty($options['create_document'])) {
</div>';
// Opzioni aggiuntive per le Fatture
if (in_array($final_module->name, ['Fatture di vendita', 'Fatture di acquisto'])) {
$stato_predefinito = (new StatoFattura())->getByName('Bozza')->id_record;
if (in_array($final_module->getTranslation('name'), ['Fatture di vendita', 'Fatture di acquisto'])) {
$stato_predefinito = (new StatoFattura())->getByField('name', 'Bozza');
if (!empty($options['reversed'])) {
$idtipodocumento = database()->fetchOne('SELECT `co_tipidocumento`.`id` FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento_lang`.`id_record` = `co_tipidocumento`.`id` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(\App::getLang()).') WHERE `name` = "Nota di credito" AND `dir` = \''.$dir.'\'')['id'];
} elseif (in_array($original_module->name, ['Ddt di vendita', 'Ddt di acquisto'])) {
} elseif (in_array($original_module->getTranslation('name'), ['Ddt di vendita', 'Ddt di acquisto'])) {
$idtipodocumento = database()->fetchOne('SELECT `co_tipidocumento`.`id` FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento_lang`.`id_record` = `co_tipidocumento`.`id` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(\App::getLang()).') WHERE `name` = '.($dir == 'uscita' ? 'Fattura differita di acquisto' : 'Fattura differita di vendita').' AND `dir` = \''.$dir.'\'')['id'];
} else {
$idtipodocumento = database()->fetchOne('SELECT `co_tipidocumento`.`id` FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento_lang`.`id_record` = `co_tipidocumento`.`id` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(\App::getLang()).') WHERE `dir` = \''.$dir.'\' AND `predefined` = 1')['id'];
@ -118,7 +118,7 @@ if (!empty($options['create_document'])) {
}
// Opzioni aggiuntive per gli Interventi
elseif ($final_module->name == 'Interventi') {
elseif ($final_module->getTranslation('name') == 'Interventi') {
echo '
<div class="col-md-6">
{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato_intervento", "required": 1, "values": "query=SELECT `in_statiintervento`.`id`, `in_statiintervento_lang`.`name` as `descrizione`, `colore` AS _bgcolor_ FROM `in_statiintervento` LEFT JOIN `in_statiintervento_lang` ON (`in_statiintervento`.`id` = `in_statiintervento_lang`.`id_record` AND `in_statiintervento_lang`.`id_lang` = '.prepare(\App::getLang()).') WHERE `deleted_at` IS NULL AND `is_completato` = 0 ORDER BY `name`" ]}
@ -130,8 +130,8 @@ if (!empty($options['create_document'])) {
}
// Opzioni aggiuntive per i Contratti
elseif ($final_module->name == 'Contratti') {
$stato_predefinito = (new StatoContratto())->getByName('Bozza')->id_record;
elseif ($final_module->getTranslation('name') == 'Contratti') {
$stato_predefinito = (new StatoContratto())->getByField('name', 'Bozza');
echo '
<div class="col-md-6">
@ -140,8 +140,8 @@ if (!empty($options['create_document'])) {
}
// Opzioni aggiuntive per i DDT
elseif (in_array($final_module->name, ['Ddt di vendita', 'Ddt di acquisto'])) {
$stato_predefinito = (new Stato())->getByName('Bozza')->id_record;
elseif (in_array($final_module->getTranslation('name'), ['Ddt di vendita', 'Ddt di acquisto'])) {
$stato_predefinito = (new Stato())->getByField('name', 'Bozza');
echo '
<div class="col-md-6">
@ -149,13 +149,13 @@ if (!empty($options['create_document'])) {
</div>
<div class="col-md-6">
{[ "type": "select", "label": "'.tr('Causale trasporto').'", "name": "id_causale_trasporto", "required": 1, "ajax-source": "causali", "icon-after": "add|'.(new Module())->getByname('Causali')->id_record.'", "help": "'.tr('Definisce la causale del trasporto').'" ]}
{[ "type": "select", "label": "'.tr('Causale trasporto').'", "name": "id_causale_trasporto", "required": 1, "ajax-source": "causali", "icon-after": "add|'.(new Module())->getByField('name', 'Causali').'", "help": "'.tr('Definisce la causale del trasporto').'" ]}
</div>';
}
// Opzioni aggiuntive per gli Ordini
elseif (in_array($final_module->name, ['Ordini cliente', 'Ordini fornitore'])) {
$stato_predefinito = (new StatoOrdine())->getByName('Bozza')->id_record;
elseif (in_array($final_module->getTranslation('name'), ['Ordini cliente', 'Ordini fornitore'])) {
$stato_predefinito = (new StatoOrdine())->getByField('name', 'Bozza');
echo '
<div class="col-md-6">
@ -170,7 +170,7 @@ if (!empty($options['create_document'])) {
echo '
<div class="col-md-6">
{[ "type": "select", "label": "'.$tipo_anagrafica.'", "name": "idanagrafica", "required": 1, "ajax-source": "'.$ajax.'", "icon-after": "add|'.(new Module())->getByName('Anagrafiche')->id_record.'|tipoanagrafica='.$tipo_anagrafica.'" ]}
{[ "type": "select", "label": "'.$tipo_anagrafica.'", "name": "idanagrafica", "required": 1, "ajax-source": "'.$ajax.'", "icon-after": "add|'.(new Module())->getByField('name', 'Anagrafiche').'|tipoanagrafica='.$tipo_anagrafica.'" ]}
</div>';
}
@ -184,7 +184,7 @@ if (!empty($options['create_document'])) {
}
// Conto, rivalsa INPS, ritenuta d'acconto e ritenuta previdenziale
if (in_array($final_module->name, ['Fatture di vendita', 'Fatture di acquisto']) && !in_array($original_module->name, ['Fatture di vendita', 'Fatture di acquisto'])) {
if (in_array($final_module->getTranslation('name'), ['Fatture di vendita', 'Fatture di acquisto']) && !in_array($original_module->getTranslation('name'), ['Fatture di vendita', 'Fatture di acquisto'])) {
$id_rivalsa_inps = setting('Cassa previdenziale predefinita');
if ($dir == 'uscita') {
$id_ritenuta_acconto = $documento->anagrafica->id_ritenuta_acconto_acquisti;
@ -294,14 +294,14 @@ echo '
<tbody id="righe_documento_importato">';
foreach ($righe as $i => $riga) {
if ($final_module->name == 'Ordini fornitore') {
if ($final_module->getTranslation('name') == 'Ordini fornitore') {
$qta_rimanente = $riga['qta'];
} else {
$qta_rimanente = $riga['qta_rimanente'];
}
$attr = 'checked="checked"';
if ($original_module->name == 'Preventivi') {
if ($original_module->getTranslation('name') == 'Preventivi') {
if (empty($riga['confermato']) && $riga['is_descrizione'] == 0) {
$attr = '';
}

View File

@ -45,7 +45,7 @@ echo '
// Unità di misura
echo '
<div class="col-md-'.$width.'">
{[ "type": "select", "label": "'.tr('Unità di misura').'", "icon-after": "add|'.(new Module())->getByName('Unità di misura')->id_record.'", "name": "um", "value": "'.$result['um'].'", "ajax-source": "misure" ]}
{[ "type": "select", "label": "'.tr('Unità di misura').'", "icon-after": "add|'.(new Module())->getByField('name', 'Unità di misura').'", "name": "um", "value": "'.$result['um'].'", "ajax-source": "misure" ]}
</div>';
// Unità di misura

View File

@ -72,7 +72,7 @@ if (post('action') == 'init') {
// Azienda predefinita
if (!$has_azienda) {
Filter::set('post', 'op', 'add');
$id_module = (new Module())->getByName('Anagrafiche')->id_record;
$id_module = (new Module())->getByField('name', 'Anagrafiche');
include base_dir().'/modules/anagrafiche/actions.php';
// Logo stampe
@ -172,7 +172,7 @@ if (!$has_azienda) {
<div class="panel-body" id="bs-popup">';
$idtipoanagrafica = (new Tipo())->getByName('Azienda')->id_record;
$idtipoanagrafica = (new Tipo())->getByField('name', 'Azienda');
$readonly_tipo = true;
ob_start();

View File

@ -33,7 +33,7 @@ if (sizeof($id_allegati) == 1) {
$allegato = Upload::find($id_allegati[0]);
echo '
<div class="col-md-6">
{[ "type": "text", "label": "'.tr('Nome').'", "name": "nome_allegato", "value": "'.$allegato->name.'" ]}
{[ "type": "text", "label": "'.tr('Nome').'", "name": "nome_allegato", "value": "'.$allegato->getTranslation('name').'" ]}
</div>
<div class="col-md-6">
{[ "type": "text", "label": "'.tr('Categoria').'", "name": "categoria_allegato", "value": "'.$allegato->category.'", "disabled": "'.intval(in_array($allegato->category, ['Fattura Elettronica'])).'" ]}

View File

@ -54,7 +54,7 @@ $direzione_richiesta = $source->getDocument()->direzione == 'entrata' ? 'uscita'
// Individuazione DDT disponibili
$ddt = DDT::whereHas('stato', function ($query) {
$id_stato = (new StatoDDT())->getByName('Bozza')->id_record;
$id_stato = (new StatoDDT())->getByField('name', 'Bozza');
$query->where('id', '!=', $id_stato);
})->whereHas('tipo', function ($query) use ($direzione_richiesta) {
$query->where('dir', '=', $direzione_richiesta);
@ -70,7 +70,7 @@ foreach ($ddt as $elemento) {
// Individuazione ordini disponibili
$tipo_ordini = $direzione_richiesta == 'entrata' ? 'cliente' : 'fornitore';
$ordini = Ordine::whereHas('stato', function ($query) {
$id_stato = (new StatoOrdine())->getByName('Bozza')->id_record;
$id_stato = (new StatoOrdine())->getByField('name', 'Bozza');
$query->where('id', '!=', $id_stato);
})->whereHas('tipo', function ($query) use ($direzione_richiesta) {
$query->where('dir', '=', $direzione_richiesta);

View File

@ -25,7 +25,7 @@ include_once __DIR__.'/../core.php';
$paths = App::getPaths();
$user = Auth::user();
$pageTitle = !empty($pageTitle) ? $pageTitle : $structure->title;
$pageTitle = !empty($pageTitle) ? $pageTitle : $structure->getTranslation('title');
$lang = (empty($lang) || $lang == '|lang|') ? 'it_IT' : $lang;
@ -238,7 +238,7 @@ if (Auth::check()) {
{ name: "tools", items : [ "Maximize", "ShowBlocks" ] },
{ name: "about", items: [ "About" ] }
],
order_manager_id: "'.($dbo->isInstalled() ? (new Module())->getByName('Stato dei servizi')->id_record : '').'",
order_manager_id: "'.($dbo->isInstalled() ? (new Module())->getByField('name', 'Stato dei servizi') : '').'",
dataload_page_buffer: '.setting('Lunghezza in pagine del buffer Datatables').',
tempo_attesa_ricerche: '.setting('Tempo di attesa ricerche in secondi').',
restrict_summables_to_selected: '.setting('Totali delle tabelle ristretti alla selezione').',

View File

@ -52,7 +52,7 @@ foreach ($mansioni as $mansione) {
}
// Aggiungo email tecnici assegnati quando sono sul template Notifica intervento
if ($template->name == 'Notifica intervento') {
if ($template->getTranslation('name') == 'Notifica intervento') {
$tecnici = $dbo->select('in_interventi_tecnici_assegnati', 'id_tecnico', [], ['id_intervento' => $id_record]);
foreach ($tecnici as $tecnico) {
$anagrafica = $dbo->table('an_anagrafiche')->where('idanagrafica', $tecnico['id_tecnico'])->where('email', '!=', '')->first();
@ -164,7 +164,7 @@ if ($smtp['pec'] == 1 && $module['name'] == 'Fatture di vendita') {
echo '
<div class="col-md-6">
{[ "type": "select", "multiple": "1", "label": "'.tr('Allegati').'", "name": "uploads[]", "value": "'.implode(',', $uploads).'", "help": "'.tr('Allegati del documento o caricati nell\'anagrafica dell\'azienda.').'", "values": "query=SELECT `id`, `name` AS text FROM `zz_files` WHERE `id_module` = '.prepare($id_module).' AND `id_record` = '.prepare($id_record).' UNION SELECT `id`, CONCAT(`name`, \' (Azienda)\') AS text FROM `zz_files` WHERE `id_module` = '.(new Module())->getByName('Anagrafiche')->id_record.' AND `id_record` = (SELECT `valore` FROM `zz_settings` WHERE `name` = \'Azienda predefinita\')", "link": "allegato" ]}
{[ "type": "select", "multiple": "1", "label": "'.tr('Allegati').'", "name": "uploads[]", "value": "'.implode(',', $uploads).'", "help": "'.tr('Allegati del documento o caricati nell\'anagrafica dell\'azienda.').'", "values": "query=SELECT `id`, `name` AS text FROM `zz_files` WHERE `id_module` = '.prepare($id_module).' AND `id_record` = '.prepare($id_record).' UNION SELECT `id`, CONCAT(`name`, \' (Azienda)\') AS text FROM `zz_files` WHERE `id_module` = '.(new Module())->getByField('name', 'Anagrafiche').' AND `id_record` = (SELECT `valore` FROM `zz_settings` WHERE `name` = \'Azienda predefinita\')", "link": "allegato" ]}
</div>
</div>';

View File

@ -26,7 +26,7 @@ switch (filter('op')) {
$adapter = new FileAdapter();
$adapter->name = post('name');
$adapter->setTranslation('name', post('name'));
$adapter->class = "\\Modules\\FileAdapters\\Adapters\\".post('class');
$adapter->save();
@ -39,7 +39,7 @@ switch (filter('op')) {
case 'update':
$adapter->name = post('name');
$adapter->setTranslation('name', post('name'));
$adapter->class = "\\Modules\\FileAdapters\\Adapters\\".post('class');
$adapter->options = post('options');
$adapter->is_default = post('is_default');

View File

@ -39,7 +39,7 @@ switch (filter('op')) {
}
// Salvataggio della versione nella cache
Cache::find((new Cache())->getByName('Ultima esecuzione del cron')->id_record)->set($versione);
Cache::find((new Cache())->getByField('name', 'Ultima esecuzione del cron'))->set($versione);
echo $versione;
break;

View File

@ -42,10 +42,10 @@ class ColonneDuplicateViste extends Controllo
$this->addResult([
'id' => $colonna['name'],
'nome' => $modulo->title.': '.$colonna['name'],
'nome' => $modulo->getTranslation('title').': '.$colonna['name'],
'descrizione' => tr('La colonna _NAME_ del modulo _MODULE_ esiste più volte', [
'_NAME_' => $colonna['name'],
'_MODULE_' => $modulo->title,
'_MODULE_' => $modulo->getTranslation('title'),
]),
]);
}

View File

@ -41,11 +41,11 @@ class PluginDuplicati extends Controllo
$modulo = Module::find($plugin['idmodule_to']);
$this->addResult([
'id' => $plugin->name,
'nome' => $modulo->title.': '.$plugin->name,
'id' => $plugin->getTranslation('name'),
'nome' => $modulo->getTranslation('title').': '.$plugin->getTranslation('name'),
'descrizione' => tr('Il plugin _NAME_ del modulo _MODULE_ esiste più volte', [
'_NAME_' => $plugin->name,
'_MODULE_' => $modulo->title,
'_NAME_' => $plugin->getTranslation('name'),
'_MODULE_' => $modulo->getTranslation('title'),
]),
]);
}

View File

@ -47,7 +47,7 @@ class UpdateHook extends CachedManager
$update = null;
}
$module = Module::find((new Module())->getByName('Aggiornamenti')->id_record);
$module = Module::find((new Module())->getByField('name', 'Aggiornamenti'));
$link = base_path().'/controller.php?id_module='.$module->id;
$message = tr("E' disponibile la versione _VERSION_ del gestionale", [

View File

@ -54,7 +54,7 @@ if (file_exists($extraction_dir.'/VERSION')) {
->ignoreVCS(true)
->in($extraction_dir);
$files_module = $finder->name('MODULE');
$files_module = $finder->getTranslation('name')('MODULE');
foreach ($files_module as $file) {
// Informazioni dal file di configurazione
@ -68,8 +68,8 @@ if (file_exists($extraction_dir.'/VERSION')) {
$directory = 'modules';
$table = 'zz_modules';
$installed = Module::find((new Module())->getByName($info['name'])->id_record);
$insert['parent'] = (new Module())->getByName($info['parent'])->id_record;
$installed = Module::find((new Module())->getByField('name', $info['name']));
$insert['parent'] = (new Module())->getByField('name', $info['parent']);
$insert['icon'] = $info['icon'];
}
@ -107,7 +107,7 @@ if (file_exists($extraction_dir.'/VERSION')) {
->ignoreVCS(true)
->in($extraction_dir);
$files_plugin_template = $finder->name('PLUGIN')->name('TEMPLATES');
$files_plugin_template = $finder->getTranslation('name')('PLUGIN')->getTranslation('name')('TEMPLATES');
foreach ($files_plugin_template as $file) {
// Informazioni dal file di configurazione
@ -121,9 +121,9 @@ if (file_exists($extraction_dir.'/VERSION')) {
$directory = 'plugins';
$table = 'zz_plugins';
$installed = Plugin::find((new Plugin())->getByName($info['name'])->id_record);
$insert['idmodule_from'] = (new Module())->getByName($info['module_from'])->id_record;
$insert['idmodule_to'] = (new Module())->getByName($info['module_to'])->id_record;
$installed = Plugin::find((new Plugin())->getByField('name', $info['name']));
$insert['idmodule_from'] = (new Module())->getByField('name', $info['module_from']);
$insert['idmodule_to'] = (new Module())->getByField('name', $info['module_to']);
$insert['position'] = $info['position'];
}
@ -133,7 +133,7 @@ if (file_exists($extraction_dir.'/VERSION')) {
$table = 'zz_prints';
$installed = Prints::getPrints()[$info['name']];
$insert['id_module'] = (new Module())->getByName($info['module'])->id_record;
$insert['id_module'] = (new Module())->getByField('name', $info['module']);
$insert['is_record'] = $info['is_record'];
$insert['filename'] = $info['filename'];
$insert['icon'] = $info['icon'];

View File

@ -348,14 +348,14 @@ switch (post('op')) {
// Operazioni aggiuntive per il logo e filigrana stampe
if (filter('op') == 'aggiungi-allegato' || filter('op') == 'modifica-allegato') {
$nome = $upload->name;
$nome = $upload->getTranslation('name');
$logo_stampe = ['logo stampe', 'logo_stampe', 'logo stampe.jpg', 'logo stampe.png'];
if (in_array(strtolower($nome), $logo_stampe)) {
$nome = 'Logo stampe';
$uploads = $structure->uploads($id_record)->where('filename', $upload->filename);
foreach ($uploads as $logo) {
$logo->name = $nome;
$logo->setTranslation('name', $nome);
$logo->save();
}
}
@ -365,7 +365,7 @@ if (filter('op') == 'aggiungi-allegato' || filter('op') == 'modifica-allegato')
$nome = 'Filigrana stampe';
$uploads = $structure->uploads($id_record)->where('filename', $upload->filename);
foreach ($uploads as $filigrana) {
$filigrana->name = $nome;
$filigrana->setTranslation('name', $nome);
$filigrana->save();
}
}

View File

@ -21,7 +21,7 @@ use Modules\Anagrafiche\Nazione;
include_once __DIR__.'/../../core.php';
$id_nazione_italia = (new Nazione())->getByName('Italia')->id_record;
$id_nazione_italia = (new Nazione())->getByField('name', 'Italia');
$tipo = get('tipoanagrafica');
if (!empty($tipo)) {
$rs = $dbo->fetchArray('SELECT `an_tipianagrafiche`.`id`, `an_tipianagrafiche_lang`.`name` as descrizione FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(\App::getLang()).') WHERE `name`='.prepare($tipo));

View File

@ -24,7 +24,7 @@ use Models\Module;
Anagrafiche
*/
$link_id = (new Module())->getByName('Anagrafiche')->id_record;
$link_id = (new Module())->getByField('name', 'Anagrafiche');
$fields = [
'Codice' => 'codice',

View File

@ -32,45 +32,45 @@ if (in_array($id_cliente, $tipi_anagrafica) or in_array($id_fornitore, $tipi_ana
// Aggiunta utente per i tecnici
if (in_array($id_tecnico, $tipi_anagrafica)) {
echo '
<li><a data-toggle="modal" data-title="'.tr('Aggiungi utente').'" data-href="modules/utenti/user.php?id_module='.(new Module())->getByName('Utenti e permessi')->id_record.'&id_record='.(new Group())->getByName('Tecnici')->id_record.'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-user"></i>'.tr('Nuovo utente').'
<li><a data-toggle="modal" data-title="'.tr('Aggiungi utente').'" data-href="modules/utenti/user.php?id_module='.(new Module())->getByField('name', 'Utenti e permessi')->id_record.'&id_record='.(new Group())->getByField('name', 'Tecnici').'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-user"></i>'.tr('Nuovo utente').'
</a></li>';
}
if (in_array($id_cliente, $tipi_anagrafica)) {
echo '
<li><a data-toggle="modal" data-title="'.tr('Aggiungi attività').'" data-href="add.php?id_module='.(new Module())->getByName('Interventi')->id_record.'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-wrench"></i>'.tr('Nuova attività').'
<li><a data-toggle="modal" data-title="'.tr('Aggiungi attività').'" data-href="add.php?id_module='.(new Module())->getByField('name', 'Interventi').'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-wrench"></i>'.tr('Nuova attività').'
</a></li>
<li><a data-toggle="modal" data-title="'.tr('Aggiungi preventivo').'" data-href="add.php?id_module='.(new Module())->getByName('Preventivi')->id_record.'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-text"></i>'.tr('Nuovo preventivo').'
<li><a data-toggle="modal" data-title="'.tr('Aggiungi preventivo').'" data-href="add.php?id_module='.(new Module())->getByField('name', 'Preventivi').'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-text"></i>'.tr('Nuovo preventivo').'
</a></li>
<li><a data-toggle="modal" data-title="'.tr('Aggiungi contratto').'" data-href="add.php?id_module='.(new Module())->getByName('Contratti')->id_record.'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-text-o"></i>'.tr('Nuovo contratto').'
<li><a data-toggle="modal" data-title="'.tr('Aggiungi contratto').'" data-href="add.php?id_module='.(new Module())->getByField('name', 'Contratti').'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-text-o"></i>'.tr('Nuovo contratto').'
</a></li>
<li><a data-toggle="modal" data-title="'.tr('Aggiungi ordine cliente').'" data-href="add.php?id_module='.(new Module())->getByName('Ordini cliente')->id_record.'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-o"></i>'.tr('Nuovo ordine cliente').'
<li><a data-toggle="modal" data-title="'.tr('Aggiungi ordine cliente').'" data-href="add.php?id_module='.(new Module())->getByField('name', 'Ordini cliente').'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-o"></i>'.tr('Nuovo ordine cliente').'
</a></li>
<li><a data-toggle="modal" data-title="'.tr('Aggiungi ddt uscita').'" data-href="add.php?id_module='.(new Module())->getByName('Ddt di vendita')->id_record.'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-truck"></i>'.tr('Nuovo ddt in uscita').'
<li><a data-toggle="modal" data-title="'.tr('Aggiungi ddt uscita').'" data-href="add.php?id_module='.(new Module())->getByField('name', 'Ddt di vendita').'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-truck"></i>'.tr('Nuovo ddt in uscita').'
</a></li>
<li><a data-toggle="modal" data-title="'.tr('Aggiungi fattura di vendita').'" data-href="add.php?id_module='.(new Module())->getByName('Fatture di vendita')->id_record.'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file"></i>'.tr('Nuova fattura di vendita').'
<li><a data-toggle="modal" data-title="'.tr('Aggiungi fattura di vendita').'" data-href="add.php?id_module='.(new Module())->getByField('name', 'Fatture di vendita').'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file"></i>'.tr('Nuova fattura di vendita').'
</a></li>
<li><a data-toggle="modal" data-title="'.tr('Aggiungi registrazione contabile').'" data-href="add.php?id_module='.(new Module())->getByName('Prima nota')->id_record.'&id_anagrafica='.$record['idanagrafica'].'"><i class="fa fa-euro"></i>'.tr('Nuova registrazione contabile (cliente)').'
<li><a data-toggle="modal" data-title="'.tr('Aggiungi registrazione contabile').'" data-href="add.php?id_module='.(new Module())->getByField('name', 'Prima nota').'&id_anagrafica='.$record['idanagrafica'].'"><i class="fa fa-euro"></i>'.tr('Nuova registrazione contabile (cliente)').'
</a></li>';
}
if (in_array($id_fornitore, $tipi_anagrafica)) {
echo '<li><a data-toggle="modal" data-title="'.tr('Aggiungi ordine fornitore').'" data-href="add.php?id_module='.(new Module())->getByName('Ordini fornitore')->id_record.'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-o fa-flip-horizontal"></i>'.tr('Nuovo ordine fornitore').'
echo '<li><a data-toggle="modal" data-title="'.tr('Aggiungi ordine fornitore').'" data-href="add.php?id_module='.(new Module())->getByField('name', 'Ordini fornitore').'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-o fa-flip-horizontal"></i>'.tr('Nuovo ordine fornitore').'
</a></li>
<li><a data-toggle="modal" data-title="'.tr('Aggiungi ddt entrata').'" data-href="add.php?id_module='.(new Module())->getByName('Ddt di acquisto')->id_record.'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-truck fa-flip-horizontal"></i>'.tr('Nuovo ddt in entrata').'
<li><a data-toggle="modal" data-title="'.tr('Aggiungi ddt entrata').'" data-href="add.php?id_module='.(new Module())->getByField('name', 'Ddt di acquisto').'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-truck fa-flip-horizontal"></i>'.tr('Nuovo ddt in entrata').'
</a></li>
<li><a data-toggle="modal" data-title="'.tr('Aggiungi fattura di acquisto').'" data-href="add.php?id_module='.(new Module())->getByName('Fatture di acquisto')->id_record.'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file fa-flip-horizontal"></i>'.tr('Nuova fattura di acquisto').'
<li><a data-toggle="modal" data-title="'.tr('Aggiungi fattura di acquisto').'" data-href="add.php?id_module='.(new Module())->getByField('name', 'Fatture di acquisto').'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file fa-flip-horizontal"></i>'.tr('Nuova fattura di acquisto').'
</a></li>
<li><a data-toggle="modal" data-title="'.tr('Aggiungi registrazione contabile').'" data-href="add.php?id_module='.(new Module())->getByName('Prima nota')->id_record.'&id_anagrafica='.$record['idanagrafica'].'"><i class="fa fa-euro"></i>'.tr('Nuova registrazione contabile (fornitore)').'
<li><a data-toggle="modal" data-title="'.tr('Aggiungi registrazione contabile').'" data-href="add.php?id_module='.(new Module())->getByField('name', 'Prima nota').'&id_anagrafica='.$record['idanagrafica'].'"><i class="fa fa-euro"></i>'.tr('Nuova registrazione contabile (fornitore)').'
</a></li>';
}

View File

@ -32,9 +32,9 @@ $is_agente = in_array($id_agente, $tipi_anagrafica);
$is_azienda = in_array($id_azienda, $tipi_anagrafica);
if (!$is_cliente && !$is_fornitore && !$is_azienda && $is_tecnico) {
$ignore = Plugin::where('id', '=', (new Plugin())->getByName('Sedi')->id_record)
->orWhere('id', '=', (new Plugin())->getByName('Referenti')->id_record)
->orWhere('id', '=', (new Plugin())->getByName('Dichiarazioni d\'intento')->id_record)
$ignore = Plugin::where('id', '=', (new Plugin())->getByField('name', 'Sedi'))
->orWhere('id', '=', (new Plugin())->getByField('name', 'Referenti'))
->orWhere('id', '=', (new Plugin())->getByField('name', 'Dichiarazioni d\'intento'))
->get();
foreach ($ignore as $plugin) {
@ -46,9 +46,9 @@ if (!$is_cliente && !$is_fornitore && !$is_azienda && $is_tecnico) {
}
if (!$is_cliente) {
$ignore = Plugin::where('id', '=', (new Plugin())->getByName('Impianti del cliente')->id_record)
->orWhere('id', '=', (new Plugin())->getByName('Contratti del cliente')->id_record)
->orWhere('id', '=', (new Plugin())->getByName('Ddt del cliente')->id_record)
$ignore = Plugin::where('id', '=', (new Plugin())->getByField('name', 'Impianti del cliente'))
->orWhere('id', '=', (new Plugin())->getByField('name', 'Contratti del cliente'))
->orWhere('id', '=', (new Plugin())->getByField('name', 'Ddt del cliente'))
->get();
foreach ($ignore as $plugin) {
@ -231,7 +231,7 @@ if (in_array($id_azienda, $tipi_anagrafica)) {
</div>
<div class="col-md-4">
{[ "type": "select", "label": "<?php echo tr('Zona'); ?>", "name": "idzona", "values": "query=SELECT id, CONCAT_WS( ' - ', nome, descrizione) AS descrizione FROM an_zone ORDER BY descrizione ASC", "value": "$idzona$", "placeholder": "<?php echo tr('Nessuna zona'); ?>", "icon-after": "add|<?php echo (new Module())->getByName('Zone')->id_record; ?>" ]}
{[ "type": "select", "label": "<?php echo tr('Zona'); ?>", "name": "idzona", "values": "query=SELECT id, CONCAT_WS( ' - ', nome, descrizione) AS descrizione FROM an_zone ORDER BY descrizione ASC", "value": "$idzona$", "placeholder": "<?php echo tr('Nessuna zona'); ?>", "icon-after": "add|<?php echo (new Module())->getByField('name', 'Zone'); ?>" ]}
</div>
<div class="col-md-4">
@ -460,7 +460,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
</div>
<div class="col-md-3">
{[ "type": "select", "label": "'.tr('Relazione').'", "name": "idrelazione", "ajax-source": "relazioni", "value": "$idrelazione$", "icon-after": "add|'.(new Module())->getByName('Relazioni')->id_record.'" ]}
{[ "type": "select", "label": "'.tr('Relazione').'", "name": "idrelazione", "ajax-source": "relazioni", "value": "$idrelazione$", "icon-after": "add|'.(new Module())->getByField('name', 'Relazioni').'" ]}
</div>
<div class="col-md-9">
@ -476,7 +476,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
$banca_predefinita = $banche->first(function ($item) {
return !empty($item['predefined']);
});
$modulo_banche = (new Module())->getByName('Banche')->id_record;
$modulo_banche = (new Module())->getByField('name', 'Banche');
if (!$banche->isEmpty()) {
echo '
<div class="row">
@ -505,7 +505,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
<div class="tab-pane '.(!$is_cliente ? 'hide' : 'active').'" id="cliente">
<div class="row">
<div class="col-md-6">
{[ "type": "select", "label": "'.tr('Provenienza cliente').'", "name": "id_provenienza", "ajax-source": "provenienze", "value": "$id_provenienza$", "icon-after": "add|'.(new Module())->getByName('Provenienze')->id_record.'" ]}
{[ "type": "select", "label": "'.tr('Provenienza cliente').'", "name": "id_provenienza", "ajax-source": "provenienze", "value": "$id_provenienza$", "icon-after": "add|'.(new Module())->getByField('name', 'Provenienze').'" ]}
</div>
<div class="col-md-6">
@ -695,7 +695,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
<div class="row">
<div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Settore merceologico'); ?>", "name": "id_settore", "ajax-source": "settori", "value": "$id_settore$", "icon-after": "add|<?php echo (new Module())->getByName('Settori')->id_record; ?>" ]}
{[ "type": "select", "label": "<?php echo tr('Settore merceologico'); ?>", "name": "id_settore", "ajax-source": "settori", "value": "$id_settore$", "icon-after": "add|<?php echo (new Module())->getByField('name', 'Settori'); ?>" ]}
</div>
<div class="col-md-3">

View File

@ -25,7 +25,7 @@ use Modules\Anagrafiche\Tipo;
$rs = Tipo::get();
foreach ($rs as $riga) {
${'id_'.strtolower($riga->name)} = $riga->id;
${'id_'.strtolower($riga->getTranslation('name'))} = $riga->id;
}
if (!empty($id_record)) {

View File

@ -26,8 +26,8 @@ use Models\PrintTemplate;
$id_record = filter('id_record');
$dir = filter('dir');
$nome_stampa = filter('nome_stampa');
$id_print = (new PrintTemplate())->getByName($nome_stampa)->id_record;
$id_module = (new Module())->getByName('Stampe contabili')->id_record;
$id_print = (new PrintTemplate())->getByField('name', $nome_stampa);
$id_module = (new Module())->getByField('name', 'Stampe contabili');
$year = (new Carbon($_SESSION['period_end']))->format('Y');

View File

@ -60,53 +60,53 @@ if (empty($_GET['visualizza_allegati'])) {
}
// Interventi dell'anagrafica
if ($user->is_admin || in_array((new Module())->getByName('Interventi')->id_record, $permessi)) {
$interventi = $dbo->fetcharray('SELECT '.prepare((new Module())->getByName('Interventi')->id_record)." AS id_module, `id` AS id_record, CONCAT('Intervento num. ',codice,' del ',DATE_FORMAT(`data_richiesta`,'%d/%m/%Y')) AS descrizione FROM `in_interventi` WHERE `idanagrafica`=".prepare($id_record));
if ($user->is_admin || in_array((new Module())->getByField('name', 'Interventi'), $permessi)) {
$interventi = $dbo->fetcharray('SELECT '.prepare((new Module())->getByField('name', 'Interventi'))." AS id_module, `id` AS id_record, CONCAT('Intervento num. ',codice,' del ',DATE_FORMAT(`data_richiesta`,'%d/%m/%Y')) AS descrizione FROM `in_interventi` WHERE `idanagrafica`=".prepare($id_record));
$documenti = array_merge($documenti, $interventi);
}
// Preventivi dell'anagrafica
if ($user->is_admin || in_array((new Module())->getByName('Preventivi')->id_record, $permessi)) {
$preventivi = $dbo->fetcharray('SELECT '.prepare((new Module())->getByName('Preventivi')->id_record)." AS id_module, id AS id_record, CONCAT('Preventivo num. ',numero,' del ',DATE_FORMAT(data_bozza,'%d/%m/%Y')) AS descrizione FROM co_preventivi WHERE idanagrafica=".prepare($id_record));
if ($user->is_admin || in_array((new Module())->getByField('name', 'Preventivi'), $permessi)) {
$preventivi = $dbo->fetcharray('SELECT '.prepare((new Module())->getByField('name', 'Preventivi'))." AS id_module, id AS id_record, CONCAT('Preventivo num. ',numero,' del ',DATE_FORMAT(data_bozza,'%d/%m/%Y')) AS descrizione FROM co_preventivi WHERE idanagrafica=".prepare($id_record));
$documenti = array_merge($documenti, $preventivi);
}
// Contratti dell'anagrafica
if ($user->is_admin || in_array((new Module())->getByName('Contratti')->id_record, $permessi)) {
$contratti = $dbo->fetcharray('SELECT '.prepare((new Module())->getByName('Contratti')->id_record)." AS id_module, id AS id_record, CONCAT('Preventivo num. ',numero,' del ',DATE_FORMAT(data_bozza,'%d/%m/%Y')) AS descrizione FROM co_contratti WHERE idanagrafica=".prepare($id_record));
if ($user->is_admin || in_array((new Module())->getByField('name', 'Contratti'), $permessi)) {
$contratti = $dbo->fetcharray('SELECT '.prepare((new Module())->getByField('name', 'Contratti'))." AS id_module, id AS id_record, CONCAT('Preventivo num. ',numero,' del ',DATE_FORMAT(data_bozza,'%d/%m/%Y')) AS descrizione FROM co_contratti WHERE idanagrafica=".prepare($id_record));
$documenti = array_merge($documenti, $contratti);
}
// DDT dell'anagrafica
if ($user->is_admin || in_array((new Module())->getByName('Ddt di vendita')->id_record, $permessi)) {
$ddt_vendita = $dbo->fetcharray('SELECT '.prepare((new Module())->getByName('Ddt di vendita')->id_record)." AS id_module, id AS id_record, CONCAT('Ddt di vendita num. ',IFNULL(numero_esterno,numero),' del ',DATE_FORMAT(data,'%d/%m/%Y')) AS descrizione FROM dt_ddt WHERE idanagrafica=".prepare($id_record));
if ($user->is_admin || in_array((new Module())->getByField('name', 'Ddt di vendita'), $permessi)) {
$ddt_vendita = $dbo->fetcharray('SELECT '.prepare((new Module())->getByField('name', 'Ddt di vendita'))." AS id_module, id AS id_record, CONCAT('Ddt di vendita num. ',IFNULL(numero_esterno,numero),' del ',DATE_FORMAT(data,'%d/%m/%Y')) AS descrizione FROM dt_ddt WHERE idanagrafica=".prepare($id_record));
$documenti = array_merge($documenti, $ddt_vendita);
}
if ($user->is_admin || in_array((new Module())->getByName('Ddt di acquisto')->id_record, $permessi)) {
$ddt_acquisto = $dbo->fetcharray('SELECT '.prepare((new Module())->getByName('Ddt di acquisto')->id_record)." AS id_module, id AS id_record, CONCAT('Ddt di acquisto num. ',IFNULL(numero_esterno,numero),' del ',DATE_FORMAT(data,'%d/%m/%Y')) AS descrizione FROM dt_ddt WHERE idanagrafica=".prepare($id_record));
if ($user->is_admin || in_array((new Module())->getByField('name', 'Ddt di acquisto'), $permessi)) {
$ddt_acquisto = $dbo->fetcharray('SELECT '.prepare((new Module())->getByField('name', 'Ddt di acquisto'))." AS id_module, id AS id_record, CONCAT('Ddt di acquisto num. ',IFNULL(numero_esterno,numero),' del ',DATE_FORMAT(data,'%d/%m/%Y')) AS descrizione FROM dt_ddt WHERE idanagrafica=".prepare($id_record));
$documenti = array_merge($documenti, $ddt_acquisto);
}
// Fatture dell'anagrafica
if ($user->is_admin || in_array((new Module())->getByName('Fatture di vendita')->id_record, $permessi)) {
$fatture_vendita = $dbo->fetcharray('SELECT '.prepare((new Module())->getByName('Fatture di vendita')->id_record)." AS id_module, id AS id_record, CONCAT('Fattura di vendita num. ',IFNULL(numero_esterno,numero),' del ',DATE_FORMAT(data_registrazione,'%d/%m/%Y')) AS descrizione FROM co_documenti WHERE idanagrafica=".prepare($id_record));
if ($user->is_admin || in_array((new Module())->getByField('name', 'Fatture di vendita'), $permessi)) {
$fatture_vendita = $dbo->fetcharray('SELECT '.prepare((new Module())->getByField('name', 'Fatture di vendita'))." AS id_module, id AS id_record, CONCAT('Fattura di vendita num. ',IFNULL(numero_esterno,numero),' del ',DATE_FORMAT(data_registrazione,'%d/%m/%Y')) AS descrizione FROM co_documenti WHERE idanagrafica=".prepare($id_record));
$documenti = array_merge($documenti, $fatture_vendita);
}
if ($user->is_admin || in_array((new Module())->getByName('Fatture di acquisto')->id_record, $permessi)) {
$fatture_acquisto = $dbo->fetcharray('SELECT '.prepare((new Module())->getByName('Fatture di acquisto')->id_record)." AS id_module, id AS id_record, CONCAT('Fattura di acquisto num. ',IFNULL(numero_esterno,numero),' del ',DATE_FORMAT(data_registrazione,'%d/%m/%Y')) AS descrizione FROM co_documenti WHERE idanagrafica=".prepare($id_record));
if ($user->is_admin || in_array((new Module())->getByField('name', 'Fatture di acquisto'), $permessi)) {
$fatture_acquisto = $dbo->fetcharray('SELECT '.prepare((new Module())->getByField('name', 'Fatture di acquisto'))." AS id_module, id AS id_record, CONCAT('Fattura di acquisto num. ',IFNULL(numero_esterno,numero),' del ',DATE_FORMAT(data_registrazione,'%d/%m/%Y')) AS descrizione FROM co_documenti WHERE idanagrafica=".prepare($id_record));
$documenti = array_merge($documenti, $fatture_acquisto);
}
// Ordini dell'anagrafica
if ($user->is_admin || in_array((new Module())->getByName('Ordini cliente')->id_record, $permessi)) {
$ordini_vendita = $dbo->fetcharray('SELECT '.prepare((new Module())->getByName('Ordini cliente')->id_record)." AS id_module, id AS id_record, CONCAT('Ordine cliente num. ',IFNULL(numero_esterno,numero),' del ',DATE_FORMAT(data,'%d/%m/%Y')) AS descrizione FROM or_ordini WHERE idanagrafica=".prepare($id_record));
if ($user->is_admin || in_array((new Module())->getByField('name', 'Ordini cliente'), $permessi)) {
$ordini_vendita = $dbo->fetcharray('SELECT '.prepare((new Module())->getByField('name', 'Ordini cliente'))." AS id_module, id AS id_record, CONCAT('Ordine cliente num. ',IFNULL(numero_esterno,numero),' del ',DATE_FORMAT(data,'%d/%m/%Y')) AS descrizione FROM or_ordini WHERE idanagrafica=".prepare($id_record));
$documenti = array_merge($documenti, $ordini_vendita);
}
if ($user->is_admin || in_array((new Module())->getByName('Ordini fornitore')->id_record, $permessi)) {
$ordini_acquisto = $dbo->fetcharray('SELECT '.prepare((new Module())->getByName('Ordini fornitore')->id_record)." AS id_module, id AS id_record, CONCAT('Ordine fornitore num. ',IFNULL(numero_esterno,numero),' del ',DATE_FORMAT(data,'%d/%m/%Y')) AS descrizione FROM or_ordini WHERE idanagrafica=".prepare($id_record));
if ($user->is_admin || in_array((new Module())->getByField('name', 'Ordini fornitore'), $permessi)) {
$ordini_acquisto = $dbo->fetcharray('SELECT '.prepare((new Module())->getByField('name', 'Ordini fornitore'))." AS id_module, id AS id_record, CONCAT('Ordine fornitore num. ',IFNULL(numero_esterno,numero),' del ',DATE_FORMAT(data,'%d/%m/%Y')) AS descrizione FROM or_ordini WHERE idanagrafica=".prepare($id_record));
$documenti = array_merge($documenti, $ordini_acquisto);
}
@ -136,7 +136,7 @@ if (empty($_GET['visualizza_allegati'])) {
// Anteprime supportate dal browser
if ($file->hasPreview()) {
echo '
<button class="btn btn-xs btn-info" type="button" data-title="'.prepareToField($file->name).' <small style=\'color:white\'><i>('.$file->filename.')</i></small>" data-href="'.base_path().'/view.php?file_id='.$file->id.'">
<button class="btn btn-xs btn-info" type="button" data-title="'.prepareToField($file->getTranslation('name')).' <small style=\'color:white\'><i>('.$file->filename.')</i></small>" data-href="'.base_path().'/view.php?file_id='.$file->id.'">
<i class="fa fa-eye"></i>
</button>';
} else {
@ -150,10 +150,10 @@ if (empty($_GET['visualizza_allegati'])) {
</td>
<td>
<a href="'.base_path().'/view.php?file_id='.$file->id.'" target="_blank">
<i class="fa fa-external-link"></i> '.$file->name.'
<i class="fa fa-external-link"></i> '.$file->getTranslation('name').'
</a>
</td>
<td>'.Modules::link(Module::find($allegato['id_module']->name), $file->id_record, $documento['descrizione']).'</td>
<td>'.Modules::link(Module::find($allegato['id_module']->getTranslation('name')), $file->id_record, $documento['descrizione']).'</td>
<td class="text-center">'.Translator::dateToLocale($file->created_at).'</td>
</tr>';
}

View File

@ -89,7 +89,7 @@ class Anagrafica extends Model
public static function fromTipo($type)
{
$tipologia = (new TipoAnagrafica())->getByName($type)->id_record;
$tipologia = (new TipoAnagrafica())->getByField('name', $type);
$anagrafiche = self::whereHas('tipi', function ($query) use ($tipologia) {
$query->where('an_tipianagrafiche.id', '=', $tipologia);
@ -156,7 +156,7 @@ class Anagrafica extends Model
public function setTipologieAttribute(array $tipologie)
{
if ($this->isAzienda()) {
$tipologie[] = (new TipoAnagrafica())->getByName('Azienda')->id_record;
$tipologie[] = (new TipoAnagrafica())->getByField('name', 'Azienda');
}
$tipologie = array_clean($tipologie);
@ -168,7 +168,7 @@ class Anagrafica extends Model
$diff = $actual->diff($previous);
foreach ($diff as $tipo) {
$method = 'fix'.$tipo->name;
$method = 'fix'.$tipo->getTranslation('name');
if (method_exists($this, $method)) {
self::$method($this);
}
@ -193,7 +193,7 @@ class Anagrafica extends Model
public function isTipo($type)
{
return $this->tipi()->get()->search(function ($item, $key) use ($type) {
return TipoAnagrafica::find($item->id)->name == $type;
return TipoAnagrafica::find($item->id)->getTranslation('name') == $type;
}) !== false;
}

View File

@ -253,7 +253,7 @@ class CSV extends CSVImporter
$tipi_selezionati = explode(',', $record['tipologia']);
foreach ($tipi_selezionati as $tipo) {
$id_tipo = (new Tipo())->getByName($tipo)->id_record;
$id_tipo = (new Tipo())->getByField('name', $tipo);
// Creo il tipo anagrafica se non esiste
if (empty($id_tipo)) {
@ -264,7 +264,7 @@ class CSV extends CSVImporter
'name' => $tipo,
])['id'];
$id_tipo = (new Tipo())->getByName($tipo)->id_record;
$id_tipo = (new Tipo())->getByField('name', $tipo);
}
$tipologie[] = $id_tipo;
@ -280,7 +280,7 @@ class CSV extends CSVImporter
// Fix per campi con contenuti derivati da query implicite
if (!empty($record['id_nazione'])) {
$record['id_nazione'] = (new Nazione())->getByName($record['id_nazione'])->id_record;
$record['id_nazione'] = (new Nazione())->getByField('name', 'Italia');
} else {
unset($record['id_nazione']);
}

View File

@ -21,45 +21,30 @@ namespace Modules\Anagrafiche;
use Common\SimpleModelTrait;
use Illuminate\Database\Eloquent\Model;
use Traits\RecordTrait;
class Nazione extends Model
{
use SimpleModelTrait;
use RecordTrait;
protected $table = 'an_nazioni';
protected static $translated_fields = [
'name',
];
public function anagrafiche()
{
return $this->hasMany(Anagrafica::class, 'id_nazione');
}
/**
* Ritorna l'attributo name della nazione.
*
* @return string
*/
public function getNameAttribute()
public function getModuleAttribute()
{
return database()->table($this->table.'_lang')
->select('name')
->where('id_record', '=', $this->id)
->where('id_lang', '=', \App::getLang())
->first()->name;
return '';
}
/**
* Ritorna l'id della nazione a partire dal nome.
*
* @param string $name il nome da ricercare
*
* @return \Illuminate\Support\Collection
*/
public function getByName($name)
{
return database()->table($this->table.'_lang')
->select('id_record')
->where('name', '=', $name)
->where('id_lang', '=', \App::getLang())
->first();
public static function getTranslatedFields(){
return self::$translated_fields;
}
}

View File

@ -21,13 +21,18 @@ namespace Modules\Anagrafiche;
use Common\SimpleModelTrait;
use Illuminate\Database\Eloquent\Model;
use Traits\RecordTrait;
class Tipo extends Model
{
use SimpleModelTrait;
use RecordTrait;
protected $table = 'an_tipianagrafiche';
protected static $translated_fields = [
'name',
];
public static function build($descrizione = null)
{
$model = new static();
@ -41,57 +46,13 @@ class Tipo extends Model
return $this->hasMany(Anagrafica::class, 'idtipoanagrafica');
}
/**
* Ritorna l'attributo name del tipo anagrafica.
*
* @return string
*/
public function getNameAttribute()
public function getModuleAttribute()
{
return database()->table($this->table.'_lang')
->select('name')
->where('id_record', '=', $this->id)
->where('id_lang', '=', \App::getLang())
->first()->name;
return 'Tipi di anagrafiche';
}
/**
* Ritorna l'id del tipo di anagrafica a partire dal nome.
*
* @param string $name il nome da ricercare
*
* @return \Illuminate\Support\Collection
*/
public function getByName($name)
{
return database()->table($this->table.'_lang')
->select('id_record')
->where('name', '=', $name)
->where('id_lang', '=', \App::getLang())
->first();
public static function getTranslatedFields(){
return self::$translated_fields;
}
/**
* Imposta l'attributo name del tipo di anagrafica.
*/
public function setNameAttribute($value)
{
$table = database()->table($this->table.'_lang');
$translated = $table
->where('id_record', '=', $this->id)
->where('id_lang', '=', \App::getLang());
if ($translated->count() > 0) {
$translated->update([
'name' => $value
]);
} else {
$table->insert([
'id_record' => $this->id,
'id_lang' => \App::getLang(),
'name' => $value
]);
}
}
}

View File

@ -94,7 +94,7 @@ switch (post('op')) {
'prezzo_acquisto' => post('prezzo_acquisto'),
'prezzo_vendita' => post('prezzo_vendita'),
'idiva_vendita' => post('idiva_vendita') ?: null,
'iva_vendita' => $iva ? $iva->name : null,
'iva_vendita' => $iva ? $iva->getTranslation('name') : null,
'um_secondaria' => post('um_secondaria'),
'um' => post('um'),
],
@ -268,7 +268,7 @@ switch (post('op')) {
}
// Salvataggio immagine relativa
$nome_immagine = $articolo->immagine_upload->name;
$nome_immagine = $articolo->immagine_upload->getTranslation('name');
$new->immagine = $new->uploads()->where('name', $nome_immagine)->first()->filename;
$new->save();

View File

@ -46,11 +46,11 @@ $aliquota_predefinita = floatval(Aliquota::find($iva_predefinita)->percentuale);
</div>
<div class="col-md-6">
{[ "type": "select", "label": "<?php echo tr('Categoria'); ?>", "name": "categoria", "required": 0, "ajax-source": "categorie", "icon-after": "add|<?php echo (new Module())->GetByName('Categorie articoli')->id_record; ?>" ]}
{[ "type": "select", "label": "<?php echo tr('Categoria'); ?>", "name": "categoria", "required": 0, "ajax-source": "categorie", "icon-after": "add|<?php echo (new Module())->getByField('name', 'Categorie articoli'); ?>" ]}
</div>
<div class="col-md-6">
{[ "type": "select", "label": "<?php echo tr('Sottocategoria'); ?>", "name": "subcategoria", "id": "subcategoria_add", "ajax-source": "sottocategorie", "icon-after": "add|<?php echo (new Module())->GetByName('Categorie articoli')->id_record; ?>||hide" ]}
{[ "type": "select", "label": "<?php echo tr('Sottocategoria'); ?>", "name": "subcategoria", "id": "subcategoria_add", "ajax-source": "sottocategorie", "icon-after": "add|<?php echo (new Module())->getByField('name', 'Categorie articoli'); ?>||hide" ]}
</div>
</div>
@ -104,7 +104,7 @@ $aliquota_predefinita = floatval(Aliquota::find($iva_predefinita)->percentuale);
<div class="row">
<div class="col-md-4">
{[ "type": "select", "label": "<?php echo tr('Unità di misura'); ?>", "name": "um", "value": "", "ajax-source": "misure", "icon-after": "add|<?php echo (new Module())->GetByName('Unità di misura articoli')->id_record; ?>" ]}
{[ "type": "select", "label": "<?php echo tr('Unità di misura'); ?>", "name": "um", "value": "", "ajax-source": "misure", "icon-after": "add|<?php echo (new Module())->getByField('name', 'Unità di misura articoli'); ?>" ]}
</div>
<div class="col-md-4">
{[ "type": "select", "label": "<?php echo tr('U.m. secondaria'); ?>", "name": "um_secondaria", "value": "", "ajax-source": "misure", "help": "<?php echo tr("Unità di misura da utilizzare nelle stampe di Ordini fornitori in relazione all'articolo"); ?>" ]}

View File

@ -76,7 +76,7 @@ switch ($resource) {
for ($i = 0; $i < sizeof($documenti); ++$i) {
($documenti[$i]['n2_documento'] != '') ? $n_documento = $documenti[$i]['n2_documento'] : $n_documento = $documenti[$i]['n_documento'];
$link_id = (new Module())->GetByName($documenti[$i]['modulo'])->id_record;
$link_id = (new Module())->getByField('name', $documenti[$i]['modulo']);
echo "<tr><td class='first_cell text-left'><a href='".base_path().'/editor.php?id_module='.$link_id.'&id_record='.$documenti[$i]['id']."' target=\"_blank\" title=\"Apri il documento su una nuova finestra\">".$documenti[$i]['tipo'].'. n. '.$n_documento.' del '.Translator::dateToLocale($documenti[$i]['data_documento'])." </a></td>\n";
echo "<td class='table_cell text-right'>".moneyFormat($documenti[$i]['costo_unitario'])."</td></tr>\n";
$ids[] = '"'.$documenti[$i]['id'].'"';
@ -137,7 +137,7 @@ switch ($resource) {
for ($i = 0; $i < sizeof($documenti); ++$i) {
($documenti[$i]['n2_documento'] != '') ? $n_documento = $documenti[$i]['n2_documento'] : $n_documento = $documenti[$i]['n_documento'];
$link_id = (new Module())->GetByName($documenti[$i]['modulo'])->id_record;
$link_id = (new Module())->getByField('name', $documenti[$i]['modulo']);
echo "<tr><td class='first_cell text-left'><a href='".base_path().'/editor.php?id_module='.$link_id.'&id_record='.$documenti[$i]['id']."' target=\"_blank\" title=\"Apri il documento su una nuova finestra\">".$documenti[$i]['tipo'].' n. '.$n_documento.' del '.Translator::dateToLocale($documenti[$i]['data_documento'])." </a></td>\n";
echo "<td class='table_cell text-right'>".moneyFormat($documenti[$i]['costo_unitario'])."</td></tr>\n";
$ids[] = '"'.$documenti[$i]['id'].'"';
@ -197,7 +197,7 @@ switch ($resource) {
for ($i = 0; $i < sizeof($documenti); ++$i) {
($documenti[$i]['n2_documento'] != '') ? $n_documento = $documenti[$i]['n2_documento'] : $n_documento = $documenti[$i]['n_documento'];
$link_id = (new Module())->GetByName($documenti[$i]['modulo'])->id_record;
$link_id = (new Module())->getByField('name', $documenti[$i]['modulo']);
echo "<tr><td class='first_cell text-left'><a href='".base_path().'/editor.php?id_module='.$link_id.'&id_record='.$documenti[$i]['id']."' target=\"_blank\" title=\"Apri il documento su una nuova finestra\">".$documenti[$i]['tipo'].' n. '.$n_documento.' del '.Translator::dateToLocale($documenti[$i]['data_documento'])." </a></td>\n";
echo "<td class='table_cell text-right'>".moneyFormat($documenti[$i]['costo_unitario'])."</td></tr>\n";
$ids[] = '"'.$documenti[$i]['id'].'"';

View File

@ -20,7 +20,7 @@
include_once __DIR__.'/../../../core.php';
use Models\Module;
$link_id = (new Module())->GetByName('Articoli')->id_record;
$link_id = (new Module())->getByField('name', 'Articoli');
$prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA');
$show_prezzi = Auth::user()['gruppo'] != 'Tecnici' || (Auth::user()['gruppo'] == 'Tecnici' && setting('Mostra i prezzi al tecnico'));

View File

@ -31,7 +31,7 @@ use Models\Module;
include_once __DIR__.'/../../core.php';
// Segmenti
$id_preventivi =(new Module())->GetByName('Preventivi')->id_record;
$id_preventivi =(new Module())->getByField('name', 'Preventivi');
$id_segment = $_SESSION['module_'.$id_preventivi]['id_segment'];
switch (post('op')) {

View File

@ -53,11 +53,11 @@ use Models\Module;
<div class="col-md-6">
<?php echo (!empty($record['id_categoria'])) ?
Modules::link('Categorie articoli', $record['id_categoria'], null, null, 'class="pull-right"') : ''; ?>
{[ "type": "select", "label": "<?php echo tr('Categoria'); ?>", "name": "categoria", "required": 0, "value": "$id_categoria$", "ajax-source": "categorie", "icon-after": "add|<?php echo (new Module())->GetByName('Categorie articoli')->id_record; ?>" ]}
{[ "type": "select", "label": "<?php echo tr('Categoria'); ?>", "name": "categoria", "required": 0, "value": "$id_categoria$", "ajax-source": "categorie", "icon-after": "add|<?php echo (new Module())->getByField('name', 'Categorie articoli'); ?>" ]}
</div>
<div class="col-md-6">
{[ "type": "select", "label": "<?php echo tr('Sottocategoria'); ?>", "name": "subcategoria", "value": "$id_sottocategoria$", "ajax-source": "sottocategorie", "select-options": <?php echo json_encode(['id_categoria' => $record['id_categoria']]); ?>, "icon-after": "add|<?php echo (new Module())->GetByName('Categorie articoli')->id_record; ?>|id_original=<?php echo $record['id_categoria']; ?>" ]}
{[ "type": "select", "label": "<?php echo tr('Sottocategoria'); ?>", "name": "subcategoria", "value": "$id_sottocategoria$", "ajax-source": "sottocategorie", "select-options": <?php echo json_encode(['id_categoria' => $record['id_categoria']]); ?>, "icon-after": "add|<?php echo (new Module())->getByField('name', 'Categorie articoli'); ?>|id_original=<?php echo $record['id_categoria']; ?>" ]}
</div>
</div>
</div>
@ -86,7 +86,7 @@ use Models\Module;
</div>
<div class="col-md-4">
{[ "type": "select", "label": "<?php echo tr('Unità di misura'); ?>", "name": "um", "value": "$um$", "ajax-source": "misure", "icon-after": "add|<?php echo (new Module())->GetByName('Unità di misura')->id_record; ?>" ]}
{[ "type": "select", "label": "<?php echo tr('Unità di misura'); ?>", "name": "um", "value": "$um$", "ajax-source": "misure", "icon-after": "add|<?php echo (new Module())->getByField('name', 'Unità di misura'); ?>" ]}
</div>
</div>

View File

@ -49,7 +49,7 @@ echo '
<div class="pull-right">';
echo '
<a class="btn btn-warning btn-xs" onclick="openModal(\''.tr('Movimenta articolo').'\', \''.base_path().'/modules/articoli/modals/add_movimento.php?id_module='.(new Module())->GetByName('Movimenti')->id_record.'&id_articolo='.$id_record.'\');">
<a class="btn btn-warning btn-xs" onclick="openModal(\''.tr('Movimenta articolo').'\', \''.base_path().'/modules/articoli/modals/add_movimento.php?id_module='.(new Module())->getByField('name', 'Movimenti').'&id_articolo='.$id_record.'\');">
<i class="fa fa-truck"></i>
'.tr('Movimenta articolo').'
</a>';
@ -69,7 +69,7 @@ if (empty($_GET['movimentazione_completa'])) {
}
echo '
<a class="btn btn-warning btn-xs" href="'.base_path().'/controller.php?id_module='.(new Module())->GetByName('Movimenti')->id_record.'&search_Articolo='.($articolo->codice.' - '.$articolo->getTranslation('name')).'">
<a class="btn btn-warning btn-xs" href="'.base_path().'/controller.php?id_module='.(new Module())->getByField('name', 'Movimenti').'&search_Articolo='.($articolo->codice.' - '.$articolo->getTranslation('name')).'">
<i class="fa fa-external-link"></i>
'.tr('Visualizza dettagli').'
</a>';

View File

@ -208,7 +208,7 @@ class Articolo extends Model
return null;
}
$module = Module::find((new Module())->getByName($this->module)->id_record);
$module = Module::find((new Module())->getByField('name', $this->module));
$fileinfo = \Uploads::fileInfo($this->immagine);
$directory = '/'.$module->upload_directory.'/';

View File

@ -22,13 +22,19 @@ namespace Modules\Articoli;
use Common\SimpleModelTrait;
use Illuminate\Database\Eloquent\Model;
use Traits\HierarchyTrait;
use Traits\RecordTrait;
class Categoria extends Model
{
use SimpleModelTrait;
use HierarchyTrait;
use RecordTrait;
protected $table = 'mg_categorie';
protected static $translated_fields = [
'name',
];
protected static $parent_identifier = 'parent';
public static function build($nota = null, $colore = null)
@ -46,57 +52,12 @@ class Categoria extends Model
return $this->hasMany(Articolo::class, 'id_categoria');
}
/**
* Ritorna l'attributo name della categoria articolo.
*
* @return string
*/
public function getNameAttribute()
public function getModuleAttribute()
{
return database()->table($this->table.'_lang')
->select('name')
->where('id_record', '=', $this->id)
->where('id_lang', '=', \App::getLang())
->first()->name;
return 'Categorie articoli';
}
/**
* Ritorna l'id della categoria articolo a partire dal nome.
*
* @param string $name il nome da ricercare
*
* @return \Illuminate\Support\Collection
*/
public function getByName($name)
{
return database()->table($this->table.'_lang')
->select('id_record')
->where('name', '=', $name)
->where('id_lang', '=', \App::getLang())
->first();
}
/**
* Imposta l'attributo name della categoria.
*/
public function setNameAttribute($value)
{
$table = database()->table($this->table.'_lang');
$translated = $table
->where('id_record', '=', $this->id)
->where('id_lang', '=', \App::getLang());
if ($translated->count() > 0) {
$translated->update([
'name' => $value
]);
} else {
$table->insert([
'id_record' => $this->id,
'id_lang' => \App::getLang(),
'name' => $value
]);
}
public static function getTranslatedFields(){
return self::$translated_fields;
}
}

View File

@ -368,7 +368,7 @@ class CSV extends CSVImporter
if (!empty($file_content)) {
if ($record['import_immagine'] == 2 || $record['import_immagine'] == 4) {
\Uploads::deleteLinked([
'id_module' => (new Module())->getByName('Articoli')->id_record,
'id_module' => (new Module())->getByField('name', 'Articoli'),
'id_record' => $articolo->id,
]);
@ -385,7 +385,7 @@ class CSV extends CSVImporter
'name' => 'Immagine',
'category' => 'Immagini',
'original_name' => $name,
'id_module' => (new Module())->getByName('Articoli')->id_record,
'id_module' => (new Module())->getByField('name', 'Articoli'),
'id_record' => $articolo->id,
], [
'thumbnails' => true,
@ -467,7 +467,7 @@ class CSV extends CSVImporter
}
if ($dettagli['dir']) {
$tipo = (new Tipo())->getByName($dettagli['dir'])->id_record;
$tipo = (new Tipo())->getByField('name', $dettagli['dir']);
$tipi = $anagrafica->tipi->pluck('id')->toArray();
$tipi[] = $tipo;

View File

@ -26,15 +26,15 @@ switch (filter('op')) {
case 'add':
$descrizione = post('nome');
$title = post('titolo');
$attributo_new = (new Attributo())->getByName($descrizione)->id_record;
$attributo_new = (new Attributo())->getByField('name', $descrizione);
if ($stato_new) {
flash()->error(tr('Questo nome è già stato utilizzato per un altro attributo.'));
} else {
$attributo = Attributo::build();
$id_record= $dbo->lastInsertedID();
$attributo->name = $descrizione;
$attributo->title = $title;
$attributo->setTranslation('name', $descrizione);
$attributo->setTranslation('title', $title);
$attributo->save();
flash()->info(tr('Nuovo attributo creato correttamente!'));
@ -43,12 +43,12 @@ switch (filter('op')) {
case 'update':
$title = post('titolo');
$attributo_new = (new Attributo())->getByName($descrizione)->id_record;
$attributo_new = (new Attributo())->getByField('name', $descrizione);
if (!empty($attributo_new) && $attributo_new != $id_record){
flash()->error(tr('Questo nome è già stato utilizzato per un altro attributo.'));
} else {
$attributo->title = $title;
$attributo->setTranslation('title', $title);
$attributo->save();
flash()->info(tr('Attributo aggiornato correttamente!'));

View File

@ -33,11 +33,11 @@ echo '
<div class="panel-body">
<div class="row">
<div class="col-md-6">
{[ "type": "span", "label": "'.tr('Nome').'", "name": "nome", "value": "'.$attributo->name.'", "help": "'.tr("Nome univoco dell'attributo").'" ]}
{[ "type": "span", "label": "'.tr('Nome').'", "name": "nome", "value": "'.$attributo->getTranslation('name').'", "help": "'.tr("Nome univoco dell'attributo").'" ]}
</div>
<div class="col-md-6">
{[ "type": "text", "label": "'.tr('Titolo').'", "name": "titolo", "value": "'.$attributo->title.'", "required": 1, "help": "'.tr("Nome visibile dell'attributo").'" ]}
{[ "type": "text", "label": "'.tr('Titolo').'", "name": "titolo", "value": "'.$attributo->getTranslation('title').'", "required": 1, "help": "'.tr("Nome visibile dell'attributo").'" ]}
</div>
</div>
</div>

View File

@ -5,14 +5,21 @@ namespace Modules\AttributiCombinazioni;
use Common\SimpleModelTrait;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Traits\RecordTrait;
class Attributo extends Model
{
use SimpleModelTrait;
use SoftDeletes;
use RecordTrait;
protected $table = 'mg_attributi';
protected static $translated_fields = [
'name',
'title',
];
public static function build()
{
$model = new static();
@ -28,95 +35,12 @@ class Attributo extends Model
}
/**
* Ritorna l'attributo name dell'attributo.
*
* @return string
*/
public function getNameAttribute()
public function getModuleAttribute()
{
return database()->table($this->table.'_lang')
->select('name')
->where('id_record', '=', $this->id)
->where('id_lang', '=', \App::getLang())
->first()->name;
return 'Attributi combinazioni';
}
/**
* Imposta l'attributo name dell'attributo.
*/
public function setNameAttribute($value)
{
$table = database()->table($this->table.'_lang');
$translated = $table
->where('id_record', '=', $this->id)
->where('id_lang', '=', \App::getLang());
if ($translated->count() > 0) {
$translated->update([
'name' => $value
]);
} else {
$table->insert([
'id_record' => $this->id,
'id_lang' => \App::getLang(),
'name' => $value
]);
}
}
/**
* Ritorna l'attributo title dell'attributo.
*
* @return string
*/
public function getTitleAttribute()
{
return database()->table($this->table.'_lang')
->select('title')
->where('id_record', '=', $this->id)
->where('id_lang', '=', \App::getLang())
->first()->title;
}
/**
* Imposta l'attributo title dell'attributo.
*/
public function setTitleAttribute($value)
{
$table = database()->table($this->table.'_lang');
$translated = $table
->where('id_record', '=', $this->id)
->where('id_lang', '=', \App::getLang());
if ($translated->count() > 0) {
$translated->update([
'title' => $value
]);
} else {
$table->insert([
'id_record' => $this->id,
'id_lang' => \App::getLang(),
'title' => $value
]);
}
}
/**
* Ritorna l'id dell'attributo a partire dal nome.
*
* @param string $name il nome da ricercare
*
* @return \Illuminate\Support\Collection
*/
public function getByName($name)
{
return database()->table($this->table.'_lang')
->select('id_record')
->where('name', '=', $name)
->where('id_lang', '=', \App::getLang())
->first();
public static function getTranslatedFields(){
return self::$translated_fields;
}
}

View File

@ -17,7 +17,7 @@ if (!empty($idarticolo) && !empty($idautomezzo)) {
Form di inserimento riga documento
*/
echo '
<form id="link_form" action="'.$rootdir.'/editor.php?id_module='.(new Module())->getByName('Automezzi')->id_record.'&id_record='.$idautomezzo.'" method="post">
<form id="link_form" action="'.$rootdir.'/editor.php?id_module='.(new Module())->getByField('name', 'Automezzi').'&id_record='.$idautomezzo.'" method="post">
<input type="hidden" name="op" value="'.$op.'">
<input type="hidden" name="backto" value="record-edit">
<input type="hidden" name="id_record" value="'.$idautomezzo.'">';

View File

@ -7,7 +7,7 @@ $id_record = get('idautomezzo');
// Form di inserimento responsabili automezzo
echo '
<form action="'.$rootdir.'/editor.php?id_module='.(new Module())->getByName('Automezzi')->id_record.'&id_record='.$id_record.'" method="post">
<form action="'.$rootdir.'/editor.php?id_module='.(new Module())->getByField('name', 'Automezzi').'&id_record='.$id_record.'" method="post">
<input type="hidden" name="op" value="addtech">
<input type="hidden" name="backto" value="record-edit">
<input type="hidden" name="id_record" value="'.$id_record.'">

View File

@ -3,7 +3,7 @@
include_once __DIR__.'/../../../core.php';
use Models\Module;
$link_id = (new Module())->getByName('Automezzi')->id_record;
$link_id = (new Module())->getByField('name', 'Automezzi');
$fields = [
'Nome' => 'nome',

View File

@ -52,7 +52,7 @@ unset($_SESSION['superselect']['idautomezzo']);
<div class="panel-body">
<div class="row">
<div class="col-md-12" >
<form action="<?php echo $rootdir; ?>/editor.php?id_module=<?php echo (new Module())->getByName('Automezzi')->id_record; ?>&id_record=<?php echo $id_record; ?>" id="updatetech-form" method="post" role="form">
<form action="<?php echo $rootdir; ?>/editor.php?id_module=<?php echo (new Module())->getByField('name', 'Automezzi'); ?>&id_record=<?php echo $id_record; ?>" id="updatetech-form" method="post" role="form">
<input type="hidden" name="backto" value="record-edit">
<input type="hidden" name="id_record" value="<?php echo $id_record; ?>">
<input type="hidden" name="op" value="">

View File

@ -31,7 +31,7 @@ switch (filter('op')) {
$categoria->nota = $nota;
$categoria->colore = $colore;
$categoria->parent = $id_original ?: null;
$categoria->name = $nome;
$categoria->setTranslation('name', $nome);
$categoria->save();
flash()->info(tr('Salvataggio completato!'));
@ -55,7 +55,7 @@ switch (filter('op')) {
$colore = filter('colore');
$id_original = filter('id_original') ?: null;
$categoria_new = Categoria::where('id', "=", (new Categoria())->getByName($nome)->id_record);
$categoria_new = Categoria::where('id', "=", (new Categoria())->getByField('name', $nome));
if (!empty($id_original)) {
$categoria_new = $categoria_new->where('parent', '=', $id_original);
} else {
@ -69,7 +69,7 @@ switch (filter('op')) {
$categoria = Categoria::build($nota, $colore);
$id_record= $dbo->lastInsertedID();
$categoria->parent = $id_original;
$categoria->name = $nome;
$categoria->setTranslation('name', $nome);
$categoria->save();
flash()->info(tr('Aggiunta nuova tipologia di _TYPE_', [

View File

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

View File

@ -28,7 +28,7 @@ foreach ($subcategorie as $sub) {
echo '
<tr>
<td>'.$sub->name.'</td>
<td>'.$sub->getTranslation('name').'</td>
<td>'.$sub->colore.'</td>
<td>'.$sub->nota.'</td>
<td>

View File

@ -24,14 +24,14 @@ use Modules\CategorieDocumentali\Categoria;
switch (post('op')) {
case 'update':
$descrizione = post('descrizione');
$categoria_new = Categoria::where('id', '=', (new Categoria())->getByName($descrizione)->id_record)->where('deleted_at', '=', null)->first();
$categoria_new = Categoria::where('id', '=', (new Categoria())->getByField('name', $descrizione))->where('deleted_at', '=', null)->first();
if (!empty($categoria_new) && $categoria_new->id != $id_record){
flash()->error(tr('Categoria _NAME_ già esistente!', [
'_NAME_' => $descrizione,
]));
} else {
$categoria->name = $descrizione;
$categoria->setTranslation('name', $descrizione);
$categoria->save();
$categoria->syncPermessi(post('permessi') ?: []);
@ -43,7 +43,7 @@ switch (post('op')) {
case 'add':
$descrizione = post('descrizione');
$categoria_new = Categoria::where('id', '=', (new Categoria())->getByName($descrizione)->id_record)->where('deleted_at', '=', null)->first();
$categoria_new = Categoria::where('id', '=', (new Categoria())->getByField('name', $descrizione))->where('deleted_at', '=', null)->first();
if (!empty($categoria_new) && $categoria_new->id != $id_record){
flash()->error(tr('Categoria _NAME_ già esistente!', [
@ -52,7 +52,7 @@ switch (post('op')) {
} else {
$categoria = Categoria::build();
$id_record = $dbo->lastInsertedID();
$categoria->name = $descrizione;
$categoria->setTranslation('name', $descrizione);
$categoria->save();
if (isAjaxRequest()) {

View File

@ -23,14 +23,20 @@ use Common\SimpleModelTrait;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Models\Group;
use Traits\RecordTrait;
class Categoria extends Model
{
use SimpleModelTrait;
use SoftDeletes;
use RecordTrait;
protected $table = 'do_categorie';
protected static $translated_fields = [
'name',
];
public static function build()
{
$model = new static();
@ -52,58 +58,12 @@ class Categoria extends Model
]);
}
/**
* Ritorna l'attributo name della Categoria
*
* @return string
*/
public function getNameAttribute()
public function getModuleAttribute()
{
return database()->table($this->table.'_lang')
->select('name')
->where('id_record', '=', $this->id)
->where('id_lang', '=', \App::getLang())
->first()->name;
return 'Categorie documenti';
}
/**
* Imposta l'attributo name della categoria
*/
public function setNameAttribute($value)
{
$table = database()->table($this->table.'_lang');
$translated = $table
->where('id_record', '=', $this->id)
->where('id_lang', '=', \App::getLang());
if ($translated->count() > 0) {
$translated->update([
'name' => $value
]);
} else {
$table->insert([
'id_record' => $this->id,
'id_lang' => \App::getLang(),
'name' => $value
]);
}
}
/**
* Ritorna l'id della categoria a partire dal nome.
*
* @param string $name il nome da ricercare
*
* @return \Illuminate\Support\Collection
*/
public function getByName($name)
{
return database()->table($this->table.'_lang')
->select('id_record')
->where('name', '=', $name)
->where('id_lang', '=', \App::getLang())
->first();
public static function getTranslatedFields(){
return self::$translated_fields;
}
}

View File

@ -22,7 +22,7 @@ include_once __DIR__.'/../../core.php';
use Modules\Checklists\Check;
use Models\Module;
$modulo_impianti = (new Module())->getByName('Impianti')->id_record;
$modulo_impianti = (new Module())->getByField('name', 'Impianti');
switch (filter('op')) {
case 'update':

View File

@ -37,7 +37,7 @@ switch (post('op')) {
break;
case 'update':
$record->name = post('name');
$record->setTranslation('name', post('name'));
$record->id_module = post('module') ?: null;
$record->id_plugin = post('plugin') ?: null;

View File

@ -26,7 +26,7 @@ $list = [];
foreach ($checklists as $checklist) {
$list[] = [
'id' => $checklist->id,
'text' => $checklist->name,
'text' => $checklist->getTranslation('name'),
];
}

View File

@ -22,7 +22,7 @@ include_once __DIR__.'/../../core.php';
use Modules\Checklists\Checklist;
use Models\Module;
$checklist_module = Module::find((new Module())->getByName('Checklists')->id_record);
$checklist_module = Module::find((new Module())->getByField('name', 'Checklists'));
if (isset($id_record)) {
$record = Checklist::find($id_record);

View File

@ -42,7 +42,7 @@ class Checklist extends Model
{
$model = new static();
$model->name = $nome;
$model->setTranslation('name', $nome);
$model->save();
return $model;

View File

@ -10,7 +10,7 @@ switch (filter('op')) {
$nome = post('nome');
// Ricerca combinazione con nome indicato
$combinazione_new = (new Combinazione())->getByName($nome)->id_record;
$combinazione_new = (new Combinazione())->getByField('name', $nome);
if (!empty($combinazione_new) && !empty($id_record) && $combinazione_new != $id_record){
flash()->error(tr('Questo nome è già stato utilizzato per un altra combinazione.'));
@ -19,7 +19,7 @@ switch (filter('op')) {
$combinazione = Combinazione::build();
$id_record = $dbo->lastInsertedID();
}
$combinazione->name = $nome;
$combinazione->setTranslation('name', $nome);
$combinazione->codice = post('codice');
$combinazione->id_categoria = post('id_categoria');
$combinazione->id_sottocategoria = post('id_sottocategoria');

View File

@ -32,7 +32,7 @@ $attributi = $combinazione->attributi;
foreach ($attributi as $key => $attributo) {
echo '
<div class="col-md-4">
{[ "type": "select", "label": "'.$attributo->name.'", "name": "attributo['.$key.']", "values": "query=SELECT id, nome AS descrizione FROM mg_valori_attributi WHERE id_attributo = '.prepare($attributo->id).' AND deleted_at IS NULL", "required": 1 ]}
{[ "type": "select", "label": "'.$attributo->getTranslation('name').'", "name": "attributo['.$key.']", "values": "query=SELECT id, nome AS descrizione FROM mg_valori_attributi WHERE id_attributo = '.prepare($attributo->id).' AND deleted_at IS NULL", "required": 1 ]}
</div>';
}

View File

@ -22,7 +22,7 @@ echo '
<div class="row">
<div class="col-md-6">
{[ "type": "select", "label": "'.tr('Categoria').'", "name": "id_categoria", "required": 0, "value": "$id_categoria$", "ajax-source": "categorie", "icon-after": "add|'.(new Module())->getByName('Categorie articoli')->id_record.'" ]}
{[ "type": "select", "label": "'.tr('Categoria').'", "name": "id_categoria", "required": 0, "value": "$id_categoria$", "ajax-source": "categorie", "icon-after": "add|'.(new Module())->getByField('name', 'Categorie articoli').'" ]}
</div>
<div class="col-md-6">

View File

@ -15,7 +15,7 @@ foreach ($attributi as $key => $attributo) {
$value = $dbo->fetchOne('SELECT mg_valori_attributi.id AS valore FROM mg_valori_attributi LEFT JOIN mg_articolo_attributo ON mg_articolo_attributo.id_valore=mg_valori_attributi.id WHERE id_articolo='.prepare(get('id_articolo')).' AND id_attributo='.prepare($attributo->id).' AND deleted_at IS NULL')['valore'];
echo '
<div class="col-md-4">
{[ "type": "select", "label": "'.$attributo->name.'", "name": "attributo['.$key.']", "values": "query=SELECT id, nome AS descrizione FROM mg_valori_attributi WHERE id_attributo = '.prepare($attributo->id).' AND deleted_at IS NULL", "value": "'.$value.'", "required": 1 ]}
{[ "type": "select", "label": "'.$attributo->getTranslation('name').'", "name": "attributo['.$key.']", "values": "query=SELECT id, nome AS descrizione FROM mg_valori_attributi WHERE id_attributo = '.prepare($attributo->id).' AND deleted_at IS NULL", "value": "'.$value.'", "required": 1 ]}
</div>';
}
echo '

View File

@ -22,7 +22,7 @@ echo '
</div>
<div class="col-md-6">
{[ "type": "text", "label": "'.tr('Nome').'", "name": "nome", "value": "'.$combinazione->name.'", "required": 1, "help": "'.tr('Nome univoco della combinazione').'" ]}
{[ "type": "text", "label": "'.tr('Nome').'", "name": "nome", "value": "'.$combinazione->getTranslation('name.').'", "required": 1, "help": "'.tr('Nome univoco della combinazione').'" ]}
</div>
</div>
@ -33,7 +33,7 @@ if (!empty($combinazione->id_categoria)) {
'.Modules::link('Categorie articoli', $combinazione->id_categoria, null, null, 'class="pull-right"');
}
echo '
{[ "type": "select", "label": "'.tr('Categoria').'", "name": "id_categoria", "required": 0, "value": "$id_categoria$", "ajax-source": "categorie", "icon-after": "add|'.(new Module())->getByName('Categorie articoli')->id_record.'" ]}
{[ "type": "select", "label": "'.tr('Categoria').'", "name": "id_categoria", "required": 0, "value": "$id_categoria$", "ajax-source": "categorie", "icon-after": "add|'.(new Module())->getByField('name', 'Categorie articoli').'" ]}
</div>
<div class="col-md-6">

View File

@ -25,6 +25,11 @@ class Combinazione extends Model
return $model;
}
protected static $translated_fields = [
'name',
];
/**
* Elenco dei campi della combinazione da sincronizzare da e verso gli Articoli della combinazione.
*
@ -104,7 +109,7 @@ class Combinazione extends Model
$articolo_base = $articoli->first();
$articolo = $articolo_base->replicate();
$nome_immagine = $articolo_base->immagine_upload->name;
$nome_immagine = $articolo_base->immagine_upload->getTranslation('name');
$allegato = $articolo_base->uploads()->where('name', $nome_immagine)->first();
if (!empty($allegato)) {
@ -219,58 +224,7 @@ class Combinazione extends Model
->update($combo->toArray());
}
/**
* Ritorna l'attributo name della combinazione.
*
* @return string
*/
public function getNameAttribute()
{
return database()->table($this->table.'_lang')
->select('name')
->where('id_record', '=', $this->id)
->where('id_lang', '=', \App::getLang())
->first()->name;
}
/**
* Imposta l'attributo name della combinazione.
*/
public function setNameAttribute($value)
{
$table = database()->table($this->table.'_lang');
$translated = $table
->where('id_record', '=', $this->id)
->where('id_lang', '=', \App::getLang());
if ($translated->count() > 0) {
$translated->update([
'name' => $value
]);
} else {
$table->insert([
'id_record' => $this->id,
'id_lang' => \App::getLang(),
'name' => $value
]);
}
}
/**
* Ritorna l'id della combinazione a partire dal nome.
*
* @param string $name il nome da ricercare
*
* @return \Illuminate\Support\Collection
*/
public function getByName($name)
{
return database()->table($this->table.'_lang')
->select('id_record')
->where('name', '=', $name)
->where('id_lang', '=', \App::getLang())
->first();
public static function getTranslatedFields(){
return self::$translated_fields;
}
}

View File

@ -146,7 +146,7 @@ switch (post('op')) {
$new = $contratto->replicate(['idcontratto_prev']);
$new->numero = Contratto::getNextNumero($contratto->data_bozza, $contratto->id_segment);
$stato = (new Stato())->getByName('Bozza')->id_record;
$stato = (new Stato())->getByField('name', 'Bozza');
$new->stato()->associate($stato);
$new->save();
@ -401,7 +401,7 @@ switch (post('op')) {
$new_contratto->data_bozza = Carbon::now();
$new_contratto->numero = Contratto::getNextNumero($new_contratto->data_bozza, $new_contratto->id_segment);
$stato = (new Stato())->getByName('Bozza')->id_record;
$stato = (new Stato())->getByField('name', 'Bozza');
$new_contratto->stato()->associate($stato);
$new_contratto->save();
@ -452,7 +452,7 @@ switch (post('op')) {
foreach ($allegati as $allegato) {
$allegato->copia([
'id_module' => $id_module,
'id_plugin' => (new Plugin())->getByName('Pianificazione interventi')->id_record,
'id_plugin' => (new Plugin())->getByField('name', 'Pianificazione interventi'),
'id_record' => $id_promemoria,
]);
}

View File

@ -25,7 +25,7 @@ $id_anagrafica = !empty(get('idanagrafica')) ? get('idanagrafica') : '';
$stati = get('pianificabile') ? 'SELECT `co_staticontratti`.`id`, `name` AS descrizione FROM `co_staticontratti` LEFT JOIN `co_staticontratti_lang` ON (`co_staticontratti`.`id` = `co_staticontratti_lang`.`id_record` AND `co_staticontratti_lang`.`id_lang` = '.prepare(\App::getLang()).') WHERE `is_pianificabile`=1' : 'SELECT `co_staticontratti`.`id`, `name` AS descrizione FROM `co_staticontratti` LEFT JOIN `co_staticontratti_lang` ON (`co_staticontratti`.`id` = `co_staticontratti_lang`.`id_record` AND `co_staticontratti_lang`.`id_lang` = '.prepare(\App::getLang()).')';
$stato = (new Stato())->getByName('Bozza')->id_record;
$stato = (new Stato())->getByField('name', 'Bozza');
echo '
<form action="" method="post" id="add-form">
@ -41,7 +41,7 @@ echo '
</div>
<div class="col-md-6">
{[ "type": "select", "label": "'.tr('Cliente').'", "name": "idanagrafica", "required": 1, "value": "'.$id_anagrafica.'", "ajax-source": "clienti", "icon-after": "add|'.(new Module())->getByName('Anagrafiche')->id_record.'|tipoanagrafica=Cliente&readonly_tipo=1", "readonly": "'.((empty(get('idanagrafica'))) ? 0 : 1).'" ]}
{[ "type": "select", "label": "'.tr('Cliente').'", "name": "idanagrafica", "required": 1, "value": "'.$id_anagrafica.'", "ajax-source": "clienti", "icon-after": "add|'.(new Module())->getByField('name', 'Anagrafiche').'|tipoanagrafica=Cliente&readonly_tipo=1", "readonly": "'.((empty(get('idanagrafica'))) ? 0 : 1).'" ]}
</div>
</div>

View File

@ -31,7 +31,7 @@ use Models\Module;
use Models\Plugin;
// Segmenti
$id_fatture = (new Module())->getByName('Fatture di vendita')->id_record;
$id_fatture = (new Module())->getByField('name', 'Fatture di vendita');
if (!isset($_SESSION['module_'.$id_fatture]['id_segment'])) {
$segments = Modules::getSegments($id_fatture);
$_SESSION['module_'.$id_fatture]['id_segment'] = isset($segments[0]['id']) ? $segments[0]['id'] : null;
@ -52,7 +52,7 @@ switch (post('op')) {
// Informazioni della fattura
$tipo_documento = Tipo::where('id', post('idtipodocumento'))->first();
$stato_documenti_accodabili = (new Stato())->getByName('Bozza'->id_record);
$stato_documenti_accodabili = (new Stato())->getByField('name', 'Bozza'->id_record);
$accodare = post('accodare');
$data = date('Y-m-d');
@ -165,7 +165,7 @@ switch (post('op')) {
$new_contratto->data_conclusione = $new_contratto->data_accettazione->copy()->add($diff);
$new_contratto->data_bozza = Carbon::now();
$stato = (new StatoContratto())->getByName('Bozza')->id_record;
$stato = (new StatoContratto())->getByField('name', 'Bozza');
$new_contratto->stato()->associate($stato);
$new_contratto->save();
@ -216,7 +216,7 @@ switch (post('op')) {
foreach ($allegati as $allegato) {
$allegato->copia([
'id_module' => $id_module,
'id_plugin' => (new Plugin())->getByName('Pianificazione interventi')->id_record,
'id_plugin' => (new Plugin())->getByField('name', 'Pianificazione interventi'),
'id_record' => $id_promemoria,
]);
}

View File

@ -113,7 +113,7 @@ echo '
</div>
<div class="col-md-6">
{[ "type": "select", "multiple": "1", "label": "<?php echo tr('Impianti'); ?>", "name": "matricolaimpianto[]", "values": "query=SELECT idanagrafica, id AS id, IF(nome = '', matricola, CONCAT(matricola, ' - ', nome)) AS descrizione FROM my_impianti WHERE idanagrafica='$idanagrafica$' ORDER BY descrizione", "value": "$idimpianti$", "icon-after": "add|<?php echo (new Module())->getByName('Impianti')->id_record; ?>|<?php echo 'id_anagrafica='.$record['idanagrafica']; ?>||<?php echo (empty($block_edit)) ? '' : 'disabled'; ?>" ]}
{[ "type": "select", "multiple": "1", "label": "<?php echo tr('Impianti'); ?>", "name": "matricolaimpianto[]", "values": "query=SELECT idanagrafica, id AS id, IF(nome = '', matricola, CONCAT(matricola, ' - ', nome)) AS descrizione FROM my_impianti WHERE idanagrafica='$idanagrafica$' ORDER BY descrizione", "value": "$idimpianti$", "icon-after": "add|<?php echo (new Module())->getByField('name', 'Impianti'); ?>|<?php echo 'id_anagrafica='.$record['idanagrafica']; ?>||<?php echo (empty($block_edit)) ? '' : 'disabled'; ?>" ]}
</div>
<div class="col-md-3">
@ -347,7 +347,7 @@ if (!$block_edit) {
</div>
<div class="col-md-4">
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "id_articolo", "value": "", "ajax-source": "articoli", "select-options": {"permetti_movimento_a_zero": 1}, "icon-after": "add|'.(new Module())->getByName('Articoli')->id_record.'" ]}
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "id_articolo", "value": "", "ajax-source": "articoli", "select-options": {"permetti_movimento_a_zero": 1}, "icon-after": "add|'.(new Module())->getByField('name', 'Articoli').'" ]}
</div>
<div class="col-md-3" style="margin-top: 25px">

View File

@ -104,7 +104,7 @@ if (!empty($interventi)) {
echo '
<tr>
<td>'.$sessione->anagrafica->ragione_sociale.'</td>
<td>'.$sessione->tipo->name.'</td>
<td>'.$sessione->tipo->getTranslation('name').'</td>
<td class="text-right">'.numberFormat($sessione->ore).'</td>
<td class="text-right">'.numberFormat($sessione->km).'</td>
<td class="text-right danger">'.moneyFormat($sessione->costo_manodopera).'</td>
@ -116,9 +116,9 @@ if (!empty($interventi)) {
</tr>';
// Raggruppamento per tipologia descrizione
$tipologie[$sessione->tipo->name]['ore'] += $sessione->ore;
$tipologie[$sessione->tipo->name]['costo'] += $sessione->costo_manodopera + $sessione->costo_viaggio + $sessione->costo_diritto_chiamata;
$tipologie[$sessione->tipo->name]['ricavo'] += $sessione->prezzo_manodopera - $sessione->sconto_totale_manodopera + $sessione->prezzo_viaggio - $sessione->sconto_totale_viaggio + $sessione->prezzo_diritto_chiamata;
$tipologie[$sessione->tipo->getTranslation('name')]['ore'] += $sessione->ore;
$tipologie[$sessione->tipo->getTranslation('name')]['costo'] += $sessione->costo_manodopera + $sessione->costo_viaggio + $sessione->costo_diritto_chiamata;
$tipologie[$sessione->tipo->getTranslation('name')]['ricavo'] += $sessione->prezzo_manodopera - $sessione->sconto_totale_manodopera + $sessione->prezzo_viaggio - $sessione->sconto_totale_viaggio + $sessione->prezzo_diritto_chiamata;
// Raggruppamento per tecnico
$tecnici[$sessione->anagrafica->ragione_sociale]['ore'] += $sessione->ore;
@ -127,10 +127,10 @@ if (!empty($interventi)) {
$tecnici[$sessione->anagrafica->ragione_sociale]['ricavo'] += $sessione->prezzo_manodopera - $sessione->sconto_totale_manodopera + $sessione->prezzo_viaggio - $sessione->sconto_totale_viaggio + $sessione->prezzo_diritto_chiamata;
// Raggruppamento per stato intervento
$stati_intervento[$intervento->stato->name]['colore'] = $intervento->stato->colore;
$stati_intervento[$intervento->stato->name]['ore'] += $sessione->ore;
$stati_intervento[$intervento->stato->name]['costo'] += $sessione->costo_manodopera + $sessione->costo_viaggio + $sessione->costo_diritto_chiamata;
$stati_intervento[$intervento->stato->name]['ricavo'] += $sessione->prezzo_manodopera - $sessione->sconto_totale_manodopera + $sessione->prezzo_viaggio - $sessione->sconto_totale_viaggio + $sessione->prezzo_diritto_chiamata;
$stati_intervento[$intervento->stato->getTranslation('name')]['colore'] = $intervento->stato->colore;
$stati_intervento[$intervento->stato->getTranslation('name')]['ore'] += $sessione->ore;
$stati_intervento[$intervento->stato->getTranslation('name')]['costo'] += $sessione->costo_manodopera + $sessione->costo_viaggio + $sessione->costo_diritto_chiamata;
$stati_intervento[$intervento->stato->getTranslation('name')]['ricavo'] += $sessione->prezzo_manodopera - $sessione->sconto_totale_manodopera + $sessione->prezzo_viaggio - $sessione->sconto_totale_viaggio + $sessione->prezzo_diritto_chiamata;
}
echo '
@ -165,7 +165,7 @@ if (!empty($interventi)) {
// Raggruppamento per articolo con lo stesso prezzo
$ricavo = ($articolo->imponibile - $articolo->sconto) / $articolo->qta;
$costo = $articolo->spesa / $articolo->qta;
$descrizione = $articolo->articolo->codice.' - '.$articolo->articolo->name;
$descrizione = $articolo->articolo->codice.' - '.$articolo->articolo->getTranslation('name');
$materiali_art[$descrizione][$ricavo][$costo]['id'] = $articolo->articolo->id;
$materiali_art[$descrizione][$ricavo][$costo]['qta'] += $articolo->qta;

View File

@ -201,7 +201,7 @@ foreach ($righe as $riga) {
// Iva
echo '
<br><small class="'.(($riga->aliquota->deleted_at) ? 'text-red' : '').' text-muted">'.$riga->aliquota->name.(($riga->aliquota->esente) ? ' ('.$riga->aliquota->codice_natura_fe.')' : null).'</small>
<br><small class="'.(($riga->aliquota->deleted_at) ? 'text-red' : '').' text-muted">'.$riga->aliquota->getTranslation('name').(($riga->aliquota->esente) ? ' ('.$riga->aliquota->codice_natura_fe.')' : null).'</small>
</td>';
}
@ -619,10 +619,10 @@ function modificaSeriali(button) {
}
init();';
if (Plugin::find((new Plugin())->getByName('Distinta base')->id_record)) {
if (Plugin::find((new Plugin())->getByField('name', 'Distinta base'))) {
echo '
async function viewDistinta(id_articolo) {
openModal("'.tr('Distinta base').'", "'.Plugin::find((new Plugin())->getByName('Distinta base')->id_record)->fileurl('view.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&id_articolo=" + id_articolo);
openModal("'.tr('Distinta base').'", "'.Plugin::find((new Plugin())->getByField('name', 'Distinta base'))->fileurl('view.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&id_articolo=" + id_articolo);
}';
}
echo '

View File

@ -67,7 +67,7 @@ class Contratto extends Document
{
$model = new static();
$stato_documento = (new Stato())->getByName('Bozza')->id_record;
$stato_documento = (new Stato())->getByField('name', 'Bozza');
$id_agente = $anagrafica->idagente;
$id_segment = $id_segment ?: getSegmentPredefined($model->getModule()->id);
@ -248,7 +248,7 @@ class Contratto extends Document
$codice_intervento = 'FAT';
}
$stato = (new Stato())->getByName($descrizione)->id_record;
$stato = (new Stato())->getByField('name', $descrizione);
$this->stato()->associate($stato);
$this->save();

View File

@ -21,13 +21,18 @@ namespace Modules\Contratti;
use Common\SimpleModelTrait;
use Illuminate\Database\Eloquent\Model;
use Traits\RecordTrait;
class Stato extends Model
{
use SimpleModelTrait;
use RecordTrait;
protected $table = 'co_staticontratti';
protected static $translated_fields = [
'name',
];
public static function build($icona = null, $colore = null, $is_completato = null, $is_fatturabile = null, $is_pianificabile = null)
{
$model = new static();
@ -45,59 +50,13 @@ class Stato extends Model
{
return $this->hasMany(Contratto::class, 'idstato');
}
/**
* Ritorna l'attributo name dello stato contratto.
*
* @return string
*/
public function getNameAttribute()
public function getModuleAttribute()
{
return database()->table($this->table.'_lang')
->select('name')
->where('id_record', '=', $this->id)
->where('id_lang', '=', \App::getLang())
->first()->name;
return 'Stato dei contratti';
}
/**
* Imposta l'attributo name dello stato contratto.
*/
public function setNameAttribute($value)
{
$table = database()->table($this->table.'_lang');
$translated = $table
->where('id_record', '=', $this->id)
->where('id_lang', '=', \App::getLang());
if ($translated->count() > 0) {
$translated->update([
'name' => $value
]);
} else {
$table->insert([
'id_record' => $this->id,
'id_lang' => \App::getLang(),
'name' => $value
]);
}
public static function getTranslatedFields(){
return self::$translated_fields;
}
/**
* Ritorna l'id dello stato contratto a partire dal nome.
*
* @param string $name il nome da ricercare
*
* @return \Illuminate\Support\Collection
*/
public function getByName($name)
{
return database()->table($this->table.'_lang')
->select('id_record')
->where('name', '=', $name)
->where('id_lang', '=', \App::getLang())
->first();
}
}

View File

@ -20,9 +20,9 @@
include_once __DIR__.'/../../core.php';
use Models\Module;
$modulo_interventi = Module::find((new Module())->getByName('Interventi')->id_record);
$modulo_preventivi = Module::find((new Module())->getByName('Preventivi')->id_record);
$modulo_eventi = Module::find((new Module())->getByName('Eventi')->id_record);
$modulo_interventi = Module::find((new Module())->getByField('name', 'Interventi'));
$modulo_preventivi = Module::find((new Module())->getByField('name', 'Preventivi'));
$modulo_eventi = Module::find((new Module())->getByField('name', 'Eventi'));
if (!isset($user['idanagrafica'])) {
$user['idanagrafica'] = '';

View File

@ -388,7 +388,7 @@ foreach ($days as $key => $day) {
}
}
$modulo_interventi =Module::find((new Module())->getByName('Interventi')->id_record);
$modulo_interventi =Module::find((new Module())->getByField('name', 'Interventi'));
echo '
<script type="text/javascript">

View File

@ -54,11 +54,11 @@ foreach ($moduli as $module_id => $note) {
$modulo = Module::find($module_id);
echo '
<h4>'.($modulo->title == 'Anagrafiche' ? 'Note' : $modulo->title).'</h4>
<h4>'.($modulo->getTranslation('title') == 'Anagrafiche' ? 'Note' : $modulo->getTranslation('title')).'</h4>
<table class="table table-hover">
<tr>
<th width="15%" >'.(($modulo->title == 'Anagrafiche') ? '' : tr('Riferimento')).'</th>
<th width="20%" >'.($modulo->title == 'Anagrafiche' ? 'Tecnico' : (($modulo->title == 'Fatture di acquisto' || $modulo->title == 'Ordini fornitore' || $modulo->title == 'Ddt in entrata') ? tr('Fornitore') : tr('Cliente'))).'</th>
<th width="15%" >'.(($modulo->getTranslation('title') == 'Anagrafiche') ? '' : tr('Riferimento')).'</th>
<th width="20%" >'.($modulo->getTranslation('title') == 'Anagrafiche' ? 'Tecnico' : (($modulo->getTranslation('title') == 'Fatture di acquisto' || $modulo->getTranslation('title') == 'Ordini fornitore' || $modulo->getTranslation('title') == 'Ddt in entrata') ? tr('Fornitore') : tr('Cliente'))).'</th>
<th>'.tr('Contenuto').'</th>
<th width="20%" class="text-center">'.tr('Data di notifica').'</th>
<th class="text-center">#</th>
@ -68,29 +68,29 @@ foreach ($moduli as $module_id => $note) {
$class = (strtotime($nota->notification_date) < strtotime(date('Y-m-d')) && !empty($nota->notification_date)) ? 'danger' : '';
$documento = '';
if ($modulo->title == 'Attività') {
if ($modulo->getTranslation('title') == 'Attività') {
$documento = $dbo->fetchOne("SELECT `in_interventi`.`codice` AS numero, `ragione_sociale` FROM `zz_notes` INNER JOIN `in_interventi` ON (`in_interventi`.`id` = `zz_notes`.`id_record` AND `zz_notes`.`id_module`=(SELECT `id_record` FROM `zz_modules_lang` WHERE `title` = 'Attività' AND `id_lang` = ".prepare(\App::getLang()).")) INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `in_interventi`.`idanagrafica` WHERE `zz_notes`.`id` = ".$nota->id);
} elseif ($modulo->title == 'Fatture di vendita') {
} elseif ($modulo->getTranslation('title') == 'Fatture di vendita') {
$documento = $dbo->fetchOne("SELECT `numero_esterno` AS numero, `ragione_sociale` FROM `zz_notes` INNER JOIN `co_documenti` ON (`co_documenti`.`id` = `zz_notes`.`id_record` AND `zz_notes`.`id_module`=(SELECT `id_record` FROM `zz_modules_lang` WHERE `title` = 'Fatture di vendita' AND `id_lang` = ".prepare(\App::getLang()).")) INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `co_documenti`.`idanagrafica` WHERE `zz_notes`.`id` = ".$nota->id);
} elseif ($modulo->title == 'Fatture di acquisto') {
} elseif ($modulo->getTranslation('title') == 'Fatture di acquisto') {
$documento = $dbo->fetchOne("SELECT `numero`, `ragione_sociale` FROM `zz_notes` INNER JOIN `co_documenti` ON (`co_documenti`.`id` = `zz_notes`.`id_record` AND `zz_notes`.`id_module`=(SELECT `id_record` FROM `zz_modules_lang` WHERE `title` = 'Fatture di acquisto' AND `id_lang` = ".prepare(\App::getLang()).")) INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `co_documenti`.`idanagrafica` WHERE `zz_notes`.`id` = ".$nota->id);
} elseif ($modulo->title == 'Preventivi') {
} elseif ($modulo->getTranslation('title') == 'Preventivi') {
$documento = $dbo->fetchOne("SELECT `numero`, `ragione_sociale` FROM `zz_notes` INNER JOIN `co_preventivi` ON (`co_preventivi`.`id` = `zz_notes`.`id_record` AND `zz_notes`.`id_module`=(SELECT `id_record` FROM `zz_modules_lang` WHERE `title` = 'Preventivi' AND `id_lang` = ".prepare(\App::getLang()).")) INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `co_preventivi`.`idanagrafica` WHERE `zz_notes`.`id` = ".$nota->id);
} elseif ($modulo->title == 'Contratti') {
} elseif ($modulo->getTranslation('title') == 'Contratti') {
$documento = $dbo->fetchOne("SELECT `numero`, `ragione_sociale` FROM `zz_notes` INNER JOIN `co_contratti` ON (`co_contratti`.`id` = `zz_notes`.`id_record` AND `zz_notes`.`id_module`=(SELECT `id_record` FROM `zz_modules_lang` WHERE `title` = 'Contratti' AND `id_lang` = ".prepare(\App::getLang()).")) INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `co_contratti`.`idanagrafica` WHERE `zz_notes`.`id` = ".$nota->id);
} elseif ($modulo->title == 'Ordini cliente') {
} elseif ($modulo->getTranslation('title') == 'Ordini cliente') {
$documento = $dbo->fetchOne("SELECT `numero_esterno` as numero, `ragione_sociale` FROM `zz_notes` INNER JOIN `or_ordini` ON (`or_ordini`.`id` = `zz_notes`.`id_record` AND `zz_notes`.`id_module`=(SELECT `id_record` FROM `zz_modules_lang` WHERE `title` = 'Ordini cliente' AND `id_lang` = ".prepare(\App::getLang()).")) INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `or_ordini`.`idanagrafica` WHERE `zz_notes`.`id` = ".$nota->id);
} elseif ($modulo->title == 'Ordini fornitore') {
} elseif ($modulo->getTranslation('title') == 'Ordini fornitore') {
$documento = $dbo->fetchOne("SELECT `numero`, `ragione_sociale` FROM `zz_notes` INNER JOIN `or_ordini` ON (`or_ordini`.`id` = `zz_notes`.`id_record` AND `zz_notes`.`id_module`=(SELECT `id_record` FROM `zz_modules_lang` WHERE `title` = 'Ordini fornitore' AND `id_lang` = ".prepare(\App::getLang()).")) INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `or_ordini`.`idanagrafica` WHERE `zz_notes`.`id` = ".$nota->id);
} elseif ($modulo->title == 'Ddt in uscita') {
} elseif ($modulo->getTranslation('title') == 'Ddt in uscita') {
$documento = $dbo->fetchOne("SELECT `numero_esterno` as numero, `ragione_sociale` FROM `zz_notes` INNER JOIN `dt_ddt` ON (`dt_ddt`.`id` = `zz_notes`.`id_record` AND `zz_notes`.`id_module`=(SELECT `id_lang` FROM `zz_modules_lang` WHERE `title` = 'Ddt in uscita' AND `id_lang` = ".prepare(\App::getLang()).")) INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `dt_ddt`.`idanagrafica` WHERE `zz_notes`.`id` = ".$nota->id);
} elseif ($modulo->title == 'Ddt in entrata') {
} elseif ($modulo->getTranslation('title') == 'Ddt in entrata') {
$documento = $dbo->fetchOne("SELECT `numero`, `ragione_sociale` FROM `zz_notes` INNER JOIN `dt_ddt` ON (`dt_ddt`.`id` = `zz_notes`.`id_record` AND `zz_notes`.`id_module`=(SELECT `id_record` FROM `zz_modules_lang` WHERE `title` = 'Ddt in uscita' AND `id_lang` = ".prepare(\App::getLang()).")) INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `dt_ddt`.`idanagrafica` WHERE `zz_notes`.`id` = ".$nota->id);
} elseif ($modulo->title == 'Articoli') {
} elseif ($modulo->getTranslation('title') == 'Articoli') {
$documento = $dbo->fetchOne("SELECT `codice` AS numero FROM `zz_notes` INNER JOIN `mg_articoli` ON (`mg_articoli`.`id` = `zz_notes`.`id_record` AND `zz_notes`.`id_module`=(SELECT `id_record` FROM `zz_modules_lang` WHERE `title` = 'Articoli' AND `id_lang` = ".prepare(\App::getLang()).")) WHERE `zz_notes`.`id` = ".$nota->id);
} elseif ($modulo->title == 'Impianti') {
} elseif ($modulo->getTranslation('title') == 'Impianti') {
$documento = $dbo->fetchOne("SELECT `matricola` AS numero, `ragione_sociale` FROM `zz_notes` INNER JOIN `my_impianti` ON (`my_impianti`.`id` = `zz_notes`.`id_record` AND `zz_notes`.`id_module`=(SELECT `id_record` FROM `zz_modules_lang` WHERE `title` = 'Impianti' AND `id_lang` = ".prepare(\App::getLang()).")) INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `my_impianti`.`idanagrafica` WHERE `zz_notes`.`id` = ".$nota->id);
} elseif ($modulo->title == 'Anagrafiche') {
} elseif ($modulo->getTranslation('title') == 'Anagrafiche') {
$documento = $dbo->fetchOne("SELECT ' ' AS numero, `ragione_sociale` FROM `zz_notes` INNER JOIN `an_anagrafiche` ON (`an_anagrafiche`.`idanagrafica` = `zz_notes`.`id_record` AND `zz_notes`.`id_module`=(SELECT `id_record` FROM `zz_modules_lang` WHERE `title` = 'Anagrafiche' AND `id_lang` = ".prepare(\App::getLang()).")) WHERE `zz_notes`.`id` = ".$nota->id);
} else {
$documento['numero'] = ' ';

View File

@ -23,7 +23,7 @@ use Carbon\Carbon;
use Models\Module;
// Trovo id_print della stampa
$id_print = Prints::getModulePredefinedPrint((new Module())->getByName('Dashboard')->id_record)['id'];
$id_print = Prints::getModulePredefinedPrint((new Module())->getByField('name', 'Dashboard'))['id'];
$date = new Carbon($_SESSION['dashboard']['date']);
echo '

View File

@ -35,7 +35,7 @@ use Modules\Pagamenti\Pagamento;
$module = Module::find($id_module);
if ($module->name == 'Ddt di vendita') {
if ($module->getTranslation('name') == 'Ddt di vendita') {
$dir = 'entrata';
} else {
$dir = 'uscita';
@ -82,7 +82,7 @@ switch (filter('op')) {
}
// Leggo la descrizione del pagamento
$pagamento = Pagamento::find($idpagamento)->name;
$pagamento = Pagamento::find($idpagamento)->getTranslation('name');
$ddt->data = post('data');
$ddt->numero_esterno = $numero_esterno;
@ -323,7 +323,7 @@ switch (filter('op')) {
$ddt->save();
$evadi_qta_parent = true;
if ($documento->tipo->name == 'Ddt in uscita' || $documento->tipo->name == 'Ddt in entrata') {
if ($documento->tipo->getTranslation('name') == 'Ddt in uscita' || $documento->tipo->getTranslation('name') == 'Ddt in entrata') {
$evadi_qta_parent = false;
}
@ -336,11 +336,11 @@ switch (filter('op')) {
// Aggiornamento seriali dalla riga dell'ordine
if ($copia->isArticolo()) {
if ($documento->tipo->name == 'Ddt in uscita' || $documento->tipo->name == 'Ddt in entrata') {
if ($documento->tipo->getTranslation('name') == 'Ddt in uscita' || $documento->tipo->getTranslation('name') == 'Ddt in entrata') {
// TODO: estrarre il listino corrispondente se presente
$originale = ArticoloOriginale::find($riga->idarticolo);
$prezzo = $documento->tipo->name == 'Ddt in entrata' ? $originale->prezzo_vendita : $originale->prezzo_acquisto;
$prezzo = $documento->tipo->getTranslation('name') == 'Ddt in entrata' ? $originale->prezzo_vendita : $originale->prezzo_acquisto;
if ($dir == 'entrata') {
$id_iva = ($ddt->anagrafica->idiva_vendite ?: setting('Iva predefinita'));
} else {
@ -473,7 +473,7 @@ switch (filter('op')) {
*/
case 'completa_trasporto':
$tipo = Tipo::where('dir', '!=', $ddt->direzione)->first();
$stato = (new Stato())->getByName('Evaso')->id_record;
$stato = (new Stato())->getByField('name', 'Evaso');
// Duplicazione DDT
$id_segment = post('id_segment');
@ -521,7 +521,7 @@ switch (filter('op')) {
$ddt->save();
$id_record = $copia->id;
$id_module = $ddt->direzione == 'entrata' ? (new Module())->getByName('Ddt di acquisto')->id_record : (new Module())->getByName('Ddt di vendita')->id_record;
$id_module = $ddt->direzione == 'entrata' ? (new Module())->getByField('name', 'Ddt di acquisto')->id_record : (new Module())->getByField('name', 'Ddt di vendita');
break;
@ -532,7 +532,7 @@ switch (filter('op')) {
$new->numero = DDT::getNextNumero($new->data, $dir, $id_segment);
$new->numero_esterno = DDT::getNextNumeroSecondario($new->data, $dir, $new->id_segment);
$stato = (new Stato())->getByName('Bozza')->id_record;
$stato = (new Stato())->getByField('name', 'Bozza');
$new->stato()->associate($stato);
$new->save();
@ -736,7 +736,7 @@ if (!empty($id_record) && setting('Cambia automaticamente stato ordini fatturati
$rs = $dbo->fetchArray('SELECT `idordine` FROM `dt_righe_ddt` WHERE `idddt`='.prepare($id_record).' AND `idordine`!=0');
for ($i = 0; $i < sizeof($rs); ++$i) {
$stato = (new StatoOrdine())->getByName(get_stato_ordine($rs[$i]['idordine']))->id_record;
$stato = (new StatoOrdine())->getByField('name', get_stato_ordine($rs[$i]['idordine']));
$dbo->query('UPDATE `or_ordini` SET `idstatoordine`='.prepare($stato).'") WHERE `id` = '.prepare($rs[$i]['idordine']));
}
}

View File

@ -24,17 +24,17 @@ use Models\Module;
$module = Module::find($id_module);
if ($module->name == 'Ddt di vendita') {
if ($module->getTranslation('name') == 'Ddt di vendita') {
$dir = 'entrata';
$id_tipoddt = (new Tipo())->getByName('Ddt in uscita')->id_record;
$id_tipoddt = (new Tipo())->getByField('name', 'Ddt in uscita');
$tipo_anagrafica = tr('Cliente');
$label = tr('Destinatario');
} else {
$dir = 'uscita';
$id_tipoddt = (new Tipo())->getByName('Ddt in entrata')->id_record;
$id_tipoddt = (new Tipo())->getByField('name', 'Ddt in entrata');
$tipo_anagrafica = tr('Fornitore');
$label = tr('Mittente');
@ -56,7 +56,7 @@ $id_anagrafica = !empty(get('idanagrafica')) ? get('idanagrafica') : '';
</div>
<div class="col-md-6">
{[ "type": "select", "label": "<?php echo $label; ?>", "name": "idanagrafica", "id": "idanagrafica_add", "required": 1, "value": "<?php echo $id_anagrafica; ?>", "ajax-source": "clienti_fornitori", "icon-after": "add|<?php echo (new Module())->getByName('Anagrafiche')->id_record; ?>|tipoanagrafica=<?php echo $tipo_anagrafica; ?>" ]}
{[ "type": "select", "label": "<?php echo $label; ?>", "name": "idanagrafica", "id": "idanagrafica_add", "required": 1, "value": "<?php echo $id_anagrafica; ?>", "ajax-source": "clienti_fornitori", "icon-after": "add|<?php echo (new Module())->getByField('name', 'Anagrafiche'); ?>|tipoanagrafica=<?php echo $tipo_anagrafica; ?>" ]}
</div>
<!-- il campo idtipoddt può essere anche rimosso -->
@ -67,7 +67,7 @@ $id_anagrafica = !empty(get('idanagrafica')) ? get('idanagrafica') : '';
<div class="row">
<div class="col-md-6">
{[ "type": "select", "label": "<?php echo tr('Causale trasporto'); ?>", "name": "idcausalet", "required": 1, "value": "<?php echo $id_causalet; ?>", "ajax-source": "causali", "icon-after": "add|<?php echo (new Module())->getByName('Causali')->id_record; ?>|||" ]}
{[ "type": "select", "label": "<?php echo tr('Causale trasporto'); ?>", "name": "idcausalet", "required": 1, "value": "<?php echo $id_causalet; ?>", "ajax-source": "causali", "icon-after": "add|<?php echo (new Module())->getByField('name', 'Causali'); ?>|||" ]}
</div>
<div class="col-md-6">

View File

@ -46,7 +46,7 @@ foreach ($rs as $r) {
$result = [];
$module = ($r['dir'] == 'uscita') ? 'Ddt di acquisto' : 'Ddt di vendita';
$link_id = (new Module())->getByName($module)->id_record;
$link_id = (new Module())->getByField('name', $module);
$numero = empty($r['numero_esterno']) ? $r['numero'] : $r['numero_esterno'];

View File

@ -35,7 +35,7 @@ if ($module['name'] == 'Ddt di vendita') {
}
// Segmenti
$id_fatture = (new Module())->getByName($module_fatture)->id_record;
$id_fatture = (new Module())->getByField('name', $module_fatture);
if (!isset($_SESSION['module_'.$id_fatture]['id_segment'])) {
$segments = Modules::getSegments($id_fatture);
$_SESSION['module_'.$id_fatture]['id_segment'] = isset($segments[0]['id']) ? $segments[0]['id'] : null;
@ -55,7 +55,7 @@ switch (post('op')) {
// Informazioni della fattura
$tipo_documento = Tipo::where('id', post('idtipodocumento'))->first();
$stato_documenti_accodabili = (new Stato())->getByName('Bozza')->id_record;
$stato_documenti_accodabili = (new Stato())->getByField('name', 'Bozza');
$accodare = post('accodare');
$data = date('Y-m-d');

View File

@ -21,7 +21,7 @@ use Models\Module;
include_once __DIR__.'/../../core.php';
$id_module_collegamento = $ddt->direzione == 'entrata' ? (new Module())->getByName('Ddt di acquisto')->id_record : (new Module())->getByName('Ddt di vendita')->id_record;
$id_module_collegamento = $ddt->direzione == 'entrata' ? (new Module())->getByField('name', 'Ddt di acquisto')->id_record : (new Module())->getByField('name', 'Ddt di vendita');
// Informazioni sui movimenti interni
if (!empty($ddt->id_ddt_trasporto_interno)) {

View File

@ -28,7 +28,7 @@ $tipo_documento_finale = Fattura::class;
$module = Module::find($id_module);
if ($module->name == 'Ddt di vendita') {
if ($module->getTranslation('name') == 'Ddt di vendita') {
$final_module = 'Fatture di vendita';
$dir = 'entrata';
} else {

View File

@ -28,7 +28,7 @@ $block_edit = $record['flag_completato'];
$module = Module::find($id_module);
if ($module->name == 'Ddt di acquisto') {
if ($module->getTranslation('name') == 'Ddt di acquisto') {
$dir = 'uscita';
} else {
$dir = 'entrata';
@ -168,8 +168,8 @@ echo '
// Conteggio numero articoli ddt in uscita
$articolo = $dbo->fetchArray('SELECT `mg_articoli`.`id` FROM ((`mg_articoli` INNER JOIN `dt_righe_ddt` ON `mg_articoli`.`id`=`dt_righe_ddt`.`idarticolo`) INNER JOIN `dt_ddt` ON `dt_ddt`.`id`=`dt_righe_ddt`.`idddt`) WHERE `dt_ddt`.`id`='.prepare($id_record));
$id_modulo_anagrafiche = (new Module())->getByName('Anagrafiche')->id_record;
$id_plugin_sedi = (new Plugin())->getByName('Sedi')->id_record;
$id_modulo_anagrafiche = (new Module())->getByField('name', 'Anagrafiche');
$id_plugin_sedi = (new Plugin())->getByField('name', 'Sedi');
if ($dir == 'entrata') {
echo '
<div class="col-md-6">
@ -349,7 +349,7 @@ echo '
<div class="panel-body">
<div class="row">
<div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Aspetto beni'); ?>", "name": "idaspettobeni", "value": "$idaspettobeni$", "ajax-source": "aspetto-beni", "icon-after": "add|<?php echo (new Module())->getByName('Aspetto beni')->id_record;; ?>|||<?php echo $block_edit ? 'disabled' : ''; ?>" ]}
{[ "type": "select", "label": "<?php echo tr('Aspetto beni'); ?>", "name": "idaspettobeni", "value": "$idaspettobeni$", "ajax-source": "aspetto-beni", "icon-after": "add|<?php echo (new Module())->getByField('name', 'Aspetto beni');; ?>|||<?php echo $block_edit ? 'disabled' : ''; ?>" ]}
</div>
<div class="col-md-3">
@ -358,7 +358,7 @@ echo '
echo Modules::link('Causali', $record['idcausalet'], null, null, 'class="pull-right"');
}
?>
{[ "type": "select", "label": "<?php echo tr('Causale trasporto'); ?>", "name": "idcausalet", "required": 1, "value": "$idcausalet$", "ajax-source": "causali", "icon-after": "add|<?php echo(new Module())->getByName('Causali')->id_record;; ?>|||<?php echo $block_edit ? 'disabled' : ''; ?>", "help": "<?php echo tr('Definisce la causale del trasporto'); ?>" ]}
{[ "type": "select", "label": "<?php echo tr('Causale trasporto'); ?>", "name": "idcausalet", "required": 1, "value": "$idcausalet$", "ajax-source": "causali", "icon-after": "add|<?php echo(new Module())->getByField('name', 'Causali');; ?>|||<?php echo $block_edit ? 'disabled' : ''; ?>", "help": "<?php echo tr('Definisce la causale del trasporto'); ?>" ]}
</div>
<div class="col-md-3">
@ -388,7 +388,7 @@ $esterno = $dbo->selectOne('dt_spedizione', 'esterno', [
'id' => $record['idspedizione'],
])['esterno'];
?>
{[ "type": "select", "label": "<?php echo tr('Vettore'); ?>", "name": "idvettore", "ajax-source": "vettori", "value": "$idvettore$", "disabled": <?php echo empty($esterno) || (!empty($esterno) && !empty($record['idvettore'])) ? 1 : 0; ?>, "required": <?php echo !empty($esterno) ?: 0; ?>, "icon-after": "add|<?php echo (new Module())->getByName('Anagrafiche')->id_record;; ?>|tipoanagrafica=Vettore&readonly_tipo=1|btn_idvettore|<?php echo ($esterno and (intval(!$record['flag_completato']) || empty($record['idvettore']))) ? '' : 'disabled'; ?>", "class": "<?php echo empty($record['idvettore']) ? 'unblockable' : ''; ?>" ]}
{[ "type": "select", "label": "<?php echo tr('Vettore'); ?>", "name": "idvettore", "ajax-source": "vettori", "value": "$idvettore$", "disabled": <?php echo empty($esterno) || (!empty($esterno) && !empty($record['idvettore'])) ? 1 : 0; ?>, "required": <?php echo !empty($esterno) ?: 0; ?>, "icon-after": "add|<?php echo (new Module())->getByField('name', 'Anagrafiche');; ?>|tipoanagrafica=Vettore&readonly_tipo=1|btn_idvettore|<?php echo ($esterno and (intval(!$record['flag_completato']) || empty($record['idvettore']))) ? '' : 'disabled'; ?>", "class": "<?php echo empty($record['idvettore']) ? 'unblockable' : ''; ?>" ]}
</div>
<div class="col-md-3">
@ -575,7 +575,7 @@ if (!$block_edit) {
</div>
<div class="col-md-4">
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "id_articolo", "value": "", "ajax-source": "articoli", "select-options": {"permetti_movimento_a_zero": '.($dir == 'entrata' ? 0 : 1).', "idsede_partenza": '.intval($ddt->idsede_partenza).', "idsede_destinazione": '.intval($ddt->idsede_destinazione).', "idanagrafica": '.$ddt->idanagrafica.', "dir": "'.$dir.'", "idagente": '.$ddt->idagente.'}, "icon-after": "add|'.(new Module())->getByName('Articoli')->id_record.'" ]}
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "id_articolo", "value": "", "ajax-source": "articoli", "select-options": {"permetti_movimento_a_zero": '.($dir == 'entrata' ? 0 : 1).', "idsede_partenza": '.intval($ddt->idsede_partenza).', "idsede_destinazione": '.intval($ddt->idsede_destinazione).', "idanagrafica": '.$ddt->idanagrafica.', "dir": "'.$dir.'", "idagente": '.$ddt->idagente.'}, "icon-after": "add|'.(new Module())->getByField('name', 'Articoli').'" ]}
</div>
<div class="col-md-3" style="margin-top: 25px">

View File

@ -229,7 +229,7 @@ foreach ($righe as $riga) {
// Iva
echo '
<br><small class="'.(($riga->aliquota->deleted_at) ? 'text-red' : '').' text-muted">'.$riga->aliquota->name.(($riga->aliquota->esente) ? ' ('.$riga->aliquota->codice_natura_fe.')' : null).'</small>
<br><small class="'.(($riga->aliquota->deleted_at) ? 'text-red' : '').' text-muted">'.$riga->aliquota->getTranslation('name').(($riga->aliquota->esente) ? ' ('.$riga->aliquota->codice_natura_fe.')' : null).'</small>
</td>';
}
@ -657,10 +657,10 @@ function aggiornaInline(id) {
}
init();';
if (Plugin::find((new Plugin())->getByName('Distinta base')->id_record)) {
if (Plugin::find((new Plugin())->getByField('name', 'Distinta base'))) {
echo '
async function viewDistinta(id_articolo) {
openModal("'.tr('Distinta base').'", "'.Plugin::find((new Plugin())->getByName('Distinta base')->id_record)->fileurl('view.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&id_articolo=" + id_articolo);
openModal("'.tr('Distinta base').'", "'.Plugin::find((new Plugin())->getByField('name', 'Distinta base'))->fileurl('view.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&id_articolo=" + id_articolo);
}';
}
echo '

View File

@ -60,7 +60,7 @@ class DDT extends Document
$model = new static();
$user = \Auth::user();
$stato_documento = (new Stato())->getByName('Bozza')->id_record;
$stato_documento = (new Stato())->getByField('name', 'Bozza');
$direzione = $tipo_documento->dir;
$id_segment = $id_segment ?: getSegmentPredefined($model->getModule()->id);
@ -130,12 +130,12 @@ class DDT extends Document
$stati = Stato::where('is_fatturabile', 1)->get();
foreach ($stati as $stato) {
$stati_importabili[] = $stato->name;
$stati_importabili[] = $stato->getTranslation('name');
}
$causale = $database->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(\App::getLang()).') WHERE `dt_causalet`.`id` = '.prepare($this->idcausalet));
return $causale['is_importabile'] && in_array($this->stato->name, $stati_importabili);
return $causale['is_importabile'] && in_array($this->stato->getTranslation('name'), $stati_importabili);
}
public function getReversedAttribute()
@ -243,7 +243,7 @@ class DDT extends Document
$descrizione = $parziale_fatturato ? 'Parzialmente fatturato' : 'Fatturato';
}
$stato = (new Stato())->getByName($descrizione)->id_record;
$stato = (new Stato())->getByField('name', $descrizione);
$this->stato()->associate($stato);
$this->save();
}
@ -305,7 +305,7 @@ class DDT extends Document
public function getReferenceName()
{
return $this->tipo->name;
return $this->tipo->getTranslation('name');
}
public function getReferenceNumber()

View File

@ -21,45 +21,29 @@ namespace Modules\DDT;
use Common\SimpleModelTrait;
use Illuminate\Database\Eloquent\Model;
use Traits\RecordTrait;
class Stato extends Model
{
use SimpleModelTrait;
use RecordTrait;
protected $table = 'dt_statiddt';
protected static $translated_fields = [
'name',
];
public function ddt()
{
return $this->hasMany(DDT::class, 'idstatoddt');
}
/**
* Ritorna l'attributo name dello stato del ddt.
*
* @return string
*/
public function getNameAttribute()
public function getModuleAttribute()
{
return database()->table($this->table.'_lang')
->select('name')
->where('id_record', '=', $this->id)
->where('id_lang', '=', \App::getLang())
->first()->name;
return '';
}
public static function getTranslatedFields(){
return self::$translated_fields;
}
/**
* Ritorna l'id dello stato a partire dal nome.
*
* @param string $name il nome da ricercare
*
* @return \Illuminate\Support\Collection
*/
public function getByName($name)
{
return database()->table($this->table.'_lang')
->select('id_record')
->where('name', '=', $name)
->where('id_lang', '=', \App::getLang())
->first();
}
}

View File

@ -21,45 +21,29 @@ namespace Modules\DDT;
use Common\SimpleModelTrait;
use Illuminate\Database\Eloquent\Model;
use Traits\RecordTrait;
class Tipo extends Model
{
use SimpleModelTrait;
use RecordTrait;
protected $table = 'dt_tipiddt';
protected static $translated_fields = [
'name',
];
public function ddt()
{
return $this->hasMany(DDT::class, 'idtipoddt');
}
/**
* Ritorna l'attributo name del tipo ddt.
*
* @return string
*/
public function getNameAttribute()
public function getModuleAttribute()
{
return database()->table($this->table.'_lang')
->select('name')
->where('id_record', '=', $this->id)
->where('id_lang', '=', \App::getLang())
->first()->name;
return '';
}
public static function getTranslatedFields(){
return self::$translated_fields;
}
/**
* Ritorna l'id del tipo ddt a partire dal nome.
*
* @param string $name il nome da ricercare
*
* @return \Illuminate\Support\Collection
*/
public function getByName($name)
{
return database()->table($this->table.'_lang')
->select('id_record')
->where('name', '=', $name)
->where('id_lang', '=', \App::getLang())
->first();
}
}

View File

@ -30,7 +30,7 @@ switch (post('op')) {
$template = Template::build($module, $id_account);
$id_record = $dbo->lastInsertedID();
$template->name = $name;
$template->setTranslation('name', $name);
$template->subject = $subject;
$template->save();
@ -39,7 +39,7 @@ switch (post('op')) {
break;
case 'update':
$template->name = post('name');
$template->setTranslation('name', post('name'));
$template->id_account = post('smtp');
$template->icon = post('icon');
$template->tipo_reply_to = post('tipo_reply_to');

View File

@ -45,7 +45,7 @@ if (!$record['predefined']) {
</div>
<div class="col-md-4">
{[ "type": "span", "label": "<?php echo tr('Modulo del template'); ?>", "name": "module", "values": "query=SELECT `zz_modules`.`id`, `title` AS descrizione FROM `zz_modules` LEFT JOIN `zz_modules_lang` ON (`zz_modules`.`id` = `zz_modules_lang`.`id_record` AND `zz_modules_lang`.`id_lang` = <?php echo prepare(\App::getLang()); ?>) WHERE `enabled` = 1", "value": "<?php echo Module::find($record['id_module'])->title; ?>" ]}
{[ "type": "span", "label": "<?php echo tr('Modulo del template'); ?>", "name": "module", "values": "query=SELECT `zz_modules`.`id`, `title` AS descrizione FROM `zz_modules` LEFT JOIN `zz_modules_lang` ON (`zz_modules`.`id` = `zz_modules_lang`.`id_record` AND `zz_modules_lang`.`id_lang` = <?php echo prepare(\App::getLang()); ?>) WHERE `enabled` = 1", "value": "<?php echo Module::find($record['id_module'])->getTranslation('title'); ?>" ]}
</div>
</div>
@ -187,7 +187,7 @@ if (!empty($newsletters[0])) {
foreach ($newsletters as $newsletter) {
echo '
<li>'.Modules::link('Newsletter', $newsletter->id, $newsletter->name, null, '').'</li>';
<li>'.Modules::link('Newsletter', $newsletter->id, $newsletter->getTranslation('name'), null, '').'</li>';
}
echo '

View File

@ -25,15 +25,23 @@ use Illuminate\Database\Eloquent\SoftDeletes;
use Models\Module;
use Models\PrintTemplate;
use Traits\LocalPoolTrait;
use Traits\RecordTrait;
class Template extends Model
{
use SimpleModelTrait;
use LocalPoolTrait;
use SoftDeletes;
use RecordTrait;
protected $table = 'em_templates';
protected static $translated_fields = [
'name',
'body',
'subject',
];
public function getVariablesAttribute()
{
$dbo = $database = database();
@ -71,136 +79,17 @@ class Template extends Model
return $this->belongsToMany(PrintTemplate::class, 'em_print_template', 'id_template', 'id_print');
}
/**
* Ritorna l'attributo name del template.
*
* @return string
*/
public function getNameAttribute()
{
return database()->table($this->table.'_lang')
->select('name')
->where('id_record', '=', $this->id)
->where('id_lang', '=', \App::getLang())
->first()->name;
}
/**
* Imposta l'attributo name della lista.
*/
public function setNameAttribute($value)
{
$table = database()->table($this->table.'_lang');
$translated = $table
->where('id_record', '=', $this->id)
->where('id_lang', '=', \App::getLang());
if ($translated->count() > 0) {
$translated->update([
'name' => $value
]);
} else {
$table->insert([
'id_record' => $this->id,
'id_lang' => \App::getLang(),
'name' => $value
]);
}
}
/**
* Ritorna l'attributo subject del template.
*
* @return string
*/
public function getSubjectAttribute()
{
return database()->table($this->table.'_lang')
->select('subject')
->where('id_record', '=', $this->id)
->where('id_lang', '=', \App::getLang())
->first()->subject;
}
/**
* Imposta l'attributo subject del template.
*/
public function setSubjectAttribute($value)
{
$table = database()->table($this->table.'_lang');
$translated = $table
->where('id_record', '=', $this->id)
->where('id_lang', '=', \App::getLang());
if ($translated->count() > 0) {
$translated->update([
'subject' => $value
]);
} else {
$table->insert([
'id_record' => $this->id,
'id_lang' => \App::getLang(),
'subject' => $value
]);
}
}
/**
* Ritorna l'attributo body del template.
*
* @return string
*/
public function getBodyAttribute()
{
return database()->table($this->table.'_lang')
->select('body')
->where('id_record', '=', $this->id)
->where('id_lang', '=', \App::getLang())
->first()->body;
}
/**
* Imposta l'attributo body del template.
*/
public function setBodyAttribute($value)
{
$table = database()->table($this->table.'_lang');
$translated = $table
->where('id_record', '=', $this->id)
->where('id_lang', '=', \App::getLang());
if ($translated->count() > 0) {
$translated->update([
'body' => $value
]);
} else {
$table->insert([
'id_record' => $this->id,
'id_lang' => \App::getLang(),
'body' => $value
]);
}
}
/**
* Ritorna l'id del template a partire dal nome.
*
* @param string $name il nome da ricercare
*
* @return \Illuminate\Support\Collection
*/
public function getByName($name)
{
return database()->table($this->table.'_lang')
->select('id_record')
->where('name', '=', $name)
->where('id_lang', '=', \App::getLang())
->first();
}
public function translations()
{
return $this->hasMany(TemplateLang::class, 'id');
}
public function getModuleAttribute()
{
return 'Template email';
}
public static function getTranslatedFields(){
return self::$translated_fields;
}
}

View File

@ -77,7 +77,7 @@ use Modules\Pagamenti\Pagamento;
<?php
$results = (new Pagamento())->getByName(prepare($record['descrizione']))->id_record;
$results = (new Pagamento())->getByField('name', prepare($record['descrizione']));
$numero_data = 1;
foreach ($results as $result) {
}

View File

@ -37,7 +37,7 @@ use Models\Module;
$module = Module::find($id_module);
$op = post('op');
if ($module->name == 'Fatture di vendita') {
if ($module->getTranslation('name') == 'Fatture di vendita') {
$dir = 'entrata';
} else {
$dir = 'uscita';
@ -113,7 +113,7 @@ switch ($op) {
WHERE
`co_statidocumento_lang`.`name` = "Emessa" AND `co_tipidocumento`.`dir` = "entrata" AND `co_documenti`.`id_segment`='.$fattura->id_segment);
if ((setting('Data emissione fattura automatica') == 1) && ($dir == 'entrata') && ($stato->id == (new Stato())->getByName('Emessa')->id_record) && Carbon::parse($data)->lessThan(Carbon::parse($data_fattura_precedente['datamax'])) && (!empty($data_fattura_precedente['datamax']))) {
if ((setting('Data emissione fattura automatica') == 1) && ($dir == 'entrata') && ($stato->id == (new Stato())->getByField('name', 'Emessa')) && Carbon::parse($data)->lessThan(Carbon::parse($data_fattura_precedente['datamax'])) && (!empty($data_fattura_precedente['datamax']))) {
$fattura->data = $data_fattura_precedente['datamax'];
$fattura->data_competenza = $data_fattura_precedente['datamax'];
flash()->info(tr('Data di emissione aggiornata, come da impostazione!'));
@ -313,7 +313,7 @@ switch ($op) {
// Elenco fatture in stato Bozza per il cliente
case 'fatture_bozza':
$id_anagrafica = post('id_anagrafica');
$stato = (new Stato())->getByName('Bozza')->id_record;
$stato = (new Stato())->getByField('name', 'Bozza');
$fatture = Fattura::vendita()
->where('idanagrafica', $id_anagrafica)
@ -332,8 +332,8 @@ switch ($op) {
// Elenco fatture Scadute per il cliente
case 'fatture_scadute':
$id_anagrafica = post('id_anagrafica');
$stato1 = (new Stato())->getByName('Emessa')->id_record;
$stato2 = (new Stato())->getByName('Parzialmente pagato')->id_record;
$stato1 = (new Stato())->getByField('name', 'Emessa');
$stato2 = (new Stato())->getByField('name', 'Parzialmente pagato');
$fatture = Fattura::vendita()
->select('*', 'co_documenti.id AS id', 'co_documenti.data AS data')
@ -406,10 +406,10 @@ switch ($op) {
case 'reopen':
if (!empty($id_record)) {
$stato = (new Stato())->getByName('Bozza')->id_record;
$stato = (new Stato())->getByField('name', 'Bozza');
$fattura->stato()->associate($stato);
$fattura->save();
$stato = (new Stato())->getByName('Emessa')->id_record;
$stato = (new Stato())->getByField('name', 'Emessa');
$fattura->stato()->associate($stato);
$fattura->save();
flash()->info(tr('Fattura riaperta!'));
@ -909,7 +909,7 @@ switch ($op) {
$autofattura->save();
$riga = Riga::build($autofattura);
$riga->descrizione = $tipo->name;
$riga->descrizione = $tipo->getTranslation('name');
$riga->id_iva = $iva->id;
$riga->idconto = setting('Conto per autofattura') ?: setting('Conto predefinito fatture di vendita');
$riga->setPrezzoUnitario($totale_imponibile, $iva->id);
@ -918,7 +918,7 @@ switch ($op) {
// Aggiunta tipologia cliente se necessario
if (!$anagrafica->isTipo('Cliente')) {
$tipo_cliente = (new TipoAnagrafica())->getByName('Cliente')->id_record;
$tipo_cliente = (new TipoAnagrafica())->getByField('name', 'Cliente');
$tipi = $anagrafica->tipi->pluck('id')->toArray();
$tipi[] = $tipo_cliente;
@ -929,7 +929,7 @@ switch ($op) {
$fattura->id_autofattura = $autofattura->id;
$fattura->save();
$id_module = (new Module())->getByName('Fatture di vendita')->id_record;
$id_module = (new Module())->getByField('name', 'Fatture di vendita');
$id_record = $autofattura->id;
break;
@ -1045,7 +1045,7 @@ switch ($op) {
if (in_array($idtipodocumento, $tipologie)) {
// Aggiunta tipologia cliente se necessario
if (!$azienda->isTipo('Cliente')) {
$tipo_cliente = (new TipoAnagrafica())->getByName('Cliente')->id_record;
$tipo_cliente = (new TipoAnagrafica())->getByField('name', 'Cliente');
$tipi = $azienda->tipi->pluck('id')->toArray();
$tipi[] = $tipo_cliente;
@ -1168,7 +1168,7 @@ switch ($op) {
break;
case 'cambia_stato':
$stato = Stato::find((new Stato())->getByName('Non valida')->id_record);
$stato = Stato::find((new Stato())->getByField('name', 'Non valida'));
$fattura->stato()->associate($stato);
$fattura->save();

View File

@ -23,7 +23,7 @@ use Modules\Fatture\Tipo;
$module = Module::find($id_module);
if ($module->name == 'Fatture di vendita') {
if ($module->getTranslation('name') == 'Fatture di vendita') {
$dir = 'entrata';
$tipo_anagrafica = tr('Cliente');
} else {
@ -63,7 +63,7 @@ $idtipodocumento = Tipo::where('predefined', 1)->where('dir', $dir)->first()->id
</div>
<div class="col-md-6">
{[ "type": "select", "label": "<?php echo $tipo_anagrafica; ?>", "name": "idanagrafica", "id": "idanagrafica_add", "required": 1, "ajax-source": "<?php echo $module->name == 'Fatture di vendita' ? 'clienti' : 'fornitori'; ?>", "value": "<?php echo $id_anagrafica; ?>", "icon-after": "add|<?php echo (new Module())->getByName('Anagrafiche')->id_record; ?>|tipoanagrafica=<?php echo $tipo_anagrafica; ?>" ]}
{[ "type": "select", "label": "<?php echo $tipo_anagrafica; ?>", "name": "idanagrafica", "id": "idanagrafica_add", "required": 1, "ajax-source": "<?php echo $module->getTranslation('name') == 'Fatture di vendita' ? 'clienti' : 'fornitori'; ?>", "value": "<?php echo $id_anagrafica; ?>", "icon-after": "add|<?php echo (new Module())->getByField('name', 'Anagrafiche'); ?>|tipoanagrafica=<?php echo $tipo_anagrafica; ?>" ]}
</div>
</div>

View File

@ -23,9 +23,9 @@ use Modules\Fatture\Fattura;
use Models\Module;
$module = Module::find($id_module);
$module_interventi = Module::find((new Module())->getByName('Interventi')->id_record);
$module_interventi = Module::find((new Module())->getByField('name', 'Interventi'));
if ($module->name == 'Fatture di vendita') {
if ($module->getTranslation('name') == 'Fatture di vendita') {
$dir = 'entrata';
$conti = 'conti-vendite';
} else {

View File

@ -24,7 +24,7 @@ use Models\Module;
use Models\Plugin;
$module = Module::find($id_module);
$id_module_articoli = (new Module())->getByName('Articoli')->id_record;
$id_module_articoli = (new Module())->getByField('name', 'Articoli');
// Controllo sulla direzione monetaria
$uscite = [
@ -33,7 +33,7 @@ $uscite = [
'Ordini fornitore',
];
if (in_array($module->name, $uscite)) {
if (in_array($module->getTranslation('name'), $uscite)) {
$dir = 'uscita';
} else {
$dir = 'entrata';
@ -67,17 +67,17 @@ $data = [
];
// Individuazione delle tabelle interessate
if (in_array($module->name, ['Fatture di vendita', 'Fatture di acquisto'])) {
if (in_array($module->getTranslation('name'), ['Fatture di vendita', 'Fatture di acquisto'])) {
$modulo = 'fat';
} elseif (in_array($module->name, ['Ddt di vendita', 'Ddt di acquisto'])) {
} elseif (in_array($module->getTranslation('name'), ['Ddt di vendita', 'Ddt di acquisto'])) {
$modulo = 'ddt';
$ddt = DDT::find($id_record);
$is_rientrabile = $database->fetchOne('SELECT * FROM `dt_causalet` WHERE `id` = '.prepare($ddt->idcausalet))['is_rientrabile'];
} elseif (in_array($module->name, ['Ordini cliente', 'Ordini fornitore'])) {
} elseif (in_array($module->getTranslation('name'), ['Ordini cliente', 'Ordini fornitore'])) {
$modulo = 'ord';
} elseif ($module->name == 'Interventi') {
} elseif ($module->getTranslation('name') == 'Interventi') {
$modulo = 'int';
} elseif ($module->name == 'Contratti') {
} elseif ($module->getTranslation('name') == 'Contratti') {
$modulo = 'con';
} else {
$modulo = 'veb';
@ -196,7 +196,7 @@ if ($dir == 'entrata') {
</div>';
}
$module_fatture = (new Module())->getByName('Fatture di acquisto')->id_record;
$module_fatture = (new Module())->getByField('name', 'Fatture di acquisto');
echo '
<br>

View File

@ -50,7 +50,7 @@ foreach ($rs as $r) {
$result = [];
$module = ($r['dir'] == 'uscita') ? 'Fatture di acquisto' : 'Fatture di vendita';
$link_id = (new Module())->getByName($module)->id_record;
$link_id = (new Module())->getByField('name', $module);
$numero = empty($r['numero_esterno']) ? $r['numero'] : $r['numero_esterno'];

View File

@ -33,7 +33,7 @@ use Models\Module;
$anagrafica_azienda = Anagrafica::find(setting('Azienda predefinita'));
$stato_emessa = (new Stato())->getByName('Emessa')->id_record;
$stato_emessa = (new Stato())->getByField('name', 'Emessa');
$is_fiscale = $dbo->selectOne('zz_segments', 'is_fiscale', ['id' => $_SESSION['module_'.$id_module]])['is_fiscale'];
switch (post('op')) {
@ -464,7 +464,7 @@ switch (post('op')) {
case 'change-stato':
$list = [];
$new_stato = (new Stato())->getByName('Emessa')->id_record;
$new_stato = (new Stato())->getByField('name', 'Emessa');
$fatture = Fattura::vendita()
->whereIn('id', $id_records)
->orderBy('data')
@ -499,7 +499,7 @@ switch (post('op')) {
$fattura->data_registrazione = post('data_registrazione');
}
if ($stato_precedente->name == 'Bozza' && $fattura->isFiscale()) {
if ($stato_precedente->getTranslation('name') == 'Bozza' && $fattura->isFiscale()) {
$fattura->stato()->associate($new_stato);
$results = $fattura->save();
$message = '';
@ -578,7 +578,7 @@ switch (post('op')) {
$documento = Fattura::find($id);
++$count;
if ($documento->stato->name == 'Bozza') {
if ($documento->stato->getTranslation('name') == 'Bozza') {
$documento->id_segment = post('id_segment');
$documento->save();
++$n_doc;
@ -636,7 +636,7 @@ if (Interaction::isEnabled()) {
];
}
if ($module->name == 'Fatture di vendita') {
if ($module->getTranslation('name') == 'Fatture di vendita') {
$operations['check-bulk'] = [
'text' => '<span><i class="fa fa-list-alt"></i> '.tr('Controlla fatture elettroniche').'</span>',
'data' => [
@ -686,7 +686,7 @@ $operations['export-csv'] = [
],
];
if ($module->name == 'Fatture di vendita') {
if ($module->getTranslation('name') == 'Fatture di vendita') {
$operations['export-bulk'] = [
'text' => '<span class="'.((!extension_loaded('zip')) ? 'text-muted disabled' : '').'"><i class="fa fa-file-archive-o"></i> '.tr('Esporta stampe').'</span>',
'data' => [
@ -731,7 +731,7 @@ $operations['export-xml-bulk'] = [
],
];
if ($module->name == 'Fatture di vendita') {
if ($module->getTranslation('name') == 'Fatture di vendita') {
$operations['genera-xml'] = [
'text' => '<span><i class="fa fa-file-code-o"></i> '.tr('Genera fatture elettroniche').'</span>',
'data' => [
@ -750,7 +750,7 @@ $operations['registrazione-contabile'] = [
'title' => tr('Registrazione contabile'),
'type' => 'modal',
'origine' => 'fatture',
'url' => base_path().'/add.php?id_module='.(new Module())->getByName('Prima nota')->id_record,
'url' => base_path().'/add.php?id_module='.(new Module())->getByField('name', 'Prima nota'),
],
];

View File

@ -20,7 +20,7 @@
include_once __DIR__.'/../../core.php';
use Models\Module;
if ($module->name == 'Fatture di vendita') {
if ($module->getTranslation('name') == 'Fatture di vendita') {
$attributi_visibili = $record['dati_aggiuntivi_fe'] != null || $record['stato'] == 'Bozza';
echo '
@ -69,7 +69,7 @@ if (empty($record['is_fiscale'])) {
</button>';
}
$modulo_prima_nota = (new Module())->getByName('Prima nota')->id_record;
$modulo_prima_nota = (new Module())->getByField('name', 'Prima nota');
$totale_scadenze = $dbo->fetchOne('SELECT SUM(da_pagare - pagato) AS differenza, SUM(da_pagare) AS da_pagare FROM co_scadenziario WHERE iddocumento = '.prepare($id_record));
if (!empty($record['is_fiscale'])) {
$differenza = isset($totale_scadenze) ? $totale_scadenze['differenza'] : 0;

View File

@ -27,7 +27,7 @@ use Util\XML;
$services_enable = Interaction::isEnabled();
if ($module->name == 'Fatture di vendita' && $services_enable) {
if ($module->getTranslation('name') == 'Fatture di vendita' && $services_enable) {
$documenti_scarto = [];
$documenti_invio = [];
$codici_scarto = ['EC02', 'ERR', 'ERVAL', 'NS'];

View File

@ -20,7 +20,7 @@
include_once __DIR__.'/../../core.php';
use Models\Module;
$id_module_fatture_vendita = (new Module())->getByName('Fatture di vendita')->id_record;
$id_module_fatture_vendita = (new Module())->getByField('name', 'Fatture di vendita');
$id_segment = setting('Sezionale per autofatture di vendita');
echo '

View File

@ -145,9 +145,9 @@ if (!empty($fattura->ref_documento) && $fattura->isNota()) {
echo '
<div class="alert alert-info">
<i class="fa fa-info"></i> '.tr('Questa è una _TIPO_ generata dalla seguente fattura', [
'_TIPO_' => $fattura->tipo->name,
'_TIPO_' => $fattura->tipo->getTranslation('name'),
]).':
<b>'.Modules::link($module->name, $fattura->ref_documento, tr('Fattura num. _NUM_ del _DATE_', [
<b>'.Modules::link($module->getTranslation('name'), $fattura->ref_documento, tr('Fattura num. _NUM_ del _DATE_', [
'_NUM_' => $nota->numero_esterno,
'_DATE_' => dateFormat($nota->data),
])).'</b>
@ -155,7 +155,7 @@ if (!empty($fattura->ref_documento) && $fattura->isNota()) {
}
// Ricordo che si sta emettendo una fattura conto terzi
if ($dir == 'entrata' && $fattura->stato->name == 'Bozza') {
if ($dir == 'entrata' && $fattura->stato->getTranslation('name') == 'Bozza') {
if ($fattura->is_fattura_conto_terzi) {
echo '
<div class="alert alert-info">
@ -186,7 +186,7 @@ if ($dir == 'entrata') {
$data_odierna = new DateTime();
$differenza = $data_odierna->diff($data_fattura)->days;
if ($fattura->codice_stato_fe == 'NS' && $fattura->stato->name != 'Non valida' && ($differenza > setting('Giorni validità fattura scartata'))) {
if ($fattura->codice_stato_fe == 'NS' && $fattura->stato->getTranslation('name') != 'Non valida' && ($differenza > setting('Giorni validità fattura scartata'))) {
echo '
<div class="alert alert-error">
<i class="fa fa-warning"></i> '.tr("Questa fattura è stata scartata e sono trascorsi i termini di reinvio, è necessario invalidare il documento.").'</b>
@ -316,7 +316,7 @@ $query .= ' ORDER BY `name`';
echo '
<div class="col-md-'.($record['is_fiscale'] ? 2 : 6).'">
{[ "type": "select", "label": "'.tr('Stato').'", "name": "idstatodocumento", "required": 1, "values": "query='.$query.'", "value": "'.$fattura->stato->id.'", "class": "'.(($fattura->stato->name != 'Bozza' && !$abilita_genera) ? '' : 'unblockable').'", "extra": "onchange=\"return cambiaStato()\"" ]}
{[ "type": "select", "label": "'.tr('Stato').'", "name": "idstatodocumento", "required": 1, "values": "query='.$query.'", "value": "'.$fattura->stato->id.'", "class": "'.(($fattura->stato->getTranslation('name') != 'Bozza' && !$abilita_genera) ? '' : 'unblockable').'", "extra": "onchange=\"return cambiaStato()\"" ]}
</div>
</div>
@ -353,9 +353,9 @@ echo '
if (!empty($record['idreferente'])) {
echo Plugins::link('Referenti', $record['idanagrafica'], null, null, 'class="pull-right"');
}
$id_modulo_anagrafiche = (new Module())->getByName('Anagrafiche')->id_record;
$id_modulo_anagrafiche = (new Module())->getByField('name', 'Anagrafiche');
echo '
{[ "type": "select", "label": "'.tr('Referente').'", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].', "idsede_destinazione": '.$record['idsede_destinazione'].'}, "icon-after": "add|'.$id_modulo_anagrafiche.'|id_plugin='.(new Plugin())->getByName('Referenti')->id_record.'&id_parent='.$record['idanagrafica'].'||'.(intval($block_edit) ? 'disabled' : '').'" ]}
{[ "type": "select", "label": "'.tr('Referente').'", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].', "idsede_destinazione": '.$record['idsede_destinazione'].'}, "icon-after": "add|'.$id_modulo_anagrafiche.'|id_plugin='.(new Plugin())->getByField('name', 'Referenti').'&id_parent='.$record['idanagrafica'].'||'.(intval($block_edit) ? 'disabled' : '').'" ]}
</div>';
echo '
@ -363,7 +363,7 @@ echo '
<div class="row">';
// Conteggio numero articoli fatture
$articolo = $dbo->fetchArray('SELECT `mg_articoli`.`id` FROM ((`mg_articoli` INNER JOIN `co_righe_documenti` ON `mg_articoli`.`id`=`co_righe_documenti`.`idarticolo`) INNER JOIN `co_documenti` ON `co_documenti`.`id`=`co_righe_documenti`.`iddocumento`) WHERE `co_documenti`.`id`='.prepare($id_record));
$id_plugin_sedi = (new Plugin())->getByName('Sedi')->id_record;
$id_plugin_sedi = (new Plugin())->getByField('name', 'Sedi');
if ($dir == 'entrata') {
echo '
<div class="col-md-3">
@ -405,7 +405,7 @@ if ($dir == 'entrata') {
<?php if ($record['id_banca_azienda'] != 0) {
echo Modules::link('Banche', $record['id_banca_azienda'], null, null, 'class="pull-right"');
}
$id_module_banche = (new Module())->getByName('Banche')->id_record;
$id_module_banche = (new Module())->getByField('name', 'Banche');
if ($dir == 'entrata') {
echo '
{[ "type": "select", "label": "'.tr('Banca accredito').'", "name": "id_banca_azienda", "ajax-source": "banche", "select-options": '.json_encode(['id_anagrafica' => $anagrafica_azienda->id]).', "value": "$id_banca_azienda$", "icon-after": "add|'.$id_module_banche.'|id_anagrafica='.$anagrafica_azienda->id.'", "extra": "'.(intval($block_edit) ? 'disabled' : '').'" ]}
@ -529,7 +529,7 @@ if ($dir == 'entrata') {
}
echo '
{[ "type": "select", "label": "'.tr("Dichiarazione d'intento").'", "name": "id_dichiarazione_intento", "help": "'.tr('Elenco delle dichiarazioni d\'intento definite all\'interno dell\'anagrafica del cliente').'.", "ajax-source": "dichiarazioni_intento", "select-options": {"idanagrafica": '.$record['idanagrafica'].', "data": "'.$record['data'].'"},"value": "$id_dichiarazione_intento$", "icon-after": "add|'.$id_modulo_anagrafiche.'|id_plugin='.(new Plugin())->getByName('Dichiarazioni d\'intento')->id_record.'&id_parent='.$record['idanagrafica'].'", "extra": "'.((intval($block_edit)) ? 'disabled' : '').'" ]}
{[ "type": "select", "label": "'.tr("Dichiarazione d'intento").'", "name": "id_dichiarazione_intento", "help": "'.tr('Elenco delle dichiarazioni d\'intento definite all\'interno dell\'anagrafica del cliente').'.", "ajax-source": "dichiarazioni_intento", "select-options": {"idanagrafica": '.$record['idanagrafica'].', "data": "'.$record['data'].'"},"value": "$id_dichiarazione_intento$", "icon-after": "add|'.$id_modulo_anagrafiche.'|id_plugin='.(new Plugin())->getByField('name', 'Dichiarazioni d\'intento').'&id_parent='.$record['idanagrafica'].'", "extra": "'.((intval($block_edit)) ? 'disabled' : '').'" ]}
</div>';
}
echo '
@ -578,11 +578,11 @@ if ($record['descrizione_tipo'] == 'Fattura accompagnatoria di vendita') {
<div class="box-body">
<div class="row">
<div class="col-md-3">
{[ "type": "select", "label": "'.tr('Aspetto beni').'", "name": "idaspettobeni", "placeholder": "", "ajax-source": "aspetto-beni", "value": "$idaspettobeni$", "icon-after": "add|'.(new Module())->getByName('Aspetto beni')->id_record.'||'.(($record['stato'] != 'Bozza') ? 'disabled' : '').'" ]}
{[ "type": "select", "label": "'.tr('Aspetto beni').'", "name": "idaspettobeni", "placeholder": "", "ajax-source": "aspetto-beni", "value": "$idaspettobeni$", "icon-after": "add|'.(new Module())->getByField('name', 'Aspetto beni').'||'.(($record['stato'] != 'Bozza') ? 'disabled' : '').'" ]}
</div>
<div class="col-md-3">
{[ "type": "select", "label": "'.tr('Causale trasporto').'", "name": "idcausalet", "placeholder": "", "ajax-source": "causali", "value": "$idcausalet$", "icon-after": "add|'.(new Module())->getByName('Causali')->id_record.'||'.(($record['stato'] != 'Bozza') ? 'disabled' : '').'" ]}
{[ "type": "select", "label": "'.tr('Causale trasporto').'", "name": "idcausalet", "placeholder": "", "ajax-source": "causali", "value": "$idcausalet$", "icon-after": "add|'.(new Module())->getByField('name', 'Causali').'||'.(($record['stato'] != 'Bozza') ? 'disabled' : '').'" ]}
</div>
<div class="col-md-3">
@ -740,10 +740,10 @@ echo '
if ($dir == 'entrata' && !empty($fattura->dichiarazione)) {
$ive_accettate = $dbo->table('co_iva')->where('codice_natura_fe', 'N3.5')->get();
foreach ($ive_accettate as $iva_accettata) {
$descrizione_iva_accettata .= '<li>'.Aliquota::find($iva_accettata->id)->name.'</li>';
$descrizione_iva_accettata .= '<li>'.Aliquota::find($iva_accettata->id)->getTranslation('name').'</li>';
}
if ($fattura->stato->name == 'Bozza') {
if ($fattura->stato->getTranslation('name') == 'Bozza') {
echo '
<div class="alert alert-info">
<i class="fa fa-info"></i> '.tr("La fattura è collegata ad una dichiarazione d'intento con diponibilità residura pari a _MONEY_.", ['_MONEY_' => moneyFormat($diff)]).'<br>'.tr('Per collegare una riga alla dichiarazione è sufficiente specificare come IVA <ul>_IVA_</ul>', ['_IVA_' => $descrizione_iva_accettata]).'</b>
@ -851,7 +851,7 @@ if (!$block_edit) {
</div>
<div class="col-md-4">
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "id_articolo", "value": "", "ajax-source": "articoli", "select-options": {"permetti_movimento_a_zero": '.($dir == 'entrata' ? 0 : 1).', "idsede_partenza": '.intval($fattura->idsede_partenza).', "idsede_destinazione": '.intval($fattura->idsede_destinazione).', "idanagrafica": '.$fattura->idanagrafica.', "dir": "'.$dir.'", "idagente": '.$fattura->idagente.'}, "icon-after": "add|'.(new Module())->getByName('Articoli')->id_record.'" ]}
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "id_articolo", "value": "", "ajax-source": "articoli", "select-options": {"permetti_movimento_a_zero": '.($dir == 'entrata' ? 0 : 1).', "idsede_partenza": '.intval($fattura->idsede_partenza).', "idsede_destinazione": '.intval($fattura->idsede_destinazione).', "idanagrafica": '.$fattura->idanagrafica.', "dir": "'.$dir.'", "idagente": '.$fattura->idagente.'}, "icon-after": "add|'.(new Module())->getByField('name', 'Articoli').'" ]}
</div>
<div class="col-md-3" style="margin-top: 25px">

Some files were not shown because too many files have changed in this diff Show More