Skip to content

Commit 36c50d2

Browse files
committed
fix: invio mail con allegati
1 parent 985faa8 commit 36c50d2

3 files changed

Lines changed: 28 additions & 8 deletions

File tree

actions.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -421,8 +421,16 @@
421421

422422
// Allegati originali
423423
$files = post('uploads');
424+
425+
// Assicuriamoci che $files sia un array
426+
if (!is_array($files)) {
427+
$files = $files ? [$files] : [];
428+
}
429+
424430
foreach ($files as $file) {
425-
$mail->addUpload($file);
431+
if (!empty($file)) {
432+
$mail->addUpload($file);
433+
}
426434
}
427435

428436
// Salvataggio email nella coda di invio

mail.php

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -157,18 +157,24 @@
157157
</div>';
158158

159159
$uploads = [];
160+
160161
if ($smtp['pec'] == 1 && $module->name == 'Fatture di vendita') {
161-
$uploads = $dbo->fetchArray('SELECT zz_files.id FROM zz_files LEFT JOIN zz_files_categories ON zz_files.id_category = zz_files_categories.id WHERE zz_files.id_module = '.prepare($module['id']).' AND zz_files.id_record = '.prepare($id_record).' AND zz_files_categories.name = \'Fattura Elettronica\'');
162-
$uploads = array_column($uploads, 'id');
162+
$pec_uploads = $dbo->fetchArray('SELECT zz_files.id FROM zz_files LEFT JOIN zz_files_categories ON zz_files.id_category = zz_files_categories.id WHERE zz_files.id_module = '.prepare($module['id']).' AND zz_files.id_record = '.prepare($id_record).' AND (zz_files_categories.name = \'Fattura Elettronica\' OR zz_files_categories.name = \'Fattura elettronica\')');
163+
$uploads = array_merge($uploads, array_column($pec_uploads, 'id'));
163164
}
164165

165-
// Ottieni gli allegati dalle categorie associate al template
166166
$template_uploads = $template->uploads($id_record);
167167
if (!empty($template_uploads)) {
168168
$uploads = array_merge($uploads, $template_uploads->pluck('id')->toArray());
169-
$uploads = array_unique($uploads);
170169
}
171170

171+
if (empty($template->categories) && empty($uploads)) {
172+
$all_document_uploads = $dbo->fetchArray('SELECT `id` FROM `zz_files` WHERE `id_module` = '.prepare($id_module).' AND `id_record` = '.prepare($id_record));
173+
$uploads = array_merge($uploads, array_column($all_document_uploads, 'id'));
174+
}
175+
176+
$uploads = array_unique($uploads);
177+
172178
// Allegati
173179
echo '
174180

modules/emails/src/Mail.php

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,10 @@ public function addUpload($file_id, $name = null)
7272
{
7373
$file = Upload::find($file_id);
7474

75+
if (!$file) {
76+
return false;
77+
}
78+
7579
// duplica il file
7680
$upload = $file->copia([
7781
'id_module' => \Models\Module::where('name', 'Stato email')->first()->id,
@@ -81,6 +85,8 @@ public function addUpload($file_id, $name = null)
8185
$name = $name ?: $file->name;
8286

8387
$this->attachments()->attach($upload->id, ['id_email' => $this->id, 'name' => $name, 'type' => 'file']);
88+
89+
return true;
8490
}
8591

8692
public function resetUploads()
@@ -102,12 +108,12 @@ public function addPrint($print_id, $name = null)
102108
{
103109
// Genera la stampa come PDF
104110
$print = \Prints::render($print_id, $this->id_record, null, true);
105-
111+
106112
// Ottieni il modulo "Coda d'invio"
107113
$id_module = \Models\Module::where("name", "Stato email")->first()->id;
108114

109115
$name = $name ?: $print['name'];
110-
116+
111117
// Salva il file nella tabella zz_files
112118
$upload = \Uploads::upload($print['pdf'], [
113119
'name' => $name,
@@ -116,7 +122,7 @@ public function addPrint($print_id, $name = null)
116122
'id_module' => $id_module,
117123
'id_record' => $this->id,
118124
]);
119-
125+
120126
// Collega il file alla tabella em_email_attachment
121127
$this->attachments()->attach($upload->id, ['id_email' => $this->id, 'name' => $name, 'type' => 'print']);
122128
}

0 commit comments

Comments
 (0)