Initial commit: OCA Technical packages (595 packages)

This commit is contained in:
Ernad Husremovic 2025-08-29 15:43:03 +02:00
commit 2cc02aac6e
24950 changed files with 2318079 additions and 0 deletions

View file

@ -0,0 +1,44 @@
# Account Accrual Subscriptions
Odoo addon: account_cutoff_accrual_subscription
## Installation
```bash
pip install odoo-bringout-oca-account-closing-account_cutoff_accrual_subscription
```
## Dependencies
This addon depends on:
- account_cutoff_start_end_dates
## Manifest Information
- **Name**: Account Accrual Subscriptions
- **Version**: 16.0.1.2.0
- **Category**: Accounting
- **License**: AGPL-3
- **Installable**: True
## Source
Based on [OCA/account-closing](https://github.com/OCA/account-closing) branch 16.0, addon `account_cutoff_accrual_subscription`.
## License
This package maintains the original AGPL-3 license from the upstream Odoo project.
## Documentation
- Overview: doc/OVERVIEW.md
- Architecture: doc/ARCHITECTURE.md
- Models: doc/MODELS.md
- Controllers: doc/CONTROLLERS.md
- Wizards: doc/WIZARDS.md
- Install: doc/INSTALL.md
- Usage: doc/USAGE.md
- Configuration: doc/CONFIGURATION.md
- Dependencies: doc/DEPENDENCIES.md
- Troubleshooting: doc/TROUBLESHOOTING.md
- FAQ: doc/FAQ.md

View file

@ -0,0 +1,89 @@
=============================
Account Accrual Subscriptions
=============================
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:bfc1b15addc92322f41b633b75bac596a85311afe5f169f5fe5664a78faa242e
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Faccount--closing-lightgray.png?logo=github
:target: https://github.com/OCA/account-closing/tree/16.0/account_cutoff_accrual_subscription
:alt: OCA/account-closing
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/account-closing-16-0/account-closing-16-0-account_cutoff_accrual_subscription
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/account-closing&target_branch=16.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
This module allows you to easily compute accrued expenses (and accrued revenues) by comparing expected expense amounts (configured as *subscriptions*) with real expense amounts.
**Table of contents**
.. contents::
:local:
Configuration
=============
Go to the menu *Accounting > Configuration > Accounting > Subscriptions* and create subscriptions: they are used as the expected expenses (or revenue). For exemple, you may create a subscription for your office rental, your Internet access, your insurance contracts, etc.
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/account-closing/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/account-closing/issues/new?body=module:%20account_cutoff_accrual_subscription%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues.
Credits
=======
Authors
~~~~~~~
* Akretion
Contributors
~~~~~~~~~~~~
* Alexis de Lattre <alexis.delattre@akretion.com>
Maintainers
~~~~~~~~~~~
This module is maintained by the OCA.
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
.. |maintainer-alexis-via| image:: https://github.com/alexis-via.png?size=40px
:target: https://github.com/alexis-via
:alt: alexis-via
Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:
|maintainer-alexis-via|
This module is part of the `OCA/account-closing <https://github.com/OCA/account-closing/tree/16.0/account_cutoff_accrual_subscription>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View file

@ -0,0 +1,22 @@
# Copyright 2019-2021 Akretion France (http://www.akretion.com/)
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
"name": "Account Accrual Subscriptions",
"version": "16.0.1.2.0",
"category": "Accounting",
"license": "AGPL-3",
"summary": "Accrued expenses based on subscriptions",
"author": "Akretion,Odoo Community Association (OCA)",
"maintainers": ["alexis-via"],
"website": "https://github.com/OCA/account-closing",
"depends": ["account_cutoff_start_end_dates"],
"data": [
"security/ir.model.access.csv",
"security/ir_rule.xml",
"views/account_cutoff_accrual_subscription.xml",
"views/account_cutoff_line.xml",
],
"installable": True,
}

View file

@ -0,0 +1,339 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_cutoff_accrual_subscription
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"%(start)s → %(end)s%(prorata)s: %(sub_type)s %(amount)s over min. amount ⇒ "
"no provisionning"
msgstr ""
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"%(start)s → %(end)s%(prorata)s: %(sub_type)s %(amount)s under min. amount "
"⇒provisionning %(cutoff_amount)s"
msgstr ""
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"<p>No provision for subscription <a href=# data-oe-"
"model=account.cutoff.accrual.subscription data-oe-"
"id=%(id)d>%(name)s</a>:</p>"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__account_id
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Account"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model,name:account_cutoff_accrual_subscription.model_account_cutoff
msgid "Account Cut-off"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model,name:account_cutoff_accrual_subscription.model_account_cutoff_line
msgid "Account Cut-off Line"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__active
msgid "Active"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__analytic_distribution
msgid "Analytic"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__analytic_distribution_search
msgid "Analytic Distribution Search"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__analytic_precision
msgid "Analytic Precision"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__partner_type__any
msgid "Any Partner"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_form
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Archived"
msgstr ""
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"CONFIG: %(periodicity)s periodicity, start date %(start_date)s, min. expense"
" amount %(min_amount)s, default provision amount %(provision_amount)s"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__company_id
msgid "Company"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__company_currency_id
msgid "Company Currency"
msgstr ""
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "Computing cut-offs from %d subscriptions."
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__create_uid
msgid "Created by"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__create_date
msgid "Created on"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__provision_amount
msgid "Default Provision Amount"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__display_name
msgid "Display Name"
msgstr ""
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__subscription_type__expense
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
#, python-format
msgid "Expense"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__id
msgid "ID"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription____last_update
msgid "Last Modified on"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__write_uid
msgid "Last Updated by"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__write_date
msgid "Last Updated on"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__min_amount
msgid "Minimum Amount"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,help:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__min_amount
msgid "Minimum amount without taxes over the period"
msgstr ""
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff_accrual_subscription.py:0
#, python-format
msgid "Missing partner on subscription '%s'."
msgstr ""
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "Missing source journals."
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__month
msgid "Monthly"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__name
msgid "Name"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__partner_type__none
msgid "No Partner"
msgstr ""
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "Odoo cannot compute the fiscal year start date."
msgstr ""
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff_accrual_subscription.py:0
#, python-format
msgid "On subscription %s, the start date is not the first day of a month."
msgstr ""
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "PERIODS:"
msgstr ""
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"PRORATED min. amount %(min_amount)s, default provisionning amount "
"%(provision_amount)s"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__partner_id
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Partner"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__partner_type
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Partner Type"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__periodicity
msgid "Periodicity"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__quarter
msgid "Quarterly"
msgstr ""
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__subscription_type__revenue
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
#, python-format
msgid "Revenue"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__semester
msgid "Semesterly"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__partner_type__one
msgid "Specific Partner"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__start_date
msgid "Start Date"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_line__subscription_id
msgid "Subscription"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_form
msgid "Subscription Name"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.actions.act_window,name:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_action
#: model:ir.ui.menu,name:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_menu
msgid "Subscriptions"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model,name:account_cutoff_accrual_subscription.model_account_cutoff_accrual_subscription
msgid "Subscriptions to compute accrual cutoffs"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__tax_ids
msgid "Taxes"
msgstr ""
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"The cutoffs with subscription only work when the cutoff date (%s) is the "
"last day of a month."
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.constraint,message:account_cutoff_accrual_subscription.constraint_account_cutoff_accrual_subscription_provision_amount_positive
msgid "The default provision amount must be positive."
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.constraint,message:account_cutoff_accrual_subscription.constraint_account_cutoff_accrual_subscription_min_amount_positive
msgid "The minimum amount must be positive."
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__subscription_type
msgid "Type"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__type_tax_use
msgid "Type Tax Use"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__year
msgid "Yearly"
msgstr ""

View file

@ -0,0 +1,339 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_cutoff_accrual_subscription
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"%(start)s → %(end)s%(prorata)s: %(sub_type)s %(amount)s over min. amount ⇒ "
"no provisionning"
msgstr ""
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"%(start)s → %(end)s%(prorata)s: %(sub_type)s %(amount)s under min. amount "
"⇒provisionning %(cutoff_amount)s"
msgstr ""
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"<p>No provision for subscription <a href=# data-oe-"
"model=account.cutoff.accrual.subscription data-oe-"
"id=%(id)d>%(name)s</a>:</p>"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__account_id
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Account"
msgstr "Konto"
#. module: account_cutoff_accrual_subscription
#: model:ir.model,name:account_cutoff_accrual_subscription.model_account_cutoff
msgid "Account Cut-off"
msgstr "Računovodstveno presjecanje"
#. module: account_cutoff_accrual_subscription
#: model:ir.model,name:account_cutoff_accrual_subscription.model_account_cutoff_line
msgid "Account Cut-off Line"
msgstr "Linija računovodstvenog presjecanja"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__active
msgid "Active"
msgstr "Aktivan"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__analytic_distribution
msgid "Analytic"
msgstr "Analitika"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__analytic_distribution_search
msgid "Analytic Distribution Search"
msgstr "Pretraga analitičkih distribucija"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__analytic_precision
msgid "Analytic Precision"
msgstr "Preciznost analitike"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__partner_type__any
msgid "Any Partner"
msgstr "Bilo koji partner"
#. module: account_cutoff_accrual_subscription
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_form
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Archived"
msgstr "Arhivirano"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"CONFIG: %(periodicity)s periodicity, start date %(start_date)s, min. expense"
" amount %(min_amount)s, default provision amount %(provision_amount)s"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__company_id
msgid "Company"
msgstr "Preduzeće"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__company_currency_id
msgid "Company Currency"
msgstr "Valuta preduzeća"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "Computing cut-offs from %d subscriptions."
msgstr "Izračunavanje presjecanja iz %d pretplata."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__create_uid
msgid "Created by"
msgstr "Kreirao"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__create_date
msgid "Created on"
msgstr "Kreirano"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__provision_amount
msgid "Default Provision Amount"
msgstr "Zadani iznos rezerve"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__display_name
msgid "Display Name"
msgstr "Prikazani naziv"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__subscription_type__expense
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
#, python-format
msgid "Expense"
msgstr "Trošak"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__id
msgid "ID"
msgstr "ID"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription____last_update
msgid "Last Modified on"
msgstr "Zadnje mijenjano"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__write_uid
msgid "Last Updated by"
msgstr "Zadnji ažurirao"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__write_date
msgid "Last Updated on"
msgstr "Zadnje ažurirano"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__min_amount
msgid "Minimum Amount"
msgstr "Minimalni iznos"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,help:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__min_amount
msgid "Minimum amount without taxes over the period"
msgstr "Minimalni iznos bez poreza preko perioda"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff_accrual_subscription.py:0
#, python-format
msgid "Missing partner on subscription '%s'."
msgstr "Nedostaje partner na pretplati '%s'."
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "Missing source journals."
msgstr "Nedostaju izvorni dnevnici."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__month
msgid "Monthly"
msgstr "Mjesečno"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__name
msgid "Name"
msgstr "Naziv:"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__partner_type__none
msgid "No Partner"
msgstr "Nema partnera"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "Odoo cannot compute the fiscal year start date."
msgstr "Odoo ne može izračunati početni datum fiskalne godine."
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff_accrual_subscription.py:0
#, python-format
msgid "On subscription %s, the start date is not the first day of a month."
msgstr "Na pretplati %s, početni datum nije prvi dan mjeseca."
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "PERIODS:"
msgstr "PERIODI:"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"PRORATED min. amount %(min_amount)s, default provisionning amount "
"%(provision_amount)s"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__partner_id
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Partner"
msgstr "Partner"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__partner_type
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Partner Type"
msgstr "Vrsta partnera"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__periodicity
msgid "Periodicity"
msgstr "Periodičnost"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__quarter
msgid "Quarterly"
msgstr "Kvartalno"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__subscription_type__revenue
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
#, python-format
msgid "Revenue"
msgstr "Prihod"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__semester
msgid "Semesterly"
msgstr "Polugodišnje"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__partner_type__one
msgid "Specific Partner"
msgstr "Specifičan partner"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__start_date
msgid "Start Date"
msgstr "Početni datum"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_line__subscription_id
msgid "Subscription"
msgstr "Pretplata"
#. module: account_cutoff_accrual_subscription
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_form
msgid "Subscription Name"
msgstr "Naziv pretplate"
#. module: account_cutoff_accrual_subscription
#: model:ir.actions.act_window,name:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_action
#: model:ir.ui.menu,name:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_menu
msgid "Subscriptions"
msgstr "Pretplate"
#. module: account_cutoff_accrual_subscription
#: model:ir.model,name:account_cutoff_accrual_subscription.model_account_cutoff_accrual_subscription
msgid "Subscriptions to compute accrual cutoffs"
msgstr "Pretplate za izračun akruelnih presjecanja"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__tax_ids
msgid "Taxes"
msgstr "Porezi"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"The cutoffs with subscription only work when the cutoff date (%s) is the "
"last day of a month."
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.constraint,message:account_cutoff_accrual_subscription.constraint_account_cutoff_accrual_subscription_provision_amount_positive
msgid "The default provision amount must be positive."
msgstr "Zadani iznos rezerve mora biti pozitivan."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.constraint,message:account_cutoff_accrual_subscription.constraint_account_cutoff_accrual_subscription_min_amount_positive
msgid "The minimum amount must be positive."
msgstr "Minimalni iznos mora biti pozitivan."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__subscription_type
msgid "Type"
msgstr "Tip"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__type_tax_use
msgid "Type Tax Use"
msgstr "Tip korišćenja poreza"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__year
msgid "Yearly"
msgstr "Godišnje"

View file

@ -0,0 +1,360 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_cutoff_accrual_subscription
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-07-11 20:10+0000\n"
"Last-Translator: Ivorra78 <informatica@totmaterial.es>\n"
"Language-Team: none\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"%(start)s → %(end)s%(prorata)s: %(sub_type)s %(amount)s over min. amount ⇒ "
"no provisionning"
msgstr ""
"%(start)s → %(end)s%(prorata)s: %(sub_type)s %(amount)s por encima del "
"importe mínimo ⇒ sin provisión"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"%(start)s → %(end)s%(prorata)s: %(sub_type)s %(amount)s under min. amount "
"⇒provisionning %(cutoff_amount)s"
msgstr ""
"%(start)s → %(end)s%(prorata)s: %(sub_type)s %(amount)s bajo importe mín. "
"⇒provisión %(cutoff_amount)s"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"<p>No provision for subscription <a href=# data-oe-model=account.cutoff."
"accrual.subscription data-oe-id=%(id)d>%(name)s</a>:</p>"
msgstr ""
"<p>No hay provisión para la suscripción <a href=# data-oe-model=account."
"cutoff.accrual.subscription data-oe-id=%(id)d>%(name)s</a>:</p>"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__account_id
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Account"
msgstr "Cuenta"
#. module: account_cutoff_accrual_subscription
#: model:ir.model,name:account_cutoff_accrual_subscription.model_account_cutoff
msgid "Account Cut-off"
msgstr "Cierre de cuenta"
#. module: account_cutoff_accrual_subscription
#: model:ir.model,name:account_cutoff_accrual_subscription.model_account_cutoff_line
msgid "Account Cut-off Line"
msgstr "Línea de cierre de cuenta"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__active
msgid "Active"
msgstr "Activo"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__analytic_distribution
msgid "Analytic"
msgstr "Analítico"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__analytic_distribution_search
msgid "Analytic Distribution Search"
msgstr "búsqueda de distribución analítica"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__analytic_precision
msgid "Analytic Precision"
msgstr "Precisión analítica"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__partner_type__any
msgid "Any Partner"
msgstr "Cualquier socio"
#. module: account_cutoff_accrual_subscription
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_form
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Archived"
msgstr "Archivado"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"CONFIG: %(periodicity)s periodicity, start date %(start_date)s, min. expense "
"amount %(min_amount)s, default provision amount %(provision_amount)s"
msgstr ""
"CONFIGURACIÓN:%(periodicity)s periodicidad, fecha de inicio%(start_date)s, "
"importe mínimo de gastos%(min_amount)s,importe de la provisión por defecto "
"%(provision_amount)s"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__company_id
msgid "Company"
msgstr "Compañía"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__company_currency_id
msgid "Company Currency"
msgstr "divisa de la compañía"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "Computing cut-offs from %d subscriptions."
msgstr "Cálculo de cierre a partir de %d suscripciones."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__create_uid
msgid "Created by"
msgstr "Creado por"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__create_date
msgid "Created on"
msgstr "Creado en"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__provision_amount
msgid "Default Provision Amount"
msgstr "Importe de la provisión por defecto"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__display_name
msgid "Display Name"
msgstr "Nombre para mostrar"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__subscription_type__expense
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
#, python-format
msgid "Expense"
msgstr "gasto"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__id
msgid "ID"
msgstr "Identidad"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription____last_update
msgid "Last Modified on"
msgstr "modificado por última vez el"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__write_uid
msgid "Last Updated by"
msgstr "Actualizado por última vez por"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__write_date
msgid "Last Updated on"
msgstr "actualizado por última vez el"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__min_amount
msgid "Minimum Amount"
msgstr "importe mínimo"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,help:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__min_amount
msgid "Minimum amount without taxes over the period"
msgstr "Importe mínimo sin impuestos durante el periodo"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff_accrual_subscription.py:0
#, python-format
msgid "Missing partner on subscription '%s'."
msgstr "Falta socio en la suscripción '%s'."
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "Missing source journals."
msgstr "diarios de origen perdidos."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__month
msgid "Monthly"
msgstr "mensualmente"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__name
msgid "Name"
msgstr "nombre"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__partner_type__none
msgid "No Partner"
msgstr "no socio"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "Odoo cannot compute the fiscal year start date."
msgstr "Odoo no puede calcular la fecha de inicio del año fiscal."
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff_accrual_subscription.py:0
#, python-format
msgid "On subscription %s, the start date is not the first day of a month."
msgstr "en la suscripción %s, la fecha de inicio no es el primer dia del mes."
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "PERIODS:"
msgstr "PERIODOS:"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"PRORATED min. amount %(min_amount)s, default provisionning amount "
"%(provision_amount)s"
msgstr ""
"Importe mínimo PRORRATEADO%(min_amount)s, importe de la provisión por defecto"
"%(provision_amount)s"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__partner_id
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Partner"
msgstr "Socio"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__partner_type
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Partner Type"
msgstr "Tipo de socio"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__periodicity
msgid "Periodicity"
msgstr "Periodicidad"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__quarter
msgid "Quarterly"
msgstr "trimestral"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__subscription_type__revenue
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
#, python-format
msgid "Revenue"
msgstr "ingresos"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__semester
msgid "Semesterly"
msgstr "semestralmente"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__partner_type__one
msgid "Specific Partner"
msgstr "socio específico"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__start_date
msgid "Start Date"
msgstr "fecha de inicio"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_line__subscription_id
msgid "Subscription"
msgstr "suscripción"
#. module: account_cutoff_accrual_subscription
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_form
msgid "Subscription Name"
msgstr "Nombre de suscripción"
#. module: account_cutoff_accrual_subscription
#: model:ir.actions.act_window,name:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_action
#: model:ir.ui.menu,name:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_menu
msgid "Subscriptions"
msgstr "suscripciones"
#. module: account_cutoff_accrual_subscription
#: model:ir.model,name:account_cutoff_accrual_subscription.model_account_cutoff_accrual_subscription
msgid "Subscriptions to compute accrual cutoffs"
msgstr "Abonos para calcular los límites de devengo"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__tax_ids
msgid "Taxes"
msgstr "Impuestos"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"The cutoffs with subscription only work when the cutoff date (%s) is the "
"last day of a month."
msgstr ""
"Los cierres con suscripción sólo funcionan cuando la fecha de cierre (%s) es "
"el último día de un mes."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.constraint,message:account_cutoff_accrual_subscription.constraint_account_cutoff_accrual_subscription_provision_amount_positive
msgid "The default provision amount must be positive."
msgstr "El importe de la provisión por defecto debe ser positivo."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.constraint,message:account_cutoff_accrual_subscription.constraint_account_cutoff_accrual_subscription_min_amount_positive
msgid "The minimum amount must be positive."
msgstr "El importe mínimo debe ser positivo."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__subscription_type
msgid "Type"
msgstr "tipo"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__type_tax_use
msgid "Type Tax Use"
msgstr "tipo impuesto utilizado"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__year
msgid "Yearly"
msgstr "anualmente"
#~ msgid "Minimum Expense Amount"
#~ msgstr "Importe mínimo de gastos"
#~ msgid "Minimum expense amount without taxes over the period"
#~ msgstr "Importe mínimo de gastos sin impuestos durante el periodo"

View file

@ -0,0 +1,352 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_cutoff_accrual_subscription
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-04-20 11:36+0000\n"
"Last-Translator: Mostafa Barmshory <mostafa.barmshory@gmail.com>\n"
"Language-Team: none\n"
"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.17\n"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"%(start)s → %(end)s%(prorata)s: %(sub_type)s %(amount)s over min. amount ⇒ "
"no provisionning"
msgstr ""
"%(start)s → %(end)s%(prorata)s: %(sub_type)s %(amount)s بالاتر از حداقل "
"مقدار ⇒ بدون تأمین"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"%(start)s → %(end)s%(prorata)s: %(sub_type)s %(amount)s under min. amount "
"⇒provisionning %(cutoff_amount)s"
msgstr ""
"%(start)s → %(end)s%(prorata)s: %(sub_type)s %(amount)s زیر حداقل مبلغ⇒ "
"تأمین%(cutoff_amount)s"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"<p>No provision for subscription <a href=# data-oe-"
"model=account.cutoff.accrual.subscription data-oe-"
"id=%(id)d>%(name)s</a>:</p>"
msgstr ""
"<p> هیچ تأمینی برای اشتراک وجود ندارد<a href=# data-oe-model=بستن حساب.هزینه‌"
"ها و درآمدهای تحقق یافته. داده‌های اشتراک-oe-id=%(id)d>%(name)s</a>:</p>"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__account_id
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Account"
msgstr "حساب"
#. module: account_cutoff_accrual_subscription
#: model:ir.model,name:account_cutoff_accrual_subscription.model_account_cutoff
msgid "Account Cut-off"
msgstr "بستن حساب"
#. module: account_cutoff_accrual_subscription
#: model:ir.model,name:account_cutoff_accrual_subscription.model_account_cutoff_line
msgid "Account Cut-off Line"
msgstr "خط بستن حساب"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__active
msgid "Active"
msgstr "فعال"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__analytic_distribution
msgid "Analytic"
msgstr "تحلیلی"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__analytic_distribution_search
msgid "Analytic Distribution Search"
msgstr "جستجوی توزیع تحلیلی"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__analytic_precision
msgid "Analytic Precision"
msgstr "دقت تحلیل"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__partner_type__any
msgid "Any Partner"
msgstr "هر یک از طرفین"
#. module: account_cutoff_accrual_subscription
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_form
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Archived"
msgstr "بایگانی شده"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"CONFIG: %(periodicity)s periodicity, start date %(start_date)s, min. expense"
" amount %(min_amount)s, default provision amount %(provision_amount)s"
msgstr ""
"پیکربندی: %(periodicity)s تناوب، تاریخ شروع%(start_date)s، حداقل "
"هزینه%(min_amount)s، مبلغ تأمینی پیش‌فرض%(provision_amount)s"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__company_id
msgid "Company"
msgstr "شرکت"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__company_currency_id
msgid "Company Currency"
msgstr "ارز رایج شرکت"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "Computing cut-offs from %d subscriptions."
msgstr "محاسبه‌ی بستن حساب از اشتراک‌ها%d."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__create_uid
msgid "Created by"
msgstr "ایجاد شده توسط"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__create_date
msgid "Created on"
msgstr "ایجاد شده در"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__provision_amount
msgid "Default Provision Amount"
msgstr "مبلغ تأمینی پیش‌فرض"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__display_name
msgid "Display Name"
msgstr "نام نمایش داده شده"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__subscription_type__expense
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
#, python-format
msgid "Expense"
msgstr "هزینه"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__id
msgid "ID"
msgstr "شناسه"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription____last_update
msgid "Last Modified on"
msgstr "تاریخ آخرین تغییرات"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__write_uid
msgid "Last Updated by"
msgstr "آخرین به روزرسانی توسط"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__write_date
msgid "Last Updated on"
msgstr "تاریخ اخرین به روزرسانی"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__min_amount
msgid "Minimum Amount"
msgstr "حداقل مبلغ"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,help:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__min_amount
msgid "Minimum amount without taxes over the period"
msgstr "حداقل مبلغ بدون کسر مالیات طی دوره‌ی موردنظر"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff_accrual_subscription.py:0
#, python-format
msgid "Missing partner on subscription '%s'."
msgstr "مشترکی وجود ندارد%s."
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "Missing source journals."
msgstr "دفاتر روزنامه‌ی منبع وجود ندارند."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__month
msgid "Monthly"
msgstr "ماهانه"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__name
msgid "Name"
msgstr "نام"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__partner_type__none
msgid "No Partner"
msgstr "طرفی وجود ندارد"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "Odoo cannot compute the fiscal year start date."
msgstr "اودوو نمی‌تواند تاریخ شروع سال مالی را محاسبه کند."
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff_accrual_subscription.py:0
#, python-format
msgid "On subscription %s, the start date is not the first day of a month."
msgstr "با داشتن اشتراک%s، تاریخ شروع، اولین روز ماه نخواهد بود."
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "PERIODS:"
msgstr "دوره‌ها:"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"PRORATED min. amount %(min_amount)s, default provisionning amount "
"%(provision_amount)s"
msgstr ""
"حداقل هزینه‌ی سرشکن شده%(min_amount)s، مبلغ تأمینی "
"پیش‌فرض%(provision_amount)s"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__partner_id
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Partner"
msgstr "طرف"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__partner_type
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Partner Type"
msgstr "نوع طرف (شریک)"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__periodicity
msgid "Periodicity"
msgstr "تناوب"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__quarter
msgid "Quarterly"
msgstr "سه ماهه"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__subscription_type__revenue
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
#, python-format
msgid "Revenue"
msgstr "درآمد"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__semester
msgid "Semesterly"
msgstr "نیمساله (شش ماهه)"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__partner_type__one
msgid "Specific Partner"
msgstr "طرف خاص"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__start_date
msgid "Start Date"
msgstr "تاریخ شروع"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_line__subscription_id
msgid "Subscription"
msgstr "اشتراک"
#. module: account_cutoff_accrual_subscription
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_form
msgid "Subscription Name"
msgstr "نام اشتراک"
#. module: account_cutoff_accrual_subscription
#: model:ir.actions.act_window,name:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_action
#: model:ir.ui.menu,name:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_menu
msgid "Subscriptions"
msgstr "اشتراک‌ها"
#. module: account_cutoff_accrual_subscription
#: model:ir.model,name:account_cutoff_accrual_subscription.model_account_cutoff_accrual_subscription
msgid "Subscriptions to compute accrual cutoffs"
msgstr "حق اشتراک برای محاسبه‌ی بستن حساتب هزینه‌ها ودرآمدهای تحقق یافته"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__tax_ids
msgid "Taxes"
msgstr "مالیات‌ها"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"The cutoffs with subscription only work when the cutoff date (%s) is the "
"last day of a month."
msgstr "بستن تعهدات تنها زمانی موثر است که تاریخ آن (%s) آخرین روز ماه باشد."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.constraint,message:account_cutoff_accrual_subscription.constraint_account_cutoff_accrual_subscription_provision_amount_positive
msgid "The default provision amount must be positive."
msgstr "مبلغ تأمینی پیش‌فرض باید مثبت باشد."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.constraint,message:account_cutoff_accrual_subscription.constraint_account_cutoff_accrual_subscription_min_amount_positive
msgid "The minimum amount must be positive."
msgstr "حداقل مبلغ باید مثبت باشد."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__subscription_type
msgid "Type"
msgstr "تایپ (نوع)"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__type_tax_use
msgid "Type Tax Use"
msgstr "تایپ کاربردهای مالیاتی"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__year
msgid "Yearly"
msgstr "سالانه"

View file

@ -0,0 +1,365 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_cutoff_accrual_subscription
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-06-20 15:08+0000\n"
"Last-Translator: Alexis de Lattre <alexis@via.ecp.fr>\n"
"Language-Team: none\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.17\n"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"%(start)s → %(end)s%(prorata)s: %(sub_type)s %(amount)s over min. amount ⇒ "
"no provisionning"
msgstr ""
"%(start)s → %(end)s%(prorata)s : %(sub_type)s %(amount)s supérieur au "
"montant minimum ⇒ pas de provision"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"%(start)s → %(end)s%(prorata)s: %(sub_type)s %(amount)s under min. amount "
"⇒provisionning %(cutoff_amount)s"
msgstr ""
"%(start)s → %(end)s%(prorata)s : %(sub_type)s %(amount)s inférieur au "
"montant minimum ⇒provision de %(cutoff_amount)s"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"<p>No provision for subscription <a href=# data-oe-model=account.cutoff."
"accrual.subscription data-oe-id=%(id)d>%(name)s</a>:</p>"
msgstr ""
"<p>Pas de provision pour l'abonnement <a href=# data-oe-model=account.cutoff."
"accrual.subscription data-oe-id=%(id)d>%(name)s</a> :</p>"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__account_id
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Account"
msgstr "Compte"
#. module: account_cutoff_accrual_subscription
#: model:ir.model,name:account_cutoff_accrual_subscription.model_account_cutoff
msgid "Account Cut-off"
msgstr "Provision comptable"
#. module: account_cutoff_accrual_subscription
#: model:ir.model,name:account_cutoff_accrual_subscription.model_account_cutoff_line
msgid "Account Cut-off Line"
msgstr "Ligne de provision"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__active
msgid "Active"
msgstr "Actif"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__analytic_distribution
msgid "Analytic"
msgstr "Analytique"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__analytic_distribution_search
msgid "Analytic Distribution Search"
msgstr "Recherche de distribution analytique"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__analytic_precision
msgid "Analytic Precision"
msgstr "Précision analytique"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__partner_type__any
msgid "Any Partner"
msgstr "N'importe quel partenaire"
#. module: account_cutoff_accrual_subscription
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_form
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Archived"
msgstr "Archivé"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"CONFIG: %(periodicity)s periodicity, start date %(start_date)s, min. expense "
"amount %(min_amount)s, default provision amount %(provision_amount)s"
msgstr ""
"CONFIGURATION : périodicité %(periodicity)s, date de début %(start_date)s, "
"montant minimum de charge %(min_amount)s, montant à provisionner par défaut "
"%(provision_amount)s"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__company_id
msgid "Company"
msgstr "Société"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__company_currency_id
msgid "Company Currency"
msgstr "Devise de la société"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "Computing cut-offs from %d subscriptions."
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__create_uid
msgid "Created by"
msgstr "Créé par"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__create_date
msgid "Created on"
msgstr "Créé le"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__provision_amount
msgid "Default Provision Amount"
msgstr "Montant à provisionner par défaut"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__display_name
msgid "Display Name"
msgstr "Nom affiché"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__subscription_type__expense
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
#, python-format
msgid "Expense"
msgstr "Charges"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__id
msgid "ID"
msgstr "ID"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription____last_update
msgid "Last Modified on"
msgstr "Dernière modification le"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__write_uid
msgid "Last Updated by"
msgstr "Dernière mise à jour par"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__write_date
msgid "Last Updated on"
msgstr "Dernière mise à jour le"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__min_amount
msgid "Minimum Amount"
msgstr ""
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,help:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__min_amount
msgid "Minimum amount without taxes over the period"
msgstr ""
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff_accrual_subscription.py:0
#, python-format
msgid "Missing partner on subscription '%s'."
msgstr "Partenaire manquant sur l'abonnement '%s'."
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "Missing source journals."
msgstr "Journaux sources manquants."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__month
msgid "Monthly"
msgstr "Mensuel"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__name
msgid "Name"
msgstr "Nom"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__partner_type__none
msgid "No Partner"
msgstr "Pas de partenaire"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "Odoo cannot compute the fiscal year start date."
msgstr "Odoo ne peut pas déterminer la date de début de l'exercice comptable."
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff_accrual_subscription.py:0
#, python-format
msgid "On subscription %s, the start date is not the first day of a month."
msgstr ""
"Sur l'abonnement %s, la date de début n'est pas le premier jour d'un mois."
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "PERIODS:"
msgstr "PÉRIODES :"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"PRORATED min. amount %(min_amount)s, default provisionning amount "
"%(provision_amount)s"
msgstr ""
"Montant minimum proratisé %(min_amount)s, montant à provisionner par défaut "
"%(provision_amount)s"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__partner_id
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Partner"
msgstr "Partenaire"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__partner_type
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Partner Type"
msgstr "Type de partenaire"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__periodicity
msgid "Periodicity"
msgstr "Périodicité"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__quarter
msgid "Quarterly"
msgstr "Trimestriel"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__subscription_type__revenue
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
#, python-format
msgid "Revenue"
msgstr "Produits"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__semester
msgid "Semesterly"
msgstr "Semestriel"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__partner_type__one
msgid "Specific Partner"
msgstr "Partenaire spécifique"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__start_date
msgid "Start Date"
msgstr "Date de début"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_line__subscription_id
msgid "Subscription"
msgstr "Abonnement"
#. module: account_cutoff_accrual_subscription
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_form
msgid "Subscription Name"
msgstr "Nom de l'abonnement"
#. module: account_cutoff_accrual_subscription
#: model:ir.actions.act_window,name:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_action
#: model:ir.ui.menu,name:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_menu
msgid "Subscriptions"
msgstr "Abonnements"
#. module: account_cutoff_accrual_subscription
#: model:ir.model,name:account_cutoff_accrual_subscription.model_account_cutoff_accrual_subscription
msgid "Subscriptions to compute accrual cutoffs"
msgstr "Abonnements pour le calcul des charges à payer"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__tax_ids
msgid "Taxes"
msgstr "Taxes"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"The cutoffs with subscription only work when the cutoff date (%s) is the "
"last day of a month."
msgstr ""
"Les provisions à partir des abonnements ne fonctionnent que lorsque la date "
"de provision (%s) est le dernier jour d'un mois."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.constraint,message:account_cutoff_accrual_subscription.constraint_account_cutoff_accrual_subscription_provision_amount_positive
msgid "The default provision amount must be positive."
msgstr "Le montant à provisionner par défaut doit être positif."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.constraint,message:account_cutoff_accrual_subscription.constraint_account_cutoff_accrual_subscription_min_amount_positive
msgid "The minimum amount must be positive."
msgstr "Le montant minimum doit être positif."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__subscription_type
msgid "Type"
msgstr "Type"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__type_tax_use
msgid "Type Tax Use"
msgstr "Type d'utilisation de la taxe"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__year
msgid "Yearly"
msgstr "Annuel"
#~ msgid "Minimum Expense Amount"
#~ msgstr "Montant minimum de charge"
#~ msgid "Minimum expense amount without taxes over the period"
#~ msgstr "Montant minimum de charge HT sur la période"
#, python-format
#~ msgid "Computing provisions from %d subscriptions."
#~ msgstr "Calcul des provisions à partir de %d abonnements."

View file

@ -0,0 +1,355 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_cutoff_accrual_subscription
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-10-21 12:06+0000\n"
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
"Language-Team: none\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.6.2\n"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"%(start)s → %(end)s%(prorata)s: %(sub_type)s %(amount)s over min. amount ⇒ "
"no provisionning"
msgstr ""
"%(start)s → %(end)s%(prorata)s: %(sub_type)s %(amount)s oltre valore minimo ⇒"
" nessun approvvigionamento"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"%(start)s → %(end)s%(prorata)s: %(sub_type)s %(amount)s under min. amount "
"⇒provisionning %(cutoff_amount)s"
msgstr ""
"%(start)s → %(end)s%(prorata)s: %(sub_type)s %(amount)s inferiore al valore "
"minimo ⇒ approvvigionamento %(cutoff_amount)s"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"<p>No provision for subscription <a href=# data-oe-"
"model=account.cutoff.accrual.subscription data-oe-"
"id=%(id)d>%(name)s</a>:</p>"
msgstr ""
"<p>Nessuna fornitura per l'iscrizione <a href=# data-oe-"
"model=account.cutoff.accrual.subscription data-oe-id=%(id)d>%(name)s</a>:</p>"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__account_id
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Account"
msgstr "Conto"
#. module: account_cutoff_accrual_subscription
#: model:ir.model,name:account_cutoff_accrual_subscription.model_account_cutoff
msgid "Account Cut-off"
msgstr "Scritture di fine periodo"
#. module: account_cutoff_accrual_subscription
#: model:ir.model,name:account_cutoff_accrual_subscription.model_account_cutoff_line
msgid "Account Cut-off Line"
msgstr "Riga scritture fine periodo"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__active
msgid "Active"
msgstr "Attiva"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__analytic_distribution
msgid "Analytic"
msgstr "Analitico"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__analytic_distribution_search
msgid "Analytic Distribution Search"
msgstr "Ricerca distribuzione analitica"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__analytic_precision
msgid "Analytic Precision"
msgstr "Precisione analitica"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__partner_type__any
msgid "Any Partner"
msgstr "Qualsiasi partner"
#. module: account_cutoff_accrual_subscription
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_form
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Archived"
msgstr "In archivio"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"CONFIG: %(periodicity)s periodicity, start date %(start_date)s, min. expense"
" amount %(min_amount)s, default provision amount %(provision_amount)s"
msgstr ""
"CONFIGURAZIONE: periodicità %(periodicity)s, data inizio %(start_date)s, "
"valore minimo spesa %(min_amount)s, valore predefinito fornitura "
"%(provision_amount)s"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__company_id
msgid "Company"
msgstr "Azienda"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__company_currency_id
msgid "Company Currency"
msgstr "Valuta azienda"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "Computing cut-offs from %d subscriptions."
msgstr "Calcolo cut-offs da %d iscrizioni."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__create_uid
msgid "Created by"
msgstr "Creato da"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__create_date
msgid "Created on"
msgstr "Creato il"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__provision_amount
msgid "Default Provision Amount"
msgstr "Valore fornitura predefinito"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__display_name
msgid "Display Name"
msgstr "Nome visualizzato"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__subscription_type__expense
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
#, python-format
msgid "Expense"
msgstr "Spesa"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__id
msgid "ID"
msgstr "ID"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription____last_update
msgid "Last Modified on"
msgstr "Ultima modifica il"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__write_uid
msgid "Last Updated by"
msgstr "Ultimo aggiornamento di"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__write_date
msgid "Last Updated on"
msgstr "Ultimo aggiornamento il"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__min_amount
msgid "Minimum Amount"
msgstr "Valore minimo"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,help:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__min_amount
msgid "Minimum amount without taxes over the period"
msgstr "Valore minimo senza imposte nel periodo"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff_accrual_subscription.py:0
#, python-format
msgid "Missing partner on subscription '%s'."
msgstr "Partner assente nell'iscrizione '%s'."
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "Missing source journals."
msgstr "Registri origine mancanti."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__month
msgid "Monthly"
msgstr "Mensile"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__name
msgid "Name"
msgstr "Nome"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__partner_type__none
msgid "No Partner"
msgstr "Nessun partner"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "Odoo cannot compute the fiscal year start date."
msgstr "Odoo non può calcolare la data iniziale dell'anno fiscale."
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff_accrual_subscription.py:0
#, python-format
msgid "On subscription %s, the start date is not the first day of a month."
msgstr "Nell'iscrizione %s, la data inizio non è il primo giorno del mese."
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "PERIODS:"
msgstr "PERIODI:"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"PRORATED min. amount %(min_amount)s, default provisionning amount "
"%(provision_amount)s"
msgstr ""
"Valore minimo ripartizione %(min_amount)s, valore predefinito fornitura "
"%(provision_amount)s"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__partner_id
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Partner"
msgstr "Partner"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__partner_type
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Partner Type"
msgstr "Tipo partner"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__periodicity
msgid "Periodicity"
msgstr "Periodicità"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__quarter
msgid "Quarterly"
msgstr "Trimestrale"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__subscription_type__revenue
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
#, python-format
msgid "Revenue"
msgstr "Ricavi"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__semester
msgid "Semesterly"
msgstr "Semestrale"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__partner_type__one
msgid "Specific Partner"
msgstr "Partner specifico"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__start_date
msgid "Start Date"
msgstr "Data inizio"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_line__subscription_id
msgid "Subscription"
msgstr "Iscrizione"
#. module: account_cutoff_accrual_subscription
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_form
msgid "Subscription Name"
msgstr "Nome iscrizione"
#. module: account_cutoff_accrual_subscription
#: model:ir.actions.act_window,name:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_action
#: model:ir.ui.menu,name:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_menu
msgid "Subscriptions"
msgstr "Iscrizioni"
#. module: account_cutoff_accrual_subscription
#: model:ir.model,name:account_cutoff_accrual_subscription.model_account_cutoff_accrual_subscription
msgid "Subscriptions to compute accrual cutoffs"
msgstr "Numero iscrizioni per il calcolo dell'accumulo cut-off"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__tax_ids
msgid "Taxes"
msgstr "Imposte"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"The cutoffs with subscription only work when the cutoff date (%s) is the "
"last day of a month."
msgstr ""
"Il cut-off con iscrizione lavora solo quando la data cut-off (%s) è l'ultima "
"di un mese."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.constraint,message:account_cutoff_accrual_subscription.constraint_account_cutoff_accrual_subscription_provision_amount_positive
msgid "The default provision amount must be positive."
msgstr "Il valore fornitura predefinito deve essere positivo."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.constraint,message:account_cutoff_accrual_subscription.constraint_account_cutoff_accrual_subscription_min_amount_positive
msgid "The minimum amount must be positive."
msgstr "Il valore minimo deve essere positivo."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__subscription_type
msgid "Type"
msgstr "Tipo"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__type_tax_use
msgid "Type Tax Use"
msgstr "Tipo utilizzo imposta"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__year
msgid "Yearly"
msgstr "Annuale"

View file

@ -0,0 +1,355 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_cutoff_accrual_subscription
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-02-27 08:20+0000\n"
"Last-Translator: jakobkrabbe <jakob@syscare.se>\n"
"Language-Team: none\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"%(start)s → %(end)s%(prorata)s: %(sub_type)s %(amount)s over min. amount ⇒ "
"no provisionning"
msgstr ""
"%(start)s → %(end)s%(prorata)s: %(sub_type)s %(amount)s över minimibelopp ⇒ "
"ingen avsättning"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"%(start)s → %(end)s%(prorata)s: %(sub_type)s %(amount)s under min. amount "
"⇒provisionning %(cutoff_amount)s"
msgstr ""
"%(start)s → %(end)s%(prorata)s: %(sub_type)s %(amount)s under min. amount ⇒"
"provisionering %(cutoff_amount)s"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"<p>No provision for subscription <a href=# data-oe-"
"model=account.cutoff.accrual.subscription data-oe-"
"id=%(id)d>%(name)s</a>:</p>"
msgstr ""
"<p>Ingen avsättning för prenumeration <a href=# data-oe-"
"model=account.cutoff.accrual.subscription data-oe-id=%(id)d>%(name)s</a>:</p>"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__account_id
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Account"
msgstr "Konto"
#. module: account_cutoff_accrual_subscription
#: model:ir.model,name:account_cutoff_accrual_subscription.model_account_cutoff
msgid "Account Cut-off"
msgstr "Avstängning av konto"
#. module: account_cutoff_accrual_subscription
#: model:ir.model,name:account_cutoff_accrual_subscription.model_account_cutoff_line
msgid "Account Cut-off Line"
msgstr "Brytgräns för konto"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__active
msgid "Active"
msgstr "Aktiv"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__analytic_distribution
msgid "Analytic"
msgstr "Analytisk"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__analytic_distribution_search
msgid "Analytic Distribution Search"
msgstr "Analytisk distribution Sök"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__analytic_precision
msgid "Analytic Precision"
msgstr "Analytisk precision"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__partner_type__any
msgid "Any Partner"
msgstr "Alla företag"
#. module: account_cutoff_accrual_subscription
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_form
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Archived"
msgstr "Arkiverad"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"CONFIG: %(periodicity)s periodicity, start date %(start_date)s, min. expense"
" amount %(min_amount)s, default provision amount %(provision_amount)s"
msgstr ""
"CONFIG: %(periodicity)s periodicitet, startdatum %(start_date)s, min. "
"kostnadsbelopp %(min_amount)s, standard avsättningsbelopp "
"%(provision_amount)s"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__company_id
msgid "Company"
msgstr "Företag"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__company_currency_id
msgid "Company Currency"
msgstr "Företagets valuta"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "Computing cut-offs from %d subscriptions."
msgstr "Beräkning av gränsvärden från %d prenumerationer."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__create_uid
msgid "Created by"
msgstr "Skapad av"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__create_date
msgid "Created on"
msgstr "Skapad på"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__provision_amount
msgid "Default Provision Amount"
msgstr "Avsättning för fallissemang Belopp"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__display_name
msgid "Display Name"
msgstr "Visningsnamn"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__subscription_type__expense
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
#, python-format
msgid "Expense"
msgstr "Kostnader"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__id
msgid "ID"
msgstr "ID"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription____last_update
msgid "Last Modified on"
msgstr "Senast ändrad den"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__write_uid
msgid "Last Updated by"
msgstr "Senast uppdaterad av"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__write_date
msgid "Last Updated on"
msgstr "Senast uppdaterad den"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__min_amount
msgid "Minimum Amount"
msgstr "Lägsta belopp"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,help:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__min_amount
msgid "Minimum amount without taxes over the period"
msgstr "Minimibelopp utan skatt under perioden"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff_accrual_subscription.py:0
#, python-format
msgid "Missing partner on subscription '%s'."
msgstr "Saknar företag på prenumeration '%s'."
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "Missing source journals."
msgstr "Saknade källjournaler."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__month
msgid "Monthly"
msgstr "Månadsvis"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__name
msgid "Name"
msgstr "Namn"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__partner_type__none
msgid "No Partner"
msgstr "Inget företag"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "Odoo cannot compute the fiscal year start date."
msgstr "Odoo kan inte beräkna räkenskapsårets startdatum."
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff_accrual_subscription.py:0
#, python-format
msgid "On subscription %s, the start date is not the first day of a month."
msgstr "På prenumeration %s är startdatumet inte den första dagen i en månad."
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid "PERIODS:"
msgstr "PERIODER:"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"PRORATED min. amount %(min_amount)s, default provisionning amount "
"%(provision_amount)s"
msgstr ""
"FÖRÄNDRAT minimibelopp %(min_amount)s, standardbelopp för avsättning "
"%(provision_amount)s"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__partner_id
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Partner"
msgstr "Företag"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__partner_type
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
msgid "Partner Type"
msgstr "Typ av företag"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__periodicity
msgid "Periodicity"
msgstr "Periodicitet"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__quarter
msgid "Quarterly"
msgstr "Kvartalsvis"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__subscription_type__revenue
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_search
#, python-format
msgid "Revenue"
msgstr "Intäkter"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__semester
msgid "Semesterly"
msgstr "Varje termin"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__partner_type__one
msgid "Specific Partner"
msgstr "Särskilt företag"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__start_date
msgid "Start Date"
msgstr "Startdatum"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_line__subscription_id
msgid "Subscription"
msgstr "Prenumeration"
#. module: account_cutoff_accrual_subscription
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_form
msgid "Subscription Name"
msgstr "Prenumerationens namn"
#. module: account_cutoff_accrual_subscription
#: model:ir.actions.act_window,name:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_action
#: model:ir.ui.menu,name:account_cutoff_accrual_subscription.account_cutoff_accrual_subscription_menu
msgid "Subscriptions"
msgstr "Prenumerationer"
#. module: account_cutoff_accrual_subscription
#: model:ir.model,name:account_cutoff_accrual_subscription.model_account_cutoff_accrual_subscription
msgid "Subscriptions to compute accrual cutoffs"
msgstr "Prenumerationer för att beräkna periodavgränsningar"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__tax_ids
msgid "Taxes"
msgstr "Skatter"
#. module: account_cutoff_accrual_subscription
#. odoo-python
#: code:addons/account_cutoff_accrual_subscription/models/account_cutoff.py:0
#, python-format
msgid ""
"The cutoffs with subscription only work when the cutoff date (%s) is the "
"last day of a month."
msgstr ""
"Avstängningarna med prenumeration fungerar endast när avstängningsdatumet "
"(%s) är den sista dagen i en månad."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.constraint,message:account_cutoff_accrual_subscription.constraint_account_cutoff_accrual_subscription_provision_amount_positive
msgid "The default provision amount must be positive."
msgstr "Standardbeloppet för avsättningar måste vara positivt."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.constraint,message:account_cutoff_accrual_subscription.constraint_account_cutoff_accrual_subscription_min_amount_positive
msgid "The minimum amount must be positive."
msgstr "Minimibeloppet måste vara positivt."
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__subscription_type
msgid "Type"
msgstr "Typ"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields,field_description:account_cutoff_accrual_subscription.field_account_cutoff_accrual_subscription__type_tax_use
msgid "Type Tax Use"
msgstr "Typ Skatteanvändning"
#. module: account_cutoff_accrual_subscription
#: model:ir.model.fields.selection,name:account_cutoff_accrual_subscription.selection__account_cutoff_accrual_subscription__periodicity__year
msgid "Yearly"
msgstr "Årligen"

View file

@ -0,0 +1,3 @@
from . import account_cutoff_accrual_subscription
from . import account_cutoff
from . import account_cutoff_line

View file

@ -0,0 +1,203 @@
# Copyright 2019-2022 Akretion France (http://www.akretion.com/)
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from dateutil.relativedelta import relativedelta
from odoo import _, models
from odoo.exceptions import UserError
from odoo.tools import date_utils
from odoo.tools.misc import format_amount, format_date
class AccountCutoff(models.Model):
_inherit = "account.cutoff"
def get_lines(self):
res = super().get_lines()
type2subtype = {
"accrued_expense": "expense",
"accrued_revenue": "revenue",
}
if self.cutoff_type not in type2subtype:
return res
line_obj = self.env["account.cutoff.line"]
sub_obj = self.env["account.cutoff.accrual.subscription"]
fy_start_date, fy_end_date = date_utils.get_fiscal_year(
self.cutoff_date,
day=self.company_id.fiscalyear_last_day,
month=int(self.company_id.fiscalyear_last_month),
)
if not fy_start_date:
raise UserError(_("Odoo cannot compute the fiscal year start date."))
sub_type = type2subtype[self.cutoff_type]
sign = sub_type == "revenue" and -1 or 1
subs = sub_obj.search(
[
("company_id", "=", self.company_id.id),
("subscription_type", "=", sub_type),
("start_date", "<=", self.cutoff_date),
]
)
if subs:
# check that the cutoff is the last day of a month
# otherwise, we have pb with when we compute intervals
# with cutoff date is a day which is not present for all months
last_day_same_month = self.cutoff_date + relativedelta(day=31)
if last_day_same_month.day != self.cutoff_date.day:
raise UserError(
_(
"The cutoffs with subscription only work when the cutoff "
"date (%s) is the last day of a month."
)
% format_date(self.env, self.cutoff_date)
)
if not self.source_journal_ids:
raise UserError(_("Missing source journals."))
self.message_post(
body=_("Computing cut-offs from %d subscriptions.") % len(subs)
)
common_domain = [("journal_id", "in", self.source_journal_ids.ids)]
if self.source_move_state == "posted":
common_domain.append(("parent_state", "=", "posted"))
else:
common_domain.append(("parent_state", "in", ("draft", "posted")))
work = {}
# Generate time intervals and compute existing expenses/revenue
for sub in subs:
sub._process_subscription(
work, fy_start_date, self.cutoff_date, common_domain, sign
)
# Create mapping dict
mapping = self._get_mapping_dict()
sub_type_label = sub_type == "expense" and _("Expense") or _("Revenue")
lsign = sub_type == "expense" and -1 or 1
for sub in work.keys():
vals = self._prepare_subscription_cutoff_line(
work[sub], mapping, sub_type_label, lsign
)
if vals:
line_obj.create(vals)
return res
def _prepare_subscription_cutoff_line(self, data, mapping, sub_type_label, lsign):
# Compute provision for a subscription
# -> analyse each time interval
# Write the details of the computation in the notes
# (or in the chatter if the amount to provision is 0)
sub = data["sub"]
ccur = self.company_currency_id
notes = [
_(
"CONFIG: %(periodicity)s periodicity, start date %(start_date)s, "
"min. expense amount %(min_amount)s, default provision amount "
"%(provision_amount)s"
)
% {
"periodicity": sub._fields["periodicity"].convert_to_export(
sub.periodicity, sub
),
"start_date": format_date(self.env, sub.start_date),
"min_amount": format_amount(self.env, sub.min_amount, ccur),
"provision_amount": format_amount(self.env, sub.provision_amount, ccur),
},
_("PERIODS:"),
]
cutoff_amount = 0
for interval in data["intervals"]:
prorata_label = (
interval["prorata"]
and " "
+ _(
"PRORATED min. amount %(min_amount)s, "
"default provisionning amount %(provision_amount)s"
)
% {
"min_amount": format_amount(self.env, interval["min_amount"], ccur),
"provision_amount": format_amount(
self.env, interval["provision_amount"], ccur
),
}
or ""
)
if ccur.compare_amounts(interval["amount"], interval["min_amount"]) < 0:
period_cutoff_amount = ccur.round(
interval["provision_amount"] - interval["amount"]
)
notes.append(
_(
"%(start)s%(end)s%(prorata)s: %(sub_type)s "
"%(amount)s under min. amount ⇒provisionning %(cutoff_amount)s"
)
% {
"start": format_date(self.env, interval["start"]),
"end": format_date(self.env, interval["end"]),
"prorata": prorata_label,
"sub_type": sub_type_label,
"amount": format_amount(self.env, interval["amount"], ccur),
"cutoff_amount": format_amount(
self.env, period_cutoff_amount, ccur
),
}
)
cutoff_amount += period_cutoff_amount * lsign
else:
notes.append(
_(
"%(start)s%(end)s%(prorata)s: %(sub_type)s %(amount)s "
"over min. amount ⇒ no provisionning"
)
% {
"start": format_date(self.env, interval["start"]),
"end": format_date(self.env, interval["end"]),
"prorata": prorata_label,
"sub_type": sub_type_label,
"amount": format_amount(self.env, interval["amount"], ccur),
}
)
if ccur.is_zero(cutoff_amount):
msg = _(
"<p>No provision for subscription <a href=# "
"data-oe-model=account.cutoff.accrual.subscription "
"data-oe-id=%(id)d>%(name)s</a>:</p>"
) % {"id": sub.id, "name": sub.name}
if notes:
msg += "<ul>"
for note in notes:
msg += "<li>%s</li>" % note
msg += "</ul>"
self.message_post(body=msg)
return False
else:
if sub.partner_type == "one":
partner_id = sub.partner_id.id
else:
partner_id = False
if sub.account_id.id in mapping:
cutoff_account_id = mapping[sub.account_id.id]
else:
cutoff_account_id = sub.account_id.id
vals = {
"subscription_id": sub.id,
"parent_id": self.id,
"partner_id": partner_id,
"account_id": sub.account_id.id,
"analytic_distribution": sub.analytic_distribution,
"name": sub.name,
"currency_id": sub.company_currency_id.id,
"amount": 0,
"cutoff_amount": cutoff_amount,
"cutoff_account_id": cutoff_account_id,
"notes": "\n".join(notes),
}
if sub.tax_ids and self.company_id.accrual_taxes:
tax_compute_all_res = sub.tax_ids.compute_all(
cutoff_amount, partner=sub.partner_id, handle_price_include=False
)
vals["tax_line_ids"] = self._prepare_tax_lines(
tax_compute_all_res, ccur
)
return vals

View file

@ -0,0 +1,304 @@
# Copyright 2019-2022 Akretion France (http://www.akretion.com/)
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
import logging
from dateutil.relativedelta import relativedelta
from odoo import _, api, fields, models
from odoo.exceptions import UserError, ValidationError
logger = logging.getLogger(__name__)
class AccountCutoffAccrualSubscription(models.Model):
_name = "account.cutoff.accrual.subscription"
_inherit = "analytic.mixin"
_description = "Subscriptions to compute accrual cutoffs"
_order = "subscription_type, name"
_check_company_auto = True
company_id = fields.Many2one(
"res.company",
string="Company",
ondelete="cascade",
required=True,
default=lambda self: self.env.company,
)
company_currency_id = fields.Many2one(
string="Company Currency", related="company_id.currency_id", store=True
)
name = fields.Char(required=True)
subscription_type = fields.Selection(
[
("revenue", "Revenue"),
("expense", "Expense"),
],
default="expense",
required=True,
string="Type",
)
partner_type = fields.Selection(
[
("any", "Any Partner"),
("one", "Specific Partner"),
("none", "No Partner"),
],
default="one",
required=True,
)
partner_id = fields.Many2one(
"res.partner",
string="Partner",
domain=[("parent_id", "=", False)],
ondelete="restrict",
)
active = fields.Boolean(default=True)
periodicity = fields.Selection(
[
("month", "Monthly"),
("quarter", "Quarterly"),
("semester", "Semesterly"),
("year", "Yearly"),
],
required=True,
)
start_date = fields.Date(required=True)
min_amount = fields.Monetary(
string="Minimum Amount",
required=True,
currency_field="company_currency_id",
help="Minimum amount without taxes over the period",
)
provision_amount = fields.Monetary(
string="Default Provision Amount", currency_field="company_currency_id"
)
account_id = fields.Many2one(
"account.account",
string="Account",
required=True,
domain="[('deprecated', '=', False), ('company_id', '=', company_id)]",
check_company=True,
)
type_tax_use = fields.Char(compute="_compute_type_tax_use")
tax_ids = fields.Many2many(
"account.tax",
string="Taxes",
domain="[('price_include', '=', False), ('company_id', '=', company_id), "
"('type_tax_use', '=', type_tax_use)]",
check_company=True,
)
@api.depends("subscription_type")
def _compute_type_tax_use(self):
mapping = {
"revenue": "sale",
"expense": "purchase",
}
for sub in self:
sub.type_tax_use = mapping.get(sub.subscription_type)
@api.constrains("start_date")
def check_start_date(self):
for sub in self:
if sub.start_date.day != 1:
raise ValidationError(
_(
"On subscription %s, the start date is not the first "
"day of a month."
)
% sub.display_name
)
_sql_constraints = [
(
"min_amount_positive",
"CHECK(min_amount >= 0)",
"The minimum amount must be positive.",
),
(
"provision_amount_positive",
"CHECK(provision_amount >= 0)",
"The default provision amount must be positive.",
),
]
@api.onchange("min_amount")
def min_amount_change(self):
if (
self.company_currency_id.compare_amounts(self.min_amount, 0) > 0
and not self.provision_amount
):
self.provision_amount = self.min_amount
@api.onchange("account_id")
def account_id_change(self):
if self.account_id:
self.tax_ids = self.account_id.tax_ids
@api.onchange("partner_type")
def partner_type_change(self):
if self.partner_type != "one":
self.partner_id = False
def _process_subscription(
self, work, fy_start_date, cutoff_date, common_domain, sign
):
self.ensure_one()
logger.debug("Processing subscription %s", self.display_name)
aml_obj = self.env["account.move.line"]
periodicity2months = {
"month": 1,
"quarter": 3,
"semester": 6,
"year": 12,
}
company = self.company_id
ccur = company.currency_id
months = periodicity2months[self.periodicity]
work[self] = {"intervals": [], "sub": self}
domain_base = common_domain + [
("company_id", "=", company.id),
("account_id", "=", self.account_id.id),
]
if self.partner_type == "one":
if self.partner_id:
domain_base.append(("partner_id", "=", self.partner_id.id))
else:
raise UserError(
_("Missing partner on subscription '%s'.") % self.display_name
)
elif self.partner_type == "none":
domain_base.append(("partner_id", "=", False))
domain_base_w_start_end = domain_base + [
("start_date", "!=", False),
("end_date", "!=", False),
]
start_date = fy_start_date # initialize start_date
while start_date < cutoff_date:
end_date = start_date + relativedelta(day=31, months=(months - 1))
logger.debug("Compute interval from %s to %s", start_date, end_date)
if self.start_date > end_date:
logger.debug(
"Skip interval because subscription start_date %s > end_date",
self.start_date,
)
start_date = end_date + relativedelta(days=1)
continue
# the next start_date is set at the very end of this method
min_amount = self.min_amount
provision_amount = self.provision_amount
prorata = False
if end_date > cutoff_date or self.start_date > start_date:
prorata = True
initial_interval_days = (end_date - start_date).days + 1
if end_date > cutoff_date:
end_date = cutoff_date
if self.start_date > start_date:
start_date = self.start_date
final_interval_days = (end_date - start_date).days + 1
ratio = final_interval_days / initial_interval_days
min_amount = ccur.round(min_amount * ratio)
provision_amount = ccur.round(provision_amount * ratio)
logger.debug(
"Interval has been prorated: %s to %s "
"initial_interval_days=%d final_interval_days=%s",
start_date,
end_date,
initial_interval_days,
final_interval_days,
)
logger.debug(
"min_amount prorated from %s to %s", self.min_amount, min_amount
)
logger.debug(
"provision_amount prorated from %s to %s",
self.provision_amount,
provision_amount,
)
# compute amount
amount = 0
# 1. No start/end dates
no_start_end_res = aml_obj.read_group(
domain_base
+ [
("date", "<=", end_date),
("date", ">=", start_date),
("start_date", "=", False),
("end_date", "=", False),
],
["balance"],
[],
)
amount_no_start_end = (
no_start_end_res and no_start_end_res[0]["balance"] or 0
)
amount += amount_no_start_end * sign
# 2. Start/end dates, INSIDE interval
inside_res = aml_obj.read_group(
domain_base_w_start_end
+ [
("start_date", ">=", start_date),
("end_date", "<=", end_date),
],
["balance"],
[],
)
amount_inside = inside_res and inside_res[0]["balance"] or 0
amount += amount_inside * sign
# 3. Start/end dates, OVER interval
mlines = aml_obj.search(
domain_base_w_start_end
+ [
("start_date", "<", start_date),
("end_date", ">", end_date),
]
)
for mline in mlines:
total_days = (mline.end_date - mline.start_date).days + 1
days_in_interval = (end_date - start_date).days + 1
amount_in_interval = mline.balance * days_in_interval / total_days
amount += amount_in_interval * sign
# 4. Start/end dates, start_date before, end_date inside
mlines = aml_obj.search(
domain_base_w_start_end
+ [
("start_date", "<", start_date),
("end_date", ">=", start_date),
("end_date", "<=", end_date),
]
)
for mline in mlines:
total_days = (mline.end_date - mline.start_date).days + 1
days_in_interval = (mline.end_date - start_date).days + 1
amount_in_interval = mline.balance * days_in_interval / total_days
amount += amount_in_interval * sign
# 5. Start/end dates, start_date inside, end_date after
mlines = aml_obj.search(
domain_base_w_start_end
+ [
("start_date", ">=", start_date),
("start_date", "<=", end_date),
("end_date", ">", end_date),
]
)
for mline in mlines:
total_days = (mline.end_date - mline.start_date).days + 1
days_in_interval = (end_date - mline.start_date).days + 1
amount_in_interval = mline.balance * days_in_interval / total_days
amount += amount_in_interval * sign
work[self]["intervals"].append(
{
"start": start_date,
"end": end_date,
"amount": ccur.round(amount),
"prorata": prorata,
"min_amount": min_amount,
"provision_amount": provision_amount,
}
)
# prepare next interval
start_date = end_date + relativedelta(days=1)

View file

@ -0,0 +1,13 @@
# Copyright 2019-2022 Akretion France (http://www.akretion.com/)
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import fields, models
class AccountCutoffLine(models.Model):
_inherit = "account.cutoff.line"
subscription_id = fields.Many2one(
"account.cutoff.accrual.subscription", ondelete="restrict", check_company=True
)

View file

@ -0,0 +1 @@
Go to the menu *Accounting > Configuration > Accounting > Subscriptions* and create subscriptions: they are used as the expected expenses (or revenue). For exemple, you may create a subscription for your office rental, your Internet access, your insurance contracts, etc.

View file

@ -0,0 +1 @@
* Alexis de Lattre <alexis.delattre@akretion.com>

View file

@ -0,0 +1 @@
This module allows you to easily compute accrued expenses (and accrued revenues) by comparing expected expense amounts (configured as *subscriptions*) with real expense amounts.

View file

@ -0,0 +1,4 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_account_cutoff_accrual_subscription_read,Read access on account.cutoff.accrual.subscription,model_account_cutoff_accrual_subscription,account.group_account_user,1,0,0,0
access_account_cutoff_accrual_subscription_group_readonly,Read access on account.cutoff.accrual.subscription to Auditor,model_account_cutoff_accrual_subscription,account.group_account_readonly,1,0,0,0
access_account_cutoff_accrual_subscription_full,Full access on account.cutoff.accrual.subscription,model_account_cutoff_accrual_subscription,account.group_account_manager,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_account_cutoff_accrual_subscription_read Read access on account.cutoff.accrual.subscription model_account_cutoff_accrual_subscription account.group_account_user 1 0 0 0
3 access_account_cutoff_accrual_subscription_group_readonly Read access on account.cutoff.accrual.subscription to Auditor model_account_cutoff_accrual_subscription account.group_account_readonly 1 0 0 0
4 access_account_cutoff_accrual_subscription_full Full access on account.cutoff.accrual.subscription model_account_cutoff_accrual_subscription account.group_account_manager 1 1 1 1

View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1">
<record id="account_cutoff_accrual_subscription_multi_company_rule" model="ir.rule">
<field name="name">Account Cutoff Accrual Subscription Multi-Company</field>
<field name="model_id" ref="model_account_cutoff_accrual_subscription" />
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
</record>
</odoo>

View file

@ -0,0 +1,428 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils: https://docutils.sourceforge.io/" />
<title>Account Accrual Subscriptions</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
.subscript {
vertical-align: sub;
font-size: smaller }
.superscript {
vertical-align: super;
font-size: smaller }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left, .figure.align-left, object.align-left, table.align-left {
clear: left ;
float: left ;
margin-right: 1em }
img.align-right, .figure.align-right, object.align-right, table.align-right {
clear: right ;
float: right ;
margin-left: 1em }
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left }
.align-center {
clear: both ;
text-align: center }
.align-right {
text-align: right }
/* reset inner alignment in figures */
div.align-right {
text-align: inherit }
/* div.align-center * { */
/* text-align: left } */
.align-top {
vertical-align: top }
.align-middle {
vertical-align: middle }
.align-bottom {
vertical-align: bottom }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }
pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }
pre.code .ln { color: grey; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }
</style>
</head>
<body>
<div class="document" id="account-accrual-subscriptions">
<h1 class="title">Account Accrual Subscriptions</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:bfc1b15addc92322f41b633b75bac596a85311afe5f169f5fe5664a78faa242e
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/account-closing/tree/16.0/account_cutoff_accrual_subscription"><img alt="OCA/account-closing" src="https://img.shields.io/badge/github-OCA%2Faccount--closing-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/account-closing-16-0/account-closing-16-0-account_cutoff_accrual_subscription"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/account-closing&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>This module allows you to easily compute accrued expenses (and accrued revenues) by comparing expected expense amounts (configured as <em>subscriptions</em>) with real expense amounts.</p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#configuration" id="toc-entry-1">Configuration</a></li>
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-2">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="toc-entry-3">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="toc-entry-4">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="toc-entry-5">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="toc-entry-6">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="configuration">
<h1><a class="toc-backref" href="#toc-entry-1">Configuration</a></h1>
<p>Go to the menu <em>Accounting &gt; Configuration &gt; Accounting &gt; Subscriptions</em> and create subscriptions: they are used as the expected expenses (or revenue). For exemple, you may create a subscription for your office rental, your Internet access, your insurance contracts, etc.</p>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#toc-entry-2">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/account-closing/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/account-closing/issues/new?body=module:%20account_cutoff_accrual_subscription%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
<h1><a class="toc-backref" href="#toc-entry-3">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#toc-entry-4">Authors</a></h2>
<ul class="simple">
<li>Akretion</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#toc-entry-5">Contributors</a></h2>
<ul class="simple">
<li>Alexis de Lattre &lt;<a class="reference external" href="mailto:alexis.delattre&#64;akretion.com">alexis.delattre&#64;akretion.com</a>&gt;</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-6">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.</p>
<p>Current <a class="reference external" href="https://odoo-community.org/page/maintainer-role">maintainer</a>:</p>
<p><a class="reference external image-reference" href="https://github.com/alexis-via"><img alt="alexis-via" src="https://github.com/alexis-via.png?size=40px" /></a></p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/account-closing/tree/16.0/account_cutoff_accrual_subscription">OCA/account-closing</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,149 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright 2018-2022 Akretion France (http://www.akretion.com/)
@author: Alexis de Lattre <alexis.delattre@akretion.com>
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-->
<odoo>
<record id="account_cutoff_accrual_subscription_form" model="ir.ui.view">
<field name="name">account.cutoff.accrual.subscription.form</field>
<field name="model">account.cutoff.accrual.subscription</field>
<field name="arch" type="xml">
<form>
<sheet>
<widget
name="web_ribbon"
title="Archived"
bg_color="bg-danger"
attrs="{'invisible': [('active', '=', True)]}"
/>
<div class="oe_title">
<label for="name" string="Subscription Name" class="oe_edit_only" />
<h1>
<field name="name" />
</h1>
</div>
<group name="main">
<field name="subscription_type" />
<field name="active" invisible="1" />
<field name="type_tax_use" invisible="1" />
<field name="partner_type" widget="radio" />
<field
name="partner_id"
attrs="{'invisible': [('partner_type', '!=', 'one')], 'required': [('partner_type', '=', 'one')]}"
/>
<field name="periodicity" />
<field name="start_date" />
<field name="account_id" />
<field
name="analytic_distribution"
groups="analytic.group_analytic_accounting"
widget="analytic_distribution"
/>
<field name="tax_ids" widget="many2many_tags" />
<field name="min_amount" />
<field name="provision_amount" />
<field name="company_id" groups="base.group_multi_company" />
<field name="company_id" invisible="1" />
<field name="company_currency_id" invisible="1" />
</group>
</sheet>
</form>
</field>
</record>
<record id="account_cutoff_accrual_subscription_tree" model="ir.ui.view">
<field name="name">account.cutoff.accrual.subscription.tree</field>
<field name="model">account.cutoff.accrual.subscription</field>
<field name="arch" type="xml">
<tree>
<field name="name" />
<field name="subscription_type" />
<field name="partner_type" optional="show" />
<field
name="partner_id"
attrs="{'invisible': [('partner_type', '!=', 'one')]}"
optional="show"
/>
<field name="periodicity" />
<field name="start_date" optional="hide" />
<field name="account_id" optional="show" />
<field
name="analytic_distribution"
groups="analytic.group_analytic_accounting"
optional="show"
/>
<field name="min_amount" optional="show" />
<field name="provision_amount" optional="hide" />
<field
name="company_id"
groups="base.group_multi_company"
optional="show"
/>
<field name="company_id" invisible="1" />
<field name="company_currency_id" invisible="1" />
</tree>
</field>
</record>
<record id="account_cutoff_accrual_subscription_search" model="ir.ui.view">
<field name="name">account.cutoff.accrual.subscription.search</field>
<field name="model">account.cutoff.accrual.subscription</field>
<field name="arch" type="xml">
<search>
<field name="name" />
<field name="partner_id" />
<field name="account_id" />
<separator />
<filter
name="revenue"
domain="[('subscription_type', '=', 'revenue')]"
string="Revenue"
/>
<filter
name="expense"
domain="[('subscription_type', '=', 'expense')]"
string="Expense"
/>
<separator />
<filter
string="Archived"
name="inactive"
domain="[('active', '=', False)]"
/>
<group name="groupby">
<filter
name="partner_type_groupby"
string="Partner Type"
context="{'group_by': 'partner_type'}"
/>
<filter
name="partner_groupby"
string="Partner"
context="{'group_by': 'partner_id'}"
/>
<filter
name="account_groupby"
string="Account"
context="{'group_by': 'account_id'}"
/>
</group>
</search>
</field>
</record>
<record id="account_cutoff_accrual_subscription_action" model="ir.actions.act_window">
<field name="name">Subscriptions</field>
<field name="res_model">account.cutoff.accrual.subscription</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem
id="account_cutoff_accrual_subscription_menu"
action="account_cutoff_accrual_subscription_action"
parent="account.account_account_menu"
sequence="105"
/>
</odoo>

View file

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright 2023 Akretion France (http://www.akretion.com/)
@author: Alexis de Lattre <alexis.delattre@akretion.com>
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-->
<odoo>
<record id="account_cutoff_line_form" model="ir.ui.view">
<field name="model">account.cutoff.line</field>
<field name="inherit_id" ref="account_cutoff_base.account_cutoff_line_form" />
<field name="arch" type="xml">
<field name="parent_id" position="after">
<field
name="subscription_id"
attrs="{'invisible': [('subscription_id', '=', False)]}"
/>
</field>
</field>
</record>
</odoo>

View file

@ -0,0 +1,32 @@
# Architecture
```mermaid
flowchart TD
U[Users] -->|HTTP| V[Views and QWeb Templates]
V --> C[Controllers]
V --> W[Wizards Transient Models]
C --> M[Models and ORM]
W --> M
M --> R[Reports]
DX[Data XML] --> M
S[Security ACLs and Groups] -. enforces .-> M
subgraph Account_cutoff_accrual_subscription Module - account_cutoff_accrual_subscription
direction LR
M:::layer
W:::layer
C:::layer
V:::layer
R:::layer
S:::layer
DX:::layer
end
classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px
```
Notes
- Views include tree/form/kanban templates and report templates.
- Controllers provide website/portal routes when present.
- Wizards are UI flows implemented with `models.TransientModel`.
- Data XML loads data/demo records; Security defines groups and access.

View file

@ -0,0 +1,3 @@
# Configuration
Refer to Odoo settings for account_cutoff_accrual_subscription. Configure related models, access rights, and options as needed.

View file

@ -0,0 +1,3 @@
# Controllers
This module does not define custom HTTP controllers.

View file

@ -0,0 +1,5 @@
# Dependencies
This addon depends on:
- [account_cutoff_start_end_dates](../../odoo-bringout-oca-account-closing-account_cutoff_start_end_dates)

View file

@ -0,0 +1,4 @@
# FAQ
- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged).
- Q: How to enable? A: Start server with --addon account_cutoff_accrual_subscription or install in UI.

View file

@ -0,0 +1,7 @@
# Install
```bash
pip install odoo-bringout-oca-account-closing-account_cutoff_accrual_subscription"
# or
uv pip install odoo-bringout-oca-account-closing-account_cutoff_accrual_subscription"
```

View file

@ -0,0 +1,15 @@
# Models
Detected core models and extensions in account_cutoff_accrual_subscription.
```mermaid
classDiagram
class account_cutoff_accrual_subscription
class account_cutoff
class account_cutoff_line
class analytic_mixin
```
Notes
- Classes show model technical names; fields omitted for brevity.
- Items listed under _inherit are extensions of existing models.

View file

@ -0,0 +1,6 @@
# Overview
Packaged Odoo addon: account_cutoff_accrual_subscription. Provides features documented in upstream Odoo 16 under this addon.
- Source: OCA/OCB 16.0, addon account_cutoff_accrual_subscription
- License: LGPL-3

View file

@ -0,0 +1,3 @@
# Reports
This module does not define custom reports.

View file

@ -0,0 +1,42 @@
# Security
Access control and security definitions in account_cutoff_accrual_subscription.
## Access Control Lists (ACLs)
Model access permissions defined in:
- **[ir.model.access.csv](../account_cutoff_accrual_subscription/security/ir.model.access.csv)**
- 3 model access rules
## Record Rules
Row-level security rules defined in:
- **[ir_rule.xml](../account_cutoff_accrual_subscription/security/ir_rule.xml)**
## Security Groups & Configuration
Security groups and permissions defined in:
- **[ir_rule.xml](../account_cutoff_accrual_subscription/security/ir_rule.xml)**
```mermaid
graph TB
subgraph "Security Layers"
A[Users] --> B[Groups]
B --> C[Access Control Lists]
C --> D[Models]
B --> E[Record Rules]
E --> F[Individual Records]
end
```
Security files overview:
- **[ir.model.access.csv](../account_cutoff_accrual_subscription/security/ir.model.access.csv)**
- Model access permissions (CRUD rights)
- **[ir_rule.xml](../account_cutoff_accrual_subscription/security/ir_rule.xml)**
- Security groups, categories, and XML-based rules
Notes
- Access Control Lists define which groups can access which models
- Record Rules provide row-level security (filter records by user/group)
- Security groups organize users and define permission sets
- All security is enforced at the ORM level by Odoo

View file

@ -0,0 +1,5 @@
# Troubleshooting
- Ensure Python and Odoo environment matches repo guidance.
- Check database connectivity and logs if startup fails.
- Validate that dependent addons listed in DEPENDENCIES.md are installed.

View file

@ -0,0 +1,7 @@
# Usage
Start Odoo including this addon (from repo root):
```bash
python3 scripts/nix_odoo_web_server.py --db-name mydb --addon account_cutoff_accrual_subscription
```

View file

@ -0,0 +1,3 @@
# Wizards
This module does not include UI wizards.

View file

@ -0,0 +1,42 @@
[project]
name = "odoo-bringout-oca-account-closing-account_cutoff_accrual_subscription"
version = "16.0.0"
description = "Account Accrual Subscriptions - Accrued expenses based on subscriptions"
authors = [
{ name = "Ernad Husremovic", email = "hernad@bring.out.ba" }
]
dependencies = [
"odoo-bringout-oca-account-closing-account_cutoff_start_end_dates>=16.0.0",
"requests>=2.25.1"
]
readme = "README.md"
requires-python = ">= 3.11"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Office/Business",
]
[project.urls]
homepage = "https://github.com/bringout/0"
repository = "https://github.com/bringout/0"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.metadata]
allow-direct-references = true
[tool.hatch.build.targets.wheel]
packages = ["account_cutoff_accrual_subscription"]
[tool.rye]
managed = true
dev-dependencies = [
"pytest>=8.4.1",
]