diff --git a/modules/contratti/bulk.php b/modules/contratti/bulk.php index a6fc65a76..e9354570f 100755 --- a/modules/contratti/bulk.php +++ b/modules/contratti/bulk.php @@ -40,7 +40,6 @@ $idtipodocumento = $dbo->selectOne('co_tipidocumento', ['id'], [ 'dir' => 'entrata', ])['id']; - switch (post('op')) { case 'crea_fattura': $documenti = collect(); diff --git a/modules/emails/src/EmailHook.php b/modules/emails/src/EmailHook.php index f46fbd426..b6abc997a 100755 --- a/modules/emails/src/EmailHook.php +++ b/modules/emails/src/EmailHook.php @@ -95,9 +95,9 @@ class EmailHook extends Manager } // Invio effettivo - foreach ($lista as $lista_account) { + foreach ($lista as $mail) { try { - $email = EmailNotification::build($lista_account); + $email = EmailNotification::build($mail); $email->send(); } catch (Exception $e) { } diff --git a/modules/interventi/actions.php b/modules/interventi/actions.php index d10de4933..e71332322 100644 --- a/modules/interventi/actions.php +++ b/modules/interventi/actions.php @@ -214,37 +214,37 @@ switch (post('op')) { 'id_tecnico' => $tecnici_assegnati, ]); - if(!empty(post('ricorsiva'))){ + if (!empty(post('ricorsiva'))) { $periodicita = post('periodicita'); $data = post('data_inizio_ricorrenza'); - $interval = post('tipo_periodicita')!='manual' ? post('tipo_periodicita') : 'days'; + $interval = post('tipo_periodicita') != 'manual' ? post('tipo_periodicita') : 'days'; $stato = Stato::find(post('idstatoricorrenze')); // Estraggo le date delle ricorrenze - if (post('metodo_ricorrenza')=='data') { + if (post('metodo_ricorrenza') == 'data') { $data_fine = post('data_fine_ricorrenza'); - while(strtotime($data)<=strtotime($data_fine)){ + while (strtotime($data) <= strtotime($data_fine)) { $data = date('Y-m-d', strtotime('+'.$periodicita.' '.$interval.'', strtotime($data))); $w = date('w', strtotime($data)); //Escludo sabato e domenica - if($w=='6'){ + if ($w == '6') { $data = date('Y-m-d', strtotime('+2 day', strtotime($data))); - }else if($w=='0'){ + } elseif ($w == '0') { $data = date('Y-m-d', strtotime('+1 day', strtotime($data))); } - if ($data<=$data_fine) { + if ($data <= $data_fine) { $date_ricorrenze[] = $data; } } } else { $ricorrenze = post('numero_ricorrenze'); - for($i=0; $i<$ricorrenze; $i++){ + for ($i = 0; $i < $ricorrenze; ++$i) { $data = date('Y-m-d', strtotime('+'.$periodicita.' '.$interval.'', strtotime($data))); $w = date('w', strtotime($data)); //Escludo sabato e domenica - if($w=='6'){ + if ($w == '6') { $data = date('Y-m-d', strtotime('+2 day', strtotime($data))); - }else if($w=='0'){ + } elseif ($w == '0') { $data = date('Y-m-d', strtotime('+1 day', strtotime($data))); } @@ -252,7 +252,7 @@ switch (post('op')) { } } - foreach($date_ricorrenze as $data_ricorrenza){ + foreach ($date_ricorrenze as $data_ricorrenza) { $intervento = Intervento::find($id_record); $new = $intervento->replicate(); // Calcolo il nuovo codice @@ -274,16 +274,16 @@ switch (post('op')) { $diff = strtotime($sessione->orario_inizio) - strtotime($inizio_old); $orario_inizio = date('Y-m-d H:i:s', (strtotime($sessione->orario_inizio) + $diff)); } - + $diff_fine = strtotime($sessione->orario_fine) - strtotime($sessione->orario_inizio); $orario_fine = date('Y-m-d H:i:s', (strtotime($orario_inizio) + $diff_fine)); - + $new_sessione = $sessione->replicate(); $new_sessione->idintervento = $new->id; $new_sessione->orario_inizio = $orario_inizio; $new_sessione->orario_fine = $orario_fine; $new_sessione->save(); - + ++$numero_sessione; $inizio_old = $sessione->orario_inizio; } @@ -297,11 +297,11 @@ switch (post('op')) { 'id_tecnico' => $tecnici_assegnati, ]); - $n_ricorrenze++; + ++$n_ricorrenze; } flash()->info(tr('Aggiunte _NUM_ nuove ricorrenze!', [ - '_NUM_' => $n_ricorrenze, + '_NUM_' => $n_ricorrenze, ])); } diff --git a/modules/interventi/modutil.php b/modules/interventi/modutil.php index d74abd0c9..7aaf4c0bf 100755 --- a/modules/interventi/modutil.php +++ b/modules/interventi/modutil.php @@ -143,7 +143,6 @@ function aggiungi_intervento_in_fattura($id_intervento, $id_fattura, $descrizion $fattura = Fattura::find($id_fattura); $intervento = Intervento::find($id_intervento); - $data = $intervento->fine; $codice = $intervento->codice; diff --git a/modules/newsletter/actions.php b/modules/newsletter/actions.php index 5c085652e..f0d4ba719 100755 --- a/modules/newsletter/actions.php +++ b/modules/newsletter/actions.php @@ -24,7 +24,8 @@ use Modules\Emails\Mail; use Modules\Emails\Template; use Modules\ListeNewsletter\Lista; use Modules\Newsletter\Newsletter; -use Respect\Validation\Validator as v; +use Notifications\EmailNotification; +use PHPMailer\PHPMailer\Exception; include_once __DIR__.'/../../core.php'; @@ -61,42 +62,19 @@ switch (filter('op')) { break; case 'send': - $template = $newsletter->template; - $uploads = $newsletter->uploads()->pluck('id'); + $newsletter = Newsletter::find($id_record); $destinatari = $newsletter->destinatari(); $count = $destinatari->count(); for ($i = 0; $i < $count; ++$i) { $destinatario = $destinatari->skip($i)->first(); - $origine = $destinatario->getOrigine(); - - $anagrafica = $origine instanceof Anagrafica ? $origine : $origine->anagrafica; - - $abilita_newsletter = $anagrafica->enable_newsletter; - $email = $destinatario->email; - if (empty($email) || empty($abilita_newsletter) || !v::email()->validate($email)) { - continue; - } - - // Inizializzazione email - $mail = Mail::build($user, $template, $anagrafica->id); - - // Completamento informazioni - $mail->addReceiver($email); - $mail->subject = $newsletter->subject; - $mail->content = $newsletter->content; - $mail->id_newsletter = $newsletter->id; - - // Registrazione allegati - foreach ($uploads as $upload) { - $mail->addUpload($upload); - } - - $mail->save(); + $mail = $newsletter->inviaDestinatario($destinatario); // Aggiornamento riferimento per la newsletter - $destinatario->id_email = $mail->id; - $destinatario->save(); + if (!empty($mail)) { + $destinatario->id_email = $mail->id; + $destinatario->save(); + } } // Aggiornamento stato newsletter @@ -107,6 +85,38 @@ switch (filter('op')) { break; + case 'test': + $receiver_id = post('id'); + $receiver_type = post('type'); + + // Individuazione destinatario interessato + $newsletter = Newsletter::find($id_record); + $destinatario = $newsletter->destinatari() + ->where('record_type', '=', $receiver_type) + ->where('record_id', '=', $receiver_id) + ->first(); + + // Generazione email e tentativo di invio + $inviata = false; + if (!empty($destinatario)) { + $mail = $newsletter->inviaDestinatario($destinatario, true); + + try { + $email = EmailNotification::build($mail, true); + $email->send(); + + $inviata = true; + } catch (Exception $e) { + // $mail->delete(); + } + } + + echo json_encode([ + 'result' => $inviata, + ]); + + break; + case 'block': $mails = $newsletter->emails; diff --git a/modules/newsletter/ajax/table.php b/modules/newsletter/ajax/table.php index 34099113f..ed4f15f23 100644 --- a/modules/newsletter/ajax/table.php +++ b/modules/newsletter/ajax/table.php @@ -119,7 +119,10 @@ foreach ($destinatari_filtrati as $destinatario) { ' '.tr('Disabilitato').'' ).' ', - '