ldc-mesbr-app/app/Http/Controllers/StatistiqueController.php

94 lines
3.5 KiB
PHP
Raw Normal View History

2019-02-20 16:26:32 +01:00
<?php
namespace App\Http\Controllers;
2019-03-12 11:43:50 +01:00
use App\Campagne;
2019-02-20 16:26:32 +01:00
use Illuminate\Http\Request;
2019-03-07 08:43:51 +01:00
use Illuminate\Support\Facades\Auth;
use App\Traits\CouponTrait;
2019-03-18 08:58:41 +01:00
use App\Traits\GraphTrait;
2019-02-20 16:26:32 +01:00
class StatistiqueController extends Controller
{
2019-03-07 08:43:51 +01:00
use CouponTrait;
2019-03-18 08:58:41 +01:00
use GraphTrait;
2021-04-27 17:29:47 +02:00
2019-02-20 16:26:32 +01:00
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
2021-04-27 17:29:47 +02:00
{
// $sites = Auth::user()->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 = [];
2019-03-07 08:43:51 +01:00
return view('stats.index')->with(['sites' => $sites]);
2019-02-20 16:26:32 +01:00
}
/**
2019-03-12 11:43:50 +01:00
* Show the stat detail of a campaign.
2019-02-20 16:26:32 +01:00
*
* @return \Illuminate\Http\Response
*/
2021-04-27 17:29:47 +02:00
public function statdetail(Campagne $campagne)
{
2025-04-03 09:30:16 +02:00
$count = 0;
2019-03-12 11:43:50 +01:00
$colors = config('constants.colors');
2019-02-20 16:26:32 +01:00
2019-03-12 11:43:50 +01:00
$coupons = $campagne->coupons;
foreach ($coupons as $coupon) {
2025-04-03 09:30:16 +02:00
$coupon->quantity = $this->getFullQuantity($coupon);
$coupon->remain = $coupon->quantity - $this->getUsedQuantity($coupon);
$coupon->diffused = $this->getDiffusedQuantity($coupon);
2019-03-12 11:43:50 +01:00
$coupon->isPrintable = $this->isAvailableToPrint($coupon, $campagne);
2025-04-03 09:30:16 +02:00
$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);
2021-04-27 17:29:47 +02:00
$count++;
2019-03-12 11:43:50 +01:00
}
2025-04-03 09:30:16 +02:00
$enddate = date('Y-m-d');
2019-03-12 11:43:50 +01:00
$startdate = date('Y-m-d', strtotime("-30 days"));
2021-04-27 17:29:47 +02:00
return view('stats.detail')->with(['campagne' => $campagne, 'startdate' => $startdate, 'enddate' => $enddate]);
2019-02-20 16:26:32 +01:00
}
public function loadStats(Request $request)
2021-04-27 17:29:47 +02:00
{
2025-04-03 09:30:16 +02:00
$campid = $request->campid;
2019-03-12 11:43:50 +01:00
$startdate = $request->startdate;
2025-04-03 09:30:16 +02:00
$enddate = $request->enddate;
2019-02-20 16:26:32 +01:00
2019-03-18 08:58:41 +01:00
// ---- Labels pour la période
$labels = $this->getLabelsForStats($startdate, $enddate);
2019-03-12 11:43:50 +01:00
// ---- Data pour le graphique global
2019-03-18 08:58:41 +01:00
$dataGlobal = $this->getDataForCamp($labels, $campid);
2021-04-27 17:29:47 +02:00
// ---- Data pour le graphique par coupons
2019-03-12 11:43:50 +01:00
$campagne = Campagne::where(['camp_id' => $campid])->first();
2025-04-03 09:30:16 +02:00
$coupons = $campagne->coupons;
2019-03-12 11:43:50 +01:00
$dataSpec = [];
foreach ($coupons as $coupon) {
2025-04-03 09:30:16 +02:00
$dataCoupon = $this->getDataForCoupon($labels, $campid, $coupon);
2019-03-12 11:43:50 +01:00
$dataSpec[$coupon->coupon_code] = $dataCoupon;
}
$data = array('labels' => $labels, 'dataGlobal' => $dataGlobal, 'dataSpec' => $dataSpec);
return json_encode($data);
2019-02-20 16:26:32 +01:00
}
}