Accept Merge Request #1663: (feature/消息提醒优化 -> develop)
Merge Request: 新增零件名称,零件图号 Created By: @管欢 Reviewed By: @胡尧 Approved By: @胡尧 Accepted By: @管欢 URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1663
This commit is contained in:
@@ -588,40 +588,33 @@ class StockPicking(models.Model):
|
||||
address_of_delivery = fields.Char('联系地址', compute='_compute_move_ids', store=True)
|
||||
|
||||
retrospect_ref = fields.Char('追溯参考', compute='_compute_move_ids', store=True)
|
||||
|
||||
sale_order_id = fields.Many2one('sale.order', '销售单号', compute='_compute_move_ids', store=True)
|
||||
picking_type_sequence_code = fields.Char(related='picking_type_id.sequence_code')
|
||||
|
||||
@api.depends('move_ids', 'move_ids.product_id')
|
||||
def _compute_move_ids(self):
|
||||
for item in self:
|
||||
if item.move_ids:
|
||||
if item.picking_type_id.sequence_code == 'DL':
|
||||
sale_name = item.move_ids[0].product_id.name.split('-')[1]
|
||||
if 'S' in sale_name:
|
||||
sale_id = self.env['sale.order'].sudo().search([('name', '=', sale_name)])
|
||||
item.person_of_delivery = sale_id.person_of_delivery
|
||||
item.telephone_of_delivery = sale_id.telephone_of_delivery
|
||||
item.address_of_delivery = sale_id.address_of_delivery
|
||||
product_id = item.move_ids[0].product_id
|
||||
if product_id:
|
||||
sale_info = None
|
||||
if product_id.categ_id.type == '坯料' and product_id.name.startswith('R-S'):
|
||||
parts = product_id.name.split('-')
|
||||
if len(parts) >= 3:
|
||||
sale_name = parts[1]
|
||||
sale_info = self.env['sale.order'].sudo().search(
|
||||
[('name', '=', sale_name)])
|
||||
else:
|
||||
raise ValidationError('坯料名称格式错误,正确格式为[R-S???-?]!!!')
|
||||
move_ids = []
|
||||
for move_id in item.move_ids:
|
||||
move_ids.append(move_id.product_id.id)
|
||||
boms = self.env['mrp.bom'].sudo().search([('bom_line_ids.product_id', 'in', move_ids)])
|
||||
if boms:
|
||||
codes_list = []
|
||||
for bom in boms:
|
||||
if bom.product_tmpl_id.default_code:
|
||||
code_list = bom.product_tmpl_id.default_code.split('-')
|
||||
if len(code_list) >= 4:
|
||||
code = '-'.join(code_list[:4])
|
||||
if code not in codes_list:
|
||||
codes_list.append(code)
|
||||
else:
|
||||
raise ValidationError('坯料成品的内部参考值格式错误')
|
||||
item.retrospect_ref = ','.join(codes_list)
|
||||
elif item.picking_type_id.sequence_code in ['INT', 'PC']:
|
||||
pass
|
||||
production_list = self.env['mrp.production'].sudo().search(
|
||||
[('product_id', '=', product_id.id)])
|
||||
if production_list:
|
||||
sale_info = production_list[0].sale_order_id
|
||||
if sale_info:
|
||||
item.sale_order_id = sale_info.id
|
||||
if item.picking_type_id.sequence_code == 'DL':
|
||||
item.person_of_delivery = sale_info.person_of_delivery
|
||||
item.telephone_of_delivery = sale_info.telephone_of_delivery
|
||||
item.address_of_delivery = sale_info.address_of_delivery
|
||||
|
||||
# 设置外协出入单的名称
|
||||
def _get_name_Res(self, rescode):
|
||||
@@ -733,6 +726,34 @@ class ReStockMove(models.Model):
|
||||
materiel_length = fields.Float(string='物料长度', digits=(16, 4))
|
||||
materiel_width = fields.Float(string='物料宽度', digits=(16, 4))
|
||||
materiel_height = fields.Float(string='物料高度', digits=(16, 4))
|
||||
part_number = fields.Char(string='零件图号', compute='_compute_part_info', store=True)
|
||||
part_name = fields.Char(string='零件名称', compute='_compute_part_info', store=True)
|
||||
|
||||
@api.depends('product_id')
|
||||
def _compute_part_info(self):
|
||||
for move in self:
|
||||
if move.product_id.categ_id.type == '成品':
|
||||
move.part_number = move.product_id.part_number
|
||||
move.part_name = move.product_id.part_name
|
||||
elif move.product_id.categ_id.type == '坯料':
|
||||
if move.origin:
|
||||
origin = move.origin.split(',')[0] if ',' in move.origin else move.origin
|
||||
mrp_productio_info = self.env['mrp.production'].sudo().search(
|
||||
[('name', '=', origin)])
|
||||
if mrp_productio_info:
|
||||
move.part_number = mrp_productio_info.part_number
|
||||
move.part_name = mrp_productio_info.part_name
|
||||
else:
|
||||
purchase_order_info = self.env['purchase.order'].sudo().search(
|
||||
[('name', '=', origin)])
|
||||
if purchase_order_info:
|
||||
mrp_production_ids = purchase_order_info._get_mrp_productions().ids
|
||||
if mrp_production_ids:
|
||||
mrp_productio_info = self.env['mrp.production'].sudo().search(
|
||||
[('id', '=', mrp_production_ids[0])])
|
||||
if mrp_productio_info:
|
||||
move.part_number = mrp_productio_info.part_number
|
||||
move.part_name = mrp_productio_info.part_name
|
||||
|
||||
def _get_stock_move_values_Res(self, item, picking_type_id, group_id, move_dest_ids=False):
|
||||
route_id = self.env.ref('sf_manufacturing.route_surface_technology_outsourcing').id
|
||||
|
||||
Reference in New Issue
Block a user