validated(); $campagne = Campagne::find($datas['refcamp']); $customer = Customers::find($datas['hashcode']); $couponsToPrint = explode(",", $datas['coupons']); if ($campagne->site->crm_token === null) { return new StatusResource(['status' => 'KO', 'code' => 500, 'message' => 'CRM Token is missing for site_id : ' . $campagne->site->site_id]); } if ($campagne->site->crm_password === null) { return new StatusResource(['status' => 'KO', 'code' => 500, 'message' => 'CRM Password is missing for site_id : ' . $campagne->site->site_id]); } if (empty($couponsToPrint)) { return new StatusResource(['status' => 'KO', 'code' => 422, 'message' => 'Coupons not found.']); } $crm = new CrmApiV2(config('crm.CRM_ENDPOINT'), $campagne->site->crm_token, $campagne->site->crm_password); try { /** * @var \LDC\LDCCRM\Models\Customer */ $crmInfos = $crm->getCustomer($customer->hashcode); } catch (\Exception $e) { // TODO : Update error message return new StatusResource(['status' => 'KO', 'code' => 422, 'message' => 'Customer not found.']); } if (is_null($crmInfos)) { return new StatusResource(['status' => 'KO', 'code' => 422, 'message' => 'Customer not found.']); } // TODO : Vérifier si les coupons sont dans la campagne // TODO : Logs $coupons = []; if ($campagne->camp_type == 0) { // ---- POUR LES MURS foreach ($couponsToPrint as $key => $coupon_code) { $cp = Coupon::where(['coupon_code' => $coupon_code])->first(); if (!$this->isUsed($cp, $campagne, $customer)) { $coupons[] = $this->printCoupon($cp, $customer, $crmInfos); // ----- mémorise l'impression $mur = new PrintedWalls(); $mur->camp_id = $campagne->camp_id; $mur->customer_id = $customer->id; $mur->coupon_id = $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 foreach }//end if $pdf = PDF::loadView('pdf.coupons', ['coupons' => $coupons]); return new StatusResource(['status' => 'OK', 'pdf' => base64_encode($pdf->stream(sprintf("coupons_%s_%s_%s.pdf", $crmInfos->firstname, $crmInfos->lastname, date('d-m-Y'))))]); } }