From: soufiane Date: Thu, 13 Apr 2023 08:51:13 +0000 (+0200) Subject: wip store panier X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=c5d8a4e68f52d4c03655b9671545c17c1f36a015;p=pmi.git wip store panier --- diff --git a/app/Http/Controllers/Admin/ProductBaseController.php b/app/Http/Controllers/Admin/ProductBaseController.php index c557d65..60ce35e 100644 --- a/app/Http/Controllers/Admin/ProductBaseController.php +++ b/app/Http/Controllers/Admin/ProductBaseController.php @@ -155,11 +155,14 @@ class ProductBaseController extends CubistMagicController { $contentMail["details"] = "Fichier incorrect"; } - $successMessage = "$sizeFiles fichier(s) chargé(s)
"; - $successMessage .= "$sizeSheets produit(s) chargé(s)
"; + $successMessage = "$sizeFiles fichier(s) chargé(s)"; + $successMessage .= "\n"; + $successMessage .= "$sizeSheets produit(s) chargé(s)"; + $successMessage .= "\n"; if($changes) { - $successMessage .= "$sizeChanges produit(s) modifié(s)
"; + $successMessage .= "$sizeChanges produit(s) modifié(s)"; + $successMessage .= "\n"; } $contentMail["resume"] = $successMessage; @@ -172,7 +175,7 @@ class ProductBaseController extends CubistMagicController { foreach ($errorsMessage as $message) { $messages .= "

$message

"; } - $messages .= "
"; + $messages .= "\n"; } $messages .= $successMessage; diff --git a/app/Http/Controllers/AjaxController.php b/app/Http/Controllers/AjaxController.php index 8a70f6d..4ae3f73 100644 --- a/app/Http/Controllers/AjaxController.php +++ b/app/Http/Controllers/AjaxController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Models\Panier; use Cubist\Backpack\Facades\App; use App\Models\Page; use App\Models\Product; @@ -310,7 +311,7 @@ class AjaxController extends CubistFrontController /* * * - * CONNEXION, REGISTER, MY ACCOUNT + * CONNEXION, REGISTER, MY ACCOUNT, SELECTION, COMMAND * * */ @@ -339,6 +340,7 @@ class AjaxController extends CubistFrontController $validator->validate(); return $validator->validated(); } + public function check_email_exist(Request $request) { $validation = [ 'email' => 'required|email' @@ -443,7 +445,7 @@ class AjaxController extends CubistFrontController } $data = $this->validation_form($request, $validation); - $email = Auth::guard('web-clients')->user()->email; + $email = Client::getClientConnected()->email; if($request->password) { $data['password'] = Hash::make($data['password']); @@ -477,8 +479,8 @@ class AjaxController extends CubistFrontController $data = $this->validation_form($request, $validation); - $email = Auth::guard('web-clients')->user()->email; - $address = Auth::guard('web-clients')->user()->address; + $email = Client::getClientConnected()->email; + $address = Client::getClientConnected()->address; $addressToArray = json_decode($address); @@ -525,28 +527,23 @@ class AjaxController extends CubistFrontController $client = Client::where('email', $email)->update(['address' => $addressToString]); } - public function getaddress() { - $clientAddress = Auth::guard('web-clients')->user()->address; - return $clientAddress; - } - public function deleteaddress(Request $request) { $index = $request->index; - $address = Auth::guard('web-clients')->user()->address; + $address = Client::getClientConnected()->address; $addressToArray = json_decode($address); unset($addressToArray[$index]); $addressToString = json_encode($addressToArray); - $email = Auth::guard('web-clients')->user()->email; + $email = Client::getClientConnected()->email; $client = Client::where('email', $email)->update(['address' => $addressToString]); return $addressToString; } public function getuser() { - $user = Auth::guard('web-clients')->user(); + $user = Client::getClientConnected(); if($user) { $addressToArray = json_decode($user->address, true); $checkBillingAddress = array_filter($addressToArray, function ($n) { @@ -568,4 +565,18 @@ class AjaxController extends CubistFrontController } return false; } + + public function storepanier(Request $request) { + $validation = [ + 'name' => 'required|string|max:255', + 'addresses' => 'required', + 'products' => 'required', + 'userId' => 'required|numeric' + ]; + $data = $this->validation_form($request, $validation); + $panier = new Panier($data); + $panier->save(); + + return 'ok'; + } } diff --git a/app/Models/Client.php b/app/Models/Client.php index d22cb1d..cb9a2f4 100644 --- a/app/Models/Client.php +++ b/app/Models/Client.php @@ -2,6 +2,7 @@ namespace App\Models; use Cubist\Backpack\app\Magic\Models\CubistMagicAbstractModel; +use Illuminate\Support\Facades\Auth; class Client extends CubistMagicAbstractModel { @@ -89,4 +90,8 @@ class Client extends CubistMagicAbstractModel 'tab' => 'Informations client' ]); } + + public static function getClientConnected() { + return Auth::guard('web-clients')->user(); + } } diff --git a/package.json b/package.json index 033d57f..edbcfb3 100644 --- a/package.json +++ b/package.json @@ -48,5 +48,5 @@ "vue-slider-component": "^3.0.40", "vue-template-compiler": "^2.6.10" }, - "dependencies": {}, + "dependencies": {} } diff --git a/resources/js/app.js b/resources/js/app.js index 5480aaa..7ab3861 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -31,10 +31,9 @@ window.Vue = require('vue'); window.eventBus = new Vue(); import PortalVue from 'portal-vue'; -import Ar from "../../public/vendor/adminlte/bower_components/moment/src/locale/ar"; import VueTheMask from 'vue-the-mask' -Vue.use(VueTheMask) +Vue.use(VueTheMask); Vue.use(PortalVue); /** @@ -73,8 +72,8 @@ const app = new Vue({ validateForm: false, tab: 'infos', addresses: [{}], - errorsForm: {}, user: '', + errorsForm: {}, default_billing_address: null, default_delivery_address: null, // @@ -153,7 +152,7 @@ const app = new Vue({ totalTTC() { let total = this.total ? parseFloat(this.total) + parseFloat(this.tva) : 0 return total.toFixed(2) - } + }, }, methods: { @@ -339,8 +338,8 @@ const app = new Vue({ // Assign default values to each address, if the field is empty // It useful during the first connexion to his account - for(let i = 0; i < root.addresses.length; i++) { - root.addresses[i]['name'] = root.addresses[i]['name'] ?? 'Adresse '+root.addresses[i]['city'] + for (let i = 0; i < root.addresses.length; i++) { + root.addresses[i]['name'] = root.addresses[i]['name'] ?? 'Adresse ' + root.addresses[i]['city'] root.addresses[i]['company'] = root.addresses[i]['company'] ?? root.user['company'] root.addresses[i]['firstname'] = root.addresses[i]['firstname'] ?? root.user['firstname'] root.addresses[i]['lastname'] = root.addresses[i]['lastname'] ?? root.user['lastname'] @@ -350,8 +349,8 @@ const app = new Vue({ root.default_delivery_address = 'delivery' + response.data['address_delivery'] }) .catch(function (error) { - } - ) + } + ) }, addAddressToForm(event) { let newAddress = { @@ -469,6 +468,26 @@ const app = new Vue({ this.ref = this.$refs.refProduct.dataset.ref+'/'+placeholder this.price = total + parseFloat(this.$refs.optprice.dataset.default) this.price = parseFloat(this.price).toFixed(2) + }, + /** + * + */ + storePanier() { + let root = this, + data = { + name: "Panier du "+document.querySelector('[name="now"]').dataset.content, + userId: this.user.id, + addresses: this.addresses, + products: this.items + } + + axios.post('/ajax/storepanier', data) + .then(function (response) { + console.log(response) + }) + .catch(function (error) { + console.log(error) + }) } }, /** diff --git a/resources/js/components/Panier.vue b/resources/js/components/Panier.vue new file mode 100644 index 0000000..4dbc425 --- /dev/null +++ b/resources/js/components/Panier.vue @@ -0,0 +1,23 @@ + + + + + diff --git a/resources/styles/components/signin.styl b/resources/styles/components/signin.styl index 65dc033..f0102a9 100644 --- a/resources/styles/components/signin.styl +++ b/resources/styles/components/signin.styl @@ -53,7 +53,7 @@ .signin, .account - .btn:not(#checkemail) + .btn:not(.checkemail) max-width: 258px width: 100% padding-left: 28px diff --git a/resources/views/components/cart-add.blade.php b/resources/views/components/cart-add.blade.php index 386441d..ec5c83e 100644 --- a/resources/views/components/cart-add.blade.php +++ b/resources/views/components/cart-add.blade.php @@ -1,4 +1,4 @@ -
diff --git a/resources/views/pages/product-detail.blade.php b/resources/views/pages/product-detail.blade.php index 68e53fb..6a6e203 100644 --- a/resources/views/pages/product-detail.blade.php +++ b/resources/views/pages/product-detail.blade.php @@ -62,9 +62,12 @@
diff --git a/resources/views/pages/sign_in.blade.php b/resources/views/pages/sign_in.blade.php index 4fcc151..f7195a2 100644 --- a/resources/views/pages/sign_in.blade.php +++ b/resources/views/pages/sign_in.blade.php @@ -23,7 +23,7 @@ @@ -82,7 +82,7 @@ *{{ __('Champs obligatoires')}} - @@ -216,7 +216,7 @@ *{{ __('Champs obligatoires')}} - diff --git a/routes/backpack/import.php b/routes/backpack/import.php deleted file mode 100644 index 5b454cd..0000000 --- a/routes/backpack/import.php +++ /dev/null @@ -1,2 +0,0 @@ -