45 lines
1.2 KiB
PHP
Executable File
45 lines
1.2 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Http\Controllers\Filament;
|
|
|
|
use Illuminate\Http\Request;
|
|
|
|
class DymoCalibrationController
|
|
{
|
|
public function show(Request $request)
|
|
{
|
|
$format = strtoupper(trim((string) $request->query('format', '11354')));
|
|
if (! in_array($format, ['11354', '99014'], true)) {
|
|
$format = '11354';
|
|
}
|
|
|
|
$dx = (float) $request->query('dx', 0);
|
|
$dy = (float) $request->query('dy', 0);
|
|
$rot = (int) $request->query('rot', 0);
|
|
|
|
$dymoFix = $request->has('dymo_fix')
|
|
? filter_var($request->query('dymo_fix'), FILTER_VALIDATE_BOOL)
|
|
: false;
|
|
|
|
// Guardrail: keep parameters sane.
|
|
$dx = max(-20, min(20, $dx));
|
|
$dy = max(-20, min(20, $dy));
|
|
$rot = max(-180, min(180, $rot));
|
|
|
|
// In modalità DYMO-fix (tipico per 11354), limitiamo rotazione ai valori utili.
|
|
if ($format === '11354' && $dymoFix) {
|
|
if (! in_array($rot, [-90, 90], true)) {
|
|
$rot = -90;
|
|
}
|
|
}
|
|
|
|
return view('filament.print.dymo-calibrazione', [
|
|
'format' => $format,
|
|
'dx' => $dx,
|
|
'dy' => $dy,
|
|
'rot' => $rot,
|
|
'dymoFix' => $dymoFix,
|
|
]);
|
|
}
|
|
}
|