Skip to content

Commit

Permalink
Merge PR OCA#1615 into 16.0
Browse files Browse the repository at this point in the history
Signed-off-by pedrobaeza
  • Loading branch information
OCA-git-bot committed May 23, 2024
2 parents ced8cb6 + 30de530 commit 866b198
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 14 deletions.
29 changes: 17 additions & 12 deletions product_lot_sequence/models/product.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# Copyright 2020 ForgeFlow S.L.
# Copyright 2024 Tecnativa - Carolina Fernandez
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from odoo import api, fields, models
Expand Down Expand Up @@ -104,16 +105,20 @@ def write(self, vals):
vals["lot_sequence_padding"] = lot_sequence_id.padding
return super().write(vals)

@api.model
def create(self, vals):
@api.model_create_multi
def create(self, vals_list):
seq_policy = self.env["stock.lot"]._get_sequence_policy()
if seq_policy == "product" and vals.get("tracking", False) in ["lot", "serial"]:
if not vals.get("lot_sequence_id", False):
vals["lot_sequence_id"] = self.sudo()._create_lot_sequence(vals).id
else:
lot_sequence_id = self.env["ir.sequence"].browse(
vals["lot_sequence_id"]
)
vals["lot_sequence_prefix"] = lot_sequence_id.prefix
vals["lot_sequence_padding"] = lot_sequence_id.padding
return super().create(vals)
for vals in vals_list:
if seq_policy == "product" and vals.get("tracking", False) in [
"lot",
"serial",
]:
if not vals.get("lot_sequence_id", False):
vals["lot_sequence_id"] = self.sudo()._create_lot_sequence(vals).id
else:
lot_sequence_id = self.env["ir.sequence"].browse(
vals["lot_sequence_id"]
)
vals["lot_sequence_prefix"] = lot_sequence_id.prefix
vals["lot_sequence_padding"] = lot_sequence_id.padding
return super().create(vals_list)
4 changes: 2 additions & 2 deletions product_lot_sequence/tests/test_product_lot_sequence.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def test_product_sequence(self):
)
)
next_serial = self.env["stock.lot"]._get_next_serial(self.env.company, product)
self.assertRegexpMatches(next_serial, r"foo/\d{5}/bar")
self.assertRegex(next_serial, r"foo/\d{5}/bar")

def test_lot_onchange_product_id(self):
self.assertEqual(self.stock_production_lot._get_sequence_policy(), "product")
Expand All @@ -55,7 +55,7 @@ def test_lot_onchange_product_id(self):
lot_form.product_id = product
lot_form.company_id = self.env.company
lot = lot_form.save()
self.assertRegexpMatches(lot.name, r"shiba/\d{4}$")
self.assertRegex(lot.name, r"shiba/\d{4}$")

def test_global_sequence(self):
self.env["ir.config_parameter"].set_param(
Expand Down

0 comments on commit 866b198

Please sign in to comment.