mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[IMP]created wizard to add partner_id in reservation, folio and checkin_partner
This commit is contained in:
@@ -47,6 +47,7 @@
|
||||
"wizards/folio_make_invoice_advance_views.xml",
|
||||
"wizards/pms_booking_engine_views.xml",
|
||||
"wizards/wizard_folio_changes.xml",
|
||||
"wizards/wizard_several_partners.xml",
|
||||
"views/pms_amenity_views.xml",
|
||||
"views/pms_amenity_type_views.xml",
|
||||
"views/pms_board_service_views.xml",
|
||||
|
||||
@@ -61,3 +61,4 @@ user_access_wizard_folio_changes,user_access_wizard_folio_changes,model_wizard_f
|
||||
user_access_pms_folio_portal,user_access_pms_folio_portal,model_pms_folio,base.group_portal,1,0,0,0
|
||||
user_access_pms_reservation_portal,user_access_pms_reservation_portal,model_pms_reservation,base.group_portal,1,0,0,0
|
||||
user_access_pms_automated_mails,user_access_pms_automated_mails,model_pms_automated_mails,pms.group_pms_user,1,1,1,1
|
||||
access_pms_several_partners_wizard,access_pms_several_partners_wizard,model_pms_several_partners_wizard,base.group_user,1,1,1,1
|
||||
|
||||
|
@@ -5,3 +5,4 @@ from . import pms_booking_engine
|
||||
from . import folio_make_invoice_advance
|
||||
from . import wizard_payment_folio
|
||||
from . import wizard_folio_changes
|
||||
from . import wizard_several_partners
|
||||
|
||||
72
pms/wizards/wizard_several_partners.py
Normal file
72
pms/wizards/wizard_several_partners.py
Normal file
@@ -0,0 +1,72 @@
|
||||
from odoo import api, fields, models, _
|
||||
from odoo.exceptions import ValidationError
|
||||
|
||||
|
||||
class SeveralPartners(models.TransientModel):
|
||||
_name = "pms.several.partners.wizard"
|
||||
|
||||
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
|
||||
32
pms/wizards/wizard_several_partners.xml
Normal file
32
pms/wizards/wizard_several_partners.xml
Normal file
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
<record id="several_partners_wizard" model="ir.ui.view">
|
||||
<field name="name">Several Partners</field>
|
||||
<field name="model">pms.several.partners.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Possibles customers" colspan="4">
|
||||
<h6> Choose a customer if you want to add it to the reservation</h6>
|
||||
<group>
|
||||
<field name="possible_existing_customer_ids"/>
|
||||
</group>
|
||||
<footer>
|
||||
<button
|
||||
type="object"
|
||||
class="btn-primary"
|
||||
name="add_partner"
|
||||
string="Add Customer"
|
||||
/>
|
||||
<button string="Cancel" class="oe_link" special="cancel" />
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_open_several_partners_wizard" model="ir.actions.act_window">
|
||||
<field name="name">Open Several Partners</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">pms.several.partners.wizard</field>
|
||||
<field name="view_id" ref="several_partners_wizard"/>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user