apiCrm = new \LDCCRM\ApiV1(config('crm.endpoint'), config('crm.token')); } /** * Show Instant win list * * @return \Illuminate\Contracts\View\View|\Illuminate\Contracts\View\Factory */ public function index() { $winnersList = Participation::has('instantWin')->get(); $settings = Settings::select('use_ean_codes', 'winning_proof')->first(); return view('bo.winners-list.index', compact('winnersList', 'settings')); } /** * Crete and show courrier arcadia * * @param mixed $id * @return \Illuminate\Contracts\View\View|\Illuminate\Contracts\View\Factory */ public function courrierArcadia($id) { /** @var \App\Models\Participation $participation */ $participation = Participation::findOrFail($id); /** @var \App\Models\Customer $customer */ $customer = $participation->customer; $crmUser = $this->apiCrm->getCustomer($customer->crm_id); if ($crmUser->status === 'NOK') { return back()->withErrors("Erreur lors de la récupération de l'utilisateur dans la CRM : Code : " . $crmUser->code . " Message : " . $crmUser->message); } $crmId = $customer->crm_id; $crmUser = $crmUser->user; $corps = '' . "\n"; $corps .= ' ' . "\n"; $corps .= "\t" . '' . "\n"; $corps .= "\t" . '' . date('d/m/Y') . '' . "\n"; $corps .= "\t" . ' ' . "\n"; $corps .= "\t" . '' . "\n"; $corps .= "\t" . 'firstname) . ']]>' . "\n"; $corps .= "\t" . 'lastname) . ']]>' . "\n"; $corps .= "\t" . 'address) . ']]>' . "\n"; // phpcs:ignore Generic.Files.LineLength.TooLong $corps .= "\t" . 'address2) . ']]>' . "\n"; $corps .= "\t" . 'postcode) . ']]>' . "\n"; $corps .= "\t" . 'city) . ']]>' . "\n"; $corps .= '' . "\n"; $corps .= "\t" . ' ' . "\n"; $corps .= "\t" . ' ' . "\n"; $corps .= "\t" . '1' . "\n"; $corps .= "\t" . '' . "\n"; $corps .= '' . "\n"; $corps .= ' ' . "\n"; $corps .= ''; return view('bo.winners-list.arcadia', compact('participation', 'corps', 'crmId')); } /** * Send Arcadia mail * * @param mixed $id * @return \Illuminate\Http\RedirectResponse */ public function createCourrierArcadia($id) { $participation = Participation::findOrFail($id); $instantWin = $participation->instantWin; /** @var \App\Models\Customer $customer */ $customer = $participation->customer; if ($instantWin->prize->arcadia_operation_code !== 0 && $instantWin->prize->arcadia_support_code !== 0) { $fields = [ 'root' => [ [ 'fieldName' => 'order_date', 'fieldValue' => date('d/m/Y') ], [ 'fieldName' => 'operation', 'fieldValue' => $instantWin->prize->arcadia_operation_code ] ], 'orderLine' => [ [ 'fieldName' => 'code_unique', 'fieldValue' => $participation->code->code_unique ], [ 'fieldName' => 'support_code', 'fieldValue' => $instantWin->prize->arcadia_support_code ], [ 'fieldName' => 'label_type_support', 'fieldValue' => 'Gain du lot : ' . $instantWin->prize->label_one ] ] ]; /** @var \App\Models\Settings $settings */ $settings = app(Settings::class); if ($settings->use_ean_codes) { $fields['orderLine'][] = [ 'fieldName' => 'code_on_pack', 'fieldValue' => $participation->codeEan->code ]; } $arcadiaMail = $this->apiCrm->ArcadiaOutgoingMail($customer->crm_id, $fields, 'game'); if ($arcadiaMail->status === 'NOK') { Mail::to(config('mail.MAIL_ADMIN'))->send(new CourrierArcadiaError($customer)); return back()->withErrors("Erreur lors de l'envoi du courrier Arcadia. Code : " . $arcadiaMail->code . " Message : " . $arcadiaMail->message); } }//end if return back()->with('success', 'Courrier envoyé !'); } }