From 3fb2890bf172bf7bd401ef2cb4556517e06df885 Mon Sep 17 00:00:00 2001 From: liaodanlong Date: Thu, 17 Apr 2025 16:32:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=B7=A5=E8=89=BA=E5=A4=96?= =?UTF-8?q?=E5=8D=8F=E6=B5=81=E7=A8=8B=E7=9A=84=E6=8A=A5=E9=94=99=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_dlm_management/models/__init__.py | 3 +- .../models/mrp_routing_workcenter.py | 16 +++++++++++ .../models/sf_production_common.py | 2 ++ .../models/mrp_routing_workcenter.py | 28 +++++++++++++------ 4 files changed, 40 insertions(+), 9 deletions(-) create mode 100644 sf_dlm_management/models/mrp_routing_workcenter.py diff --git a/sf_dlm_management/models/__init__.py b/sf_dlm_management/models/__init__.py index 650ac243..a46a54df 100644 --- a/sf_dlm_management/models/__init__.py +++ b/sf_dlm_management/models/__init__.py @@ -1,3 +1,4 @@ # from . import product_template # from . import product_supplierinfo -from . import sf_production_common \ No newline at end of file +from . import sf_production_common +from . import mrp_routing_workcenter \ No newline at end of file diff --git a/sf_dlm_management/models/mrp_routing_workcenter.py b/sf_dlm_management/models/mrp_routing_workcenter.py new file mode 100644 index 00000000..4a04eb87 --- /dev/null +++ b/sf_dlm_management/models/mrp_routing_workcenter.py @@ -0,0 +1,16 @@ +import logging +from odoo import fields, models, api +from odoo.exceptions import UserError +from odoo.tools import str2bool + + +class ResMrpRoutingWorkcenter(models.Model): + _inherit = 'mrp.routing.workcenter' + def init(self): + super(ResMrpRoutingWorkcenter, self).init() + # 在模块初始化时触发计算字段的更新 + records = self.search([]) + if str2bool(self.env['ir.config_parameter'].get_param('sf.production.process.parameter.is_init_workcenter',default='False')): + return + records.optional_process_parameters_date() + self.env['ir.config_parameter'].set_param('sf.production.process.parameter.is_init_workcenter', True) \ No newline at end of file diff --git a/sf_dlm_management/models/sf_production_common.py b/sf_dlm_management/models/sf_production_common.py index 918b6b6d..cd19e938 100644 --- a/sf_dlm_management/models/sf_production_common.py +++ b/sf_dlm_management/models/sf_production_common.py @@ -7,6 +7,8 @@ from odoo.tools import str2bool class SfProductionProcessParameter(models.Model): _inherit = 'sf.production.process.parameter' + + @api.model def create(self, vals): if vals.get('code', '/') == '/' or vals.get('code', '/') is False: diff --git a/sf_manufacturing/models/mrp_routing_workcenter.py b/sf_manufacturing/models/mrp_routing_workcenter.py index a8b84231..c869f01f 100644 --- a/sf_manufacturing/models/mrp_routing_workcenter.py +++ b/sf_manufacturing/models/mrp_routing_workcenter.py @@ -40,14 +40,26 @@ class ResMrpRoutingWorkcenter(models.Model): ]) record.optional_process_parameters = parameter_ids.ids - def init(self): - super(ResMrpRoutingWorkcenter, self).init() - # 在模块初始化时触发计算字段的更新 - records = self.search([]) - if str2bool(self.env['ir.config_parameter'].get_param('sf.production.process.parameter.is_init_workcenter',default='False')): - return - records.optional_process_parameters_date() - self.env['ir.config_parameter'].set_param('sf.production.process.parameter.is_init_workcenter', True) + # @api.model + # def _auto_init(self): + # # 先执行标准初始化 + # res = super(ResMrpRoutingWorkcenter, self)._auto_init() + # # 然后执行自定义初始化 + # records = self.search([]) + # if str2bool(self.env['ir.config_parameter'].get_param('sf.production.process.parameter.is_init_workcenter', + # default='False')): + # return + # records.optional_process_parameters_date() + # self.env['ir.config_parameter'].set_param('sf.production.process.parameter.is_init_workcenter', True) + # return res + # def init(self): + # super(ResMrpRoutingWorkcenter, self).init() + # # 在模块初始化时触发计算字段的更新 + # records = self.search([]) + # if str2bool(self.env['ir.config_parameter'].get_param('sf.production.process.parameter.is_init_workcenter',default='False')): + # return + # records.optional_process_parameters_date() + # self.env['ir.config_parameter'].set_param('sf.production.process.parameter.is_init_workcenter', True) def get_no(self): international_standards = self.search( [('code', '!=', ''), ('active', 'in', [True, False])],