Skip to content
Extraits de code Groupes Projets
Valider f75c9b96 rédigé par Hugo Trentesaux's avatar Hugo Trentesaux
Parcourir les fichiers

contrats en portabilité

parent dcbd51bf
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -11,12 +11,9 @@ class Contract(models.Model): ...@@ -11,12 +11,9 @@ class Contract(models.Model):
name = fields.Char(compute="_compute_name") name = fields.Char(compute="_compute_name")
date_start = fields.Date("Début du contrat", required=True) date_start = fields.Date("Début du contrat", required=True)
date_end = fields.Date("Fin du contrat") date_end = fields.Date("Fin du contrat")
number = fields.Char("Numéro de contrat", required=True) code = fields.Char("Code contrat")
# On attend d'avoir des données is_portabilite = fields.Boolean("Portabilité")
# product_id = fields.Many2one("Type de couverture")
type = fields.Char("Type de couverture") # will be computed on product_id
member_count = fields.Integer("Effectifs adhérents") member_count = fields.Integer("Effectifs adhérents")
maybe_member_count = fields.Integer("Potentiel adhérents")
# relations # relations
partner_id = fields.Many2one(comodel_name="res.partner", required=True) partner_id = fields.Many2one(comodel_name="res.partner", required=True)
...@@ -36,7 +33,7 @@ class Contract(models.Model): ...@@ -36,7 +33,7 @@ class Contract(models.Model):
# ------------------------------------------------------ # ------------------------------------------------------
def _compute_name(self): def _compute_name(self):
for contract in self: for contract in self:
contract.name = f"{contract.number} - {contract.partner_id.name}" contract.name = f"{contract.code} - {contract.partner_id.name}"
# ------------------------------------------------------ # ------------------------------------------------------
# Onchange / Constraints # Onchange / Constraints
......
...@@ -37,8 +37,9 @@ class ResPartner(models.Model): ...@@ -37,8 +37,9 @@ class ResPartner(models.Model):
readonly=False, readonly=False,
copy=False, copy=False,
tracking=True, tracking=True,
index=True,
) )
num_orga = fields.Char("Numéro orga") num_orga = fields.Char("Numéro orga", index=True)
social_object = fields.Text("Objet Social") social_object = fields.Text("Objet Social")
activity_desc = fields.Text("Description de l'activité") activity_desc = fields.Text("Description de l'activité")
...@@ -127,10 +128,27 @@ class ResPartner(models.Model): ...@@ -127,10 +128,27 @@ class ResPartner(models.Model):
support_count = fields.Integer( support_count = fields.Integer(
"Nombre d'événements de gestion", compute="_compute_support_count", store=True "Nombre d'événements de gestion", compute="_compute_support_count", store=True
) )
# contracts
contract_count = fields.Integer( contract_count = fields.Integer(
"Nombre de contrats", compute="_compute_contract_count", store=True "Nombre de contrats", compute="_compute_contract_count", store=True
) )
member_count = fields.Integer(
"Effectif adhérent",
compute="_compute_member_count",
store=True,
help="L'effectif adhérent est la somme des effectifs "
"des contrats en cours hors portabilité.",
)
maybe_member_count = fields.Integer(
"Potentiel adhérents",
compute="_compute_maybe_member_count",
store=True,
help="L'effectif potentiel est la différence entre "
"l'effectif communiqué et l'effectif adhérent.",
)
# dates
date_last_support = fields.Date( date_last_support = fields.Date(
"Date du dernier support", compute="_compute_date_last_support", store=True "Date du dernier support", compute="_compute_date_last_support", store=True
) )
...@@ -176,6 +194,21 @@ class ResPartner(models.Model): ...@@ -176,6 +194,21 @@ class ResPartner(models.Model):
for i in self: for i in self:
i.contract_count = len(i.contract_ids) i.contract_count = len(i.contract_ids)
@api.depends("contract_ids", "contract_ids.member_count")
def _compute_member_count(self):
for i in self:
i.member_count = sum(
i.contract_ids.filtered(
lambda c: not c.date_end and not c.is_portabilite
).mapped("member_count")
)
@api.depends("company_size", "member_count")
def _compute_maybe_member_count(self):
for i in self:
if i.company_size and i.member_count:
i.maybe_member_count = i.company_size - i.member_count
@api.depends("support_ids", "support_ids.date") @api.depends("support_ids", "support_ids.date")
def _compute_date_last_support(self): def _compute_date_last_support(self):
for i in self: for i in self:
......
...@@ -9,15 +9,20 @@ ...@@ -9,15 +9,20 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<search> <search>
<field name="partner_id" /> <field name="partner_id" />
<field name="number" /> <field name="code" />
<filter name="date_start" date="date_start" string="Début de contrat" /> <filter name="date_start" date="date_start" string="Début de contrat" />
<filter name="date_end" date="date_end" string="Fin de contrat" /> <filter name="date_end" date="date_end" string="Fin de contrat" />
<group expand="0" name="group_by" string="Group By"> <group expand="0" name="group_by" string="Group By">
<filter <filter
name="group_type" name="filter_portabilite"
string="Portabilité"
domain="[('is_portabilite', '=', False)]"
/>
<filter
name="group_code"
string="Type" string="Type"
domain="[]" domain="[]"
context="{'group_by' : 'type'}" context="{'group_by' : 'code'}"
/> />
<filter <filter
name="group_partner_id" name="group_partner_id"
...@@ -38,9 +43,9 @@ ...@@ -38,9 +43,9 @@
<form> <form>
<group> <group>
<group> <group>
<field name="number" /> <field name="code" />
<field name="partner_id" /> <field name="partner_id" />
<field name="type" /> <field name="is_portabilite" />
</group> </group>
<group> <group>
<field name="date_start" /> <field name="date_start" />
...@@ -48,7 +53,6 @@ ...@@ -48,7 +53,6 @@
</group> </group>
<group> <group>
<field name="member_count" /> <field name="member_count" />
<field name="maybe_member_count" />
</group> </group>
</group> </group>
</form> </form>
...@@ -61,11 +65,10 @@ ...@@ -61,11 +65,10 @@
<field name="model">mucs.contract</field> <field name="model">mucs.contract</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<list> <list>
<field name="number" />
<field name="partner_id" /> <field name="partner_id" />
<field name="type" /> <field name="code" />
<field name="is_portabilite" />
<field name="member_count" /> <field name="member_count" />
<field name="maybe_member_count" />
<field name="date_start" /> <field name="date_start" />
<field name="date_end" /> <field name="date_end" />
<field name="write_date" optional="hide" /> <field name="write_date" optional="hide" />
......
...@@ -101,7 +101,10 @@ ...@@ -101,7 +101,10 @@
name="cooperative_form_id" name="cooperative_form_id"
invisible="not is_cooperative" invisible="not is_cooperative"
/> />
<field name="date_coop"/> <field
name="date_coop"
invisible="not is_cooperative"
/>
<field name="date_registration"/> <field name="date_registration"/>
<field name="date_dissolution"/> <field name="date_dissolution"/>
</group> </group>
...@@ -131,6 +134,10 @@ ...@@ -131,6 +134,10 @@
<field name="is_member_mutex" /> <field name="is_member_mutex" />
<field name="type_rma_aid" /> <field name="type_rma_aid" />
</group> </group>
<group>
<field name="member_count" />
<field name="maybe_member_count" />
</group>
</group> </group>
<separator /> <separator />
<group> <group>
...@@ -146,12 +153,11 @@ ...@@ -146,12 +153,11 @@
<group string="Contrats"> <group string="Contrats">
<field name="contract_ids" nolabel="1"> <field name="contract_ids" nolabel="1">
<list> <list>
<field name="number" /> <field name="code" />
<field name="type" /> <field name="is_portabilite" />
<field name="member_count" /> <field name="member_count" />
<field name="maybe_member_count" /> <field name="date_start" optional="show" />
<field name="date_start" optional="hide" /> <field name="date_end" optional="show" />
<field name="date_end" optional="hide" />
<field name="write_date" optional="hide" /> <field name="write_date" optional="hide" />
<field name="write_uid" optional="hide" /> <field name="write_uid" optional="hide" />
</list> </list>
...@@ -411,7 +417,7 @@ ...@@ -411,7 +417,7 @@
<!-- Action --> <!-- Action -->
<record id="contacts.action_contacts" model="ir.actions.act_window"> <record id="contacts.action_contacts" model="ir.actions.act_window">
<field name="domain">[('is_cooperative', '!=', True)]</field> <field name="domain">[('is_company', '!=', True)]</field>
</record> </record>
<record id="coop_partner_action" model="ir.actions.act_window"> <record id="coop_partner_action" model="ir.actions.act_window">
...@@ -421,7 +427,7 @@ ...@@ -421,7 +427,7 @@
<field name="view_mode">list,pivot,graph,form</field> <field name="view_mode">list,pivot,graph,form</field>
<field name="view_id" ref="mucs_coop_partner_tree"/> <field name="view_id" ref="mucs_coop_partner_tree"/>
<field name="search_view_id" ref="mucs_coop_partner_search" /> <field name="search_view_id" ref="mucs_coop_partner_search" />
<field name="domain">[('is_cooperative', '=', True)]</field> <field name="domain">[('is_company', '=', True)]</field>
<field name="path">coop</field> <field name="path">coop</field>
<field name="context"> <field name="context">
{ {
......
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