From 20a82d0806f5b85775afd0d37cfc73e8601ac3a7 Mon Sep 17 00:00:00 2001 From: Matteo Date: Thu, 21 Oct 2021 18:51:48 +0200 Subject: [PATCH] Aggiunto task per l'eliminazione automatica della coda d'invio --- composer.json | 3 +- modules/stato_email/src/EliminaMailTask.php | 54 +++++++++++++++++++++ update/2_4_27.sql | 9 +++- 3 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 modules/stato_email/src/EliminaMailTask.php diff --git a/composer.json b/composer.json index 77a08b9fe..0757f287e 100755 --- a/composer.json +++ b/composer.json @@ -113,7 +113,8 @@ "Plugins\\StatisticheArticoli\\": ["plugins/statistiche_articoli/custom/src/", "plugins/statistiche_articoli/src/"], "Plugins\\ListinoClienti\\": ["plugins/listino_clienti/custom/src/", "plugins/listino_clienti/src/"], "Plugins\\ListinoFornitori\\": ["plugins/listino_fornitori/custom/src/", "plugins/listino_fornitori/src/"], - "Plugins\\ComponentiImpianti\\": ["plugins/componenti/custom/src/", "plugins/componenti/src/"] + "Plugins\\ComponentiImpianti\\": ["plugins/componenti/custom/src/", "plugins/componenti/src/"], + "Modules\\StatoEmail\\": ["modules/stato_email/custom/src/", "modules/stato_email/src/"] }, "files": [ "lib/functions.php", diff --git a/modules/stato_email/src/EliminaMailTask.php b/modules/stato_email/src/EliminaMailTask.php new file mode 100644 index 000000000..b5c701e03 --- /dev/null +++ b/modules/stato_email/src/EliminaMailTask.php @@ -0,0 +1,54 @@ +. + */ + +namespace Modules\StatoEmail; + +use Tasks\Manager; + +/** + * Task dedicato all'eliminazione automatica della coda di invio dopo i giorni indicati nelle impostazioni. + */ +class EliminaMailTask extends Manager +{ + public function needsExecution() + { + if(setting('Numero di giorni mantenimento coda di invio')>0){ + $rs = database()->fetchArray("SELECT * FROM em_emails WHERE sent_at0){ + return true; + }else{ + return false; + } + }else{ + return false; + } + } + + public function execute() + { + if(setting('Numero di giorni mantenimento coda di invio')>0){ + $rs = database()->fetchArray("SELECT * FROM em_emails WHERE sent_atquery("DELETE FROM em_emails WHERE id=".prepare($r['id'])); + } + } + } +} diff --git a/update/2_4_27.sql b/update/2_4_27.sql index 35b2d2b4a..80a16758f 100644 --- a/update/2_4_27.sql +++ b/update/2_4_27.sql @@ -18,4 +18,11 @@ ALTER TABLE `in_righe_interventi` ADD `order` INT NOT NULL AFTER `idsede_partenz INSERT INTO `zz_widgets` (`id`, `name`, `type`, `id_module`, `location`, `class`, `query`, `bgcolor`, `icon`, `print_link`, `more_link`, `more_link_type`, `php_include`, `text`, `enabled`, `order`) VALUES (NULL, 'Sincronizzazione disiscritti', 'custom', (SELECT `id` FROM `zz_modules` WHERE `name` = 'Liste newsletter'), 'controller_top', 'col-md-12', NULL, '#4ccc4c', 'fa fa-envelope ', '', './modules/liste_newsletter/widgets/opt-out.php', 'popup', './modules/liste_newsletter/widgets/opt-out.php', 'Sincronizza disiscritti dal servizio esterno', '0', '1'); -- Aggiunto order by data nella gestione documentale -UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `do_documenti`\nINNER JOIN `do_categorie` ON `do_categorie`.`id` = `do_documenti`.`idcategoria`\nWHERE 1=1 AND `deleted_at` IS NULL AND\n (SELECT `idgruppo` FROM `zz_users` WHERE `zz_users`.`id` = |id_utente|) IN (SELECT `id_gruppo` FROM `do_permessi` WHERE `id_categoria` = `do_documenti`.`idcategoria`)\n |date_period(`data`)| OR data IS NULL\nHAVING 2=2 ORDER BY `data` DESC' WHERE `zz_modules`.`name` = 'Gestione documentale'; \ No newline at end of file +UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `do_documenti`\nINNER JOIN `do_categorie` ON `do_categorie`.`id` = `do_documenti`.`idcategoria`\nWHERE 1=1 AND `deleted_at` IS NULL AND\n (SELECT `idgruppo` FROM `zz_users` WHERE `zz_users`.`id` = |id_utente|) IN (SELECT `id_gruppo` FROM `do_permessi` WHERE `id_categoria` = `do_documenti`.`idcategoria`)\n |date_period(`data`)| OR data IS NULL\nHAVING 2=2 ORDER BY `data` DESC' WHERE `zz_modules`.`name` = 'Gestione documentale'; + +-- Task per l'eliminazione automatica della coda d'invio +INSERT INTO `zz_tasks` (`id`, `name`, `class`, `expression`, `next_execution_at`, `last_executed_at`) VALUES +(NULL, 'Eliminazione automatica coda d\'invio', 'Modules\\StatoEmail\\EliminaMailTask', '0 */4 * * *', NULL, NULL); + +INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES +(NULL, 'Numero di giorni mantenimento coda di invio', '0', 'integer', 1, 'Mail', 1, NULL); \ No newline at end of file