Skip to content

Commit 2dbea52

Browse files
committed
includo nome degli utenti nei documenti esportati dal fornitore. closes #349
1 parent 3bd0de4 commit 2dbea52

2 files changed

Lines changed: 49 additions & 40 deletions

File tree

code/app/Http/Controllers/PublicGateController.php

Lines changed: 29 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -20,48 +20,43 @@ public function show(Request $request, $token, $action)
2020
$order_id = $req->p->id;
2121
$order = Order::find($order_id);
2222

23-
switch($action) {
24-
case 'show':
25-
$links = [];
26-
$type = $order->supplier->notify_on_close_enabled;
23+
if ($action == 'show') {
24+
$links = [];
25+
$type = $order->supplier->notify_on_close_enabled;
2726

28-
if ($type == 'shipping_summary') {
29-
$types = ['shipping', 'summary'];
30-
}
31-
else {
32-
$types = [$type];
33-
}
27+
if ($type == 'shipping_summary') {
28+
$types = ['shipping', 'summary'];
29+
}
30+
else {
31+
$types = [$type];
32+
}
3433

35-
foreach($types as $t) {
36-
$base_filename = __('texts.orders.files.order.' . $t);
37-
$links[$base_filename . ' - CSV'] = publicGateGetLink('odoc', $t . '_csv', ['id' => $order->id]);
38-
$links[$base_filename . ' - PDF'] = publicGateGetLink('odoc', $t . '_pdf', ['id' => $order->id]);
39-
}
34+
foreach($types as $t) {
35+
$base_filename = __('texts.orders.files.order.' . $t);
36+
$links[$base_filename . ' - CSV'] = publicGateGetLink('odoc', $t . '_csv', ['id' => $order->id]);
37+
$links[$base_filename . ' - PDF'] = publicGateGetLink('odoc', $t . '_pdf', ['id' => $order->id]);
38+
}
4039

41-
return view('public.order_documents', [
42-
'order' => $order,
43-
'links' => $links,
44-
]);
45-
46-
break;
47-
48-
default:
49-
$printer = new OrderPrinter();
50-
list($type, $format) = explode('_', $action);
51-
52-
return $printer->document($order, $type, [
53-
'format' => $format,
54-
'status' => 'pending',
55-
'extra_modifiers' => 0,
56-
'action' => 'download',
57-
]);
40+
return view('public.order_documents', [
41+
'order' => $order,
42+
'links' => $links,
43+
]);
44+
}
45+
else {
46+
$printer = new OrderPrinter();
47+
list($type, $format) = explode('_', $action);
5848

59-
break;
49+
return $printer->document($order, $type, [
50+
'format' => $format,
51+
'status' => 'pending',
52+
'extra_modifiers' => 0,
53+
'action' => 'download',
54+
]);
6055
}
6156
break;
6257

6358
default:
64-
throw new \Exception('Richiesta ' . $req->t . ' non riconosciuta');
59+
throw new \UnexpectedValueException('Richiesta ' . $req->t . ' non riconosciuta');
6560
break;
6661
}
6762
}

code/app/Printers/PrintParams.php

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
<?php
22

3+
/**
4+
* Questa struttura dati è comune alle diverse tipologie di Printer, e ne
5+
* include tutte le possibili varianti ed opzioni. Questo per accentrare in un
6+
* posto solo tutti i possibili default, e rendere un po' più leggibile il
7+
* codice dei Printer stessi
8+
*/
9+
310
namespace App\Printers;
411

512
use Illuminate\Database\Eloquent\Model;
@@ -28,8 +35,8 @@ public function __construct($request, $obj)
2835
$this->subtype = $request['format'] ?? 'pdf';
2936
$this->status = $request['status'] ?? 'pending';
3037
$this->include_missing = $request['include_missing'] ?? 'no';
31-
$this->isolate_friends = ($request['isolate_friends'] ?? false) == true;
32-
$this->extra_modifiers = ($request['extra_modifiers'] ?? false) == true;
38+
$this->isolate_friends = ($request['isolate_friends'] ?? false);
39+
$this->extra_modifiers = ($request['extra_modifiers'] ?? false);
3340

3441
$this->required_fields = $request['fields'] ?? [];
3542
if (empty($this->required_fields)) {
@@ -39,10 +46,10 @@ public function __construct($request, $obj)
3946
$this->fields = $this->splitFields($this->required_fields);
4047
}
4148

42-
/*
43-
Questo serve a separare le colonne per utenti e prodotti quando si generano
44-
i Dettagli Consegne che contengono tutto
45-
*/
49+
/**
50+
* Questo serve a separare le colonne per utenti e prodotti quando si
51+
* generano i Dettagli Consegne che contengono tutto
52+
*/
4653
private function splitFields(array $fields): object
4754
{
4855
$formattable_user = User::formattableColumns('all');
@@ -92,10 +99,17 @@ private function splitFields(array $fields): object
9299
return $ret;
93100
}
94101

102+
/**
103+
* Qui si enumerano le informazioni da includere nei files esportati quando
104+
* non ne viene esplicitamente richiesta nessuna (e.g. quando genero il file
105+
* scaricabile dal fornitore)
106+
*/
95107
private function autoGuessFields(Model $order): array
96108
{
97109
$guessed_fields = [];
98110

111+
$guessed_fields[] = 'fullname';
112+
99113
if ($order->products->first(fn ($p) => !empty($p->code)) != null) {
100114
$guessed_fields[] = 'code';
101115
}

0 commit comments

Comments
 (0)