Skip to content
Extraits de code Groupes Projets
Valider 5f7c1ba2 rédigé par jordan's avatar jordan
Parcourir les fichiers

[update] get members and new members in scop_cotiz parent

parent a9cdc1bd
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
# © 2021 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import models, fields
from odoo import models, fields, api
from datetime import date
class ScopCotisation(models.AbstractModel):
......@@ -30,6 +31,38 @@ class ScopCotisation(models.AbstractModel):
)
date_cotisation = fields.Date("Date de cotisation", required=True)
member_count = fields.Integer(
"Adhérents renouvelés",
compute='_compute_member_count')
new_member_count = fields.Integer(
"Nouveaux adhérents",
compute='_compute_new_member_count')
invoiced_member_count = fields.Integer(
"Cotisations créées",
compute='_compute_invoiced_member_count')
# ------------------------------------------------------
# Compute fields
# ------------------------------------------------------
@api.multi
def _compute_member_count(self):
for cotiz in self:
cotiz.member_count = len(cotiz.get_members())
@api.multi
def _compute_new_member_count(self):
for cotiz in self:
cotiz.new_member_count = len(cotiz.get_new_members())
@api.multi
def _compute_invoiced_member_count(self):
for cotiz in self:
cotiz.invoiced_member_count = len(
cotiz.invoice_ids.mapped('partner_id'))
# ------------------------------------------------------
# Global functions
# ------------------------------------------------------
def create_contribution(self, product, partner, liasse=None, amount=0):
Invoice = self.env['account.invoice']
InvoiceLine = self.env['account.invoice.line']
......@@ -58,3 +91,30 @@ class ScopCotisation(models.AbstractModel):
})
return member_invoice
@api.multi
def get_members(self):
self.ensure_one()
members = self.env['scop.membership.period'].search([
('type_id', '=', self.env.ref(
'cgscop_partner.membership_type_1').id),
('start', '<', date(self.year, 12, 31)),
'|',
('end', '=', None),
('end', '>', date(self.year, 1, 1))
]).mapped('partner_id')
return members
@api.multi
def get_new_members(self):
self.ensure_one()
members = self.env['scop.membership.period'].search([
('type_id', '=', self.env.ref(
'cgscop_partner.membership_type_1').id),
('start', '>=', date(self.year, 1, 1)),
('start', '<=', date(self.year, 12, 31)),
'|',
('end', '=', None),
('end', '>', date(self.year, 1, 1))
]).mapped('partner_id')
return members
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