diff --git a/models/account_banking_mandate.py b/models/account_banking_mandate.py index 1f4d9ac622963c0f0900b28e648615ec6a853d93..052afb5699ae64c1e34e83e06e4da4670bfa8287 100644 --- a/models/account_banking_mandate.py +++ b/models/account_banking_mandate.py @@ -1,7 +1,8 @@ # © 2020 Le Filament (<http://www.le-filament.com>) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from odoo import models +from odoo import _, models +from odoo.exceptions import UserError class AccountBankingMandate(models.Model): @@ -10,6 +11,15 @@ class AccountBankingMandate(models.Model): # ------------------------------------------------------ # Button functions # ------------------------------------------------------ + def set_payment_order(self): + self.ensure_one() + payment_mode = self.env["account.payment.mode"].search( + [("payment_method_id.code", "=", "sepa_direct_debit")] + ) + if not payment_mode: + raise UserError(_("Aucun mode de prélèvement SEPA configuré.")) + self.partner_id.customer_payment_mode_id = payment_mode + def set_invoice_mandate(self): return { "name": "Affectation du nouveau mandat", @@ -42,6 +52,8 @@ class AccountBankingMandate(models.Model): payment_mode = self.env["account.payment.mode"].search( [("payment_method_id.code", "=", "sepa_direct_debit")] ) + if not payment_mode: + raise UserError(_("Aucun mode de prélèvement SEPA configuré.")) invoice.update( { "payment_mode_id": payment_mode.id, diff --git a/views/account_banking_mandate.xml b/views/account_banking_mandate.xml index 70d2c1b0ebfed13ceda7dc83554a7dfcff702b13..8f7189dc362bbb6b77452db959fa6d28a01811c6 100644 --- a/views/account_banking_mandate.xml +++ b/views/account_banking_mandate.xml @@ -12,10 +12,19 @@ <field name="arch" type="xml"> <xpath expr="//group[@name='main']" position="before"> <div class="col-12 mt16 mb16" name="change_mandate_button"> + <button + name="set_payment_order" + type="object" + class="btn-outline-info" + string="Affecter le prélèvement comme mode de paiement par défaut" + attrs="{'invisible': [('state', '!=', 'valid')]}" + confirm="Valider le prélèvement par défaut pour la coopérative ?" + /> <button name="set_invoice_mandate" type="object" class="btn-outline-info" + style="margin-left: 15px;" string="Affecter ce mandat aux factures ouvertes" attrs="{'invisible': [('state', '!=', 'valid')]}" />