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.
67 lines
1.9 KiB
67 lines
1.9 KiB
from odoo import api, fields, models
|
|
|
|
|
|
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"
|
|
_description = "Member Card"
|
|
|
|
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"
|
|
_description = "Member Card - Request Print 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"
|
|
_description = "Member card - 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(),
|
|
}
|
|
)
|