/**
  * удаление информации по бронированию с сайта, вубука и базы Визит-а
  */
 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));
 }
 /**
  * отправляется запрос в базу локального сервера для окончательной проверки доступности для бронирования
  */
 public function chekBookingOnLocal(&$db_local, $product_id_local, $date_from, $date_to)
 {
     //заменяем разделитель даты
     //$date_from = str_replace('/', '-', $date_from);
     //$date_to = str_replace('/', '-', $date_to);
     //echo'<pre>$date_from ';print_r($date_from);echo'</pre>';//die;
     //echo'<pre>$date_to ';print_r($date_to);echo'</pre>';die;
     return VipLocalApi::isObjectFreeOnThisDates($db_local, $product_id_local, $date_from, $date_to);
 }
         if (isset($objects[$order_bookings['product_id']])) {
             $room_id = $objects[$order_bookings['product_id']]->product_ean;
             $date_from = date('d-m-Y', $order_bookings['dfrom']);
             $date_to = date('d-m-Y', $order_bookings['dto']);
             //echo'<pre>';print_r($objects[$order_bookings['product_id']]);echo'</pre>';//die;
             //echo'<pre>';print_r($room_id);echo'</pre>';//die;
             echo '<pre>C:  ';
             print_r($date_from);
             echo '</pre>';
             //die;
             echo '<pre>По: ';
             print_r($date_to);
             echo '</pre>';
             //die;
             $date_from = VipLocalApi::PrepareDateForLocalFormat($date_from, 2);
             $date_to = VipLocalApi::PrepareDateForLocalFormat($date_to, 2);
             $query = "SELECT k_zajav, room_id, dat1, dat2 FROM `armor`\n\t\t\t\t\tWHERE `room_id` = {$room_id} AND \n\t\t\t\t\t(\n\t\t\t\t\t(dat1 <= '{$date_from}' AND dat2 >= '{$date_to}') OR\n\t\t\t\t\t(dat1 >= '{$date_from}' AND dat2 <= '{$date_to}') OR\n\t\t\t\t\t(dat1 <= '{$date_from}' AND dat2 > '{$date_from}' AND dat2 <= '{$date_to}') OR\n\t\t\t\t\t(dat1 >= '{$date_from}' AND dat1 < '{$date_to}' AND dat2 >= '{$date_to}')\n\t\t\t\t\t)\n\n\t\t\t\t\tORDER BY `k_zajav` DESC";
             //echo'<pre>';print_r($query);echo'</pre>';//die;
             $db_local->setQuery($query);
             $rows = $db_local->loadObjectList();
             echo '<pre>';
             print_r($rows);
             echo '</pre>';
             //die;
             //echo'<pre>';var_dump($rows);echo'</pre>';//die;
         } else {
             echo '<pre>Данный объект отсутствует в базе данных сайта.</pre>';
         }
     }
 }
 break;
Example #4
0
 /**
  * удаляем отмененные на вубуке брони на визите и на сайте
  * @param objects array массив соответствия объектов на сайте на на визите
  */
 public static function runTaskToDeleteRows(&$db, &$db_local, $objects)
 {
     $rows_to_delete = MainApi::getRowsToDelete($db);
     //echo'<pre>$rows_to_delete ';print_r($rows_to_delete);echo'</pre>';//die;
     $fp = fopen(JPATH_SITE . "/rows_to_delete.log", "a");
     // Открываем файл в режиме записи
     $mytext = date('d-m-Y H:i:s') . "\r\n";
     // Исходная строка
     foreach ($rows_to_delete as $row) {
         $mytext .= $row->id . "\r\n";
         //удаляем с локального сервера
         VipLocalApi::cancelReservation($db_local, $row->k_zajav);
         //удаляем из базы сайта
         VipLocalApi::deleteReservations($db, array($row->k_zajav));
     }
     $mytext .= "\r\n";
     $test = fwrite($fp, $mytext);
     // Запись в файл
     fclose($fp);
     //Закрытие файла
 }
Example #5
0
 /**
  * синхронизация бронирований с сайта на локальный сервер
  */
 public static function synchronizeToLocalBase(&$db, &$db_local)
 {
     $rows = self::getUnsyncedBookings($db);
     $objects = self::getObjectsIds($db, 'product_id');
     //echo'<pre>';print_r($objects);echo'</pre>';die;
     //echo'<pre>';print_r($rows);echo'</pre>';//die;
     /*
     foreach($rows as $key=>$row) {
     	if($key < 12 || $key > 12) unset($rows[$key]);
     }
     */
     //echo'<pre>';print_r($rows);echo'</pre>';die;
     //$answer = "rooms not available";
     foreach ($rows as $key => $row) {
         //echo'<pre>';print_r($row);echo'</pre>';//die;
         $id = (int) $row->id;
         $product_id_local = isset($objects[$row->product_id]) ? $objects[$row->product_id]->product_ean : 0;
         //если ИД локального объекта найден то работаем дальше
         if ($product_id_local > 0) {
             $date_from = date('d-m-Y', $row->dfrom);
             $date_to = date('d-m-Y', $row->dto);
             $order = new stdClass();
             $order->f_name = $row->fname;
             $order->l_name = $row->lname;
             $order->order_add_info = $row->notes;
             /*
             if($row->order_id == 2) {
             	$mystring = 'abc';
             	$findme   = self::ON_BOOKING_FROM_WUBOOK_PRIM_PREFIX;
             	$pos = strpos($order->order_add_info, $findme);
             	if ($pos === false) {
             		$order->order_add_info = self::ON_BOOKING_FROM_WUBOOK_PRIM_PREFIX . $order->order_add_info;
             	}
             }	elseif($row->order_id == 1) {
             	$findme   = self::ON_BOOKING_FROM_LOCAL_PRIM_PREFIX;
             	$pos = strpos($order->order_add_info, $findme);
             	if ($pos === false) {
             		$order->order_add_info = self::ON_BOOKING_FROM_LOCAL_PRIM_PREFIX . $order->order_add_info;
             	}
             }
             */
             if ($row->country == '' || $row->country == '--') {
                 $row->country = 'BY';
             }
             $order->country = self::getCountryIdFromCode2($db, $row->country);
             $order->phone = $row->phone;
             $order->email = $row->email;
             if (self::isObjectFreeOnThisDates($db_local, $product_id_local, $date_from, $date_to)) {
                 $k_zajav = VipLocalApi::addBookingOnLocalServer($db_local, $product_id_local, $date_from, $date_to, $order);
                 if ($k_zajav > 0) {
                     self::setKZajav($db, $k_zajav, $row->id);
                 }
             } else {
                 MainApi::saveWuBookAnswer($db, $id, self::LOCAL_SERVER_ROOM_NOT_AVAILABLE);
             }
         } else {
             MainApi::saveWuBookAnswer($db, $id, self::OBJECT_NOT_FOUND_IN_SITE);
         }
     }
     echo 'synchronizeToLocalBase finished';
     return true;
 }