Skip to content

Commit 00bb47d

Browse files
fix: invio solleciti da bulk ragruppati per anagrafica
1 parent 17322f7 commit 00bb47d

1 file changed

Lines changed: 67 additions & 67 deletions

File tree

modules/scadenzario/bulk.php

Lines changed: 67 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -78,90 +78,90 @@
7878
$template = Template::where('name', 'Sollecito di pagamento raggruppato per anagrafica')->first();
7979

8080
$list = [];
81+
$id_records_inviati = [];
8182
$anagrafiche = [];
8283
$id_anagrafica = 0;
8384

84-
foreach ($id_records as $id) {
85-
$scadenze = $database->FetchArray('SELECT * FROM co_scadenziario LEFT JOIN (SELECT id as id_nota, ref_documento FROM co_documenti)as nota ON co_scadenziario.iddocumento = nota.ref_documento WHERE co_scadenziario.id = '.$id.' AND pagato < da_pagare AND nota.id_nota IS NULL ORDER BY idanagrafica, iddocumento');
86-
foreach ($scadenze as $key => $scadenza) {
87-
$scadenza = Scadenza::find($scadenza['id']);
88-
$documento = Fattura::find($scadenza['iddocumento']);
85+
$scadenze = $database->FetchArray('SELECT * FROM co_scadenziario LEFT JOIN (SELECT id as id_nota, ref_documento FROM co_documenti)as nota ON co_scadenziario.iddocumento = nota.ref_documento WHERE co_scadenziario.id IN ('.implode(',', $id_records).') AND pagato < da_pagare AND nota.id_nota IS NULL ORDER BY idanagrafica, iddocumento');
86+
foreach ($scadenze as $key => $scadenza) {
87+
$scadenza = Scadenza::find($scadenza['id']);
88+
$documento = Fattura::find($scadenza['iddocumento']);
8989

90-
// Controllo se è una fattura di vendita
91-
if ($documento->direzione == 'entrata' && $scadenza->scadenza <= date('Y-m-d')) {
92-
$id_documento = $documento->id;
93-
$id_anagrafica = $documento->idanagrafica;
90+
// Controllo se è una fattura di vendita
91+
if ($documento->direzione == 'entrata' && $scadenza->scadenza <= date('Y-m-d')) {
92+
$id_documento = $documento->id;
93+
$id_anagrafica = $documento->idanagrafica;
9494

95-
$fattura_allegata = $dbo->selectOne('zz_files', 'id', ['id_module' => $id_module, 'id_record' => $scadenza->id, 'original' => $scadenza->descrizione.'.pdf'])['id'];
95+
$fattura_allegata = $dbo->selectOne('zz_files', 'id', ['id_module' => $id_module, 'id_record' => $scadenza->id, 'original' => $scadenza->descrizione.'.pdf'])['id'];
9696

97-
// Allego stampa della fattura se non presente
98-
if (empty($fattura_allegata)) {
99-
$print_predefined = PrintTemplate::where('predefined', 1)->where('id_module', Module::where('name', 'Fatture di vendita')->first()->id)->first();
97+
// Allego stampa della fattura se non presente
98+
if (empty($fattura_allegata)) {
99+
$print_predefined = PrintTemplate::where('predefined', 1)->where('id_module', Module::where('name', 'Fatture di vendita')->first()->id)->first();
100100

101-
$print = Prints::render($print_predefined->id, $id_documento, null, true);
102-
$upload = Uploads::upload($print['pdf'], [
103-
'name' => $scadenza->descrizione,
104-
'original_name' => $scadenza->descrizione.'.pdf',
105-
'category' => 'Generale',
106-
'id_module' => $id_module,
107-
'id_record' => $scadenza->id,
108-
]);
101+
$print = Prints::render($print_predefined->id, $id_documento, null, true);
102+
$upload = Uploads::upload($print['pdf'], [
103+
'name' => $scadenza->descrizione,
104+
'original_name' => $scadenza->descrizione.'.pdf',
105+
'category' => 'Generale',
106+
'id_module' => $id_module,
107+
'id_record' => $scadenza->id,
108+
]);
109109

110-
$fattura_allegata = $dbo->selectOne('zz_files', 'id', ['id_module' => $id_module, 'id_record' => $scadenza->id, 'original' => $scadenza->descrizione.'.pdf'])['id'];
111-
}
110+
$fattura_allegata = $dbo->selectOne('zz_files', 'id', ['id_module' => $id_module, 'id_record' => $scadenza->id, 'original' => $scadenza->descrizione.'.pdf'])['id'];
111+
}
112+
113+
// Selezione destinatari e invio mail
114+
if (!empty($template)) {
115+
// Invio unico per scadenze della stessa anagrafica
116+
if (!in_array($documento->idanagrafica, $anagrafiche)) {
117+
$creata_mail = false;
118+
$emails = [];
119+
120+
// Aggiungo email anagrafica
121+
if (!empty($documento->anagrafica->email)) {
122+
$emails[] = $documento->anagrafica->email;
123+
$mail = Mail::build(auth()->getUser(), $template, $scadenza->id);
124+
$mail->addReceiver($documento->anagrafica->email);
125+
$creata_mail = true;
126+
}
112127

113-
// Selezione destinatari e invio mail
114-
if (!empty($template)) {
115-
// Invio unico per scadenze della stessa anagrafica
116-
if (!in_array($documento->idanagrafica, $anagrafiche)) {
117-
$creata_mail = false;
118-
$emails = [];
119-
120-
// Aggiungo email anagrafica
121-
if (!empty($documento->anagrafica->email)) {
122-
$emails[] = $documento->anagrafica->email;
123-
$mail = Mail::build(auth()->getUser(), $template, $scadenza->id);
124-
$mail->addReceiver($documento->anagrafica->email);
128+
// Aggiungo email referenti in base alla mansione impostata nel template
129+
$mansioni = $dbo->select('em_mansioni_template', 'idmansione', [], ['id_template' => $template->id]);
130+
foreach ($mansioni as $mansione) {
131+
$referenti = $dbo->table('an_referenti')->where('idmansione', $mansione['idmansione'])->where('idanagrafica', $id_anagrafica)->where('email', '!=', '')->get();
132+
if (!$referenti->isEmpty() && $creata_mail == false) {
133+
$mail = Mail::build(auth()->getUser(), $template, $id);
125134
$creata_mail = true;
126135
}
127136

128-
// Aggiungo email referenti in base alla mansione impostata nel template
129-
$mansioni = $dbo->select('em_mansioni_template', 'idmansione', [], ['id_template' => $template->id]);
130-
foreach ($mansioni as $mansione) {
131-
$referenti = $dbo->table('an_referenti')->where('idmansione', $mansione['idmansione'])->where('idanagrafica', $id_anagrafica)->where('email', '!=', '')->get();
132-
if (!$referenti->isEmpty() && $creata_mail == false) {
133-
$mail = Mail::build(auth()->getUser(), $template, $id);
134-
$creata_mail = true;
135-
}
136-
137-
foreach ($referenti as $referente) {
138-
if (!in_array($referente->email, $emails)) {
139-
$emails[] = $referente->email;
140-
$mail->addReceiver($referente->email);
141-
}
137+
foreach ($referenti as $referente) {
138+
if (!in_array($referente->email, $emails)) {
139+
$emails[] = $referente->email;
140+
$mail->addReceiver($referente->email);
142141
}
143142
}
144143
}
145144
}
145+
}
146146

147-
if (!empty($emails)) {
148-
OperationLog::setInfo('id_email', $mail->id);
149-
OperationLog::setInfo('id_module', $id_module);
150-
OperationLog::setInfo('id_record', $scadenza->id);
151-
OperationLog::build('send-email');
147+
if (!empty($emails)) {
148+
OperationLog::setInfo('id_email', $mail->id);
149+
OperationLog::setInfo('id_module', $id_module);
150+
OperationLog::setInfo('id_record', $scadenza->id);
151+
OperationLog::build('send-email');
152152

153-
array_push($list, $documento->numero_esterno);
154-
array_push($anagrafiche, $scadenza->idanagrafica);
153+
array_push($list, $documento->numero_esterno);
154+
array_push($id_records_inviati, $scadenza->id);
155+
array_push($anagrafiche, $scadenza->idanagrafica);
155156

156-
$next_scadenza = $scadenze[$key + 1];
157-
// Allego unica fattura per più scadenze collegate
158-
if (!empty($fattura_allegata) && $scadenza->iddocumento != $next_scadenza->iddocumento) {
159-
$mail->addUpload($fattura_allegata);
160-
}
161-
// Invio unico per scadenze della stessa anagrafica
162-
if ($scadenza->idanagrafica != $next_scadenza->idanagrafica) {
163-
$mail->save();
164-
}
157+
$next_scadenza = $scadenze[$key + 1];
158+
// Allego unica fattura per più scadenze collegate
159+
if (!empty($fattura_allegata) && $scadenza->iddocumento != $next_scadenza['iddocumento']) {
160+
$mail->addUpload($fattura_allegata);
161+
}
162+
// Invio unico per scadenze della stessa anagrafica
163+
if ($scadenza->idanagrafica != $next_scadenza['idanagrafica']) {
164+
$mail->save();
165165
}
166166
}
167167
}
@@ -174,9 +174,9 @@
174174
}
175175

176176
// Se non sono stati inviati alcuni i solleciti, mostro un messaggio di avviso
177-
if (!empty(array_diff($id_records, $list))) {
177+
if (!empty(array_diff($id_records, $id_records_inviati))) {
178178
flash()->warning(tr('_NUM_ solleciti non sono stati inviati.', [
179-
'_NUM_' => sizeof(array_diff($id_records, $list)),
179+
'_NUM_' => sizeof(array_diff($id_records, $id_records_inviati)),
180180
]));
181181
}
182182

0 commit comments

Comments
 (0)