diff --git a/mrp_workorder/i18n/zh_CN.po b/mrp_workorder/i18n/zh_CN.po
index 79a02876..18363c0a 100644
--- a/mrp_workorder/i18n/zh_CN.po
+++ b/mrp_workorder/i18n/zh_CN.po
@@ -1273,3 +1273,18 @@ msgstr ""
#: model:product.template,description_sale:mrp_workorder.product_template_stool_top
msgid "wooden stool top"
msgstr ""
+
+#. module: mrp_workorder
+#: model:quality.point.test_type,name:mrp_workorder.test_type_register_consumed_materials
+msgid "Register Consumed Materials"
+msgstr "登记消耗材料"
+
+#. module: mrp_workorder
+#: model:quality.point.test_type,name:mrp_workorder.test_type_register_byproducts
+msgid "Register By-products"
+msgstr "按产品注册"
+
+#. module: mrp_workorder
+#: model:quality.point.test_type,name:mrp_workorder.test_type_print_label
+msgid "Print label"
+msgstr "打印标签"
\ No newline at end of file
diff --git a/quality/i18n/zh_CN.po b/quality/i18n/zh_CN.po
index 544bcba2..68834fbc 100644
--- a/quality/i18n/zh_CN.po
+++ b/quality/i18n/zh_CN.po
@@ -1049,4 +1049,14 @@ msgstr "工作中心故障"
#. module: quality
#: model:ir.model.fields,field_description:quality.field_quality_point_test_type__active
msgid "active"
-msgstr "有效"
\ No newline at end of file
+msgstr "有效"
+
+#. module: quality
+#: model:quality.point.test_type,name:quality.test_type_instructions
+msgid "Instructions"
+msgstr "使用说明"
+
+#. module: quality
+#: model:quality.point.test_type,name:quality.test_type_picture
+msgid "Take a Picture"
+msgstr "照片"
\ No newline at end of file
diff --git a/quality/models/quality.py b/quality/models/quality.py
index 7edff2c7..83fd2258 100644
--- a/quality/models/quality.py
+++ b/quality/models/quality.py
@@ -15,7 +15,7 @@ class TestType(models.Model):
_description = "Quality Control Test Type"
# Used instead of selection field in order to hide a choice depending on the view.
- name = fields.Char('Name', required=True)
+ name = fields.Char('Name', required=True,translate=True)
technical_name = fields.Char('Technical name', required=True)
active = fields.Boolean('active', default=True)
diff --git a/quality_control/i18n/zh_CN.po b/quality_control/i18n/zh_CN.po
index 8fd98237..d091d9b5 100644
--- a/quality_control/i18n/zh_CN.po
+++ b/quality_control/i18n/zh_CN.po
@@ -1185,3 +1185,14 @@ msgstr "请先进行质量检查!"
#: model_terms:ir.ui.view,arch_db:quality_control.quality_alert_team_view_form
msgid "e.g. The QA Masters"
msgstr "例如:QA大师"
+
+
+#. module: quality_control
+#: model:quality.point.test_type,name:quality_control.test_type_passfail
+msgid "Pass - Fail"
+msgstr "通过-失败"
+
+#. module: quality_control
+#: model:quality.point.test_type,name:quality_control.test_type_measure
+msgid "Measure"
+msgstr "测量"
\ No newline at end of file
diff --git a/quality_control/models/__init__.py b/quality_control/models/__init__.py
index b31b19e7..c6817692 100644
--- a/quality_control/models/__init__.py
+++ b/quality_control/models/__init__.py
@@ -6,3 +6,4 @@ from . import stock_move
from . import stock_move_line
from . import stock_picking
from . import stock_lot
+from . import product_category
\ No newline at end of file
diff --git a/quality_control/models/product_category.py b/quality_control/models/product_category.py
new file mode 100644
index 00000000..9b5535d4
--- /dev/null
+++ b/quality_control/models/product_category.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+from math import sqrt
+from dateutil.relativedelta import relativedelta
+from datetime import datetime
+
+import random
+
+from odoo import api, models, fields, _
+from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT, float_round
+from odoo.osv.expression import OR
+
+
+class ProductCategory(models.Model):
+ _inherit = 'product.category'
+ @api.model
+ def name_search(self, name='', args=None, operator='ilike', limit=100):
+ if args is None:
+ args = []
+ # 添加过滤条件,确保只返回名称为 'abc' 的记录
+ args += [('name', 'not in', ['Saleable', 'Expenses', 'Deliveries'])]
+
+ # 调用父类的 name_search 方法
+ return super(ProductCategory, self).name_search(name, args=args, operator=operator, limit=limit)
\ No newline at end of file
diff --git a/sf_manufacturing/views/mrp_production_addional_change.xml b/sf_manufacturing/views/mrp_production_addional_change.xml
index 43e12b04..4c06c544 100644
--- a/sf_manufacturing/views/mrp_production_addional_change.xml
+++ b/sf_manufacturing/views/mrp_production_addional_change.xml
@@ -98,8 +98,6 @@
-
-
@@ -330,6 +328,16 @@
投料状态
+
+
+
+
+
+
+
+
+
+
diff --git a/sf_plan/wizard/action_plan_some.py b/sf_plan/wizard/action_plan_some.py
index 4b56547e..1c08ff0f 100644
--- a/sf_plan/wizard/action_plan_some.py
+++ b/sf_plan/wizard/action_plan_some.py
@@ -48,7 +48,7 @@ class Action_Plan_All_Wizard(models.TransientModel):
# plan.date_planned_start = self.date_planned_start
# plan_obj.do_production_schedule()
# plan_obj.state = 'done'
- print('处理计划:', self.plan_ids.id, '完成')
+ _logger.info('处理计划: %s 完成', self.plan_ids.ids)
# # 获取当前生产线
# production_line_id = self.production_line_id
@@ -75,4 +75,14 @@ class Action_Plan_All_Wizard(models.TransientModel):
# if all(production_order_plan_state == '已取消' for production_order_plan_state in production_order_plan_state_list):
# raise UserError('当前生产线的所有生产订单都已取消,请勿重复排程!')
# # 如果当前生产线的所有生产订单的排程状态都是已暂停,则报错
- # if all(production_order_plan_state == '已暂停' for production_order_plan_state in production
+ # if all(production_order_plan_state == '已暂停' for production_order_plan_state in production_order_plan_state_list):
+ # raise UserError('当前生产线的所有生产订单都已暂停,请勿重复排程!')
+ # # 如果当前生产线的所有生产订单的排程状态都是已完成,则报错
+ # if all(production_order_plan_state == '已完成' for production_order_plan_state in production_order_plan_state_list):
+ # raise UserError('当前生产线的所有生产订单都已完成,请勿重复排程!')
+ # # 如果当前生产线的所有生产订单的排程状态都是已取消,则报错
+ # if all(production_order_plan_state == '已取消' for production_order_plan_state in production_order_plan_state_list):
+ # raise UserError('当前生产线的所有生产订单都已取消,请勿重复排程!')
+ # # 如果当前生产线的所有生产订单的排程状态都是已暂停,则报错
+ # if all(production_order_plan_state == '已暂停' for production_order_plan_state in production_order_plan_state_list):
+ # raise UserError('当前生产线的所有生产订单都已暂停,请勿重复排程!')
diff --git a/sf_sale/views/purchase_order_view.xml b/sf_sale/views/purchase_order_view.xml
index 445bded6..7a9836c5 100644
--- a/sf_sale/views/purchase_order_view.xml
+++ b/sf_sale/views/purchase_order_view.xml
@@ -6,6 +6,25 @@
purchase.order
+
+
+
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+