File: stock_picking_batch.py

package info (click to toggle)
odoo 18.0.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 878,716 kB
  • sloc: javascript: 927,937; python: 685,670; xml: 388,524; sh: 1,033; sql: 415; makefile: 26
file content (23 lines) | stat: -rw-r--r-- 1,073 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.

from odoo import models

class StockPickingBatch(models.Model):
    _inherit = "stock.picking.batch"

    def _is_picking_auto_mergeable(self, picking):
        """ Verifies if a picking can be safely inserted into the batch without violating auto_batch_constrains.
        """
        res = super()._is_picking_auto_mergeable(picking)
        if self.picking_type_id.batch_max_weight:
            batch_weight = sum(self.picking_ids.mapped('weight'))
            res = res and (batch_weight + picking.weight <= self.picking_type_id.batch_max_weight)
        return res

    def _is_line_auto_mergeable(self, num_of_moves=False, num_of_pickings=False, weight=False):
        res = super()._is_line_auto_mergeable(num_of_moves, num_of_pickings, weight)
        if self.picking_type_id.batch_max_weight:
            wave_weight = sum(self.move_ids.mapped('weight'))
            res = res and (wave_weight + weight <= self.picking_type_id.batch_max_weight)
        return res