From 61b2b053679cb38f889ebc41441b112649516f50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E5=B0=A7?= Date: Mon, 24 Mar 2025 11:11:50 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E5=8D=95=E9=9C=80=E8=A6=81=E5=AE=A1=E6=89=B9=E6=8F=90=E9=86=92?= =?UTF-8?q?=E7=9A=84=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jikimo_purchase_tier_validation/models/models.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/jikimo_purchase_tier_validation/models/models.py b/jikimo_purchase_tier_validation/models/models.py index ecb7ed73..5229279d 100644 --- a/jikimo_purchase_tier_validation/models/models.py +++ b/jikimo_purchase_tier_validation/models/models.py @@ -10,7 +10,7 @@ class jikimo_purchase_tier_validation(models.Model): _inherit = ['purchase.order', 'tier.validation'] _description = "采购订单" _state_from = ["draft", "to approve", "rejected"] - _state_to = ["approved"] + _state_to = ["approved", "purchase"] _tier_validation_buttons_xpath = "/form/header/button[@id='draft_confirm'][1]" @@ -22,9 +22,9 @@ class jikimo_purchase_tier_validation(models.Model): is_upload_contract_file = fields.Boolean(string='是否已上传合同文件', default=False) def button_confirm(self): - for record in self: - if record.need_validation and not record.validation_status == 'validated': - raise ValidationError(_('请先完成审批。')) + # for record in self: + # if record.need_validation and not record.validation_status == 'validated': + # raise ValidationError(_('请先完成审批。')) res = super(jikimo_purchase_tier_validation, self).button_confirm() for record in self: if record.state == 'approved': From f51f8bebb296361305b9388c9b11485942a752b9 Mon Sep 17 00:00:00 2001 From: yuxianghui <3437689193@qq.com> Date: Mon, 24 Mar 2025 13:16:02 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8C=89=E8=A7=84?= =?UTF-8?q?=E6=A0=BC=E7=94=9F=E6=88=90=E7=9A=84=E9=87=87=E8=B4=AD=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E8=AE=A2=E5=8D=95=E8=B7=B3=E8=BF=87=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E7=8E=AF=E8=8A=82=E8=87=AA=E5=8A=A8=E6=9B=B4=E6=96=B0=E4=B8=BA?= =?UTF-8?q?=E5=B7=B2=E6=89=B9=E5=87=86=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jikimo_purchase_request/models/sale_order.py | 18 +++++++++--------- jikimo_purchase_request/models/stock_rule.py | 12 ++++++++++++ 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/jikimo_purchase_request/models/sale_order.py b/jikimo_purchase_request/models/sale_order.py index 8755c2c9..3dc88287 100644 --- a/jikimo_purchase_request/models/sale_order.py +++ b/jikimo_purchase_request/models/sale_order.py @@ -4,15 +4,15 @@ from odoo import fields, models, api, _ class StatusChange(models.Model): _inherit = 'sale.order' - def action_confirm(self): - res = super(StatusChange, self).action_confirm() - # 采购申请自动确认 - pr_ids = self.env["purchase.request"].sudo().search( - [('origin', 'like', self.name), ('rule_new_add', '=', True)]) - if pr_ids: - pr_ids.write({'need_validation': False}) - pr_ids.write({"state": "approved"}) - return res + # def action_confirm(self): + # res = super(StatusChange, self).action_confirm() + # # 采购申请自动确认 + # pr_ids = self.env["purchase.request"].sudo().search( + # [('origin', 'like', self.name), ('rule_new_add', '=', True)]) + # if pr_ids: + # pr_ids.write({'need_validation': False}) + # pr_ids.write({"state": "approved"}) + # return res purchase_request_purchase_order_count = fields.Integer('采购申请单数量', compute='_compute_purchase_request_count', store=True) diff --git a/jikimo_purchase_request/models/stock_rule.py b/jikimo_purchase_request/models/stock_rule.py index 7920433f..08f32b2d 100644 --- a/jikimo_purchase_request/models/stock_rule.py +++ b/jikimo_purchase_request/models/stock_rule.py @@ -42,3 +42,15 @@ class StockRule(models.Model): request_line_data = rule._prepare_purchase_request_line(pr, procurement) request_line_data.update({'origin': procurement.origin}) purchase_request_line_model.create(request_line_data) + + def _run_buy(self, procurements): + res = super(StockRule, self)._run_buy(procurements) + # 判断是否根据规则生成新的采购申请单据,如果生成则修改状态为 approved + origins = list(set([procurement[0].origin for procurement in procurements])) + for origin in origins: + pr_ids = self.env["purchase.request"].sudo().search( + [('origin', 'like', origin), ('rule_new_add', '=', True), ('state', '=', 'draft')]) + if pr_ids: + pr_ids.write({'need_validation': False}) + pr_ids.write({"state": "approved", 'need_validation': True, 'rule_new_add': False}) + return res