需要调整的原生代码:

        # fixme 在获取stock.move时需要做判断。采购退货时不能使用先进先出规则。
        candidates = move.product_id._get_fifo_candidates_in_move_with_company(move.company_id.id)

需要调整的逻辑:

判断作业类型是否是采购退货,如果是采购退货则想办法将入库的stock_move抓出来,要注意判断remaining_value 的值。

或者改写该方法:

但是考虑到传参数的麻烦,还是直接新建方法

    def _get_fifo_candidates_in_move_with_company(self, move_company_id=False):
        self.ensure_one()
        domain = [('product_id', '=', self.id), ('remaining_qty', '>', 0.0)] + self.env['stock.move']._get_in_base_domain(move_company_id)
        candidates = self.env['stock.move'].search(domain, order='date, id')
        return candidates

相关文章:

  • 2021-12-07
  • 2021-12-22
  • 2021-12-25
  • 2021-11-16
  • 2021-11-20
  • 2021-06-25
  • 2021-12-14
猜你喜欢
  • 2021-08-03
  • 2022-01-01
  • 2021-07-21
  • 2021-10-17
  • 2021-04-25
  • 2021-04-22
相关资源
相似解决方案