public function createOrder(Request $request) { $addressService = new addressService(); $orderService = new orderService(); $deliveryId = $request->input('deliveryId', 0); $deliveryName = $request->input('deliveryName', ''); $deliveryPhone = $request->input('deliveryPhone', ''); $cityId = $request->input('cityId', ''); $districtId = $request->input('districtId', ''); $wardId = $request->input('wardId', ''); $deliveryStreet = $request->input('deliveryStreet', ''); $deliveryEmail = $request->input('deliveryEmail', ''); try { if (!intval($deliveryId)) { $deliveryAddress = []; $deliveryAddress['name'] = $deliveryName; $deliveryAddress['email'] = $deliveryEmail; $deliveryAddress['phone'] = $deliveryPhone; $deliveryAddress['street'] = $deliveryStreet; $deliveryAddress['city_id'] = $cityId; $deliveryAddress['district_id'] = $districtId; $deliveryAddress['ward_id'] = $wardId; $addressReceive = $addressService->createUserAddress($this->_user->id, $deliveryAddress); $deliveryId = $addressReceive->id; } $order = $orderService->createOrder($this->_user->id, $deliveryId, 0, 0, 0, 0, KACANA_ORDER_PARTNER_STATUS_NEW); return redirect('/order/edit/' . $order->order_code); } catch (\Exception $e) { // @codeCoverageIgnoreStart $return['error'] = $e->getMessage(); $return['errorMsg'] = $e->getMessage(); // @codeCoverageIgnoreEnd } return response()->json($return); }
public function processCartWithAddressId($userEmail, $addressId) { $addressService = new addressService(); $userService = new userService(); $orderService = new orderService(); $cart = $this->cartInformation(); if (!$cart) { throw new \Exception('bad Cart items'); } $checkAddressUser = false; $user = $userService->getUserByEmail($userEmail); foreach ($user->userAddress as $userAddres) { if ($userAddres->id == $addressId) { $checkAddressUser = true; } } if (!$checkAddressUser) { throw new \Exception('bad address id'); } // create new order for user $order = $orderService->createOrder($user->id, $addressId, $cart->total, $cart->quantity, $cart->originTotal, $cart->discount); $items = $cart->items; foreach ($items as $item) { $orderService->createOrderDetail($order->id, $item); } // destroy CART Cart::destroy(); //send email for user $mailService = new mailService(); if ($mailService->sendEmailOrder($user->email, $order->id)) { return $order; } else { throw new \Exception('Bị lỗi trong quá trình gửi mail'); } // send zalo message for user return $order; }