ldc-bogt/app/Http/Controllers/Fo/TraceaPoultryController.php

66 lines
2.1 KiB
PHP
Raw Normal View History

<?php
namespace App\Http\Controllers\Fo;
use App\Http\Controllers\Controller;
use App\Http\Requests\Fo\SearchPoultryTraceaRequest;
use App\Models\TraceaPoultry;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\Session;
class TraceaPoultryController extends Controller
{
/**
* Show search form
*
* @param SearchPoultryTraceaRequest $request
* @return \Illuminate\Http\RedirectResponse
*/
public function searchSubmit(SearchPoultryTraceaRequest $request)
{
/** @var \App\Models\TraceaPoultry|null */
$traceaPoultry = TraceaPoultry::whereExternalCodeLot($request->codelot)
->where(function ($q) use ($request) {
$q->whereBarcodePrice($request->eancode)
->orWhere('barcode_weight', $request->eancode);
})->first();
if (!$traceaPoultry) {
return back()->with(
'warning',
// phpcs:ignore Generic.Files.LineLength.TooLong
trans('Aucun produit n\'a pu être trouvé avec ces informations. Vérifiez bien les numéros saisis avec les indication comme sur l\'image ci-dessous.')
);
}
Session::put('poultrySearch', [
'model' => $traceaPoultry,
'time' => now()
]);
// * Flash session with age max show result page to 6
return response()->redirectToRoute('poultry.show');
}
/**
* Show Traceapoultry result
*
* @return \Illuminate\Contracts\View\View|\Illuminate\Contracts\View\Factory
*/
public function show()
{
// * If result too old or not found
/** @var \App\Models\TraceaPoultry|null */
if (
!($traceaPoultry = Session::get('poultrySearch.model')) or
!\is_object(Session::get('poultrySearch.time')) or
\get_class(Session::get('poultrySearch.time')) !== Carbon::class
) {
Session::forget('poultrySearch');
\redirect()->route('poultry.search')->throwResponse();
}
return view('front.poultry.show', compact('traceaPoultry'));
}
}