* @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) {
}
$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');
}*/
$subject = '';
if ($page->form_prefix) {
- $subject = '[' . $page->form_prefix . '] ';
+ $subject = '[';
+ $subject .= $action === "quote" ? $page->form_prefix : 'Nouvelle commande';
+ $subject .= '] ';
}
if (isset($validatedData['subject'])) {
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
$data['products'] = [];
$productsMessage = ["Produits : \n----"];
-
$index = 0;
$indexMessage = 0;
foreach ($cartData as $id => $_data) {
}
$productsMessage[$indexMessage] .= $labelPrice.$data['products'][$index]['price'] . "€ \n";
-
$productsMessage[$indexMessage] .= url("/{$products[$id]['slug']}")."\n";
$productsMessage[$indexMessage] .= "----";
$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)
if($data) {
$order = Order::create($data);
$order->save();
+
+ $this->request_quote($request, $order, "order");
}else{
abort('422', 'Datas are empty');
}
.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)
.catch(function (error) {
}
)
- },
- requestQuote() {
-
}
},
/**