diff --git a/delivery_carrier_partner_account/__manifest__.py b/delivery_carrier_partner_account/__manifest__.py index 67e78c4..eeb79f8 100644 --- a/delivery_carrier_partner_account/__manifest__.py +++ b/delivery_carrier_partner_account/__manifest__.py @@ -19,7 +19,7 @@ # { "name": "Carrier Accounts by Partner", - "version": "17.0.0.1.0", + "version": "17.0.0.1.1", "summary": "Add one or many carrier accounts per partner", "category": "Delivery", "author": "Bemade Inc.", @@ -31,6 +31,7 @@ ], "data": [ "security/ir.model.access.csv", + "security/record_rules.xml", "data/actions.xml", "views/res_partner_views.xml", "views/delivery_carrier_views.xml", diff --git a/delivery_carrier_partner_account/data/actions.xml b/delivery_carrier_partner_account/data/actions.xml index 08db8a3..94fed62 100644 --- a/delivery_carrier_partner_account/data/actions.xml +++ b/delivery_carrier_partner_account/data/actions.xml @@ -6,6 +6,19 @@ tree,form current [('delivery_carrier_id', '=', context.get("carrier_id"))] - {'default_delivery_carrier_id': active_id} + {'default_delivery_carrier_id': "active_id"} + + Carrier Accounts + delivery.carrier.account + tree,form + current + + + /> \ No newline at end of file diff --git a/delivery_carrier_partner_account/models/delivery_carrier_account.py b/delivery_carrier_partner_account/models/delivery_carrier_account.py index eec90d2..6c15af4 100644 --- a/delivery_carrier_partner_account/models/delivery_carrier_account.py +++ b/delivery_carrier_partner_account/models/delivery_carrier_account.py @@ -1,4 +1,5 @@ -from odoo import models, fields, api +from odoo import models, fields, api, _ +from odoo.exceptions import UserError class DeliveryCarrierAccount(models.Model): @@ -24,7 +25,18 @@ class DeliveryCarrierAccount(models.Model): ondelete="cascade", ) + company_id = fields.Many2one( + comodel_name="res.company", + related="delivery_carrier_id.company_id", + ) + @api.depends("account_number") def _compute_display_name(self): for record in self: record.display_name = record.account_number + + @api.constrains("partner_id", "delivery_carrier_id") + def _constrain_partner_carrier_same_company(self): + for rec in self: + if rec.partner_id.company_id != rec.delivery_carrier_id.company_id: + raise UserError(_("Partner and Carrier must be in the same company.")) diff --git a/delivery_carrier_partner_account/security/record_rules.xml b/delivery_carrier_partner_account/security/record_rules.xml new file mode 100644 index 0000000..ca973c1 --- /dev/null +++ b/delivery_carrier_partner_account/security/record_rules.xml @@ -0,0 +1,14 @@ + + + + Multi-company rule for Delivery Carrier Account + + [ + ('company_id', 'in', company_ids + [False])] + + + + + + + \ No newline at end of file