From a17ae59d2fccd1db8156ca5286789d0eca91b6ab Mon Sep 17 00:00:00 2001
From: Remi <remi@le-filament.com>
Date: Wed, 16 Oct 2019 18:06:53 +0200
Subject: [PATCH] Align with Excel spreadsheet

---
 models/res_partner.py       | 110 +++++++++++++++++++++---------------
 models/scop_contribution.py |   2 +-
 2 files changed, 64 insertions(+), 48 deletions(-)

diff --git a/models/res_partner.py b/models/res_partner.py
index 56352de..fee9acf 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -14,16 +14,15 @@ class ScopPartner(models.Model):
     def _default_country(self):
         return self.env.ref('base.fr', False)
 
-    # Infos générales
+    # Infos générales - champs non affichés
     is_cooperative = fields.Boolean("Est une coopérative")
-
     current_user_ur_id = fields.Many2one(
         'union.regionale',
         string="Union Régionale de l'utilisateur",
         compute='_compute_current_user_ur_id',
         search='_search_current_user_ur_id')
 
-    # Informations organisme
+    # Informations organisme - champs non affichés
     id_ur = fields.Char("Identifiant UR")
     id_riga = fields.Char("Identifiant RIGA")
 
@@ -39,6 +38,7 @@ class ScopPartner(models.Model):
         track_visibility='onchange',
         string='Statut projet',
         index=True)
+    name = fields.Char(index=True, track_visibility='onchange')
     cooperative_form_id = fields.Many2one(
         'res.partner.cooperative.form',
         string="Cooperative form",
@@ -70,20 +70,22 @@ class ScopPartner(models.Model):
 
     # Infos générales / Contact
     sigle = fields.Char("Sigle")
-    cedex = fields.Char("Cedex")
+    street = fields.Char("Rue", track_visibility='onchange')
+    street2 = fields.Char("Rue 2", track_visibility='onchange')
+    street3 = fields.Char("Rue 3", track_visibility='onchange')
+    zip = fields.Char("CP", change_default=True, track_visibility='onchange')
+    city = fields.Char("Ville", track_visibility='onchange')
+    cedex = fields.Char("Cedex", track_visibility='onchange')
     country_id = fields.Many2one('res.country', string='Country',
                                  ondelete='restrict',
-                                 default=_default_country)
+                                 default=_default_country,
+                                 track_visibility='onchange')
+    phone = fields.Char("Téléphone 1", track_visibility='onchange')
+    mobile = fields.Char("Téléphone 2", track_visibility='onchange')
+    email = fields.Char("eMail administratif", track_visibility='onchange')
     facebook = fields.Char("Facebook")
     linkedin = fields.Char("LinkedIn")
     twitter = fields.Char("Twitter")
-    director_ids = fields.One2many(
-        'res.partner', 'parent_id',
-        string='Contacts Dirigeants',
-        domain=[('active', '=', True), ('mandate_id', '!=', False)])
-    other_child_ids = fields.One2many(
-        'res.partner', 'parent_id', string='Autres Contacts',
-        domain=[('active', '=', True), ('mandate_id', '=', False)])
 
     # Infos générales / Suivi UR
     ur_id = fields.Many2one(
@@ -96,7 +98,7 @@ class ScopPartner(models.Model):
     creation_delegate_id = fields.Many2one(
         'res.users',
         string='Délégué de création',
-        on_delete='restrict')
+        on_delete='restrict', track_visibility='onchange')
     followup_delegate_id = fields.Many2one(
         'res.users',
         string='Délégué de suivi',
@@ -125,12 +127,12 @@ class ScopPartner(models.Model):
         'res.partner.creation.origin',
         string="Origine création en coop",
         domain=[('parent_id', '=', False)],
-        on_delete='restrict')
+        on_delete='restrict', track_visibility='onchange')
     creation_suborigin_id = fields.Many2one(
         'res.partner.creation.origin',
         string="Sous-Origine création en coop",
         domain=[('child_ids', '=', False)],
-        on_delete='restrict')
+        on_delete='restrict', track_visibility='onchange')
     date_1st_sign = fields.Date(
         'Date 1er signature coop',
         track_visibility='onchange')
@@ -170,7 +172,7 @@ class ScopPartner(models.Model):
     is_seed_scop = fields.Boolean("Est une SCOP d'amorçage")
     seed_end = fields.Date("Date de fin du dispositif d'amorçage",
                            default=str(datetime.today() + timedelta(2556)),
-                           compute='_compute_seen_end')
+                           compute='_compute_seed_end')
     is_incubated = fields.Boolean("Est incubé")
     incubator_id = fields.Many2one(
         'res.partner',
@@ -179,6 +181,15 @@ class ScopPartner(models.Model):
                 ('organization_subtype_id.name', '=', 'Incubateur')],
         on_delete='restrict')
 
+    # Contacts
+    director_ids = fields.One2many(
+        'res.partner', 'parent_id',
+        string='Contacts Dirigeants',
+        domain=[('active', '=', True), ('mandate_id', '!=', False)])
+    other_child_ids = fields.One2many(
+        'res.partner', 'parent_id', string='Autres Contacts',
+        domain=[('active', '=', True), ('mandate_id', '=', False)])
+
     # Partenaires
     bank_id = fields.Many2one(
         'res.partner',
@@ -220,25 +231,8 @@ class ScopPartner(models.Model):
         domain=[('active', '=', True), ('is_company', '=', False)],
         on_delete='restrict')
 
-    # Périodes juridiques
-    scop_period_ids = fields.One2many(
-        comodel_name='scop.period',
-        inverse_name='partner_id',
-        string="Historique")
-
-    # Période d'adhésion
-    membership_period_ids = fields.One2many(
-        comodel_name='scop.membership.period',
-        inverse_name='partner_id',
-        string="Périodes d'adhésion")
-
-    # Cotisation
-    contribution_ids = fields.One2many(
-        comodel_name='scop.contribution',
-        inverse_name='partner_id',
-        string='Cotisations')
-
     # Liste Ministère
+    # TODO : define what should be done with these fields ?
     direccte_id = fields.Many2one(
         'res.partner',
         string='DIRECCTE rattachée',
@@ -247,18 +241,6 @@ class ScopPartner(models.Model):
         on_delete='restrict')
     last_update_status = fields.Date('Dernière mise à jour des statuts')
 
-    # Questionnaire
-    questionnaire_ids = fields.One2many(
-        comodel_name='scop.questionnaire',
-        inverse_name='partner_id',
-        string='Listes Ministère')
-
-    # Liasse fiscale
-    liasse_fiscale_ids = fields.One2many(
-        comodel_name='scop.liasse.fiscale',
-        inverse_name='partner_id',
-        string='Liasses Fiscales')
-
     # Révisions
     revision_contract = fields.Date("Date du contrat de révision",
                                     track_visibility='onchange')
@@ -305,12 +287,46 @@ class ScopPartner(models.Model):
         inverse_name='partner_id',
         string='Liste des Révisions')
 
+    # Historique
+    scop_period_ids = fields.One2many(
+        comodel_name='scop.period',
+        inverse_name='partner_id',
+        string="Historique")
+
+    # Période d'adhésion
+    membership_period_ids = fields.One2many(
+        comodel_name='scop.membership.period',
+        inverse_name='partner_id',
+        string="Périodes d'adhésion")
+
+    # Cotisation
+    contribution_ids = fields.One2many(
+        comodel_name='scop.contribution',
+        inverse_name='partner_id',
+        string='Cotisations')
+    is_up_to_date_cg = fields.Boolean("A jour cotisation CG")
+    is_up_to_date_fede = fields.Boolean("A jour cotisation Fédérations")
+    is_up_to_date_ur = fields.Boolean("A jour cotisation UR")
+
+    # Questionnaire
+    questionnaire_ids = fields.One2many(
+        comodel_name='scop.questionnaire',
+        inverse_name='partner_id',
+        string='Listes Ministère')
+
+    # Liasse fiscale
+    liasse_fiscale_ids = fields.One2many(
+        comodel_name='scop.liasse.fiscale',
+        inverse_name='partner_id',
+        string='Liasses Fiscales')
+
     # Outils financiers
     financial_tools_ids = fields.One2many(
         comodel_name='scop.financial.tools',
         inverse_name='partner_id',
         string='Outils financiers')
 
+
     # Champs pour personnes
     birthyear = fields.Integer("Année de naissance")
     subscription_ids = fields.One2many(
@@ -454,7 +470,7 @@ class ScopPartner(models.Model):
                 company.siren = company.siret[:9]
 
     @api.model
-    def _compute_seen_end(self):
+    def _compute_seed_end(self):
         for company in self:
             if company.date_1st_sign:
                 company.seed_end = company.date_1st_sign + timedelta(2556)
diff --git a/models/scop_contribution.py b/models/scop_contribution.py
index 7d79afa..eda5218 100644
--- a/models/scop_contribution.py
+++ b/models/scop_contribution.py
@@ -26,7 +26,7 @@ class ScopContributions(models.Model):
     amount_paid = fields.Float("Montant réglé")
     amount_remaining_previous = fields.Float("Mnt Restant cum. à fin N-1")
     amount_paid_late = fields.Float("Mnt réglé après clôture")
-    spreading = fields.Selection([(1, 1), (4, 4)], string="Echelonnement")
+    spreading = fields.Integer("Echelonnement")
     amount_remaining = fields.Float("Montant Restant")
     quarter_1 = fields.Date("1er Trim.")
     quarter_2 = fields.Date("2ème Trim.")
-- 
GitLab