orderBy('produit')->orderBy('qualite')->orderBy('recolte') $cotations = CotationsData::select('produit','qualite','recolte', DB::raw("GROUP_CONCAT(echeance,'::',prix SEPARATOR '|@|') AS prices")) ->groupBy('produit') ->groupBy('qualite') ->groupBy('recolte') ->get(); $mps = CotationsData::select('produit')->distinct()->get(); setlocale(LC_TIME, config('app.locale')); $dateMajCotations = CotationsData::select('updated_at')->orderBy('id','DESC')->first(); $dbobjectif = new Objectives(); //capte les nouvelles colonnes éventuelles $nullData= array_combine( $dbobjectif->getFillable(), array_fill(0, count($dbobjectif->getFillable()), null) ); $dbobjectif->fill($nullData); $dbobjectif->produit = '--'; $dbobjectif->qualite = '--'; $dbobjectif->campagne = '--'; $dbobjectif->quantite = 0; //$dbobjectif->prix = 0; $dbobjectif->echeance = '--'; $dbobjectif->volume_restant = 0; //$dbobjectif->observations = ''; $dbmyObjectives = Objectives::with('status')->where('user_id',Auth::user()->id)->orderBy('updated_at','DESC')->get(); $formEnums = $this->getObjectivesFormEnums(); $pdfsAnalyse = PublicPdfs::where('category_id',1)->where('is_published',1)->orderBy('created_at','DESC')->get(); $pdfsMarches = PublicPdfs::where('category_id',2)->where('is_published',1)->orderBy('created_at','DESC')->get(); //par défaut le marché est fermé $market_closed = true; //si on est (un jour de semaine) après 11h ou avant 17h45 alors ouvert $time = Carbon::now(); // Current time $start = Carbon::create($time->year, $time->month, $time->day, 11, 0, 0); //set time to 11:00 $end = Carbon::create($time->year, $time->month, $time->day, 17, 45, 0); //set time to 17:45 if ($time->isWeekday()) { if ($time->between($start, $end, true)) { $market_closed = false; } } $dayMaj = Carbon::createFromFormat('Y-m-d H:i:s', $dateMajCotations->updated_at)->startOfDay(); $today = Carbon::now()->startOfDay(); $noCotationsYet = false; //we suppose we have cotations today if ($today > $dayMaj) { $noCotationsYet = true; //we don't have the cotations yet } return view('pro.dashboard.index', compact('cotations', 'mps', 'dbobjectif', 'dbmyObjectives', 'formEnums', 'pdfsAnalyse', 'pdfsMarches', 'dateMajCotations', 'market_closed', 'noCotationsYet')); } public function waiting(Request $request) { return view('pro.dashboard.waiting'); } private function getObjectivesFormEnums() { $enums = array(); $produitEnum = CotationsData::select('produit AS value')->distinct()->get(); $enums['produit'] = $produitEnum; $qualiteEnum = array(); foreach ($produitEnum as $produit) { $qualiteEnum[$produit->value] = CotationsData::select('qualite AS value')->distinct()->where('produit',$produit->value)->get(); } $enums['qualite'] = $qualiteEnum; $campagneEnum = array(); foreach ($produitEnum as $produit) { $campagneEnum[$produit->value] = CotationsData::select('recolte AS value')->distinct()->where('produit',$produit->value)->get(); } $enums['campagne'] = $campagneEnum; $echeanceEnum = array(); foreach ($produitEnum as $produit) { foreach($campagneEnum[$produit->value] as $campagne) { $echeanceEnum[$produit->value][$campagne->value] = CotationsData::select('echeance AS value')->distinct() ->where('produit',$produit->value) ->where('recolte',$campagne->value) ->whereNotNull('prix') ->get(); } } $enums['echeance'] = $echeanceEnum; return $enums; } }