netgescon-day0/app/Http/Controllers/Filament/DymoCalibrationController.php

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,
]);
}
}