Contributors mailing list archives

contributors@odoo-community.org

Browse archives

Avatar

Re: usage bank-payment

by
Ygol InternetWork, Yves Goldberg
- 08/07/2025 09:39:50
Hi Daniel,
That case works fine with account_payment_order. It seems Odoo's SDD doesn't support due date while payment_order use another banking standard that does. so when adding an invoice to the order, all installments are added with their respective due date and the bank handle it from there.
The other option I was exploring was to manage the due date locally and only add the payment that are due to the Odoo vanilla SDD, but I think it is less efficient.
Thanks

 --
Yves Goldberg 
--

----- Original message -----
Subject: Re: usage bank-payment
Date: Monday, June 23, 2025 13:51

Hello Yves,

I implemented this for a customer in v17.
It would be nice having it as an OCA feature.

Here is the code used to implement it:

from odoo import _, models
from odoo.exceptions import UserError
class AccountPaymentRegister(models.TransientModel):
    _inherit = "account.payment.register"
    def _create_payments(self):
        # If there are multiple lines for the same move, we only use the first one
        # Example: 50% on Jun30 and 50% on Jul15,
        # the first payment should select the first 50% amount, and not the full amount
        # NOTE: only for SDD, should be extended to other payment methods? configurable?
        sdd_method = self.env.ref("account_sepa_direct_debit.payment_method_sdd")
        if self.payment_method_line_id.payment_method_id == sdd_method:
            original_method = self.payment_method_line_id
            # A SDD batch should be able to include multiple due dates
            # previous to the requested payment date
            dt = self.payment_date
            self.line_ids = self.line_ids.filtered(lambda x: x.date_maturity <= dt)
            if not self.line_ids:
                raise UserError(_("No invoice matches the SDD payment date selected."))
            # For some reason, the payment method is reset at this point :-P
            self.payment_method_line_id = original_method
        return super()._create_payments()


On 14/02/2025 10:32, Yves Goldberg wrote:
Hi,

Having an invoice
with payment mode/method "[sepa_direct_debit] SEPA Direct Debit for customers (inbound)" 

with payment condition to pay in 3 times:
1# mensualités de 30,00 € le 14/02/2025
2# mensualités de 30,00 € le 15/02/2025
3# mensualités de 40,00 € le 16/02/2025

How may I automatically add the due amount to a mandate? Based on the above example, I would like to have a payment with amount 30,00 added on Feb 14th mandate and another 30,00 on another mandate with date Feb 15 etc.

Maybe account_payment_order module can partially help. Any existing module could further help ?

Thank you.





 --
Yves Goldberg
--


--
DANIEL REIS
MANAGING PARTNER

>> Schedule time on my calendar.
M: +351 919 991 307
A: Avenida da República 3000, Estoril Office Center, 2649-517 Cascais

[Logo OpenSourceIntegrators.com]

_______________________________________________
Post to: mailto:contributors@odoo-community.org


Reference