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.

31 lines
998 B

  1. # © 2020 Solvos Consultoría Informática (<http://www.solvos.es>)
  2. # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
  3. from odoo import api, fields, models
  4. class PosOrder(models.Model):
  5. _inherit = 'pos.order'
  6. is_returnable = fields.Boolean(
  7. compute='_compute_is_returnable',
  8. )
  9. def _compute_is_returnable(self):
  10. for order in self:
  11. order.is_returnable = \
  12. order.amount_total >= 0 and \
  13. sum([l.max_returnable_qty(ignored_line_ids=[])
  14. for l in order.lines]) > 0
  15. @api.model
  16. def _prepare_fields_for_pos_list(self):
  17. return super()._prepare_fields_for_pos_list() + ['is_returnable']
  18. def _prepare_done_order_line_for_pos(self, order_line):
  19. line = super()._prepare_done_order_line_for_pos(order_line)
  20. return {
  21. **line,
  22. 'id': order_line.id,
  23. 'qty_returnable': order_line.max_returnable_qty(ignored_line_ids=[])
  24. }