ldc-jeusselin/app/Http/Controllers/Pro/DashboardController.php
2021-03-11 12:31:18 +01:00

56 lines
2.4 KiB
PHP

<?php
namespace App\Http\Controllers\Pro;
use App\Http\Controllers\Controller;
use App\Models\Cotations;
use App\Models\CotationsData;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class DashboardController extends Controller
{
public function index(Request $request)
{
//$cotations = CotationsData::whereNotNull('prix')->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();
$formEnums = $this->getObjectivesFromEnums();
return view('pro.dashboard.index',compact('cotations','formEnums'));
}
private function getObjectivesFromEnums() {
$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;
}
}