Files
gzth/yuthon_stock/wizard/stock_picking_submit_wizard.py
T
2026-04-28 10:15:26 +08:00

45 lines
1.4 KiB
Python

# -*- coding: utf-8 -*-
from odoo import models, fields, api
from odoo.exceptions import UserError
class StockPickingSubmitWizard(models.TransientModel):
_name = 'stock.picking.submit.wizard'
_description = '借用/领用提交审批向导'
picking_id = fields.Many2one('stock.picking', string='单据', required=True)
approver_id = fields.Many2one(
'res.users',
string='审批人',
required=True,
options="{'no_create': True}",
)
borrower_id = fields.Many2one(
'res.users',
string='借用人',
required=True,
options="{'no_create': True}",
)
@api.model
def default_get(self, fields_list):
res = super().default_get(fields_list)
picking_id = self.env.context.get('active_id')
if picking_id:
picking = self.env['stock.picking'].browse(picking_id)
res['picking_id'] = picking_id
res['approver_id'] = picking.approver_id.id or False
res['borrower_id'] = picking.borrower_id.id or self.env.user.id
return res
def action_confirm(self):
picking = self.picking_id
if not picking:
raise UserError('未找到对应单据')
picking.write({
'approver_id': self.approver_id.id,
'borrower_id': self.borrower_id.id,
})
picking.action_submit()
return {'type': 'ir.actions.act_window_close'}