85 lines
3.6 KiB
PHP
85 lines
3.6 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Pro;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Cotations;
|
|
use App\Models\CotationsData;
|
|
use App\Models\Objectives;
|
|
use App\Models\PublicPdfs;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Carbon;
|
|
|
|
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();
|
|
|
|
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;
|
|
}
|
|
}
|