mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
80 lines
2.7 KiB
Python
80 lines
2.7 KiB
Python
from odoo import _, api, fields, models
|
|
from odoo.exceptions import ValidationError
|
|
|
|
|
|
class SeveralPartners(models.TransientModel):
|
|
_name = "pms.several.partners.wizard"
|
|
_description = "Partner Operations"
|
|
|
|
reservation_id = fields.Many2one(
|
|
string="Reservation",
|
|
comodel_name="pms.reservation",
|
|
)
|
|
|
|
folio_id = fields.Many2one(
|
|
string="Folio",
|
|
comodel_name="pms.folio",
|
|
)
|
|
|
|
checkin_partner_id = fields.Many2one(
|
|
string="Checkin Partner", comodel_name="pms.checkin.partner"
|
|
)
|
|
possible_existing_customer_ids = fields.Many2many(
|
|
string="Customers", comodel_name="res.partner", store=True, readonly=False
|
|
)
|
|
|
|
@api.model
|
|
def default_get(self, fields):
|
|
res = super(SeveralPartners, self).default_get(fields)
|
|
possibles_customers_ids = self.env["res.partner"].browse(
|
|
self._context.get("possible_existing_customer_ids")
|
|
)
|
|
res.update({"possible_existing_customer_ids": possibles_customers_ids})
|
|
reservation = self.env["pms.reservation"].browse(
|
|
self._context.get("reservation_id")
|
|
)
|
|
if reservation:
|
|
res.update(
|
|
{
|
|
"reservation_id": reservation.id,
|
|
}
|
|
)
|
|
folio = self.env["pms.folio"].browse(self._context.get("folio_id"))
|
|
if folio:
|
|
res.update(
|
|
{
|
|
"folio_id": folio.id,
|
|
}
|
|
)
|
|
checkin_partner = self.env["pms.checkin.partner"].browse(
|
|
self._context.get("checkin_partner_id")
|
|
)
|
|
if checkin_partner:
|
|
res.update(
|
|
{
|
|
"checkin_partner_id": checkin_partner.id,
|
|
}
|
|
)
|
|
return res
|
|
|
|
def add_partner(self):
|
|
for record in self:
|
|
if len(record.possible_existing_customer_ids) == 0:
|
|
raise ValidationError(
|
|
_(
|
|
"You must select a client to be able to add it to the reservation "
|
|
)
|
|
)
|
|
if len(record.possible_existing_customer_ids) > 1:
|
|
raise ValidationError(
|
|
_("Only one customer can be added to the reservation")
|
|
)
|
|
if record.reservation_id:
|
|
record.reservation_id.partner_id = record.possible_existing_customer_ids
|
|
elif record.folio_id:
|
|
record.folio_id.partner_id = record.possible_existing_customer_ids
|
|
elif record.checkin_partner_id:
|
|
record.checkin_partner_id.partner_id = (
|
|
record.possible_existing_customer_ids
|
|
)
|