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.
 
 
 
 
 

81 lines
2.7 KiB

from odoo import _, api, fields, models
from odoo.exceptions import ValidationError
class Partner(models.Model):
_inherit = "res.partner"
date_stamp = fields.Date(
string="Timestamp", help="Date de remplissage du formulaire"
)
birthdate = fields.Date(string="Date d'anniversaire")
payment_date = fields.Date(string="Date de paiement")
certificate_sent_date = fields.Date(string="Certificat envoyé le")
fiscal_certificate_sent_date = fields.Date(
string="Attestation fiscale envoyée le"
)
coop_number = fields.Integer(string="Coop N°")
share_qty = fields.Integer(string="Nombre de part")
share_amount = fields.Float(
string="Montant", compute="_compute_share_amount"
)
gender = fields.Selection(
[("female", "Féminin"), ("male", "Masculin"), ("other", "Autre")],
string="Genre",
)
cooperator_type = fields.Selection(
[
("share_a", "Part A"),
("share_b", "Part B"),
("share_c", "Part C"),
("share_d", "Part D"),
],
string="Type de Part",
)
state_request = fields.Selection(
[
("ok", "En ordre"),
("waiting_payment", "En attente de paiement"),
("certificate_to_send", "Certificat à envoyer"),
("resigning", "Parts revendues"),
]
) # TODO should we use the cooperative.status model instead?
national_register_number = fields.Char(
string="Numéro de registre national"
) # TODO add constraint / check consistancy
share_numbers = fields.Char(string="Numéro de parts")
payment_details = fields.Char(string="Détail de paiement")
iban = fields.Char(string="IBAN") # TODO remove. Temp for import purpose.
comment_request = fields.Char(string="Commentaire")
email_sent = fields.Boolean(string="Email envoyé")
is_worker = fields.Boolean(
compute="_compute_is_worker",
search="_search_is_worker",
string="is Worker",
readonly=True,
related="",
)
@api.depends("share_qty")
def _compute_share_amount(self):
for rec in self:
rec.share_amount = (
rec.share_qty * 25.0
) # TODO add ir.config_parameter to make this amount editable
@api.depends("cooperator_type")
def _compute_is_worker(self):
for rec in self:
rec.is_worker = rec.cooperator_type == "share_b"
def _search_is_worker(self, operator, value):
if (operator == "=" and value) or (operator == "!=" and not value):
return [("cooperator_type", "=", "share_b")]
else:
return [("cooperator_type", "!=", "share_b")]