[ADD] state_id on checkin partner

This commit is contained in:
Dario Lodeiros
2021-07-11 09:43:59 +02:00
parent 6d2ae3744d
commit 678b2f404d
6 changed files with 57 additions and 14 deletions

View File

@@ -1,4 +1,4 @@
# Copyright 2017 Alexandre Díaz
# Copyright 2021 Dario Lodeiros
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import _, api, fields, models
from odoo.exceptions import ValidationError

View File

@@ -125,13 +125,25 @@ class PmsCheckinPartner(models.Model):
selection=[("male", "Male"), ("female", "Female"), ("other", "Other")],
)
nationality_id = fields.Many2one(
string="Nationality ID",
string="Nationality",
help="host nationality",
readonly=False,
store=True,
compute="_compute_nationality",
compute="_compute_nationality_id",
comodel_name="res.country",
)
# TODO: Use new partner contact "other or "private" with
# personal contact address complete??
# to avoid user country_id on companies contacts.
# View to res.partner state_id inherit
state_id = fields.Many2one(
string="State",
help="host state",
readonly=False,
store=True,
compute="_compute_state_id",
comodel_name="res.country.state",
)
firstname = fields.Char(
string="First Name",
help="host firstname",
@@ -273,13 +285,21 @@ class PmsCheckinPartner(models.Model):
record.gender = False
@api.depends("partner_id")
def _compute_nationality(self):
def _compute_nationality_id(self):
for record in self:
if not record.nationality_id and record.partner_id.nationality_id:
record.nationality_id = record.partner_id.nationality_id
elif not record.nationality_id:
record.nationality_id = False
@api.depends("partner_id")
def _compute_state_id(self):
for record in self:
if not record.state_id and record.partner_id.state_id:
record.state_id = record.partner_id.state_id
elif not record.state_id:
record.state_id = False
@api.depends("reservation_id", "reservation_id.folio_id")
def _compute_folio_id(self):
for record in self.filtered("reservation_id"):

View File

@@ -88,6 +88,15 @@ class ResPartner(models.Model):
store=True,
compute="_compute_nationality_id",
)
# TODO: Use new partner contact "other or "private" with
# personal contact address complete??
# to avoid user country_id on companies contacts.
# view to checkin partner state_id field
state_id = fields.Many2one(
readonly=False,
store=True,
compute="_compute_state_id",
)
email = fields.Char(
readonly=False,
store=True,
@@ -172,6 +181,25 @@ class ResPartner(models.Model):
elif not record.nationality_id:
record.nationality_id = False
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.state_id")
def _compute_state_id(self):
if hasattr(super(), "_compute_state_id"):
super()._compute_field()
for record in self:
if not record.state_id and record.pms_checkin_partner_ids:
state_id = list(
filter(
None,
set(record.pms_checkin_partner_ids.mapped("state_id")),
)
)
if len(state_id) == 1:
record.state_id = state_id[0]
else:
record.state_id = False
elif not record.state_id:
record.state_id = False
@api.depends(
"pms_checkin_partner_ids",
"pms_checkin_partner_ids.email",

View File

@@ -53,6 +53,7 @@
<field name="document_number" />
<field name="document_expedition_date" />
<field name="nationality_id" />
<field name="state_id" />
<field name="email" />
<field name="mobile" />
<field name="document_id" invisible="1" />
@@ -111,6 +112,7 @@
<field name="document_number" />
<field name="document_expedition_date" />
<field name="nationality_id" />
<field name="state_id" />
<field name="mobile" />
<field name="email" />
<field name="arrival" />
@@ -156,6 +158,7 @@
<field name="document_number" />
<field name="document_expedition_date" />
<field name="nationality_id" />
<field name="state_id" />
<field name="mobile" />
<field name="email" />
<field name="arrival" invisible="1" />
@@ -198,6 +201,7 @@
<field name="document_number" />
<field name="document_expedition_date" />
<field name="nationality_id" />
<field name="state_id" />
<field name="mobile" />
<field name="email" />
<field name="arrival" />
@@ -236,6 +240,7 @@
<field name="document_number" />
<field name="document_expedition_date" />
<field name="nationality_id" />
<field name="state_id" />
<field name="email" />
<field name="mobile" />
<field name="arrival" />

View File

@@ -1,5 +0,0 @@
from odoo import models
class PmsCheckinPartner(models.Model):
_inherit = "pms.checkin.partner"

View File

@@ -1,5 +0,0 @@
from odoo import models
class ResPartner(models.Model):
_inherit = "res.partner"