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.

38 lines
1.3 KiB

  1. # -*- coding: utf-8 -*-
  2. from openerp import models, fields, api, _
  3. from openerp.exceptions import UserError
  4. class TaskType(models.TransientModel):
  5. _name = 'beesdoo.shift.welcome'
  6. _inherit = ['barcodes.barcode_events_mixin']
  7. partner_id = fields.Many2one('res.partner', string="Cooperator")
  8. message = fields.Html("Message")
  9. can_shop = fields.Boolean(related='partner_id.can_shop', readonly=True)
  10. def on_barcode_scanned(self, barcode):
  11. self._barcode_scanned = ''
  12. self.message = ''
  13. if barcode.startswith('42'):
  14. barcode = '0' + barcode
  15. if not barcode.startswith('042'):
  16. self.message = 'invalid barcode'
  17. return
  18. #0 at the begining of the code bar seems not to be scanned
  19. partner_ids = self.env['res.partner'].search([('barcode', '=', barcode)])
  20. if not partner_ids:
  21. self.message = "Member does not exist"
  22. elif len(partner_ids) > 1:
  23. self.message = "more then one member found with this barcode"
  24. else:
  25. self.partner_id = partner_ids[0]
  26. @api.onchange('partner_id')
  27. def _onchange_partner(self):
  28. values = {
  29. 'rec': self
  30. }
  31. html_res = self.env.ref("beesdoo_shift_welcome_screen.welcome_message").render(values)
  32. self.message = html_res