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.

52 lines
1.7 KiB

  1. # -*- coding: utf-8 -*-
  2. from openerp import models, fields, api
  3. class NewMemberCardWizard(models.TransientModel):
  4. """
  5. A transient model for the creation of a new card.
  6. The user can only define the raison why a new card is
  7. needed and the eater/worker that is concerned.
  8. """
  9. _name = 'membercard.new.wizard'
  10. def _get_default_partner(self):
  11. return self.env.context['active_id']
  12. new_comment = fields.Char('Reason', required=True)
  13. partner_id = fields.Many2one('res.partner', default=_get_default_partner)
  14. force_barcode = fields.Char('Force Barcode', groups="beesdoo_base.group_force_barcode")
  15. @api.one
  16. def create_new_card(self):
  17. client = self.partner_id.sudo()
  18. client._deactivate_active_cards()
  19. client._new_card(self.new_comment, self.env.uid, barcode=self.force_barcode)
  20. client.member_card_to_be_printed = True
  21. class RequestMemberCardPrintingWizard(models.TransientModel):
  22. _name = 'membercard.requestprinting.wizard'
  23. def _get_selected_partners(self):
  24. return self.env.context['active_ids']
  25. partner_ids = fields.Many2many('res.partner', default=_get_selected_partners)
  26. @api.one
  27. def request_printing(self):
  28. self.partner_ids.write({'member_card_to_be_printed' : True})
  29. class SetAsPrintedWizard(models.TransientModel):
  30. _name = 'membercard.set_as_printed.wizard'
  31. def _get_selected_partners(self):
  32. return self.env.context['active_ids']
  33. partner_ids = fields.Many2many('res.partner', default=_get_selected_partners)
  34. @api.one
  35. def set_as_printed(self):
  36. self.partner_ids.write({'member_card_to_be_printed' : False,
  37. 'last_printed' : fields.Datetime.now()})