Files
stock-logistics-warehouse/stock_inventory_lockdown/models/stock_inventory.py
2022-10-24 10:36:27 -04:00

32 lines
1.1 KiB
Python

# © 2013-2016 Numérigraphe SARL
# Copyright 2017 ForgeFlow S.L.
# (http://www.forgeflow.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import api, models
class StockInventory(models.Model):
_inherit = "stock.inventory"
@api.model
def _get_locations_open_inventories(self, locations_ids=None):
"""IDs of locations in open exhaustive inventories, with children"""
inventory_domain = [("state", "=", "confirm")]
if locations_ids:
inventory_domain.append(("location_ids", "child_of", locations_ids))
inventories = self.search(inventory_domain)
if not inventories:
# Early exit if no match found
return []
location_ids = inventories.mapped("location_ids")
# Extend to the children Locations
location_domain = [
"|",
("location_id", "in", location_ids.ids),
("location_id", "child_of", location_ids.ids),
("usage", "in", ["internal", "transit"]),
]
return self.env["stock.location"].search(location_domain)