Ejemplo n.º 1
0
 public static function addNewBookingsOnSite_(&$db, $rows = array(), $rooms = array(), $objectsOnSite = array(), $presentedBookings = array(), $token, &$reservation_code, $prim_prefix = '')
 {
     $fields = array('`order_id`', '`product_id`', '`dfrom`', '`dto`', '`reservation_code`', '`lname`', '`fname`', '`email`', '`city`', '`phone`', '`street`', '`country`', '`notes`', '`total`');
     $values = array();
     //$fp = fopen(JPATH_SITE . "/reservation_code.log", "a"); // Открываем файл в режиме записи
     //$mytext = "\r\n". "\r\n" . date('d-m-Y H:i:s')."\r\n"; // Исходная строка
     echo '<pre>';
     print_r($presentedBookings);
     echo '</pre>';
     //die;
     echo '<pre>';
     print_r($rows);
     echo '</pre>';
     //die;
     $modified_reservations = array();
     foreach ($rows as $row) {
         //echo'<pre>';print_r($row);echo'</pre>';//die;
         if (isset($row['booked_rooms'][0]) && !isset($presentedBookings[$row['reservation_code']])) {
             //если брони с таким кодом нет в базе
             $room_id = $row['booked_rooms'][0]['room_id'];
             if (isset($rooms[$room_id])) {
                 // если объект с Wubook есть на сайте
                 if (isset($objectsOnSite[$rooms[$room_id]])) {
                     $product_id = $objectsOnSite[$rooms[$room_id]]->product_id;
                 } else {
                     $product_id = 1;
                 }
                 //если нет - то 1 присваиваем
                 $roomdays = $row['booked_rooms'][0]['roomdays'];
                 $date_from = self::DateToUnix($roomdays[0]['day'], 2, '/');
                 $date_to = self::DateToUnix($row['date_departure'], 2, '/');
                 if ($date_to > time()) {
                     //если дата по какое бронь больше текущей даты
                     //echo'<pre>';print_r($date_to);echo'</pre>';die;
                     //проверяем.. есть ли запись по этой брони в базе сайта
                     //$object = self::getPresentedBookingOfObject($db, $product_id, $date_from, $date_to);
                     //echo'<pre>';print_r($object);echo'</pre>';die;
                     if ($row['status'] != 5) {
                         // 5 - это когда заявка отменена
                         if (isset($row['modified_reservations']) && isset($row['modified_reservations'][0])) {
                             //если бронь является модификацией
                             echo '<pre> This is ' . $row['reservation_code'] . ' modification of reservation ' . $row['modified_reservations'][0] . ' </pre>';
                             //die;
                             $values_ = array('`product_id` = ' . $product_id, '`dfrom` = ' . $date_from, '`dto` = ' . $date_to, '`reservation_code` = ' . $row['reservation_code'], '`lname` = ' . $db->quote($row['customer_name']), '`fname` = ' . $db->quote($row['customer_surname']), '`email` = ' . $db->quote($row['customer_mail']), '`city` = ' . $db->quote($row['customer_city']), '`phone` = ' . $db->quote($row['customer_phone']), '`street` = ' . $db->quote($row['customer_address']), '`country` = ' . $db->quote($row['customer_country']), '`notes` = ' . $db->quote($row['customer_notes']), '`total` = ' . $db->quote($row['orig_amount']), '`operation` = ' . self::OPERATION_TO_UPDATE_LOCAL_BASE);
                             $where = array("`id` = " . $presentedBookings[$row['modified_reservations'][0]]->id);
                             //echo'<pre>';print_r($values_);echo'</pre>';//die;
                             //echo'<pre>';print_r($where);echo'</pre>';//die;
                             WuBookApi::UpdateTable($db, '#__jshopping_order_bookings', $values_, $where);
                             $values_ = array();
                             //добавляем в массив измененных броней данный код бронирования
                             $modified_reservations[$row['modified_reservations'][0]] = 1;
                         } else {
                             //если просто новая бронь то добавляем в базу
                             $val = array(self::WUBOOK_ORDER_ID, $product_id, $date_from, $date_to, $row['reservation_code'], $db->quote($row['customer_name']), $db->quote($row['customer_surname']), $db->quote($row['customer_mail']), $db->quote($row['customer_city']), $db->quote($row['customer_phone']), $db->quote($row['customer_address']), $db->quote($row['customer_country']), $db->quote($prim_prefix . $row['customer_notes']), $db->quote($row['orig_amount']));
                             $values[] = "(" . implode(',', $val) . ")";
                             //echo'<pre> Insert '.$row['reservation_code'].' </pre>';//die;
                         }
                     } elseif ($row['status'] == 5) {
                         // сюда уже вряд-ли зайдет логика скрипта
                         //echo'<pre> status = 5 Delete reservation '.$row['reservation_code']. ' </pre>';//die;
                         //if(!is_null($object) && $row['was_modified'] == 1)	{}
                         //$values_ = array('`operation` = '. self::OPERATION_TO_DELETE);
                         //$where = array("`id` = ".$object['id']);
                         //WuBookApi::UpdateTable($db, '#__jshopping_order_bookings', $values_, $where);
                         //$values_ = array();
                     }
                 }
                 //$reservation_code[] = $row['reservation_code'];
                 //$mytext .= $row['reservation_code'] ."\r\n";
                 //$mytext .= "\r\n";
             } else {
                 //self::logToUnknown($room_id, $row['reservation_code']);
             }
         } else {
             //echo'<pre> Reservation '.$row['reservation_code']. ' '.$row['status'].' present </pre>';//die;
             if (isset($modified_reservations[$row['reservation_code']])) {
                 //echo'<pre> Reservation '.$row['reservation_code']. ' was modified </pre>';die;
             } elseif ($row['status'] == 5 && $row['was_modified'] == 0) {
                 //echo'<pre> Reservation '.$row['reservation_code']. ' delete </pre>';die;
                 $values_ = array('`operation` = ' . self::OPERATION_TO_DELETE);
                 $where = array("`reservation_code` = " . $row['reservation_code']);
                 //echo'<pre>';print_r($values_);echo'</pre>';//die;
                 //echo'<pre>';print_r($where);echo'</pre>';die;
                 WuBookApi::UpdateTable($db, '#__jshopping_order_bookings', $values_, $where);
                 $values_ = array();
             }
         }
         $reservation_code[] = $row['reservation_code'];
     }
     //$test = fwrite($fp, $mytext); // Запись в файл
     //fclose($fp); //Закрытие файла
     //echo'<pre>';print_r($values);echo'</pre>';die;
     if (count($values)) {
         self::InsertIntoTable($db, '#__jshopping_order_bookings', $fields, $values);
     }
     die;
     return true;
 }