diff --git a/src/API/App/AppResource.php b/src/API/App/AppResource.php index 151b370c8..7601a4c71 100644 --- a/src/API/App/AppResource.php +++ b/src/API/App/AppResource.php @@ -188,7 +188,9 @@ abstract class AppResource extends Resource implements RetrieveInterface, Create protected function mapModifiedRecords($records) { if ($records instanceof Collection) { - return $records->mapToGroups(fn ($item, $key) => [$item['id'] => $item])->toArray(); + return $records->mapWithKeys(function ($item) { + return [$item['id'] => $item]; + })->toArray(); } return array_reduce($records, function ($accumulator, $item) { diff --git a/src/API/App/v1/Articoli.php b/src/API/App/v1/Articoli.php index bb8c3a286..0a2a7c0bf 100644 --- a/src/API/App/v1/Articoli.php +++ b/src/API/App/v1/Articoli.php @@ -58,12 +58,12 @@ class Articoli extends AppResource `categoria_lang`.`title` AS categoria, `sottocategoria_lang`.`title` AS sottocategoria FROM - `mg_articoli` - LEFT JOIN `mg_articoli_lang` ON (`mg_articoli`.`id` = `mg_articoli_lang`.`id_record` AND `mg_articoli_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') - LEFT JOIN `mg_categorie` as categoria ON (`mg_articoli`.`id_categoria` = `mg_categorie`.`id`) - LEFT JOIN `mg_categorie_lang` as categoria_lang ON (`mg_categorie`.`id` = `mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') - LEFT JOIN `mg_categorie` as sottocategoria ON (`mg_articoli`.`id_sottocategoria` = `mg_categorie`.`id`) - LEFT JOIN `mg_categorie_lang` as sottocategoria_lang ON (`mg_categorie`.`id` = `mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') + `mg_articoli` + LEFT JOIN `mg_articoli_lang` ON (`mg_articoli`.`id` = `mg_articoli_lang`.`id_record` AND `mg_articoli_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') + LEFT JOIN `mg_categorie` as categoria ON (`mg_articoli`.`id_categoria` = `categoria`.`id`) + LEFT JOIN `mg_categorie_lang` as categoria_lang ON (`categoria`.`id` = `categoria_lang`.`id_record` AND `categoria_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') + LEFT JOIN `mg_categorie` as sottocategoria ON (`mg_articoli`.`id_sottocategoria` = `sottocategoria`.`id`) + LEFT JOIN `mg_categorie_lang` as sottocategoria_lang ON (`sottocategoria`.`id` = `sottocategoria_lang`.`id_record` AND `sottocategoria_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `mg_articoli`.`id` = '.prepare($id); diff --git a/src/API/App/v1/Checklists.php b/src/API/App/v1/Checklists.php index 6c6010975..9acd21f7d 100755 --- a/src/API/App/v1/Checklists.php +++ b/src/API/App/v1/Checklists.php @@ -95,11 +95,7 @@ class Checklists extends AppResource ->select('zz_operations.id_record') ->distinct() ->join('zz_modules', 'zz_modules.id', '=', 'zz_operations.id_module') - ->leftJoin('zz_modules_lang', function ($join) { - $join->on('zz_modules.id', '=', 'zz_modules_lang.id_record') - ->where('zz_modules_lang.id_lang', '=', \Models\Locale::getDefault()->id); - }) - ->where('zz_modules_lang.name', '=', 'Interventi') + ->where('zz_modules.name', '=', 'Interventi') ->where('zz_operations.op', '=', 'delete_check') ->where('zz_operations.created_at', '>', $last_sync_at) ->pluck('id_record') diff --git a/src/API/App/v1/Impianti.php b/src/API/App/v1/Impianti.php index 4d2baf710..7131be7d0 100755 --- a/src/API/App/v1/Impianti.php +++ b/src/API/App/v1/Impianti.php @@ -34,11 +34,7 @@ class Impianti extends AppResource ->select('zz_operations.id_record') ->distinct() ->join('zz_modules', 'zz_modules.id', '=', 'zz_operations.id_module') - ->leftJoin('zz_modules_lang', function ($join) { - $join->on('zz_modules.id', '=', 'zz_modules_lang.id_record') - ->where('zz_modules_lang.id_lang', '=', \Models\Locale::getDefault()->id); - }) - ->where('zz_modules_lang.name', '=', 'Impianti') + ->where('zz_modules.name', '=', 'Impianti') ->where('zz_operations.op', '=', 'delete') ->whereNotNull('zz_operations.options') ->where('zz_operations.created_at', '>', $last_sync_at) @@ -77,28 +73,39 @@ class Impianti extends AppResource { // Gestione della visualizzazione dei dettagli del record $query = 'SELECT - `my_impianti`.`id`, - `my_impianti`.`idanagrafica` AS id_cliente, - `my_impianti`.`idsede` AS id_sede, - `my_impianti`.`matricola`, - `my_impianti`.`nome`, - `my_impianti`.`descrizione`, - `my_impianti`.`data` AS data_installazione, - `my_impianti`.`proprietario`, - `my_impianti`.`ubicazione`, - `my_impianti`.`palazzo`, - `my_impianti`.`scala`, - `my_impianti`.`piano`, - `my_impianti`.`interno`, - `my_impianti`.`occupante`, - `categorie_lang`.`title` AS categoria + `impianti`.`id`, + `impianti`.`idanagrafica` AS id_cliente, + `impianti`.`idsede` AS id_sede, + `impianti`.`matricola`, + `impianti`.`nome`, + `impianti`.`descrizione`, + `impianti`.`data` AS data_installazione, + `impianti`.`proprietario`, + `impianti`.`ubicazione`, + `impianti`.`palazzo`, + `impianti`.`scala`, + `impianti`.`piano`, + `impianti`.`interno`, + `impianti`.`occupante`, + `categorie_lang`.`title` AS categoria, `sottocategorie_lang`.`title` AS sottocategoria - FROM `my_impianti` - LEFT JOIN `my_impianti_categorie` ON `my_impianti_categorie`.`id` = `my_impianti`.`id_categoria` - LEFT JOIN `my_impianti_categorie_lang` as categorie_lang ON (`categorie_lang`.`id_record` = `my_impianti_categorie`.`id` AND `categorie_lang`.|lang|) - LEFT JOIN `my_impianti_categorie` as sottocategorie ON (`sottocategorie`.`id` = `my_impianti_categorie`.`id_sottocategoria`) - LEFT JOIN `my_impianti_categorie_lang` as sottocategorie_lang ON (`sottocategorie_lang`.`id_record` = `sottocategorie`.`id` AND `sottocategorie_lang`.|lang|) - WHERE `my_impianti`.`id` = '.prepare($id); + FROM + my_impianti AS impianti + LEFT JOIN + my_impianti_categorie AS categorie + ON categorie.id = impianti.id_categoria + LEFT JOIN + my_impianti_categorie_lang AS categorie_lang + ON categorie_lang.id_record = categorie.id + AND categorie_lang.id_lang = '.prepare(\Models\Locale::getDefault()->id).' + LEFT JOIN + my_impianti_categorie AS sottocategorie + ON sottocategorie.id = impianti.id_sottocategoria + LEFT JOIN + my_impianti_categorie_lang AS sottocategorie_lang + ON sottocategorie_lang.id_record = sottocategorie.id + AND sottocategorie_lang.id_lang = '.prepare(\Models\Locale::getDefault()->id).' + WHERE `impianti`.`id` = '.prepare($id); $record = database()->fetchOne($query); diff --git a/src/API/App/v1/Impostazioni.php b/src/API/App/v1/Impostazioni.php index 73e2be13a..7d41ed5c5 100644 --- a/src/API/App/v1/Impostazioni.php +++ b/src/API/App/v1/Impostazioni.php @@ -30,7 +30,7 @@ class Impostazioni extends AppResource public function getModifiedRecords($last_sync_at) { - $query = 'SELECT `zz_settings`.`id`, `zz_settings`.`updated_at` FROM `zz_settings` LEFT JOIN `zz_settings_lang` ON (`zz_settings`.`id` = `zz_settings_lang`.`id_record` AND `zz_settings_lang`.`id_lang` = '.prepare(\App::getLang()).") WHERE `sezione` = 'Applicazione'"; + $query = 'SELECT `zz_settings`.`id`, `zz_settings`.`updated_at` FROM `zz_settings` LEFT JOIN `zz_settings_lang` ON (`zz_settings`.`id` = `zz_settings_lang`.`id_record` AND `zz_settings_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).") WHERE `sezione` = 'Applicazione'"; // Aggiunta delle impostazioni esterne alla sezione Applicazione $impostazioni_esterne = $this->getImpostazioniEsterne(); diff --git a/src/API/App/v1/Preventivi.php b/src/API/App/v1/Preventivi.php index 002c281bd..9172273e8 100644 --- a/src/API/App/v1/Preventivi.php +++ b/src/API/App/v1/Preventivi.php @@ -57,7 +57,7 @@ class Preventivi extends AppResource implements RetrieveInterface INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `co_preventivi`.`idanagrafica` INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` = `an_tipianagrafiche`.`id` - INNER JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.\App::getLang().") + INNER JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.\Models\Locale::getDefault()->id.") WHERE `an_tipianagrafiche_lang`.`title` = 'Cliente' AND `co_statipreventivi`.`is_pianificabile` = 1 AND `an_anagrafiche`.`deleted_at` IS NULL"; diff --git a/src/API/App/v1/Referenti.php b/src/API/App/v1/Referenti.php index 12a658935..c00de2b98 100644 --- a/src/API/App/v1/Referenti.php +++ b/src/API/App/v1/Referenti.php @@ -39,7 +39,7 @@ class Referenti extends AppResource implements RetrieveInterface INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `an_referenti`.`idanagrafica` INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` = `an_tipianagrafiche`.`id` - LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `an_tipianagrafiche`.`id` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id)." + LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `an_tipianagrafiche`.`id` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).") WHERE `an_tipianagrafiche_lang`.`title` = 'Cliente' AND (an_anagrafiche.deleted_at IS NULL OR an_anagrafiche.idanagrafica IN(SELECT in_interventi.idanagrafica FROM in_interventi))"; diff --git a/src/API/App/v1/SessioniInterventi.php b/src/API/App/v1/SessioniInterventi.php index d6f14a810..b65c56338 100644 --- a/src/API/App/v1/SessioniInterventi.php +++ b/src/API/App/v1/SessioniInterventi.php @@ -35,11 +35,7 @@ class SessioniInterventi extends AppResource ->select('zz_operations.id_record') ->distinct() ->join('zz_modules', 'zz_modules.id', '=', 'zz_operations.id_module') - ->leftJoin('zz_modules_lang', function ($join) { - $join->on('zz_modules.id', '=', 'zz_modules_lang.id_record') - ->where('zz_modules_lang.id_lang', '=', \Models\Locale::getDefault()->id); - }) - ->where('zz_modules_lang.name', '=', 'Interventi') + ->where('zz_modules.name', '=', 'Interventi') ->where('zz_operations.op', '=', 'delete_sessione') ->whereNotNull('zz_operations.options') ->where('zz_operations.created_at', '>', $last_sync_at)