This commit is contained in:
MatteoPistorello 2021-06-03 09:19:30 +02:00
commit 4aba33ee4f
3 changed files with 71 additions and 16 deletions

View File

@ -36,7 +36,7 @@ switch (post('op')) {
if (empty(post('codice'))) { if (empty(post('codice'))) {
$codice = $dbo->fetchOne('SELECT MAX(id) as codice FROM mg_articoli')['codice'] + 1; $codice = $dbo->fetchOne('SELECT MAX(id) as codice FROM mg_articoli')['codice'] + 1;
} else { } else {
$codice = post('codice'); $codice = post('codice', true);
} }
// Inserisco l'articolo e avviso se esiste un altro articolo con stesso codice. // Inserisco l'articolo e avviso se esiste un altro articolo con stesso codice.
@ -71,7 +71,7 @@ switch (post('op')) {
if (isAjaxRequest()) { if (isAjaxRequest()) {
echo json_encode([ echo json_encode([
'id' => $id_record, 'id' => $id_record,
'text' => post('codice').' - '.post('descrizione'), 'text' => post('codice', true).' - '.post('descrizione'),
'data' => [ 'data' => [
'descrizione' => post('descrizione'), 'descrizione' => post('descrizione'),
'prezzo_acquisto' => post('prezzo_acquisto'), 'prezzo_acquisto' => post('prezzo_acquisto'),
@ -96,12 +96,12 @@ switch (post('op')) {
])->count(); ])->count();
if ($numero_codice > 0) { if ($numero_codice > 0) {
flash()->warning(tr('Attenzione: il codice _CODICE_ è già stato utilizzato _N_ volta', [ flash()->warning(tr('Attenzione: il codice _CODICE_ è già stato utilizzato _N_ volta', [
'_CODICE_' => post('codice'), '_CODICE_' => post('codice', true),
'_N_' => $numero_codice, '_N_' => $numero_codice,
])); ]));
} }
$articolo->codice = post('codice'); $articolo->codice = post('codice', true);
$articolo->barcode = post('barcode'); $articolo->barcode = post('barcode');
$articolo->descrizione = post('descrizione'); $articolo->descrizione = post('descrizione');
$articolo->um = post('um'); $articolo->um = post('um');
@ -212,7 +212,7 @@ switch (post('op')) {
// Duplica articolo // Duplica articolo
case 'copy': case 'copy':
$new = $articolo->replicate(); $new = $articolo->replicate();
$new->codice = post('codice'); $new->codice = post('codice', true);
$new->qta = 0; $new->qta = 0;
$new->save(); $new->save();

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;
@ -132,6 +163,22 @@ switch (filter('op')) {
break; break;
case 'remove_all_receiver':
//$receiver = post('id');
$anagrafiche = $newsletter->anagrafiche;
foreach ($anagrafiche as $anagrafica) {
$newsletter->anagrafiche()->detach($anagrafica->id);
}
flash()->info(tr('Tutti i destinatari sono stati rimossi dalla newsletter!'));
break;
// Duplica newsletter // Duplica newsletter
case 'copy': case 'copy':

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.'">
@ -200,10 +203,15 @@ if (!$anagrafiche->isEmpty()) {
echo ' echo '
</tbody> </tbody>
</table>'; </table>
<a class="btn btn-danger ask pull-right" data-backto="record-edit" data-op="remove_all_receiver">
<i class="fa fa-trash"> Elimina tutti</i>
</a>
';
} 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 '