From bfb795461a92bb89c3224096cfcdef9b4d4e781a Mon Sep 17 00:00:00 2001 From: benjamin <benjamin@le-filament.com> Date: Thu, 15 Sep 2022 16:19:42 +0200 Subject: [PATCH] [add] change partner payment mode from mandate --- models/account_banking_mandate.py | 14 +++++++++++++- views/account_banking_mandate.xml | 9 +++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/models/account_banking_mandate.py b/models/account_banking_mandate.py index 1f4d9ac..052afb5 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 70d2c1b..8f7189d 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')]}" /> -- GitLab