/** * удаление информации по бронированию с сайта, вубука и базы Визит-а */ 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;
/** * удаляем отмененные на вубуке брони на визите и на сайте * @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); //Закрытие файла }
/** * синхронизация бронирований с сайта на локальный сервер */ 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; }