Skip to content

Commit 30d1da1

Browse files
fix: gestione allegati
1 parent 589901c commit 30d1da1

19 files changed

Lines changed: 303 additions & 219 deletions

File tree

actions.php

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -233,18 +233,6 @@
233233
}
234234
}
235235

236-
// Modifica nome della categoria degli allegati
237-
elseif (filter('op') == 'modifica-categoria-allegato') {
238-
$category = post('category');
239-
$name = post('name');
240-
241-
$uploads = $structure->uploads($id_record)->where('category', $category);
242-
foreach ($uploads as $upload) {
243-
$upload->category = $name;
244-
$upload->save();
245-
}
246-
}
247-
248236
// Validazione dati
249237
elseif (filter('op') == 'validate') {
250238
// Lettura informazioni di base

modules/articoli/src/Articolo.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ public function getImageAttribute()
274274

275275
$fileinfo = \Uploads::fileInfo($upload->filename);
276276

277-
$directory = '/'.$module->upload_directory.'/';
277+
$directory = '/files/'.$module->attachments_directory.'/';
278278
$image = $directory.$upload->filename;
279279
$image_thumbnail = $directory.$fileinfo['filename'].'_thumb600.'.$fileinfo['extension'];
280280

modules/articoli/src/Marca.php

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
use Common\SimpleModelTrait;
2424
use Illuminate\Database\Eloquent\Model;
25+
use Models\Module;
2526
use Traits\HierarchyTrait;
2627
use Traits\RecordTrait;
2728

@@ -47,6 +48,35 @@ public function articoli()
4748
return $this->hasMany(Articolo::class, 'id_marca');
4849
}
4950

51+
public function getImmagineUploadAttribute()
52+
{
53+
$module = Module::where('name', 'Marche')->first();
54+
55+
return $module->files($this->id, true)->where('key', 'cover')->first();
56+
}
57+
58+
public function getImageAttribute()
59+
{
60+
$module = Module::where('name', 'Marche')->first();
61+
$upload = $module->files($this->id, true)
62+
->where('key', 'cover')
63+
->first();
64+
65+
if (empty($upload)) {
66+
return null;
67+
}
68+
69+
$fileinfo = \Uploads::fileInfo($upload->filename);
70+
71+
$directory = '/files/'.$module->attachments_directory.'/';
72+
$image = $directory.$upload->filename;
73+
$image_thumbnail = $directory.$fileinfo['filename'].'_thumb600.'.$fileinfo['extension'];
74+
75+
$url = file_exists(base_dir().$image_thumbnail) ? base_path_osm().$image_thumbnail : base_path_osm().$image;
76+
77+
return $url;
78+
}
79+
5080
public function getModuleAttribute()
5181
{
5282
return 'marche';

modules/checklists/src/Check.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ public function getImageAttribute()
189189
$module = Module::where('id', $file->id_module)->first();
190190
$fileinfo = \Uploads::fileInfo($file->filename);
191191

192-
$directory = '/'.$module->upload_directory.'/';
192+
$directory = '/files/'.$module->attachments_directory.'/';
193193
$image = $directory.$file->filename;
194194
$image_thumbnail = $directory.$fileinfo['filename'].'_thumb600.'.$fileinfo['extension'];
195195

modules/impianti/src/Impianto.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public function getImageAttribute()
7777

7878
$fileinfo = \Uploads::fileInfo($upload->filename);
7979

80-
$directory = '/'.$module->upload_directory.'/';
80+
$directory = '/files/'.$module->attachments_directory.'/';
8181
$image = $directory.$upload->filename;
8282
$image_thumbnail = $directory.$fileinfo['filename'].'_thumb600.'.$fileinfo['extension'];
8383

modules/interventi/actions.php

Lines changed: 101 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -965,13 +965,11 @@
965965
break;
966966

967967
case 'firma':
968+
$intervento = Intervento::find($id_record);
968969
if (is_writable(Uploads::getDirectory($id_module))) {
969970
if (post('firma_base64') != '') {
970971
// Salvataggio firma
971-
$firma_nome = post('firma_nome');
972-
973972
$data = explode(',', post('firma_base64'));
974-
975973
$img = getImageManager()->read(base64_decode($data[1]));
976974
$img->resize(680, 202, function ($constraint) {
977975
$constraint->aspectRatio();
@@ -981,69 +979,66 @@
981979
$img->brightness((float) setting('Luminosità firma Wacom'));
982980
$img->contrast((float) setting('Contrasto firma Wacom'));
983981
}
982+
$encoded_image = $img->toJpeg();
983+
$file_content = $encoded_image->toString();
984+
985+
// Upload del file in zz_files
986+
$upload = Uploads::upload($file_content, [
987+
'name' => 'firma.jpg',
988+
'category' => 'Firme',
989+
'id_module' => $id_module,
990+
'id_record' => $id_record,
991+
'key' => 'signature',
992+
]);
984993

985-
// Salva temporaneamente il file per l'upload
986-
$temp_file = base_dir().'/files/interventi/firma_temp_'.time().'.jpg';
987-
if (!$img->save($temp_file)) {
988-
flash()->error(tr('Impossibile creare il file.'));
994+
if (empty($upload)) {
995+
flash()->error(tr('Errore durante il caricamento della firma!'));
989996
} else {
990-
// Upload del file in zz_files con key='signature_nome_data'
991-
$data_firma = date('Y-m-d');
992-
$upload = Uploads::upload($temp_file, [
993-
'name' => 'Firma',
994-
'category' => 'Firme',
995-
'id_module' => $id_module,
996-
'id_record' => $id_record,
997-
'key' => 'signature_'.$firma_nome.'_'.$data_firma,
998-
]);
997+
flash()->info(tr('Firma salvata correttamente.'));
999998

1000-
if (empty($upload)) {
1001-
flash()->error(tr('Errore durante il caricamento della firma!'));
1002-
} else {
1003-
flash()->info(tr('Firma salvata correttamente.'));
999+
$intervento->firma_data = date('Y-m-d H:i:s');
1000+
$intervento->firma_nome = post('firma_nome');
1001+
$intervento->save();
10041002

1005-
$id_stato = setting("Stato dell'attività dopo la firma");
1006-
$stato = $dbo->selectOne('in_statiintervento', '*', ['id' => $id_stato]);
1007-
$intervento = Intervento::find($id_record);
1008-
if (!empty($stato)) {
1009-
$intervento = Intervento::find($id_record);
1010-
$intervento->idstatointervento = $stato['id'];
1011-
$intervento->save();
1012-
}
1003+
$id_stato = setting("Stato dell'attività dopo la firma");
1004+
$stato = $dbo->selectOne('in_statiintervento', '*', ['id' => $id_stato]);
1005+
if (!empty($stato)) {
1006+
$intervento->idstatointervento = $stato['id'];
1007+
$intervento->save();
10131008
}
1009+
}
10141010

1015-
// Notifica chiusura intervento
1016-
if (!empty($stato['notifica'])) {
1017-
$template = Template::find($stato['id_email']);
1011+
// Notifica chiusura intervento
1012+
if (!empty($stato['notifica'])) {
1013+
$template = Template::find($stato['id_email']);
10181014

1019-
if (!empty($stato['destinatari'])) {
1015+
if (!empty($stato['destinatari'])) {
1016+
$mail = Mail::build(auth_osm()->getUser(), $template, $id_record);
1017+
$mail->addReceiver($stato['destinatari']);
1018+
$mail->save();
1019+
}
1020+
1021+
if (!empty($stato['notifica_cliente'])) {
1022+
if (!empty($intervento->anagrafica->email)) {
10201023
$mail = Mail::build(auth_osm()->getUser(), $template, $id_record);
1021-
$mail->addReceiver($stato['destinatari']);
1024+
$mail->addReceiver($intervento->anagrafica->email);
10221025
$mail->save();
10231026
}
1027+
}
10241028

1025-
if (!empty($stato['notifica_cliente'])) {
1026-
if (!empty($intervento->anagrafica->email)) {
1027-
$mail = Mail::build(auth_osm()->getUser(), $template, $id_record);
1028-
$mail->addReceiver($intervento->anagrafica->email);
1029-
$mail->save();
1030-
}
1031-
}
1032-
1033-
if (!empty($stato['notifica_tecnici'])) {
1034-
$tecnici_intervento = $dbo->select('in_interventi_tecnici', 'idtecnico', [], ['idintervento' => $id_record]);
1035-
$tecnici_assegnati = $dbo->select('in_interventi_tecnici_assegnati', 'id_tecnico AS idtecnico', [], ['id_intervento' => $id_record]);
1036-
$tecnici = array_unique(array_merge($tecnici_intervento, $tecnici_assegnati), SORT_REGULAR);
1029+
if (!empty($stato['notifica_tecnici'])) {
1030+
$tecnici_intervento = $dbo->select('in_interventi_tecnici', 'idtecnico', [], ['idintervento' => $id_record]);
1031+
$tecnici_assegnati = $dbo->select('in_interventi_tecnici_assegnati', 'id_tecnico AS idtecnico', [], ['id_intervento' => $id_record]);
1032+
$tecnici = array_unique(array_merge($tecnici_intervento, $tecnici_assegnati), SORT_REGULAR);
10371033

1038-
foreach ($tecnici as $tecnico) {
1039-
$mail_tecnico = $dbo->selectOne('an_anagrafiche', '*', ['idanagrafica' => $tecnico]);
1040-
if (!empty($mail_tecnico['email'])) {
1041-
if (!empty($template)) {
1042-
$mail = Mail::build(auth_osm()->getUser(), $template, $id_record);
1043-
$mail->addReceiver($mail_tecnico['email']);
1044-
$mail->save();
1045-
flash()->info(tr('Notifica al tecnico aggiunta correttamente.'));
1046-
}
1034+
foreach ($tecnici as $tecnico) {
1035+
$mail_tecnico = $dbo->selectOne('an_anagrafiche', '*', ['idanagrafica' => $tecnico]);
1036+
if (!empty($mail_tecnico['email'])) {
1037+
if (!empty($template)) {
1038+
$mail = Mail::build(auth_osm()->getUser(), $template, $id_record);
1039+
$mail->addReceiver($mail_tecnico['email']);
1040+
$mail->save();
1041+
flash()->info(tr('Notifica al tecnico aggiunta correttamente.'));
10471042
}
10481043
}
10491044
}
@@ -1068,79 +1063,75 @@
10681063

10691064
if (post('firma_base64') != '') {
10701065
foreach ($id_records as $id_record) {
1071-
// Salvataggio firma
1072-
$firma_nome = post('firma_nome');
1066+
$intervento = Intervento::find($id_record);
10731067

1068+
// Salvataggio firma
10741069
$data = explode(',', post('firma_base64'));
1075-
10761070
$img = getImageManager()->read(base64_decode($data[1]));
10771071
$img->resize(680, 202, function ($constraint) {
10781072
$constraint->aspectRatio();
10791073
});
1074+
$encoded_image = $img->toJpeg();
1075+
$file_content = $encoded_image->toString();
10801076

1081-
// Salva temporaneamente il file per l'upload
1082-
$temp_file = base_dir().'/files/interventi/firma_temp_'.time().'.jpg';
1083-
if (!$img->save($temp_file)) {
1084-
flash()->error(tr('Impossibile creare il file!'));
1085-
} else {
1086-
// Upload del file in zz_files con key='signature_nome_data'
1087-
$data_firma = date('Y-m-d');
1088-
$upload = Uploads::upload($temp_file, [
1089-
'name' => 'Firma',
1090-
'category' => 'Firme',
1091-
'id_module' => $id_module,
1092-
'id_record' => $id_record,
1093-
'key' => 'signature_'.$firma_nome.'_'.$data_firma,
1094-
]);
1095-
1096-
if (!empty($upload)) {
1097-
++$firmati;
1098-
1099-
$id_stato = setting("Stato dell'attività dopo la firma");
1100-
$stato = $dbo->selectOne('in_statiintervento', '*', ['id' => $id_stato]);
1101-
$intervento = Intervento::find($id_record);
1102-
if (!empty($stato)) {
1103-
$intervento = Intervento::find($id_record);
1104-
$intervento->idstatointervento = $stato['id'];
1105-
$intervento->save();
1106-
}
1077+
// Upload del file in zz_files
1078+
$upload = Uploads::upload($file_content, [
1079+
'name' => 'firma.jpg',
1080+
'category' => 'Firme',
1081+
'id_module' => $id_module,
1082+
'id_record' => $id_record,
1083+
'key' => 'signature',
1084+
]);
11071085

1108-
// Notifica chiusura intervento
1109-
if (!empty($stato['notifica'])) {
1110-
$template = Template::find($stato['id_email']);
1086+
if (!empty($upload)) {
1087+
++$firmati;
11111088

1112-
if (!empty($stato['destinatari'])) {
1089+
$intervento->firma_data = date('Y-m-d H:i:s');
1090+
$intervento->firma_nome = post('firma_nome');
1091+
$intervento->save();
1092+
1093+
$id_stato = setting("Stato dell'attività dopo la firma");
1094+
$stato = $dbo->selectOne('in_statiintervento', '*', ['id' => $id_stato]);
1095+
if (!empty($stato)) {
1096+
$intervento->idstatointervento = $stato['id'];
1097+
$intervento->save();
1098+
}
1099+
1100+
// Notifica chiusura intervento
1101+
if (!empty($stato['notifica'])) {
1102+
$template = Template::find($stato['id_email']);
1103+
1104+
if (!empty($stato['destinatari'])) {
1105+
$mail = Mail::build(auth_osm()->getUser(), $template, $id_record);
1106+
$mail->addReceiver($stato['destinatari']);
1107+
$mail->save();
1108+
}
1109+
1110+
if (!empty($stato['notifica_cliente'])) {
1111+
if (!empty($intervento->anagrafica->email)) {
11131112
$mail = Mail::build(auth_osm()->getUser(), $template, $id_record);
1114-
$mail->addReceiver($stato['destinatari']);
1113+
$mail->addReceiver($intervento->anagrafica->email);
11151114
$mail->save();
11161115
}
1116+
}
11171117

1118-
if (!empty($stato['notifica_cliente'])) {
1119-
if (!empty($intervento->anagrafica->email)) {
1118+
if (!empty($stato['notifica_tecnici'])) {
1119+
$tecnici_intervento = $dbo->select('in_interventi_tecnici', 'idtecnico', [], ['idintervento' => $id_record]);
1120+
$tecnici_assegnati = $dbo->select('in_interventi_tecnici_assegnati', 'id_tecnico AS idtecnico', [], ['id_intervento' => $id_record]);
1121+
$tecnici = array_unique(array_merge($tecnici_intervento, $tecnici_assegnati), SORT_REGULAR);
1122+
1123+
foreach ($tecnici as $tecnico) {
1124+
$mail_tecnico = $dbo->selectOne('an_anagrafiche', '*', ['idanagrafica' => $tecnico]);
1125+
if (!empty($mail_tecnico['email'])) {
11201126
$mail = Mail::build(auth_osm()->getUser(), $template, $id_record);
1121-
$mail->addReceiver($intervento->anagrafica->email);
1127+
$mail->addReceiver($mail_tecnico['email']);
11221128
$mail->save();
11231129
}
11241130
}
1125-
1126-
if (!empty($stato['notifica_tecnici'])) {
1127-
$tecnici_intervento = $dbo->select('in_interventi_tecnici', 'idtecnico', [], ['idintervento' => $id_record]);
1128-
$tecnici_assegnati = $dbo->select('in_interventi_tecnici_assegnati', 'id_tecnico AS idtecnico', [], ['id_intervento' => $id_record]);
1129-
$tecnici = array_unique(array_merge($tecnici_intervento, $tecnici_assegnati), SORT_REGULAR);
1130-
1131-
foreach ($tecnici as $tecnico) {
1132-
$mail_tecnico = $dbo->selectOne('an_anagrafiche', '*', ['idanagrafica' => $tecnico]);
1133-
if (!empty($mail_tecnico['email'])) {
1134-
$mail = Mail::build(auth_osm()->getUser(), $template, $id_record);
1135-
$mail->addReceiver($mail_tecnico['email']);
1136-
$mail->save();
1137-
}
1138-
}
1139-
}
11401131
}
1141-
} else {
1142-
++$non_firmati;
11431132
}
1133+
} else {
1134+
++$non_firmati;
11441135
}
11451136
}
11461137
}
@@ -1317,6 +1308,8 @@
13171308
$new->codice = Intervento::getNextCodice($data_richiesta, $new->id_segment);
13181309
$new->data_richiesta = $data_richiesta;
13191310
$new->data_scadenza = post('ora_scadenza') ? $date->format('Y-m-d').' '.post('ora_scadenza') : null;
1311+
$new->firma_data = null;
1312+
$new->firma_nome = '';
13201313

13211314
$new->save();
13221315

modules/interventi/bulk.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,8 @@
255255

256256
// Calcolo del nuovo codice sulla base della data di richiesta
257257
$new->codice = Intervento::getNextCodice($data_richiesta, $new->id_segment);
258+
$new->firma_data = null;
259+
$new->firma_nome = '';
258260
$new->save();
259261

260262
$id_record = $new->id;

modules/interventi/buttons.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@
2222

2323
use Modules\Interventi\Stato;
2424

25-
if (empty($record->signature)) {
25+
if (!$intervento->signature) {
2626
$frase = tr('Anteprima e firma');
2727
$info_firma = '';
2828
} else {
2929
$frase = tr('Nuova anteprima e firma');
3030
$info_firma = ''.tr('Firmato il _DATE_ da _PERSON_', [
31-
'_DATE_' => Translator::dateToLocale($record->signature_date),
32-
'_PERSON_' => '<b>'.$record->signature_name.'</b>',
31+
'_DATE_' => Translator::dateToLocale($intervento->firma_data),
32+
'_PERSON_' => '<b>'.$intervento->firma_nome.'</b>',
3333
]).'';
3434
}
3535

modules/interventi/edit.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -477,8 +477,8 @@
477477
echo '
478478
<img src="'.$intervento->signature.'" class="img-thumbnail"><div>&nbsp;</div>
479479
<div class="col-md-6 offset-md-3 alert alert-success"><i class="fa fa-check"></i> '.tr('Firmato il _DATE_ da _PERSON_', [
480-
'_DATE_' => Translator::dateToLocale($intervento->signature_date),
481-
'_PERSON_' => (!empty($intervento->signature_name) ? $intervento->signature_name : $intervento->anagrafica->ragione_sociale),
480+
'_DATE_' => Translator::dateToLocale($intervento->firma_data),
481+
'_PERSON_' => (!empty($intervento->firma_nome) ? $intervento->firma_nome : $intervento->anagrafica->ragione_sociale),
482482
]).'</div>';
483483
}
484484

0 commit comments

Comments
 (0)