From c23715a1ef6f0608b8e287fb078f9be1e631e496 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E5=B0=A7?= Date: Tue, 20 May 2025 16:08:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=96=E6=B6=88=E9=87=87=E8=B4=AD=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E9=83=A8=E5=88=86=E7=A1=AE=E8=AE=A4=E7=94=9F=E6=88=90?= =?UTF-8?q?=E7=9A=84=E5=8F=8D=E5=90=91=E5=8D=95=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jikimo_purchase_request/models/purchase_order.py | 12 +++++++++++- jikimo_purchase_request/models/stock_rule.py | 8 -------- .../__manifest__.py | 5 ++--- .../models/__init__.py | 3 ++- .../models/stock_rule.py | 16 ++++++++++++++++ jikimo_purchase_tier_validation/__manifest__.py | 6 +++--- 6 files changed, 34 insertions(+), 16 deletions(-) create mode 100644 jikimo_purchase_request_tier_validation/models/stock_rule.py diff --git a/jikimo_purchase_request/models/purchase_order.py b/jikimo_purchase_request/models/purchase_order.py index f22027fb..e2c4687b 100644 --- a/jikimo_purchase_request/models/purchase_order.py +++ b/jikimo_purchase_request/models/purchase_order.py @@ -13,4 +13,14 @@ class PurchaseOrder(models.Model): ('done', '完成'), ('cancel', '取消'), ('rejected', '已驳回') - ], string='Status', readonly=True, index=True, copy=False, default='draft', tracking=True) \ No newline at end of file + ], string='Status', readonly=True, index=True, copy=False, default='draft', tracking=True) + + + def button_confirm(self): + res = super(PurchaseOrder, self).button_confirm() + # 取消反向调拨单 + reverse_move_ids = self.env['stock.move'].search([('origin', '=', self.name), ('purchase_line_id', '=', False)]) + if reverse_move_ids: + reverse_move_ids.picking_id.action_cancel() + return res + diff --git a/jikimo_purchase_request/models/stock_rule.py b/jikimo_purchase_request/models/stock_rule.py index 02dd3626..4a99e804 100644 --- a/jikimo_purchase_request/models/stock_rule.py +++ b/jikimo_purchase_request/models/stock_rule.py @@ -79,12 +79,4 @@ class StockRule(models.Model): ) res = super(StockRule, self)._run_buy(new_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 diff --git a/jikimo_purchase_request_tier_validation/__manifest__.py b/jikimo_purchase_request_tier_validation/__manifest__.py index 403297ab..0665e035 100644 --- a/jikimo_purchase_request_tier_validation/__manifest__.py +++ b/jikimo_purchase_request_tier_validation/__manifest__.py @@ -1,10 +1,9 @@ # -*- coding: utf-8 -*- { - 'name': "机企猫 采购审批流程", + 'name': "机企猫 采购申请审批流程", 'summary': """ - Short (1 phrase/line) summary of the module's purpose, used as - subtitle on modules listing or apps.openerp.com""", + 采购申请审批流程""", 'description': """ Long description of module's purpose diff --git a/jikimo_purchase_request_tier_validation/models/__init__.py b/jikimo_purchase_request_tier_validation/models/__init__.py index 5305644d..ff8a54e8 100644 --- a/jikimo_purchase_request_tier_validation/models/__init__.py +++ b/jikimo_purchase_request_tier_validation/models/__init__.py @@ -1,3 +1,4 @@ # -*- coding: utf-8 -*- -from . import models \ No newline at end of file +from . import models +from . import stock_rule \ No newline at end of file diff --git a/jikimo_purchase_request_tier_validation/models/stock_rule.py b/jikimo_purchase_request_tier_validation/models/stock_rule.py new file mode 100644 index 00000000..6bc521f2 --- /dev/null +++ b/jikimo_purchase_request_tier_validation/models/stock_rule.py @@ -0,0 +1,16 @@ +from odoo import models, api + +class StockRule(models.Model): + _inherit = 'stock.rule' + + 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 diff --git a/jikimo_purchase_tier_validation/__manifest__.py b/jikimo_purchase_tier_validation/__manifest__.py index ed0cecb7..c1c2c075 100644 --- a/jikimo_purchase_tier_validation/__manifest__.py +++ b/jikimo_purchase_tier_validation/__manifest__.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- { - 'name': "机企猫 采购申请审批流程", + 'name': "机企猫 采购审批流程", 'summary': """ - 采购申请审批流程""", + 采购审批流程""", 'description': """ - 采购申请审批流程""", + 采购审批流程""", 'author': "My Company", 'website': "https://www.yourcompany.com",