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.

24 lines
976 B

  1. # -*- coding: utf-8 -*-
  2. from openerp import models, fields, api
  3. import uuid
  4. class MemberCard(models.Model):
  5. def _get_current_user(self):
  6. return self.env.uid
  7. def _compute_bar_code(self):
  8. rule = self.env['barcode.rule'].search([('name', '=', 'Customer Barcodes')])[0]
  9. size = 13 - len(rule.pattern)
  10. ean = rule.pattern + str(uuid.uuid4().fields[-1])[:size]
  11. return ean[0:12] + str(self.env['barcode.nomenclature'].ean_checksum(ean))
  12. _name = 'member.card'
  13. _order = 'create_date desc'
  14. valid = fields.Boolean(default=True, string="Active")
  15. barcode = fields.Char("Barcode", oldname='ean13', default=_compute_bar_code)
  16. partner_id = fields.Many2one('res.partner') #, default=_get_current_client)
  17. responsible_id = fields.Many2one('res.users', default=_get_current_user, string="Responsible")
  18. end_date = fields.Date(readonly=True, string="Expiration Date")
  19. comment = fields.Char("Reason", required=True)