Repository
OCA/account-payment · module folder · Try on Runboat
Module version
1.0.0
Category
Accounting & Finance
Folder size
1.14 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/account-payment
Last tracking update
2026-08-07 09:06:25
Authors
Camptocamp, Odoo Community Association (OCA), Agile Business Group, Tecnativa
Maintainers
OCA
Committers
Weblate, OCA-git-bot, oca-ci, Pablo Cortés
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
None
Description
This module extends the functionality of payment terms to:

- select "Percent (untaxed amount)" type in lines for using the base
  amount instead of the total (with taxes) one.
- support rounding, months and weeks on payment term lines
- allow to set more than one day of payment in payment terms
- if a payment term date is a holiday, it is postponed to a selected
  date
- allow to apply a chronological order on lines
  - for example, with a payment term which contains 2 lines
    - on standard, the due date of all lines is calculated from the
      invoice date
    - with this feature, the due date of the second line is calculated
      from the due date of the first line

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
res_config_settings_view_form res.config.settings.view.form.inherit.account res.config.settings form Inherits account.res_config_settings_view_form
view_payment_term_form account.payment.term.form.extension account.payment.term form Inherits account.view_payment_term_form
view_payment_term_holiday_tree Tree view for account.payment.term.holiday account.payment.term.holiday list New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (5)

New fields (2)
  • holiday_ids One2many → account.payment.term.holiday
    comodel_name='account.payment.term.holiday' inverse_name='payment_id' string='Holidays'
  • sequential_lines Boolean
    default=False help='Allows to apply a chronological order on lines.'
Public methods (2)
  • apply_holidays(self, date)
  • apply_payment_days(self, line, date)
    Calculate the new date with days of payments

New fields (3)
  • date_postponed Date
    required=True string='Postponed date'
  • holiday Date
    required=True
  • payment_id Many2one → account.payment.term
    comodel_name='account.payment.term' ondelete='cascade'
Public methods (1)
  • check_holiday(self)
    @api.constrains('holiday', 'date_postponed')

New fields (4)
  • amount_round Float
    digits='Account' help='Sets the amount so that it is a multiple of this value.' string='Amount Rounding'
  • delay_type Selection
    ondelete={'weeks_after': 'set default', 'weeks_after_end_of_month': 'set default', 'weeks_after_end_of_next_month': 'set default', 'months_after': 'set default', 'months_after_end_of_month': 'set default'} selection=<expr>
  • payment_days Char
    help='Put here the day or days when the partner makes the payment. Separate each possible payment day with dashes (-), commas (,) or spaces ( ).' string='Payment day(s)'
  • value Selection
    ondelete={'percent_amount_untaxed': <expr>} selection_add=[('percent_amount_untaxed', 'Percent (Untaxed amount)'), ('fixed')]
Public methods (1)
  • compute_line_amount(self, total_amount, remaining_amount, precision_digits)
    Compute the amount for a payment term line. In case of procent computation, use the payment term line rounding if defined :param total_amount: total balance to pay :param remaining_amount: total amount minus sum of previous lines computed amount :returns: computed amount for this line

New fields (1)
  • payment_terms_delay_type Selection
    default='days' help='Choose the type of delay when creating new payment terms.' selection=[('days', 'Days'), ('weeks', 'Days and Weeks'), ('months', 'Days and Months'), ('weeks_and_months', 'Days, Weeks and Months')] string='Payment terms Delay types'
Public methods (0)

No public methods.

New fields (1)
  • payment_terms_delay_type Selection
    readonly=False related='company_id.payment_terms_delay_type'
Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…