From 40f90c6422d0062526d2cbb06459f2df416f233f Mon Sep 17 00:00:00 2001 From: Vincent BRIDIER Date: Tue, 9 Dec 2025 15:06:15 +0100 Subject: [PATCH] feat: Add DL format for Wall printing --- app/Http/Controllers/Api/v1/CouponsController.php | 5 +++++ app/Http/Requests/Coupons/PrintRequest.php | 3 ++- clients/MesBR_V1.php | 11 +++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Api/v1/CouponsController.php b/app/Http/Controllers/Api/v1/CouponsController.php index ad5fddf..7d1336a 100644 --- a/app/Http/Controllers/Api/v1/CouponsController.php +++ b/app/Http/Controllers/Api/v1/CouponsController.php @@ -25,6 +25,7 @@ class CouponsController extends Controller $campagne = Campagne::find($datas['refcamp']); $customer = Customers::find($datas['hashcode']); $couponsToPrint = explode(",", $datas['coupons']); + $type = $request->validated()['type'] ?? 'stream'; 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]); @@ -68,7 +69,11 @@ class CouponsController extends Controller }//end foreach }//end if + // $coupons contains all printed coupons $pdf = PDF::loadView('pdf.coupons', ['coupons' => $coupons]); + if ($type === 'dl') { + return $pdf->download(sprintf("coupons_%s_%s_%s.pdf", $crmInfos->firstname, $crmInfos->lastname, date('d-m-Y'))); + } return new StatusResource(['status' => 'OK', 'pdf' => base64_encode($pdf->stream(sprintf("coupons_%s_%s_%s.pdf", $crmInfos->firstname, $crmInfos->lastname, date('d-m-Y'))))]); } } diff --git a/app/Http/Requests/Coupons/PrintRequest.php b/app/Http/Requests/Coupons/PrintRequest.php index faae2cf..f830898 100644 --- a/app/Http/Requests/Coupons/PrintRequest.php +++ b/app/Http/Requests/Coupons/PrintRequest.php @@ -30,7 +30,8 @@ class PrintRequest extends FormRequest return [ 'refcamp' => 'string|exists:campagne,camp_id|required', 'hashcode' => 'string|exists:customers,hashcode|required', - 'coupons' => 'required' + 'coupons' => 'required', + 'type' => 'nullable|in:stream,dl' ]; } diff --git a/clients/MesBR_V1.php b/clients/MesBR_V1.php index 61cd947..479320e 100644 --- a/clients/MesBR_V1.php +++ b/clients/MesBR_V1.php @@ -45,6 +45,17 @@ class MesBR return $this->callAPI("GET", '/coupons/print', ['refcamp' => $this->refCamp, 'hashcode' => $hashcode, 'coupons' => implode(",", $coupons)]); } + public function getPrintMurCouponsUrl(string $hashcode, array $coupons) + { + return sprintf( + "%s/api/v1/coupons/print?type=dl&refcamp=%s&hashcode=%s&coupons=%s", + $this->endpoint, + $this->refCamp, + $hashcode, + implode(",", $coupons) + ); + } + private function callAPI($method, $url, $data = []) { $url = $this->endpoint . '/api/v1' . $url;