From 39ed32f3e9d04209e6cdfb97c3cdaaab0cd8115e Mon Sep 17 00:00:00 2001 From: guanhuan Date: Tue, 31 Dec 2024 13:08:00 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=88=90=E5=93=81?= =?UTF-8?q?=E8=B0=83=E6=8B=A8=E5=87=BA=E5=BA=93=E8=AE=A2=E5=8D=95=E7=9A=84?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=B2=A1=E5=8F=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_manufacturing/models/stock.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sf_manufacturing/models/stock.py b/sf_manufacturing/models/stock.py index 2dcab4be..fa723283 100644 --- a/sf_manufacturing/models/stock.py +++ b/sf_manufacturing/models/stock.py @@ -654,7 +654,10 @@ class StockPicking(models.Model): if self.location_id.name == '成品存货区' and self.location_dest_id.name == '客户': sale_id = self.env['sale.order'].sudo().search( [('name', '=', self.origin)]) - if sale_id and res: + stock_picking_list = self.env['stock.picking'].sudo().search( + [('id', 'in', sale_id.picking_ids.ids)]) + stock_picking = stock_picking_list.filtered(lambda p: p.state not in ("done", "cancel")) + if sale_id and not stock_picking: sale_id.write({'state': 'delivered'}) return res @@ -678,7 +681,7 @@ class StockPicking(models.Model): # 从sorted_workorders中找到上一工单的move if len(sorted_workorders) > 1: move_dest_id = \ - sorted_workorders[sorted_workorders.index(workorder) + 1].move_subcontract_workorder_ids[1].id + sorted_workorders[sorted_workorders.index(workorder) + 1].move_subcontract_workorder_ids[1].id new_picking = True outcontract_picking_type_in = self.env.ref( 'sf_manufacturing.outcontract_picking_in').id, From 94b1c7d258771af92617caf281c67899885e32b6 Mon Sep 17 00:00:00 2001 From: yuxianghui <3437689193@qq.com> Date: Tue, 31 Dec 2024 15:50:51 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=85=B3=E9=97=AD=E6=8A=A5=E5=BA=9F?= =?UTF-8?q?=E5=85=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_manufacturing/models/mrp_workorder.py | 2 +- sf_quality/models/quality_cnc_test.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py index d121bae8..f11de84b 100644 --- a/sf_manufacturing/models/mrp_workorder.py +++ b/sf_manufacturing/models/mrp_workorder.py @@ -129,7 +129,7 @@ class ResMrpWorkOrder(models.Model): Y10_axis = fields.Float(default=0) Z10_axis = fields.Float(default=0) X_deviation_angle = fields.Integer(string="X轴偏差度", default=0) - test_results = fields.Selection([("合格", "合格"), ("返工", "返工"), ("报废", "报废")], default='合格', + test_results = fields.Selection([("合格", "合格"), ("返工", "返工")], default='合格', string="检测结果", tracking=True) cnc_ids = fields.One2many("sf.cnc.processing", 'workorder_id', string="CNC加工程序") cmm_ids = fields.One2many("sf.cmm.program", 'workorder_id', string="CMM程序") diff --git a/sf_quality/models/quality_cnc_test.py b/sf_quality/models/quality_cnc_test.py index 9c73715d..9810b0e0 100644 --- a/sf_quality/models/quality_cnc_test.py +++ b/sf_quality/models/quality_cnc_test.py @@ -25,7 +25,7 @@ class SfQualityCncTest(models.Model): ('pass', '合格'), ('fail', '不合格')], string='判定结果') number = fields.Integer('数量', default=1) - test_results = fields.Selection([("合格", "合格"), ("返工", "返工"), ("报废", "报废")], string="检测结果") + test_results = fields.Selection([("合格", "合格"), ("返工", "返工")], string="检测结果") reason = fields.Selection( [("programming", "编程"), ("cutter", "刀具"), ("clamping", "装夹"), ("operate computer", "操机"), ("technology", "工艺"), ("customer redrawing", "客户改图")], string="原因") From 281f3c67c34895d99c3e116bf3738a90f3f619cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E5=B0=A7?= Date: Tue, 31 Dec 2024 16:00:24 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E7=89=B9=E6=AE=8A=E8=A1=A8=E9=9D=A2?= =?UTF-8?q?=E5=B7=A5=E8=89=BA=E5=A4=96=E5=8D=8F=E9=87=87=E8=B4=AD=E5=8D=95?= =?UTF-8?q?=E5=8F=91=E8=B5=B7=E4=BA=BA=E4=BF=AE=E6=94=B9=E4=B8=BA=E4=BE=9B?= =?UTF-8?q?=E5=BA=94=E5=95=86=E7=9A=84=E9=87=87=E8=B4=AD=E5=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_sale/models/sale_order.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sf_sale/models/sale_order.py b/sf_sale/models/sale_order.py index 5267725a..be5098b8 100644 --- a/sf_sale/models/sale_order.py +++ b/sf_sale/models/sale_order.py @@ -373,12 +373,16 @@ class RePurchaseOrder(models.Model): 'product_qty': 1, 'product_uom': server_template.uom_id.id })) + # 获取服务商品最后一个供应商的采购员 + purchase_user_id = server_template.seller_ids[-1].partner_id.purchase_user_id purchase_order = self.env['purchase.order'].sudo().create({ 'partner_id': server_template.seller_ids[0].partner_id.id, 'origin': production.name, 'state': 'draft', 'purchase_type': 'consignment', - 'order_line': server_product_process}) + 'order_line': server_product_process, + 'user_id': purchase_user_id.id + }) pp.purchase_id = [(6, 0, [purchase_order.id])] # self.env.cr.commit() From 247bebbd75467ff6006111cef1989fdc089af795 Mon Sep 17 00:00:00 2001 From: guanhuan Date: Tue, 31 Dec 2024 16:39:09 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E8=AF=A2=E4=BB=B7=E5=8D=95=E5=AE=A1?= =?UTF-8?q?=E6=89=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../models/models.py | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/jikimo_purchase_tier_validation/models/models.py b/jikimo_purchase_tier_validation/models/models.py index bcc18bb6..e5a80f7b 100644 --- a/jikimo_purchase_tier_validation/models/models.py +++ b/jikimo_purchase_tier_validation/models/models.py @@ -72,8 +72,30 @@ class jikimo_purchase_tier_validation(models.Model): message_type='notification', subtype_xmlid='mail.mt_note' ) + res = super(jikimo_purchase_tier_validation, self).request_validation() + self.state = 'to approve' + return res - return super(jikimo_purchase_tier_validation, self).request_validation() + def restart_validation(self): + res = super(jikimo_purchase_tier_validation, self).restart_validation() + self.state = 'draft' + return res + + def _validate_tier(self, tiers=False): + res = super(jikimo_purchase_tier_validation, self)._validate_tier(tiers) + self.state = 'approved' + return res + + def _rejected_tier(self, tiers=False): + res = super(jikimo_purchase_tier_validation, self)._rejected_tier(tiers) + self.state = 'draft' + return res + + @api.model + def _get_under_validation_exceptions(self): + res = super(jikimo_purchase_tier_validation, self)._get_under_validation_exceptions() + res.append("state") + return res # 上传合同文件 def upload_contract_file(self):