1、功能刀具清单模型添加功能刀具名称重名检验,2、功能刀具安全库存模型添加根据所选功能刀具名称自动带出类型、刀具组、直径、R角信息;3、优化刀具物料搜索模型,物料数量字段改为存储字段,根据对应产品的各个位置的库存数量自动计算刀具物料的总数等值;
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from datetime import date
|
||||
from odoo import fields, models, api
|
||||
from odoo.exceptions import UserError
|
||||
|
||||
|
||||
class CuttingToolMaterial(models.Model):
|
||||
@@ -333,3 +334,16 @@ class ToolInventory(models.Model):
|
||||
tool_groups_id = fields.Many2one('sf.tool.groups', string='刀具组')
|
||||
|
||||
active = fields.Boolean('已归档', default=True)
|
||||
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
# 名称重复校验
|
||||
name_list = []
|
||||
for val in vals_list:
|
||||
tool_inventory = self.search([('name', '=', val['name'])])
|
||||
if tool_inventory:
|
||||
name_list.append(val['name'])
|
||||
if name_list:
|
||||
raise UserError("功能刀具名称%s已存在,请重新输入" % name_list)
|
||||
records = super(ToolInventory, self).create(vals_list)
|
||||
return records
|
||||
|
||||
@@ -370,6 +370,15 @@ class RealTimeDistributionOfFunctionalTools(models.Model):
|
||||
|
||||
active = fields.Boolean(string='已归档', default=True)
|
||||
|
||||
@api.onchange('functional_name_id')
|
||||
def _onchange_num(self):
|
||||
for item in self:
|
||||
if item.functional_name_id:
|
||||
item.tool_groups_id = item.functional_name_id.tool_groups_id.id
|
||||
item.sf_cutting_tool_type_id = item.functional_name_id.functional_cutting_tool_model_id.id
|
||||
item.diameter = item.functional_name_id.diameter
|
||||
item.knife_tip_r_angle = item.functional_name_id.angle
|
||||
|
||||
@api.depends('functional_name_id')
|
||||
def _compute_name(self):
|
||||
for obj in self:
|
||||
|
||||
@@ -20,14 +20,14 @@ class ToolMaterial(models.Model):
|
||||
specification_id = fields.Many2one('sf.tool.materials.basic.parameters', '规格',
|
||||
related='product_id.specification_id')
|
||||
image = fields.Binary('图片', related='product_id.image_1920')
|
||||
number = fields.Integer('总数量', compute='_compute_number')
|
||||
usable_num = fields.Integer('可用数量', compute='_compute_number')
|
||||
have_been_used_num = fields.Integer('在用数量', compute='_compute_number')
|
||||
scrap_num = fields.Integer('报废数量', compute='_compute_number')
|
||||
number = fields.Integer('总数量', compute='_compute_number', store=True)
|
||||
usable_num = fields.Integer('可用数量', compute='_compute_number', store=True)
|
||||
have_been_used_num = fields.Integer('在用数量', compute='_compute_number', store=True)
|
||||
scrap_num = fields.Integer('报废数量', compute='_compute_number', store=True)
|
||||
|
||||
barcode_ids = fields.One2many('stock.lot', 'tool_material_search_id', string='序列号', readonly=True)
|
||||
|
||||
@api.depends('product_id')
|
||||
@api.depends('product_id.stock_quant_ids.quantity')
|
||||
def _compute_number(self):
|
||||
for record in self:
|
||||
usable_num = 0
|
||||
@@ -47,29 +47,8 @@ class ToolMaterial(models.Model):
|
||||
record.have_been_used_num = have_been_used_num
|
||||
record.scrap_num = scrap_num
|
||||
record.number = usable_num + have_been_used_num + scrap_num
|
||||
|
||||
# @api.depends('barcode_ids')
|
||||
# def _compute_number(self):
|
||||
# for record in self:
|
||||
# usable_num = 0
|
||||
# have_been_used_num = 0
|
||||
# scrap_num = 0
|
||||
# if record.barcode_ids:
|
||||
# record.number = len(record.barcode_ids)
|
||||
# for barcode_id in record.barcode_ids:
|
||||
# if barcode_id.quant_ids:
|
||||
# if barcode_id.quant_ids[-1].location_id.name == '刀具组装位置':
|
||||
# have_been_used_num = have_been_used_num + 1
|
||||
# else:
|
||||
# usable_num = usable_num + 1
|
||||
# record.usable_num = usable_num
|
||||
# record.have_been_used_num = have_been_used_num
|
||||
# record.scrap_num = scrap_num
|
||||
# else:
|
||||
# record.number = 0
|
||||
# record.usable_num = 0
|
||||
# record.have_been_used_num = 0
|
||||
# record.scrap_num = 0
|
||||
# 更新数据到cloud的动态数据
|
||||
record.enroll_tool_material()
|
||||
|
||||
@api.model
|
||||
def _read_group_cutting_tool_material_id(self, categories, domain, order):
|
||||
|
||||
@@ -338,21 +338,23 @@
|
||||
<field name="status_create" invisible="1"/>
|
||||
<group>
|
||||
<group>
|
||||
<field name="sf_cutting_tool_type_id" class="custom_required"
|
||||
attrs="{'readonly': [('status_create', '=', False)]}"/>
|
||||
<field name="tool_groups_id" class="custom_required" options="{'no_create': True}"
|
||||
attrs="{'readonly': [('status_create', '=', False)]}"/>
|
||||
<field name="diameter" class="custom_required"
|
||||
attrs="{'readonly': [('status_create', '=', False)]}"/>
|
||||
<field name="knife_tip_r_angle" class="custom_required"
|
||||
attrs="{'readonly': [('status_create', '=', False)]}"/>
|
||||
<field name="coarse_middle_thin"
|
||||
attrs="{'readonly': [('status_create', '=', False)]}"/>
|
||||
<field name="whether_standard_knife"
|
||||
attrs="{'readonly': [('status_create', '=', False)]}"/>
|
||||
<field name="min_stock_num" class="custom_required"/>
|
||||
<field name="max_stock_num" class="custom_required"/>
|
||||
<field name="batch_replenishment_num"/>
|
||||
<group>
|
||||
<field name="sf_cutting_tool_type_id" class="custom_required"
|
||||
attrs="{'readonly': [('status_create', '=', False)]}"/>
|
||||
<field name="tool_groups_id" class="custom_required" options="{'no_create': True}"
|
||||
attrs="{'readonly': [('status_create', '=', False)]}"/>
|
||||
<field name="diameter" class="custom_required"
|
||||
attrs="{'readonly': [('status_create', '=', False)]}"/>
|
||||
<field name="knife_tip_r_angle" class="custom_required"
|
||||
attrs="{'readonly': [('status_create', '=', False)]}"/>
|
||||
<field name="coarse_middle_thin"
|
||||
attrs="{'readonly': [('status_create', '=', False)]}"/>
|
||||
<field name="whether_standard_knife"
|
||||
attrs="{'readonly': [('status_create', '=', False)]}"/>
|
||||
<field name="min_stock_num" class="custom_required"/>
|
||||
<field name="max_stock_num" class="custom_required"/>
|
||||
<field name="batch_replenishment_num"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name="image" widget='image'
|
||||
|
||||
Reference in New Issue
Block a user