diff --git a/l10n_it_delivery_note/models/stock_delivery_note.py b/l10n_it_delivery_note/models/stock_delivery_note.py
index fcfcc5d93cf9..b99dccecf0b2 100644
--- a/l10n_it_delivery_note/models/stock_delivery_note.py
+++ b/l10n_it_delivery_note/models/stock_delivery_note.py
@@ -49,13 +49,18 @@ class StockDeliveryNote(models.Model):
]
_description = "Delivery Note"
_order = "date DESC, id DESC"
+ _check_company_auto = True
def _default_company(self):
return self.env.company
def _default_type(self):
return self.env["stock.delivery.note.type"].search(
- [("code", "=", DOMAIN_PICKING_TYPES[1])], limit=1
+ [
+ ("code", "=", DOMAIN_PICKING_TYPES[1]),
+ ("company_id", "=", self.env.company.id),
+ ],
+ limit=1,
)
def _default_volume_uom(self):
@@ -241,12 +246,16 @@ def _domain_weight_uom(self):
)
picking_ids = fields.One2many(
- "stock.picking", "delivery_note_id", string="Pickings"
+ "stock.picking",
+ "delivery_note_id",
+ string="Pickings",
+ check_company=True,
)
pickings_picker = fields.Many2many(
"stock.picking",
compute="_compute_get_pickings",
inverse="_inverse_set_pickings",
+ check_company=True,
)
picking_type = fields.Selection(
diff --git a/l10n_it_delivery_note/models/stock_picking.py b/l10n_it_delivery_note/models/stock_picking.py
index 63050605e338..28b527896e54 100644
--- a/l10n_it_delivery_note/models/stock_picking.py
+++ b/l10n_it_delivery_note/models/stock_picking.py
@@ -41,7 +41,9 @@ class StockPicking(models.Model):
)
delivery_note_type_id = fields.Many2one(
- "stock.delivery.note.type", related="delivery_note_id.type_id"
+ "stock.delivery.note.type",
+ related="delivery_note_id.type_id",
+ check_company=True,
)
delivery_note_type_code = fields.Selection(related="delivery_note_type_id.code")
delivery_note_date = fields.Date(string="DN Date", related="delivery_note_id.date")
@@ -336,6 +338,7 @@ def _create_delivery_note(self):
)
return self.env["stock.delivery.note"].create(
{
+ "company_id": self.company_id.id,
"partner_sender_id": partners[0].id,
"partner_id": self.sale_id.partner_id.id
if self.sale_id
diff --git a/l10n_it_delivery_note/tests/test_stock_delivery_note.py b/l10n_it_delivery_note/tests/test_stock_delivery_note.py
index bc9df7e62bb9..fc8b7ba24b1e 100644
--- a/l10n_it_delivery_note/tests/test_stock_delivery_note.py
+++ b/l10n_it_delivery_note/tests/test_stock_delivery_note.py
@@ -1,6 +1,7 @@
# Copyright 2021 Alex Comba - Agile Business Group
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+from odoo.exceptions import UserError
from odoo.tests import new_test_user
from odoo.tests.common import Form
@@ -101,7 +102,7 @@ def test_delivery_without_so(self):
# create delivery note with advanced mode
dn_form = Form(
self.env["stock.delivery.note.create.wizard"].with_context(
- {"active_ids": [picking.id]}
+ {"active_id": picking.id, "active_ids": picking.ids}
)
)
dn = dn_form.save()
@@ -110,3 +111,11 @@ def test_delivery_without_so(self):
picking.delivery_note_id.action_confirm()
self.assertEqual(picking.delivery_note_id.state, "confirm")
self.assertEqual(picking.delivery_note_id.invoice_status, "no")
+
+ test_company = self.env["res.company"].create({"name": "Test Company"})
+ with self.assertRaises(UserError) as exc:
+ picking.delivery_note_id.write({"company_id": test_company.id})
+ exc_message = exc.exception.args[0]
+ self.assertIn("type_id", exc_message)
+ self.assertIn("picking_ids", exc_message)
+ self.assertIn("belongs to another company", exc_message)
diff --git a/l10n_it_delivery_note/views/stock_delivery_note.xml b/l10n_it_delivery_note/views/stock_delivery_note.xml
index 39929cb83d1a..af27e90b7318 100644
--- a/l10n_it_delivery_note/views/stock_delivery_note.xml
+++ b/l10n_it_delivery_note/views/stock_delivery_note.xml
@@ -136,6 +136,7 @@