[IMP]created wizard to add partner_id in reservation, folio and checkin_partner

This commit is contained in:
braisab
2021-09-10 16:34:01 +02:00
parent 611f34da47
commit 70de629277
5 changed files with 107 additions and 0 deletions

View File

@@ -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",

View File

@@ -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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
61 user_access_pms_folio_portal user_access_pms_folio_portal model_pms_folio base.group_portal 1 0 0 0
62 user_access_pms_reservation_portal user_access_pms_reservation_portal model_pms_reservation base.group_portal 1 0 0 0
63 user_access_pms_automated_mails user_access_pms_automated_mails model_pms_automated_mails pms.group_pms_user 1 1 1 1
64 access_pms_several_partners_wizard access_pms_several_partners_wizard model_pms_several_partners_wizard base.group_user 1 1 1 1

View File

@@ -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

View 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

View 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>