diff --git a/__manifest__.py b/__manifest__.py index 26c7db0323dcf746f9486b055dde7ff9696bcba9..d69c8446dd3c370c6552537f9563542fee699c49 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -48,6 +48,7 @@ "wizard/scop_cotisation_cg_wizard.xml", "wizard/scop_bordereau_update_confirm_view.xml", "wizard/scop_bordereau_validate_confirm_view.xml", + "wizard/scop_update_liasse_wizard.xml", # Wizard dependency view "views/scop_bordereau_cg.xml", # Menus diff --git a/models/scop_bordereau_cg.py b/models/scop_bordereau_cg.py index ff14234d0ffc5dbb5976828a3c84d58559d22c92..5944e68b1585da0e1d05efa7329c93eaabb064e0 100644 --- a/models/scop_bordereau_cg.py +++ b/models/scop_bordereau_cg.py @@ -55,7 +55,7 @@ class Bordereau(models.Model): liasse_fiscale_id = fields.Many2one( comodel_name="scop.liasse.fiscale", string="Liasse fiscale de référence", - readonly=True, + domain="[('partner_id', '=', partner_id), ('is_qualified', '=', True)]", tracking=1, ) liasse_count = fields.Integer( diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv index 4fc53d6cc353850813d728d5e3c08d4b7c6b4568..2add3e9526d67bbce885cd85e372608c98931c32 100644 --- a/security/ir.model.access.csv +++ b/security/ir.model.access.csv @@ -20,3 +20,4 @@ access_export_journal_cg_wizard,access_export_journal_cg_wizard,model_export_jou access_scop_bordereau_change_liasse_wizard,access_scop_bordereau_change_liasse_wizard,model_scop_bordereau_change_liasse_wizard,base.group_user,1,1,1,1 access_scop_bordereau_change_payment_mode_wizard,access_scop_bordereau_change_payment_mode_wizard,model_scop_bordereau_change_payment_mode_wizard,base.group_user,1,1,1,1 access_account_banking_mandate_change_bordereau_wizard,access_account_banking_mandate_change_bordereau_wizard,model_account_banking_mandate_change_bordereau_wizard,cgscop_cotisation_cg.group_cotisation_cg_administrative,1,1,1,1 +access_scop_update_liasse_wizard,access_scop_update_liasse_wizard,model_scop_update_liasse_wizard,cgscop_partner.group_cg_administrator,1,1,1,1 diff --git a/views/scop_bordereau_cg.xml b/views/scop_bordereau_cg.xml index d8de854b29c3651033f2abe3a692a820efe8b7b8..62a9ad7c1e139dd883ad14076643aabe87204624 100644 --- a/views/scop_bordereau_cg.xml +++ b/views/scop_bordereau_cg.xml @@ -77,6 +77,13 @@ type="action" states="new,validated" /> + <button + name="%(cgscop_cotisation_cg.scop_update_liasse_wizard_act_window)d" + string="Modifier la liasse" + type="action" + states="validated,paid" + groups="base.group_no_one,cgscop_partner.group_cg_administrator" + /> </header> <sheet> <div class="oe_button_box" name="button_box"> @@ -211,6 +218,7 @@ >Pas de liasse fiscale pour le calcul</span> <field name="liasse_fiscale_id" + readonly="1" attrs="{'invisible': [('liasse_fiscale_id', '=', False)]}" /> <field diff --git a/wizard/__init__.py b/wizard/__init__.py index 5abd851dbbac6f124566fe12009a9ae7bf0ab059..e1b93bbf5ffb2aa95206410440bd21e10392d519 100644 --- a/wizard/__init__.py +++ b/wizard/__init__.py @@ -12,3 +12,4 @@ from . import scop_bordereau_update_confirm from . import scop_bordereau_validate_confirm from . import scop_cotisation_cg_regul from . import scop_cotisation_cg_wizard +from . import scop_update_liasse_wizard diff --git a/wizard/scop_update_liasse_wizard.py b/wizard/scop_update_liasse_wizard.py new file mode 100644 index 0000000000000000000000000000000000000000..0a06b21477f42c782c503b4d878cacf2c84e4532 --- /dev/null +++ b/wizard/scop_update_liasse_wizard.py @@ -0,0 +1,49 @@ +# Copyright 2020 Le Filament +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class ScopUpdateLiasseWizard(models.TransientModel): + _name = "scop.update.liasse.wizard" + _description = "Modification de la liasse des cotisations" + + bordereau_id = fields.Many2one( + comodel_name="scop.bordereau", + string="Bordereau", + readonly=True, + ) + partner_id = fields.Many2one( + comodel_name="res.partner", + string="Adhérent", + readonly=True, + ) + liasse_fiscale_id = fields.Many2one( + comodel_name="scop.liasse.fiscale", + string="Liasse Fiscale de référence", + domain="[('partner_id', '=', partner_id), ('is_qualified', '=', True)]", + ) + + # ------------------------------------------------------ + # Override ORM + # ------------------------------------------------------ + @api.model + def default_get(self, fields): + res = super(ScopUpdateLiasseWizard, self).default_get(fields) + bordereau_id = self.env["scop.bordereau"].browse( + self.env.context.get("active_id") + ) + res.update( + { + "bordereau_id": bordereau_id.id, + "partner_id": bordereau_id.partner_id.id, + "liasse_fiscale_id": bordereau_id.liasse_fiscale_id.id, + } + ) + return res + + # ------------------------------------------------------ + # Action + # ------------------------------------------------------ + def update_liasse(self): + self.bordereau_id.update({"liasse_fiscale_id": self.liasse_fiscale_id}) diff --git a/wizard/scop_update_liasse_wizard.xml b/wizard/scop_update_liasse_wizard.xml new file mode 100644 index 0000000000000000000000000000000000000000..322da614c96095cf6a07a36388c1f4056ecfb37c --- /dev/null +++ b/wizard/scop_update_liasse_wizard.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="utf-8" ?> +<odoo> + <!-- Copyright 2020 Le Filament + License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> + <data> + + <record id="scop_update_liasse_wizard_form_view" model="ir.ui.view"> + <field name="name">scop.update.liasse.wizard.form</field> + <field name="model">scop.update.liasse.wizard</field> + <field name="arch" type="xml"> + <form string="Modification Liasse"> + <sheet> + <group> + <field name="bordereau_id" readonly="1" /> + <field name="partner_id" readonly="1" /> + <field + name="liasse_fiscale_id" + options="{'no_create': 1, 'no_edit': 1}" + /> + </group> + </sheet> + <footer> + <button + name="update_liasse" + type="object" + string="Mettre à jour la liasse" + class="oe_highlight" + /> + <button string="Annuler" special="cancel" class="oe_link" /> + </footer> + </form> + </field> + </record> + + <record id="scop_update_liasse_wizard_act_window" model="ir.actions.act_window"> + <field name="name">Mise à jour de la liasse</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">scop.update.liasse.wizard</field> + <field name="view_mode">form</field> + <field name="target">new</field> + </record> + + </data> +</odoo>