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 purchase_request_purchase_order_count = fields.Integer('采购申请单数量', compute='_compute_purchase_request_count', store=True) @api.depends('state') def _compute_purchase_request_count(self): for so in self: pr_ids = self.env['purchase.request'].sudo().search([('origin', 'like', so.name)]) if pr_ids: so.purchase_request_purchase_order_count = len(pr_ids) else: so.purchase_request_purchase_order_count = 0 def action_view_purchase_request_purchase_orders(self): """ 采购请求 """ self.ensure_one() pr_ids = self.env['purchase.request'].sudo().search([('origin', 'like', self.name)]) action = { 'res_model': 'purchase.request', 'type': 'ir.actions.act_window', } if len(pr_ids) == 1: action.update({ 'view_mode': 'form', 'res_id': pr_ids[0].id, }) else: action.update({ 'name': _("从 %s生成采购请求单", self.name), 'domain': [('id', 'in', pr_ids)], 'view_mode': 'tree,form', }) return action