fix: resolve tenant_id scoping issue on QR code batch generation
This commit is contained in:
@@ -44,6 +44,7 @@ class ScannerController extends ApiController
|
||||
|
||||
public function scan(Request $request): JsonResponse
|
||||
{
|
||||
\Illuminate\Support\Facades\Log::info("DEBUG: Entering ScannerController::scan");
|
||||
$data = $request->validate([
|
||||
'serial' => ['required', 'string', 'max:64'],
|
||||
'drop_off_point_id' => ['required', 'integer', 'exists:drop_off_points,id'],
|
||||
@@ -63,22 +64,30 @@ class ScannerController extends ApiController
|
||||
$stop = isset($data['trip_stop_id']) ? TripStop::find($data['trip_stop_id']) : null;
|
||||
\Illuminate\Support\Facades\Log::info("Scan attempt", ['serial' => $data['serial'] ?? 'none']);
|
||||
|
||||
$result = $this->scanner->scan(
|
||||
serial: $data['serial'],
|
||||
dropOff: $dop,
|
||||
scanner: $request->user(),
|
||||
lat: (float) $data['lat'],
|
||||
lng: (float) $data['lng'],
|
||||
trip: $trip,
|
||||
tripStop: $stop,
|
||||
weightKg: $data['weight_kg'] ?? null,
|
||||
wasteType: $data['waste_type'] ?? null,
|
||||
photoPath: $data['photo_path'] ?? null,
|
||||
notes: $data['notes'] ?? null,
|
||||
scannedAt: isset($data['scanned_at']) ? Carbon::parse($data['scanned_at']) : null,
|
||||
);
|
||||
try {
|
||||
$result = $this->scanner->scan(
|
||||
serial: $data['serial'],
|
||||
dropOff: $dop,
|
||||
scanner: $request->user(),
|
||||
lat: (float) $data['lat'],
|
||||
lng: (float) $data['lng'],
|
||||
trip: $trip,
|
||||
tripStop: $stop,
|
||||
weightKg: $data['weight_kg'] ?? null,
|
||||
wasteType: $data['waste_type'] ?? null,
|
||||
photoPath: $data['photo_path'] ?? null,
|
||||
notes: $data['notes'] ?? null,
|
||||
scannedAt: isset($data['scanned_at']) ? Carbon::parse($data['scanned_at']) : null,
|
||||
);
|
||||
} catch (\Throwable $e) {
|
||||
\Illuminate\Support\Facades\Log::error("DEBUG: Scan Exception: " . $e->getMessage() . "\n" . $e->getTraceAsString());
|
||||
throw $e;
|
||||
}
|
||||
|
||||
\Illuminate\Support\Facades\Log::info("DEBUG: Scan completed", ['accepted' => $result->accepted, 'reason' => $result->rejectReason ?? 'none']);
|
||||
|
||||
if (! $result->accepted) {
|
||||
\Illuminate\Support\Facades\Log::warning("Scan rejected internally", ['serial' => $data['serial'], 'reason' => $result->rejectReason]);
|
||||
return $this->fail(
|
||||
'Scan rejected',
|
||||
['reason' => [$result->rejectReason]],
|
||||
@@ -86,11 +95,14 @@ class ScannerController extends ApiController
|
||||
);
|
||||
}
|
||||
|
||||
return $this->ok([
|
||||
$res = [
|
||||
'serial' => $result->code->serial,
|
||||
'log_id' => $result->log->id,
|
||||
'status' => (string) $result->code->status,
|
||||
], 'Scan recorded');
|
||||
];
|
||||
\Illuminate\Support\Facades\Log::info("Scan Response OK", $res);
|
||||
|
||||
return $this->ok($res, 'Scan recorded');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user