From 5f0164f4c1c9690d1ae3ac7cf21a6e3a89e40bfe Mon Sep 17 00:00:00 2001
From: benjamin <benjamin@le-filament.com>
Date: Tue, 30 Jan 2024 11:12:43 +0100
Subject: [PATCH] [UPD] remove invoice for adhesion

---
 __manifest__.py                               |  2 -
 datas/mail_data.xml                           |  2 +-
 models/__init__.py                            |  3 -
 models/res_company.py                         | 20 ----
 models/res_config_settings.py                 | 20 ----
 models/res_partner.py                         | 92 -------------------
 .../res_partner_project_invoicing_status.py   | 22 -----
 security/ir.model.access.csv                  |  2 -
 views/res_config_settings.xml                 | 58 ------------
 views/res_partner.xml                         | 17 ----
 .../res_partner_project_invoicing_status.xml  | 37 --------
 11 files changed, 1 insertion(+), 274 deletions(-)
 delete mode 100644 models/res_company.py
 delete mode 100644 models/res_config_settings.py
 delete mode 100644 models/res_partner_project_invoicing_status.py
 delete mode 100644 views/res_config_settings.xml
 delete mode 100644 views/res_partner_project_invoicing_status.xml

diff --git a/__manifest__.py b/__manifest__.py
index 7e66065..e59edfd 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -29,9 +29,7 @@
         "wizard/scop_registration_wizard.xml",
         # views
         "views/assets.xml",
-        "views/res_config_settings.xml",
         "views/res_partner.xml",
-        "views/res_partner_project_invoicing_status.xml",
         "views/scop_adhesion_file.xml",
         # report
         "report/report_scop_adhesion.xml",
diff --git a/datas/mail_data.xml b/datas/mail_data.xml
index e5b6bcf..80206b6 100644
--- a/datas/mail_data.xml
+++ b/datas/mail_data.xml
@@ -16,7 +16,7 @@
                         <p>Chère Coopératrice, Cher Coopérateur,</p>
                         <p>&#160;</p>
                         <p
-                        >Merci pour votre adhésion ! Vous trouverez sur votre espace personnel votre courrier et facture d'adhésion.</p>
+                        >Merci pour votre adhésion ! Vous trouverez sur votre espace personnel votre courrier d'adhésion.</p>
                         <p
                         >Si vous rencontrez des problèmes d'accès ou si vous ne savez pas comment vous connectez, n'hésitez pas à vous rapprocher de votre délégué qui pourra vous aider.</p>
                         <p>&#160;</p>
diff --git a/models/__init__.py b/models/__init__.py
index 4a9c0b1..b128f4f 100644
--- a/models/__init__.py
+++ b/models/__init__.py
@@ -1,10 +1,7 @@
 # © 2019 Le Filament (<http://www.le-filament.com>)
 # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
 
-from . import res_company
-from . import res_config_settings
 from . import res_partner
-from . import res_partner_project_invoicing_status
 from . import scop_adhesion_file
 from . import scop_liasse_fiscale
 from . import scop_liste_ministere
diff --git a/models/res_company.py b/models/res_company.py
deleted file mode 100644
index 236b20e..0000000
--- a/models/res_company.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# © 2021 Le Filament (<http://www.le-filament.com>)
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-
-from odoo import fields, models
-
-
-class ScopAdhesionCompany(models.Model):
-    _inherit = "res.company"
-
-    is_adhesion = fields.Boolean("Adhésions", default=False)
-    product_adhesion_id = fields.Many2one(
-        comodel_name="product.product",
-        string="Article d'adhésion",
-        domain="[('sale_ok', '=', True), ('company_id', '=', company_id)]",
-    )
-    journal_adhesion_id = fields.Many2one(
-        comodel_name="account.journal",
-        string="Journal des adhésions",
-        domain="[('type', '=', 'sale')]",
-    )
diff --git a/models/res_config_settings.py b/models/res_config_settings.py
deleted file mode 100644
index 47b32f6..0000000
--- a/models/res_config_settings.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# © 2021 Le Filament (<http://www.le-filament.com>)
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-
-from odoo import fields, models
-
-
-class ScopAdhesionConfigSettings(models.TransientModel):
-    _inherit = "res.config.settings"
-
-    is_adhesion = fields.Boolean(
-        string="Adhésions", related="company_id.is_adhesion", readonly=False
-    )
-    product_adhesion_id = fields.Many2one(
-        related="company_id.product_adhesion_id",
-        readonly=False,
-    )
-    journal_adhesion_id = fields.Many2one(
-        related="company_id.journal_adhesion_id",
-        readonly=False,
-    )
diff --git a/models/res_partner.py b/models/res_partner.py
index 97fffdb..00b1cd3 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -54,10 +54,6 @@ class ScopPartner(models.Model):
     date_transmission_cg = fields.Date("Date de transmission du dossier à la CG")
     date_bureau_validation = fields.Date("Date du bureau de validation")
 
-    invoice_adhesion_id = fields.Many2one(
-        comodel_name="account.move", string="Facture d'adhésion"
-    )
-
     # Dossier UE
     file_fse_open = fields.Boolean("Dossier FSE ouvert Oui/Non")
     is_id_card = fields.Boolean("Carte d'identité reçue")
@@ -66,16 +62,6 @@ class ScopPartner(models.Model):
     recipient_file_fse = fields.Many2one(
         "res.partner", string="Destinataire du dossier FSE"
     )
-    project_invoicing_status_id = fields.Many2many(
-        "res.partner.project.invoicing.status",
-        column1="partner_id",
-        column2="invoicing_status_id",
-        string="Etat de facturation",
-    )
-    project_invoicing_status_nb = fields.Integer(
-        string="Nb de statuts de facturation",
-        compute="_compute_project_invoicing_status_nb",
-    )
     liasse_membership_id = fields.Many2one(
         comodel_name="scop.liasse.fiscale", string="Liasse fiscale adhésion"
     )
@@ -86,14 +72,6 @@ class ScopPartner(models.Model):
     # ------------------------------------------------------
     # Compute function
     # ------------------------------------------------------
-    def _compute_project_invoicing_status_nb(self):
-        for partner in self:
-            # Calcul nombre de statut 1
-            sta = partner.env["res.partner.project.invoicing.status"].search(
-                [("ur_id", "=", self.env.user.ur_id.id)]
-            )
-            partner.project_invoicing_status_nb = len(sta)
-
     def _compute_year_project(self):
         for partner in self:
             partner.year_project = None
@@ -259,72 +237,6 @@ class ScopPartner(models.Model):
                 }
             )
 
-    def create_invoice_adhesion(self):
-        """
-        Crée une facture d'adhésion avec l'article et le journal configurés
-        ‐ Moins de 11 salariés (ou effectif inconnu) : 80€
-        ‐ Entre 11 et 50 salariés : 160€
-        ‐ Plus de 50 salariés : 235€
-        :param lm:
-        :return:
-        """
-        self.ensure_one()
-        product_id = self.env.company.product_adhesion_id
-        journal_id = self.env.company.journal_adhesion_id
-        if not (product_id or journal_id):
-            raise ValidationError(
-                _("Vous devez configurer un article et un journal d'adhésion !")
-            )
-        else:
-            staff_line = self.staff_ids.filtered(
-                lambda s: s.type_entry == "membership"
-            ).sorted(key="effective_date", reverse=True)
-            staff_number = staff_line[0].staff_count if staff_line else 0
-            amount_adhesion = self.get_amount_adhesion(staff_number)
-
-            Invoice = self.env["account.move"]
-
-            date_invoice = self.date_bureau_validation or fields.Date.today()
-            adhesion_invoice = Invoice.create(
-                {
-                    "partner_id": self.id,
-                    "move_type": "out_invoice",
-                    "journal_id": journal_id.id,
-                    "state": "draft",
-                    "invoice_date": date_invoice,
-                    "invoice_line_ids": [
-                        (
-                            0,
-                            None,
-                            {
-                                "product_id": product_id.id,
-                                "account_id": product_id.property_account_income_id.id,
-                                "tax_ids": [(6, 0, product_id.taxes_id.ids)],
-                                "name": product_id.name,
-                                "price_unit": amount_adhesion,
-                                "price_subtotal": amount_adhesion,
-                            },
-                        ),
-                    ],
-                }
-            )
-            adhesion_invoice.action_post()
-
-            return adhesion_invoice
-
-    def get_amount_adhesion(self, effectif):
-        """
-        Return amount adhésion thanks to effectif
-        """
-        self.ensure_one()
-        if 11 <= effectif <= 50:
-            amount_adhesion = 160
-        elif effectif > 50:
-            amount_adhesion = 235
-        else:
-            amount_adhesion = 80
-        return amount_adhesion
-
     # ------------------------------------------------------
     # Override parent / Change of status
     # ------------------------------------------------------
@@ -414,7 +326,6 @@ class ScopPartner(models.Model):
         Inherit function to :
         - create period adhesion CG
         - create period adhesion Fédé if needed
-        - create invoice adhesion
         - set liasse_fiscale_adhesion as qualified
         """
         # Create period adhésions with num adherent
@@ -423,9 +334,6 @@ class ScopPartner(models.Model):
         self.create_period_adhesion_fede(num_adherent)
         # TODO : check pour fede CAE si coop is CAE ?
 
-        # Create invoice adhésion
-        invoice = self.create_invoice_adhesion()
-        self.invoice_adhesion_id = invoice
         self.update(
             {
                 "membership_status": "member",
diff --git a/models/res_partner_project_invoicing_status.py b/models/res_partner_project_invoicing_status.py
deleted file mode 100644
index ac9586b..0000000
--- a/models/res_partner_project_invoicing_status.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# © 2019 Le Filament (<http://www.le-filament.com>)
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-
-from odoo import fields, models
-
-
-class ResPartnerProjectInvoicingStatus(models.Model):
-    _name = "res.partner.project.invoicing.status"
-    _description = "Etat de la facturation projet"
-    _order = "ur_id, name"
-
-    def _default_ur(self):
-        return self.env["res.company"]._ur_default_get()
-
-    name = fields.Char("Nom", index=True, required=True)
-    ur_id = fields.Many2one(
-        "union.regionale",
-        string="Union Régionale",
-        index=True,
-        ondelete="restrict",
-        default=_default_ur,
-    )
diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv
index 00ee09b..d7c0ae8 100644
--- a/security/ir.model.access.csv
+++ b/security/ir.model.access.csv
@@ -1,8 +1,6 @@
 id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
 access_res_partner_prescriber_canal,access_res_partner_prescriber_canal,model_res_partner_prescriber_canal,base.group_user,1,0,0,0
 admin_res_partner_prescriber_canal,admin_res_partner_prescriber_canal,model_res_partner_prescriber_canal,cgscop_partner.group_cg_administrator,1,1,1,1
-access_res_partner_project_invoicing_status,access_res_partner_project_invoicing_status,model_res_partner_project_invoicing_status,base.group_user,1,0,0,0
-admin_res_partner_project_invoicing_status,admin_res_partner_project_invoicing_status,model_res_partner_project_invoicing_status,cgscop_partner.group_cg_administrator,1,1,1,1
 access_scop_adhesion_file,access_scop_adhesion_file,model_scop_adhesion_file,base.group_user,1,0,0,0
 admin_scop_adhesion_file,admin_scop_adhesion_file,model_scop_adhesion_file,cgscop_partner.group_cg_administrator,1,1,1,1
 cg_access_compulsory_fields_suivi_wizard,cg_access_compulsory_fields_suivi_wizard,model_scop_compulsory_fields_suivi_wizard,base.group_user,1,1,1,0
diff --git a/views/res_config_settings.xml b/views/res_config_settings.xml
deleted file mode 100644
index 14ad190..0000000
--- a/views/res_config_settings.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<odoo>
-    <data>
-
-        <record id="res_config_settings_view_form_cotisations" model="ir.ui.view">
-            <field name="name">res.config.settings.view.form.inherit.cotisations</field>
-            <field name="model">res.config.settings</field>
-            <field name="priority" eval="25" />
-            <field name="inherit_id" ref="account.res_config_settings_view_form" />
-            <field name="arch" type="xml">
-                <xpath expr="//div[@data-key='account']" position="inside">
-                    <h2>Adhésions</h2>
-                    <div class="row mt16 o_settings_container" name="contribution">
-                        <div class="col-xs-12 col-md-6 o_setting_box">
-                            <div class="o_setting_left_pane">
-                                <field name="is_adhesion" />
-                            </div>
-                            <div class="o_setting_right_pane">
-                                <label for="is_adhesion" />
-                                <div class="text-muted">
-                                    Activer la gestion des adhésions pour cette société
-                                </div>
-                            </div>
-                            <div class="o_setting_left_pane" />
-                            <div
-                                class="o_setting_right_pane"
-                                attrs="{'invisible': [('is_adhesion', '=', False)]}"
-                            >
-                                <label for="product_adhesion_id" />
-                                <div class="text-muted">
-                                    Article facturable pour les adhésions
-                                </div>
-                                <field
-                                    name="product_adhesion_id"
-                                    attrs="{'required': [('is_adhesion', '=', True)]}"
-                                />
-                            </div>
-                            <div
-                                class="o_setting_right_pane"
-                                attrs="{'invisible': [('is_adhesion', '=', False)]}"
-                            >
-                                <label for="journal_adhesion_id" />
-                                <div class="text-muted">
-                                    Journal pour les adhésions
-                                </div>
-                                <field
-                                    name="journal_adhesion_id"
-                                    attrs="{'required': [('is_adhesion', '=', True)]}"
-                                />
-                            </div>
-                        </div>
-                    </div>
-                </xpath>
-            </field>
-        </record>
-
-    </data>
-</odoo>
diff --git a/views/res_partner.xml b/views/res_partner.xml
index f3862f4..beefbe8 100644
--- a/views/res_partner.xml
+++ b/views/res_partner.xml
@@ -150,7 +150,6 @@
                                 widget="html"
                             />
                         </div>
-                        <field name="project_invoicing_status_nb" invisible="1" />
                         <group col="3">
                             <group string="Général">
                                 <field name="project_number" />
@@ -182,13 +181,6 @@
                                 <field name="fse_full" widget="boolean_toggle" />
                                 <field name="is_id_card" widget="boolean_toggle" />
                                 <field name="recipient_file_fse" />
-                                <field
-                                    name="project_invoicing_status_id"
-                                    widget="many2many_tags"
-                                    options="{'no_create': True}"
-                                    domain="[('ur_id', '=', ur_id)]"
-                                    attrs="{'invisible':[('project_invoicing_status_nb', '=', 0)]}"
-                                />
                             </group>
                             <group string="Phase d'information">
                                 <field
@@ -259,7 +251,6 @@
                                 widget="html"
                             />
                         </div>
-                        <field name="project_invoicing_status_nb" invisible="1" />
                         <group col="3">
                             <group
                                 string="Phase d'adhésion"
@@ -280,7 +271,6 @@
                         string="Processus de création"
                         attrs="{'invisible': ['|', ('is_cooperative', '!=', True), ('project_status','not in', ['4_suivi', '6_decede'])]}"
                     >
-                        <field name="project_invoicing_status_nb" invisible="1" />
                         <group col="3">
                             <group string="Général">
                                 <field name="project_number" />
@@ -308,13 +298,6 @@
                                 <field name="date_return_file" />
                                 <field name="fse_full" widget="boolean_toggle" />
                                 <field name="recipient_file_fse" />
-                                <field
-                                    name="project_invoicing_status_id"
-                                    widget="many2many_tags"
-                                    options="{'no_create': True}"
-                                    domain="[('ur_id', '=', ur_id)]"
-                                    attrs="{'invisible':[('project_invoicing_status_nb', '=', 0)]}"
-                                />
                             </group>
                             <group string="Phase d'information">
                                 <field name="date_first_rdv" />
diff --git a/views/res_partner_project_invoicing_status.xml b/views/res_partner_project_invoicing_status.xml
deleted file mode 100644
index 33662c4..0000000
--- a/views/res_partner_project_invoicing_status.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<odoo>
-    <data>
-
-        <!-- statut de facturation projet -->
-        <record id="view_res_partner_project_invoicing_status_tree" model="ir.ui.view">
-            <field name="name">res.partner.project.invoicing.status.tree</field>
-            <field name="model">res.partner.project.invoicing.status</field>
-            <field name="arch" type="xml">
-                <tree string="Etat de la facturation projet" editable="top">
-                    <field name="name" />
-                </tree>
-            </field>
-        </record>
-
-        <record
-            id="action_view_res_partner_project_invoicing_status_tree"
-            model="ir.actions.act_window"
-        >
-            <field name="name">Etat de la facturation projet</field>
-            <field name="res_model">res.partner.project.invoicing.status</field>
-            <field name="domain">[('ur_id', '=', ur_id)]</field>
-            <field name="view_mode">tree</field>
-            <field name="help">Affiche et gère les états de facturation projet</field>
-        </record>
-
-        <menuitem
-            id="menu_res_partner_project_invoicing_status"
-            parent="cgscop_partner.menu_scop"
-            action="action_view_res_partner_project_invoicing_status_tree"
-            groups="cgscop_partner.group_cg_administrator"
-            sequence="17"
-        />
-
-
-    </data>
-</odoo>
-- 
GitLab