public function detailAction() { $this->view->headTitle(Vi_Language::translate('Detail Order')); $this->view->menu = array('order'); $config = Vi_Registry::getConfig(); $numRowPerPage = Vi_Registry::getConfig("defaultNumberRowPerPage"); $currentPage = $this->_getParam("page", 1); $displayNum = $this->_getParam('displayNum', false); $id = $this->_getParam('id', false); if (false == $id) { $this->_redirect('order/admin/manager'); } /** * Load all details */ $objDetail = new Models_OrderDetail(); $allDetails = $objDetail->getByColumnName(array('order_id=?' => $id))->toArray(); /** * Get order */ $objOrder = new Models_Order(); $order = $objOrder->find($id)->toArray(); $order = current($order); $this->view->order = $order; /** * Get restaurant */ $objRes = new Models_Restaurant(); $res = $objRes->find($order['restaurant_id'])->toArray(); $res = current($res); $this->view->res = $res; /** * Set values for tempalte */ $this->view->allMeals = $allDetails; }
public function newMealAction() { $rid = Vi_Registry::getRestaurantIdFromLoggedUser(); if (false == $rid) { $this->_redirect('restaurant/meal/manager'); } $objRes = new Models_Restaurant(); $res = $objRes->find($rid)->toArray(); $res = current($res); if (false == $res) { $this->_redirect(''); } /** * Get data */ $objMeal = new Models_Meal(); $data = $this->_getParam('data', false); $error = ''; if (false != $data) { /** * Insert new meal */ $newMeal = $data; $newMeal['price'] = number_format($newMeal['price'], 2, '.', ''); if (null != $newMeal['image']) { $newMeal['image'] = $this->getImagePath($newMeal['image']); $newMeal['image_thumb'] = $this->getThumbnailImagePath($newMeal['image']); } $newMeal['created_date'] = time(); $newMeal['restaurant_id'] = $rid; // echo '<pre>';print_r($newMeal);die; $objMeal->insert($newMeal); $this->session->mealMessage = 'New meal is created successfully'; $this->_redirect('restaurant/meal/manager/type/' . $data['type']); } $this->view->data = $data; $this->view->error = $error; $this->view->res = $res; $this->view->headTitle('New Meal'); $this->view->menu = array('meal-manager'); }
/** * List all meal follow restaurant */ public function indexAction() { $this->view->headTitle('Cart information'); $order_id = session_id(); if (!isset($_SESSION['cart'][$order_id])) { $this->_redirect(''); } /** * Get restaurant */ $objRes = new Models_Restaurant(); $res = $objRes->find($_SESSION['cart'][$order_id]['restaurant_id'])->toArray(); $res = current($res); // echo '<pre>';print_r($_SESSION);//die; // echo '<pre>';print_r($res);die; if (false == $res) { $this->_redirect(''); } $this->view->session_cart = $_SESSION['cart'][$order_id]; $this->view->subtotal = $_SESSION['cart'][$order_id]['subtotal']; $this->view->tax = $_SESSION['cart'][$order_id]['tax']; $this->view->shipping = $_SESSION['cart'][$order_id]['shipping']; $this->view->ordertotal = $_SESSION['cart'][$order_id]['ordertotal']; $this->view->mark = strtoupper($_SESSION['cart'][$order_id]['order_service']); $this->view->date = $_SESSION['cart'][$order_id]['date']; $this->view->time = $_SESSION['cart'][$order_id]['time']; $data_info = $this->_getParam('data', false); $confirm = $this->_getParam('confirm', false); /** * Remember customer's infomation */ if (false !== $data_info) { $_SESSION['cart_customer'] = $data_info; } $data_info = $_SESSION['cart_customer']; $this->view->full_name = $data_info['full_name']; $this->view->address = $data_info['address']; $this->view->zip_code = $data_info['zip_code']; $this->view->phone = $data_info['phone1'] . "." . $data_info['phone2'] . "." . $data_info['phone3']; $this->view->cardType = $_SESSION['cart_customer']['card_type']; $cardNumber = $_SESSION['cart_customer']['card_number']; $cardNumber[4] = 'X'; $cardNumber[5] = 'X'; $cardNumber[6] = 'X'; $cardNumber[7] = 'X'; $cardNumber[8] = 'X'; $cardNumber[9] = 'X'; $cardNumber[10] = 'X'; $cardNumber[11] = 'X'; $this->view->cardNumber = $cardNumber; $error = ''; /** * Store to DB and redirect */ if (false != $confirm) { /************************************************************************** * Make payment */ require_once 'libs/paypal/CallerService.php'; /** * Fist name, last name */ $firstName = trim(substr($data_info['full_name'], 0, strpos($data_info['full_name'] . ' ', ' ') + 1)); $lastName = trim(substr($data_info['full_name'], strlen($firstName))); /** * Get required parameters from the web form for the request */ $paymentType = urlencode('Sale'); $firstName = urlencode($firstName); $lastName = urlencode($lastName); $creditCardType = urlencode($data_info['card_type']); $creditCardNumber = urlencode($data_info['card_number']); $expDateMonth = urlencode($data_info['card_month']); // Month must be padded with leading zero $padDateMonth = str_pad($expDateMonth, 2, '0', STR_PAD_LEFT); $expDateYear = urlencode($data_info['card_year']); $cvv2Number = urlencode($data_info['card_cvv']); $address1 = urlencode($data_info['address']); $address2 = urlencode(''); $city = urlencode($data_info['city']); $state = urlencode($data_info['state']); $zip = urlencode($data_info['zip_code']); $amount = urlencode(number_format($_SESSION['cart'][$order_id]['ordertotal'], 2, '.', '')); $currencyCode = "CAD"; // $state = 'NL'; $country = 'CA'; /* Construct the request string that will be sent to PayPal. The variable $nvpstr contains all the variables and is a name value pair string with & as a delimiter */ $nvpstr = "&PAYMENTACTION={$paymentType}&AMT={$amount}&CREDITCARDTYPE={$creditCardType}&ACCT={$creditCardNumber}&EXPDATE=" . $padDateMonth . $expDateYear . "&CVV2={$cvv2Number}&FIRSTNAME={$firstName}&LASTNAME={$lastName}&STREET={$address1}&CITY={$city}&STATE={$state}" . "&ZIP={$zip}&COUNTRYCODE={$country}&CURRENCYCODE={$currencyCode}"; // echo $nvpstr;die; /* Make the API call to PayPal, using API signature. The API response is stored in an associative array called $resArray */ $resArray = hash_call("doDirectPayment", $nvpstr); // echo '<pre>';print_r($resArray);die; /* Display the API response back to the browser. If the response from PayPal was a success, display the response parameters' If the response was an error, display the errors received using APIError.php. */ $ack = strtoupper($resArray["ACK"]); if ($ack != "SUCCESS") { $_SESSION['card_error_msg'] = @$resArray['L_LONGMESSAGE0']; $this->_redirect('restaurant/ship'); } /** * End payment **************************************************************************/ //-- begin save into db: vi_order and vi_order_detail $arr_order = array('sub_total' => $_SESSION['cart'][$order_id]['subtotal'], 'sales_tax' => $_SESSION['cart'][$order_id]['tax'], 'shipping_fee' => $_SESSION['cart'][$order_id]['shipping'], 'order_total' => $_SESSION['cart'][$order_id]['ordertotal'], 'date' => $_SESSION['cart'][$order_id]['date'], 'time' => $_SESSION['cart'][$order_id]['time'], 'order_service' => $_SESSION['cart'][$order_id]['order_service'], 'full_name' => $data_info['full_name'], 'address' => $data_info['address'], 'suite' => $data_info['note'], 'city' => $data_info['city'], 'state' => $data_info['state'], 'zip_code' => $data_info['zip_code'], 'phone' => $data_info['phone1'] . "." . $data_info['phone2'] . "." . $data_info['phone3'], 'email' => $data_info['email'], 'created_date' => time(), 'restaurant_id' => $_SESSION['cart'][$order_id]['restaurant_id']); $objOrder = new Models_Order(); $bResultOrder = $objOrder->insert($arr_order); foreach ($_SESSION['cart'][$order_id] as $key => $value) { $arr_order_detail = array('order_id' => $bResultOrder, 'meal_id' => $value['meal_id'], 'name' => $value['name'], 'description' => $value['description'], 'price' => $value['price'], 'quantity' => $value['quantity'], 'total' => $value['total_money']); if (!empty($value['name'])) { $objOrderDetail = new Models_OrderDetail(); $objOrderDetail->insert($arr_order_detail); } } //-- end save into db: vi_order and vi_order_detail /** * Send email to admin and user */ $objUser = new Models_User(); $objMail = new Models_Mail(); $data = $arr_order; $config = Vi_Registry::getConfig(); $data['created_date'] = date($config['dateFormat'], $data['created_date']); $data['card_type'] = $this->view->cardType; $data['card_number'] = $this->view->cardNumber; // echo '<pre>';print_r($data);die; $cartDetail = "\n <table width='90%'>\n <tr>\n <td width='55%'></td>\n <td width='15%'></td>\n <td width='15%'></td>\n <td width='15%'></td>\n </tr>\n <tr>\n <td style='color: #442006; font-weight: bold;'>SHIPPING ADDRESS</td>\n <td colspan='3' style='color: #442006; font-weight: bold;'>PAYMENT METHOD</td>\n </tr> \n <tr>\n <td valign='top'>\n <br/>\n <table width='400px;'>\n\n <tr>\n <td width='30%' align='right' style='background-color: #EEEEEE;'>Full Name:</td>\n <td width='70%' style='color: #442006;'>{$data['full_name']}</td>\n </tr>\n <tr>\n <td align='right' style='background-color: #EEEEEE;'>Address:</td>\n <td style='color: #442006;'>{$data['address']}</td>\n\n </tr>\n <tr>\n <td align='right' style='background-color: #EEEEEE;'>Postal Code:</td>\n <td style='color: #442006;'>{$data['zip_code']}</td>\n </tr>\n <tr>\n <td align='right' style='background-color: #EEEEEE;'>Phone:</td>\n\n <td style='color: #442006;'>{$data['phone']}</td>\n </tr>\n </table>\n <br/>\n \n </td>\n <td valign='top'>\n <br/>\n <table width='400px;'>\n\n <tr>\n <td width='30%' align='right' style='background-color: #EEEEEE;'>Name:</td>\n <td width='70%' style='color: #442006;'>{$res['name']}</td>\n </tr>\n <tr>\n <td align='right' style='background-color: #EEEEEE;'>Address:</td>\n <td style='color: #442006;'>{$res['street']}, {$res['city']}, {$res['state']}</td>\n </tr>\n <tr>\n <td width='30%' align='right' style='background-color: #EEEEEE;'>Phone:</td>\n <td width='70%' style='color: #442006;'>{$res['phone']}</td>\n </tr>\n \n <tr>\n <td colspan='2' style='color: #442006; font-weight: bold;'><br/>PAYMENT METHOD</td>\n </tr>\n <tr>\n <td align='right' colspan='2'>{$data['card_type']}: {$data['card_number']}</td>\n </tr>\n \n </table>\n <br/>\n </td>\n\n </tr>\n \n </table>\n <table>\n \n <tr style='background-color: #DDDDDD;'>\n <td style='color: #AD5B21; font-weight: bold;'> Meal</td>\n <td style='color: #AD5B21; font-weight: bold;'> </td>\n <td style='color: #AD5B21; font-weight: bold;'> Quanlity</td>\n <td style='color: #AD5B21; font-weight: bold;'> Price</td>\n <td style='color: #AD5B21; font-weight: bold;'> Total</td>\n </tr> "; foreach ($_SESSION['cart'][$order_id] as $key => $meal) { if (null == $meal['meal_id']) { continue; } $mealImage = Vi_Registry::getConfig('liveSite') . '/' . $meal['image']; if (null != $meal['image']) { $mealImage = '<img src="' . $mealImage . '" style="max-width: 100px;">'; } else { $mealImage = ''; } if (is_numeric($key)) { $cartDetail .= "\n\t <tr>\n\t <td style='border-bottom: 1px solid #DDDDDD;'>\n\t {$mealImage}\n\t </td>\n\t <td style='border-bottom: 1px solid #DDDDDD;'>\n\t <b>{$meal['name']}</b>\n\t\n\t <br/>\n\t <p>{$meal['description']}</p>\n\t </td>\n\t <td style='border-bottom: 1px solid #DDDDDD;'>{$meal['quantity']}</td>\n\t <td style='border-bottom: 1px solid #DDDDDD;'>\$" . number_format($meal['price'] * 1.0, 2) . "</td>\n\t <td style='border-bottom: 1px solid #DDDDDD;'>\$" . number_format($meal['total_money'] * 1.0, 2) . "</td>\n\t </tr>"; } } $cartDetail .= " \n <tr>\n <td colspan='2'> </td>\n <td> Subtotal </td>\n <td>\$" . number_format($data['sub_total'], 2) . "</td>\n\n </tr>\n <tr>\n <td colspan='2'> </td>\n <td> Tax </td>\n <td>\$" . number_format($data['sales_tax'], 2) . "</td>\n </tr>\n <tr>\n <td colspan='2'> </td>\n <td> Shipping fee </td>\n\n <td>\$" . number_format($data['shipping_fee'], 2) . "</td>\n </tr>\n <tr>\n <td colspan='2'> </td>\n <td> Order total </td>\n <td style='color: #AD5B21; font-weight: bold;'>\$" . number_format($data['order_total'], 2) . "</td>\n </tr>\n </table>\n "; $data['card_detail'] = $cartDetail; // echo '<pre>';print_r($data);die; $admin = $objUser->getByUserName('admin'); $objMail->sendHtmlMail('meal_order', $data, array($admin['email'], $data['email'], $res['owner_email'])); /** * Clear session */ unset($_SESSION['cart']); unset($_SESSION['cart_customer']); /** * Redirec to success page */ $objContent = new Models_ScontentLang(); $this->_redirect($objContent->getUrlWithoutAppBaseUrl(21)); return; } }
public function deleteReservationAction() { $resId = Vi_Registry::getRestaurantIdFromLoggedUser(); if (false == $resId) { $this->_redirect('access/index/login'); } $objRes = new Models_Restaurant(); $res = $objRes->find($resId)->toArray(); $res = current($res); if (false == $res) { $this->_redirect(''); } $id = $this->_getParam('id', false); if (false == $id) { $this->_redirect('restaurant/admin/reservation'); } $ids = explode('_', trim($id, '_')); $objReser = new Models_Reservation(); try { foreach ($ids as $id) { $objReser->delete(array('reservation_id=?' => $id, 'restaurant_id=?' => $resId)); } $this->session->reserMessage = array('success' => true, 'message' => 'Reservation is deleted successfully'); } catch (Exception $e) { $this->session->reserMessage = array('success' => false, 'message' => 'Can NOT delete this reservation. Please try again'); } $this->_redirect('restaurant/reservation/manager'); }
public function deletePendingAction() { $id = $this->_getParam('id', false); if (false == $id) { $this->_redirect('restaurant/admin/pending'); } $ids = explode('_', trim($id, '_')); $objRestaurant = new Models_Restaurant(); try { foreach ($ids as $id) { $objRestaurant->delete(array('restaurant_id=?' => $id)); } $this->session->restaurantMessage = array('success' => true, 'message' => Vi_Language::translate('Delete restaurant successfully')); } catch (Exception $e) { $this->session->restaurantMessage = array('success' => false, 'message' => Vi_Language::translate('Can NOT delete this restaurant. Please try again')); } $this->_redirect('restaurant/admin/pending#listofrestaurant'); }
/** * List all restaurant after search */ public function indexAction() { $this->view->headTitle('Restaurant'); $config = Vi_Registry::getConfig(); $numRowPerPage = Vi_Registry::getConfig("defaultNumberRowPerPage"); // $numRowPerPage = 1; $currentPage = $this->_getParam("page", 1); $condition = $this->_getParam('data', array()); $find = $this->_getParam('find', false); if (strpos($_SERVER["REDIRECT_URL"], 'mark_restaurant')) { $mark = $_SESSION['mark'] = $this->_getParam('mark', 'pickup'); //isset($_SESSION['mark'])? $_SESSION['mark']: $this->_getParam('mark', false); } else { $mark = $_SESSION['mark'] = isset($_SESSION['mark']) && !empty($_SESSION['mark']) ? $_SESSION['mark'] : $this->_getParam('mark', 'pickup'); } $searchword = $this->_getParam('searchword', false); $conditions = $this->_getParam('condition', array()); /** * Set variables for template */ $str_lead_time_title = ""; if (strcmp($mark, 'pickup') == 0) { $this->view->mark_pickup = 'checked'; $str_lead_time_title = 'Pick up'; } elseif (strcmp($mark, 'curbside') == 0) { $this->view->mark_curbside = 'checked'; $str_lead_time_title = 'Curbside'; } elseif (strcmp($mark, 'catering_pickup') == 0) { $this->view->mark_catering_pickup = 'checked'; $str_lead_time_title = 'Catering Pickup'; } elseif (strcmp($mark, 'delivery') == 0) { $this->view->mark_delivery = 'checked'; $str_lead_time_title = 'Delivery'; } elseif (strcmp($mark, 'catering_delivery') == 0) { $this->view->mark_catering_delivery = 'checked'; $str_lead_time_title = 'Catering Delivery'; } /** * Get condition for search */ $arr_condition = array(); if (false != $mark) { // $arr_condition["{$mark} != ?"] = Zend_DB::NULL_EMPTY_STRING; $arr_con["mark"] = $mark; } if (false != $find) { // $arr_condition["name LIKE ? "] = $find."%"; $arr_con["name"] = $find; } if (null != @$condition['zip']) { /** * Condition here */ $objCountry = new Models_Country(); $city_from_code = $objCountry->getCityByCode($condition['zip']); // $arr_condition["address LIKE ? "] = "%".$city_from_code[0]['city']."%"; $arr_con['city'] = $city_from_code[0]['city']; $arr_con['zip'] = $condition['zip']; // $arr_con['address'] = $city_from_code[0]['city']; } else { if (false != $searchword) { //-- searchword: city // $arr_condition["address LIKE ? "] = "%".$searchword."%"; // $arr_con["address"] = $searchword; $arr_con["city"] = $searchword; } } if (null != @$conditions['cuisine'] && $conditions['cuisine'] > 0) { /** * Condition here */ $arr_con['cuisine_id'] = $conditions['cuisine']; if (null != @$conditions['time']) { $arr_con['time'] = $conditions['time']; } if (null != @$conditions['date']) { $arr_con['date'] = strtolower(substr($conditions['date'], -3)); } } $arr_con = isset($arr_con) ? $arr_con : array(); $objRestaurant = new Models_Restaurant(); $restaurants = $objRestaurant->getRestaurantByData($arr_con, $numRowPerPage, ($currentPage - 1) * $numRowPerPage); $count = count($objRestaurant->getRestaurantByData($arr_con)); // else{ // // $arr_condition["enabled = ? "] = 1; // $objRestaurant = new Models_Restaurant(); // $restaurants = $objRestaurant->getByColumnName($arr_condition, // array('name ASC'), // $numRowPerPage, // ($currentPage - 1) * $numRowPerPage)->toArray(); // $count = count($objRestaurant->getByColumnName($arr_condition)); // } $this->view->lead_time = $str_lead_time_title; $this->view->mark = $mark; $this->view->alphabet = GetAlphabet(); $strServices = ""; foreach ($restaurants as $key => $value) { // if ( !empty($value['services']) ){ // $arr_services = explode(',',$value['services']); // $restaurants[$key]['arr_service'] = $arr_services; // } $strServices = ""; if (!empty($value['pickup'])) { if (!empty($strServices)) { $strServices .= ',Pickup'; } else { $strServices .= 'Pickup'; } } if (!empty($value['curbside'])) { if (!empty($strServices)) { $strServices .= ',Curbside'; } else { $strServices .= 'Curbside'; } } if (!empty($value['delivery'])) { if (!empty($strServices)) { $strServices .= ',Delivery'; } else { $strServices .= 'Delivery'; } } if (!empty($value['catering_pickup'])) { if (!empty($strServices)) { $strServices .= ',Catering Pickup'; } else { $strServices .= 'Catering Pickup'; } } if (!empty($value['catering_delivery'])) { if (!empty($strServices)) { $strServices .= ',Catering Delivery'; } else { $strServices .= 'Catering Delivery'; } } $arr_services = explode(',', $strServices); $restaurants[$key]['arr_service'] = $arr_services; $restaurants[$key]['address'] = $value['street'] . " " . $value['city'] . " " . $value['state']; $restaurants[$key]['alias'] = Vi_Controller_Action::makeURLSafeString($value['name']) . '.html'; } $this->view->restaurants = $restaurants; /** * Begin get date and month */ $date_month[] = date("M jS - D"); for ($i = 1; $i < 14; $i++) { $date_month[] = date("M jS - D", time() + $i * 24 * 60 * 60); } $this->view->date_month = $date_month; /** * Begin get time */ // $arr_time[]= '12:15 AM'; // $arr_time[]= '12:30 AM'; // $arr_time[]= '12:45 AM'; // for( $i = 1; $i<12; $i++ ){ for ($i = 5; $i < 24; $i++) { for ($j = 1; $j < 5; $j++) { if ($j == 1) { $format = '00'; } else { if ($j == 2) { $format = '15'; } else { if ($j == 3) { $format = '30'; } else { if ($j == 4) { $format = '45'; } } } } // $arr_time[] = $i.":".$format." AM"; $arr_time[] = $i . ":" . $format; } } // $arr_time[] = '12:00 PM'; // $arr_time[] = '12:15 PM'; // $arr_time[] = '12:30 PM'; // $arr_time[] = '12:45 PM'; // for( $i = 1; $i<13; $i++ ){ // for( $j=1;$j<5;$j++ ){ // if ( $j==1 ) // $format = '00'; // else if ( $j==2 ) // $format = '15'; // else if ( $j==3 ) // $format = '30'; // else if ( $j==4 ) // $format = '45'; // $arr_time[] = $i.":".$format." PM"; // } // } $this->view->arr_time = $arr_time; $this->view->zip = null != @$condition['zip'] ? $condition['zip'] : ''; $this->view->city = $searchword; $date = isset($_SESSION['date']) ? $_SESSION['date'] : $this->_getParam('date', false); $time = isset($_SESSION['time']) ? $_SESSION['time'] : $this->_getParam('time', false); $_SESSION['date'] = null != @$conditions['date'] ? $conditions['date'] : (false != $date ? $date : ''); $_SESSION['time'] = null != @$conditions['time'] ? $conditions['time'] : (false != $time ? $time : ''); $this->view->time = $_SESSION['time']; $this->view->date = $_SESSION['date']; /** * Pagination */ $this->setPagination($numRowPerPage, $currentPage, $count); $order_id = session_id(); if (isset($_SESSION['cart'][$order_id])) { $this->view->subtotal = $_SESSION['cart'][$order_id]['subtotal']; $this->view->tax = $_SESSION['cart'][$order_id]['tax']; $this->view->shipping = $_SESSION['cart'][$order_id]['shipping']; $this->view->ordertotal = $_SESSION['cart'][$order_id]['ordertotal']; $this->view->res_id_ses = $_SESSION['cart'][$order_id]['restaurant_id']; } }
/** * List all meal follow restaurant */ public function indexAction() { $this->view->headTitle('Cart information'); //-- begin add information into cart $meal_id = $this->_getParam('meal_id', false); $quantity = $this->_getParam('quantity', false); $mark = $_SESSION['mark']; //$this->_getParam('mark', false); $state = $this->_getParam('state', 0); //-- state=0: delete meal in session cart $date = $_SESSION['date']; //$this->_getParam('date', false); $time = $_SESSION['time']; //$this->_getParam('time', false); $res_id = $this->_getParam('res_id', false); if (false === $res_id) { $this->_redirect(''); } $order_id = session_id(); //-- begin delete meal in session cart if (0 != $state) { foreach ($_SESSION['cart'][$order_id] as $key => $value) { if ($key != $meal_id) { $_SESSION['cart_delete'][$order_id][$key] = $value; } } //-- begin calculate sum $_SESSION['cart_delete'][$order_id]['subtotal'] = 0; foreach ($_SESSION['cart_delete'][$order_id] as $key => $value) { if ($value['total_money'] > 0) { $_SESSION['cart_delete'][$order_id]['subtotal'] += $value['total_money']; } } //-- end calculate sum $_SESSION['cart_delete'][$order_id]['ordertotal'] = $_SESSION['cart_delete'][$order_id]['subtotal'] + $_SESSION['cart'][$order_id]['tax'] + $_SESSION['cart'][$order_id]['shipping']; unset($_SESSION['cart'][$order_id]); $_SESSION['cart'][$order_id] = $_SESSION['cart_delete'][$order_id]; unset($_SESSION['cart_delete'][$order_id]); $this->view->session_cart = $_SESSION['cart'][$order_id]; } else { //-- end delete meal in session cart if (false != $meal_id) { if (false != $quantity) { $_SESSION['cart'][$order_id][$meal_id]['quantity'] = $quantity; } else { if (isset($_SESSION['cart'][$order_id][$meal_id]['meal_id']) && $_SESSION['cart'][$order_id][$meal_id]['meal_id'] == $meal_id) { $_SESSION['cart'][$order_id][$meal_id]['quantity'] = $_SESSION['cart'][$order_id][$meal_id]['quantity'] + 1; } else { $objMeal = new Models_Meal(); $arr_meal = $objMeal->getDataById($meal_id); $_SESSION['cart'][$order_id][$meal_id]['meal_id'] = $arr_meal['meal_id']; $_SESSION['cart'][$order_id][$meal_id]['image'] = $arr_meal['image_thumb'] ? $arr_meal['image_thumb'] : $arr_meal['image']; $_SESSION['cart'][$order_id][$meal_id]['name'] = $arr_meal['name']; $_SESSION['cart'][$order_id][$meal_id]['description'] = $arr_meal['description']; $_SESSION['cart'][$order_id][$meal_id]['price'] = $arr_meal['price']; $_SESSION['cart'][$order_id][$meal_id]['quantity'] = 1; } } $_SESSION['cart'][$order_id][$meal_id]['total_money'] = $_SESSION['cart'][$order_id][$meal_id]['price'] * $_SESSION['cart'][$order_id][$meal_id]['quantity']; $_SESSION['cart'][$order_id]['subtotal'] = 0; $_SESSION['cart'][$order_id]['restaurant_id'] = $res_id; //-- begin calculate sum foreach ($_SESSION['cart'][$order_id] as $key => $value) { if ($value['total_money'] > 0 && is_numeric($key)) { $_SESSION['cart'][$order_id]['subtotal'] += $value['total_money']; } } //-- end calculate sum $_SESSION['cart'][$order_id]['tax'] = $_SESSION['cart'][$order_id]['subtotal'] * Vi_Registry::getConfig('taxFee'); //-- begin get shipping fee for catering delivery and catering if (strcmp($mark, 'catering_delivery') == 0 || strcmp($mark, 'delivery') == 0) { $objRestaurant = new Models_Restaurant(); $arrRestaurant = $objRestaurant->getShipFeeFromMealId($meal_id); if (strcmp($mark, 'delivery_charge') == 0) { $shippingFee = $arrRestaurant['delivery_charge']; } else { $shippingFee = $arrRestaurant['catering_delivery_charge']; } $_SESSION['cart'][$order_id]['shipping'] = $shippingFee; } else { $_SESSION['cart'][$order_id]['shipping'] = 0; } //-- end get shipping fee for catering delivery and catering $_SESSION['cart'][$order_id]['ordertotal'] = $_SESSION['cart'][$order_id]['subtotal'] + $_SESSION['cart'][$order_id]['tax'] + $_SESSION['cart'][$order_id]['shipping']; $this->view->session_cart = $_SESSION['cart'][$order_id]; } else { $this->view->session_cart = ''; } } $_SESSION['cart'][$order_id]['date'] = $date; $_SESSION['cart'][$order_id]['time'] = $time; $_SESSION['cart'][$order_id]['order_service'] = $mark; // echo "<pre>";print_r($_SESSION['cart'][$order_id]);echo "</pre>"; $this->view->subtotal = $_SESSION['cart'][$order_id]['subtotal']; $this->view->tax = $_SESSION['cart'][$order_id]['tax']; $this->view->shipping = $_SESSION['cart'][$order_id]['shipping']; $this->view->ordertotal = $_SESSION['cart'][$order_id]['ordertotal']; //-- end add information into cart $this->view->order_id = $order_id; $this->view->meal_id = $meal_id; $this->view->mark = strtoupper($mark); $this->view->date = $date; $this->view->time = strtoupper($time); }
public function editUserAction() { /** * Check permission */ if (false == $this->checkPermission('edit_user')) { $this->_forwardToNoPermissionPage(); return; } $id = $this->_getParam('id', false); $data = $this->_getParam('data', false); if (false == $id) { $this->_redirect('user/admin/user-manager'); } $objUser = new Models_User(); $objUserExp = new Models_UserExpand(); $errors = array(); /** * Get old user */ $oldUser = $objUser->getUserWithExpand($id); if (empty($oldUser)) { /** * User doesn't exsit */ $this->session->userMessage = array('success' => false, 'message' => Vi_Language::translate('User does NOT exist')); $this->_redirect('user/admin/user-manager#listofuser'); } if (false !== $data) { /** * Update new user */ $newUser = array('group_id' => $data['group_id'], 'username' => $data['username'], 'email' => $data['email'], 'full_name' => $data['full_name'], 'password' => $data['password'], 'repeat_password' => $data['repeat_password'], 'enabled' => $data['enabled']); $newUserExp = array('admin_note' => $data['admin_note']); /** * Check permission */ if ($oldUser['group_id'] != $newUser['group_id'] && false == $this->checkPermission('change_group')) { $newUser['group_id'] = $oldUser['group_id']; } $exclude = array(); if (null == @$newUser['password'] && null == @$newUser['repeat_password']) { $exclude[] = 'password'; unset($newUser['password']); unset($newUser['repeat_password']); } if ($newUser['email'] == $oldUser['email']) { $exclude[] = 'email'; unset($newUser['email']); } if ($newUser['username'] == $oldUser['username']) { $exclude[] = 'username'; unset($newUser['username']); } $errors = $objUser->validate($newUser, $exclude); if (true === $errors) { if (null != @$newUser['password']) { $newUser['password'] = md5($newUser['password']); unset($newUser['repeat_password']); } /** * TODO Read date format from language table */ try { $objUser->update($newUser, array('user_id=?' => $id)); $objUserExp->update($newUserExp, array('user_expand_id=?' => $oldUser['user_expand_id'])); /** * Set owner email for restaurant */ if (isset($newUser['email'])) { $objRes = new Models_Restaurant(); $objRes->update(array('owner_email' => $newUser['email']), array('user_id=?' => $id)); } if (isset($newUser['full_name'])) { $objRes = new Models_Restaurant(); $objRes->update(array('owner' => $newUser['full_name']), array('user_id=?' => $id)); } /** * Reload current login user */ $loggedUser = $this->session->backendUser; if ($oldUser['user_id'] == @$loggedUser['user_id']) { $this->session->backendUser = $objUser->getByUserId($oldUser['user_id'])->toArray(); } $this->_redirect('user/admin/user-manager'); } catch (Exception $e) { $errors = array('main' => Vi_Language::translate('Can not update user now')); } } } else { /** * Get current user */ $data = $oldUser; } /** * Prepare for template */ $this->view->errors = $errors; $this->view->data = $data; $this->view->headTitle(Vi_Language::translate('Edit user')); $this->view->menu = array('usergroup', 'edituser'); /** * Get all groups */ $objGroup = new Models_Group(); $this->view->allGroups = $objGroup->getAll(array('sorting ASC', 'group_id ASC'))->toArray(); // /** // * Get all countries // */ // $objCountry = new Models_Country(); // $this->view->allCountries = $objCountry->getAll(array('sorting ASC', 'country_id ASC'))->toArray(); }
public static function getRestaurantFromLoggedUser() { require_once 'Shared/Models/Restaurant.php'; $objRes = new Models_Restaurant(); $userId = self::getLoggedInUserId(); if (null == $userId) { return array(); } return $objRes->getByColumnName(array('user_id=?' => $userId))->current(); }
public function editRestaurantAction() { /** * Get all provice CODE */ $objCountry = new Models_Country(); $this->view->allProvinces = $objCountry->getAllProvinces(); /** * Get some list */ $objCat = new Models_Category(); $this->view->leadTimeNormal = $objCat->getAllValues('lead_time_normal'); $this->view->leadTimeCatering = $objCat->getAllValues('lead_time_catering'); // echo '<pre>';print_r($this->view->allProvinces);die; /** * Get data */ $objRes = new Models_Restaurant(); $objUser = new Models_User(); $objUserExp = new Models_UserExpand(); $data = $this->_getParam('data', false); $user = $this->_getParam('user', false); $condition = $this->_getParam('condition', false); if (false != $data && false != $user) { /** * Update restaurant */ $newRes = $data; /** * Modify date */ $dateArr = array('mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'); foreach ($dateArr as $item) { if ('1' != @$newRes["date_{$item}"]) { unset($newRes["date_{$item}_start"]); unset($newRes["date_{$item}_end"]); } else { /** * Change correct time */ if (null == @$newRes["date_{$item}_start"]) { $newRes["date_{$item}_start"] = '00:00'; //0 hours } else { $tmp = explode(':', $newRes["date_{$item}_start"]); /** * Hour */ if (null == @$tmp[0]) { $tmp[0] = 0; } $tmp[0] = '00' . abs(intval($tmp[0])); $tmp[0] = substr($tmp[0], -2, 2); if (23 < intval($tmp[0])) { $tmp[0] = '00'; } /** * Minute */ if (null == @$tmp[1]) { $tmp[1] = 0; } $tmp[1] = '00' . abs(intval($tmp[1])); $tmp[1] = substr($tmp[1], -2, 2); if (59 < intval($tmp[1])) { $tmp[1] = '00'; } $newRes["date_{$item}_start"] = $tmp[0] . ':' . $tmp[1]; } if (null == @$newRes["date_{$item}_end"]) { $newRes["date_{$item}_end"] = 24 * 3600 - 60; //23:59:59 hours } else { $tmp = explode(':', $newRes["date_{$item}_end"]); /** * Hour */ if (null == @$tmp[0]) { $tmp[0] = 23; } $tmp[0] = '00' . abs(intval($tmp[0])); $tmp[0] = substr($tmp[0], -2, 2); if (23 < intval($tmp[0])) { $tmp[0] = '23'; } /** * Minute */ if (null == @$tmp[1]) { $tmp[1] = 59; } $tmp[1] = '00' . abs(intval($tmp[1])); $tmp[1] = substr($tmp[1], -2, 2); if (59 < intval($tmp[1])) { $tmp[1] = '59'; } $newRes["date_{$item}_end"] = $tmp[0] . ':' . $tmp[1]; } } } /** * Modify data */ if ('1' != @$newRes['check']['pickup']) { unset($newRes['pickup']); } if ('1' != @$newRes['check']['curbside']) { unset($newRes['curbside']); } if ('1' != @$newRes['check']['delivery']) { unset($newRes['delivery']); unset($newRes['delivery_limit_hour']); unset($newRes['delivery_charge']); unset($newRes['delivery_minimum']); } if ('1' != @$newRes['check']['catering_pickup']) { unset($newRes['catering_pickup']); } if ('1' != @$newRes['check']['catering_delivery']) { unset($newRes['catering_delivery']); unset($newRes['catering_delivery_limit_hour']); unset($newRes['catering_delivery_charge']); unset($newRes['catering_delivery_minimum']); } /** * Remove tempory data */ unset($newRes['check']); unset($newRes['owner_email']); // echo '<pre>';print_r($newRes);die; $objRes->update($newRes, array('restaurant_id=?' => Vi_Registry::getRestaurantIdFromLoggedUser())); /** * Update new password */ $newUser = $user; // echo '<pre>';print_r($newUser);die; if (null != $newUser['password'] && $newUser['password'] == $newUser['retype_password']) { $newUser['password'] = md5($newUser['password']); /** * TODO Read date format from language table */ unset($newUser['retype_password']); } else { /** * Don't change password */ unset($newUser['password']); unset($newUser['retype_password']); } unset($newUser['email']); unset($newUser['username']); $newUser['company'] = $data['name']; $newUser['full_name'] = $data['owner']; $objUser->update($newUser, array('user_id=?' => Vi_Registry::getLoggedInUserId())); $this->view->updateSuccess = true; } /** * Reload user and restaurant */ $user = Vi_Registry::getLoggedInUser()->toArray(); $data = $objRes->getByColumnName(array('user_id=?' => $user['user_id']))->toArray(); $data = current($data); $this->view->user = $user; $this->view->data = $data; $cuisines = $objCat->getAllValues('cuisine'); $this->view->cuisines = $cuisines; $this->view->headTitle('Restaurant Owner Register'); // $this->setLayout('front2'); }