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.
51 lines
1.7 KiB
51 lines
1.7 KiB
from odoo import models, fields, api
|
|
|
|
class NewMemberCardWizard(models.TransientModel):
|
|
"""
|
|
A transient model for the creation of a new card.
|
|
The user can only define the raison why a new card is
|
|
needed and the eater/worker that is concerned.
|
|
"""
|
|
_name = 'membercard.new.wizard'
|
|
|
|
def _get_default_partner(self):
|
|
return self.env.context['active_id']
|
|
|
|
new_comment = fields.Char('Reason', required=True)
|
|
partner_id = fields.Many2one('res.partner', default=_get_default_partner)
|
|
force_barcode = fields.Char('Force Barcode', groups="beesdoo_base.group_force_barcode")
|
|
|
|
@api.one
|
|
def create_new_card(self):
|
|
client = self.partner_id.sudo()
|
|
client._deactivate_active_cards()
|
|
client._new_card(self.new_comment, self.env.uid, barcode=self.force_barcode)
|
|
client.member_card_to_be_printed = True
|
|
|
|
class RequestMemberCardPrintingWizard(models.TransientModel):
|
|
|
|
_name = 'membercard.requestprinting.wizard'
|
|
|
|
def _get_selected_partners(self):
|
|
return self.env.context['active_ids']
|
|
|
|
partner_ids = fields.Many2many('res.partner', default=_get_selected_partners)
|
|
|
|
|
|
@api.one
|
|
def request_printing(self):
|
|
self.partner_ids.write({'member_card_to_be_printed' : True})
|
|
|
|
class SetAsPrintedWizard(models.TransientModel):
|
|
|
|
_name = 'membercard.set_as_printed.wizard'
|
|
|
|
def _get_selected_partners(self):
|
|
return self.env.context['active_ids']
|
|
|
|
partner_ids = fields.Many2many('res.partner', default=_get_selected_partners)
|
|
|
|
@api.one
|
|
def set_as_printed(self):
|
|
self.partner_ids.write({'member_card_to_be_printed' : False,
|
|
'last_printed' : fields.Datetime.now()})
|