diff --git a/__manifest__.py b/__manifest__.py index f6ba7300f17671b270a8e81d6a36f3197916b82e..656c27c0fbf710e9e4bf5fb6c8c89e158b60591a 100755 --- a/__manifest__.py +++ b/__manifest__.py @@ -25,12 +25,13 @@ "report/report_scop_bordereau_refund.xml", "views/account_invoice.xml", "views/res_config_settings.xml", - "wizard/scop_cotisation_cg_change_liasse_wizard.xml", "views/scop_bordereau_cg.xml", "views/scop_cotisation_cg.xml", "views/scop_cotisation_simulation.xml", "views/scop_liasse_fiscale.xml", "wizard/export_journal_wizard_view.xml", + "wizard/scop_bordereau_change_liasse_wizard.xml", + "wizard/scop_bordereau_change_payment_mode_wizard.xml", "wizard/scop_cotisation_cg_wizard.xml", "wizard/scop_bordereau_update_confirm_view.xml", "wizard/scop_bordereau_validate_confirm_view.xml", diff --git a/models/scop_bordereau_cg.py b/models/scop_bordereau_cg.py index d9246a2f35069f05623c8744b4e3b88c6a51c9d1..3dfbc79b4efac23b33d1a3d5550b476686a1d856 100644 --- a/models/scop_bordereau_cg.py +++ b/models/scop_bordereau_cg.py @@ -470,7 +470,7 @@ class Bordereau(models.Model): } def action_change_liasse(self): - wizard = self.env['scop.cotisation.change.liasse.wizard']. \ + wizard = self.env['scop.bordereau.change.liasse.wizard']. \ create({ 'bordereau_id': self.id, }) @@ -479,7 +479,22 @@ class Bordereau(models.Model): 'name': 'Changer la liasse', 'views': [[False, "form"]], 'view_mode': 'form', - 'res_model': 'scop.cotisation.change.liasse.wizard', + 'res_model': 'scop.bordereau.change.liasse.wizard', + 'target': 'new', + 'res_id': wizard.id + } + + def action_change_payment_mode(self): + wizard = self.env['scop.bordereau.change.payment.mode.wizard']. \ + create({ + 'bordereau_id': self.id, + }) + return { + 'type': 'ir.actions.act_window', + 'name': 'Changer le mode de paiement', + 'views': [[False, "form"]], + 'view_mode': 'form', + 'res_model': 'scop.bordereau.change.payment.mode.wizard', 'target': 'new', 'res_id': wizard.id } diff --git a/views/scop_bordereau_cg.xml b/views/scop_bordereau_cg.xml index e81eb6199efcf59c710ec67c00f94a2bcc539df5..ef628099d75a9955e168581e3d28fca83f9746c6 100644 --- a/views/scop_bordereau_cg.xml +++ b/views/scop_bordereau_cg.xml @@ -16,6 +16,9 @@ states="new" confirm="Confirmer la validation du bordereau ?"/> <button name="print_bordereau" string="Imprimer" type="object" states="validated,paid"/> <button name="action_send_email" string="Envoyer par mail" type="object" states="validated"/> + <button name="action_change_payment_mode" + class="btn-warning" string="Changer le mode de paiement" + type="object" states="validated"/> <button name="%(cgscop_cotisation_cg.scop_cotisation_regul_wizard_act_window)d" class="btn-warning" string="Effectuer une Régularisation" diff --git a/wizard/__init__.py b/wizard/__init__.py index 1a32a8cc8b965290960bc2437b3582d45587fe8d..1ae8c0204e25bc0d3c1ed027014de637ccc71c27 100644 --- a/wizard/__init__.py +++ b/wizard/__init__.py @@ -3,8 +3,9 @@ from . import account_invoice_refund from . import export_journal_wizard +from . import scop_bordereau_change_liasse_wizard +from . import scop_bordereau_change_payment_mode_wizard 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_cotisation_cg_change_liasse_wizard diff --git a/wizard/scop_cotisation_cg_change_liasse_wizard.py b/wizard/scop_bordereau_change_liasse_wizard.py similarity index 98% rename from wizard/scop_cotisation_cg_change_liasse_wizard.py rename to wizard/scop_bordereau_change_liasse_wizard.py index d148f8f0659130ac9fec19db27f2f8f5a6c8962c..18c4e95af8016b5a4b6826d9be04ac548737f083 100644 --- a/wizard/scop_cotisation_cg_change_liasse_wizard.py +++ b/wizard/scop_bordereau_change_liasse_wizard.py @@ -4,8 +4,8 @@ from odoo import fields, models, api -class ScopCotisationChangeLiasse(models.TransientModel): - _name = 'scop.cotisation.change.liasse.wizard' +class ScopBordereauChangeLiasse(models.TransientModel): + _name = 'scop.bordereau.change.liasse.wizard' _description = 'Changement de liasse sur le bordereau' bordereau_id = fields.Many2one( diff --git a/wizard/scop_cotisation_cg_change_liasse_wizard.xml b/wizard/scop_bordereau_change_liasse_wizard.xml similarity index 91% rename from wizard/scop_cotisation_cg_change_liasse_wizard.xml rename to wizard/scop_bordereau_change_liasse_wizard.xml index c3b6edf7b0b321f1b3c8f2f4029308104e9d85de..75cfef990905f8129357feb51c27b0bada11c55a 100644 --- a/wizard/scop_cotisation_cg_change_liasse_wizard.xml +++ b/wizard/scop_bordereau_change_liasse_wizard.xml @@ -4,9 +4,9 @@ License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> <data> - <record id="scop_cotisation_change_liasse_wizard_form_view" model="ir.ui.view"> - <field name="name">scop.cotisation.change.liasse.wizard.form</field> - <field name="model">scop.cotisation.change.liasse.wizard</field> + <record id="scop_bordereau_change_liasse_wizard_form_view" model="ir.ui.view"> + <field name="name">scop.bordereau.change.liasse.wizard.form</field> + <field name="model">scop.bordereau.change.liasse.wizard</field> <field name="arch" type="xml"> <form string="Changement de liasse"> <sheet> @@ -66,10 +66,10 @@ </field> </record> - <record id="scop_cotisation_change_liasse_wizard_act_window" model="ir.actions.act_window"> + <record id="scop_bordereau_change_liasse_wizard_act_window" model="ir.actions.act_window"> <field name="name">Changement liasse bordereau</field> <field name="type">ir.actions.act_window</field> - <field name="res_model">scop.cotisation.change.liasse.wizard</field> + <field name="res_model">scop.bordereau.change.liasse.wizard</field> <field name="view_type">form</field> <field name="view_mode">form</field> <field name="target">new</field> diff --git a/wizard/scop_bordereau_change_payment_mode_wizard.py b/wizard/scop_bordereau_change_payment_mode_wizard.py new file mode 100644 index 0000000000000000000000000000000000000000..45efe0ab20b24c13e42fc35a59855c52e588cedf --- /dev/null +++ b/wizard/scop_bordereau_change_payment_mode_wizard.py @@ -0,0 +1,58 @@ +# Copyright 2021 Le Filament +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import fields, models, api + + +class ScopBordereauChangePaymentMode(models.TransientModel): + _name = 'scop.bordereau.change.payment.mode.wizard' + _description = 'Changement de mode de paiement' + + bordereau_id = fields.Many2one( + comodel_name='scop.bordereau', + string='Bordereau', + readonly=True, + ) + payment_mode_id = fields.Many2one( + comodel_name='account.payment.mode', + string="Nouveau mode de paiment",) + change_type = fields.Selection( + string='Type d\'affectation', + selection=[('punctual', 'Définir pour les échéances non payées de ce ' + 'bordereau uniquement'), + ('all', 'Définir pour toutes les prochaines échéances')], + default='punctual', + required=False, ) + + # ------------------------------------------------------ + # Action Button + # ------------------------------------------------------ + def action_change_payment_mode(self): + bordereau_id = self.bordereau_id + # Link new liasse fiscale to bordereau + if self.change_type == 'all': + bordereau_id.partner_id.update({ + 'customer_payment_mode_id': self.payment_mode_id.id, + }) + bordereau_id.update({ + 'payment_mode_id': self.payment_mode_id.id, + }) + bordereau_id.invoice_ids.update({ + 'payment_mode_id': self.payment_mode_id.id, + }) + contrib_cg_journal = self.env.user.company_id.contribution_journal_id + contrib_ur_fede_journal = \ + self.env.user.company_id.contribution_ur_or_fede_journal_id + move_line_ids = self.env['account.move.line'].search([ + ('partner_id', '=', self.bordereau_id.partner_id.id), + ('journal_id', 'in', ( + contrib_cg_journal.id, contrib_ur_fede_journal.id)), + ('full_reconcile_id', '=', False), + ('balance', '!=', 0), + ('account_id.reconcile', '=', True), + ('account_id.internal_type', '=', 'receivable') + ]) + move_line_ids.update({ + 'payment_mode_id': self.payment_mode_id.id, + }) + return {'type': 'ir.actions.act_window_close'} diff --git a/wizard/scop_bordereau_change_payment_mode_wizard.xml b/wizard/scop_bordereau_change_payment_mode_wizard.xml new file mode 100644 index 0000000000000000000000000000000000000000..4af8d77fe44f19aefa6aac02dae0c207c42122f6 --- /dev/null +++ b/wizard/scop_bordereau_change_payment_mode_wizard.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <!-- Copyright 2021 Le Filament + License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> + <data> + + <record id="scop_bordereau_change_payment_mode_wizard_form_view" model="ir.ui.view"> + <field name="name">scop.bordereau.change.payment.mode.wizard.form</field> + <field name="model">scop.bordereau.change.payment.mode.wizard</field> + <field name="arch" type="xml"> + <form string="Changement de mode de paiement"> + <group> + <field name="payment_mode_id" options="{'no_open': True, 'no_create': True}"/> + <field name="change_type" widget="radio" nolabel="1" class="mt-4"/> + </group> + <footer> + <button name="action_change_payment_mode" string="Ok" type="object" default_focus="1" class="oe_highlight"/> + <button class="oe_highlight" string="Annuler" special="cancel"/> + </footer> + </form> + </field> + </record> + + </data> +</odoo> \ No newline at end of file