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.

56 lines
1.9 KiB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. # © 2019 Le Filament (<http://www.le-filament.com>)
  2. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
  3. from odoo import models, fields, api
  4. from datetime import datetime
  5. class SaleOrder(models.Model):
  6. _inherit = 'sale.order'
  7. vracoop_point_retrait_id = fields.Many2one(
  8. comodel_name='vracoop.point.retrait',
  9. string="Point retrait")
  10. day_retrait = fields.Date("Jour du retrait")
  11. hour_retrait = fields.Float("Heure du retrait")
  12. carrier_point_retrait = fields.Boolean(
  13. string='Point retrait',
  14. related='carrier_id.point_retrait')
  15. def _check_retrait(self, force_retrait_id=None):
  16. self.ensure_one()
  17. PointRetrait = self.env['vracoop.point.retrait']
  18. retrait = force_retrait_id and PointRetrait.browse(force_retrait_id)
  19. self.write({'vracoop_point_retrait_id': retrait.id})
  20. return bool(retrait)
  21. def _update_day_hour(self, hour_retrait=None):
  22. self.ensure_one()
  23. today = datetime.today()
  24. values = hour_retrait.split("-")
  25. day_retrait = datetime(today.year, int(values[1]), int(values[0]))
  26. hour = values[2].split(":")
  27. hour_retrait = float('%s.%s' % (hour[0], hour[1]))
  28. PointRetrait = self.env['vracoop.point.retrait']
  29. retrait = PointRetrait.browse(values[3])
  30. self.write({
  31. 'hour_retrait': hour_retrait,
  32. 'day_retrait': day_retrait,
  33. 'vracoop_point_retrait_id': retrait.id})
  34. return True
  35. @api.multi
  36. def _prepare_invoice(self):
  37. self.ensure_one()
  38. res = super(SaleOrder, self)._prepare_invoice()
  39. res.update({
  40. 'vracoop_point_retrait_id': self.vracoop_point_retrait_id.id,
  41. 'day_retrait': self.day_retrait,
  42. 'hour_retrait': self.hour_retrait,
  43. 'carrier_point_retrait': self.carrier_point_retrait
  44. })
  45. return res