From 6937d59b9f547a2aa0876f77ff4c767777ea70c2 Mon Sep 17 00:00:00 2001 From: yuxianghui <3437689193@qq.com> Date: Wed, 28 Feb 2024 16:52:27 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BC=98=E5=8C=96=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E5=88=80=E5=85=B7=E7=89=A9=E6=96=99=E6=97=B6=E5=88=80=E5=85=B7?= =?UTF-8?q?=E7=89=A9=E6=96=99=E7=9A=84=E5=BA=8F=E5=88=97=E5=8F=B7=E7=94=9F?= =?UTF-8?q?=E6=88=90=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_manufacturing/models/stock.py | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/sf_manufacturing/models/stock.py b/sf_manufacturing/models/stock.py index 5cb51953..c9c2ebf2 100644 --- a/sf_manufacturing/models/stock.py +++ b/sf_manufacturing/models/stock.py @@ -14,6 +14,7 @@ from odoo.addons.stock.models.stock_rule import ProcurementException from odoo.addons.sf_base.commons.common import Common from odoo.exceptions import UserError from io import BytesIO +from odoo.exceptions import ValidationError class StockRule(models.Model): @@ -250,6 +251,22 @@ class ProductionLot(models.Model): )) return lot_names + def get_tool_generate_lot_names1(self, company, product): + """ + 采购时生成刀具物料序列号 + """ + now = datetime.now().strftime("%Y%m%d") + last_serial = self.env['stock.lot'].search( + [('company_id', '=', company.id), ('product_id', '=', product.id), ('name', 'like', now)], + limit=1, order='id DESC') + if product.cutting_tool_model_id: + if not last_serial: + return "%s-%s%03d" % (product.cutting_tool_model_id.code[:-12], now, 1) + else: + return "%s-%s%03d" % (product.cutting_tool_model_id.code[:-12], now, int(last_serial.name[-3:]) + 1) + else: + raise ValidationError('该刀具物料产品的型号字段为空,请补充完整!!!') + @api.model def _get_next_serial(self, company, product): """Return the next serial number to be attributed to the product.""" @@ -258,12 +275,13 @@ class ProductionLot(models.Model): [('company_id', '=', company.id), ('product_id', '=', product.id)], limit=1, order='id DESC') if last_serial: - return self.env['stock.lot'].generate_lot_names1(product.name, last_serial.name, 2)[ - 1] - now = datetime.now().strftime("%Y-%m-%d") - # formatted_date = now.strftime("%Y-%m-%d") + if product.categ_id.name == '刀具': + return self.env['stock.lot'].get_tool_generate_lot_names1(company, product) + else: + return self.env['stock.lot'].generate_lot_names1(product.name, last_serial.name, 2)[1] + now = datetime.now().strftime("%Y%m%d") if product.cutting_tool_model_id: - return "%s-%s-%03d" % (product.cutting_tool_model_id.code, now, 1) + return "%s-%s%03d" % (product.cutting_tool_model_id.code[:-12], now, 1) return "%s-%03d" % (product.name, 1) qr_code_image = fields.Binary(string='二维码', compute='_generate_qr_code')