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

180 lines
6.2 KiB
PHP
Raw Normal View History

2020-01-27 17:20:42 +01:00
<?php
namespace App\Http\Controllers\Fo;
2020-01-27 17:20:42 +01:00
2022-08-11 07:22:30 +00:00
use App\Enums\BreederCivilty;
use App\Http\Controllers\Controller;
use App\Models\CafelEggBreeder;
use App\Models\CafelEggMiseEnPlace;
2022-06-08 15:27:21 +02:00
use App\Models\CafelFood;
use Illuminate\Http\Request;
use App\Models\TraceaEgg;
use App\Models\VisuelLibelle;
use Carbon\Carbon;
2022-06-08 15:27:21 +02:00
class EggController extends Controller
2020-01-27 17:20:42 +01:00
{
2022-08-09 14:05:38 +00:00
/**
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Contracts\View\View|\Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse
*/
2022-06-08 15:27:21 +02:00
public function findMyBox(Request $request)
{
$code = $request->code;
$date = explode('/', $request->date);
$day = $date[0];
$month = $date[1];
$moba = TraceaEgg::where('ede_code', '=', $code)
2022-10-21 11:20:26 +02:00
->where('dcr', Carbon::createFromDate(null, $month, $day)->format('Y-m-d'))
2022-06-08 15:27:21 +02:00
->orderBy('box_code', 'DESC')->first();
if (!$moba) {
return view('front.egg.notFound');
}
return redirect()->route('egg.FrontPage', ['id' => $moba->box_code]);
}
2022-08-09 14:05:38 +00:00
/**
*
* @param mixed $id
* @return \Illuminate\Routing\Redirector|\Illuminate\Http\RedirectResponse|\Illuminate\Contracts\View\View|\Illuminate\Contracts\View\Factory
*/
public function indexId($id)
{
$multiple = false;
2022-06-08 15:27:21 +02:00
/** @var \App\Models\TraceaEgg|null */
$mobas = TraceaEgg::where('box_code', $id)->orderBy('box_code', 'DESC')->first();
2020-10-30 12:08:36 +01:00
2022-03-08 09:42:26 +01:00
if (!$mobas) {
return redirect('/search');
2022-03-08 09:42:26 +01:00
}
2020-10-30 14:03:29 +01:00
2022-06-15 13:42:05 +02:00
$edes = $mobas->code_edes;
2020-10-30 11:23:28 +01:00
2022-03-09 10:54:00 +01:00
// * check if Bio or not
2022-06-15 13:42:05 +02:00
$code_ede = $mobas->ede_code;
2020-01-30 17:01:44 +01:00
$code_prod = substr($code_ede, 0, 1);
if ($code_prod === 0) {
2020-01-30 17:01:44 +01:00
session(['subColor' => 'green']);
} else {
session(['subColor' => 'blue']);
}
2022-06-08 15:27:21 +02:00
$datePonte = $mobas->laying_date;
2022-08-31 16:02:00 +02:00
$date_emballage = $mobas->packing_date;
2022-03-09 10:54:00 +01:00
// * Compare DCR et Today
2022-06-08 15:27:21 +02:00
$date_dcr = $mobas->dcr;
$date_today = Carbon::now();
2022-03-08 09:42:26 +01:00
$dcrGood = $date_today < $date_dcr;
2022-06-15 13:42:05 +02:00
$eleveurs = CafelEggBreeder::whereIn('ede_code', $edes)->get();
2022-08-09 14:05:38 +00:00
2022-06-08 15:27:21 +02:00
if (!$eleveurs->count()) {
return view('front.egg.notFound');
}
2022-08-09 14:05:38 +00:00
2020-03-12 17:22:42 +01:00
$uniqueEleveurs = $eleveurs->unique('code_ede');
if (count($uniqueEleveurs) > 1) {
2020-03-12 17:22:42 +01:00
$multiple = true;
}
2022-06-08 15:27:21 +02:00
$inuavs = $eleveurs->pluck('inuavs')->flatten(1);
2022-10-27 17:36:46 +02:00
$mep = CafelEggMiseEnPlace::query();
collect($inuavs)->map(function ($inuav) use ($mep) {
$mep->where('inuav_codes', 'LIKE', "%{$inuav}%");
});
$mep->where('transfert_date', '<', $datePonte)
2022-06-08 15:27:21 +02:00
->orderBy('transfert_date', 'DESC')->first();
2020-01-30 17:01:44 +01:00
if ($mep) {
2022-06-08 15:27:21 +02:00
$aliment = CafelFood::where('batch_code', $mep->batch_code)->orderBy('delivery_date', 'DESC')->first();
2020-01-30 17:01:44 +01:00
} else {
2022-03-08 09:42:26 +01:00
$mep = '';
$aliment = "";
2020-01-30 17:01:44 +01:00
}
2022-03-09 10:54:00 +01:00
$dataVisuel = VisuelLibelle::where('ean_13', $mobas->ean_13)->first();
2020-10-30 11:23:28 +01:00
2022-06-08 15:27:21 +02:00
return view('front.egg.index_id', [
2020-10-30 11:23:28 +01:00
'id' => $id,
'multiple' => $multiple,
'datePonte' => $datePonte,
2022-06-08 15:27:21 +02:00
'dcr' => $date_dcr,
2020-10-30 11:23:28 +01:00
'dcrGood' => $dcrGood,
2020-01-29 11:07:08 +01:00
'eleveurs' => $eleveurs,
2020-01-30 17:01:44 +01:00
'mep' => $mep,
'aliment' => $aliment,
'dataVisuel' => $dataVisuel,
2020-01-29 11:07:08 +01:00
'date_emballage' => $date_emballage
]);
}
2022-08-09 14:05:38 +00:00
/**
*
* @param mixed $id
* @param mixed $eleveurId
* @return \Illuminate\Contracts\View\View|\Illuminate\Contracts\View\Factory
*/
public function eleveurPortrait($id, $eleveurId)
{
2022-03-08 09:42:26 +01:00
$dateToday = Carbon::now()->toArray();
2020-01-29 11:07:08 +01:00
$currentYear = $dateToday['year'];
2022-06-08 15:27:21 +02:00
$eleveur = CafelEggBreeder::where('cafel_code', $eleveurId)->first();
2020-10-30 11:23:28 +01:00
if (isset($eleveur->naissance) && !empty($eleveur->naissance)) {
2020-01-29 11:07:08 +01:00
$date_naissance = Carbon::createFromFormat('d/m/Y', $eleveur->naissance)->toArray();
2022-03-08 09:42:26 +01:00
$year = $date_naissance['year'];
$age = $currentYear - $year;
2020-01-29 11:07:08 +01:00
} else {
$age = false;
}
if (isset($eleveur->elv_date_debut) && !empty($eleveur->elv_date_debut)) {
2020-01-29 11:07:08 +01:00
$date_elevage = Carbon::createFromFormat('d/m/Y', $eleveur->elv_date_debut)->toArray();
$year_elevage = $date_elevage['year'];
2022-03-08 09:42:26 +01:00
$age_elevage = $currentYear - $year_elevage;
2020-01-29 11:07:08 +01:00
} else {
$age_elevage = false;
}
2020-01-30 17:01:44 +01:00
$questions = array();
if ($eleveur->aboutyou != null && !empty($eleveur->aboutyou)) {
2020-01-30 17:01:44 +01:00
array_push($questions, array('Parle nous un peu de toi...', $eleveur->aboutyou));
}
if ($eleveur->vocation != null && !empty($eleveur->vocation)) {
2020-02-04 10:44:21 +01:00
switch ($eleveur->civilite) {
2022-08-11 07:22:30 +00:00
case BreederCivilty::elle():
2020-02-04 10:44:21 +01:00
array_push($questions, array('Tu as toujours été éleveuse ?', $eleveur->vocation));
break;
2022-08-11 07:22:30 +00:00
case BreederCivilty::il():
2020-02-04 10:44:21 +01:00
array_push($questions, array('Tu as toujours été éleveur ?', $eleveur->vocation));
break;
2022-08-11 07:22:30 +00:00
case BreederCivilty::elles():
2020-02-04 10:44:21 +01:00
array_push($questions, array('Vous avez toujours été éleveuses ?', $eleveur->vocation));
break;
2022-08-11 07:22:30 +00:00
case BreederCivilty::ils():
2020-10-30 11:23:28 +01:00
array_push($questions, array('Vous avez toujours été éleveurs ?', $eleveur->vocation));
2020-02-04 10:44:21 +01:00
break;
default:
array_push($questions, array('Tu as toujours été éleveur ?', $eleveur->vocation));
break;
}
2020-01-30 17:01:44 +01:00
}
if ($eleveur->likeinjob != null && !empty($eleveur->likeinjob)) {
2020-01-30 17:01:44 +01:00
array_push($questions, array('Dis nous ce que tu aimes dans ton travail', $eleveur->likeinjob));
}
if ($eleveur->loue_means != null && !empty($eleveur->loue_means)) {
2020-01-30 17:01:44 +01:00
array_push($questions, array('Si je te dis Loué, ça te fait penser à quoi ?', $eleveur->loue_means));
}
2022-06-08 15:27:21 +02:00
return view('front.egg.elevages.portrait', [
'id' => $id, 'eleveur' => $eleveur, 'age' => $age,
'ageElevage' => $age_elevage, 'questions' => $questions
]);
2020-01-27 17:20:42 +01:00
}
}