diff --git a/hotel_channel_connector_wubook/components/backend_adapter.py b/hotel_channel_connector_wubook/components/backend_adapter.py
index 1bd318e3d..ea2235b0d 100644
--- a/hotel_channel_connector_wubook/components/backend_adapter.py
+++ b/hotel_channel_connector_wubook/components/backend_adapter.py
@@ -287,13 +287,26 @@ class WuBookAdapter(AbstractComponent):
})
return results
+ def fetch_bookings(self, dfrom, dto):
+ rcode, results = self._server.fetch_bookings(
+ self._session_info[0],
+ self._session_info[1],
+ fields.Date.from_string(dfrom).strftime(DEFAULT_WUBOOK_DATE_FORMAT),
+ fields.Date.from_string(dto).strftime(DEFAULT_WUBOOK_DATE_FORMAT),
+ 0) # When oncreated is 0, the filter is applied against the arrival date
+ if rcode != 0:
+ raise ChannelConnectorError(_("Can't process reservations from wubook"), {
+ 'message': results,
+ })
+ return results
+
def fetch_booking(self, channel_reservation_id):
rcode, results = self._server.fetch_booking(
self._session_info[0],
self._session_info[1],
channel_reservation_id)
if rcode != 0:
- raise ChannelConnectorError(_("Can't process reservation from wubook"), {
+ raise ChannelConnectorError(_("Can't process reservations from wubook"), {
'message': results,
})
return results
diff --git a/hotel_channel_connector_wubook/models/hotel_reservation/importer.py b/hotel_channel_connector_wubook/models/hotel_reservation/importer.py
index 7c059a202..b5237880c 100644
--- a/hotel_channel_connector_wubook/models/hotel_reservation/importer.py
+++ b/hotel_channel_connector_wubook/models/hotel_reservation/importer.py
@@ -70,6 +70,30 @@ class HotelReservationImporter(Component):
checkout_utc_dt.strftime(DEFAULT_SERVER_DATE_FORMAT))
return count
+ def fetch_bookings(self, dfrom, dto):
+ count = 0
+ try:
+ results = self.backend_adapter.fetch_bookings(dfrom, dto)
+ except ChannelConnectorError as err:
+ self.create_issue(
+ section='reservation',
+ internal_message=str(err),
+ channel_message=err.data['message'])
+ else:
+ if any(results):
+ processed_rids, errors, checkin_utc_dt, checkout_utc_dt = \
+ self._generate_reservations(results)
+ if any(processed_rids):
+ uniq_rids = list(set(processed_rids))
+ count = len(uniq_rids)
+ # Update Odoo availability (don't wait for wubook)
+ # FIXME: This cause abuse service in first import!!
+ if checkin_utc_dt and checkout_utc_dt:
+ self.backend_adapter.fetch_rooms_values(
+ checkin_utc_dt.strftime(DEFAULT_SERVER_DATE_FORMAT),
+ checkout_utc_dt.strftime(DEFAULT_SERVER_DATE_FORMAT))
+ return count
+
@api.model
def _generate_booking_vals(self, broom, crcode, rcode, room_type_bind,
split_booking, dates_checkin, dates_checkout, real_checkin, real_checkout, book):