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(); 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::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(); return view('pro.dashboard.index',compact('cotations','dbobjectif','dbmyObjectives','formEnums','pdfsAnalyse','pdfsMarches','dateMajCotations')); } 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; } }