Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造订单报废
This commit is contained in:
@@ -1260,7 +1260,6 @@ class MrpProduction(models.Model):
|
|||||||
重新生成制造订单
|
重新生成制造订单
|
||||||
"""
|
"""
|
||||||
if self.is_scrap is True:
|
if self.is_scrap is True:
|
||||||
technology_design_values = []
|
|
||||||
procurement_requests = []
|
procurement_requests = []
|
||||||
sale_order = self.env['sale.order'].sudo().search([('name', '=', self.origin)])
|
sale_order = self.env['sale.order'].sudo().search([('name', '=', self.origin)])
|
||||||
values = self.env['mrp.production'].create_production1_values(self)
|
values = self.env['mrp.production'].create_production1_values(self)
|
||||||
@@ -1352,69 +1351,6 @@ class MrpProduction(models.Model):
|
|||||||
productions.programming_state = '已编程'
|
productions.programming_state = '已编程'
|
||||||
else:
|
else:
|
||||||
productions.programming_state = '编程中'
|
productions.programming_state = '编程中'
|
||||||
if not technology_design_values:
|
|
||||||
i = 0
|
|
||||||
if self.product_id.categ_id.type == '成品':
|
|
||||||
# 根据加工面板的面数及成品工序模板生成工序设计
|
|
||||||
for k in (self.product_id.model_processing_panel.split(',')):
|
|
||||||
if self.production_type == '自动化产线加工':
|
|
||||||
product_routing_workcenter = self.env['sf.product.model.type.routing.sort'].search(
|
|
||||||
[('product_model_type_id', '=',
|
|
||||||
self.product_id.product_model_type_id.id)],
|
|
||||||
order='sequence asc'
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
product_routing_workcenter = self.env[
|
|
||||||
'sf.manual.product.model.type.routing.sort'].search(
|
|
||||||
[('manual_product_model_type_id', '=',
|
|
||||||
self.product_id.product_model_type_id.id)],
|
|
||||||
order='sequence asc'
|
|
||||||
)
|
|
||||||
for route in product_routing_workcenter:
|
|
||||||
i += 1
|
|
||||||
technology_design_values.append(
|
|
||||||
self.env['sf.technology.design'].json_technology_design_str(k, route, i, False))
|
|
||||||
elif self.product_id.categ_id.type == '坯料':
|
|
||||||
i = 0
|
|
||||||
embryo_routing_workcenter = self.env['sf.embryo.model.type.routing.sort'].search(
|
|
||||||
[('embryo_model_type_id', '=', self.product_id.embryo_model_type_id.id)],
|
|
||||||
order='sequence asc'
|
|
||||||
)
|
|
||||||
for route_embryo in embryo_routing_workcenter:
|
|
||||||
i += 1
|
|
||||||
technology_design_values.append(
|
|
||||||
self.env['sf.technology.design'].json_technology_design_str(False, route_embryo, i,
|
|
||||||
False))
|
|
||||||
surface_technics_arr = []
|
|
||||||
route_workcenter_arr = []
|
|
||||||
for item in self.product_id.product_model_type_id.surface_technics_routing_tmpl_ids:
|
|
||||||
if item.route_workcenter_id.surface_technics_id.id:
|
|
||||||
for process_param in self.product_id.model_process_parameters_ids:
|
|
||||||
if item.route_workcenter_id.surface_technics_id == process_param.process_id:
|
|
||||||
surface_technics_arr.append(
|
|
||||||
item.route_workcenter_id.surface_technics_id.id)
|
|
||||||
route_workcenter_arr.append(item.route_workcenter_id.id)
|
|
||||||
if surface_technics_arr:
|
|
||||||
production_process = self.env['sf.production.process'].search(
|
|
||||||
[('id', 'in', surface_technics_arr)],
|
|
||||||
order='sequence asc'
|
|
||||||
)
|
|
||||||
for p in production_process:
|
|
||||||
# logging.info('production_process:%s' % p.name)
|
|
||||||
process_parameter = self.product_id.model_process_parameters_ids.filtered(
|
|
||||||
lambda pm: pm.process_id.id == p.id)
|
|
||||||
if process_parameter:
|
|
||||||
i += 1
|
|
||||||
route_production_process = self.env[
|
|
||||||
'mrp.routing.workcenter'].search(
|
|
||||||
[('surface_technics_id', '=', p.id),
|
|
||||||
('id', 'in', route_workcenter_arr)])
|
|
||||||
technology_design_values.append(
|
|
||||||
self.env['sf.technology.design'].json_technology_design_str(False,
|
|
||||||
route_production_process,
|
|
||||||
i,
|
|
||||||
process_parameter))
|
|
||||||
productions.technology_design_ids = technology_design_values
|
|
||||||
return productions
|
return productions
|
||||||
|
|
||||||
# 在之前的销售单上重新生成制造订单
|
# 在之前的销售单上重新生成制造订单
|
||||||
|
|||||||
@@ -952,23 +952,29 @@ class ReStockMove(models.Model):
|
|||||||
合并制造订单的完成move单据
|
合并制造订单的完成move单据
|
||||||
"""
|
"""
|
||||||
res = super(ReStockMove, self)._merge_moves_fields()
|
res = super(ReStockMove, self)._merge_moves_fields()
|
||||||
res = self._single_manufactuing_mo_generate_origin(res)
|
if self[0].origin and self.picking_type_id.name in ['生产发料', '内部调拨']:
|
||||||
|
production = self.env['mrp.production'].search([('name', '=', self[0].origin)], limit=1, order='id asc')
|
||||||
|
productions = self.env['mrp.production'].search([('origin', '=', production.origin), ('product_id', '=', production.product_id.id)])
|
||||||
|
res['origin'] = ','.join(productions.mapped('name'))
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def _get_new_picking_values(self):
|
def _get_new_picking_values(self):
|
||||||
|
"""
|
||||||
|
创建调拨单时,在此新增或修改调拨单的数据
|
||||||
|
"""
|
||||||
res = super(ReStockMove, self)._get_new_picking_values()
|
res = super(ReStockMove, self)._get_new_picking_values()
|
||||||
res = self._single_manufactuing_mo_generate_origin(res)
|
if self[0].origin and self.picking_type_id.name in ['生产发料', '内部调拨']:
|
||||||
|
production = self.env['mrp.production'].search([('name', '=', self[0].origin)], limit=1, order='id asc')
|
||||||
|
productions = self.env['mrp.production'].search([('origin', '=', production.origin), ('product_id', '=', production.product_id.id)])
|
||||||
|
res['origin'] = ','.join(productions.mapped('name'))
|
||||||
|
res['retrospect_ref'] = production.product_id.name
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def _single_manufactuing_mo_generate_origin(self, res):
|
def _single_manufactuing_mo_generate_origin(self, res):
|
||||||
"""
|
"""
|
||||||
单个制造订单的完成move单据修改来源为该制造订单关联的销售订单下所有成品相同的制造订单
|
单个制造订单的完成move单据修改来源为该制造订单关联的销售订单下所有成品相同的制造订单
|
||||||
"""
|
"""
|
||||||
if self[0].origin and self.picking_type_id.name in ['生产发料', '内部调拨']:
|
|
||||||
production = self.env['mrp.production'].search([('name', '=', self[0].origin)], limit=1, order='id asc')
|
|
||||||
productions = self.env['mrp.production'].search([('origin', '=', production.origin), ('product_id', '=', production.product_id.id)])
|
|
||||||
res['origin'] = ','.join(productions.mapped('name'))
|
|
||||||
return res
|
|
||||||
|
|
||||||
|
|
||||||
class ReStockQuant(models.Model):
|
class ReStockQuant(models.Model):
|
||||||
|
|||||||
@@ -250,7 +250,7 @@
|
|||||||
<field name='tag_type' readonly="1" attrs='{"invisible": [("tag_type","=",False)]}'
|
<field name='tag_type' readonly="1" attrs='{"invisible": [("tag_type","=",False)]}'
|
||||||
decoration-danger="tag_type == '重新加工'"/>
|
decoration-danger="tag_type == '重新加工'"/>
|
||||||
<field name="is_test_env" invisible="1"/>
|
<field name="is_test_env" invisible="1"/>
|
||||||
<field name="rfid_code" force_save="1" readonly="1" cache="True"
|
<field name="rfid_code" force_save="1" readonly="0" cache="True"
|
||||||
attrs="{'invisible': [('rfid_code_old', '!=', False)]}" />
|
attrs="{'invisible': [('rfid_code_old', '!=', False)]}" />
|
||||||
<field name="rfid_code" string="RFID码(手动输入框)" force_save="1" readonly="0" cache="True"
|
<field name="rfid_code" string="RFID码(手动输入框)" force_save="1" readonly="0" cache="True"
|
||||||
attrs="{'invisible': ['|',('rfid_code_old', '!=', False), ('is_test_env', '=', False)]}"/>
|
attrs="{'invisible': ['|',('rfid_code_old', '!=', False), ('is_test_env', '=', False)]}"/>
|
||||||
|
|||||||
Reference in New Issue
Block a user