From 0b2b9c2bf512a47d38bd01aeee4739f48b144002 Mon Sep 17 00:00:00 2001 From: mgw <1392924357@qq.com> Date: Thu, 16 Jan 2025 17:39:34 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E6=81=A2=E5=A4=8D=E5=B1=8F=E8=94=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_manufacturing/views/mrp_workorder_view.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/sf_manufacturing/views/mrp_workorder_view.xml b/sf_manufacturing/views/mrp_workorder_view.xml index 67f9443d..d10b37ba 100644 --- a/sf_manufacturing/views/mrp_workorder_view.xml +++ b/sf_manufacturing/views/mrp_workorder_view.xml @@ -312,6 +312,7 @@ + From eed89836e102ceb784f780940fd72a76825c89ac Mon Sep 17 00:00:00 2001 From: mgw <1392924357@qq.com> Date: Fri, 17 Jan 2025 09:36:37 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=89=AB=E7=A0=81?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/mrp_workorder_views.xml | 1 + sf_manufacturing/views/mrp_workorder_view.xml | 46 ++++++++++--------- 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/jikimo_workorder_exception/views/mrp_workorder_views.xml b/jikimo_workorder_exception/views/mrp_workorder_views.xml index e589adb4..55ee0aa7 100644 --- a/jikimo_workorder_exception/views/mrp_workorder_views.xml +++ b/jikimo_workorder_exception/views/mrp_workorder_views.xml @@ -7,6 +7,7 @@ + diff --git a/sf_manufacturing/views/mrp_workorder_view.xml b/sf_manufacturing/views/mrp_workorder_view.xml index d10b37ba..9e847741 100644 --- a/sf_manufacturing/views/mrp_workorder_view.xml +++ b/sf_manufacturing/views/mrp_workorder_view.xml @@ -310,28 +310,6 @@ - - - - - - - - - - - - - - - - - - - - -
左面:
@@ -629,6 +607,30 @@ mrp.group_mrp_manager,sf_base.group_sf_mrp_manager,sf_base.group_sf_equipment_user,sf_base.group_sf_order_user
+ + + + + + + + + + + + + + + + + + + + + + +
From f3e64b007e95a343b90ce23dc61803b03047100b Mon Sep 17 00:00:00 2001 From: mgw <1392924357@qq.com> Date: Fri, 17 Jan 2025 09:59:46 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=89=AB=E7=A0=81?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_manufacturing/views/mrp_workorder_view.xml | 50 +++++++++---------- 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/sf_manufacturing/views/mrp_workorder_view.xml b/sf_manufacturing/views/mrp_workorder_view.xml index 9e847741..505d0c41 100644 --- a/sf_manufacturing/views/mrp_workorder_view.xml +++ b/sf_manufacturing/views/mrp_workorder_view.xml @@ -126,9 +126,9 @@ mrp.workorder - + - + @@ -310,6 +310,28 @@ + + + + + + + + + + + + + + + + + + + + +
左面:
@@ -607,30 +629,6 @@ mrp.group_mrp_manager,sf_base.group_sf_mrp_manager,sf_base.group_sf_equipment_user,sf_base.group_sf_order_user
- - - - - - - - - - - - - - - - - - - - - - -
From 41cdeb7fd9445951faa0f85704c07ee4a45524b5 Mon Sep 17 00:00:00 2001 From: yuxianghui <3437689193@qq.com> Date: Fri, 17 Jan 2025 11:06:17 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E5=88=B6=E9=80=A0=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_manufacturing/models/mrp_production.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sf_manufacturing/models/mrp_production.py b/sf_manufacturing/models/mrp_production.py index d7181fdf..1bfa5f07 100644 --- a/sf_manufacturing/models/mrp_production.py +++ b/sf_manufacturing/models/mrp_production.py @@ -350,7 +350,7 @@ class MrpProduction(models.Model): if any((wo.test_results == '返工' and wo.state == 'done' and (production.programming_state in ['已编程'] or wo.individuation_page_PTD is True)) or (wo.is_rework is True and wo.state == 'done' and production.programming_state in ['编程中', '已编程']) - for wo in production.workorder_ids): + for wo in production.workorder_ids) or production.is_rework is True: production.state = 'rework' if any(wo.test_results == '报废' and wo.state == 'done' for wo in production.workorder_ids): production.state = 'scrap' From b619c15231268b7a8c63e6774df4b1bed5945eda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E5=B0=A7?= Date: Fri, 17 Jan 2025 11:27:04 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E5=8D=95=E6=B2=A1=E6=9C=89=E6=8E=A5=E6=94=B6=E4=BA=A7=E5=93=81?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jikimo_purchase_tier_validation/models/models.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/jikimo_purchase_tier_validation/models/models.py b/jikimo_purchase_tier_validation/models/models.py index 39e41e1f..085f3b06 100644 --- a/jikimo_purchase_tier_validation/models/models.py +++ b/jikimo_purchase_tier_validation/models/models.py @@ -87,15 +87,14 @@ class jikimo_purchase_tier_validation(models.Model): def _validate_tier(self, tiers=False): res = super(jikimo_purchase_tier_validation, self)._validate_tier(tiers) - tier_reviews = tiers or self.review_ids # 检查是否所有审批都已通过 all_approved = all( tier_review.status == 'approved' - for tier_review in tier_reviews + for tier_review in self.review_ids ) - if all_approved and tier_reviews: # 确保有审批记录 + if self.review_ids and all_approved: # 确保有审批记录 self.state = 'approved' return res From 98b338f33a8c32b9a6d3e3eabe47cefb77b7fb08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E5=B0=A7?= Date: Fri, 17 Jan 2025 12:55:09 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E5=8D=95=E6=B2=A1=E6=9C=89=E6=8E=A5=E6=94=B6=E4=BA=A7=E5=93=81?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jikimo_purchase_tier_validation/models/models.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/jikimo_purchase_tier_validation/models/models.py b/jikimo_purchase_tier_validation/models/models.py index 085f3b06..34d33d32 100644 --- a/jikimo_purchase_tier_validation/models/models.py +++ b/jikimo_purchase_tier_validation/models/models.py @@ -27,7 +27,17 @@ class jikimo_purchase_tier_validation(models.Model): raise ValidationError(_('请先完成审批。')) # if record.state == 'approved': # record.state = 'purchase' - return super().button_confirm() + res = super(jikimo_purchase_tier_validation, self).button_confirm() + for record in self: + if record.state == 'approved': + record.order_line._validate_analytic_distribution() + record._add_supplier_to_product() + # Deal with double validation process + if record._approval_allowed(): + record.button_approve() + if record.partner_id not in record.message_partner_ids: + record.message_subscribe([record.partner_id.id]) + return res # def button_confirm(self): # self = self.with_context(skip_validation=True) From 47c73ae66e83a64cdeba7182aa35fefd76fa0f6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E5=B0=A7?= Date: Fri, 17 Jan 2025 15:20:50 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E5=A4=84=E7=90=86=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=A1=8C=E5=8F=82=E6=95=B0=E8=AF=B4=E6=98=8E=E7=9A=84=E7=B2=BE?= =?UTF-8?q?=E5=BA=A6=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_sale/models/sale_order.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/sf_sale/models/sale_order.py b/sf_sale/models/sale_order.py index 73837271..31681932 100644 --- a/sf_sale/models/sale_order.py +++ b/sf_sale/models/sale_order.py @@ -130,7 +130,10 @@ class ReSaleOrder(models.Model): 'order_id': self.id, 'product_id': product.id, 'name': '%s/%s/%s/%s/%s/%s' % ( - product.model_long, product.model_width, product.model_height, product.model_volume, + self.format_float(product.model_long), + self.format_float(product.model_width), + self.format_float(product.model_height), + self.format_float(product.model_volume), machining_accuracy_name, product.materials_id.name), 'price_unit': product.list_price, @@ -143,6 +146,20 @@ class ReSaleOrder(models.Model): } return self.env['sale.order.line'].with_context(skip_procurement=True).create(vals) + def format_float(self, value): + # 将浮点数转换为字符串 + value_str = str(value) + # 检查小数点的位置 + if '.' in value_str: + # 获取小数部分 + decimal_part = value_str.split('.')[1] + # 判断小数位数是否超过2位 + if len(decimal_part) > 2: + # 超过2位则保留2位小数 + return "{:.2f}".format(value) + # 否则保持原来的位数 + return float(value_str) + @api.constrains('order_line') def check_order_line(self): for item in self: