mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[IMP] Channel Type Sale
This commit is contained in:
@@ -6435,8 +6435,8 @@ msgid "Is Staff"
|
||||
msgstr "Es Staff"
|
||||
|
||||
#. module: hotel
|
||||
#: model:ir.model.fields,field_description:hotel.field_res_partner_is_tour_operator
|
||||
#: model:ir.model.fields,field_description:hotel.field_res_users_is_tour_operator
|
||||
#: model:ir.model.fields,field_description:hotel.field_res_partner_is_agency
|
||||
#: model:ir.model.fields,field_description:hotel.field_res_users_is_agency
|
||||
msgid "Is Tour Operator"
|
||||
msgstr "Es Operadora Tuística"
|
||||
|
||||
@@ -8670,8 +8670,8 @@ msgid "Total debt"
|
||||
msgstr "Total debt"
|
||||
|
||||
#. module: hotel
|
||||
#: model:ir.model.fields,field_description:hotel.field_hotel_folio_tour_operator_id
|
||||
#: model:ir.model.fields,field_description:hotel.field_hotel_reservation_tour_operator_id
|
||||
#: model:ir.model.fields,field_description:hotel.field_hotel_folio_agency
|
||||
#: model:ir.model.fields,field_description:hotel.field_hotel_reservation_agency
|
||||
#: model:ir.ui.view,arch_db:hotel.hotel_folio_view_search
|
||||
msgid "Tour Operator"
|
||||
msgstr "Operadora Turística"
|
||||
|
||||
@@ -95,11 +95,11 @@ class PmsFolio(models.Model):
|
||||
store=True,
|
||||
readonly=False,
|
||||
)
|
||||
tour_operator_id = fields.Many2one(
|
||||
agency_id = fields.Many2one(
|
||||
"res.partner",
|
||||
"Tour Operator",
|
||||
"Agency",
|
||||
ondelete="restrict",
|
||||
domain=[("is_tour_operator", "=", True)],
|
||||
domain=[("is_agency", "=", True)],
|
||||
)
|
||||
payment_ids = fields.One2many("account.payment", "folio_id", readonly=True)
|
||||
return_ids = fields.One2many("payment.return", "folio_id", readonly=True)
|
||||
@@ -155,17 +155,11 @@ class PmsFolio(models.Model):
|
||||
)
|
||||
channel_type = fields.Selection(
|
||||
[
|
||||
("door", "Door"),
|
||||
("mail", "Mail"),
|
||||
("phone", "Phone"),
|
||||
("call", "Call Center"),
|
||||
("web", "Web"),
|
||||
("agency", "Agencia"),
|
||||
("operator", "Tour operador"),
|
||||
("virtualdoor", "Virtual Door"),
|
||||
("direct", "Direct"),
|
||||
("agency", "Agency"),
|
||||
],
|
||||
"Sales Channel",
|
||||
default="door",
|
||||
default="direct",
|
||||
)
|
||||
date_order = fields.Datetime(
|
||||
string="Order Date",
|
||||
|
||||
@@ -129,7 +129,7 @@ class PmsReservation(models.Model):
|
||||
store=True,
|
||||
readonly=False,
|
||||
)
|
||||
tour_operator_id = fields.Many2one(related="folio_id.tour_operator_id")
|
||||
agency_id = fields.Many2one(related="folio_id.agency_id")
|
||||
partner_invoice_id = fields.Many2one(
|
||||
"res.partner",
|
||||
string="Invoice Address",
|
||||
@@ -294,17 +294,11 @@ class PmsReservation(models.Model):
|
||||
nights = fields.Integer("Nights", compute="_computed_nights", store=True)
|
||||
channel_type = fields.Selection(
|
||||
[
|
||||
("door", "Door"),
|
||||
("mail", "Mail"),
|
||||
("phone", "Phone"),
|
||||
("call", "Call Center"),
|
||||
("web", "Web"),
|
||||
("agency", "Agencia"),
|
||||
("operator", "Tour operador"),
|
||||
("virtualdoor", "Virtual Door"),
|
||||
("direct", "Direct"),
|
||||
("agency", "Agency"),
|
||||
],
|
||||
string="Sales Channel",
|
||||
default="door",
|
||||
default="direct",
|
||||
)
|
||||
# TODO: Review functionality of last_update_res
|
||||
last_updated_res = fields.Datetime(
|
||||
@@ -938,8 +932,6 @@ class PmsReservation(models.Model):
|
||||
user = self.env["res.users"].browse(self.env.uid)
|
||||
for record in self:
|
||||
vals = {}
|
||||
if user.has_group("pms.group_pms_call"):
|
||||
vals.update({"channel_type": "call"})
|
||||
if record.checkin_partner_ids:
|
||||
vals.update({"state": "booking"})
|
||||
else:
|
||||
|
||||
@@ -20,7 +20,7 @@ class ResPartner(models.Model):
|
||||
)
|
||||
folios_count = fields.Integer("Folios", compute="_compute_folios_count")
|
||||
unconfirmed = fields.Boolean("Unconfirmed", default=True)
|
||||
is_tour_operator = fields.Boolean("Is Tour Operator")
|
||||
is_agency = fields.Boolean("Is Agency")
|
||||
|
||||
# Compute and Search methods
|
||||
def _compute_reservations_count(self):
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
attrs="{'required':[('reservation_type','=','normal')]}"
|
||||
/>
|
||||
<field
|
||||
name="tour_operator_id"
|
||||
name="agency_id"
|
||||
options="{'no_create': True,'no_open': True}"
|
||||
/>
|
||||
</group>
|
||||
@@ -437,7 +437,7 @@
|
||||
<search string="Tables Detail">
|
||||
<field name="partner_id" />
|
||||
<field name="partner_invoice_id" />
|
||||
<field name="tour_operator_id" />
|
||||
<field name="agency_id" />
|
||||
<filter
|
||||
name="to_invoice"
|
||||
string="To invoice"
|
||||
@@ -463,8 +463,8 @@
|
||||
<filter
|
||||
string="Tour Operator"
|
||||
domain="[]"
|
||||
name="group_tour_operator"
|
||||
context="{'group_by':'tour_operator_id'}"
|
||||
name="group_agency"
|
||||
context="{'group_by':'agency_id'}"
|
||||
/>
|
||||
</group>
|
||||
</search>
|
||||
|
||||
@@ -389,7 +389,7 @@
|
||||
attrs="{'invisible': [('reservation_type','in',('out'))]}"
|
||||
/>
|
||||
<field
|
||||
name="tour_operator_id"
|
||||
name="agency_id"
|
||||
options="{'no_create': True,'no_open': True}"
|
||||
/>
|
||||
<field
|
||||
@@ -946,7 +946,7 @@
|
||||
<search string="Reservation Detail">
|
||||
<field name="partner_id" />
|
||||
<field name="folio_id" />
|
||||
<field name="tour_operator_id" />
|
||||
<field name="agency_id" />
|
||||
<filter
|
||||
string="My Reservations"
|
||||
name="my_reservations"
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
<xpath expr="//field[@name='user_id']" position="after">
|
||||
<field name="company_type" invisible="1" />
|
||||
<field
|
||||
name="is_tour_operator"
|
||||
name="is_agency"
|
||||
attrs="{'invisible': [('company_type','!=','company')]}"
|
||||
/>
|
||||
</xpath>
|
||||
|
||||
@@ -51,8 +51,8 @@ class FolioAdvancePaymentInv(models.TransientModel):
|
||||
@api.model
|
||||
def _get_default_partner_invoice(self):
|
||||
folios = self._get_default_folio()
|
||||
if folios[0].tour_operator_id:
|
||||
return folios[0].tour_operator_id
|
||||
if folios[0].agency:
|
||||
return folios[0].agency
|
||||
return folios[0].partner_invoice_id
|
||||
|
||||
@api.model
|
||||
|
||||
@@ -16,11 +16,6 @@ class FolioWizard(models.TransientModel):
|
||||
_name = "pms.folio.wizard"
|
||||
_description = "Wizard for reservation groups"
|
||||
|
||||
@api.model
|
||||
def _get_default_center_user(self):
|
||||
user = self.env["res.users"].browse(self.env.uid)
|
||||
return user.has_group("pms.group_pms_call")
|
||||
|
||||
@api.model
|
||||
def _get_default_checkin(self):
|
||||
folio = False
|
||||
@@ -43,12 +38,6 @@ class FolioWizard(models.TransientModel):
|
||||
return folio.reservation_ids[0].checkout
|
||||
return fields.Date.today()
|
||||
|
||||
@api.model
|
||||
def _get_default_channel_type(self):
|
||||
user = self.env["res.users"].browse(self.env.uid)
|
||||
if user.has_group("pms.group_pms_call"):
|
||||
return "phone"
|
||||
|
||||
@api.model
|
||||
def _get_default_pricelist(self):
|
||||
return self.env.user.pms_property_id.default_pricelist_id.id
|
||||
@@ -82,9 +71,8 @@ class FolioWizard(models.TransientModel):
|
||||
"res.company", "Company", default=lambda self: self.env.company
|
||||
)
|
||||
channel_type = fields.Selection(
|
||||
[("door", "Door"), ("mail", "Mail"), ("phone", "Phone"), ("call", "Call")],
|
||||
[("direct", "Direct"), ("ota", "Ota"), ("agency", "Agency")],
|
||||
string="Sales Channel",
|
||||
default=_get_default_channel_type,
|
||||
)
|
||||
room_type_wizard_ids = fields.One2many(
|
||||
"pms.room.type.wizard", "folio_wizard_id", string="Room Types"
|
||||
@@ -402,7 +390,7 @@ class PmsRoomTypeWizards(models.TransientModel):
|
||||
).min_stay
|
||||
if date_min_days > min_stay:
|
||||
min_stay = date_min_days
|
||||
if user.has_group("pms.group_pms_call"):
|
||||
if not user.has_group("pms.group_pms_manager"):
|
||||
max_avail = real_max
|
||||
restriction = False
|
||||
if avail_restrictions:
|
||||
@@ -507,18 +495,11 @@ class ReservationWizard(models.TransientModel):
|
||||
price = fields.Float(string="Total")
|
||||
partner_id = fields.Many2one(related="folio_wizard_id.partner_id")
|
||||
discount = fields.Float("discount")
|
||||
to_assign = fields.Boolean(compute="_compute_assign")
|
||||
product_ids = fields.Many2many("product.product", string="Products")
|
||||
board_service_room_id = fields.Many2one(
|
||||
"pms.board.service.room.type", string="Board Service"
|
||||
)
|
||||
|
||||
def _compute_assign(self):
|
||||
for rec in self:
|
||||
user = self.env["res.users"].browse(self.env.uid)
|
||||
if user.has_group("pms.group_pms_call"):
|
||||
rec.to_assign = True
|
||||
|
||||
@api.onchange("room_id")
|
||||
def onchange_room_id(self):
|
||||
for line in self:
|
||||
|
||||
@@ -126,7 +126,6 @@
|
||||
<field name="discount" />
|
||||
<field name="price" />
|
||||
<field name="partner_id" invisible="1" />
|
||||
<field name="to_assign" invisible="1" />
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
|
||||
Reference in New Issue
Block a user