You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1.3 KiB

  1. # Copyright 2019 Coop IT Easy SCRLfs
  2. # Robin Keunen <robin@coopiteasy.be>
  3. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
  4. from odoo import models, fields, api
  5. class Container(models.Model):
  6. _name = 'pos.container'
  7. _description = 'Container for bulk items'
  8. name = fields.Char(
  9. string='Name',
  10. )
  11. barcode = fields.Char(
  12. 'Barcode',
  13. size=13,
  14. )
  15. weight = fields.Float(
  16. string='Weight (kg)',
  17. )
  18. owner_id = fields.Many2one(
  19. comodel_name='res.partner',
  20. inverse_name='container_ids',
  21. string='Owner',
  22. )
  23. _sql_constraints = [
  24. ('barcode_uniq',
  25. 'unique(barcode)',
  26. "A barcode can only be assigned to one container !"),
  27. ]
  28. @api.model
  29. def create_from_ui(self, containers):
  30. # retourne la liste des ids dans le même ordre que la liste fournie
  31. container_ids = []
  32. for container in containers:
  33. container_id = container.pop('id', False)
  34. if container_id: # Modifying existing container
  35. self.browse(container_id).write(container)
  36. else:
  37. container_id = self.create(container).id
  38. container_ids.append(container_id)
  39. return container_ids