ldc-legaulois/app/Http/Controllers/Bo/ReductionsController.php
2021-02-15 11:51:43 +01:00

76 lines
2.8 KiB
PHP

<?php
namespace App\Http\Controllers\Bo;
use App\Http\Controllers\Controller;
use App\Models\Ranges;
use Illuminate\Http\Request;
use App\Models\Reductions;
use Carbon\Carbon;
use LDCWeb\MesBR;
class ReductionsController extends Controller
{
public function index() {
$r = Reductions::all();
$ranges = Ranges::with('products')->get();
return view('bo.reductions.index', compact('r', 'ranges'));
}
public function saveDatas(Request $request) {
$reductionId = $request->reductionId;
$products = $request->products;
$ranges = $request->ranges;
$notification = $request->notification === null ? 0 : 1;
$reduction = Reductions::find($reductionId);
$reduction->ranges()->sync($ranges);
foreach ($ranges as $rangeId) {
$range = $reduction->ranges()->where('range_id', $rangeId)->first();
foreach ($products as $product)
if (in_array($product, $range->products()->pluck('id')->toArray()))
array_splice($products, array_search($product, $products), 1);
}
$reduction->products()->sync($products);
$reduction->notification = $notification;
$reduction->save();
return "Traitement terminé";
}
/**
* Permet la mise à jour des bons de réductions depuis MesBR manuellement dans le BO
*/
public function updateBR() {
// On récupère les réductions depuis MesBR
$mesBR = new MesBR(config('app.REF_SITE'), config('app.REF_CAMP'));
$reductions = $mesBR->getDetailCampaign();
// Mise à jour et ajout des coupons en BDD
$detailCampagne = $reductions->{'Détails Campagne'};
if( isset($detailCampagne->Coupons)) {
foreach ($detailCampagne->Coupons as $coupon) {
$reduction = Reductions::where('code', $coupon->{'Code traitement'})->first();
if(!$reduction){
$reduction = new Reductions();
$reduction->code = $coupon->{'Code traitement'};
}
$reduction->wording = $coupon->{'Nom'};
$reduction->number_broadcast = $coupon->{'Nb à diffuser'};
$reduction->number_broadcasted = $coupon->{'Nb diffusé'};
$reduction->face_value = floatval($coupon->{'Valeur faciale'});
$reduction->status = $coupon->{'En ligne'} == "oui" ? 1 : 0;
if(isset($coupon->{'Date de fin de diffusion'}) && $coupon->{'Date de fin de diffusion'} != "01/01/1970"){
$endDatetime = Carbon::createFromFormat('Y-m-d', date('Y-m-d', strtotime(str_replace("/", "-", $coupon->{'Date de fin de diffusion'}))));
} else {
$endDatetime = Carbon::createFromFormat('Y-m-d', date('Y-m-d', strtotime("2099-12-30")));
}
$reduction->end_date_broadcast = $endDatetime;
$reduction->save();
}
}
return redirect()->route('bo.reductions.index');
}
}