所以这个想法是当我改变产品时,它会检查当前分支上可用的库存,如果没有,则会引发没有库存的错误
预期行为:当所选产品上没有库存时,将引发错误,如果没有库存可用,则不会将记录添加到树视图中
当前行为:当所选产品上没有库存可用但记录仍被添加到 one2many 树视图中时,将引发错误
代码如下
# -*- coding: utf-8 -*-
from docutils.nodes import line
from odoo import models, fields, api, _
from odoo.exceptions import ValidationError
class CustomTransRequest(models.Model):
_name = 'custom.trans.request'
_description = 'Transfer Request'
user_id = fields.Many2one('res.users', string='Salesperson', default=lambda self: self.env.user)
branch_from_id = fields.Many2one('custom.branch', string="From", required=True)
branch_to_id = fields.Many2one('custom.branch', string="To", required=True)
product_ids = fields.One2many(comodel_name="custom.trans.line", inverse_name="request_id", string="Products",
required=False, )
class CustomTransLine(models.Model):
_name = 'custom.trans.line'
_description = 'Transfer Request Line'
branch_from_id = fields.Many2one(comodel_name="custom.branch", string="Branch", )
request_id = fields.Many2one("custom.trans.request", string="Request ID", )
product_id = fields.Many2one("custom.product", string="Product", required=True, )
qty = fields.Integer(string="Qty")
@api.onchange('product_id')
def onchange_product(self):
if self.product_id:
for rec in self:
selected_lines = rec.env['custom.branch.line'].search(
['&', ('product_id', '=', rec.product_id.id), ('branch_id', '=', rec.branch_from_id.id)]).mapped(
'qty')
if not selected_lines:
raise ValidationError(
_('Current branch has ZERO stock on this product, Please select an available Product'))
斯蒂芬大帝
相关分类