添加禁止负库存功能
This commit is contained in:
29
sf_warehouse/models/product.py
Normal file
29
sf_warehouse/models/product.py
Normal file
@@ -0,0 +1,29 @@
|
||||
from odoo import models, fields
|
||||
from odoo.exceptions import ValidationError
|
||||
|
||||
|
||||
class SfProductCategory(models.Model):
|
||||
_inherit = 'product.category'
|
||||
|
||||
negative_inventory_allowed = fields.Boolean('可负库存', default=True)
|
||||
|
||||
|
||||
class SfProductTemplate(models.Model):
|
||||
_inherit = 'product.product'
|
||||
|
||||
def verify_product_repertory(self, location_id):
|
||||
"""
|
||||
验证产品 负库存
|
||||
"""
|
||||
if not location_id:
|
||||
raise ValidationError('当前位置为空!!')
|
||||
elif len(location_id) != 1:
|
||||
raise ValidationError(f'存在多个当前位置{[item.name for item in location_id]}')
|
||||
elif location_id.usage == 'supplier':
|
||||
return True
|
||||
for pp in self:
|
||||
if not pp.categ_id.negative_inventory_allowed:
|
||||
sq = pp.stock_quant_ids.filtered(lambda sq: sq.quantity < 0 and sq.location_id == location_id)
|
||||
if sq:
|
||||
raise ValidationError(
|
||||
f'产品{pp.name}的产品类型设置为不可负库存,当前操作会导致产品{pp.name}在库存{location_id.name}上的库存数量为负!!!')
|
||||
Reference in New Issue
Block a user