/**
  * удаление информации по бронированию с сайта, вубука и базы Визит-а
  */
 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);
     }
 }
Example #3
0
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'];
             }
         }
     }
 }
Example #6
0
 /**
  * отменяет бронирования переданные в массиве
  */
 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;
 }