所以我的想法是,当我更换产品时,它会检查当前分支上的可用库存,如果没有,它会引发错误,即没有库存
预期行为:当所选产品上没有可用库存时,会引发错误,如果没有可用库存,则不会将记录添加到树视图中
当前行为:当所选产品上没有可用库存,但记录仍添加到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'))
如果不希望记录到one2many字段中,请设置
product_id=False
。并返回验证字典尝试以下代码
相关问题 更多 >
编程相关推荐