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