From f681f692d2ca8dd412cd6f453fcfd07beaf697bc Mon Sep 17 00:00:00 2001 From: soufiane Date: Mon, 17 Jul 2023 17:22:57 +0200 Subject: [PATCH] wait #6123 @1:30 --- app/Http/Controllers/AjaxController.php | 26 ++++++++++++++++--------- app/Models/Product.php | 2 -- resources/js/app.js | 14 ++++++++----- resources/styles/common/global.styl | 2 ++ resources/views/pages/cart.blade.php | 5 +++-- resources/views/partials/form.blade.php | 1 + 6 files changed, 32 insertions(+), 18 deletions(-) diff --git a/app/Http/Controllers/AjaxController.php b/app/Http/Controllers/AjaxController.php index 9ea0088..4873c29 100644 --- a/app/Http/Controllers/AjaxController.php +++ b/app/Http/Controllers/AjaxController.php @@ -98,7 +98,7 @@ class AjaxController extends CubistFrontController * @param PageData $page * @param array $appendContents */ - protected function _sendMail($validatedData, $page, $appendContents = []) + protected function _sendMail($validatedData, $page, $appendContents = [], $action = "quote") { $contents = []; foreach (self::$_labels as $key => $label) { @@ -108,7 +108,7 @@ class AjaxController extends CubistFrontController } $contents = array_merge($contents, $appendContents); - Mail::raw(implode("\r\n", $contents), function ($message) use ($validatedData, $page) { + Mail::raw(implode("\r\n", $contents), function ($message) use ($validatedData, $page, $action) { $message->from(config('mail.from.address'), config('mail.from.name')); $message->sender(config('mail.from.address'), config('mail.from.name')); $message->bcc('test+pmi@cubedesigners.com'); @@ -124,7 +124,9 @@ class AjaxController extends CubistFrontController }*/ $subject = ''; if ($page->form_prefix) { - $subject = '[' . $page->form_prefix . '] '; + $subject = '['; + $subject .= $action === "quote" ? $page->form_prefix : 'Nouvelle commande'; + $subject .= '] '; } if (isset($validatedData['subject'])) { @@ -245,7 +247,7 @@ class AjaxController extends CubistFrontController return ['needs_update' => $needs_update, 'cart_data' => Product::getCartData(), 'ga' => $ga]; } - public function request_quote(Request $request) + public function request_quote(Request $request, $save = null, $action = "quote") { $page = Page::find($request['page'])->getPageData(); // Array of product IDs => quantity @@ -264,7 +266,6 @@ class AjaxController extends CubistFrontController $data['products'] = []; $productsMessage = ["Produits : \n----"]; - $index = 0; $indexMessage = 0; foreach ($cartData as $id => $_data) { @@ -296,7 +297,6 @@ class AjaxController extends CubistFrontController } $productsMessage[$indexMessage] .= $labelPrice.$data['products'][$index]['price'] . "€ \n"; - $productsMessage[$indexMessage] .= url("/{$products[$id]['slug']}")."\n"; $productsMessage[$indexMessage] .= "----"; @@ -309,10 +309,16 @@ class AjaxController extends CubistFrontController $validatedData['subject'] = $data['company']; - $quote = new QuoteRequest($data); - $quote->save(); + if($action === "quote") { + $quote = new QuoteRequest($data); + $quote->save(); - $this->_sendMail($validatedData, $page, [implode("\r\n", $productsMessage), '', 'Voir la demande en ligne : ' . url('/admin/quotes/' . $quote->id . '/edit')]); + $linkTo = 'Voir la demande en ligne : ' . url('/admin/quotes/' . $quote->id . '/edit'); + }else { + $linkTo = 'Voir la commande en ligne : ' . url('/admin/order/' . $save->id . '/edit'); + } + + $this->_sendMail($validatedData, $page, [implode("\r\n", $productsMessage), '', $linkTo],$action); } public function search(Request $request) @@ -740,6 +746,8 @@ class AjaxController extends CubistFrontController if($data) { $order = Order::create($data); $order->save(); + + $this->request_quote($request, $order, "order"); }else{ abort('422', 'Datas are empty'); } diff --git a/app/Models/Product.php b/app/Models/Product.php index 11433e4..6f10b22 100644 --- a/app/Models/Product.php +++ b/app/Models/Product.php @@ -537,9 +537,7 @@ class Product extends CubistMagicPageModel $key -= 1; if ($key > -1) { $options_ = $options[$key]['options']; - dump($options_); foreach ($options_ as $opt_) { - dump($opt_); if ($opt_["ref"] === $ref) { $opt[$refs][] = $opt_["sale_price"] ?? 0; $optDetails[] = ucfirst($options[$key]['name_fr']) . ' : ' . $ref; diff --git a/resources/js/app.js b/resources/js/app.js index c7db50e..fa15b4f 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -565,12 +565,19 @@ const app = new Vue({ .catch(function (error) { }) }, - order() { + order(pageID) { let root = this, data = { user_id: this.user.id, addresses: this.addresses, - products: this.items + products: this.items, + page: pageID, + cart_data: this.cartData, + firstname: this.user.firstname, + name: this.user.lastname, + company: this.user.company, + phone: this.user.phone, + email: this.user.email, } axios.post('/ajax/order', data) @@ -594,9 +601,6 @@ const app = new Vue({ .catch(function (error) { } ) - }, - requestQuote() { - } }, /** diff --git a/resources/styles/common/global.styl b/resources/styles/common/global.styl index 0745b99..e6975fc 100644 --- a/resources/styles/common/global.styl +++ b/resources/styles/common/global.styl @@ -66,6 +66,8 @@ $overlap-amount = 10vw top: 0 background: radial-gradient(circle at 85% 30%, rgba(255,255,255,0.9) 0%, rgba(0,0,0,0) 60%) +.disabled + pointer-events: none // VueJS styling to hide elements until they're ready [v-cloak] diff --git a/resources/views/pages/cart.blade.php b/resources/views/pages/cart.blade.php index 4827683..3293823 100644 --- a/resources/views/pages/cart.blade.php +++ b/resources/views/pages/cart.blade.php @@ -1,7 +1,8 @@ @extends('layouts/app') -@section('content') +@php($pageId = $page->id) +@section('content') @@ -24,7 +25,7 @@

{{ __('Total TTC') }} : @{{ totalTTC }}

- diff --git a/resources/views/partials/form.blade.php b/resources/views/partials/form.blade.php index adc9f89..b1c586e 100644 --- a/resources/views/partials/form.blade.php +++ b/resources/views/partials/form.blade.php @@ -18,6 +18,7 @@ @endif