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