mirror of
https://github.com/OCA/stock-logistics-warehouse.git
synced 2025-01-21 14:27:28 +02:00
51 lines
1.7 KiB
Python
51 lines
1.7 KiB
Python
# Copyright 2021 Camptocamp SA
|
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html)
|
|
import logging
|
|
|
|
from odoo import _, fields, models
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
|
|
class ProductPackaging(models.Model):
|
|
_inherit = "product.packaging"
|
|
|
|
measuring_device_id = fields.Many2one(
|
|
"measuring.device",
|
|
copy=False,
|
|
string="Measuring device which will scan the package",
|
|
help="Technical field set when an operator uses the device "
|
|
"to scan this package",
|
|
index=True,
|
|
)
|
|
|
|
def _measuring_device_assign(self, device):
|
|
"""Assign the measuring device to the current product packaging"""
|
|
# self can be an empty recordset, for the unit line which updates the
|
|
# product info
|
|
if self:
|
|
self.measuring_device_id = device
|
|
|
|
def _measuring_device_release(self):
|
|
"""Free the measuring device from the current product packaging"""
|
|
# self can be an empty recordset, for the unit line which updates the
|
|
# product info
|
|
if self:
|
|
self.measuring_device_id = False
|
|
|
|
def _measuring_device_find_assigned(self, device):
|
|
"""search packaging being assigned to the specified device"""
|
|
packaging = self.search(
|
|
[("measuring_device_id", "=", device.id)], order="write_date DESC", limit=2
|
|
)
|
|
if len(packaging) > 1:
|
|
warning_msg = _(
|
|
"Several packagings ({}) found to update by "
|
|
"device {}. Will update the first: {}".format(
|
|
packaging, self.name, packaging[0]
|
|
)
|
|
)
|
|
_logger.warning(warning_msg)
|
|
packaging = packaging[0]
|
|
return packaging
|