sites()->get(); // foreach ($sites as $site) { // if (isset($site->campagnes)) { // $campagnes = $site->campagnes; // foreach ($campagnes as $campagne) { // $coupons = $campagne->coupons; // foreach ($coupons as $coupon) { // $coupon->quantity = $this->getFullQuantity($coupon); // $coupon->remain = $this->getFullQuantity($coupon) - $this->getUsedQuantity($coupon); // $coupon->diffused = $this->getDiffusedQuantity($coupon); // $coupon->isPrintable = $this->isAvailableToPrint($coupon, $campagne); // $coupon->isPaused = $this->isPausedToPrint($coupon, $campagne); // } // }//end foreach // }//end if // }//end foreach $sites = []; return view('stats.index')->with(['sites' => $sites]); } /** * Show the stat detail of a campaign. * * @return \Illuminate\Http\Response */ public function statdetail(Campagne $campagne) { $count = 0; $colors = config('constants.colors'); $coupons = $campagne->coupons; foreach ($coupons as $coupon) { $coupon->quantity = $this->getFullQuantity($coupon); $coupon->remain = $coupon->quantity - $this->getUsedQuantity($coupon); $coupon->diffused = $this->getDiffusedQuantity($coupon); $coupon->isPrintable = $this->isAvailableToPrint($coupon, $campagne); $coupon->isPaused = $this->isPausedToPrint($coupon, $campagne); $coupon->color = $coupon->color = "#" . str_pad(dechex(mt_rand(0, 255)), 2, '0', STR_PAD_LEFT) . str_pad(dechex(mt_rand(0, 255)), 2, '0', STR_PAD_LEFT) . str_pad(dechex(mt_rand(0, 255)), 2, '0', STR_PAD_LEFT); $count++; } $enddate = date('Y-m-d'); $startdate = date('Y-m-d', strtotime("-30 days")); return view('stats.detail')->with(['campagne' => $campagne, 'startdate' => $startdate, 'enddate' => $enddate]); } public function loadStats(Request $request) { $campid = $request->campid; $startdate = $request->startdate; $enddate = $request->enddate; // ---- Labels pour la période $labels = $this->getLabelsForStats($startdate, $enddate); // ---- Data pour le graphique global $dataGlobal = $this->getDataForCamp($labels, $campid); // ---- Data pour le graphique par coupons $campagne = Campagne::where(['camp_id' => $campid])->first(); $coupons = $campagne->coupons; $dataSpec = []; foreach ($coupons as $coupon) { $dataCoupon = $this->getDataForCoupon($labels, $campid, $coupon); $dataSpec[$coupon->coupon_code] = $dataCoupon; } $data = array('labels' => $labels, 'dataGlobal' => $dataGlobal, 'dataSpec' => $dataSpec); return json_encode($data); } }