input('campid'); $campagne = Campagne::where('camp_id', $camp_id)->first(); $ids = $request->input('ids'); $coupons = Coupon::find($ids); $campagne->coupons()->attach($coupons); return json_encode($coupons); } // ---- Efface des coupons d'une campagne public function remove_coupons_ajax(Request $request) { $camp_id = $request->input('campid'); $campagne = Campagne::where('camp_id', $camp_id)->first(); $coupon_id = $request->input('couponid'); $coupon = Coupon::find($coupon_id); $campagne->coupons()->detach($coupon_id); return json_encode($coupon); } // ---- Dépublie un coupon public function unpublish_coupons_ajax(Request $request) { $coupon_id = $request->input('couponid'); $coupon = Coupon::find($coupon_id); $coupon->coupon_published = 0; $coupon->save(); return json_encode($coupon); } // ---- Publie un coupon public function publish_coupons_ajax(Request $request) { $coupon_id = $request->input('couponid'); $coupon = Coupon::find($coupon_id); $coupon->coupon_published = 1; $coupon->save(); return json_encode($coupon); } // ---- Dépublie une campagne public function unpublish_camp_ajax(Request $request) { $campid = $request->input('campid'); $campagne = Campagne::find($campid); $campagne->camp_published = 0; $campagne->save(); return json_encode($campagne); } // ---- Publie une campagne public function publish_camp_ajax(Request $request) { $campid = $request->input('campid'); $campagne = Campagne::find($campid); $campagne->camp_published = 1; $campagne->save(); return json_encode($campagne); } // ---- Impression des BR public function impression_ajax(Request $request) { if ($request->session()->has('coupons')) { $couponsToPrint = $request->session()->get('coupons'); } if ($request->session()->has('campagne')) { $campagne = $request->session()->get('campagne'); } else { die(); } if ($request->session()->has('contact')) { $contact = $request->session()->get('contact'); } else { die(); } if ($request->session()->has('panier')) { $panier = $request->session()->get('panier'); } if ($contact->contact_ref == "DEMO") { $source = 'ADMIN'; } else { $source = 'API'; } // ---- INIT du log $log = new Log(); $log->log_action = config('constants.impression'); $log->log_source = $source; $log->log_contactId = $contact->contact_id; $log->log_refsite = $campagne->camp_siteId; $log->log_params = json_encode(['refcamp' => $campagne->camp_id]); $couponsPrinted = array(); $coupons = '
';
if ($campagne->camp_type == 0) {
// ---- POUR LES MURS
if (!isset($couponsToPrint)) {
die();
}
$nbCoupon = 0;
foreach ($couponsToPrint as $key => $coupon_code) {
$cp = Coupon::where(['coupon_code' => $coupon_code])->first();
if ($this->isAvailable($cp, $campagne, $contact) && $this->isAvailableToPrint($cp, $campagne)) {
array_push($couponsPrinted, ['cp_code' => $cp->coupon_code, 'qty' => 1]);
$imgCoupon = $this->printCp($cp, $contact);
$coupons .= ' ';
}
// ----- mémorise l'impression
$mur = new Mur();
$mur->mur_campid = $campagne->camp_id;
$mur->mur_contactId = $contact->contact_id;
$mur->mur_couponId = $cp->coupon_id;
$mur->save();
// Sauvegarde de stat
$stat = new Statistique();
$stat->stat_campId = $campagne->camp_id;
$stat->stat_couponId = $cp->coupon_id;
$stat->stat_couponPrinted = 1;
$stat->save();
}//end if
}//end foreach
} elseif ($campagne->camp_type == 1) {
// ---- POUR LES PANIERS
if (!isset($panier)) {
die();
}
$allPanierContent = $panier->panierContents()->get();
if (count($allPanierContent) == 0) {
die("error");
}
$nbCoupon = 0;
foreach ($allPanierContent as $panierContent) {
$cp = Coupon::where(['coupon_id' => $panierContent->panier_content_couponId])->first();
if ($cp && $this->isAvailableToPrint($cp, $campagne)) {
$imgCoupon = $this->printCp($cp, $contact);
// ---- Création du html du contenu à imprimer
if ($campagne->camp_limitedPrinting == 0) {
for ($i = 0; $i < $panierContent->panier_content_quantity; $i++) {
$coupons .= ' ';
}
}
$newQtyAvailable = 0;
$newQtyPrinted = $panierContent->panier_content_quantity + $panierContent->panier_content_printed;
array_push($couponsPrinted, ['cp_code' => $cp->coupon_code, 'qty' => $panierContent->panier_content_quantity]);
// Sauvegarde de stat
$stat = new Statistique();
$stat->stat_campId = $campagne->camp_id;
$stat->stat_couponId = $cp->coupon_id;
$stat->stat_couponPrinted = $panierContent->panier_content_quantity;
$stat->save();
} else {
if ($panierContent->panier_content_quantity > 0) {
$coupons .= ' ';
}
$newQtyAvailable = $panierContent->panier_content_quantity - 1;
$newQtyPrinted = $panierContent->panier_content_printed + 1;
array_push($couponsPrinted, ['cp_code' => $cp->coupon_code, 'qty' => 1]);
// Sauvegarde de stat
$stat = new Statistique();
$stat->stat_campId = $campagne->camp_id;
$stat->stat_couponId = $cp->coupon_id;
$stat->stat_couponPrinted = 1;
$stat->save();
}
}//end if
// ---- Mémorise l'impression
$panierContent->panier_content_quantity = $newQtyAvailable;
$panierContent->panier_content_printed = $newQtyPrinted;
$panierContent->save();
}//end if
}//end foreach
// ---- Update du status du panier
$qty = $panier->panierContents()->sum('panier_content_quantity');
if ($qty == 0) {
$panier->panier_pending = 0;
} else {
$panier->panier_pending = 1;
}
$panier->save();
} elseif ($campagne->camp_type == 2) {
// ---- POUR LES MURS SANS SELECTION
$nbCoupon = 0;
$cps = $campagne->coupons()->get();
foreach ($cps as $cp) {
// ---- Contrôle si le BR a déjà fait l'objet d'une impression
if ($this->isAvailable($cp, $campagne, $contact) && $this->isAvailableToPrint($cp, $campagne)) {
// ---- Génère l'image du BR à imprimer
$imgCoupon = $this->printCp($cp, $contact);
$coupons .= ' ';
}
array_push($couponsPrinted, ['cp_code' => $cp->coupon_code, 'qty' => 1]);
// ----- mémorise l'impression
$mur = new Mur();
$mur->mur_campid = $campagne->camp_id;
$mur->mur_contactId = $contact->contact_id;
$mur->mur_couponId = $cp->coupon_id;
$mur->save();
// Sauvegarde de stat
$stat = new Statistique();
$stat->stat_campId = $campagne->camp_id;
$stat->stat_couponId = $cp->coupon_id;
$stat->stat_couponPrinted = 1;
$stat->save();
}//end if
}//end foreach
} elseif ($campagne->camp_type == 3) {
// ---- POUR LES PANIERS AVEC SELECTION
if (!isset($couponsToPrint)) {
die();
}
$nbCoupon = 0;
if (!isset($panier)) {
die();
}
foreach ($couponsToPrint as $key => $coupon_code) {
$cp = Coupon::where(['coupon_code' => $coupon_code])->first();
if ($this->isAvailable($cp, $campagne, $contact) && $this->isAvailableToPrint($cp, $campagne)) {
$imgCoupon = $this->printCp($cp, $contact);
$panierContent = PanierContent::where(['panier_content_couponId' => $cp->coupon_id, 'panier_content_panierId' => $panier->panier_id])->first();
if ($panierContent->panier_content_quantity > 0) {
$coupons .= ' ';
}
$newQtyAvailable = $panierContent->panier_content_quantity - 1;
$newQtyPrinted = $panierContent->panier_content_printed + 1;
// Sauvegarde de stat
$stat = new Statistique();
$stat->stat_campId = $campagne->camp_id;
$stat->stat_couponId = $cp->coupon_id;
$stat->stat_couponPrinted = 1;
$stat->save();
}
array_push($couponsPrinted, ['cp_code' => $cp->coupon_code, 'qty' => 1]);
// ---- Mémorise l'impression
$panierContent->panier_content_quantity = $newQtyAvailable;
$panierContent->panier_content_printed = $newQtyPrinted;
$panierContent->save();
}//end if
}//end foreach
// ---- Update du status du panier
$qty = $panier->panierContents()->sum('panier_content_quantity');
if ($qty == 0) {
$panier->panier_pending = 0;
} else {
$panier->panier_pending = 1;
}
$panier->save();
}//end if
$coupons .= ' |