From 4e7993d035abee4113752be9b67d8138460774d3 Mon Sep 17 00:00:00 2001 From: guanhuan Date: Mon, 30 Dec 2024 09:56:49 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=BF=BD=E6=BA=AF=E5=8F=82=E8=80=83?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_manufacturing/models/stock.py | 1 + sf_manufacturing/views/stock_picking_view.xml | 3 +++ 2 files changed, 4 insertions(+) diff --git a/sf_manufacturing/models/stock.py b/sf_manufacturing/models/stock.py index 6c70c245..48907a82 100644 --- a/sf_manufacturing/models/stock.py +++ b/sf_manufacturing/models/stock.py @@ -611,6 +611,7 @@ class StockPicking(models.Model): sale_info = production_list[0].sale_order_id if sale_info: item.sale_order_id = sale_info.id + item.retrospect_ref = sale_info.order_code if item.picking_type_id.sequence_code == 'DL': item.person_of_delivery = sale_info.person_of_delivery item.telephone_of_delivery = sale_info.telephone_of_delivery diff --git a/sf_manufacturing/views/stock_picking_view.xml b/sf_manufacturing/views/stock_picking_view.xml index 8b6fc571..6c268b82 100644 --- a/sf_manufacturing/views/stock_picking_view.xml +++ b/sf_manufacturing/views/stock_picking_view.xml @@ -17,6 +17,9 @@ stock.picking + + + From 3555be86c6a8068a3644e9bcdd838d2039e0fcbf Mon Sep 17 00:00:00 2001 From: guanhuan Date: Mon, 30 Dec 2024 11:35:08 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=8F=90=E7=A4=BA=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- quality_control/__manifest__.py | 2 +- sf_manufacturing/models/mrp_production.py | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/quality_control/__manifest__.py b/quality_control/__manifest__.py index d8dc1ed2..59fbbb98 100644 --- a/quality_control/__manifest__.py +++ b/quality_control/__manifest__.py @@ -8,7 +8,7 @@ 'sequence': 120, 'summary': 'Control the quality of your products', 'website': 'https://www.odoo.com/app/quality', - 'depends': ['quality'], + 'depends': ['quality', 'sf_manufacturing'], 'description': """ Quality Control =============== diff --git a/sf_manufacturing/models/mrp_production.py b/sf_manufacturing/models/mrp_production.py index 4d8f11df..b213a456 100644 --- a/sf_manufacturing/models/mrp_production.py +++ b/sf_manufacturing/models/mrp_production.py @@ -1619,6 +1619,26 @@ class MrpProduction(models.Model): }) return action + def _subcontract_sanity_check(self): + for production in self: + if production.product_tracking != 'none' and not self.lot_producing_id: + raise UserError(_('You must enter a serial number for %s') % production.product_id.name) + for sml in production.move_raw_ids.move_line_ids: + if sml.tracking != 'none' and not sml.lot_id: + picking_ids = production.picking_ids.filtered( + lambda p: p.state not in ['done', 'cancel']) + picking_num = len(picking_ids) + picking_info = ', '.join( + ['%s:%s' % (picking.picking_type_id.name, picking.name) for picking in picking_ids] + ) + if picking_info: + raise UserError(_('您有%s补给未完成: %s') % ( + picking_num, picking_info)) + else: + raise UserError( + _('您必须为以下各%s行输入序列号') % sml.product_id.display_name) + return True + class sf_detection_result(models.Model): _name = 'sf.detection.result'