Skip to content
Extraits de code Groupes Projets
Valider ddd9345b rédigé par Benjamin - Le Filament's avatar Benjamin - Le Filament
Parcourir les fichiers

[update] wizard new member

parent 6655de94
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -12,12 +12,24 @@ class ScopCotisationWizard(models.TransientModel):
_name = 'scop.cotisation.cg.wizard'
_description = "Wizard: Génération des cotisations nouveaux adhérents"
@api.model
def _default_cotisation_cg_id(self):
return self.env.context.get("active_id")
@api.model
def _default_year(self):
return self.env["scop.cotisation.cg"].browse(self.env.context.get("active_id")).year
year = fields.Char(
string='Année',
required=True)
required=True,
default=_default_year
)
cotisation_cg_id = fields.Many2one(
comodel_name='scop.cotisation.cg',
string='Base de cotisation')
string='Base de cotisation',
default=_default_cotisation_cg_id
)
nb_quarter = fields.Selection(
string='Nombre de trimestres de cotisation',
selection=[(1, '1'),
......@@ -36,24 +48,32 @@ class ScopCotisationWizard(models.TransientModel):
comodel_name='res.partner',
string='Coopératives'
)
date = fields.Date('Date de cotisation', default=fields.Date.today())
date = fields.Date('Date du bordereau', default=fields.Date.today())
date_start = fields.Date('Adhésion après le')
date_limit = fields.Date('Adhésion avant le')
# ------------------------------------------------------
# Button function
# ------------------------------------------------------
@api.onchange('type')
@api.onchange("type", "date_start", "date_limit")
def onchange_domain_partner_ids(self):
if self.type == 'selected':
id_cotisation_cg = self.env.context['id_cotisation_cg']
invoiced_members = self.cotisation_cg_id.browse(
id_cotisation_cg).invoice_ids.mapped('partner_id')
res = {'domain': {
'partner_ids': [
('is_company', '=', True),
('type', '!=', 'facility'),
('id', 'not in', invoiced_members.mapped('id'))]
}}
invoiced_members = self.cotisation_cg_id.bordereau_ids.mapped('partner_id')
domain = [
("is_cooperative", "=", True),
("type", "!=", "facility"),
("id", "not in", invoiced_members.mapped("id")),
]
if self.date_limit:
domain.append(("member_start", "<=", self.date_limit))
if self.date_start:
domain.append(("member_start", ">=", self.date_start))
res = {
"domain": {
"partner_ids": domain
}
}
return res
# ------------------------------------------------------
......@@ -68,10 +88,18 @@ class ScopCotisationWizard(models.TransientModel):
if self.type == 'selected':
members = self.partner_ids
else:
members = self.cotisation_cg_id.get_new_members(self.date)
invoiced_members = self.cotisation_cg_id. \
invoice_ids.mapped('partner_id')
domain = [
("is_cooperative", "=", True),
("membership_status", "=", "member"),
("type", "!=", "facility"),
]
if self.date_limit:
domain.append(("member_start", "<=", self.date_limit))
if self.date_start:
domain.append(("member_start", ">=", self.date_start))
members = self.env["res.partner"].search(domain)
invoiced_members = self.cotisation_cg_id.bordereau_ids.mapped('partner_id')
members_to_invoice = members - invoiced_members
......
......@@ -14,9 +14,27 @@
<field name="year" required="1" invisible="1"/>
<field name="date" required="1"/>
<field name="nb_quarter" required="1"/>
<field name="date_start"/>
<field name="date_limit"/>
<separator />
<field name="type" widget="radio"/>
<field name="partner_ids" attrs="{'invisible': [('type', '=', 'all')]}" widget="many2many_tags" options="{'no_create': True, 'no_open': True}"/>
</group>
<label for="partner_ids" attrs="{'invisible': [('type', '=', 'all')]}" />
<field
name="partner_ids"
attrs="{'invisible': [('type', '=', 'all')]}"
options="{'no_create': True, 'no_open': True}"
widget="many2many"
mode="tree"
>
<tree>
<field name="member_number" string="N° Adhérent" />
<field name="name"/>
<field name="ur_id"/>
<field name="member_start"/>
<field name="member_start_stat"/>
</tree>
</field>
<footer>
<button name="cotiz_generate_new_adherents" type="object"
string="Générer les cotisations" class="oe_highlight"/>
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter