45 lines
1.4 KiB
Python
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'}
|