ldc-mesbr-app/app/Http/Controllers/ExportController.php
Vincent BRIDIER 203922849c
fix: PHPCBF
2025-04-03 09:30:16 +02:00

87 lines
3.3 KiB
PHP

<?php
namespace App\Http\Controllers;
use App;
use CpChart\Data;
use CpChart\Image;
use App\Traits\CouponTrait;
use App\Traits\GraphTrait;
use App\Site;
use App\Coupon;
use Datetime;
use Illuminate\Http\Request;
class ExportController extends Controller
{
use CouponTrait;
use GraphTrait;
/**
* Handle the incoming request.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function show(Request $request)
{
$sites = Site::all();
$startdate = new DateTime("first day of last month");
$startdate = $startdate->format('Y-m-d');
$enddate = date('Y-m-d');
return view('export.index')->with(['sites' => $sites, 'startdate' => $startdate, 'enddate' => $enddate]);
}
// ------ AJAX Export
public function export_coupons(Request $request)
{
$ids = $request->input('ids');
$startdate = date('Y-m-d', strtotime($request->input('startdate')));
$enddate = date('Y-m-d', strtotime($request->input('enddate')));
$coupons = Coupon::find($ids);
$labels = $this->getLabelsForStats($startdate, $enddate);
$paths = array();
foreach ($coupons as $coupon) {
$cpName = str_replace(' ', '', $coupon->coupon_name);
$now = strtotime(now());
$full_path = 'export/' . $cpName . '_' . $now . '.pdf';
$dataCoupon = $this->getDataForCouponAllCamp($labels, $coupon);
$coupon->couponQuantity = $this->getFullQuantity($coupon);
$coupon->couponFullPrinted = $this->getUsedQuantity($coupon);
$coupon->couponPrinted = $this->getUsedQuantityOnPeriod($coupon, $startdate, $enddate);
$pdf = App::make('dompdf.wrapper');
$myData = new Data();
$myData->addPoints($dataCoupon, "My Serie 1");
$myData->addPoints($labels, "My Serie 2");
$myData->setAxisName(0, "Coupons Diffusés");
$myData->setAbscissa("My Serie 2");
$myData->setSerieTicks("My Serie 2", 2);
$serieSettings = array("R" => 229,"G" => 11,"B" => 11);
$myData->setPalette("My Serie 1", $serieSettings);
$myPicture = new Image(700, 230, $myData);
$myPicture->setGraphArea(60, 40, 670, 190);
$myPicture->setFontProperties(array("FontSize" => 10));
$myPicture->drawScale(array("DrawSubTicks" => true, 'LabelSkip' => 1, 'LabelRotation' => 25, "Mode" => SCALE_MODE_START0, "CycleBackground" => true,"GridR" => 102,"GridG" => 102,"GridB" => 102));
$myPicture->setShadow(true, array("X" => 1,"Y" => 1,"R" => 0,"G" => 0,"B" => 0,"Alpha" => 10));
$myPicture->drawLineChart(array("DisplayColor" => DISPLAY_AUTO));
$LabelSettings = array("NoTitle" => true);
$myPicture->Render('export/temp.png');
$view = view('export.template')->with(['src' => 'export/temp.png', 'coupon' => $coupon, 'startdate' => $startdate, 'enddate' => $enddate])->render();
// var_dump($view);
$pdf->loadHTML($view);
$pdf->save($full_path);
array_push($paths, $full_path);
}//end foreach
return json_encode($paths);
}
}