/** * удаление информации по бронированию с сайта, вубука и базы Визит-а */ 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 chekBookingBeforeSave(&$order, &$cart) { $db_local = JDatabase::getInstance(VipLocalApi::getDbConnectOptions()); $db = JFactory::getDBO(); $user = JFactory::getUser(); $adv_user = JSFactory::getUser(); $adv_user = JSFactory::getTable('usershop', 'jshop'); $adv_user->load($user->id); $order->country = $adv_user->country; $order->f_name = $adv_user->f_name; $order->l_name = $adv_user->l_name; $order->email = $adv_user->email; $order->phone = $adv_user->phone; // echo'<pre>';print_r($user);echo'</pre>';//die; // echo'<pre>';print_r($adv_user);echo'</pre>';//die; // echo'<pre>';print_r($order);echo'</pre>';die; $product_id_local = $cart->products[0]['ean']; $product_id = $cart->products[0]['product_id']; $category_id = $cart->products[0]['category_id']; $booking_date_info = $cart->products[0]['free_attributes_value']; //$date_from = '31-10-2015'; $date_from = str_replace('/', '-', $booking_date_info[0]->value); $date_to = str_replace('/', '-', $booking_date_info[1]->value); //проверяем только локальный сервер, так как на WuBook-е установлена нотификация каждого нового бронирования. $object_is_free_on_local = $this->chekBookingOnLocal($db_local, $product_id_local, $date_from, $date_to); //$object_is_free_on_local = true; //повторно проверяем по базе сайта, чтобы никто не забронил номер пока пользователь "копается" $object_is_free_on_site = $this->chekBookingOnSite($db, $product_id, $date_from, $date_to); if ($object_is_free_on_local == true && $object_is_free_on_site == true) { //заменяем разделитеть даты $date_from = str_replace('/', '-', $date_from); $date_to = str_replace('/', '-', $date_to); // echo'<pre>';print_r($product_id_local);echo'</pre>';//die; // echo'<pre>';print_r($date_from);echo'</pre>';//die; // echo'<pre>';print_r($date_to);echo'</pre>';//die; // echo'<pre>';print_r($order);echo'</pre>';die; // echo'<pre>';print_r($db_local);echo'</pre>';die; $k_zajav = VipLocalApi::addBookingOnLocalServer($db_local, $product_id_local, $date_from, $date_to, $order, VipLocalApi::ON_BOOKING_FROM_SITE_PRIM_PREFIX); //echo'<pre>';var_dump($k_zajav);echo'</pre>';die; $session = JFactory::getSession(); $session->set("k_zajav", $k_zajav); } else { $cart->clear(); $mainframe = JFactory::getApplication(); JError::raiseNotice(100, _JSHOP_OBJECT_IS_ALREADY_BOOKED); $contextfilter = "jshoping.list.front.product.cat." . $category_id; $date_from_ = $mainframe->getUserStateFromRequest($contextfilter . 'dfrom', 'dfrom', date('d/m/Y')); $date_to_ = $mainframe->getUserStateFromRequest($contextfilter . 'dto', 'dto', date('d/m/Y', time() + 60 * 60 * 24)); if ($date_from_ == '') { $date_from_ = date('d/m/Y'); } if ($date_to_ == '') { $date_to_ = date('d/m/Y', time() + 60 * 60 * 24); } $mainframe->redirect(SEFLink('index.php?option=com_jshopping&view=category&layout=category&task=view&category_id=' . $category_id . '&dfrom=' . $date_from_ . '&dto=' . $date_to_, 1, 1)); } }
} error_reporting(-1); // включить все виды ошибок, включая E_STRICT ini_set('display_errors', 'On'); // вывести на экран помимо логов require_once JPATH_BASE . '/components/com_jshopping/VipLocalApi.php'; require_once JPATH_BASE . '/components/com_jshopping/WuBookApi.php'; $db = JFactory::getDbo(); $task = $app->input->getCmd('task', ''); if ($task == '') { $get = arguments_($argv); if (isset($get['task'])) { $task = $get['task']; } } $db_local = JDatabase::getInstance(VipLocalApi::getDbConnectOptions()); switch ($task) { case 'bookings-local-to-site': //выполняется планировщиком $k_zajav = VipLocalApi::synchronizeToSite($db, $db_local); //синхронизация данных с локального сервера в базу сайта //echo'$k_zajav<pre>';print_r($k_zajav);echo'</pre>';//die; //echo'for_update<pre>';print_r($k_zajav);echo'</pre>';//die; if (count($k_zajav)) { WuBookApi::synchronizeFromSiteToWuBook($db, $k_zajav); } //синхронизация данных с базы сайта на WuBook //если на локальном сервере что-то удалили из бронирования, то удаляем эту инфу с сайта и отменяем эти бронирования. $k_zajav = VipLocalApi::checkDeletedReservations($db, $db_local); //echo'for_delete<pre>';print_r($k_zajav);echo'</pre>';die; if (count($k_zajav) > 0) {