From a6faefaa992c5726e128c5462afad53e07ac6734 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Thu, 28 Mar 2024 11:39:26 +0100 Subject: [PATCH] Fix per lingua inglese --- include/common/importa.php | 24 +++++++++++++++++------ modules/anagrafiche/add.php | 4 ++-- modules/ordini/add.php | 8 ++++---- modules/ordini/edit.php | 16 ++++++++++----- modules/ordini/init.php | 14 +++++++------ modules/preventivi/src/Preventivo.php | 9 ++++----- src/HTMLBuilder/Manager/ButtonManager.php | 12 +++++++----- update/2_5.php | 2 +- 8 files changed, 55 insertions(+), 34 deletions(-) diff --git a/include/common/importa.php b/include/common/importa.php index 5d7ca751a..e78b288e7 100755 --- a/include/common/importa.php +++ b/include/common/importa.php @@ -23,6 +23,7 @@ use Modules\DDT\Stato; use Modules\Fatture\Stato as StatoFattura; use Modules\Ordini\Stato as StatoOrdine; use Plugins\ListinoFornitori\DettaglioFornitore; +use Modules\Fatture\Tipo as Tipofattura; // Inizializzazione $documento = $options['documento']; @@ -43,12 +44,15 @@ $id_segment = $_SESSION['module_'.$final_module->id]['id_segment']; $id_iva = $id_iva ?: setting('Iva predefinita'); $righe_totali = $documento->getRighe(); -if ($final_module->getTranslation('name') == 'Interventi') { + +$id_module_interventi = (new Module)->getByField('name', 'Interventi', Models\Locale::getPredefined()->id); +$id_module_ordini_f = (new Module)->getByField('name', 'Ordini fornitore', Models\Locale::getPredefined()->id); +if ($final_module->id == $id_module_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->getTranslation('name') == 'Ordini fornitore') { +} elseif ($final_module->id == $id_module_ordini_f) { $righe = $righe_totali; $righe_evase = collect(); } else { @@ -92,20 +96,28 @@ if (!empty($options['create_document'])) { '; // Opzioni aggiuntive per le Fatture - if (in_array($final_module->getTranslation('name'), ['Fatture di vendita', 'Fatture di acquisto'])) { + $id_module_fatt_vendita = (new Module())->getByField('name', 'Fatture di vendita', Models\Locale::getPredefined()->id); + $id_module_fatt_acquisto = (new Module())->getByField('name', 'Fatture di acquisto', Models\Locale::getPredefined()->id); + $id_module_ddt_vendita = (new Module())->getByField('name', 'Ddt di vendita', Models\Locale::getPredefined()->id); + $id_module_ddt_acquisto = (new Module())->getByField('name', 'Ddt di acquisto', Models\Locale::getPredefined()->id); + if (in_array($final_module->id, [$id_module_fatt_vendita, $id_module_fatt_acquisto])) { $stato_predefinito = (new StatoFattura())->getByField('name', 'Bozza', Models\Locale::getPredefined()->id); + $fatt_differita_acquisto = (new TipoFattura())->getByField('name', 'Fattura differita di acquisto', Models\Locale::getPredefined()->id); + $fatt_differita_vendita = (new TipoFattura())->getByField('name', 'Fattura differita di vendita', Models\Locale::getPredefined()->id); 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(Models\Locale::getDefault()->id).') WHERE `name` = "Nota di credito" AND `dir` = \''.$dir.'\'')['id']; - } 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(Models\Locale::getDefault()->id).') WHERE `name` = '.($dir == 'uscita' ? 'Fattura differita di acquisto' : 'Fattura differita di vendita').' AND `dir` = \''.$dir.'\'')['id']; + } elseif (in_array($original_module->id, [$id_module_ddt_vendita, $id_module_ddt_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(Models\Locale::getDefault()->id).') WHERE `co_tipidocumento`.`id` = '.($dir == 'uscita' ? $fatt_differita_acquisto : $fatt_differita_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(Models\Locale::getDefault()->id).') WHERE `dir` = \''.$dir.'\' AND `predefined` = 1')['id']; } + $id_bozza = (new StatoFattura())->getByField('name', 'Bozza', Models\Locale::getPredefined()->id); + $id_emessa = (new StatoFattura())->getByField('name', 'Emessa', Models\Locale::getPredefined()->id); echo '
- {[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT `co_statidocumento`.`id` as id, `co_statidocumento_lang`.`name` as descrizione FROM `co_statidocumento` LEFT JOIN `co_statidocumento_lang` ON (`co_statidocumento`.`id` = `co_statidocumento_lang`.`id_record` AND `co_statidocumento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `name` IN (\'Emessa\', \'Bozza\')", "value": "'.$stato_predefinito.'"]} + {[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT `co_statidocumento`.`id` as id, `co_statidocumento_lang`.`name` as descrizione FROM `co_statidocumento` LEFT JOIN `co_statidocumento_lang` ON (`co_statidocumento`.`id` = `co_statidocumento_lang`.`id_record` AND `co_statidocumento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `co_statidocumento`.`id` IN ('.$id_bozza.', '.$id_emessa.')", "value": "'.$stato_predefinito.'"]}
diff --git a/modules/anagrafiche/add.php b/modules/anagrafiche/add.php index 63ff07f9b..e3a28840a 100755 --- a/modules/anagrafiche/add.php +++ b/modules/anagrafiche/add.php @@ -24,8 +24,8 @@ include_once __DIR__.'/../../core.php'; $id_nazione_italia = (new Nazione())->getByField('name', 'Italia', Models\Locale::getPredefined()->id); $tipo = get('tipoanagrafica'); -$id_tipo = Tipo::find((new Tipo())->getByField('name', $tipo, Models\Locale::getPredefined()->id))->id; -$id_tipo_azienda = Tipo::find((new Tipo())->getByField('name', 'Azienda', Models\Locale::getPredefined()->id))->id; +$id_tipo = (new Tipo())->getByField('name', $tipo, Models\Locale::getPredefined()->id); +$id_tipo_azienda = (new Tipo())->getByField('name', 'Azienda', Models\Locale::getPredefined()->id); 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(Models\Locale::getDefault()->id).') WHERE `an_tipianagrafiche`.`id`='.prepare($id_tipo)); diff --git a/modules/ordini/add.php b/modules/ordini/add.php index 0bfe104bb..ed2ee9aee 100755 --- a/modules/ordini/add.php +++ b/modules/ordini/add.php @@ -22,15 +22,15 @@ use Models\Module; $module = Module::find($id_module); -if ($module->getTranslation('name') == 'Ordini cliente') { +if ($module->getTranslation('name', \Models\Locale::getPredefined()->id) == 'Ordini cliente') { $dir = 'entrata'; - $tipo_anagrafica = tr('Cliente'); + $tipo_anagrafica = 'Cliente'; $ajax = 'clienti'; } else { $dir = 'uscita'; - $tipo_anagrafica = tr('Fornitore'); + $tipo_anagrafica = 'Fornitore'; $ajax = 'fornitori'; } @@ -50,7 +50,7 @@ $id_anagrafica = !empty(get('idanagrafica')) ? get('idanagrafica') : '';
- {[ "type": "select", "label": "", "name": "idanagrafica", "required": 1, "value": "", "ajax-source": "", "icon-after": "add|getByField('name', 'Anagrafiche', Models\Locale::getPredefined()->id); ?>|tipoanagrafica=&readonly_tipo=1" ]} + {[ "type": "select", "label": "", "name": "idanagrafica", "required": 1, "value": "", "ajax-source": "", "icon-after": "add|getByField('name', 'Anagrafiche', Models\Locale::getPredefined()->id); ?>|tipoanagrafica=&readonly_tipo=1" ]}
diff --git a/modules/ordini/edit.php b/modules/ordini/edit.php index 7c8335a4f..2944a8c18 100755 --- a/modules/ordini/edit.php +++ b/modules/ordini/edit.php @@ -19,11 +19,12 @@ include_once __DIR__.'/../../core.php'; use Models\Module; +use Modules\Ordini\Stato; $block_edit = $record['flag_completato']; $module = Module::find($id_module); -if ($module->getTranslation('name') == 'Ordini cliente') { +if ($module->getTranslation('name', \Models\Locale::getPredefined()->id) == 'Ordini cliente') { $dir = 'entrata'; } else { $dir = 'uscita'; @@ -72,18 +73,23 @@ if ($righe_vuote) { getByField('name', 'Evaso', Models\Locale::getPredefined()->id); + $id_stato_parz_evaso = (new Stato())->getByField('name', 'Parzialmente evaso', Models\Locale::getPredefined()->id); + $id_stato_fatt = (new Stato())->getByField('name', 'Fatturato', Models\Locale::getPredefined()->id); + $id_stato_parz_fatt = (new Stato())->getByField('name', 'Parzialmente fatturato', Models\Locale::getPredefined()->id); + + if ($ordine->stato->id == $id_stato_fatt || $ordine->stato->id == $id_stato_parz_fatt || $ordine->stato->id == $id_stato_evaso || $ordine->stato->id == $id_stato_parz_evaso) { ?> - {[ "type": "select", "label": "", "name": "idstatoordine", "required": 1, "values": "query=SELECT *, `or_statiordine_lang`.`name` as descrizione, `colore` AS _bgcolor_ FROM `or_statiordine` LEFT JOIN `or_statiordine_lang` ON (`or_statiordine_lang`.`id_record` = `or_statiordine`.`id` AND `or_statiordine_lang`.`id_lang` = id); ?>) ORDER BY `name`", "value": "$idstatoordine$", "extra": "readonly", "class": "unblockable" ]} + {[ "type": "select", "label": "", "name": "idstatoordine", "required": 1, "values": "query=SELECT `or_statiordine`.*, `or_statiordine_lang`.`name` as descrizione, `colore` AS _bgcolor_ FROM `or_statiordine` LEFT JOIN `or_statiordine_lang` ON (`or_statiordine_lang`.`id_record` = `or_statiordine`.`id` AND `or_statiordine_lang`.`id_lang` = id); ?>) ORDER BY `name`", "value": "$idstatoordine$", "extra": "readonly", "class": "unblockable" ]} - {[ "type": "select", "label": "", "name": "idstatoordine", "required": 1, "values": "query=SELECT *, `or_statiordine_lang`.`name` as descrizione, `colore` AS _bgcolor_ FROM `or_statiordine` LEFT JOIN `or_statiordine_lang` ON (`or_statiordine_lang`.`id_record` = `or_statiordine`.`id` AND `or_statiordine_lang`.`id_lang` = id); ?>) WHERE (`is_fatturabile` = 0 AND `name` != 'Fatturato' || `name` = 'Accettato') ORDER BY `name`", "value": "$idstatoordine$", "class": "unblockable" ]} + {[ "type": "select", "label": "", "name": "idstatoordine", "required": 1, "values": "query=SELECT `or_statiordine`.*, `or_statiordine_lang`.`name` as descrizione, `colore` AS _bgcolor_ FROM `or_statiordine` LEFT JOIN `or_statiordine_lang` ON (`or_statiordine_lang`.`id_record` = `or_statiordine`.`id` AND `or_statiordine_lang`.`id_lang` = id); ?>) WHERE (`is_fatturabile` = 0 AND `name` != 'Fatturato' || `name` = 'Accettato') ORDER BY `name`", "value": "$idstatoordine$", "class": "unblockable" ]} - {[ "type": "select", "label": "", "name": "idstatoordine", "required": 1, "values": "query=SELECT *, `colore` AS _bgcolor_, `or_statiordine_lang`.`name` as descrizione FROM `or_statiordine` LEFT JOIN `or_statiordine_lang` ON (`or_statiordine_lang`.`id_record` = `or_statiordine`.`id` AND `or_statiordine_lang`.`id_lang` = id); ?>) ORDER BY `name`", "value": "$idstatoordine$", "class": "unblockable" ]} + {[ "type": "select", "label": "", "name": "idstatoordine", "required": 1, "values": "query=SELECT `or_statiordine`.*, `colore` AS _bgcolor_, `or_statiordine_lang`.`name` as descrizione FROM `or_statiordine` LEFT JOIN `or_statiordine_lang` ON (`or_statiordine_lang`.`id_record` = `or_statiordine`.`id` AND `or_statiordine_lang`.`id_lang` = id); ?>) ORDER BY `name`", "value": "$idstatoordine$", "class": "unblockable" ]} diff --git a/modules/ordini/init.php b/modules/ordini/init.php index aa28e9600..30c9891cb 100755 --- a/modules/ordini/init.php +++ b/modules/ordini/init.php @@ -22,21 +22,23 @@ use Modules\Ordini\Ordine; include_once __DIR__.'/../../core.php'; if (isset($id_record)) { - $ordine = Ordine::with('tipo', 'stato')->find($id_record); + $ordine = Ordine::find($id_record); - $record = $dbo->fetchOne('SELECT *, + $record = $dbo->fetchOne('SELECT + `or_ordini`.*, `or_ordini`.`note`, `or_ordini`.`idpagamento`, `or_ordini`.`id` AS idordine, `or_ordini`.`idagente` AS idagente, - `or_statiordine_lang`.`name` AS `stato`, - `or_tipiordine_lang`.`name` AS `descrizione_tipodoc`, + `or_ordini`.`idstatoordine` AS idstatoordine, + `or_statiordine_lang`.`name` AS stato, + `or_tipiordine_lang`.`name` AS descrizione_tipodoc, `an_anagrafiche`.`tipo` AS tipo_anagrafica, `or_statiordine`.`completato` AS flag_completato FROM `or_ordini` - INNER JOIN `or_statiordine` ON `or_ordini`.`idstatoordine`=`or_statiordine`.`id` - LEFT JOIN `or_statiordine_lang` ON `or_statiordine_lang`.`id_record`=`or_statiordine`.`id` + LEFT JOIN `or_statiordine` ON `or_ordini`.`idstatoordine`=`or_statiordine`.`id` + LEFT JOIN `or_statiordine_lang` ON (`or_statiordine_lang`.`id_record`=`or_statiordine`.`id` AND `or_statiordine_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') INNER JOIN `an_anagrafiche` ON `or_ordini`.`idanagrafica`=`an_anagrafiche`.`idanagrafica` INNER JOIN `or_tipiordine` ON `or_ordini`.`idtipoordine`=`or_tipiordine`.`id` LEFT JOIN `or_tipiordine_lang` ON (`or_tipiordine_lang`.`id_record`=`or_tipiordine`.`id` AND `or_tipiordine_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') diff --git a/modules/preventivi/src/Preventivo.php b/modules/preventivi/src/Preventivo.php index 036743f4d..3375c44a5 100755 --- a/modules/preventivi/src/Preventivo.php +++ b/modules/preventivi/src/Preventivo.php @@ -260,9 +260,8 @@ class Preventivo extends Document $qta_evasa = $righe->sum('qta_evasa'); $qta = $righe->sum('qta'); $parziale = $qta != $qta_evasa; - - $stato_attuale = $this->stato; - + $stato = $this->stato; + // Impostazione del nuovo stato if ($qta_evasa == 0) { $descrizione = 'In lavorazione'; @@ -271,11 +270,11 @@ class Preventivo extends Document $descrizione = $parziale ? 'Parzialmente fatturato' : 'Fatturato'; $codice_intervento = 'FAT'; } else { - $descrizione = $this->stato->getTranslation('name'); + $descrizione = $stato->getTranslation('name', \Models\Locale::getPredefined()->id); $codice_intervento = 'OK'; } - $stato = (new Stato())->getByField('name', $descrizione); + $stato = (new Stato())->getByField('name', $descrizione, \Models\Locale::getPredefined()->id); $this->stato()->associate($stato); $this->save(); diff --git a/src/HTMLBuilder/Manager/ButtonManager.php b/src/HTMLBuilder/Manager/ButtonManager.php index 4c1184a47..2e7c6ef03 100755 --- a/src/HTMLBuilder/Manager/ButtonManager.php +++ b/src/HTMLBuilder/Manager/ButtonManager.php @@ -55,11 +55,13 @@ class ButtonManager implements ManagerInterface $print = PrintTemplate::find($options['id']); } - $result = [ - 'link' => \Prints::getHref($options['id'], $options['id_record'], $options['parameters']), - 'title' => tr('Stampa').' '.((strtoupper($print->getTranslation('title')) == $print->getTranslation('title')) ? $print->getTranslation('title') : lcfirst($print->getTranslation('title'))), - 'icon' => $print->icon, - ]; + if (!empty($print)) { + $result = [ + 'link' => \Prints::getHref($options['id'], $options['id_record'], $options['parameters']), + 'title' => tr('Stampa').' '.((strtoupper($print->getTranslation('title')) == $print->getTranslation('title')) ? $print->getTranslation('title') : lcfirst($print->getTranslation('title'))), + 'icon' => $print->icon, + ]; + } } elseif ($options['type'] == 'email') { $template_email = TemplateEmail::find($options['id']); diff --git a/update/2_5.php b/update/2_5.php index cc53facf3..69e28fb54 100644 --- a/update/2_5.php +++ b/update/2_5.php @@ -111,7 +111,7 @@ $traduzioni = [ ['zz_modules_lang', 'Type of tasks', 'Tipi di intervento'], ['zz_modules_lang', 'Tasks status', 'Stati di intervento'], ['zz_modules_lang', 'Accounting', 'Contabilità'], - ['zz_modules_lang', 'Quotes', 'Preventivi'], + ['zz_modules_lang', 'Quotations', 'Preventivi'], ['zz_modules_lang', 'Sales invoices', 'Fatture di vendita'], ['zz_modules_lang', 'Purchase invoices', 'Fatture di acquisto'], ['zz_modules_lang', 'Scheduled payments', 'Scadenzario'],