mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[IMP] Roommatik
This commit is contained in:
@@ -56,6 +56,7 @@
|
||||
Asimismo hemos solicitado que confirme esta autorización para ofrecerle nuestros servicios y poder fidelizarle como cliente.</p>
|
||||
</div>
|
||||
</div>
|
||||
<p style="page-break-after:always;"/>
|
||||
<div class="final">
|
||||
</div>
|
||||
</template>
|
||||
|
||||
23
hotel_roommatik/data/res_users_data.xml
Normal file
23
hotel_roommatik/data/res_users_data.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
|
||||
<record id="partner_roommatik" model="res.partner">
|
||||
<field name="name">Roommatik</field>
|
||||
<field name="active" eval="False"/>
|
||||
<field name="image" type="base64" file="hotel_roommatik/static/img/avatar.png"/>
|
||||
</record>
|
||||
|
||||
<record id="user_roommatik" model="res.users">
|
||||
<field name="login">roommatik@roommatik.com</field>
|
||||
<field name="password"></field>
|
||||
<field name="partner_id" ref="hotel_roommatik.roommatik_partner"/>
|
||||
<field name="company_id" ref="main_company"/>
|
||||
<field name="company_ids" eval="[(4, ref('main_company'))]"/>
|
||||
<field name="groups_id" eval="[(4, ref('hotel.group_hotel_user'))]"/>
|
||||
<field name="signature"><![CDATA[<span>-- <br/>
|
||||
Roommatik</span>]]></field>
|
||||
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
@@ -3,6 +3,9 @@
|
||||
|
||||
import json
|
||||
from odoo import api, models
|
||||
from odoo.addons.hotel_roommatik.models.roommatik import (
|
||||
DEFAULT_ROOMMATIK_DATE_FORMAT,
|
||||
DEFAULT_ROOMMATIK_DATETIME_FORMAT
|
||||
from datetime import datetime
|
||||
import logging
|
||||
|
||||
@@ -13,9 +16,20 @@ class HotelFolio(models.Model):
|
||||
@api.model
|
||||
def rm_checkin_partner(self, stay):
|
||||
_logger = logging.getLogger(__name__)
|
||||
# CHECK-IN
|
||||
reservation_rm = self.env['hotel.reservation'].browse(stay['ReservationCode'])
|
||||
# Need checkin?
|
||||
if not stay.get('ReservationCode'):
|
||||
reservation_obj = self.env['hotel.reservation']
|
||||
vals = {
|
||||
checkin: datetime.strptime(stay["Arrival"],
|
||||
DEFAULT_ROOMMATIK_DATE_FORMAT).date(),
|
||||
checkout: datetime.strptime(stay["Departure"],
|
||||
DEFAULT_ROOMMATIK_DATE_FORMAT).date(),
|
||||
adults: stay['Adults'],
|
||||
room_type_id: stay['RoomType'],
|
||||
partner_id: stay["Customers"][0]["Id"]
|
||||
}
|
||||
reservation_rm = reservation_obj.create(vals)
|
||||
else:
|
||||
reservation_rm = self.env['hotel.reservation'].browse(stay['ReservationCode'])
|
||||
total_chekins = reservation_rm.checkin_partner_pending_count
|
||||
if total_chekins > 0 and len(stay["Customers"]) <= total_chekins:
|
||||
_logger.info('ROOMMATIK checkin %s customer in %s Reservation.',
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from odoo import api, models, fields
|
||||
from odoo.tools import (
|
||||
DEFAULT_SERVER_DATE_FORMAT,
|
||||
DEFAULT_SERVER_DATETIME_FORMAT)
|
||||
from odoo.addons.hotel_roommatik.models.roommatik import (
|
||||
DEFAULT_ROOMMATIK_DATE_FORMAT,
|
||||
DEFAULT_ROOMMATIK_DATETIME_FORMAT
|
||||
from datetime import datetime, timedelta
|
||||
from dateutil import tz
|
||||
import json
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
|
||||
from odoo import api, models, fields
|
||||
from datetime import datetime, timedelta
|
||||
from odoo.tools import (
|
||||
DEFAULT_SERVER_DATE_FORMAT,
|
||||
DEFAULT_SERVER_DATETIME_FORMAT)
|
||||
from odoo.addons.hotel_roommatik.models.roommatik import (
|
||||
DEFAULT_ROOMMATIK_DATE_FORMAT,
|
||||
DEFAULT_ROOMMATIK_DATE_FORMAT)
|
||||
import logging
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -22,7 +22,7 @@ class HotelRoomType(models.Model):
|
||||
dfrom = fields.Date.context_today(self.with_context(
|
||||
tz=tz_hotel))
|
||||
dto = (fields.Date.from_string(dfrom) + timedelta(days=1)).strftime(
|
||||
DEFAULT_SERVER_DATE_FORMAT)
|
||||
DEFAULT_ROOMMATIK_DATE_FORMAT)
|
||||
room_type_rates = []
|
||||
for room_type in room_types:
|
||||
free_rooms = self.check_availability_room_type(dfrom, dto,
|
||||
@@ -53,9 +53,9 @@ class HotelRoomType(models.Model):
|
||||
start_date = fields.Datetime.from_string(start_date)
|
||||
end_date = start_date + timedelta(days=number_intervals)
|
||||
dfrom = start_date.strftime(
|
||||
DEFAULT_SERVER_DATE_FORMAT)
|
||||
DEFAULT_ROOMMATIK_DATE_FORMAT)
|
||||
dto = end_date.strftime(
|
||||
DEFAULT_SERVER_DATE_FORMAT)
|
||||
DEFAULT_ROOMMATIK_DATE_FORMAT)
|
||||
free_rooms = self.check_availability_room_type(dfrom, dto,
|
||||
room_type.id)
|
||||
if free_rooms:
|
||||
|
||||
@@ -10,6 +10,11 @@ from odoo.tools import (
|
||||
import logging
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
DEFAULT_ROOMMATIK_DATE_FORMAT = "%Y-%m-%d"
|
||||
DEFAULT_ROOMMATIK_TIME_FORMAT = "%H:%M:%S"
|
||||
DEFAULT_ROOMMATIK_DATETIME_FORMAT = "%s %s" % (
|
||||
DEFAULT_ROOMMATIK_DATE_FORMAT,
|
||||
DEFAULT_ROOMMATIK_TIME_FORMAT)
|
||||
|
||||
class RoomMatik(models.Model):
|
||||
_name = 'roommatik.api'
|
||||
@@ -21,7 +26,7 @@ class RoomMatik(models.Model):
|
||||
'res.config.settings', 'tz_hotel')
|
||||
self_tz = self.with_context(tz=tz_hotel)
|
||||
mynow = fields.Datetime.context_timestamp(self_tz, datetime.now()).\
|
||||
strftime(DEFAULT_SERVER_DATETIME_FORMAT)
|
||||
strftime(DEFAULT_ROOMMATIK_DATETIME_FORMAT)
|
||||
json_response = {
|
||||
'dateTime': mynow
|
||||
}
|
||||
@@ -33,7 +38,7 @@ class RoomMatik(models.Model):
|
||||
# RoomMatik Gets a reservation ready for check-in
|
||||
# through the provided code. (MANDATORY)
|
||||
apidata = self.env['hotel.reservation']
|
||||
return apidata.rm_get_reservation(reservation_code)
|
||||
return apidata.sudo().rm_get_reservation(reservation_code)
|
||||
|
||||
@api.model
|
||||
def rm_add_customer(self, customer):
|
||||
|
||||
BIN
hotel_roommatik/static/img/avatar.png
Normal file
BIN
hotel_roommatik/static/img/avatar.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 44 KiB |
Reference in New Issue
Block a user