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> </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> </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