/** * удаление информации по бронированию с сайта, вубука и базы Визит-а */ public function removeBookings($order_id) { $db_local = JDatabase::getInstance(VipLocalApi::getDbConnectOptions()); $db = JFactory::getDBO(); $booking_info = $this->getBookingInfo($db, $order_id); //echo'<pre>';var_dump($booking_info);echo'</pre>';die; if (!is_null($booking_info)) { if ($booking_info['k_zajav'] != 0) { // удаляем с локального сервера VipLocalApi::cancelReservation($db_local, $booking_info['k_zajav']); } $reservation_code = $booking_info['reservation_code']; if ($reservation_code == 0) { $reservation_code = intval($booking_info['wubook_answer']); } //echo'<pre>';var_dump($reservation_code);echo'</pre>';die; if ($reservation_code != 0) { //отменяем на вубуке WuBookApi::cancelReservation($reservation_code); //die; } //удаляем с сайта информацию о сроках бронирования $this->removeBookingInfo($db, $booking_info['id']); } //$this->removeOrder($db, $order_id); //$mainframe = JFactory::getApplication(); //JError::raiseNotice(100, _JSHOP_ORDER_IS_CANCELED); //$mainframe->redirect(SEFLink('index.php?option=com_jshopping&controller=user&task=orders', 1, 1)); }
private function addBookingOnWuBook(&$db, $order, $order_date_from, $order_date_to, $product_id, $order_bookings_id) { //$dfrom = '17/02/2016'; //$dto = '18/02/2016'; $dfrom = str_replace('-', '/', $order_date_from); $dto = str_replace('-', '/', $order_date_to); $object_id = " " . WuBookApi::getObjectWuBookId($db, $product_id); // пробел вначале обязателен $country = $this->getCountryName($db, $order->country); $rooms = array($object_id => array(1, 'nb')); $customer = array('lname' => $order->l_name, 'fname' => $order->f_name, 'email' => $order->email, 'city' => $order->city, 'phone' => $order->phone, 'street' => '', 'country' => $country, 'arrival_hour' => '12:00', 'notes' => $order->order_add_info); foreach ($customer as $c) { $c = WuBookApi::ToTranslit($c); } $amount = number_format($order->order_total, 1, '.', ' '); $answer = WuBookApi::sendNewReservation($dfrom, $dto, $rooms, $customer, $amount); //если ответ текстовый - сохраняем в поле ответа, если число - в код бронирования if (intval($answer) > 0) { WuBookApi::saveWuBookReservationCode($db, $order_bookings_id, $answer); } else { WuBookApi::saveWuBookAnswer($db, $order_bookings_id, $answer); } }
if (!defined('_JDEFINES')) { define('JPATH_BASE', __DIR__); require_once JPATH_BASE . '/includes/defines.php'; } require_once JPATH_BASE . '/includes/framework.php'; require_once JPATH_BASE . '/components/com_jshopping/WuBookApi.php'; // Instantiate the application. $app = JFactory::getApplication('site'); $db = JFactory::getDbo(); $token = WuBookApi::getToken(); if ($token == -1) { die; } echo '<pre>token = '; print_r($token); echo '</pre>'; $rooms = WuBookApi::fetchRooms($token); $rooms_arr = WuBookApi::prepareRooms($rooms); //echo'<pre>rooms = ';print_r($rooms);echo'</pre>'; $new_bookings = WuBookApi::fetchNewBookings($token); $objectsOnSite = WuBookApi::getObjectsIds($db); WuBookApi::addNewBookingsOnSite($db, $new_bookings, $rooms_arr, $objectsOnSite); //echo'<pre>';print_r(count($rows));echo'</pre>'; //echo'<pre>rooms = ';print_r($rows);echo'</pre>'; WuBookApi::releaseToken($token); echo '<pre>FINISHED</pre>'; die; ?>
$amount = '70.3'; WuBookApi::sendNewReservation($dfrom, $dto, $rooms, $customer, $amount); // break; case 'wubook-cancel-reservation': //$rcode = 1447078679; $rcode = isset($_GET['rcode']) ? $_GET['rcode'] : -1; if ($rcode > -1) { WuBookApi::cancelReservation($rcode); } // break; case 'fetch-plan-prices': $dfrom = '28/04/2016'; $dto = '14/05/2016'; $rows = WuBookApi::fetchPlanPrices('', $dfrom, $dto); // echo '<pre>dfrom = '; print_r($dfrom); echo '</pre>'; echo '<pre>dto = '; print_r($dto); echo '</pre>'; echo '<pre>'; print_r($rows); echo '</pre>'; break; case 'test-local-db': $query = "SELECT k_zajav, room_id, dat1, dat2 FROM `armor` ORDER BY `k_zajav` DESC"; $db_local->setQuery($query); $rows = $db_local->loadObjectList();
/** * получение цен на объекты с вубука и подставление средней цены на объект * @param array $products */ private function getPrices(&$products, $dfrom, $dto) { $rooms = array(); // в product_url хранится ИД объекта на вубуке foreach ($products as $product) { if ($product->product_url != '') { $rooms[] = intval($product->product_url); } } //получаем цены на объекты $wubook_prices = WuBookApi::fetchPlanPrices('', $dfrom, $dto, $rooms); // //если получили корректный ответ от вубука if (!is_null($wubook_prices) && is_array($wubook_prices)) { //echo'<pre>';print_r($rooms);echo'</pre>'; foreach ($products as &$product) { $product->product_price_wubook = 0; $product->price_is_different = false; if (isset($wubook_prices[$product->product_url])) { $price_info = $this->averagePrice($wubook_prices[$product->product_url]); $product->product_price = $price_info['price']; $product->product_price_wubook = $price_info['price']; $product->wubook_min_price = $price_info['wubook_min_price']; $product->price_is_different = $price_info['price_is_different']; } } } }
/** * отменяет бронирования переданные в массиве */ public static function cancelReservations($rows) { $token = self::getToken(); if ($token == '') { echo 'Empty token'; return; } foreach ($rows as $row) { if ($row['reservation_code'] > 0) { WuBookApi::cancelReservation($row['reservation_code'], $token); } } self::releaseToken($token); return true; }