From bc5c8c300122e4a085682d7126854a7fa7e7a975 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Thu, 17 Nov 2022 16:58:59 +0100 Subject: [PATCH 01/14] Aggiunti modelli prima nota per pagamento stipendi --- update/2_4_38.sql | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/update/2_4_38.sql b/update/2_4_38.sql index 12cae9589..2adef1850 100644 --- a/update/2_4_38.sql +++ b/update/2_4_38.sql @@ -53,3 +53,21 @@ HAVING 2=2 ORDER BY TRIM(`ragione_sociale`)" WHERE `name` = 'Anagrafiche'; + +-- Creazione modelli prima nota per liquidazione salari e stipendi +INSERT INTO `co_pianodeiconti3` (`id`, `numero`, `descrizione`, `idpianodeiconti2`, `dir`, `percentuale_deducibile`) VALUES +(NULL, '000080', 'Personale c/Retribuzioni', '8', '', '100.00'), +(NULL, '000090', 'INPS c/Competenza', '8', '', '100.00'), +(NULL, '000090', 'Erario c/Ritenute dipendenti', '5', '', '100.00'); + +INSERT INTO `co_movimenti_modelli` (`id`, `idmastrino`, `nome`, `descrizione`, `idconto`, `totale`) VALUES +(NULL, 3, 'Liquidazione salari e stipendi', 'Liquidazione retribuzione relativa al mese di ...', (SELECT id FROM co_pianodeiconti3 WHERE descrizione = 'Costi salari e stipendi'), '0.0'), +(NULL, 3, 'Liquidazione salari e stipendi', 'Liquidazione retribuzione relativa al mese di ...', (SELECT id FROM co_pianodeiconti3 WHERE descrizione = 'INPS c/Competenza'), '0.0'), +(NULL, 3, 'Liquidazione salari e stipendi', 'Liquidazione retribuzione relativa al mese di ...', (SELECT id FROM co_pianodeiconti3 WHERE descrizione = 'Personale c/Retribuzioni'), '0.0'); + +INSERT INTO `co_movimenti_modelli` (`id`, `idmastrino`, `nome`, `descrizione`, `idconto`, `totale`) VALUES +(NULL, 4, 'Pagamento salari e stipendi', 'Pagamento ai dipendenti delle retribuzioni nette del mese di ...', (SELECT id FROM co_pianodeiconti3 WHERE descrizione = 'Personale c/Retribuzioni'), '0.0'), +(NULL, 4, 'Pagamento salari e stipendi', 'Pagamento ai dipendenti delle retribuzioni nette del mese di ...', (SELECT id FROM co_pianodeiconti3 WHERE descrizione = 'INPS c/Competenza'), '0.0'), +(NULL, 4, 'Pagamento salari e stipendi', 'Pagamento ai dipendenti delle retribuzioni nette del mese di ...', (SELECT id FROM co_pianodeiconti3 WHERE descrizione = 'Erario c/Ritenute dipendenti'), '0.0'), +(NULL, 4, 'Pagamento salari e stipendi', 'Pagamento ai dipendenti delle retribuzioni nette del mese di ...', (SELECT id FROM co_pianodeiconti3 WHERE descrizione = 'Banca C/C'), '0.0'); + From e3d640ae67e62f4730b79474ab3cf87091a5071e Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Thu, 17 Nov 2022 16:59:31 +0100 Subject: [PATCH 02/14] Ottimizzazione query vista prima nota --- update/2_4_38.sql | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/update/2_4_38.sql b/update/2_4_38.sql index 2adef1850..09de4c7c5 100644 --- a/update/2_4_38.sql +++ b/update/2_4_38.sql @@ -71,3 +71,31 @@ INSERT INTO `co_movimenti_modelli` (`id`, `idmastrino`, `nome`, `descrizione`, ` (NULL, 4, 'Pagamento salari e stipendi', 'Pagamento ai dipendenti delle retribuzioni nette del mese di ...', (SELECT id FROM co_pianodeiconti3 WHERE descrizione = 'Erario c/Ritenute dipendenti'), '0.0'), (NULL, 4, 'Pagamento salari e stipendi', 'Pagamento ai dipendenti delle retribuzioni nette del mese di ...', (SELECT id FROM co_pianodeiconti3 WHERE descrizione = 'Banca C/C'), '0.0'); +-- Ottimizzazione query vista prima nota +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'co_documenti.numero_esterno' WHERE `zz_modules`.`name` = 'Prima nota' AND `zz_views`.`name` = 'Rif. fattura'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'an_anagrafiche.ragione_sociale' WHERE `zz_modules`.`name` = 'Prima nota' AND `zz_views`.`name` = 'Controparte'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'co_movimenti.data' WHERE `zz_modules`.`name` = 'Prima nota' AND `zz_views`.`name` = 'Data'; + +UPDATE `zz_modules` SET `options` = " +SELECT + |select| +FROM + `co_movimenti` +INNER JOIN `co_pianodeiconti3` ON `co_movimenti`.`idconto` = `co_pianodeiconti3`.`id` +LEFT JOIN `co_documenti` ON `co_documenti`.`id` = `co_movimenti`.`iddocumento` +LEFT JOIN `an_anagrafiche` ON `co_movimenti`.`id_anagrafica` = `an_anagrafiche`.`idanagrafica` +WHERE + 1=1 AND `primanota` = 1 |date_period(`co_movimenti`.`data`)| +GROUP BY + `idmastrino`, + `primanota`, + `co_movimenti`.`data`, + `numero_esterno`, + `co_movimenti`.`descrizione`, + `an_anagrafiche`.`ragione_sociale` +HAVING + 2=2 +ORDER BY + `co_movimenti`.`data` +DESC" WHERE `name` = 'Prima nota'; + From d78bd0ad9d0d1679298291407b28a863372f59ff Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Thu, 17 Nov 2022 17:00:08 +0100 Subject: [PATCH 03/14] Ottimizzazione query vista ordini cliente --- update/2_4_38.sql | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/update/2_4_38.sql b/update/2_4_38.sql index 09de4c7c5..0d97e3edd 100644 --- a/update/2_4_38.sql +++ b/update/2_4_38.sql @@ -99,3 +99,34 @@ ORDER BY `co_movimenti`.`data` DESC" WHERE `name` = 'Prima nota'; +-- Ottimizzazione query vista ordini cliente +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'or_statiordine.icona' WHERE `zz_modules`.`name` = 'Ordini cliente' AND `zz_views`.`name` = 'icon_Stato'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'or_statiordine.descrizione' WHERE `zz_modules`.`name` = 'Ordini cliente' AND `zz_views`.`name` = 'icon_title_Stato'; +UPDATE `zz_modules` SET `options` = "SELECT + |select| +FROM + `or_ordini` + LEFT JOIN `or_tipiordine` ON `or_ordini`.`idtipoordine` = `or_tipiordine`.`id` + LEFT JOIN `an_anagrafiche` ON `or_ordini`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` + LEFT JOIN (SELECT `idordine`, SUM(`qta` - `qta_evasa`) AS `qta_da_evadere`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`subtotale` - `sconto` + `iva`) AS `totale` FROM `or_righe_ordini` GROUP BY `idordine`) AS righe ON `or_ordini`.`id` = `righe`.`idordine` + LEFT JOIN (SELECT `idordine`, MIN(`data_evasione`) AS `data_evasione` FROM `or_righe_ordini` WHERE (`qta` - `qta_evasa`)>0 GROUP BY `idordine`) AS `righe_da_evadere` ON `righe`.`idordine`=`righe_da_evadere`.`idordine` + LEFT JOIN `or_statiordine` ON `or_statiordine`.`id` = `or_ordini`.`idstatoordine` + LEFT JOIN ( +SELECT GROUP_CONCAT(DISTINCT co_documenti.numero_esterno SEPARATOR ', ') AS info, co_righe_documenti.original_document_id AS idordine FROM co_documenti INNER JOIN co_righe_documenti ON co_documenti.id = co_righe_documenti.iddocumento WHERE original_document_type='Modules\\Ordini\\Ordine' GROUP BY idordine +) AS fattura ON fattura.idordine = or_ordini.id +LEFT JOIN ( +SELECT `zz_operations`.`id_email`, `zz_operations`.`id_record` +FROM `zz_operations` +INNER JOIN `em_emails` ON `zz_operations`.`id_email` = `em_emails`.`id` +INNER JOIN `em_templates` ON `em_emails`.`id_template` = `em_templates`.`id` +INNER JOIN `zz_modules` ON `zz_operations`.`id_module` = `zz_modules`.`id` +WHERE `zz_modules`.`name` = 'Ordini cliente' AND `zz_operations`.`op` = 'send-email' +GROUP BY `zz_operations`.`id_record` +) AS `email` ON `email`.`id_record` = `or_ordini`.`id` +WHERE + 1=1 AND `dir` = 'entrata' |date_period(`or_ordini`.`data`)| +HAVING + 2=2 +ORDER BY + `data` DESC, + CAST(`numero_esterno` AS UNSIGNED) DESC" WHERE `name` = 'Ordini cliente'; \ No newline at end of file From 9325ba926acd140abd9cd97e01b4e869e2363c18 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Thu, 17 Nov 2022 17:00:40 +0100 Subject: [PATCH 04/14] Ottimizzazione query vista ordini fornitore --- update/2_4_38.sql | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/update/2_4_38.sql b/update/2_4_38.sql index 0d97e3edd..75f3edb40 100644 --- a/update/2_4_38.sql +++ b/update/2_4_38.sql @@ -129,4 +129,37 @@ HAVING 2=2 ORDER BY `data` DESC, - CAST(`numero_esterno` AS UNSIGNED) DESC" WHERE `name` = 'Ordini cliente'; \ No newline at end of file + CAST(`numero_esterno` AS UNSIGNED) DESC" WHERE `name` = 'Ordini cliente'; + +-- Ottimizzazione query vista ordini fornitore +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'or_statiordine.icona' WHERE `zz_modules`.`name` = 'Ordini fornitore' AND `zz_views`.`name` = 'icon_Stato'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'or_statiordine.descrizione' WHERE `zz_modules`.`name` = 'Ordini fornitore' AND `zz_views`.`name` = 'icon_title_Stato'; +UPDATE `zz_modules` SET `options` = "SELECT + |select| +FROM + `or_ordini` + LEFT JOIN `or_tipiordine` ON `or_ordini`.`idtipoordine` = `or_tipiordine`.`id` + LEFT JOIN `an_anagrafiche` ON `or_ordini`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` + LEFT JOIN (SELECT `idordine`, SUM(`qta` - `qta_evasa`) AS `qta_da_evadere`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`subtotale` - `sconto` + `iva`) AS `totale` FROM `or_righe_ordini` GROUP BY `idordine`) AS righe ON `or_ordini`.`id` = `righe`.`idordine` + LEFT JOIN (SELECT `idordine`, MIN(`data_evasione`) AS `data_evasione` FROM `or_righe_ordini` WHERE (`qta` - `qta_evasa`)>0 GROUP BY `idordine`) AS `righe_da_evadere` ON `righe`.`idordine`=`righe_da_evadere`.`idordine` + LEFT JOIN `or_statiordine` ON `or_statiordine`.`id` = `or_ordini`.`idstatoordine` + LEFT JOIN ( +SELECT GROUP_CONCAT(DISTINCT co_documenti.numero_esterno SEPARATOR ', ') AS info, co_righe_documenti.original_document_id AS idordine FROM co_documenti INNER JOIN co_righe_documenti ON co_documenti.id = co_righe_documenti.iddocumento WHERE original_document_type='Modules\\Ordini\\Ordine' GROUP BY idordine +) AS fattura ON fattura.idordine = or_ordini.id +LEFT JOIN ( +SELECT `zz_operations`.`id_email`, `zz_operations`.`id_record` +FROM `zz_operations` +INNER JOIN `em_emails` ON `zz_operations`.`id_email` = `em_emails`.`id` +INNER JOIN `em_templates` ON `em_emails`.`id_template` = `em_templates`.`id` +INNER JOIN `zz_modules` ON `zz_operations`.`id_module` = `zz_modules`.`id` +WHERE `zz_modules`.`name` = 'Ordini fornitore' AND `zz_operations`.`op` = 'send-email' +GROUP BY `zz_operations`.`id_record` +) AS `email` ON `email`.`id_record` = `or_ordini`.`id` +WHERE + 1=1 AND `dir` = 'uscita' |date_period(`or_ordini`.`data`)| +HAVING + 2=2 +ORDER BY + `data` DESC, + CAST(`numero_esterno` AS UNSIGNED) DESC" WHERE `name` = 'Ordini fornitore'; + From 1aa0da2946d41768af2319edd0b607c6f7196cc0 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Fri, 18 Nov 2022 13:02:39 +0100 Subject: [PATCH 05/14] Ottimizzazione query vista ddt uscita --- update/2_4_38.sql | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/update/2_4_38.sql b/update/2_4_38.sql index 75f3edb40..b503b9223 100644 --- a/update/2_4_38.sql +++ b/update/2_4_38.sql @@ -163,3 +163,43 @@ ORDER BY `data` DESC, CAST(`numero_esterno` AS UNSIGNED) DESC" WHERE `name` = 'Ordini fornitore'; +-- Ottimizzazione query vista ddt uscita +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'dt_statiddt.icona' WHERE `zz_modules`.`name` = 'Ddt di vendita' AND `zz_views`.`name` = 'icon_Stato'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'dt_statiddt.descrizione' WHERE `zz_modules`.`name` = 'Ddt di vendita' AND `zz_views`.`name` = 'icon_title_Stato'; +UPDATE `zz_modules` SET `options` = "SELECT + |select| +FROM + `dt_ddt` +LEFT JOIN `an_anagrafiche` ON `dt_ddt`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` +LEFT JOIN `dt_tipiddt` ON `dt_ddt`.`idtipoddt` = `dt_tipiddt`.`id` +LEFT JOIN `dt_causalet` ON `dt_ddt`.`idcausalet` = `dt_causalet`.`id` +LEFT JOIN `dt_spedizione` ON `dt_ddt`.`idspedizione` = `dt_spedizione`.`id` +LEFT JOIN `an_anagrafiche` `vettori` ON `dt_ddt`.`idvettore` = `vettori`.`idanagrafica` +LEFT JOIN `an_sedi` AS sedi ON `dt_ddt`.`idsede_partenza` = sedi.`id` +LEFT JOIN `an_sedi` AS `sedi_destinazione`ON `dt_ddt`.`idsede_destinazione` = `sedi_destinazione`.`id` +LEFT JOIN( + SELECT `idddt`, + SUM(`subtotale` - `sconto`) AS `totale_imponibile`, + SUM(`subtotale` - `sconto` + `iva`) AS `totale` + FROM + `dt_righe_ddt` + GROUP BY + `idddt` +) AS righe +ON + `dt_ddt`.`id` = `righe`.`idddt` +LEFT JOIN `dt_statiddt` ON `dt_statiddt`.`id` = `dt_ddt`.`idstatoddt` +WHERE + 1=1 AND `dir` = 'entrata' |date_period(`data`)| +HAVING + 2=2 +ORDER BY + `data` +DESC + , + CAST(`numero_esterno` AS UNSIGNED) +DESC + , + `dt_ddt`.created_at +DESC" WHERE `name` = 'Ddt di vendita'; + From c00d636ae571fd4d530b27d6f928170eaab546c9 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Fri, 18 Nov 2022 13:05:19 +0100 Subject: [PATCH 06/14] Ottimizzazione query vista ddt entrata --- update/2_4_38.sql | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/update/2_4_38.sql b/update/2_4_38.sql index b503b9223..8f1d85fa6 100644 --- a/update/2_4_38.sql +++ b/update/2_4_38.sql @@ -203,3 +203,43 @@ DESC `dt_ddt`.created_at DESC" WHERE `name` = 'Ddt di vendita'; + +-- Ottimizzazione query vista ddt entrata +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'dt_statiddt.icona' WHERE `zz_modules`.`name` = 'Ddt di acquisto' AND `zz_views`.`name` = 'icon_Stato'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'dt_statiddt.descrizione' WHERE `zz_modules`.`name` = 'Ddt di acquisto' AND `zz_views`.`name` = 'icon_title_Stato'; +UPDATE `zz_modules` SET `options` = "SELECT + |select| +FROM + `dt_ddt` +LEFT JOIN `an_anagrafiche` ON `dt_ddt`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` +LEFT JOIN `dt_tipiddt` ON `dt_ddt`.`idtipoddt` = `dt_tipiddt`.`id` +LEFT JOIN `dt_causalet` ON `dt_ddt`.`idcausalet` = `dt_causalet`.`id` +LEFT JOIN `dt_spedizione` ON `dt_ddt`.`idspedizione` = `dt_spedizione`.`id` +LEFT JOIN `an_anagrafiche` `vettori` ON `dt_ddt`.`idvettore` = `vettori`.`idanagrafica` +LEFT JOIN `an_sedi` AS sedi ON `dt_ddt`.`idsede_partenza` = sedi.`id` +LEFT JOIN `an_sedi` AS `sedi_destinazione`ON `dt_ddt`.`idsede_destinazione` = `sedi_destinazione`.`id` +LEFT JOIN( + SELECT `idddt`, + SUM(`subtotale` - `sconto`) AS `totale_imponibile`, + SUM(`subtotale` - `sconto` + `iva`) AS `totale` + FROM + `dt_righe_ddt` + GROUP BY + `idddt` +) AS righe +ON + `dt_ddt`.`id` = `righe`.`idddt` +LEFT JOIN `dt_statiddt` ON `dt_statiddt`.`id` = `dt_ddt`.`idstatoddt` +WHERE + 1=1 AND `dir` = 'uscita' |date_period(`data`)| +HAVING + 2=2 +ORDER BY + `data` +DESC + , + CAST(`numero_esterno` AS UNSIGNED) +DESC + , + `dt_ddt`.created_at +DESC" WHERE `name` = 'Ddt di acquisto'; From 1eb08634f752bb2dd7397e2c51c36c583ebc6a9c Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Fri, 18 Nov 2022 16:04:19 +0100 Subject: [PATCH 07/14] ottimizzazione query vista impianti --- update/2_4_38.sql | 48 +++++++++++++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/update/2_4_38.sql b/update/2_4_38.sql index 8f1d85fa6..6e43ef76b 100644 --- a/update/2_4_38.sql +++ b/update/2_4_38.sql @@ -194,14 +194,9 @@ WHERE HAVING 2=2 ORDER BY - `data` -DESC - , - CAST(`numero_esterno` AS UNSIGNED) -DESC - , - `dt_ddt`.created_at -DESC" WHERE `name` = 'Ddt di vendita'; + `data` DESC, + CAST(`numero_esterno` AS UNSIGNED) DESC, + `dt_ddt`.created_at DESC" WHERE `name` = 'Ddt di vendita'; -- Ottimizzazione query vista ddt entrata @@ -235,11 +230,32 @@ WHERE HAVING 2=2 ORDER BY - `data` -DESC - , - CAST(`numero_esterno` AS UNSIGNED) -DESC - , - `dt_ddt`.created_at -DESC" WHERE `name` = 'Ddt di acquisto'; + `data` DESC, + CAST(`numero_esterno` AS UNSIGNED) DESC, + `dt_ddt`.created_at DESC" WHERE `name` = 'Ddt di acquisto'; + + +-- Ottimizzazione query vista impianti +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'my_impianti.id' WHERE `zz_modules`.`name` = 'Impianti' AND `zz_views`.`name` = 'id'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'my_impianti.idanagrafica' WHERE `zz_modules`.`name` = 'Impianti' AND `zz_views`.`name` = 'idanagrafica'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'my_impianti.nome' WHERE `zz_modules`.`name` = 'Impianti' AND `zz_views`.`name` = 'Nome'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'clienti.ragione_sociale' WHERE `zz_modules`.`name` = 'Impianti' AND `zz_views`.`name` = 'Cliente'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = "IF(my_impianti.idsede > 0, sede.info, CONCAT('', IF (clienti.telefono!='',CONCAT(clienti.telefono,'
'),''), IF(clienti.cellulare!='', CONCAT(clienti.cellulare,'
'),''),IF(clienti.citta!='',clienti.citta,''),IF(clienti.indirizzo!='',CONCAT(' - ',clienti.indirizzo),'')))" WHERE `zz_modules`.`name` = 'Impianti' AND `zz_views`.`name` = 'Sede'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'tecnici.ragione_sociale' WHERE `zz_modules`.`name` = 'Impianti' AND `zz_views`.`name` = 'Tecnico'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'my_impianti_categorie.nome' WHERE `zz_modules`.`name` = 'Impianti' AND `zz_views`.`name` = 'Categoria'; +UPDATE `zz_modules` SET `options` = "SELECT + |select| +FROM + `my_impianti` + LEFT JOIN `an_anagrafiche` AS clienti ON `clienti`.`idanagrafica` = `my_impianti`.`idanagrafica` + LEFT JOIN `an_anagrafiche` AS tecnici ON `tecnici`.`idanagrafica` = `my_impianti`.`idtecnico` + LEFT JOIN `my_impianti_categorie` ON `my_impianti_categorie`.`id` = `my_impianti`.`id_categoria` + LEFT JOIN (SELECT an_sedi.id, CONCAT(an_sedi.nomesede, '
',IF(an_sedi.telefono!='',CONCAT(an_sedi.telefono,'
'),''),IF(an_sedi.cellulare!='',CONCAT(an_sedi.cellulare,'
'),''),an_sedi.citta,IF(an_sedi.indirizzo!='',CONCAT(' - ',an_sedi.indirizzo),'')) AS info FROM an_sedi +) AS sede ON sede.id = my_impianti.idsede +WHERE + 1=1 +HAVING + 2=2 +ORDER BY + `matricola`" WHERE `name` = 'Impianti'; + From e9c6b23aa598c1640f424e21c6476b3de07b52e0 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Fri, 18 Nov 2022 17:42:25 +0100 Subject: [PATCH 08/14] Ottimizzazione query vista movimenti --- update/2_4_38.sql | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/update/2_4_38.sql b/update/2_4_38.sql index 6e43ef76b..b47f008b0 100644 --- a/update/2_4_38.sql +++ b/update/2_4_38.sql @@ -259,3 +259,25 @@ HAVING ORDER BY `matricola`" WHERE `name` = 'Impianti'; + +-- Ottimizzazione query vista Movimenti +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'zz_modules.id' WHERE `zz_modules`.`name` = 'Movimenti' AND `zz_views`.`name` = '_link_module_'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = "IF(`mg_movimenti`.`reference_type` = 'Modules\\\\Fatture\\\\Fattura', fattura.nomi, IF(`mg_movimenti`.`reference_type` = 'Modules\\\\DDT\\\\DDT', ddt.nomi, IF(`mg_movimenti`.`reference_type` = 'Modules\\\\Interventi\\\\Intervento', intervento.nomi, '')))" WHERE `zz_modules`.`name` = 'Movimenti' AND `zz_views`.`name` = 'Anagrafica'; +UPDATE `zz_modules` SET `options` = "SELECT + |select| +FROM + `mg_movimenti` +INNER JOIN `mg_articoli` ON `mg_articoli`.id = `mg_movimenti`.`idarticolo` +LEFT JOIN `an_sedi` ON `mg_movimenti`.`idsede` = `an_sedi`.`id` +LEFT JOIN `zz_modules` ON `zz_modules`.`name` = 'Articoli' +LEFT JOIN (SELECT `an_anagrafiche`.`idanagrafica`, `co_documenti`.`id`, `ragione_sociale` AS nomi FROM `co_documenti` LEFT JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` GROUP BY `idanagrafica`, `co_documenti`.`id`) AS fattura ON `fattura`.`id`= `mg_movimenti`.`reference_id` +LEFT JOIN (SELECT `an_anagrafiche`.`idanagrafica`, `dt_ddt`.`id`, `ragione_sociale` AS nomi FROM `dt_ddt` LEFT JOIN `an_anagrafiche` ON `dt_ddt`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` GROUP BY `idanagrafica`, `dt_ddt`.`id`) AS ddt ON `ddt`.`id`= `mg_movimenti`.`reference_id` +LEFT JOIN (SELECT `an_anagrafiche`.`idanagrafica`, `in_interventi`.`id`, `ragione_sociale` AS nomi FROM `in_interventi` LEFT JOIN `an_anagrafiche` ON `in_interventi`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` GROUP BY `idanagrafica`, `in_interventi`.`id`) AS intervento ON `intervento`.`id`= `mg_movimenti`.`reference_id` +WHERE + 1=1 AND mg_articoli.deleted_at IS NULL +HAVING + 2=2 +ORDER BY + mg_movimenti.data DESC, + mg_movimenti.created_at DESC" WHERE `name` = 'Movimenti'; + From ab81c5922f0a931793c61ae73e7684861bda7640 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Fri, 18 Nov 2022 17:49:56 +0100 Subject: [PATCH 09/14] Ottimizzazione query vista Template email --- update/2_4_38.sql | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/update/2_4_38.sql b/update/2_4_38.sql index b47f008b0..828a64bda 100644 --- a/update/2_4_38.sql +++ b/update/2_4_38.sql @@ -281,3 +281,23 @@ ORDER BY mg_movimenti.data DESC, mg_movimenti.created_at DESC" WHERE `name` = 'Movimenti'; + +-- Ottimizzazione query vista Template email +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`em_templates`.`id`' WHERE `zz_modules`.`name` = 'Template email' AND `zz_views`.`name` = 'id'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`em_templates`.`id`' WHERE `zz_modules`.`name` = 'Template email' AND `zz_views`.`name` = '#'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`em_templates`.`NAME`' WHERE `zz_modules`.`name` = 'Template email' AND `zz_views`.`name` = 'Nome'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`em_templates`.`SUBJECT`' WHERE `zz_modules`.`name` = 'Template email' AND `zz_views`.`name` = 'Oggetto'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = ' `zz_modules`.`name`' WHERE `zz_modules`.`name` = 'Template email' AND `zz_views`.`name` = 'Modulo'; + +UPDATE `zz_modules` SET `options` = "SELECT + |select| +FROM + `em_templates` + LEFT JOIN `zz_modules` on `zz_modules`.`id` = `em_templates`.`id_module` +WHERE + 1 = 1 AND `deleted_at` IS NULL +HAVING + 2 = 2 +ORDER BY + `zz_modules`.`name`" WHERE `name` = 'Template email'; + From 1d4635898e5801535eac20bb1a807e6a7a6548d5 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Fri, 18 Nov 2022 17:58:22 +0100 Subject: [PATCH 10/14] Ottimizzazione query vista Campi personalizzati --- update/2_4_38.sql | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/update/2_4_38.sql b/update/2_4_38.sql index 828a64bda..bf23990b2 100644 --- a/update/2_4_38.sql +++ b/update/2_4_38.sql @@ -301,3 +301,19 @@ HAVING ORDER BY `zz_modules`.`name`" WHERE `name` = 'Template email'; + +-- Ottimizzazione query vista Campi personalizzati +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`zz_fields`.`id`' WHERE `zz_modules`.`name` = 'Campi personalizzati' AND `zz_views`.`name` = 'id'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`zz_modules`.`NAME`' WHERE `zz_modules`.`name` = 'Campi personalizzati' AND `zz_views`.`name` = 'Modulo'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`zz_plugins`.`NAME`' WHERE `zz_modules`.`name` = 'Campi personalizzati' AND `zz_views`.`name` = 'Plugin'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`zz_fields`.`NAME`' WHERE `zz_modules`.`name` = 'Campi personalizzati' AND `zz_views`.`name` = 'Nome'; +UPDATE `zz_modules` SET `options` = "SELECT + |select| +FROM + `zz_fields` + LEFT JOIN `zz_modules` ON `zz_modules`.`id` = `zz_fields`.`id_module` + LEFT JOIN `zz_plugins` ON `zz_plugins`.`id` = `zz_fields`.`id_module` +WHERE + 1 = 1 +HAVING + 2 = 2" WHERE `name` = 'Campi personalizzati'; \ No newline at end of file From 7262452c46670cb7d362738ad642a139e2b3b0c6 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Fri, 18 Nov 2022 18:06:32 +0100 Subject: [PATCH 11/14] Ottimizzazione query vista Segmenti --- update/2_4_38.sql | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/update/2_4_38.sql b/update/2_4_38.sql index bf23990b2..bf6e8ca1f 100644 --- a/update/2_4_38.sql +++ b/update/2_4_38.sql @@ -316,4 +316,23 @@ FROM WHERE 1 = 1 HAVING - 2 = 2" WHERE `name` = 'Campi personalizzati'; \ No newline at end of file + 2 = 2" WHERE `name` = 'Campi personalizzati'; + + +-- Ottimizzazione query vista Segmenti +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`zz_segments`.`id`' WHERE `zz_modules`.`name` = 'Segmenti' AND `zz_views`.`name` = 'id'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`zz_segments`.`NAME`' WHERE `zz_modules`.`name` = 'Segmenti' AND `zz_views`.`name` = 'Nome'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`zz_modules`.`NAME`' WHERE `zz_modules`.`name` = 'Segmenti' AND `zz_views`.`name` = 'Modulo'; +UPDATE `zz_modules` SET `options` = "SELECT + |select| +FROM + `zz_segments` + LEFT JOIN `zz_modules` ON `zz_modules`.`id` = `zz_segments`.`id_module` +WHERE + 1 = 1 +HAVING + 2 = 2 +ORDER BY `zz_segments`.`NAME`, + `zz_segments`.`id_module`" WHERE `name` = 'Segmenti'; + + \ No newline at end of file From 636d2ba58ef267cc6bbbf4d447c4180f0faa2fdf Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Mon, 21 Nov 2022 15:26:56 +0100 Subject: [PATCH 12/14] Ottimizzazione query vista Fatture di vendita --- update/2_4_38.sql | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/update/2_4_38.sql b/update/2_4_38.sql index bf6e8ca1f..27746b474 100644 --- a/update/2_4_38.sql +++ b/update/2_4_38.sql @@ -335,4 +335,28 @@ HAVING ORDER BY `zz_segments`.`NAME`, `zz_segments`.`id_module`" WHERE `name` = 'Segmenti'; - \ No newline at end of file + + +-- Ottimizzazione query vista Fatture di vendita +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`banche`.`descrizione`' WHERE `zz_modules`.`name` = 'Fatture di vendita' AND `zz_views`.`name` = 'Banca'; +UPDATE `zz_modules` SET `options` = "SELECT + |select| +FROM + `co_documenti` + LEFT JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` + LEFT JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id` + LEFT JOIN( SELECT `iddocumento`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`iva`) AS `iva` FROM `co_righe_documenti` GROUP BY `iddocumento`) AS righe ON `co_documenti`.`id` = `righe`.`iddocumento` + LEFT JOIN (SELECT `co_banche`.`id`, CONCAT(`co_banche`.`nome`, ' - ', `co_banche`.`iban`) AS descrizione FROM `co_banche` GROUP BY `co_banche`.`id`) AS banche ON `banche`.`id` =`co_documenti`.`id_banca_azienda` + LEFT JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id` + LEFT JOIN `fe_stati_documento` ON `co_documenti`.`codice_stato_fe` = `fe_stati_documento`.`codice` + LEFT JOIN `co_ritenuta_contributi` ON `co_documenti`.`id_ritenuta_contributi` = `co_ritenuta_contributi`.`id` + LEFT JOIN( SELECT `zz_operations`.`id_email`, `zz_operations`.`id_record` FROM `zz_operations` INNER JOIN `em_emails` ON `zz_operations`.`id_email` = `em_emails`.`id` INNER JOIN `em_templates` ON `em_emails`.`id_template` = `em_templates`.`id` INNER JOIN `zz_modules` ON `zz_operations`.`id_module` = `zz_modules`.`id` WHERE `zz_modules`.`name` = 'Fatture di vendita' AND `zz_operations`.`op` = 'send-email' GROUP BY `zz_operations`.`id_record`, zz_operations.id_email) AS `email` ON `email`.`id_record` = `co_documenti`.`id` + LEFT JOIN `co_pagamenti` ON `co_documenti`.`idpagamento` = `co_pagamenti`.`id` + LEFT JOIN( SELECT `numero_esterno`, `id_segment`, `idtipodocumento`, `data` FROM `co_documenti` WHERE `co_documenti`.`idtipodocumento` IN( SELECT `id` FROM `co_tipidocumento` WHERE `dir` = 'entrata') AND( `co_documenti`.`data` BETWEEN '2022-01-01' AND '2022-12-31 23:59:59') AND `numero_esterno` != '' GROUP BY `id_segment`, `numero_esterno`, `idtipodocumento`, `data` HAVING COUNT(`numero_esterno`) > 1) dup ON `co_documenti`.`numero_esterno` = `dup`.`numero_esterno` AND `dup`.`id_segment` = `co_documenti`.`id_segment` AND `dup`.`idtipodocumento` = `co_documenti`.`idtipodocumento` AND `dup`.`data` = `co_documenti`.`data` +WHERE + 1=1 AND `dir` = 'entrata' |segment(`co_documenti`.`id_segment`)| |date_period(`co_documenti`.`data`)| +HAVING + 2=2 +ORDER BY + `co_documenti`.`data` DESC, + CAST(`co_documenti`.`numero_esterno` AS UNSIGNED) DESC" WHERE `name` = 'Fatture di vendita'; \ No newline at end of file From 824965c61d423cc5b9791d6fa781bc5fbbb3456b Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Tue, 22 Nov 2022 11:05:57 +0100 Subject: [PATCH 13/14] =?UTF-8?q?Ottimizzazione=20query=20vista=20Attivit?= =?UTF-8?q?=C3=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- update/2_4_38.sql | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/update/2_4_38.sql b/update/2_4_38.sql index 27746b474..d6d91f046 100644 --- a/update/2_4_38.sql +++ b/update/2_4_38.sql @@ -359,4 +359,40 @@ HAVING 2=2 ORDER BY `co_documenti`.`data` DESC, - CAST(`co_documenti`.`numero_esterno` AS UNSIGNED) DESC" WHERE `name` = 'Fatture di vendita'; \ No newline at end of file + CAST(`co_documenti`.`numero_esterno` AS UNSIGNED) DESC" WHERE `name` = 'Fatture di vendita'; + + +-- Ottimizzazione query vista Attività +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`an_referenti`.`nome`' WHERE `zz_modules`.`name` = 'Interventi' AND `zz_views`.`name` = 'Referente'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`in_statiintervento`.`colore`' WHERE `zz_modules`.`name` = 'Interventi' AND `zz_views`.`name` = '_bg_'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`in_tipiintervento`.`descrizione`' WHERE `zz_modules`.`name` = 'Interventi' AND `zz_views`.`name` = 'Tipo'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'tecnici_assegnati.nomi' WHERE `zz_modules`.`name` = 'Interventi' AND `zz_views`.`name` = 'Tecnici assegnati'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'tecnici.nomi' WHERE `zz_modules`.`name` = 'Interventi' AND `zz_views`.`name` = 'Tecnici'; +UPDATE `zz_modules` SET `options` = "SELECT + |select| +FROM + `in_interventi` + LEFT JOIN `an_anagrafiche` ON `in_interventi`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` + LEFT JOIN `in_interventi_tecnici` ON `in_interventi_tecnici`.`idintervento` = `in_interventi`.`id` + LEFT JOIN `in_interventi_tecnici_assegnati` ON `in_interventi_tecnici_assegnati`.`id_intervento` = `in_interventi`.`id` + LEFT JOIN (SELECT idintervento, SUM(prezzo_unitario*qta-sconto) AS ricavo_righe, SUM(costo_unitario*qta) AS costo_righe FROM `in_righe_interventi` GROUP BY idintervento) AS righe ON righe.`idintervento` = `in_interventi`.`id` + LEFT JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento`=`in_statiintervento`.`idstatointervento` + LEFT JOIN `an_referenti` ON `in_interventi`.`idreferente` = `an_referenti`.`id` + LEFT JOIN (SELECT an_sedi.id, CONCAT(an_sedi.nomesede, '
',IF(an_sedi.telefono!='',CONCAT(an_sedi.telefono,'
'),''),IF(an_sedi.cellulare!='',CONCAT(an_sedi.cellulare,'
'),''),an_sedi.citta,IF(an_sedi.indirizzo!='',CONCAT(' - ',an_sedi.indirizzo),'')) AS info FROM an_sedi) AS sede_destinazione ON sede_destinazione.id = in_interventi.idsede_destinazione + LEFT JOIN (SELECT GROUP_CONCAT(DISTINCT co_documenti.numero_esterno SEPARATOR ', ') AS info, co_righe_documenti.original_document_id AS idintervento FROM co_documenti INNER JOIN co_righe_documenti ON co_documenti.id = co_righe_documenti.iddocumento WHERE original_document_type = 'Modules\\\\Interventi\\\\Intervento' GROUP BY idintervento) AS fattura ON fattura.idintervento = in_interventi.id + LEFT JOIN (SELECT `in_interventi_tecnici_assegnati`.`id_intervento`, GROUP_CONCAT( DISTINCT `ragione_sociale` SEPARATOR ', ') AS nomi FROM `an_anagrafiche` INNER JOIN `in_interventi_tecnici_assegnati` ON `in_interventi_tecnici_assegnati`.`id_tecnico` = `an_anagrafiche`.`idanagrafica` GROUP BY `id_intervento`) AS tecnici_assegnati ON `in_interventi`.`id` = `tecnici_assegnati`.`id_intervento` + LEFT JOIN (SELECT `in_interventi_tecnici`.`idintervento`, GROUP_CONCAT( DISTINCT `ragione_sociale` SEPARATOR ', ') AS nomi FROM `an_anagrafiche` INNER JOIN `in_interventi_tecnici` ON `in_interventi_tecnici`.`idtecnico` = `an_anagrafiche`.`idanagrafica` GROUP BY `idintervento`) AS tecnici ON `in_interventi`.`id` = `tecnici`.`idintervento` + LEFT JOIN (SELECT `zz_operations`.`id_email`, `zz_operations`.`id_record` FROM `zz_operations` INNER JOIN `em_emails` ON `zz_operations`.`id_email` = `em_emails`.`id` INNER JOIN `em_templates` ON `em_emails`.`id_template` = `em_templates`.`id` INNER JOIN `zz_modules` ON `zz_operations`.`id_module` = `zz_modules`.`id` WHERE `zz_modules`.`name` = 'Interventi' AND `zz_operations`.`op` = 'send-email' GROUP BY `zz_operations`.`id_record`) AS email ON email.id_record=in_interventi.id + LEFT JOIN ( SELECT GROUP_CONCAT(CONCAT(matricola, IF(nome != '', CONCAT(' - ', nome), '')) SEPARATOR '
') AS descrizione, my_impianti_interventi.idintervento FROM my_impianti INNER JOIN my_impianti_interventi ON my_impianti.id = my_impianti_interventi.idimpianto GROUP BY my_impianti_interventi.idintervento) AS impianti ON impianti.idintervento = in_interventi.id + LEFT JOIN ( SELECT co_contratti.id, CONCAT(co_contratti.numero, ' del ', DATE_FORMAT(data_bozza, '%d/%m/%Y')) AS info FROM co_contratti) AS contratto ON contratto.id = in_interventi.id_contratto + LEFT JOIN (SELECT co_preventivi.id, CONCAT(co_preventivi.numero, ' del ', DATE_FORMAT(data_bozza, '%d/%m/%Y')) AS info FROM co_preventivi) AS preventivo ON preventivo.id = in_interventi.id_preventivo + LEFT JOIN (SELECT or_ordini.id, CONCAT(or_ordini.numero, ' del ', DATE_FORMAT(data, '%d/%m/%Y')) AS info FROM or_ordini) AS ordine ON ordine.id = in_interventi.id_ordine + LEFT JOIN `in_tipiintervento` ON `in_interventi`.`idtipointervento` = `in_tipiintervento`.`idtipointervento` +WHERE + 1=1 |date_period(`orario_inizio`,`data_richiesta`)| +GROUP BY + `in_interventi`.`id` +HAVING + 2=2 +ORDER BY + IFNULL(`orario_fine`, `data_richiesta`) DESC" WHERE `name` = 'Interventi'; \ No newline at end of file From 6d6315b95fbf8938df5a806240160fb0587422d2 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Tue, 22 Nov 2022 12:56:29 +0100 Subject: [PATCH 14/14] Ottimizzazione query vista Movimenti --- update/2_4_38.sql | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/update/2_4_38.sql b/update/2_4_38.sql index d6d91f046..dac501924 100644 --- a/update/2_4_38.sql +++ b/update/2_4_38.sql @@ -262,17 +262,19 @@ ORDER BY -- Ottimizzazione query vista Movimenti UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'zz_modules.id' WHERE `zz_modules`.`name` = 'Movimenti' AND `zz_views`.`name` = '_link_module_'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'page.link' WHERE `zz_modules`.`name` = 'Movimenti' AND `zz_views`.`name` = '_link_hash_'; UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = "IF(`mg_movimenti`.`reference_type` = 'Modules\\\\Fatture\\\\Fattura', fattura.nomi, IF(`mg_movimenti`.`reference_type` = 'Modules\\\\DDT\\\\DDT', ddt.nomi, IF(`mg_movimenti`.`reference_type` = 'Modules\\\\Interventi\\\\Intervento', intervento.nomi, '')))" WHERE `zz_modules`.`name` = 'Movimenti' AND `zz_views`.`name` = 'Anagrafica'; UPDATE `zz_modules` SET `options` = "SELECT |select| FROM - `mg_movimenti` -INNER JOIN `mg_articoli` ON `mg_articoli`.id = `mg_movimenti`.`idarticolo` -LEFT JOIN `an_sedi` ON `mg_movimenti`.`idsede` = `an_sedi`.`id` -LEFT JOIN `zz_modules` ON `zz_modules`.`name` = 'Articoli' -LEFT JOIN (SELECT `an_anagrafiche`.`idanagrafica`, `co_documenti`.`id`, `ragione_sociale` AS nomi FROM `co_documenti` LEFT JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` GROUP BY `idanagrafica`, `co_documenti`.`id`) AS fattura ON `fattura`.`id`= `mg_movimenti`.`reference_id` -LEFT JOIN (SELECT `an_anagrafiche`.`idanagrafica`, `dt_ddt`.`id`, `ragione_sociale` AS nomi FROM `dt_ddt` LEFT JOIN `an_anagrafiche` ON `dt_ddt`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` GROUP BY `idanagrafica`, `dt_ddt`.`id`) AS ddt ON `ddt`.`id`= `mg_movimenti`.`reference_id` -LEFT JOIN (SELECT `an_anagrafiche`.`idanagrafica`, `in_interventi`.`id`, `ragione_sociale` AS nomi FROM `in_interventi` LEFT JOIN `an_anagrafiche` ON `in_interventi`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` GROUP BY `idanagrafica`, `in_interventi`.`id`) AS intervento ON `intervento`.`id`= `mg_movimenti`.`reference_id` + `mg_movimenti` + INNER JOIN `mg_articoli` ON `mg_articoli`.id = `mg_movimenti`.`idarticolo` + LEFT JOIN `an_sedi` ON `mg_movimenti`.`idsede` = `an_sedi`.`id` + LEFT JOIN `zz_modules` ON `zz_modules`.`name` = 'Articoli' + LEFT JOIN (SELECT `an_anagrafiche`.`idanagrafica`, `co_documenti`.`id`, `ragione_sociale` AS nomi FROM `co_documenti` LEFT JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` GROUP BY `idanagrafica`, `co_documenti`.`id`) AS fattura ON `fattura`.`id`= `mg_movimenti`.`reference_id` + LEFT JOIN (SELECT `an_anagrafiche`.`idanagrafica`, `dt_ddt`.`id`, `ragione_sociale` AS nomi FROM `dt_ddt` LEFT JOIN `an_anagrafiche` ON `dt_ddt`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` GROUP BY `idanagrafica`, `dt_ddt`.`id`) AS ddt ON `ddt`.`id`= `mg_movimenti`.`reference_id` + LEFT JOIN (SELECT `an_anagrafiche`.`idanagrafica`, `in_interventi`.`id`, `ragione_sociale` AS nomi FROM `in_interventi` LEFT JOIN `an_anagrafiche` ON `in_interventi`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` GROUP BY `idanagrafica`, `in_interventi`.`id`) AS intervento ON `intervento`.`id`= `mg_movimenti`.`reference_id` + LEFT JOIN (SELECT CONCAT('tab_',(SELECT `id` FROM `zz_plugins` WHERE `zz_plugins`.`name` = 'Movimenti' AND idmodule_to =(SELECT `id` FROM `zz_modules` WHERE `name` = 'Articoli'))) AS link) AS page ON `mg_movimenti`.`id` != '' WHERE 1=1 AND mg_articoli.deleted_at IS NULL HAVING @@ -383,8 +385,8 @@ FROM LEFT JOIN (SELECT `in_interventi_tecnici_assegnati`.`id_intervento`, GROUP_CONCAT( DISTINCT `ragione_sociale` SEPARATOR ', ') AS nomi FROM `an_anagrafiche` INNER JOIN `in_interventi_tecnici_assegnati` ON `in_interventi_tecnici_assegnati`.`id_tecnico` = `an_anagrafiche`.`idanagrafica` GROUP BY `id_intervento`) AS tecnici_assegnati ON `in_interventi`.`id` = `tecnici_assegnati`.`id_intervento` LEFT JOIN (SELECT `in_interventi_tecnici`.`idintervento`, GROUP_CONCAT( DISTINCT `ragione_sociale` SEPARATOR ', ') AS nomi FROM `an_anagrafiche` INNER JOIN `in_interventi_tecnici` ON `in_interventi_tecnici`.`idtecnico` = `an_anagrafiche`.`idanagrafica` GROUP BY `idintervento`) AS tecnici ON `in_interventi`.`id` = `tecnici`.`idintervento` LEFT JOIN (SELECT `zz_operations`.`id_email`, `zz_operations`.`id_record` FROM `zz_operations` INNER JOIN `em_emails` ON `zz_operations`.`id_email` = `em_emails`.`id` INNER JOIN `em_templates` ON `em_emails`.`id_template` = `em_templates`.`id` INNER JOIN `zz_modules` ON `zz_operations`.`id_module` = `zz_modules`.`id` WHERE `zz_modules`.`name` = 'Interventi' AND `zz_operations`.`op` = 'send-email' GROUP BY `zz_operations`.`id_record`) AS email ON email.id_record=in_interventi.id - LEFT JOIN ( SELECT GROUP_CONCAT(CONCAT(matricola, IF(nome != '', CONCAT(' - ', nome), '')) SEPARATOR '
') AS descrizione, my_impianti_interventi.idintervento FROM my_impianti INNER JOIN my_impianti_interventi ON my_impianti.id = my_impianti_interventi.idimpianto GROUP BY my_impianti_interventi.idintervento) AS impianti ON impianti.idintervento = in_interventi.id - LEFT JOIN ( SELECT co_contratti.id, CONCAT(co_contratti.numero, ' del ', DATE_FORMAT(data_bozza, '%d/%m/%Y')) AS info FROM co_contratti) AS contratto ON contratto.id = in_interventi.id_contratto + LEFT JOIN (SELECT GROUP_CONCAT(CONCAT(matricola, IF(nome != '', CONCAT(' - ', nome), '')) SEPARATOR '
') AS descrizione, my_impianti_interventi.idintervento FROM my_impianti INNER JOIN my_impianti_interventi ON my_impianti.id = my_impianti_interventi.idimpianto GROUP BY my_impianti_interventi.idintervento) AS impianti ON impianti.idintervento = in_interventi.id + LEFT JOIN (SELECT co_contratti.id, CONCAT(co_contratti.numero, ' del ', DATE_FORMAT(data_bozza, '%d/%m/%Y')) AS info FROM co_contratti) AS contratto ON contratto.id = in_interventi.id_contratto LEFT JOIN (SELECT co_preventivi.id, CONCAT(co_preventivi.numero, ' del ', DATE_FORMAT(data_bozza, '%d/%m/%Y')) AS info FROM co_preventivi) AS preventivo ON preventivo.id = in_interventi.id_preventivo LEFT JOIN (SELECT or_ordini.id, CONCAT(or_ordini.numero, ' del ', DATE_FORMAT(data, '%d/%m/%Y')) AS info FROM or_ordini) AS ordine ON ordine.id = in_interventi.id_ordine LEFT JOIN `in_tipiintervento` ON `in_interventi`.`idtipointervento` = `in_tipiintervento`.`idtipointervento` @@ -395,4 +397,6 @@ GROUP BY HAVING 2=2 ORDER BY - IFNULL(`orario_fine`, `data_richiesta`) DESC" WHERE `name` = 'Interventi'; \ No newline at end of file + IFNULL(`orario_fine`, `data_richiesta`) DESC" WHERE `name` = 'Interventi'; + +