处理 客供料入库单优化 需求

This commit is contained in:
yuxianghui
2024-11-06 17:24:10 +08:00
parent 8ea72198ea
commit 211d74d9ff
8 changed files with 83 additions and 20 deletions

View File

@@ -141,11 +141,11 @@ class ResProductMo(models.Model):
cutting_tool_coarse_medium_fine = fields.Selection(related='cutting_tool_model_id.integral_coarse_medium_fine', string='粗/中/精')
# cutting_tool_model_id.integral_coarse_medium_fine
# cutting_tool_run_out_accuracy_max = fields.Float('端跳精度max', digits=(6, 1))
cutting_tool_run_out_accuracy_max = fields.Char(related='cutting_tool_model_id.integral_run_out_accuracy_max', string='端跳精度max', digits=(6, 1))
cutting_tool_run_out_accuracy_max = fields.Char(related='cutting_tool_model_id.integral_run_out_accuracy_max', string='端跳精度max')
# cutting_tool_model_id.integral_run_out_accuracy_max
# cutting_tool_run_out_accuracy_min = fields.Float('端跳精度min', digits=(6, 1))
cutting_tool_run_out_accuracy_min = fields.Char(related='cutting_tool_model_id.integral_run_out_accuracy_min',
string='端跳精度min', digits=(6, 1))
string='端跳精度min')
# cutting_tool_model_id.integral_run_out_accuracy_min
# cutting_tool_blade_tip_working_size = fields.Char('刀尖倒角度(°)', size=20)
cutting_tool_blade_tip_working_size = fields.Char(related='specification_id.blade_tip_working_size',

View File

@@ -548,6 +548,35 @@ class StockPicking(models.Model):
_inherit = 'stock.picking'
surface_technics_parameters_id = fields.Many2one('sf.production.process.parameter', string="表面工艺可选参数")
person_of_delivery = fields.Char('收货人', compute='_compute_origin', store=True)
telephone_of_delivery = fields.Char('电话号码', compute='_compute_origin', store=True)
address_of_delivery = fields.Char('联系地址', compute='_compute_origin')
retrospect_ref = fields.Char('追溯参考', compute='_compute_origin', store=True)
@api.depends('origin')
def _compute_origin(self):
"""
计算带料入库单对应销售单
"""
for item in self:
if item.picking_type_id.sequence_code == 'DL' and item.origin:
if 'WH/IN/' in item.origin:
picking_id = self.env['stock.picking'].search([('name', '=', item.origin)])
if picking_id and picking_id.origin:
purchase_id = self.env['purchase.order'].sudo().search([('name', '=', picking_id.origin)])
if purchase_id and purchase_id.origin:
sale_id = self.env['sale.order'].sudo().search([('name', '=', purchase_id.origin)])
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
bom = self.env['mrp.bom'].sudo().search([('bom_line_ids.product_id', '=', self.move_ids.product_id.id)])
if bom:
if item.picking_type_id.sequence_code == 'DL':
item.retrospect_ref = bom.product_tmpl_id.default_code
elif item.picking_type_id.sequence_code in ['INT', 'PC']:
item.retrospect_ref = bom.product_tmpl_id.name
# 设置外协出入单的名称
def _get_name_Res(self, rescode):
@@ -741,6 +770,8 @@ class ReStockMove(models.Model):
self.next_serial = self.env['stock.lot']._get_next_serial(self.company_id, self.product_id)
elif self.product_id.tracking == "lot":
self._put_tool_lot(self.company_id, self.product_id, self.origin)
if not self.move_line_nosuggest_ids:
self._generate_serial_numbers()
return {
'name': _('Detailed Operations'),