66 lines
2.1 KiB
PHP
66 lines
2.1 KiB
PHP
|
|
<?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'));
|
||
|
|
}
|
||
|
|
}
|