mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-23 14:57:46 +01:00
Miglioramento gestione invio newsletter
This commit is contained in:
parent
458fa5baf9
commit
0b140f93ce
@ -116,7 +116,7 @@ function start_datatables() {
|
||||
} else {
|
||||
$('#mini-loader').hide();
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -141,7 +141,7 @@ $(document).ready(function() {
|
||||
senza_consenso.hide();
|
||||
}
|
||||
|
||||
$("#destinatari").DataTable({
|
||||
const table = $("#destinatari").DataTable({
|
||||
language: globals.translations.datatables,
|
||||
retrieve: true,
|
||||
ordering: false,
|
||||
@ -159,5 +159,13 @@ $(document).ready(function() {
|
||||
searchDelay: 500,
|
||||
pageLength: 50,
|
||||
});
|
||||
|
||||
table.on("processing.dt", function (e, settings, processing) {
|
||||
if (processing) {
|
||||
$("#mini-loader").show();
|
||||
} else {
|
||||
$("#mini-loader").hide();
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>';
|
||||
|
@ -24,6 +24,7 @@ use Modules\Emails\Mail;
|
||||
use Modules\Emails\Template;
|
||||
use Modules\ListeNewsletter\Lista;
|
||||
use Modules\Newsletter\Newsletter;
|
||||
use Respect\Validation\Validator as v;
|
||||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
@ -64,10 +65,16 @@ switch (filter('op')) {
|
||||
$uploads = $newsletter->uploads()->pluck('id');
|
||||
|
||||
$destinatari = $newsletter->destinatari();
|
||||
foreach ($destinatari as $destinatario) {
|
||||
$anagrafica = $destinatario instanceof Anagrafica ? $destinatario : $destinatario->anagrafica;
|
||||
$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;
|
||||
if (empty($destinatario->email) || empty($abilita_newsletter)) {
|
||||
$email = $destinatario->email;
|
||||
if (empty($email) || empty($abilita_newsletter) || !v::email()->validate($email)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -75,7 +82,7 @@ switch (filter('op')) {
|
||||
$mail = Mail::build($user, $template, $anagrafica->id);
|
||||
|
||||
// Completamento informazioni
|
||||
$mail->addReceiver($destinatario->email);
|
||||
$mail->addReceiver($email);
|
||||
$mail->subject = $newsletter->subject;
|
||||
$mail->content = $newsletter->content;
|
||||
$mail->id_newsletter = $newsletter->id;
|
||||
@ -88,13 +95,8 @@ switch (filter('op')) {
|
||||
$mail->save();
|
||||
|
||||
// Aggiornamento riferimento per la newsletter
|
||||
$database->update('em_newsletter_receiver', [
|
||||
'id_email' => $mail->id,
|
||||
], [
|
||||
'record_type' => get_class($destinatario),
|
||||
'record_id' => $destinatario->id,
|
||||
'id_newsletter' => $newsletter->id,
|
||||
]);
|
||||
$destinatario->id_email = $mail->id;
|
||||
$destinatario->save();
|
||||
}
|
||||
|
||||
// Aggiornamento stato newsletter
|
||||
|
@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
use Models\Module;
|
||||
use Modules\Anagrafiche\Anagrafica;
|
||||
use Modules\Anagrafiche\Referente;
|
||||
use Modules\Anagrafiche\Sede;
|
||||
@ -56,6 +57,7 @@ $destinatari_filtrati = (clone $destinatari)
|
||||
->skip($start)->take($length)
|
||||
->get();
|
||||
|
||||
$modulo_anagrafiche = Module::pool('Anagrafiche');
|
||||
$righe = [];
|
||||
foreach ($destinatari_filtrati as $destinatario) {
|
||||
$origine = $destinatario->getOrigine();
|
||||
@ -84,7 +86,7 @@ foreach ($destinatari_filtrati as $destinatario) {
|
||||
'readonly' => '1',
|
||||
'class' => 'email-mask',
|
||||
'value' => $origine->email,
|
||||
'validation' => 'email',
|
||||
'validation' => 'email|'.$modulo_anagrafiche->id.'|'.$destinatario->record_id,
|
||||
]) :
|
||||
'<span class="text-danger"><i class="fa fa-close"></i> '.tr('Indirizzo e-mail mancante').'</span>'
|
||||
).'
|
||||
|
@ -213,7 +213,7 @@ $(document).ready(function() {
|
||||
senza_consenso.hide();
|
||||
}
|
||||
|
||||
$("#destinatari").DataTable({
|
||||
const table = $("#destinatari").DataTable({
|
||||
language: globals.translations.datatables,
|
||||
retrieve: true,
|
||||
ordering: false,
|
||||
@ -231,5 +231,13 @@ $(document).ready(function() {
|
||||
searchDelay: 500,
|
||||
pageLength: 50,
|
||||
});
|
||||
|
||||
table.on("processing.dt", function (e, settings, processing) {
|
||||
if (processing) {
|
||||
$("#mini-loader").show();
|
||||
} else {
|
||||
$("#mini-loader").hide();
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>';
|
||||
|
Loading…
x
Reference in New Issue
Block a user