Compare commits

...

4 Commits

Author SHA1 Message Date
Luca 4d6863bc37 Aggiunti badge informativi indirizzi email newsletter 2021-06-01 16:50:23 +02:00
Luca 0cea33c34d Controllo su indirizzi e-mail aggiunti alla newsletter 2021-06-01 15:17:52 +02:00
MatteoPistorello 290d8bdb7f Merge branch 'master' of https://github.com/devcode-it/openstamanager 2021-06-01 12:11:45 +02:00
MatteoPistorello 9f5a59d9ec Fix calcolo scadenze 2021-06-01 12:11:43 +02:00
3 changed files with 44 additions and 11 deletions

View File

@ -119,7 +119,38 @@ switch (filter('op')) {
$newsletter->anagrafiche()->syncWithoutDetaching($receivers); $newsletter->anagrafiche()->syncWithoutDetaching($receivers);
flash()->info(tr('Aggiunti nuovi destinatari alla newsletter!')); //Controllo indirizzo e-mail aggiunto
foreach ($newsletter->anagrafiche as $anagrafica) {
if (!empty($anagrafica['email'])){
$check = Validate::isValidEmail($anagrafica['email']);
if (empty($check['valid-format'])) {
$errors[] = $anagrafica['email'];
}
}else{
$errors[] = tr('Indirizzo e-mail mancante per "_EMAIL_"', [
'_EMAIL_' => $anagrafica['ragione_sociale'],
]);
}
}
if (!empty($errors)) {
$message = '<ul>';
foreach ($errors as $error) {
$message .= '<li>'.$error.'</li>';
}
$message .= '</ul>';
}
if (!empty($message)) {
flash()->warning(tr('Attenzione questi indirizzi e-mail non sembrano essere validi: _EMAIL_ ', [
'_EMAIL_' => $message,
]));
}else{
flash()->info(tr('Nuovi destinatari aggiunti correttamente alla newsletter!'));
}
break; break;

View File

@ -146,7 +146,9 @@ echo '
<div class="panel-heading"> <div class="panel-heading">
<h3 class="panel-title"> <h3 class="panel-title">
'.tr('Destinatari').' '.tr('Destinatari').'
<span class="badge">'.$anagrafiche->count().'</span> <span class="label label-info">'.$anagrafiche->count().'</span>
'.(($anagrafiche->where('email', '')->count()>0) ? ' <span title="'.tr('Indirizzi e-mail mancanti').'" class="tip label label-warning">'.$anagrafiche->where('email', '')->count().'</span>' : '')
.(($anagrafiche->where('enable_newsletter', false)->count()>0) ? ' <span title="'.tr('Indirizzi e-mail senza consenso per newsletter').'" class="tip label label-danger">'.$anagrafiche->where('enable_newsletter', false)->count().'</span>' : '').'
</h3> </h3>
</div> </div>
@ -162,7 +164,7 @@ if (!$anagrafiche->isEmpty()) {
<th>'.tr('Tipologia').'</th> <th>'.tr('Tipologia').'</th>
<th class="text-center">'.tr('E-mail').'</th> <th class="text-center">'.tr('E-mail').'</th>
<th class="text-center">'.tr('Data di invio').'</th> <th class="text-center">'.tr('Data di invio').'</th>
<th class="text-center" width="200">'.tr('Newsletter').'</th> <th class="text-center">'.tr('Newsletter').'</th>
<th class="text-center" width="60">#</th> <th class="text-center" width="60">#</th>
</tr> </tr>
</thead> </thead>
@ -173,22 +175,23 @@ if (!$anagrafiche->isEmpty()) {
$mail_id = $anagrafica->pivot->id_email; $mail_id = $anagrafica->pivot->id_email;
$mail = Mail::find($mail_id); $mail = Mail::find($mail_id);
if (!empty($mail) && !empty($mail->sent_at)) { if (!empty($mail) && !empty($mail->sent_at)) {
$data = '<span class="label label-success" ><i class="fa fa-paper-plane" aria-hidden="true"></i> '. timestampFormat($mail->sent_at).'</span>'; $data = '<span class="fa fa-paper-plane text-success" > '. timestampFormat($mail->sent_at).'</span>';
} else { } else {
$data = '<span class="label label-info" ><i class="fa fa-clock-o" aria-hidden="true"></i> $data = '<span class="fa fa-clock-o text-info" >
'.tr('Non ancora inviata').'</span>'; '.tr('Non ancora inviata').'</span>';
} }
echo ' echo '
<tr '.((empty($anagrafica->email) || empty($anagrafica->enable_newsletter)) ? 'class="bg-danger"' : '').'> <tr '.(empty($anagrafica->email) ? 'class="bg-warning"' : '').'>
<td>'.Modules::link('Anagrafiche', $anagrafica->id, $anagrafica->ragione_sociale).'</td> <td>'.Modules::link('Anagrafiche', $anagrafica->id, $anagrafica->ragione_sociale).'</td>
<td class="text-left">'.$database->fetchOne('SELECT GROUP_CONCAT(an_tipianagrafiche.descrizione) AS descrizione FROM an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica = an_tipianagrafiche.idtipoanagrafica WHERE an_tipianagrafiche_anagrafiche.idanagrafica='.prepare($anagrafica->id))['descrizione'].'</td> <td class="text-left">'.$database->fetchOne('SELECT GROUP_CONCAT(an_tipianagrafiche.descrizione) AS descrizione FROM an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica = an_tipianagrafiche.idtipoanagrafica WHERE an_tipianagrafiche_anagrafiche.idanagrafica='.prepare($anagrafica->id))['descrizione'].'</td>
<td class="text-left">'.$anagrafica->tipo.'</td> <td class="text-left">'.$anagrafica->tipo.'</td>
<td class="text-left"> <td class="text-left">
{[ "type": "text", "name": "email", "id": "email_'.rand(0,99999).'", "readonly": "1", "class": "email-mask", "value": "'.$anagrafica->email.'", "validation": "email" ]}</td> '.((!empty($anagrafica->email) ? '
{[ "type": "text", "name": "email", "id": "email_'.rand(0,99999).'", "readonly": "1", "class": "email-mask", "value": "'.$anagrafica->email.'", "validation": "email" ]}': '<span class="fa fa-warning text-warning"> '.tr('Indirizzo e-mail mancante').'</span>')).'</td>
<td class="text-center">'.$data.'</td> <td class="text-center">'.$data.'</td>
<td class="text-left"> <td class="text-left">
{[ "type": "checkbox", "readonly": "1","name": "disable_newsletter", "value": "'.!empty($anagrafica->enable_newsletter).'" ]} '.((!empty($anagrafica->enable_newsletter)) ? '<span class="fa fa-check text-success"> '.tr('Abilitato').'</span>': '<span class="fa fa-close text-danger"> '.tr('Disabilitato').'</span>').'
</td> </td>
<td class="text-center"> <td class="text-center">
<a class="btn btn-danger ask btn-xs" data-backto="record-edit" data-op="remove_receiver" data-id="'.$anagrafica->id.'"> <a class="btn btn-danger ask btn-xs" data-backto="record-edit" data-op="remove_receiver" data-id="'.$anagrafica->id.'">
@ -202,8 +205,7 @@ if (!$anagrafiche->isEmpty()) {
</tbody> </tbody>
</table>'; </table>';
} else { } else {
echo ' echo '<div class="alert alert-info fa fa-info-circle"> '.tr('Nessuna anagrafica collegata alla campagna').'.</div>';
<p>'.tr('Nessuna anagrafica collegata alla campagna').'.</p>';
} }
echo ' echo '

View File

@ -60,7 +60,7 @@ class Pagamento extends Model
// Ultimo del mese // Ultimo del mese
elseif ($rata['giorno'] < 0) { elseif ($rata['giorno'] < 0) {
// Offset della rata in mesi // Offset della rata in mesi
$date->modify('+'.$rata['num_giorni']); $date->modify('+'.($rata['num_giorni'].' day'));
$date->modify('last day of this month'); $date->modify('last day of this month');
// Opzione ultimo del mese più X giorni // Opzione ultimo del mese più X giorni