use Cubist\Backpack\app\Http\Controllers\CubistFrontController;
use Cubist\Backpack\app\Magic\PageData;
use Cubist\Backpack\app\Magic\Search;
+
//use Cubist\Util\ObjectUtil;
use Illuminate\Validation\ValidationException;
use Illuminate\Http\Request;
'ref' => 'Reference',
'phone' => 'Téléphone',
'email' => 'Adresse e-mail',
- 'message' => 'Message'];
+ 'message' => 'Message',
+ 'subject' => 'Sujet'];
// Shared validation logic for dynamic CMS forms
$messages = [];
$fields = $page->get('form');
- if($form){
+ if ($form) {
$fields = $request->all();
}
- if(!$alreadyValidate) {
+ if (!$alreadyValidate) {
foreach ($fields as $field) {
$v = [];
if ($field['mandatory']) {
$v[] = 'required';
- $messages[$field['type'] . '.required'] = sprintf(__('Champ obligatoire'), self::$_labels[$field['type']]);
+ $messages[$field['type'] . '.required'] = sprintf(__('Champ obligatoire'), self::$_labels[$field['type']] ?? $field['type']);
} else {
$v[] = 'nullable';
}
* @param PageData $page
* @param array $appendContents
*/
- protected function _sendMail($validatedData, $page, $appendContents = [], $subject_ = "Cubedesigners", $recipient = "")
+ protected function _sendMail($validatedData, $page, $appendContents = [], $subject_ = "PM Instrumentation", $recipient = "")
{
$contents = [];
- if(Client::getClientConnected()) {
+ if (Client::getClientConnected()) {
$validatedData['tva'] = Client::getClientConnected()->vat;
$validatedData['siren'] = Client::getClientConnected()->siren;
}
}
$contents = array_merge($contents, $appendContents);
- Mail::raw(implode("\r\n", $contents), function ($message) use ($validatedData, $page, $subject_,$recipient) {
+ Mail::raw(implode("\r\n", $contents), function ($message) use ($validatedData, $page, $subject_, $recipient) {
$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');
- if($recipient) {
+ if ($recipient) {
$message->to($recipient);
}
if (null === $page->form_destination || empty($page->form_destination)) {
}
}
+ dd($page);
+
$subject = '';
if ($page->form_prefix) {
$subject .= '[';
$subject .= $subject_ ?? $page->form_prefix;
$subject .= '] ';
- }else {
- if($subject_) {
- $subject .= '['.$subject_.'] ';
+ } else {
+ if ($subject_) {
+ $subject .= '[' . $subject_ . '] ';
}
}
- if($subject_ === "Nouvelle commande") {
- $subject .= 'Commande '.$validatedData['id'];
- }elseif (isset($validatedData['subject'])) {
+ if ($subject_ === "Nouvelle commande") {
+ $subject .= 'Commande ' . $validatedData['id'];
+ } elseif (isset($validatedData['subject'])) {
$subject .= $validatedData['subject'];
}
$ref = $request->input('ref') ?? '';
$price = $request->input('price') ?? '';
- if(!Client::getClientConnected()) {
+ if (!Client::getClientConnected()) {
$price = '';
}
$product = Product::find($id);
$currentItem = false;
- if($product) {
+ if ($product) {
$categoryProduct = $product->category;
$discount = \App\Models\Client::getDiscount($categoryProduct);
$currentItem = array_filter($cart_items, function ($n) use ($ref) {
// If the item already exists in the cart, increment the quantity
if ($currentItem) {
$cart_items[$currentIndex]['quantity'] += $quantity;
- }else {
+ } else {
$cart_items[] = [
'id' => $product->id,
'name' => $product->name,
$needs_update = true;
}
$cart_items[$currentIndex]['quantity'] = $quantity;
- if(!Client::getClientConnected()) {
+ if (!Client::getClientConnected()) {
$cart_items[$currentIndex]['price'] = 0;
$cart_items[$currentIndex]['basic_selling_price'] = 0;
}
// Validated form fields
$validatedData = $action === "order" ? $this->_validate_form($request, $page, true) : $this->_validate_form($request, $page);
- $products = PageData::fromEntities(Product::whereIn('id', array_keys($cartData) )->get());
+ $products = PageData::fromEntities(Product::whereIn('id', array_keys($cartData))->get());
$cartData_ = Product::getCartData();
$productsArray = Product::getProductsByIds(array_keys($cartData));
foreach ($cartData as $id => $_data) {
$indexMessage++;
- $cartByID = array_values(array_filter($cartData_, function($n) use($id) { return $n['id'] == $id; }));
+ $cartByID = array_values(array_filter($cartData_, function ($n) use ($id) {
+ return $n['id'] == $id;
+ }));
$optionsPrices = Product::optionPrice($id, $cartByID[0]['ref'], $productsArray, true);
$basicSellingPrice = $products[$id]['basic_selling_price'];
$categoryProduct = $products[$id]['category'];
$price = 0;
$priceDiscount = 0;
- if($basicSellingPrice) {
+ if ($basicSellingPrice) {
$price = $basicSellingPrice;
if ($optionsPrices) {
'reference' => (empty($cartByID[0]['ref']) ? $cartByID[0]['reference'] : $cartByID[0]['ref']),
'name' => $products[$id]['name'],
'quantity' => $_data,
- 'price' => isset($price) && intval($price) > 0 && Client::getClientConnected() ? ECommerceCommon::priceWithDiscount($price, $discount)."€" : 0
+ 'price' => isset($price) && intval($price) > 0 && Client::getClientConnected() ? ECommerceCommon::priceWithDiscount($price, $discount) . "€" : 0
];
$productsMessage[] = 'Référence : ' . (empty($cartByID[0]['ref']) ? $cartByID[0]['reference'] : $cartByID[0]['ref']) . "\n";
- $productsMessage[$indexMessage] .= url("/{$products[$id]['slug']}")."\n";
+ $productsMessage[$indexMessage] .= url("/{$products[$id]['slug']}") . "\n";
- if(Client::getClientConnected()) {
+ if (Client::getClientConnected()) {
$labelPrice = 'Prix unitaire HT : ';
$labelPriceDiscount = 'Prix unitaire HT (avec remise) : ';
- if($optionsPrices) {
+ if ($optionsPrices) {
$productsMessage[$indexMessage] .= 'Prix de base : ' . ECommerceCommon::formatPrice($cartByID[0]['basic_selling_price']) . "€ HT\n";
foreach ($optionsPrices[1] as $key => $v) {
- $productsMessage[$indexMessage] .= $v . " (+".array_values($optionsPrices[0])[0][$key]."€ HT)\n";
+ $productsMessage[$indexMessage] .= $v . " (+" . array_values($optionsPrices[0])[0][$key] . "€ HT)\n";
}
$labelPrice = 'Prix unitaire HT (avec options) : ';
$labelPriceDiscount = 'Prix unitaire HT (avec options et remise) : ';
$index++;
}
- if($action === "order") {
- $totalHT = array_reduce($prices, function($carry, $item) { return $carry + $item; });
+ if ($action === "order") {
+ $totalHT = array_reduce($prices, function ($carry, $item) {
+ return $carry + $item;
+ });
$totalHT += ($totalHT < 1000) ? 20 : 0;
$tva = ECommerceCommon::tva($totalHT);
$totalTTC = ECommerceCommon::totalTTC($totalHT);
- $productsMessage[$indexMessage] .= "Frais de ports : ".($totalHT < 1000 ? '20,00' : 0)."€\n";
- $productsMessage[$indexMessage] .= "Total HT : ". ECommerceCommon::formatPrice($totalHT) ."€\n";
- $productsMessage[$indexMessage] .= "Montant TVA : ". ECommerceCommon::formatPrice($tva) ."€\n";
- $productsMessage[$indexMessage] .= "Total TTC : ". ECommerceCommon::formatPrice($totalTTC) ."€\n";
+ $productsMessage[$indexMessage] .= "Frais de ports : " . ($totalHT < 1000 ? '20,00' : 0) . "€\n";
+ $productsMessage[$indexMessage] .= "Total HT : " . ECommerceCommon::formatPrice($totalHT) . "€\n";
+ $productsMessage[$indexMessage] .= "Montant TVA : " . ECommerceCommon::formatPrice($tva) . "€\n";
+ $productsMessage[$indexMessage] .= "Total TTC : " . ECommerceCommon::formatPrice($totalTTC) . "€\n";
$productsMessage[$indexMessage] .= "\n----\n\n";
$productsMessage[$indexMessage] .= "Adresse de facturation : \n";
foreach (Client::getAddressByType("billing_address")[0] as $key => $info) {
$productsMessage[$indexMessage] .= $info;
- $productsMessage[$indexMessage] .= !in_array($key, ["firstname","zipcode"]) ? "\n" : " ";
+ $productsMessage[$indexMessage] .= !in_array($key, ["firstname", "zipcode"]) ? "\n" : " ";
}
$productsMessage[$indexMessage] .= "\n----\n\n";
$productsMessage[$indexMessage] .= "Adresse de livraison : \n";
foreach (Client::getAddressByType("delivery_address")[0] as $key => $info) {
$productsMessage[$indexMessage] .= $info;
- $productsMessage[$indexMessage] .= !in_array($key, ["firstname","zipcode"]) ? "\n" : " ";
+ $productsMessage[$indexMessage] .= !in_array($key, ["firstname", "zipcode"]) ? "\n" : " ";
}
$productsMessage[$indexMessage] .= "\n----\n";
}
$validatedData['subject'] = $data['company'];
- if($action === "quote") {
+ if ($action === "quote") {
$quote = new QuoteRequest($data);
$quote->save();
$linkTo = 'Voir la demande en ligne : ' . url('/admin/quotes/' . $quote->id . '/edit');
$subj = null;
- }else {
+ } else {
$linkTo = 'Voir la commande en ligne : ' . url('/admin/order/' . $save->id . "/edit \n");
$subj = "Nouvelle commande";
}
return Product::getFilteredProducts($product_type, $filter_values);
}
- public function news(Request $request) {
+ public function news(Request $request)
+ {
// The current page number is passed in the HTTP request
// and detected automatically by Laravel's paginate() function
// Ref: https://laravel.com/docs/5.8/pagination#paginating-query-builder-results
*
*/
- public function validation_form(Request $request, $validation, $multiArray = false){
+ public function validation_form(Request $request, $validation, $multiArray = false)
+ {
$messages = [
'*.required' => __('Veuillez remplir les champs obligatoires'),
'email.email' => __('Veuillez indiquer une adresse email valide'),
}
- public function check_email_exist(Request $request) {
+ public function check_email_exist(Request $request)
+ {
$validation = [
'email' => 'required|email'
];
return Client::where('email', $request->email)->get();
}
- public function signin(Request $request) {
+ public function signin(Request $request)
+ {
$validation = [
'email' => 'required|email',
'password' => 'required'
}
}
- public function signup(Request $request) {
+ public function signup(Request $request)
+ {
$validation = [
'email' => 'required|email|unique:clients',
'password' => 'required|confirmed|min:8',
foreach ($data['address'] as $key => $value) {
$counter++;
$address .= json_encode($data['address'][$key]);
- if($counter !== sizeof($data['address'])){
+ if ($counter !== sizeof($data['address'])) {
$address .= ',';
}
}
$data['subject'] = "Cubedesigners";
- $linkTo = "\n".'Valider l\'inscription en ligne : ' . url('/admin/client/' . $client->id . '/edit');
+ $linkTo = "\n" . 'Valider l\'inscription en ligne : ' . url('/admin/client/' . $client->id . '/edit');
$this->_sendMail($data, $page, [$linkTo], "Nouvelle inscription");
return $data;
}
- public function update(Request $request) {
+ public function update(Request $request)
+ {
$validation = [];
- foreach ($request->all() as $key => $field){
- if($key === "email"){
+ foreach ($request->all() as $key => $field) {
+ if ($key === "email") {
$validation[$key] = 'required|email';
- }elseif(in_array($key, ['firstname','lastname','name','company','address','city'])){
+ } elseif (in_array($key, ['firstname', 'lastname', 'name', 'company', 'address', 'city'])) {
$validation[$key] = 'required|string|max:255';
- }elseif(in_array($key,['phone'])){
+ } elseif (in_array($key, ['phone'])) {
$validation[$key] = 'required|numeric';
- }elseif ($key === "actually_password"){
+ } elseif ($key === "actually_password") {
$validation[$key] = 'required';
- }elseif ($key === "password"){
+ } elseif ($key === "password") {
$validation[$key] = 'required|confirmed|min:8';
}
}
$data = $this->validation_form($request, $validation);
$email = Client::getClientConnected()->email;
- if($request->password) {
+ if ($request->password) {
$data['password'] = Hash::make($data['password']);
$password = $data['actually_password'];
$actuallyPassword = Auth::guard('web-clients')->user()->password;
unset($data['actually_password']);
}
- $client = Client::where('email',$email)->update($data);
+ $client = Client::where('email', $email)->update($data);
}
- public function updateAddress(Request $request){
+ public function updateAddress(Request $request)
+ {
$validation = [];
$index = $request->index;
- foreach ($request->all() as $field){
+ foreach ($request->all() as $field) {
if (is_array($field)) {
foreach ($field as $keySubfield => $subfield) {
if (in_array($keySubfield, ['firstname', 'lastname', 'name', 'company', 'address', 'city'])) {
- $validation['*'.'.'.$keySubfield] = 'required|string|max:255';
+ $validation['*' . '.' . $keySubfield] = 'required|string|max:255';
} elseif (in_array($keySubfield, ['zipcode'])) {
- $validation['*'.'.'.$keySubfield] = 'required|numeric';
+ $validation['*' . '.' . $keySubfield] = 'required|numeric';
}
}
}
$email = Client::getClientConnected()->email;
- $addressToArray = array_map(function($n) {
+ $addressToArray = array_map(function ($n) {
$n['billing_address'] = strval(intval((bool)$n['billing_address']));
$n['delivery_address'] = strval(intval((bool)$n['delivery_address']));
return $n;
$client = Client::where('email', $email)->update(['address' => $addressToString]);
}
- public function deleteaddress(Request $request) {
+ public function deleteaddress(Request $request)
+ {
$index = $request->index;
$address = Client::getClientConnected()->address;
- $addressToArray = json_decode($address,true);
+ $addressToArray = json_decode($address, true);
$addressToArray[0]['delivery_address'] = intval($addressToArray[$index]['delivery_address']) ? "1" : strval(intval($addressToArray[0]['delivery_address']));
$addressToArray[0]['billing_address'] = intval($addressToArray[$index]['billing_address']) ? "1" : strval(intval($addressToArray[0]['billing_address']));
return $addressToString;
}
- public function getuser() {
+ public function getuser()
+ {
$user = Client::getClientConnected();
- if($user) {
+ if ($user) {
$addressToArray = json_decode($user->address, true);
$checkBillingAddress = array_filter($addressToArray, function ($n) {
return $n['billing_address'];
'address_billing' => key($checkBillingAddress) ?? "0",
'address_delivery' => key($checkDeliveryAddress) ?? "0"
];
- }else{
+ } else {
abort(401, 'Unauthorized');
}
return false;
}
- public function storecart(Request $request) {
+ public function storecart(Request $request)
+ {
$validation = [
'addresses' => 'required',
'products' => 'required',
//
$lastCartRefs = $lastCartId ? Cart::find($lastCartId)->getReferences() : [];
$currentCartRef = Cart::getRefs($data['products']);
- $intersect = $lastCartRefs ? array_intersect($currentCartRef,$lastCartRefs) : [];
+ $intersect = $lastCartRefs ? array_intersect($currentCartRef, $lastCartRefs) : [];
$data['products'] = json_encode($data['products']);
$ids = Product::getProductIds($data);
$productsInfosBase = Product::getProductsByIds($ids);
- $currentCartRef = Cart::getRefs(json_decode($data['products'],true));
+ $currentCartRef = Cart::getRefs(json_decode($data['products'], true));
$data['products'] = json_decode($data['products'], true);
/**
*
*/
- $data = Cart::fillData($currentCartRef, $data, $productsInfosBase,false);
+ $data = Cart::fillData($currentCartRef, $data, $productsInfosBase, false);
- if(sizeof($lastCartRefs) !== sizeof($intersect) ||
- (sizeof($lastCartRefs) === sizeof($intersect) && sizeof($currentCartRef) != sizeof($lastCartRefs)) ) {
+ if (sizeof($lastCartRefs) !== sizeof($intersect) ||
+ (sizeof($lastCartRefs) === sizeof($intersect) && sizeof($currentCartRef) != sizeof($lastCartRefs))) {
$data["name"] = __("Panier du :date", ["date" => Carbon::now('Europe/Paris')->isoFormat("DD/MM/Y")]);
$panier = Cart::firstOrCreate($data);
$panier->save();
return __('Le panier a été enregistré avec succès !');
}
- public function deleteSavedcart(Request $request) {
+ public function deleteSavedcart(Request $request)
+ {
$request->validate([
'id' => 'required|numeric',
]);
$cart->delete();
}
- public function updateNameSavedcart(Request $request) {
+ public function updateNameSavedcart(Request $request)
+ {
$request->validate([
'id' => 'required|numeric',
'text' => 'required|max:255'
$cart->save();
}
- public function savedCartToCurrent(Request $request) {
+ public function savedCartToCurrent(Request $request)
+ {
$request->validate([
'id' => 'required|numeric'
]);
$clientId = Client::getClientConnected()->id;
$currentCartRef = Cart::getRefs($cart['products']);
- $data = Cart::updateCartData($currentCartRef,$cart,$productsInfosBase);
+ $data = Cart::updateCartData($currentCartRef, $cart, $productsInfosBase);
- if($clientIdInRequest === $clientId) {
+ if ($clientIdInRequest === $clientId) {
$cartData = $data['products'];
// Clear cart session
return false;
}
- public function order(Request $request) {
+ public function order(Request $request)
+ {
$validation = [
'addresses' => 'required',
'products' => 'required',
$productsInfosBase = Product::getProductsByIds($ids);
$currentCartRef = Cart::getRefs($data['products']);
- $data = Order::fillData($currentCartRef,$data,$productsInfosBase);
- $company = array_values(array_filter(json_decode($data['addresses'], true), function($n) {
+ $data = Order::fillData($currentCartRef, $data, $productsInfosBase);
+ $company = array_values(array_filter(json_decode($data['addresses'], true), function ($n) {
return intval($n['delivery_address']);
}))[0]['company'];
$data['company'] = $company;
$data['request_date'] = Carbon::now('Europe/Paris');
- $data['products'] = json_encode(array_map(function($n){
- $exp = explode('|',$n['ref']);
+ $data['products'] = json_encode(array_map(function ($n) {
+ $exp = explode('|', $n['ref']);
array_shift($exp);
$n['ref'] = sizeof($exp) > 1 ? implode('|', $exp) : $exp;
return $n;
- }, json_decode($data['products'],true)));
+ }, json_decode($data['products'], true)));
- if($data) {
+ if ($data) {
$order = Order::create($data);
$order->save();
$this->request_quote($request, $order, "order");
- }else{
+ } else {
abort('422', 'Datas are empty');
}
// Clear cart session
$request->session()->forget('cart_items');
- return __('Votre commande a bien été transmise à nos équipes.')."\n".__('Nous vous recontacterons dans les 48 heures par email ou par téléphone pour la valider.');
+ return __('Votre commande a bien été transmise à nos équipes.') . "\n" . __('Nous vous recontacterons dans les 48 heures par email ou par téléphone pour la valider.');
}
- public function updateCart($request) {
+ public function updateCart($request)
+ {
$cart = Product::getCartData();
$data['products'] = json_encode($cart);
$ids = Product::getProductIds($data);
$productsInfosBase = Product::getProductsByIds($ids);
- $currentCartRef = Cart::getRefs(json_decode($data['products'],true));
+ $currentCartRef = Cart::getRefs(json_decode($data['products'], true));
$data['products'] = json_decode($data['products'], true);
- $data = Cart::fillData($currentCartRef, $data, $productsInfosBase,false);
- $update = json_decode($data['products'],true);
+ $data = Cart::fillData($currentCartRef, $data, $productsInfosBase, false);
+ $update = json_decode($data['products'], true);
$request->session()->forget('cart_items');
$request->session()->put('cart_items', $update);