diff --git a/jikimo_frontend/__manifest__.py b/jikimo_frontend/__manifest__.py index 65438849..e5424c39 100644 --- a/jikimo_frontend/__manifest__.py +++ b/jikimo_frontend/__manifest__.py @@ -31,7 +31,7 @@ 'jikimo_frontend/static/src/js/custom_form_status_indicator.js', 'jikimo_frontend/static/src/scss/rowno_in_tree.scss', # 'jikimo_frontend/static/src/views/list_nums/list_render.xml', - 'jikimo_frontend/static/src/list/list_up_down_button.xml', + # 'jikimo_frontend/static/src/list/list_up_down_button.xml', # 'jikimo_frontend/static/src/list/custom_import.js', # 'jikimo_frontend/static/src/list/custom_width.js', 'jikimo_frontend/static/src/views/list_nums/extent_purchase.xml', diff --git a/sf_warehouse/models/model.py b/sf_warehouse/models/model.py index 4bb84299..c8937cf4 100644 --- a/sf_warehouse/models/model.py +++ b/sf_warehouse/models/model.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +import logging from odoo import api, fields, models from odoo.osv import expression @@ -356,44 +357,40 @@ class Sf_stock_move_line(models.Model): # # 从目标stock.move对象获取目标stock.picking对象 # dest_picking = dest_move.picking_id if dest_move else False # # 现在,dest_picking就是current_picking的下一步 - @api.depends('location_id') def _compute_current_location_id(self): - # for record in self: - # 获取当前的stock.picking对象 - current_picking = self.env['stock.picking'].search([('name', '=', self.picking_id.name)], limit=1) + for record in self: + # 使用record代替self来引用当前遍历到的记录 + logging.info('record.picking_id.name: %s' % record.picking_id.name) + logging.info('record.env: %s' % record.env['stock.picking'].search([('name', '=', record.picking_id.name)])) - # 获取当前picking的第一个stock.move对象 - current_move = current_picking.move_ids[0] if current_picking.move_ids else False + # 获取当前的stock.picking对象 + current_picking = record.env['stock.picking'].search([('name', '=', record.picking_id.name)], limit=1) - # 如果存在相关的stock.move对象 - if current_move: - # 获取源stock.move对象 - origin_move = current_move.move_orig_ids[0] if current_move.move_orig_ids else False + # 获取当前picking的第一个stock.move对象 + current_move = current_picking.move_ids[0] if current_picking.move_ids else False - # 从源stock.move对象获取源stock.picking对象 - origin_picking = origin_move.picking_id if origin_move else False - # 现在,origin_picking就是current_picking的上一步 + # 如果存在相关的stock.move对象 + if current_move: + # 获取源stock.move对象 + origin_move = current_move.move_orig_ids[0] if current_move.move_orig_ids else False - # 如果前一个调拨单有目标货位,那么当前调拨单的当前货位就是前一个调拨单的目标货位 - if origin_picking: - for i in current_picking.move_line_ids: - for j in origin_picking.move_line_ids: - if j.destination_location_id: - if i.lot_id == j.lot_id: - i.current_location_id = j.destination_location_id + # 从源stock.move对象获取源stock.picking对象 + origin_picking = origin_move.picking_id if origin_move else False - # if origin_picking.move_line_ids.destination_location_id: - # aa = origin_picking.move_line_ids - # bb = origin_picking.move_line_ids.destination_location_id - # record.current_location_id = origin_picking.move_line_ids.destination_location_id - # - # # 获取目标stock.move对象 - # dest_move = current_move.move_dest_ids[0] if current_move.move_dest_ids else False - # - # # 从目标stock.move对象获取目标stock.picking对象 - # dest_picking = dest_move.picking_id if dest_move else False - # # 现在,dest_picking就是current_picking的下一步 + # 如果前一个调拨单有目标货位 + if origin_picking: + for i in current_picking.move_line_ids: + for j in origin_picking.move_line_ids: + if j.destination_location_id and i.lot_id == j.lot_id: + # 更新当前记录的current_location_id字段 + record.current_location_id = j.destination_location_id + # # 获取目标stock.move对象 + # dest_move = current_move.move_dest_ids[0] if current_move.move_dest_ids else False + # + # # 从目标stock.move对象获取目标stock.picking对象 + # dest_picking = dest_move.picking_id if dest_move else False + # # 现在,dest_picking就是current_picking的下一步 # 是一张单据一张单据往下走的,所以这里的目标货位是上一张单据的当前货位,且这样去计算是可以的。 @api.depends('location_dest_id')