diff --git a/modules/stato_email/actions.php b/modules/stato_email/actions.php
index 652a283f0..eb4ff8e9f 100755
--- a/modules/stato_email/actions.php
+++ b/modules/stato_email/actions.php
@@ -1,8 +1,24 @@
send()){
+ $mail->sent_at = date("Y-m-d H:i:s");
+ $mail->save();
+ flash()->info(tr('Email inviata.'));
+ }else{
+ flash()->error(tr('Errore durante invio email.'));
+ }
+
+ break;
+
case 'retry':
$mail->attempt = 0;
@@ -13,7 +29,7 @@ switch (post('op')) {
if (empty($mail->sent_at)) {
$mail->delete();
- flash()->info(tr('Email rimossa dalla coda di invio!'));
+ flash()->info(tr('Email rimossa dalla coda di invio.'));
}
break;
diff --git a/modules/stato_email/bulk.php b/modules/stato_email/bulk.php
new file mode 100644
index 000000000..b46bde98a
--- /dev/null
+++ b/modules/stato_email/bulk.php
@@ -0,0 +1,42 @@
+sent_at)) {
+ $mail->delete();
+ $i++;
+ }
+ }
+ }
+
+ if ($i>0){
+ flash()->info(tr($i.' email rimosse dalla coda di invio.'));
+ }else{
+ flash()->warning(tr('Nessuna email rimossa dalla coda di invio.'));
+ }
+
+ break;
+}
+
+
+$operations['delete-bulk'] = [
+ 'text' => ' '.tr('Elimina selezionati').'',
+ 'data' => [
+ 'msg' => tr('Vuoi davvero eliminare dalla coda di invio le email selezionate?'),
+ 'button' => tr('Procedi'),
+ 'class' => 'btn btn-lg btn-danger',
+ ],
+];
+
+
+return $operations;
\ No newline at end of file
diff --git a/modules/stato_email/buttons.php b/modules/stato_email/buttons.php
new file mode 100644
index 000000000..acf3964b2
--- /dev/null
+++ b/modules/stato_email/buttons.php
@@ -0,0 +1,29 @@
+= 10) && empty($record['sent_at'])) {
+
+ echo '
+
+ '.tr('Email fallita il: ').Translator::timestampToLocale($record['failed_at']).'
+ ';
+
+ echo '
+
+ '.tr('Rimetti in coda').'
+ ';
+
+ echo '
+
+ '.tr('Invia immeditamente').'
+ ';
+
+
+
+}else if (!empty($record['sent_at'])) {
+
+ echo '
+
+ '.tr('Email inviata il: ').Translator::timestampToLocale($record['sent_at']).'
+ ';
+
+}
\ No newline at end of file
diff --git a/modules/stato_email/edit.php b/modules/stato_email/edit.php
index 8d7339fbf..52f356fcf 100755
--- a/modules/stato_email/edit.php
+++ b/modules/stato_email/edit.php
@@ -148,16 +148,10 @@ echo '
'.$mail->content.'
';
+//Posso eliminare l'email solo se questa non è già stata inviata
if (empty($mail->sent_at)) {
echo '
'.tr('Elimina').'
';
-
- if ($mail->attempt >= 10) {
- echo '
-
- '.tr('Rimetti in coda').'
-';
- }
}
diff --git a/update/2_4_16.sql b/update/2_4_16.sql
index cf89cf51a..ecfcdea4d 100644
--- a/update/2_4_16.sql
+++ b/update/2_4_16.sql
@@ -26,3 +26,9 @@ UPDATE `dt_ddt` SET `data_ora_trasporto` = NULL WHERE `dt_ddt`.`id` = '0000-00-0
-- fix widget Contratti in scadenza
UPDATE `zz_widgets` SET `query` = 'SELECT COUNT(dati.id) AS dato FROM(SELECT id, ((SELECT SUM(co_righe_contratti.qta) FROM co_righe_contratti WHERE co_righe_contratti.um=''ore'' AND co_righe_contratti.idcontratto=co_contratti.id) - IFNULL( (SELECT SUM(in_interventi_tecnici.ore) FROM in_interventi_tecnici INNER JOIN in_interventi ON in_interventi_tecnici.idintervento=in_interventi.id WHERE in_interventi.id_contratto=co_contratti.id AND in_interventi.idstatointervento IN (SELECT in_statiintervento.idstatointervento FROM in_statiintervento WHERE in_statiintervento.is_completato = 1)), 0) ) AS ore_rimanenti, DATEDIFF(data_conclusione, NOW()) AS giorni_rimanenti, data_conclusione, ore_preavviso_rinnovo, giorni_preavviso_rinnovo, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=co_contratti.idanagrafica) AS ragione_sociale FROM co_contratti WHERE idstato IN (SELECT id FROM co_staticontratti WHERE is_fatturabile = 1) AND rinnovabile = 1 AND YEAR(data_conclusione) > 1970 AND (SELECT id FROM co_contratti contratti WHERE contratti.idcontratto_prev = co_contratti.id) IS NULL HAVING (ore_rimanenti < ore_preavviso_rinnovo OR DATEDIFF(data_conclusione, NOW()) < ABS(giorni_preavviso_rinnovo)) ORDER BY giorni_rimanenti ASC, ore_rimanenti ASC) dati' WHERE `zz_widgets`.`name` = 'Contratti in scadenza';
+
+-- Segmento Attività/Promemoria per attività.
+INSERT INTO `zz_segments` (`id`, `id_module`, `name`, `clause`, `position`, `pattern`, `note`, `predefined`, `predefined_accredito`, `predefined_addebito`, `is_fiscale`) VALUES
+(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Interventi'), 'Tutti', '1=1', 'WHR', '####', '', 1, 0, 0, 0),
+(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Interventi'), 'Attività', 'orario_inizio BETWEEN ''|period_start|'' AND ''|period_end|'' OR orario_fine BETWEEN ''|period_start|'' AND ''|period_end|''', 'WHR', '####', '', 0, 0, 0, 0),
+(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Interventi'), 'Promemoria', '((in_interventi_tecnici.orario_inizio=''0000-00-00 00:00:00'' AND in_interventi_tecnici.orario_fine=''0000-00-00 00:00:00'') OR in_interventi_tecnici.id IS NULL)', 'WHR', '####', '', 0, 0, 0, 0);