Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop
This commit is contained in:
@@ -824,11 +824,17 @@ class ResMrpWorkOrder(models.Model):
|
|||||||
('state', 'in', ['done'])])
|
('state', 'in', ['done'])])
|
||||||
if unclamp_workorder:
|
if unclamp_workorder:
|
||||||
workorder.state = 'ready'
|
workorder.state = 'ready'
|
||||||
logging.info('工序:%s' % workorder.sequence)
|
|
||||||
logging.info('工单最终状态:%s' % workorder.state)
|
|
||||||
# else:
|
# else:
|
||||||
# if workorder.state not in ['cancel', 'rework']:
|
# if workorder.state not in ['cancel', 'rework']:
|
||||||
# workorder.state = 'rework'
|
# workorder.state = 'rework'
|
||||||
|
if workorder.production_id.state == 'pending_cam':
|
||||||
|
if workorder.routing_type == '装夹预调' and workorder.state in ['ready', 'waiting']:
|
||||||
|
if workorder.production_id.tool_state in ['1', '2']:
|
||||||
|
workorder.state = 'waiting'
|
||||||
|
|
||||||
|
logging.info('工序:%s' % workorder.sequence)
|
||||||
|
logging.info('工单最终状态:%s' % workorder.state)
|
||||||
|
|
||||||
# elif workorder.routing_type == 'CNC加工' and workorder.state not in ['done', 'cancel', 'progress',
|
# elif workorder.routing_type == 'CNC加工' and workorder.state not in ['done', 'cancel', 'progress',
|
||||||
# 'rework']:
|
# 'rework']:
|
||||||
# per_work = self.env['mrp.workorder'].search(
|
# per_work = self.env['mrp.workorder'].search(
|
||||||
@@ -879,8 +885,12 @@ class ResMrpWorkOrder(models.Model):
|
|||||||
raise UserError(_('该制造订单还未下发CNC程序,请稍后再试'))
|
raise UserError(_('该制造订单还未下发CNC程序,请稍后再试'))
|
||||||
else:
|
else:
|
||||||
if self.production_id.tool_state in ['1', '2']:
|
if self.production_id.tool_state in ['1', '2']:
|
||||||
|
if self.production_id.tool_state == '1':
|
||||||
|
state = '缺刀'
|
||||||
|
else:
|
||||||
|
state = '无效刀'
|
||||||
raise UserError(
|
raise UserError(
|
||||||
f'制造订单【{self.production_id.name}】功能刀具状态为【{self.production_id.tool_state}】!')
|
f'制造订单【{self.production_id.name}】功能刀具状态为【{state}】!')
|
||||||
if self.routing_type == '解除装夹':
|
if self.routing_type == '解除装夹':
|
||||||
'''
|
'''
|
||||||
记录开始时间
|
记录开始时间
|
||||||
|
|||||||
@@ -819,7 +819,7 @@ class FunctionalToolDismantle(models.Model):
|
|||||||
integral_lot_id = fields.Many2one('stock.lot', string='整体式刀具批次', compute='_compute_functional_tool_num',
|
integral_lot_id = fields.Many2one('stock.lot', string='整体式刀具批次', compute='_compute_functional_tool_num',
|
||||||
store=True)
|
store=True)
|
||||||
integral_freight_id = fields.Many2one('sf.shelf.location', '整体式刀具目标货位',
|
integral_freight_id = fields.Many2one('sf.shelf.location', '整体式刀具目标货位',
|
||||||
domain="[('product_id', 'in', (integral_product_id, False)),('location_id.name', '=', '刀具房')]")
|
domain="[('product_id', 'in', (integral_product_id, False)),('rotative_Boolean', '=', True)]")
|
||||||
|
|
||||||
# 刀片
|
# 刀片
|
||||||
blade_product_id = fields.Many2one('product.product', string='刀片', compute='_compute_functional_tool_num',
|
blade_product_id = fields.Many2one('product.product', string='刀片', compute='_compute_functional_tool_num',
|
||||||
@@ -829,7 +829,7 @@ class FunctionalToolDismantle(models.Model):
|
|||||||
blade_brand_id = fields.Many2one('sf.machine.brand', string='刀片品牌', related='blade_product_id.brand_id')
|
blade_brand_id = fields.Many2one('sf.machine.brand', string='刀片品牌', related='blade_product_id.brand_id')
|
||||||
blade_lot_id = fields.Many2one('stock.lot', string='刀片批次', compute='_compute_functional_tool_num', store=True)
|
blade_lot_id = fields.Many2one('stock.lot', string='刀片批次', compute='_compute_functional_tool_num', store=True)
|
||||||
blade_freight_id = fields.Many2one('sf.shelf.location', '刀片目标货位',
|
blade_freight_id = fields.Many2one('sf.shelf.location', '刀片目标货位',
|
||||||
domain="[('product_id', 'in', (blade_product_id, False)),('location_id.name', '=', '刀具房')]")
|
domain="[('product_id', 'in', (blade_product_id, False)),('rotative_Boolean', '=', True)]")
|
||||||
|
|
||||||
# 刀杆
|
# 刀杆
|
||||||
bar_product_id = fields.Many2one('product.product', string='刀杆', compute='_compute_functional_tool_num',
|
bar_product_id = fields.Many2one('product.product', string='刀杆', compute='_compute_functional_tool_num',
|
||||||
@@ -839,7 +839,7 @@ class FunctionalToolDismantle(models.Model):
|
|||||||
bar_brand_id = fields.Many2one('sf.machine.brand', string='刀杆品牌', related='bar_product_id.brand_id')
|
bar_brand_id = fields.Many2one('sf.machine.brand', string='刀杆品牌', related='bar_product_id.brand_id')
|
||||||
bar_lot_id = fields.Many2one('stock.lot', string='刀杆批次', compute='_compute_functional_tool_num', store=True)
|
bar_lot_id = fields.Many2one('stock.lot', string='刀杆批次', compute='_compute_functional_tool_num', store=True)
|
||||||
bar_freight_id = fields.Many2one('sf.shelf.location', '刀杆目标货位',
|
bar_freight_id = fields.Many2one('sf.shelf.location', '刀杆目标货位',
|
||||||
domain="[('product_id', 'in', (bar_product_id, False)),('location_id.name', '=', '刀具房')]")
|
domain="[('product_id', 'in', (bar_product_id, False)),('rotative_Boolean', '=', True)]")
|
||||||
|
|
||||||
# 刀盘
|
# 刀盘
|
||||||
pad_product_id = fields.Many2one('product.product', string='刀盘', compute='_compute_functional_tool_num',
|
pad_product_id = fields.Many2one('product.product', string='刀盘', compute='_compute_functional_tool_num',
|
||||||
@@ -849,7 +849,7 @@ class FunctionalToolDismantle(models.Model):
|
|||||||
pad_brand_id = fields.Many2one('sf.machine.brand', string='刀盘品牌', related='pad_product_id.brand_id')
|
pad_brand_id = fields.Many2one('sf.machine.brand', string='刀盘品牌', related='pad_product_id.brand_id')
|
||||||
pad_lot_id = fields.Many2one('stock.lot', string='刀盘批次', compute='_compute_functional_tool_num', store=True)
|
pad_lot_id = fields.Many2one('stock.lot', string='刀盘批次', compute='_compute_functional_tool_num', store=True)
|
||||||
pad_freight_id = fields.Many2one('sf.shelf.location', '刀盘目标货位',
|
pad_freight_id = fields.Many2one('sf.shelf.location', '刀盘目标货位',
|
||||||
domain="[('product_id', 'in', (pad_product_id, False)),('location_id.name', '=', '刀具房')]")
|
domain="[('product_id', 'in', (pad_product_id, False)),('rotative_Boolean', '=', True)]")
|
||||||
|
|
||||||
# 夹头
|
# 夹头
|
||||||
chuck_product_id = fields.Many2one('product.product', string='夹头', compute='_compute_functional_tool_num',
|
chuck_product_id = fields.Many2one('product.product', string='夹头', compute='_compute_functional_tool_num',
|
||||||
@@ -859,7 +859,7 @@ class FunctionalToolDismantle(models.Model):
|
|||||||
chuck_brand_id = fields.Many2one('sf.machine.brand', string='夹头品牌', related='chuck_product_id.brand_id')
|
chuck_brand_id = fields.Many2one('sf.machine.brand', string='夹头品牌', related='chuck_product_id.brand_id')
|
||||||
chuck_lot_id = fields.Many2one('stock.lot', string='夹头批次', compute='_compute_functional_tool_num', store=True)
|
chuck_lot_id = fields.Many2one('stock.lot', string='夹头批次', compute='_compute_functional_tool_num', store=True)
|
||||||
chuck_freight_id = fields.Many2one('sf.shelf.location', '夹头目标货位',
|
chuck_freight_id = fields.Many2one('sf.shelf.location', '夹头目标货位',
|
||||||
domain="[('product_id', 'in', (chuck_product_id, False)),('location_id.name', '=', '刀具房')]")
|
domain="[('product_id', 'in', (chuck_product_id, False)),('rotative_Boolean', '=', True)]")
|
||||||
|
|
||||||
@api.onchange('functional_tool_id')
|
@api.onchange('functional_tool_id')
|
||||||
def _onchange_freight(self):
|
def _onchange_freight(self):
|
||||||
|
|||||||
@@ -254,6 +254,7 @@ class SfShelf(models.Model):
|
|||||||
shelf_height = fields.Float(string='货架高度(m)')
|
shelf_height = fields.Float(string='货架高度(m)')
|
||||||
shelf_layer = fields.Integer(string='货架层数')
|
shelf_layer = fields.Integer(string='货架层数')
|
||||||
layer_capacity = fields.Integer(string='层数容量')
|
layer_capacity = fields.Integer(string='层数容量')
|
||||||
|
shelf_rotative_Boolean = fields.Boolean('循环货架', default=False)
|
||||||
|
|
||||||
# 是否有货位
|
# 是否有货位
|
||||||
is_there_area = fields.Boolean(string='是否有货位', compute='_compute_is_there_area', default=False, store=True)
|
is_there_area = fields.Boolean(string='是否有货位', compute='_compute_is_there_area', default=False, store=True)
|
||||||
@@ -361,6 +362,7 @@ class ShelfLocation(models.Model):
|
|||||||
|
|
||||||
name = fields.Char('货位名称', required=True, size=20)
|
name = fields.Char('货位名称', required=True, size=20)
|
||||||
barcode = fields.Char('货位编码', copy=False, size=50)
|
barcode = fields.Char('货位编码', copy=False, size=50)
|
||||||
|
rotative_Boolean = fields.Boolean('循环货位', related='shelf_id.shelf_rotative_Boolean', store=True)
|
||||||
qr_code = fields.Binary(string='二维码', compute='_compute_location_qr_code', store=True)
|
qr_code = fields.Binary(string='二维码', compute='_compute_location_qr_code', store=True)
|
||||||
|
|
||||||
# 货架
|
# 货架
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
<field name="shelf_height" string="货架高度(m)"/>
|
<field name="shelf_height" string="货架高度(m)"/>
|
||||||
<field name="shelf_layer" string="货架层数"/>
|
<field name="shelf_layer" string="货架层数"/>
|
||||||
<field name="layer_capacity" string="层数容量"/>
|
<field name="layer_capacity" string="层数容量"/>
|
||||||
|
<field name="shelf_rotative_Boolean"/>
|
||||||
</group>
|
</group>
|
||||||
<notebook>
|
<notebook>
|
||||||
<page string="货位">
|
<page string="货位">
|
||||||
@@ -169,6 +170,7 @@
|
|||||||
<group>
|
<group>
|
||||||
<field name="barcode" readonly="1"/>
|
<field name="barcode" readonly="1"/>
|
||||||
<field name="name" readonly="1"/>
|
<field name="name" readonly="1"/>
|
||||||
|
<field name="rotative_Boolean" invisible="1"/>
|
||||||
<field name="shelf_id" readonly="1"/>
|
<field name="shelf_id" readonly="1"/>
|
||||||
<field name="location_id" readonly="1"/>
|
<field name="location_id" readonly="1"/>
|
||||||
<field name="product_id"/>
|
<field name="product_id"/>
|
||||||
|
|||||||
Reference in New Issue
Block a user