/var/www/vhosts/nabawater/frontend/controllers
NameSizeModeActions
AdsController.php16160644editdlrm
BranchController.php910030644editdlrm
CmsController.php19540644editdlrm
DriverController.php26350644editdlrm
HomeController.php24080644editdlrm
ItemController.php63130644editdlrm
OrderController.php55780644editdlrm
PageController.php13990644editdlrm
PaymentController.php331140644editdlrm
SiteController.php9920644editdlrm
UserController.php456530644editdlrm
Edit: /var/www/vhosts/nabawater/frontend/controllers/BranchController.php (91003B)
enableCsrfValidation = false; return parent::beforeAction($action); } /** * * @return array */ public function actionIndex() { $latitude = 11.021748; $longitude = 76.9157439; $_GET = [ 'latitude' => $latitude, 'longitude' => $longitude ]; $todaySpecial = ApiHelper::getInstance() ->setUrl('site/index', [ 'latitude' => $latitude, 'longitude' => $longitude ]); $apiResponse = $todaySpecial->run(); $dataProviderTodaySpecial = new ArrayDataProvider([ 'allModels' => $apiResponse->getData()['todayspecial'] ]); $apiHelper = ApiHelper::getInstance() ->setUrl('branch/index', [ 'latitude' => $latitude, 'longitude' => $longitude ]); $apiResponse = $apiHelper->run(); $dataProviderBranch = new ArrayDataProvider([ 'allModels' => $apiResponse->getData() ]); return $this->render('index',[ 'dataProviderBranch' => $dataProviderBranch, 'dataProviderTodaySpecial' => $dataProviderTodaySpecial ]); } /** * * @param type $id * @return type */ public function actionView($id) { $latitude = 11.021748; $longitude = 76.9157439; $_GET = [ 'latitude' => $latitude, 'longitude' => $longitude, 'id' => $id ]; $apiHelper = ApiHelper::getInstance() ->setUrl('branch/view', [ 'latitude' => $latitude, 'longitude' => $longitude, 'id' =>$id ]); $apiResponse = $apiHelper->run(); $dataProviderBranch = new ArrayDataProvider([ 'allModels' => $apiResponse->getData() ]); $apiHelperItem = ApiHelper::getInstance() ->setUrl('category/index', [ 'branch_key' =>$id ]); $apiResponseItem = $apiHelperItem->run(); $dataProviderItem = new ArrayDataProvider([ 'allModels' => $apiResponseItem->getData() ]); return $this->render('view',[ 'dataProviderBranch' => $dataProviderBranch, 'dataProviderItem' => $dataProviderItem ]); } /** * * @param type $id * @return string */ public function actionBranchDetail($id) { $branch = Branch::BranchDetail($id); $branchreview = Branch::BranchReview($id); $items = Item::instance()->get($id); $branchTimeslot = BranchTimeslot::instance()->get($id); $Rating = Branch::branchrating($id); $branchStatus = BranchTimeslot::instance()->branchTimeSlotStatus($id); $menuItems = Category::find()->alias('C') ->select(['VC.category_id', 'C.category_key']) ->leftJoin(['VC' => VendorCategory::tableName()], 'VC.category_id = C.category_id') ->where([ 'VC.vendor_id' => $branch['vendor_id'], 'C.category_status' => Category::ACTIVE ]); Category::selectTranslation($menuItems); return $this->render('detail', [ 'branch' => $branch, 'items' => $items, 'branchTimeslot' => $branchTimeslot, 'branchreview' => $branchreview, 'Rating' => $Rating, 'branchStatus' => $branchStatus, 'menuItems' => $menuItems->asArray()->all() ]); } /** * * @return Json */ public function actionAddCart() { if (Yii::$app->request->isAjax) { //$userIdentity = UserIdentity::getInstance()->getUser(); $request = Yii::$app->getRequest()->post(); $modelUser = User::findOne(yii::$app->user->getId()); if(isset($request['refudbottle']) && $request['refudbottle'] > $modelUser->refund_bottle_qty) { $response['message'] = 'Sorry, you have only '.$modelUser->refund_bottle_qty.' refund bottles'; $response['status'] = STATUS_FAIL; goto skip; } $count = 0; $quantity = 1; $item_key = $request['item_key']; $ingredient = []; $response['status'] = Com::SUCCESS; $response['message'] = Yii::t('backend','Item Added Successfully'); $response['error_message'] = Yii::t('frontend', 'You are about to clear the cart!! Do you want to proceed?'); $modelItem = Item::findOne(['item_key' => $request['item_key']]); $cart_product = Com::session(Com::SES_CART); //print_r($modelItem); die; if($request['element'] == 'ingredient_add') { $model = Item::instance()->getCartItemDetail($request['item_key'], $request['branch_key']); $response['ingredient'] = true; $response['html'] = $this->renderPartial('_ingredient', ['model' => $model]); return $this->asJson($response); } $modelBranch = Branch::find()->where(['branch_id' => $modelItem->branch_id])->one(); //print_r($modelBranch); die; //print_r(Com::session(Com::CART_BRANCH_KEY)); die; if(Com::session(Com::CART_BRANCH_KEY)) { if($request['is_clear_cart'] == 1) { Com::setSession(Com::CART_BRANCH_KEY, $modelBranch->branch_key); } if(Com::session(Com::CART_BRANCH_KEY) != $modelBranch->branch_key) { //print_r($cart_product); die; $response['error_message'] = Yii::t('frontend', 'Your cart will clear if you add items from another branch. Do you want to proceed?'); $response['clear_alert'] = 1; goto skip; //Com::setSession(Com::CART_BRANCH_KEY, $modelBranch->branch_key); } } else { Com::setSession(Com::CART_BRANCH_KEY, $modelBranch->branch_key); } //print_r($request); die; if($request['element'] == 'add_item_ingredient') { if (isset($request['ing_check'])) { $ingredient = $request['ing_check']; $sessionIng =[]; if(count($ingredient)){ foreach ($ingredient as $group_key => $ing) { $session[] = $group_key; $session = array_merge($session, $ing); } } $item_key = $request['item_key'].Item::SESSION_ING.implode(Item::SESSION_ING, $session); } $quantity = $request['ing_quantity']; } if (!Com::isSession(Com::SES_CART) || !Com::session(Com::SES_CART)) { $cart_product = [ $request['branch_key'] => [ $item_key => [ 'item_key' => $request['item_key'], 'max_quantity' => Com::MAX_QUANTITY, 'quantity' => $quantity, 'ingredient' => $ingredient, 'refund_bottle_qty' => isset($request['refudbottle']) ? $request['refudbottle'] : 0, ] ] ]; $count = count($cart_product[$request['branch_key']]); Com::setSession(Com::ITEM_BRANCH, $request['branch_key']); } else { // $modelItem = Item::findOne(['item_key' => $request['item_key']]); // print_r($request); die; $cart_product = Com::session(Com::SES_CART); if($request['is_clear_cart'] == 1) { $cart_product = []; } if (array_key_exists($request['branch_key'], $cart_product)) { if(isset($cart_product[$request['branch_key']][$item_key])) { if($modelItem->item_status != Item::ACTIVE && $request['element'] != 'quantity_subtract'){ $response['message'] = 'Item Not Available. Please manually remove'; $response['status'] = STATUS_FAIL; goto skip; } if($cart_product[$request['branch_key']][$item_key]['quantity'] >= $modelItem->quantity && $request['element'] == 'quantity_add') { $response['message'] = 'Sorry, Available Quantity is only '.$modelItem->quantity; $response['status'] = STATUS_FAIL; goto skip; } if($request['element'] == 'quantity_add' && ($cart_product[$request['branch_key']][$item_key]['quantity'] < $cart_product[$request['branch_key']][$item_key]['max_quantity'])){ $cart_product[$request['branch_key']][$item_key]['quantity']++; $response['message'] = Yii::t('frontend','Quantity added'); } elseif ($request['element'] == 'quantity_add' && ($cart_product[$request['branch_key']][$item_key]['quantity'] == $cart_product[$request['branch_key']][$item_key]['max_quantity'])) { $response['message'] = Yii::t('frontend','Maximum quantity reached'); $response['status'] = STATUS_FAIL; } elseif($request['element'] == 'quantity_subtract'){ if($cart_product[$request['branch_key']][$item_key]['quantity'] <= 1) { unset($cart_product[$request['branch_key']][$item_key]); $response['message'] = Yii::t('frontend','Item removed'); } else{ $cart_product[$request['branch_key']][$item_key]['quantity']--; $response['message'] = Yii::t('frontend','Quantity removed'); } } elseif($request['element'] == 'item_remove') { if(count($cart_product[$request['branch_key']]) == 1) { $cart_product = []; Com::unsetSession(Com::CART_BRANCH_KEY); } else{ unset($cart_product[$request['branch_key']][$item_key]); } } else if($request['element'] == 'add_item_ingredient' && ($cart_product[$request['branch_key']][$item_key]['quantity'] < $cart_product[$request['branch_key']][$item_key]['max_quantity'])){ $cart_product[$request['branch_key']][$item_key]['quantity'] += $request['ing_quantity']; } else if($request['element'] == 'add_item_ingredient' && ($cart_product[$request['branch_key']][$item_key]['quantity'] == $cart_product[$request['branch_key']][$item_key]['max_quantity'])){ $response['message'] = Yii::t('frontend','Maximum quantity reached'); $response['status'] = STATUS_FAIL; } } else { $cart_product[$request['branch_key']][$item_key]= [ 'item_key' => $request['item_key'], 'max_quantity' => $modelItem->quantity, 'quantity' => $quantity, 'ingredient' => $ingredient, 'refund_bottle_qty' => isset($request['refudbottle']) ? $request['refudbottle'] : 0, ]; } if ($cart_product) { $count = count($cart_product[$request['branch_key']]); } } else { $cart_data = Com::session(Com::SES_CART); $item_branch = Com::isSession(Com::ITEM_BRANCH)? Com::session(Com::ITEM_BRANCH): ''; if ($item_branch != '' && !empty($cart_data[$item_branch])) { $response['clear_alert'] = 1; } if ($request['is_clear_cart'] == 1 || ($cart_data[$item_branch] != $request['branch_key'] && empty($cart_data[$item_branch]) )) { $cart_product = []; Com::setSession(Com::ITEM_BRANCH, $request['branch_key']); $cart_product[$request['branch_key']][$item_key]= [ 'item_key' => $request['item_key'], 'max_quantity' => $modelItem->quantity, 'quantity' => $quantity, 'ingredient' => $ingredient, 'refund_bottle_qty' => isset($request['refudbottle']) ? $request['refudbottle'] : 0, ]; $count = count($cart_product[$request['branch_key']]); } } } Com::setSession(Com::ITEM_COUNT, $count); $response['count'] = $count; Com::setSession(Com::SES_CART, $cart_product); $response['html'] = $this->renderPartial('_mini_cart', ['branch_key' => $request['branch_key']]); skip: return $this->asJson($response); } } /** * * @return Json */ public function actionAddIngredient() { if (Yii::$app->request->isAjax) { $request = Yii::$app->getRequest()->post(); $model = Item::instance()->getCartItemDetail($request['item_key'], $request['branch_key']); $response['status'] = Com::SUCCESS; $response['html'] = $this->renderPartial('_ingredient', ['model' => $model]); return $this->asJson($response); } } /** * * @param bool $saveData * @return array */ protected function cartApiResponse($saveData = false){ $appLanguage = \Yii::$app->language; $latitude = (com::isSession('customer_latitude')) ? com::session('customer_latitude') : ''; $longitude = (com::isSession('customer_langtitude')) ? com::session('customer_langtitude') : ''; $orderData = []; $paramArray = []; $cartDataArray = ['message' => '','data' => '']; if(Com::isSession(Com::SES_CART)) { $orderData = Com::Session(Com::SES_CART); }; if (Com::isSession(Com::COUPON_APPLIED)) { $coupon_applied_date = Com::Session(Com::COUPON_APPLIED); } if(!empty($orderData)) { foreach ($orderData as $key => $value) { $paramArray['branch_key'] = $key; $i = 0; $itemArray = []; foreach($value as $item_ingredients => $itemData) { $itemModel = Item::findOne(['item_key' => $itemData['item_key']]); if($itemModel != null) { $itemArray[$i]['item_key'] = $itemData['item_key']; $itemArray[$i]['item_price'] = $itemModel->item_price; $itemArray[$i]['item_quantity'] = $itemData['quantity']; $itemArray[$i]['refund_bottle_qty'] = $itemData['refund_bottle_qty']; $itemArray[$i]['ingrdients'] = []; $j = 0; foreach ($itemData['ingredient'] as $groupkey => $ingredient_keys) { // $ingredientModel = Item::instance()->getCartIngredientDetail($itemData['item_key'], $key, [$ingredient_key]); foreach ($ingredient_keys as $key => $ingredient_key) { $itemArray[$i]['ingrdients'][$j]["group_key"] = $groupkey; $itemArray[$i]['ingrdients'][$j]["key"] = $ingredient_key; $j++; } // if($ingredientModel != null) { // $itemArray[$i]['ingrdients'][$j]["group_key"] = $ingredientModel[0]['item_ingredient_group_key']; // $itemArray[$i]['ingrdients'][$j]["key"] = $ingredientModel[0]['ingredient_key']; // } } } $i++; } $paramArray['items'] = $itemArray; } $checkOutSession = Com::Session(Com::SES_CHECKOUT); $paramArray['user_key'] = (isset($checkOutSession['user_key']) && $checkOutSession['user_key'] != '') ? $checkOutSession['user_key'] : '' ; $paramArray['user_address_key'] = (isset($checkOutSession['user_address_key']) && $checkOutSession['user_address_key'] != '') ? $checkOutSession['user_address_key'] : '' ; $paramArray['order_type'] = (isset($checkOutSession['delivery_type']) && $checkOutSession['delivery_type'] != '') ? $checkOutSession['delivery_type'] : 1; $paramArray['pickup_delivery_date_time'] = (isset($checkOutSession['pickup_delivery_date_time']) && $checkOutSession['pickup_delivery_date_time'] != '') ? $checkOutSession['pickup_delivery_date_time'] : date('y-m-d H:i:s'); $paramArray['latitude'] = $latitude; $paramArray['longitude'] = $longitude; $paramArray['user_order_type'] = isset($checkOutSession['user_order_type']) ? $checkOutSession['user_order_type'] : 1; $paramArray['coupon_code'] = (isset($checkOutSession['coupon_code']) && $checkOutSession['coupon_code'] != '') ? $checkOutSession['coupon_code'] : '' ; if (isset($coupon_applied_date) && $coupon_applied_date != '') { $paramArray['coupon_applied_date'] = $coupon_applied_date; } $paramArray['delivery_boy_tip'] = (isset($checkOutSession['deliveryboy_tip']) && $checkOutSession['deliveryboy_tip'] != '') ? $checkOutSession['deliveryboy_tip'] : '' ; $paramArray['payment_option'] = (isset($checkOutSession['payment_option']) && $checkOutSession['payment_option'] != '') ? $checkOutSession['payment_option'] : '' ; $paramArray['delivery_option'] = (isset($checkOutSession['delivery_option']) && $checkOutSession['delivery_option'] != '') ? $checkOutSession['delivery_option'] : 1 ; $paramArray['order_message'] = (isset($checkOutSession['order_message']) && $checkOutSession['order_message'] != '') ? $checkOutSession['order_message']: ''; $paramArray['subscription_order_details'] = (isset($checkOutSession['subscription_order_details']) && $checkOutSession['subscription_order_details'] != '') ? $checkOutSession['subscription_order_details']: ''; $paramArray['subscription'] = (isset($checkOutSession['subscription']) && $checkOutSession['subscription'] != '') ? $checkOutSession['subscription']: ''; $paramArray['coupon_app_type'] = isset($checkOutSession['user_order_type']) ? $checkOutSession['user_order_type'] : 1 ; $paramArray['device_type'] = 1; } $rawData = json_encode($paramArray); $url = ($saveData) ? 'order/place-order' : 'order/calculate-data'; $bearer = ''; if (!Yii::$app->getUser()->getIsGuest()) { $userIdentity = Yii::$app->getUser()->getIdentity(); $bearer = $userIdentity->getAuthKey(); } $headers = [ 'Content-Type: application/json; charset=utf-8', sprintf('Authorization: Bearer %s', $bearer), 'Accept-Language: ' . $appLanguage, ]; //print_r($rawData);exit; $cartData = ApiHelper::getInstance() ->setRequestMethod(ApiHelper::REQUEST_METHOD_POST) ->setRequestBodyType(ApiHelper::REQUEST_BODY_TYPE_RAW_DATA) ->setRequestParam($rawData) ->setUrl($url); $apiResponse = $cartData->run(); $message = $apiResponse->getMessage(); if(!$apiResponse->isSuccess()) { $message = $apiResponse->getMessage(); $cartDataArray['message'] = $message; } $cartDataArray['data'] = $apiResponse->getData(); return $cartDataArray; } /** * * @param string $id * @return string */ public function actionCart($id) { Com::setSession(Com::SES_CHECKOUT, []); if (Com::isSession(Com::SES_CART)) { $cartDataArray = Com::session(Com::SES_CART); } else { $cartDataArray = ''; Com::failureFlash('Cart is empty'); } $branch = Branch::BranchDetail($id); return $this->render('cart', ['branch' => $branch, 'cartData' => $cartDataArray]); } public function actionAddMainCart() { if (Yii::$app->request->isAjax) { $count = 0; $request = Yii::$app->getRequest()->post(); $quantity = 1; $item_key = $request['item_key']; $ingredient = []; $response['status'] = Com::SUCCESS; if (!Com::isSession(Com::SES_CART) || !Com::session(Com::SES_CART)) { $cart_product = [ $request['branch_key'] => [ $item_key => [ 'item_key' => $request['item_key'], 'max_quantity' => Com::MAX_QUANTITY, 'quantity' => $quantity, 'ingredient' => $ingredient, ] ] ]; $count = count($cart_product[$request['branch_key']]); }else{ $cart_product = Com::session(Com::SES_CART); if (array_key_exists($request['branch_key'], $cart_product)) { if(isset($cart_product[$request['branch_key']][$item_key])){ if($request['element'] == 'quantity_add' && ($cart_product[$request['branch_key']][$item_key]['quantity'] < $cart_product[$request['branch_key']][$item_key]['max_quantity'])){ $cart_product[$request['branch_key']][$item_key]['quantity']++; } else if ($request['element'] == 'quantity_subtract'){ if($cart_product[$request['branch_key']][$item_key]['quantity'] <= 1 && count($cart_product[$request['branch_key']]) == 1) { $cart_product = []; } else if ($cart_product[$request['branch_key']][$item_key]['quantity'] <= 1 && count($cart_product[$request['branch_key']]) != 1) { unset($cart_product[$request['branch_key']][$item_key]); } else { $cart_product[$request['branch_key']][$item_key]['quantity']--; } } else if($request['element'] == 'item_remove'){ if(count($cart_product[$request['branch_key']]) == 1) { $cart_product = []; }else{ unset($cart_product[$request['branch_key']][$item_key]); } }else { // $response['status'] = false; // $response['message'] = "Limit Exceed"; } } else { $cart_product[$request['branch_key']][$item_key]= [ 'item_key' => $request['item_key'], 'max_quantity' => Com::MAX_QUANTITY, 'quantity' => $quantity, 'ingredient' => $ingredient, ]; } if ($cart_product) { $count = count($cart_product[$request['branch_key']]); } }else{ $response['status'] = false; $response['message'] = "Can't add item"; } } Com::setSession(Com::ITEM_COUNT, $count); Com::setSession(Com::SES_CART, $cart_product); if(!empty($cart_product)) { $cartDataArray = Com::session(Com::SES_CART); $branch = Branch::BranchDetail($request['branch_key']); $response['html'] = $this->renderPartial('_cart_detail', ['branch' => $branch, 'cartData' => $cartDataArray]); return $this->asJson($response); } else { $this->redirect(['branch-detail','id'=> $request['branch_key']]); $cartDataArray = []; } } } /** * * @return Json */ public function actionApplyCoupon() { if (Yii::$app->request->isAjax) { $request = Yii::$app->getRequest()->post(); $coupon_code = $request['coupon_code']; $response['status'] = Com::SUCCESS; $branch = Branch::BranchDetail($request['branch_key']); $coupon_applied_date = $request['coupon_applied_date']; if ($branch != '') { $SessionData['delivery_type'] = $branch['order_type']; } if(yii::$app->user->getId()) { $userData = $this->getUserData(); //$SessionData['user_address_key'] = // isset($userData['default_address_key'])? $userData['default_address_key']: ''; } if (Com::isSession(Com::SES_CHECKOUT)) { $checkoutData = Com::session(Com::SES_CHECKOUT); if (isset($checkoutData['user_address_key']) && $checkoutData['user_address_key'] != '') { $SessionData['user_address_key'] = $checkoutData['user_address_key']; } } if (Com::isSession('delivery_tip')) { $deliveryTip = Com::session('delivery_tip'); $SessionData['delivery_tip'] = $deliveryTip; } if(isset($request['delivery_key']) && $request['delivery_key'] != "") { $SessionData['user_address_key'] = $request['delivery_key']; } if(isset($request['delivery_type']) && $request['delivery_type'] != "") { $SessionData['delivery_type'] = $request['delivery_type']; } $SessionData['coupon_code'] = $coupon_code; Com::setSession(Com::COUPON_CODE, $SessionData); Com::setSession(Com::COUPON_APPLIED, $coupon_applied_date); Com::setSession(Com::SES_CHECKOUT, $SessionData); $cartDataArray = $this->cartApiResponse(); if(empty($cartDataArray['data'])) { Com::setSession(Com::COUPON_CODE, ''); $response['status'] = Com::ERROR; $response['message'] = $cartDataArray['message']; $response['message'] = Yii::t('frontend', $response['message']); goto skip; } $cartData = Com::isSession(Com::SES_CART)? Com::session(Com::SES_CART): ''; $response['html'] = $this->renderPartial('/checkout/_checkout_mini_cart', ['cartData' => $cartDataArray['data']]); skip: return $this->asJson($response); } } public function actionDeliveryTip() { if (Yii::$app->request->isAjax) { $request = Yii::$app->getRequest()->post(); $delivery_tip = $request['delivery_tip']; $response['status'] = Com::SUCCESS; $branch = Branch::BranchDetail($request['branch_key']); $SessionData = Com::session(Com::SES_CHECKOUT); if ($branch != '') { $SessionData['delivery_type'] = $branch['order_type']; } if(yii::$app->user->getId()) { $userData = $this->getUserData(); $SessionData['user_address_key'] = isset($userData['default_address_key'])? $userData['default_address_key']: ''; } if (Com::isSession(Com::SES_CHECKOUT)) { $checkoutData = Com::session(Com::SES_CHECKOUT); if (isset($checkoutData['user_address_key']) && $checkoutData['user_address_key'] != '') { $SessionData['user_address_key'] = $checkoutData['user_address_key']; } } if (Com::isSession(Com::COUPON_CODE)) { $couponCode = Com::session(Com::COUPON_CODE); $SessionData['coupon_code'] = $couponCode; } $SessionData['deliveryboy_tip'] = $delivery_tip; Com::setSession(Com::SES_CHECKOUT, $SessionData); Com::setSession('delivery_tip', $SessionData); //print_r($SessionData);exit; $cartDataArray = $this->cartApiResponse(); $response['html'] = $this->renderPartial('/checkout/_checkout_mini_cart', ['cartData' => $cartDataArray['data']]); return $this->asJson($response); } } public function actionCancelDeliveryTip() { if (Yii::$app->request->isAjax) { $result = ['status' => STATUS_FAIL, 'msg' => '']; $request = Yii::$app->getRequest()->post(); $SessionData = Com::session(Com::SES_CHECKOUT); $branch = Branch::BranchDetail($request['branch_key']); if ($branch != '') { $SessionData['delivery_type'] = $branch['order_type']; } if(yii::$app->user->getId()) { $userData = $this->getUserData(); $SessionData['user_address_key'] = isset($userData['default_address_key'])? $userData['default_address_key']: ''; } if (Com::isSession(Com::SES_CHECKOUT)) { $checkoutData = Com::session(Com::SES_CHECKOUT); if (isset($checkoutData['user_address_key']) && $checkoutData['user_address_key'] != '') { $SessionData['user_address_key'] = $checkoutData['user_address_key']; } } $SessionData['deliveryboy_tip'] = ''; Com::setSession(Com::SES_CHECKOUT, $SessionData); Com::setSession('delivery_tip', $SessionData); $cartDataArray = $this->cartApiResponse(); $result['msg'] = 'delivery boy tip Code Removed Successfully'; $result['status'] = STATUS_SUCCESS; $response['html'] = $this->renderPartial('/checkout/_checkout_mini_cart', ['cartData' => $cartDataArray['data']]); skip: return $this->asJson($result); } } /** * * @return Json */ public function actionCancelCoupon() { if (Yii::$app->request->isAjax) { $result = ['status' => STATUS_FAIL, 'msg' => '']; $request = Yii::$app->getRequest()->post(); $SessionData = Com::session(Com::SES_CHECKOUT); $branch = Branch::BranchDetail($request['branch_key']); if ($branch != '') { $SessionData['delivery_type'] = $branch['order_type']; } if(yii::$app->user->getId()) { $userData = $this->getUserData(); $SessionData['user_address_key'] = isset($userData['default_address_key'])? $userData['default_address_key']: ''; } if (Com::isSession(Com::SES_CHECKOUT)) { $checkoutData = Com::session(Com::SES_CHECKOUT); if (isset($checkoutData['user_address_key']) && $checkoutData['user_address_key'] != '') { $SessionData['user_address_key'] = $checkoutData['user_address_key']; } } if(isset($request['delivery_key']) && $request['delivery_key'] != "") { $SessionData['user_address_key'] = $request['delivery_key']; } if(isset($request['delivery_type']) && $request['delivery_type'] != "") { $SessionData['delivery_type'] = $request['delivery_type']; } $SessionData['coupon_code'] = ''; Com::setSession(Com::SES_CHECKOUT, $SessionData); Com::setSession(Com::COUPON_CODE, $SessionData); $cartDataArray = $this->cartApiResponse(); $result['msg'] = 'Coupon Code Removed Successfully'; $result['status'] = STATUS_SUCCESS; $cartData = Com::isSession(Com::SES_CART)? Com::session(Com::SES_CART): ''; $response['html'] = $this->renderPartial('/checkout/_checkout_mini_cart', ['cartData' => $cartDataArray['data']]); skip: return $this->asJson($result); } } /** * * @return Json */ public function actionCustomerLatLong() { if (Yii::$app->request->isAjax) { $request = Yii::$app->getRequest()->post(); com::setSession('customer_latitude',$request['latitude']); com::setSession('customer_langtitude',$request['langtitude']); com::setSession('customer_search_location',$request['search']); $response = ['status' => 200]; return $this->asJson($response); } } public function actionBranchList() { $lat1 = com::session('customer_latitude'); $lon1 = com::session('customer_langtitude'); if($lat1 == '' && $lon1 == '') { return $this->goHome(); } $request = Yii::$app->getRequest()->post(); $branches = Branch::RestruantlistFilter($request); //print_r($branches);exit; $unfeaturedBranches = ArrayHelper::getColumn($branches, 'is_featured'); $unfeaturedBranchesCount = array_count_values($unfeaturedBranches); $unfeaturedBranchesCount = (isset($unfeaturedBranchesCount[0])) ? $unfeaturedBranchesCount[0]: 0; $featureVendor = Vendor::getFeatureVendor(); $featureVendorCount = count(Vendor::getFeatureVendor()); $totalRestaurantCount = $unfeaturedBranchesCount + $featureVendorCount; $cusine_name = []; if (Yii::$app->request->isAjax) { $result = ['branch_count' => 0, 'data' => '']; $branch_type = ''; if(isset( $request["branch_type"]) && !empty($request["branch_type"])){ $branch_type = implode(',', $request["branch_type"]); } if(isset( $request["Cuisines"]) && !empty($request["Cuisines"])){ foreach ($request["Cuisines"] as $value) { $cusine_name[] = CuisineLang::find() ->select('cuisine_name, cuisine_id') ->where([ 'cuisine_id'=> $value]) ->andwhere(['language_code' => Yii::$app->language]) ->asArray() ->all(); } } //print_r($cusine_name);exit; if(!empty($request['sort'])) { $sort = $request['sort']; } else { $sort = ''; } if(isset($request['branch_name']) && $request['branch_name'] != "") { $search_text = $request['branch_name']; } else { $search_text = ""; } $result['branch_count'] = count($branches); foreach ($branches as $key_value => $data) { $modelImage = BranchLang::find() ->where([ 'branch_id' => $data['branch_id'], 'language_code' => \Yii::$app->language ]) ->one(); $branches[$key_value]['branch_image_path'] = $modelImage['branch_image_path']; } $result['data'] = $this->renderPartial('restruant-filter', ['branches' => $branches, 'branch_type' => explode(',', $branch_type), 'Cuisines' => $cusine_name, 'search_text' => $search_text, 'Sort_val' => $sort ]); // print_r($branches); // exit(); return $this->asJson($result); } foreach ($branches as $key_value => $data) { $modelImage = BranchLang::find() ->where([ 'branch_id' => $data['branch_id'], 'language_code' => \Yii::$app->language ]) ->one(); $branches[$key_value]['branch_image_path'] = $modelImage['branch_image_path']; } return $this->render('branch-list', [ 'branches' => $branches, 'featureVendor' => $featureVendor, 'totalRestaurants' => $totalRestaurantCount ]); } /** * * @return Json */ public function actionBranchFavourite() { if (Yii::$app->request->isAjax) { if(!Yii::$app->getUser()->getId() == ''){ $post = Yii::$app->getRequest()->post(); $itemModel = Item::findOne(['item_key' => $post['item_key']]); if($itemModel == null) { return $this->asJson(['status' => Com::UNAUTHORIZED]); } $model = UserFavourite::findOne(['user_id' => Yii::$app->getUser()->getId(), 'item_id'=> $itemModel->item_id]); if (!$model == '') { if($model->status == 1){ $model->status = 2; $model->save(); return $this->asJson(['status' => Com::DELETE]); }else if($model->status == 2){ $model->status = 1; $model->save(); return $this->asJson(['status' => Com::SUCCESS]); } } $model = new UserFavourite(); $model->item_id = $itemModel->item_id; $model->user_id = Yii::$app->getUser()->getId(); $model->save(); return $this->asJson(['status' => Com::SUCCESS]); }else{ return $this->asJson(['status' => Com::UNAUTHORIZED]); } } } /** * * @return string */ public function actionCheckout($type = 1) { $user_address = []; $userDetails = []; $defaultAddressId = ''; $hasError = false; $errorMessage = ''; $dtHelper = DateTimeHelper::getInstance(); $SessionData = Com::session(Com::SES_CHECKOUT); $SessionData = Com::setSession(Com::SES_CHECKOUT, []); //$Coupon = Com::unsetSession(Com::COUPON_CODE); if (yii::$app->user->getId()) { $userData = $this->getUserData(); // $SessionData['user_address_key'] = isset($userData['default_address_key'])? $userData['default_address_key']: ''; $userDetails = $userData['user']; $user_address = $userData['user_address']; $defaultAddressId = $userDetails['default_address']; } if(empty(Com::session(Com::SES_CART))){ return $this->redirect(['/product-list-normal-orders']); } $branchKey = Com::isSession('branch_key')? Com::session('branch_key'): ''; //$branch = Branch::BranchDetail($branchKey); $branch['branch_key'] = null; $branch['order_type'] = Order::ORDER_TYPE_DELIVERY; if (!isset($SessionData['delivery_type']) ) { $SessionData['delivery_type'] = Order::ORDER_TYPE_DELIVERY; } if(isset($SessionData['delivery_type']) && $SessionData['delivery_type'] == "") { $SessionData['delivery_type'] = Order::ORDER_TYPE_DELIVERY; } if(isset($SessionData['delivery_type']) && $SessionData['delivery_type'] != "") { $SessionData['delivery_type'] = $SessionData['delivery_type']; $SessionData['delivery_option'] = $SessionData['delivery_type']; } if (Com::isSession('delivery_tip')) { $deliveryTip = Com::session('delivery_tip'); $SessionData['deliveryboy_tip'] = $deliveryTip['deliveryboy_tip']; } //if(isset($SessionData['user_order_type']) && $SessionData['user_order_type'] != "") { $SessionData['user_order_type'] = $type; //} if (Com::isSession(Com::COUPON_CODE)) { $couponCode = Com::session(Com::COUPON_CODE); $SessionData['coupon_code'] = ($couponCode!= '')? $couponCode['coupon_code']: '' ; } if (Com::isSession(Com::SES_CHECKOUT)) { $checkoutData = Com::session(Com::SES_CHECKOUT); if (isset($checkoutData['user_address_key']) && $checkoutData['user_address_key'] != '') { //$SessionData['user_address_key'] = $checkoutData['user_address_key']; } } // print_r($SessionData); die; Com::setSession(Com::SES_CHECKOUT, $SessionData); $cartData = $this->cartApiResponse(); //print_r($cartData); die; if(isset($cartData['data']) && $cartData['data'] == []) { Com::failureFlash($cartData['message']); if($cartData['message'] == 'Sorry, Currently coupon not available.. Please remove coupon or refresh and try again') { Com::failureFlash('Sorry, Currently coupon not available.. coupon removed automatically'); Com::unsetSession(Com::COUPON_CODE); return $this->redirect(['/branch/checkout', 'type' => $type]); } return $this->redirect(['/product-list-normal-orders']); } if (empty($cartData['data'])) { $hasError = true; $errorMessage = $cartData['message']; } $hasCoupon = false; $couponCode = ''; $modelCouponVendor = ''; $isAsap = true; if (!Yii::$app->getUser()->getIsGuest()) { $userIdentity = Yii::$app->getUser()->getIdentity(); $bearer = $userIdentity->getAuthKey(); } $headers = [ 'Content-Type: application/json; charset=utf-8', 'Accept-Language: ' . \Yii::$app->language, ]; $apiResponse = ApiHelper::getInstance() ->setUrl('order/subscrption-week')->run(); if(!$apiResponse->isSuccess()) { $message = $apiResponse->getMessage(); $weekDataArray['message'] = $message; } $weekDataArray['data'] = $apiResponse->getData(); $url = '/checkout/checkout'; // $url = '/checkout/checkout_old'; return $this->render($url,['cartData' => $cartData['data'], 'userDetails' => $userDetails, 'user_address' => $user_address, 'branch' => $branch, 'defaultAddressId' => $defaultAddressId, 'isAsap' => $isAsap, 'hasCoupon' => $hasCoupon, 'couponCode' => $couponCode, 'hasError' => $hasError, 'errorMessage' => $errorMessage, 'weekDataArray' => $weekDataArray['data'], ]); } public function actionGetDeliverydateList() { if (Yii::$app->request->isAjax) { $post = Yii::$app->getRequest()->post(); $branch_key = $post['branch_key']; $response['status'] = Com::SUCCESS; $modelBranch = Branch::find() ->select(['branch_id']) ->where(['branch_status' => Branch::ACTIVE]) // ->where(['branch_key' => $branch_key]) ->one(); if($modelBranch == null){ $response['status'] = Com::ERROR; $response['message'] = yii::t('api','BRANCH_NOT_FOUND'); return $this->asJson($response); } // $modelBranchTimeslot = BranchTimeslot::find() // ->select(['day_id']) // ->where([ // 'branch_id' => $modelBranch->branch_id, // 'branch_timeslot_status' => BranchTimeslot::ACTIVE // ]) // ->andWhere(['>=', 'day_id', date('w')+1]) // ->asArray() // ->orderBy(['day_id' => SORT_ASC]) // ->groupBy(['day_id']) // ->limit(Configuration::find(['configuration_value'])->where(['configuration_name' => 'PREORDER_DATE_COUNT'])) // ->all(); $modelBranchTimeslot = Configuration::find(['configuration_value'])->where(['configuration_name' => 'PREORDER_DATE_COUNT'])->asArray()->one(); $configuration_value = $modelBranchTimeslot['configuration_value']; $days = []; $day = ""; array_push($days, $day); for ($date_cal = 0; $date_cal < $configuration_value; $date_cal++) { $currentDate = date('d-m-Y'); $timeslotend = date('d-m-Y', strtotime($currentDate. '+'.$date_cal.' day') ); $day = ""; array_push($days, $day); } // $day = ""; // foreach ($modelBranchTimeslot as $modelBranchTimeslots) { // $dayId = // date( // DateTimeHelper::CUSTOM_DATE_FORMAT, // strtotime(BranchTimeslot::getDayLabel($modelBranchTimeslots['day_id'], 'en') . ' this week') // ); // $day .= ""; // } $response['html'] = $days; return $this->asJson($response); } } /** * * @return Json */ public function actionGetDeliverytimeList() { if (Yii::$app->request->isAjax) { $request = Yii::$app->getRequest()->post(); $response['status'] = Com::SUCCESS; $modelBranch = Branch::find() ->select(['branch_id']) //->where(['branch_key' => $request['branch_key']]) ->where(['branch_status' => Branch::ACTIVE]) ->one(); if($modelBranch === null) { $response['status'] = Com::ERROR; $response['message'] = yii::t('api','BRANCH_NOT_FOUND'); return $this->asJson($response); } $modelBranchTimeSlot = BranchTimeslot::find() ->select(['timeslot_start_time', 'timeslot_end_time']) ->where([ 'branch_id' => $modelBranch->branch_id, 'day_id' => date('w',strtotime(str_replace('/', '-', $request['delivery_date'])))+1, 'timeslot_type' => $request['timeslot_type'] ]) ->one(); if($modelBranchTimeSlot === null) { $response['status'] = Com::ERROR; $response['message'] = yii::t('api','NO_TIMESLOT_AVAILABLE'); $response['html'] = ""; return $this->asJson($response); } $startTime = $modelBranchTimeSlot->timeslot_start_time; if(strtotime(str_replace('/', '-', $request['delivery_date'])) == strtotime(date('Y-m-d'))) { if(strtotime($modelBranchTimeSlot->timeslot_start_time) > strtotime(date('H:i'))) { $startTime = $modelBranchTimeSlot->timeslot_start_time; } else { $startTime = date('H:i'); } } $endTime = $modelBranchTimeSlot->timeslot_end_time; $duration = 30; $add_mins = $duration * 60; $array_of_time = ""; $start_time = strtotime ($startTime) + $add_mins; $end_time = strtotime ($endTime); while ($start_time <= $end_time) { $array_of_time .= ""; $start_time += $add_mins; } $response['html'] = $array_of_time; return $this->asJson($response); } } /** * * @return Json */ public function actionVerify_cart() { if (Yii::$app->request->isAjax) { $request = Yii::$app->getRequest()->post(); $response['status'] = STATUS_FAIL; $cartData = Com::Session(Com::SES_CART); if(!com::isSession('customer_latitude') || !com::isSession('customer_langtitude')) { $response['message'] = yii::t('api','CHOOSE_LOCATION'); goto skip; } if(!empty($cartData[$request['branch_key']])) { $modelBranch = Branch::findOne(['branch_key' => $request['branch_key']]); if ($modelBranch !== null) { $checkoutSessionData = ['delivery_type' => $modelBranch->order_type]; Com::setSession(Com::SES_CHECKOUT, $checkoutSessionData); } $cartDataArray = $this->cartApiResponse(); if(!empty($cartDataArray) && empty($cartDataArray['data'])){ $response['message'] = $cartDataArray['message']; goto skip; } } else { $response['message'] = yii::t('frontend','Invalid cart'); goto skip; } $response['status'] = STATUS_SUCCESS; skip: return $this->asJson($response); } } /** * * @return Json */ public function actionPlace_order_subscription() { // if (Yii::$app->request->isAjax) { $request = Yii::$app->getRequest()->post(); $sessionData = Com::Session(Com::SES_CHECKOUT); if(!isset($request['user_order_type'])) { $request['user_order_type'] = 1; } $subscriptionDetails = []; if($request['user_order_type'] == 3) { if(isset($request['subscription_order_details'])){ foreach($request['subscription_order_details'] as $key => $subDetail) { if(empty($request['delivery_address'][$key])) { $response['message'] = 'Please choose address'; $response['status'] = false; goto skip; } foreach ($subDetail as $pkey => $value) { if(empty($value) || $value < 1) { $response['message'] = 'Please Fill the qty'; $response['status'] = false; goto skip; } $subscriptionDetails[$pkey]['qty'] = $value; $subscriptionDetails[$pkey]['address_key'] = $request['delivery_address'][$key]; } } } // if(isset($request['delivery_address'])){ // foreach($request['delivery_address'] as $key => $subDetail) { // $subscibeItemData[$key]['user_address_key'] = $subDetail; // } // } $request['subscription_order_details'] = []; $request['subscription_order_details'] = $subscriptionDetails; } $response['status'] = Com::SUCCESS; $i = 0; $subscibeItemData = []; $subscriptionData = []; if(isset($request['subscription_order_details']) ){ foreach($request['subscription_order_details'] as $key => $subDetail) { if($request['user_order_type'] == 3) { $subscibeItemData[$i]['item_key'] = $key; $subscibeItemData[$i]['item_quantity'] = $subDetail['qty']; $subscibeItemData[$i]['user_address_key'] = $subDetail['address_key']; } else { $subscibeItemData[$i]['item_key'] = $key; $subscibeItemData[$i]['item_quantity'] = $subDetail; } // $subscibeItemData[$i]['user_address_key'] = // if(empty($request['delivery_address'][$i+1])) { // $response['message'] = 'Please choose address'; // $response['status'] = false; // goto skip; // } //$subscibeItemData[$i]['user_address_key'] = isset($request['delivery_address']) ? $request['delivery_address'][$i+1] : null; $i++; } $subscriptionData['subscription'] = $request['subscription_type']; $subscriptionData['subscription_day_value'] = $request['subscription_day_value']; $subscriptionData['subscription_type'] = $request['subscription_type']; $subscriptionData['delivery_date'] = $request['delivery_date']; $subscriptionData['delivery_time'] = Date('H:i', strtotime($request['delivery_time'])); $subscriptionData['start_date'] = $request['start_date']; $subscriptionData['start_time'] = Date('H:i', strtotime($request['start_time'])); $subscriptionData['end_date'] = $request['end_date']; $subscriptionData['end_time'] = Date('H:i', strtotime($request['end_time'])); // Com::unsetSession(Com::SES_CHECKOUT); $SessionData = Com::Session(Com::SES_CHECKOUT); $SessionData['subscription_order_details'] = $subscibeItemData; $SessionData['subscription'] = $subscriptionData; } //$sessionData['user_order_type'] = $request['user_order_type']; if(isset($request['delivery_pickup_date']) && isset($request['delivery_pickup_time'])) { $date = date('Y-m-d',strtotime( str_replace('/', '-', $request['delivery_pickup_date']))) .' '. $request['delivery_pickup_time'].':00'; $SessionData['pickup_delivery_date_time'] = $date; } else { $date = date('Y-m-d H:s:i'); } if(isset($request['pay_type']) && $request['pay_type'] != ''){ $SessionData['payment_option'] = $request['pay_type']; } if (isset($request['delivery_type']) && $request['delivery_type'] != '') { $SessionData['delivery_type'] = $request['delivery_type']; } if (isset($request['delivery']) && $request['delivery'] != '') { $SessionData['delivery'] = $request['delivery']; } if (isset($request['order_message']) && $request['order_message'] != '') { $SessionData['order_message'] = $request['order_message']; } if (isset($request['delivery']) && $request['delivery'] != '') { $SessionData['delivery_option'] = $request['delivery']; } if (isset($request['coupon_code']) && $request['coupon_code'] != '') { $SessionData['coupon_code'] = $request['coupon_code']; } if (isset($request['delivery_tip']) && $request['delivery_tip'] != '') { $SessionData['deliveryboy_tip'] = $request['delivery_tip']; } if (isset($request['user_order_type']) && $request['user_order_type'] != '') { $SessionData['user_order_type'] = $request['user_order_type']; } if(in_array($SessionData['user_order_type'], [2, 3])) { if($request['subscription_type'] == 1){ if(empty($request['subscription_day_value'])){ $response['message'] = 'Please Choose Delivery Day'; $response['status'] = false; goto skip; } } else { if(empty($request['delivery_date']) && empty($request['delivery_time'])) { $response['message'] = 'Please Choose Delivery Date and Time'; $response['status'] = false; goto skip; } } if(empty($request['start_date']) && empty($request['start_time'])) { $response['status'] = false; $response['message'] = 'Please Choose Start date and time'; goto skip; } if(empty($request['end_date']) && empty($request['end_time'])) { $response['message'] = 'Please Choose End date and time'; $response['status'] = false; goto skip; } } //print_r($request); die; // die('out'); if (isset($request['delivery_address']) && $request['delivery_address'] != '') { $userAddressId = UserAddress::find() ->select('user_address_id') ->where(['user_address_key' => $request['delivery_address']]) ->one(); } if(!yii::$app->user->getId()) { //Register new user $modelUser = new User(); $modelUser->setScenario($modelUser::SCENARIO_REGISTER_CHECKOUT); $modelUser->first_name = $request['first_name']; $modelUser->last_name = $request['last_name']; $modelUser->email = $request['email']; $modelUser->mobile_number = $request['mobile_number']; $modelUser->default_address = $userAddressId->user_address_id; $password = Com::generateRandomString(6); if($modelUser->validate()) { $modelUser->setPassword($password); $modelUser->status = $modelUser::STATUS_ACTIVE; if($modelUser->save()) { $SessionData['user_key'] = $modelUser->user_key; $AddressModel = new UserAddress(); $AddressModel->setScenario(UserAddress::ADD_ADDRESS); $AddressModel->latitude = $request['useraddress-latitude']; $AddressModel->longitude = $request['useraddress-longitude']; $AddressModel->address_type = $request['address_type']; if ($AddressModel->validate()) { $AddressModel->user_id = $modelUser->getId(); if ($AddressModel->save()) { $UserAddressLang = new UserAddressLang(); $UserAddressLang->setScenario(UserAddressLang::ADD_ADDRESS); $UserAddressLang->language_code = yii::$app->language; $UserAddressLang->flat_no = $request['flat_no']; $UserAddressLang->apartment = $request['apartment']; $UserAddressLang->street_name = $request['street_name']; $UserAddressLang->city = $request['city']; $UserAddressLang->area = $request['area']; $UserAddressLang->company = $request['company']; $UserAddressLang->landmark = $request['landmark']; if($UserAddressLang->validate()) { $UserAddressLang->user_address_id = $AddressModel->user_address_id; if ($UserAddressLang->save()) { $SessionData['user_address_key'] = $AddressModel->user_address_key; } } else { $response['status'] = false; $response['message'] = $UserAddressLang->getError(); return $this->asJson($response); } } } else { $response['status'] = false; $response['message'] = $AddressModel->getError(); return $this->asJson($response); } } } else { $response['status'] = false; $response['message'] = $modelUser->getError(); return $this->asJson($response); } } else { if(isset($request['delivery_address']) && $request['delivery_address'] != ''){ $SessionData['user_address_key'] = $request['delivery_address']; $modelUser = User::findOne(['user_id' => yii::$app->user->getId()]); $modelUser->default_address = $userAddressId->user_address_id; $modelUser->save(false); }else { if($request['delivery_type'] != 2){ $response['status'] = false; $response['message'] = 'Please choose a delivery address'; return $this->asJson($response); } } if(isset($request['mobile_number']) && $request['mobile_number'] != ''){ $SessionData['mobile_number'] = $request['mobile_number']; $modelUser = User::findOne(['user_id' => yii::$app->user->getId()]); $modelUser->mobile_number = $request['mobile_number']; $modelUser->save(false); } } // Com::unsetSession(Com::SES_CHECKOUT); Com::setSession(Com::SES_CHECKOUT, $SessionData); $cartDataArray = $this->cartApiResponse(false); //place order if (!empty($cartDataArray['data'])) { $response['status'] = STATUS_SUCCESS; $response['html'] = $this->renderPartial('/checkout/_mini_cart', ['branch_key' => 'normal_items', 'cartData' => $cartDataArray['data']]); //$result['html'] = $this->renderPartial('/checkout/_checkout_mini_cart', ['cartData' => $responseData['data']]); } else { $response['msg'] = $cartDataArray['message']; } // } skip: return $this->asJson($response); } /** * * @return Json */ public function actionPlace_order() { if (Yii::$app->request->isAjax) { $request = Yii::$app->getRequest()->post(); $sessionData = Com::Session(Com::SES_CHECKOUT); if(!isset($request['user_order_type'])) { $request['user_order_type'] = 1; } $subscriptionDetails = []; if($request['user_order_type'] == 3) { if(isset($request['subscription_order_details'])){ foreach($request['subscription_order_details'] as $key => $subDetail) { if(empty($request['delivery_address'][$key])) { $response['message'] = 'Please choose address'; $response['status'] = false; goto skip; } foreach ($subDetail as $pkey => $value) { if(empty($value) || $value < 1) { $response['message'] = 'Please Fill the qty'; $response['status'] = false; goto skip; } $subscriptionDetails[$pkey]['qty'] = $value; $subscriptionDetails[$pkey]['address_key'] = $request['delivery_address'][$key]; } } } // if(isset($request['delivery_address'])){ // foreach($request['delivery_address'] as $key => $subDetail) { // $subscibeItemData[$key]['user_address_key'] = $subDetail; // } // } $request['subscription_order_details'] = []; $request['subscription_order_details'] = $subscriptionDetails; } $response['status'] = Com::SUCCESS; $i = 0; $subscibeItemData = []; $subscriptionData = []; if(isset($request['subscription_order_details']) ){ foreach($request['subscription_order_details'] as $key => $subDetail) { if($request['user_order_type'] == 3) { $subscibeItemData[$i]['item_key'] = $key; $subscibeItemData[$i]['item_quantity'] = $subDetail['qty']; $subscibeItemData[$i]['user_address_key'] = $subDetail['address_key']; } else { $subscibeItemData[$i]['item_key'] = $key; $subscibeItemData[$i]['item_quantity'] = $subDetail; } // $subscibeItemData[$i]['user_address_key'] = // if(empty($request['delivery_address'][$i+1])) { // $response['message'] = 'Please choose address'; // $response['status'] = false; // goto skip; // } //$subscibeItemData[$i]['user_address_key'] = isset($request['delivery_address']) ? $request['delivery_address'][$i+1] : null; $i++; } $subscriptionData['subscription'] = $request['subscription_type']; $subscriptionData['subscription_day_value'] = $request['subscription_day_value']; $subscriptionData['subscription_type'] = $request['subscription_type']; $subscriptionData['delivery_date'] = $request['delivery_date']; $subscriptionData['delivery_time'] = Date('H:i', strtotime($request['delivery_time'])); $subscriptionData['start_date'] = $request['start_date']; $subscriptionData['start_time'] = Date('H:i', strtotime($request['start_time'])); $subscriptionData['end_date'] = $request['end_date']; $subscriptionData['end_time'] = Date('H:i', strtotime($request['end_time'])); // Com::unsetSession(Com::SES_CHECKOUT); $SessionData = Com::Session(Com::SES_CHECKOUT); $SessionData['subscription_order_details'] = $subscibeItemData; $SessionData['subscription'] = $subscriptionData; } //$sessionData['user_order_type'] = $request['user_order_type']; if(isset($request['delivery_pickup_date']) && isset($request['delivery_pickup_time'])) { $date = date('Y-m-d',strtotime( str_replace('/', '-', $request['delivery_pickup_date']))) .' '. $request['delivery_pickup_time'].':00'; $SessionData['pickup_delivery_date_time'] = $date; } else { $date = date('Y-m-d H:s:i'); } if(isset($request['pay_type']) && $request['pay_type'] != ''){ $SessionData['payment_option'] = $request['pay_type']; } if (isset($request['delivery_type']) && $request['delivery_type'] != '') { $SessionData['delivery_type'] = $request['delivery_type']; } if (isset($request['delivery']) && $request['delivery'] != '') { $SessionData['delivery'] = $request['delivery']; } if (isset($request['order_message']) && $request['order_message'] != '') { $SessionData['order_message'] = $request['order_message']; } if (isset($request['delivery']) && $request['delivery'] != '') { $SessionData['delivery_option'] = $request['delivery']; } if (isset($request['coupon_code']) && $request['coupon_code'] != '') { $SessionData['coupon_code'] = $request['coupon_code']; } if (isset($request['delivery_tip']) && $request['delivery_tip'] != '') { $SessionData['deliveryboy_tip'] = $request['delivery_tip']; } if (isset($request['user_order_type']) && $request['user_order_type'] != '') { $SessionData['user_order_type'] = $request['user_order_type']; } if(in_array($SessionData['user_order_type'], [2, 3])) { if($request['subscription_type'] == 1){ if(empty($request['subscription_day_value'])){ $response['message'] = 'Please Choose Delivery Day'; $response['status'] = false; goto skip; } } else { if(empty($request['delivery_date']) && empty($request['delivery_time'])) { $response['message'] = 'Please Choose Delivery Date and Time'; $response['status'] = false; goto skip; } } if(empty($request['start_date']) && empty($request['start_time'])) { $response['status'] = false; $response['message'] = 'Please Choose Start date and time'; goto skip; } if(empty($request['end_date']) && empty($request['end_time'])) { $response['message'] = 'Please Choose End date and time'; $response['status'] = false; goto skip; } } //print_r($request); die; // die('out'); if (isset($request['delivery_address']) && $request['delivery_address'] != '') { $userAddressId = UserAddress::find() ->select('user_address_id') ->where(['user_address_key' => $request['delivery_address']]) ->one(); } if(!yii::$app->user->getId()) { //Register new user $modelUser = new User(); $modelUser->setScenario($modelUser::SCENARIO_REGISTER_CHECKOUT); $modelUser->first_name = $request['first_name']; $modelUser->last_name = $request['last_name']; $modelUser->email = $request['email']; $modelUser->mobile_number = $request['mobile_number']; $modelUser->default_address = $userAddressId->user_address_id; $password = Com::generateRandomString(6); if($modelUser->validate()) { $modelUser->setPassword($password); $modelUser->status = $modelUser::STATUS_ACTIVE; if($modelUser->save()) { $SessionData['user_key'] = $modelUser->user_key; $AddressModel = new UserAddress(); $AddressModel->setScenario(UserAddress::ADD_ADDRESS); $AddressModel->latitude = $request['useraddress-latitude']; $AddressModel->longitude = $request['useraddress-longitude']; $AddressModel->address_type = $request['address_type']; if ($AddressModel->validate()) { $AddressModel->user_id = $modelUser->getId(); if ($AddressModel->save()) { $UserAddressLang = new UserAddressLang(); $UserAddressLang->setScenario(UserAddressLang::ADD_ADDRESS); $UserAddressLang->language_code = yii::$app->language; $UserAddressLang->flat_no = $request['flat_no']; $UserAddressLang->apartment = $request['apartment']; $UserAddressLang->street_name = $request['street_name']; $UserAddressLang->city = $request['city']; $UserAddressLang->area = $request['area']; $UserAddressLang->company = $request['company']; $UserAddressLang->landmark = $request['landmark']; if($UserAddressLang->validate()) { $UserAddressLang->user_address_id = $AddressModel->user_address_id; if ($UserAddressLang->save()) { $SessionData['user_address_key'] = $AddressModel->user_address_key; } } else { $response['status'] = false; $response['message'] = $UserAddressLang->getError(); return $this->asJson($response); } } } else { $response['status'] = false; $response['message'] = $AddressModel->getError(); return $this->asJson($response); } } } else { $response['status'] = false; $response['message'] = $modelUser->getError(); return $this->asJson($response); } } else { if(isset($request['delivery_address']) && $request['delivery_address'] != ''){ $SessionData['user_address_key'] = $request['delivery_address']; $modelUser = User::findOne(['user_id' => yii::$app->user->getId()]); $modelUser->default_address = $userAddressId->user_address_id; $modelUser->save(false); }else { if($request['delivery_type'] != 2){ $response['status'] = false; $response['message'] = 'Please choose a delivery address'; return $this->asJson($response); } } if(isset($request['mobile_number']) && $request['mobile_number'] != ''){ $SessionData['mobile_number'] = $request['mobile_number']; $modelUser = User::findOne(['user_id' => yii::$app->user->getId()]); $modelUser->mobile_number = $request['mobile_number']; $modelUser->save(false); } } // Com::unsetSession(Com::SES_CHECKOUT); Com::setSession(Com::SES_CHECKOUT, $SessionData); $cartDataArray = $this->cartApiResponse(true); //place order if(!empty($cartDataArray) && empty($cartDataArray['data'])){ $response['status'] = false; $response['message'] = Yii::t('frontend', $cartDataArray['message']); } $response['url'] = Url::to(['/branch/order-confirmation']); if($response['status'] == Com::SUCCESS) { $response['url'] = Url::to(['/branch/order-confirmation','id' => $cartDataArray['data']['order_key']]); if(isset($cartDataArray['data']['paymentUrl'])){ $response['url'] = Url::to(['/payment/hyperpay-payment','order_key' => $cartDataArray['data']['order_key'], 'type' => 'web']); } else { Com::setSession(Com::SES_CART,''); Com::setSession(Com::SES_CHECKOUT, ''); } } return $this->asJson($response); } skip: return $this->asJson($response); } public function actionOrderConfirmation($id) { $modelOrder = Order::findOne(['order_key' => $id]); if($modelOrder == null){ Com::failureFlash('Sorry, Invalid Order'); return $this->goHome(); } Com::unsetSession(Com::SES_CART); Com::unsetSession(Com::SES_CHECKOUT); Com::unsetSession(Com::CART_BRANCH_KEY); if (Com::isSession('delivery_tip')) { Com::unsetSession('delivery_tip'); } if (Com::isSession(Com::COUPON_CODE)) { Com::unsetSession(Com::COUPON_CODE); } if (Com::isSession(Com::ITEM_BRANCH)) { Com::unsetSession(Com::ITEM_BRANCH); } Com::setsession(Com::ITEM_COUNT, 0); return $this->render('/checkout/order_confirmation', ['modelOrder' => $modelOrder]); } public function actionBranchReview() { if (Yii::$app->request->isAjax) { $request = Yii::$app->getRequest()->post(); $model = new BranchReview(); $model->load($request,''); $model->user_id = Yii::$app->getUser()->getId(); $model->status = 1; if($model->save(false)){ return $this->asJson(['status' => Com::SUCCESS]); } } } /** * * @return Json */ public function actionCalculateDeliveryFee() { $post = Yii::$app->getRequest()->post(); $params = ['user_address_key', 'delivery_type']; $result = ['status' => STATUS_FAIL, 'msg' => '']; foreach ($params as $param) { if (!array_key_exists($param, $post)) { $result['msg'] = 'Please select delivery type and address'; goto skip; } } $SessionData['delivery_type'] = $post['delivery_type']; $SessionData['user_address_key'] = $post['user_address_key']; if (Com::isSession(Com::SES_CHECKOUT)) { $checkoutData = Com::session(Com::SES_CHECKOUT); if (isset($checkoutData['deliveryboy_tip']) && $checkoutData['deliveryboy_tip'] != '') { $SessionData['deliveryboy_tip'] = $checkoutData['deliveryboy_tip']; } if (isset($checkoutData['coupon_code']) && $checkoutData['coupon_code'] != '') { $SessionData['coupon_code'] = $checkoutData['coupon_code']; } } Com::setSession(Com::SES_CHECKOUT, $SessionData); $responseData = $this->cartApiResponse(); if (!empty($responseData['data'])) { $result['status'] = STATUS_SUCCESS; $result['html'] = $this->renderPartial('/checkout/_mini_cart', ['branch_key' => 'normal_items', 'cartData' => $responseData['data']]); //$result['html'] = $this->renderPartial('/checkout/_checkout_mini_cart', ['cartData' => $responseData['data']]); } else { $result['msg'] = $responseData['message']; } skip: return $this->asJson($result); } /** * * @return string */ public function getUserData() { $userData = []; $user_default_address = ''; if(yii::$app->user->getId()) { $userDetails = User::find()->where(['user_id' => yii::$app->user->getId()])->asArray()->one(); $user_address = UserAddress::getaddress(Yii::$app->getUser()->getId()); $defaultAddressId = $userDetails['default_address']; if($defaultAddressId != ''){ $user_default_address = UserAddress::findaddress($userDetails['default_address']); $userData['default_address_key'] = $user_default_address['user_address_key']; } $userData['user'] = $userDetails; $userData['user_address'] = $user_address; } return $userData; } public function actionCartCheck() { $result = ['status' => STATUS_FAIL, 'msg' => '']; $branch = null; if(Com::issession(Com::SES_CART) && Com::session(Com::SES_CART) != []){ $cart = Com::session(Com::SES_CART); foreach ($cart as $key => $value) { $branch = $key; } } else { $result['msg'] = 'Sorry, cart is empty'; goto skip; } $result['status'] = STATUS_SUCCESS; $result['url'] = '/branch/branch-detail?id='.$branch; skip: return $this->asJson($result); } public function actionDirectProducts() { // if (!Yii::$app->getUser()->getIsGuest()) { // $userIdentity = Yii::$app->getUser()->getIdentity(); // $bearer = $userIdentity->getAuthKey(); // } // $headers = [ // 'Content-Type: application/json; charset=utf-8', // sprintf('Authorization: Bearer %s', $bearer), // 'Accept-Language: ' . \Yii::$app->language, // ]; // //print_r($rawData);exit; // $cartData = ApiHelper::getInstance() // ->setRequestMethod(ApiHelper::REQUEST_METHOD_POST) // ->setRequestBodyType(ApiHelper::REQUEST_BODY_TYPE_RAW_DATA) // ->setRequestParam($rawData) // ->setUrl($url); // $apiResponse = $cartData->run(); // $message = $apiResponse->getMessage(); // if(!$apiResponse->isSuccess()) { // $message = $apiResponse->getMessage(); // $cartDataArray['message'] = $message; // } // $cartDataArray['data'] = $apiResponse->getData(); return $this->render('/item/direct-purchase'); } public function actionUserOrderType($type) { $checkOutSession = Com::Session(Com::SES_CHECKOUT); $checkOutSession['user_order_type'] = $type; Com::setSession(Com::SES_CHECKOUT, $checkOutSession); } public function actionFindCartType() { $cart = Com::Session(Com::SES_CART); $result['cart_type'] = 2; if(isset($cart['normal_items'])) { $result['cart_type'] = 1; } return $this->asJson($result); } public function actionTest() { $model = Order::findOne(['order_key' => $order_key])->one(); if($model == null) { $this->commonError('Invalid Order'); } $model = OrderItem::findOne(['order_id' => $model->order_id])->one(); foreach ($model as $key => $value) { $modelUserOrder = UserOrder::find()->where(['user_id' => $value['user_id']])->one(); } } public function actionReminderChange() { $request = Yii::$app->request->get(); print_r($request); die; $userData = Car::find(); } public function actionGetTopProduct() { $latitude = (com::isSession('customer_latitude')) ? com::session('customer_latitude') : ''; $longitude = (com::isSession('customer_langtitude')) ? com::session('customer_langtitude') : ''; if($latitude == null || $longitude == null){ goto skip; } skip: } public function actionCheckMinCart() { $cart = Com::Session(Com::SES_CART); $result = ['status' => STATUS_FAIL, 'msg' => '' ]; $itemKey = ''; $subTotal = 0; $totalRefundBottleQty = 0; foreach ($cart as $key => $cartType) { foreach ($cartType as $key => $value) { // print_r($value); die; $itemKey = $key; $modelItem = Item::find()->where(['item_key' => $key])->one(); $subTotal += $modelItem->item_price * $value['quantity']; $totalRefundBottleQty = $totalRefundBottleQty + $value['refund_bottle_qty']; //break; } } $modelBranch = Branch::find() ->alias('B') ->select([ 'B.minimum_cart_value', 'V.cgst' ]) ->innerJoin(['I' => Item::tableName()], 'B.branch_id = I.branch_id') ->innerJoin(['V' => Vendor::tableName()], 'V.vendor_id = B.vendor_id') ->where(['I.item_key' => $itemKey]) ->asArray() ->one(); if($modelBranch == []) { $result['msg'] = 'Sorry, branch currently not available'; goto skip; } $subTotal = $subTotal; $vat = $cgst = ($modelBranch['cgst']/100) * $subTotal; $total = $subTotal + $vat; if($subTotal < $modelBranch['minimum_cart_value']) { $result['msg'] = 'Sorry, minimum Cart value is ' .Com::moneyFormat($modelBranch['minimum_cart_value'], true); goto skip; } if($totalRefundBottleQty != 0) { $totalRefundPrice = $totalRefundBottleQty * Configuration::get(Configuration::EMPTY_BOTTLE); //die('in'); //print_r($totalRefundPrice); die; if($totalRefundPrice > $total){ $result['msg'] = 'Sorry, Add more Item to Continue '; goto skip; } } $result['msg'] = ''; $result['status'] = STATUS_SUCCESS; skip: $this->asJson($result); } }