From d3504ae3defcc6bc38f377bed0288fe2fe9e74e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20NO=C3=8BL?= Date: Tue, 21 Jul 2026 17:38:16 +0200 Subject: [PATCH 1/2] upgrade module for odoo 19.0 --- donation/README.rst | 154 ++ donation/__init__.py | 4 + donation/__manifest__.py | 38 + donation/data/donation_sequence.xml | 16 + donation/demo/donation_demo.xml | 24 + donation/i18n/de.po | 1263 +++++++++++++++ donation/i18n/donation.pot | 1152 ++++++++++++++ donation/i18n/es.po | 1389 +++++++++++++++++ donation/i18n/fr.po | 1303 ++++++++++++++++ donation/i18n/it.po | 1313 ++++++++++++++++ donation/models/__init__.py | 10 + .../models/account_analytic_applicability.py | 16 + .../models/account_bank_statement_line.py | 129 ++ .../models/account_payment_method_line.py | 26 + donation/models/donation.py | 785 ++++++++++ donation/models/donation_campaign.py | 35 + donation/models/donation_tax_receipt.py | 50 + donation/models/donation_thanks_template.py | 22 + donation/models/res_company.py | 41 + donation/models/res_partner.py | 33 + donation/models/res_users.py | 21 + donation/post_install.py | 10 + donation/pyproject.toml | 3 + donation/readme/CONFIGURE.md | 21 + donation/readme/CONTRIBUTORS.md | 5 + donation/readme/DESCRIPTION.md | 10 + donation/readme/USAGE.md | 23 + donation/report/__init__.py | 3 + donation/report/donation_report.py | 119 ++ donation/report/donation_report_view.xml | 144 ++ donation/report/donation_thanks_report.xml | 20 + donation/report/donation_thanks_view.xml | 22 + donation/security/donation_security.xml | 91 ++ donation/security/ir.model.access.csv | 21 + donation/static/description/icon.png | Bin 0 -> 11202 bytes donation/static/description/icon.svg | 196 +++ donation/static/description/index.html | 498 ++++++ donation/tests/__init__.py | 3 + donation/tests/test_donation.py | 347 ++++ .../views/account_payment_method_line.xml | 40 + donation/views/donation.xml | 556 +++++++ donation/views/donation_campaign.xml | 90 ++ donation/views/donation_tax_receipt.xml | 21 + donation/views/donation_thanks_template.xml | 72 + donation/views/res_partner.xml | 32 + donation/views/res_users.xml | 39 + donation/wizard/__init__.py | 3 + donation/wizard/donation_validate.py | 22 + donation/wizard/donation_validate_view.xml | 35 + donation/wizard/res_config_settings.py | 23 + donation/wizard/res_config_settings.xml | 57 + donation/wizard/tax_receipt_option_switch.py | 32 + .../wizard/tax_receipt_option_switch_view.xml | 40 + donation_base/README.rst | 107 ++ donation_base/__init__.py | 4 + donation_base/__manifest__.py | 30 + donation_base/data/donation_mail_template.xml | 57 + donation_base/data/donation_tax_seq.xml | 16 + donation_base/demo/donation_demo.xml | 92 ++ donation_base/i18n/de.po | 698 +++++++++ donation_base/i18n/donation_base.pot | 593 +++++++ donation_base/i18n/es.po | 722 +++++++++ donation_base/i18n/fr.po | 658 ++++++++ donation_base/i18n/it.po | 738 +++++++++ donation_base/models/__init__.py | 3 + donation_base/models/donation_tax_receipt.py | 100 ++ donation_base/models/product.py | 71 + donation_base/models/res_partner.py | 56 + donation_base/pyproject.toml | 3 + donation_base/readme/CONFIGURE.md | 4 + donation_base/readme/CONTRIBUTORS.md | 5 + donation_base/readme/DESCRIPTION.md | 7 + donation_base/report/report.xml | 22 + donation_base/report/report_donationtax.xml | 37 + donation_base/security/ir.model.access.csv | 7 + .../security/tax_receipt_security.xml | 14 + donation_base/static/description/icon.png | Bin 0 -> 9455 bytes donation_base/static/description/index.html | 452 ++++++ donation_base/tests/__init__.py | 1 + .../tests/test_donation_tax_receipt.py | 91 ++ donation_base/views/donation_tax_receipt.xml | 154 ++ donation_base/views/product.xml | 49 + donation_base/views/res_partner.xml | 64 + donation_base/wizard/__init__.py | 2 + .../wizard/tax_receipt_annual_create.py | 103 ++ .../wizard/tax_receipt_annual_create_view.xml | 37 + donation_base/wizard/tax_receipt_print.py | 34 + .../wizard/tax_receipt_print_view.xml | 35 + eslint.config.cjs | 5 +- partner_match_or_create/README.rst | 90 ++ partner_match_or_create/__init__.py | 2 + partner_match_or_create/__manifest__.py | 20 + partner_match_or_create/i18n/fr.po | 327 ++++ partner_match_or_create/i18n/it.po | 316 ++++ .../i18n/partner_match_or_create.pot | 315 ++++ partner_match_or_create/models/__init__.py | 1 + partner_match_or_create/models/res_partner.py | 72 + partner_match_or_create/pyproject.toml | 3 + .../readme/CONTRIBUTORS.md | 1 + partner_match_or_create/readme/DESCRIPTION.md | 1 + .../security/ir.model.access.csv | 2 + .../static/description/icon.png | Bin 0 -> 10254 bytes .../static/description/index.html | 433 +++++ partner_match_or_create/wizards/__init__.py | 1 + .../wizards/partner_match_or_create.py | 305 ++++ .../wizards/partner_match_or_create.xml | 145 ++ setup/_metapackage/pyproject.toml | 13 + 107 files changed, 17536 insertions(+), 4 deletions(-) create mode 100644 donation/README.rst create mode 100644 donation/__init__.py create mode 100644 donation/__manifest__.py create mode 100644 donation/data/donation_sequence.xml create mode 100644 donation/demo/donation_demo.xml create mode 100644 donation/i18n/de.po create mode 100644 donation/i18n/donation.pot create mode 100644 donation/i18n/es.po create mode 100644 donation/i18n/fr.po create mode 100644 donation/i18n/it.po create mode 100644 donation/models/__init__.py create mode 100644 donation/models/account_analytic_applicability.py create mode 100644 donation/models/account_bank_statement_line.py create mode 100644 donation/models/account_payment_method_line.py create mode 100644 donation/models/donation.py create mode 100644 donation/models/donation_campaign.py create mode 100644 donation/models/donation_tax_receipt.py create mode 100644 donation/models/donation_thanks_template.py create mode 100644 donation/models/res_company.py create mode 100644 donation/models/res_partner.py create mode 100644 donation/models/res_users.py create mode 100644 donation/post_install.py create mode 100644 donation/pyproject.toml create mode 100644 donation/readme/CONFIGURE.md create mode 100644 donation/readme/CONTRIBUTORS.md create mode 100644 donation/readme/DESCRIPTION.md create mode 100644 donation/readme/USAGE.md create mode 100644 donation/report/__init__.py create mode 100644 donation/report/donation_report.py create mode 100644 donation/report/donation_report_view.xml create mode 100644 donation/report/donation_thanks_report.xml create mode 100644 donation/report/donation_thanks_view.xml create mode 100644 donation/security/donation_security.xml create mode 100644 donation/security/ir.model.access.csv create mode 100644 donation/static/description/icon.png create mode 100644 donation/static/description/icon.svg create mode 100644 donation/static/description/index.html create mode 100644 donation/tests/__init__.py create mode 100644 donation/tests/test_donation.py create mode 100644 donation/views/account_payment_method_line.xml create mode 100644 donation/views/donation.xml create mode 100644 donation/views/donation_campaign.xml create mode 100644 donation/views/donation_tax_receipt.xml create mode 100644 donation/views/donation_thanks_template.xml create mode 100644 donation/views/res_partner.xml create mode 100644 donation/views/res_users.xml create mode 100644 donation/wizard/__init__.py create mode 100644 donation/wizard/donation_validate.py create mode 100644 donation/wizard/donation_validate_view.xml create mode 100644 donation/wizard/res_config_settings.py create mode 100644 donation/wizard/res_config_settings.xml create mode 100644 donation/wizard/tax_receipt_option_switch.py create mode 100644 donation/wizard/tax_receipt_option_switch_view.xml create mode 100644 donation_base/README.rst create mode 100644 donation_base/__init__.py create mode 100644 donation_base/__manifest__.py create mode 100644 donation_base/data/donation_mail_template.xml create mode 100644 donation_base/data/donation_tax_seq.xml create mode 100644 donation_base/demo/donation_demo.xml create mode 100644 donation_base/i18n/de.po create mode 100644 donation_base/i18n/donation_base.pot create mode 100644 donation_base/i18n/es.po create mode 100644 donation_base/i18n/fr.po create mode 100644 donation_base/i18n/it.po create mode 100644 donation_base/models/__init__.py create mode 100644 donation_base/models/donation_tax_receipt.py create mode 100644 donation_base/models/product.py create mode 100644 donation_base/models/res_partner.py create mode 100644 donation_base/pyproject.toml create mode 100644 donation_base/readme/CONFIGURE.md create mode 100644 donation_base/readme/CONTRIBUTORS.md create mode 100644 donation_base/readme/DESCRIPTION.md create mode 100644 donation_base/report/report.xml create mode 100644 donation_base/report/report_donationtax.xml create mode 100644 donation_base/security/ir.model.access.csv create mode 100644 donation_base/security/tax_receipt_security.xml create mode 100644 donation_base/static/description/icon.png create mode 100644 donation_base/static/description/index.html create mode 100644 donation_base/tests/__init__.py create mode 100644 donation_base/tests/test_donation_tax_receipt.py create mode 100644 donation_base/views/donation_tax_receipt.xml create mode 100644 donation_base/views/product.xml create mode 100644 donation_base/views/res_partner.xml create mode 100644 donation_base/wizard/__init__.py create mode 100644 donation_base/wizard/tax_receipt_annual_create.py create mode 100644 donation_base/wizard/tax_receipt_annual_create_view.xml create mode 100644 donation_base/wizard/tax_receipt_print.py create mode 100644 donation_base/wizard/tax_receipt_print_view.xml create mode 100644 partner_match_or_create/README.rst create mode 100644 partner_match_or_create/__init__.py create mode 100644 partner_match_or_create/__manifest__.py create mode 100644 partner_match_or_create/i18n/fr.po create mode 100644 partner_match_or_create/i18n/it.po create mode 100644 partner_match_or_create/i18n/partner_match_or_create.pot create mode 100644 partner_match_or_create/models/__init__.py create mode 100644 partner_match_or_create/models/res_partner.py create mode 100644 partner_match_or_create/pyproject.toml create mode 100644 partner_match_or_create/readme/CONTRIBUTORS.md create mode 100644 partner_match_or_create/readme/DESCRIPTION.md create mode 100644 partner_match_or_create/security/ir.model.access.csv create mode 100644 partner_match_or_create/static/description/icon.png create mode 100644 partner_match_or_create/static/description/index.html create mode 100644 partner_match_or_create/wizards/__init__.py create mode 100644 partner_match_or_create/wizards/partner_match_or_create.py create mode 100644 partner_match_or_create/wizards/partner_match_or_create.xml create mode 100644 setup/_metapackage/pyproject.toml diff --git a/donation/README.rst b/donation/README.rst new file mode 100644 index 000000000..d52c95082 --- /dev/null +++ b/donation/README.rst @@ -0,0 +1,154 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + +======== +Donation +======== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:806827f430c13aad384855ea0d7e692a93622d480940cc9cf098778d94285b4c + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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/license-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%2Fdonation-lightgray.png?logo=github + :target: https://github.com/OCA/donation/tree/18.0/donation + :alt: OCA/donation +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/donation-18-0/donation-18-0-donation + :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/donation&target_branch=18.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module handles donations by cash, check or by credit transfer and +generate the corresponding journal entries and tax receipts. To fully +support donations by credit transfer, if you are using the OCA bank +statement reconcile interface, you also need the module +**donation_bank_statement_oca**. + +This module will assist you in writing a thanks letter. + +This module also supports in-kind donations (in-kind donations don't +generate any accounting entry but can generate a tax receipt). + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +To configure this module, you need to: + + - create donation products + - make sure you have an inbound payment method for each payment + method used to receive donations. This payment method must be + configured with *Link to Bank Account* set to *Fixed* and with the + donation option active. + - if you wish to have a control amount on the donation, add the users + to the group *Donation Check Total* + +If you receive donations via credit transfer, you must also: + +- in the configuration page *Invoicing > Configuration > Settings*, in + the *Donations* section, select the product that will be used for + donations by credit transfer. +- on the bank journals corresponding to the bank accounts on which you + receive donations by credit transfer, in the *Payments Configuration* + tab, select the *Donation by credit transfer account*. This account + must allow reconciliation. +- Make sure that the accountant that processes bank statements has + *User* access level or higher on the *Donation* application. + +Usage +===== + +This module handles donations by cash, check or by credit transfer: + +- for donation by cash or check, you should first create a new donation + and validate it. Then, if you have the module *account_check_deposit* + from the project + `OCA/account-financial-tools `__, + you can create a check deposit. +- for a donation by credit transfer, the process is different: import + your bank statement file and, while processing it, you will see a + donation button that allow you to create a new donation directly from + the bank statement reconcile interface. + +When you validate a donation: + +- it will create a journal entry that goes directly from the revenue + account to the payment account without going through a receivable + account. +- if the tax receipt option of the donor is configured as *For Each + Donation* and the product of the donation line is eligible to a tax + receipt, it will generate the tax receipt. + +To have some statistics about the donations, go to the menu Donation > +Reporting > Donations Analysis. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub 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 `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* Barroux Abbey +* Akretion + +Contributors +------------ + +- Brother Bernard +- Brother Irénée (Barroux Abbey) +- Alexis de Lattre +- Serpent Consulting Services Pvt. Ltd. +- Nikul Chaudhary + +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 `__: + +|maintainer-alexis-via| + +This module is part of the `OCA/donation `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/donation/__init__.py b/donation/__init__.py new file mode 100644 index 000000000..c761b8bc3 --- /dev/null +++ b/donation/__init__.py @@ -0,0 +1,4 @@ +from . import models +from . import report +from . import wizard +from .post_install import update_account_payment_method_line diff --git a/donation/__manifest__.py b/donation/__manifest__.py new file mode 100644 index 000000000..05df85230 --- /dev/null +++ b/donation/__manifest__.py @@ -0,0 +1,38 @@ +# Copyright 2014-2021 Barroux Abbey (http://www.barroux.org) +# Copyright 2014-2021 Akretion France +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "Donation", + "version": "19.0.1.0.0", + "category": "Accounting", + "license": "AGPL-3", + "summary": "Manage donations", + "author": "Barroux Abbey, Akretion, Odoo Community Association (OCA)", + "maintainers": ["alexis-via"], + "website": "https://github.com/OCA/donation", + "depends": [ + "donation_base", + ], + "data": [ + "security/donation_security.xml", + "security/ir.model.access.csv", + "wizard/tax_receipt_option_switch_view.xml", + "wizard/donation_validate_view.xml", + "views/donation_tax_receipt.xml", + "views/donation.xml", + "wizard/res_config_settings.xml", + "data/donation_sequence.xml", + "views/account_payment_method_line.xml", + "views/donation_campaign.xml", + "views/donation_thanks_template.xml", + "views/res_users.xml", + "views/res_partner.xml", + "report/donation_report_view.xml", + "report/donation_thanks_view.xml", + "report/donation_thanks_report.xml", + ], + "post_init_hook": "update_account_payment_method_line", + "demo": ["demo/donation_demo.xml"], + "installable": True, +} diff --git a/donation/data/donation_sequence.xml b/donation/data/donation_sequence.xml new file mode 100644 index 000000000..e157953e0 --- /dev/null +++ b/donation/data/donation_sequence.xml @@ -0,0 +1,16 @@ + + + + + Donation + donation.donation + DON-%(year)s- + 4 + + + + diff --git a/donation/demo/donation_demo.xml b/donation/demo/donation_demo.xml new file mode 100644 index 000000000..aace51570 --- /dev/null +++ b/donation/demo/donation_demo.xml @@ -0,0 +1,24 @@ + + + + Q1 + Quest Christmas 2015 + + + P1 + Prospecting 2016 + + + C1 + Catalog Q1 2016 + + + + + + + + diff --git a/donation/i18n/de.po b/donation/i18n/de.po new file mode 100644 index 000000000..1e0efb70e --- /dev/null +++ b/donation/i18n/de.po @@ -0,0 +1,1263 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * donation +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2019-01-26 15:41+0000\n" +"Last-Translator: kempleton \n" +"Language-Team: none\n" +"Language: de\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 3.3\n" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_partner__donation_count +#: model:ir.model.fields,field_description:donation.field_res_users__donation_count +msgid "# of Donations" +msgstr "# an Spenden" + +#. module: donation +#: model:ir.actions.report,print_report_name:donation.report_thanks +msgid "" +"'donation_thanks-%s%s' % (object.number, object.state == 'draft' and '-" +"draft' or '')" +msgstr "" + +#. module: donation +#: model:ir.model.constraint,message:donation.constraint_donation_campaign_code_company_uniq +msgid "A campaign with the same code already exists!" +msgstr "" + +#. module: donation +#: model:ir.model.constraint,message:donation.constraint_donation_donation_bank_statement_line_uniq +msgid "A donation already exists for this bank statement line." +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_needaction +msgid "Action Needed" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__active +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__active +msgid "Active" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_ids +msgid "Activities" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_state +msgid "Activity State" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_type_icon +msgid "Activity Type Icon" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__amount +#: model:ir.model.fields,field_description:donation.field_donation_report__amount_company_currency +msgid "Amount" +msgstr "Betrag" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__amount_total +msgid "Amount Total" +msgstr "Gesamtbetrag" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__amount_total_company_currency +msgid "Amount Total in Company Currency" +msgstr "Gesamtbetrag in Unternehmenswährung" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__amount_company_currency +msgid "Amount in Company Currency" +msgstr "Betrag in Unternehmenswährung" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__analytic_distribution +msgid "Analytic Distribution" +msgstr "" + +#. module: donation +#: model:ir.model,name:donation.model_account_analytic_applicability +msgid "Analytic Plan's Applicabilities" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__analytic_precision +msgid "Analytic Precision" +msgstr "" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__tax_receipt_option__annual +#: model:ir.model.fields.selection,name:donation.selection__donation_tax_receipt_option_switch__new_tax_receipt_option__annual +msgid "Annual Tax Receipt" +msgstr "Sammelspendenbescheinigung" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_campaign_form +#: model_terms:ir.ui.view,arch_db:donation.donation_campaign_search +#: model_terms:ir.ui.view,arch_db:donation.donation_thanks_template_form +#: model_terms:ir.ui.view,arch_db:donation.donation_thanks_template_search +msgid "Archived" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_attachment_count +msgid "Attachment Count" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Back to Draft" +msgstr "Zurücksetzen auf Entwurf" + +#. module: donation +#: model:ir.model,name:donation.model_account_bank_statement_line +msgid "Bank Statement Line" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Campaign" +msgstr "Kampagne" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +#: model_terms:ir.ui.view,arch_db:donation.donation_tax_receipt_option_switch_form +#: model_terms:ir.ui.view,arch_db:donation.donation_validate_form +msgid "Cancel" +msgstr "Abbrechen" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__state__cancel +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Cancelled" +msgstr "Abgebrochen" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Cancelled donation '%s' is linked to a journal entry. This should never " +"happen." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Cancelled donation '%s' is linked to a tax receipt. This should never happen." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Cannot validate donation %s because it doesn't have any lines!" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Cannot validate donation %s because it is not in draft state." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Cannot validate donation %s because the total amount is 0!" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_report__product_categ_id +msgid "Category of Product" +msgstr "Produktkategorie" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Change" +msgstr "Ändern" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_tax_receipt_option_switch_action +#: model_terms:ir.ui.view,arch_db:donation.donation_tax_receipt_option_switch_form +msgid "Change Tax Receipt Option" +msgstr "Ändere Spendenbescheinigung" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__check_total +msgid "Check Amount" +msgstr "Überprüfe Betrag" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.res_config_settings_donation +msgid "Check Total" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_config_settings__group_donation_check_total +msgid "Check Total on Donations" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__code +msgid "Code" +msgstr "Code" + +#. module: donation +#: model:ir.model,name:donation.model_donation_campaign +msgid "Code attributed for a Donation Campaign" +msgstr "Code für eine Spendenkampagne" + +#. module: donation +#: model:ir.model,name:donation.model_res_company +msgid "Companies" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__company_id +#: model:ir.model.fields,field_description:donation.field_donation_donation__company_id +#: model:ir.model.fields,field_description:donation.field_donation_line__company_id +#: model:ir.model.fields,field_description:donation.field_donation_report__company_id +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__company_id +#: model_terms:ir.ui.view,arch_db:donation.donation_campaign_search +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Company" +msgstr "Unternehmen" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__company_currency_id +#: model:ir.model.fields,field_description:donation.field_donation_line__company_currency_id +#: model:ir.model.fields,field_description:donation.field_donation_report__company_currency_id +msgid "Company Currency" +msgstr "Unternehmenswährung" + +#. module: donation +#: model:ir.model,name:donation.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_config_menu +msgid "Configuration" +msgstr "Konfiguration" + +#. module: donation +#: model:ir.model,name:donation.model_res_partner +msgid "Contact" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__country_id +msgid "Country" +msgstr "Land" + +#. module: donation +#: model:ir.ui.menu,name:donation.tax_receipt_annual_create_menu +msgid "Create Annual Receipts" +msgstr "Erstelle Sammelspendenbescheinigungen" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "Create Donation from Bank Statement Line" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_donation__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_line__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_validate__create_uid +msgid "Created by" +msgstr "Erstellt von" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__create_date +#: model:ir.model.fields,field_description:donation.field_donation_donation__create_date +#: model:ir.model.fields,field_description:donation.field_donation_line__create_date +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__create_date +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__create_date +#: model:ir.model.fields,field_description:donation.field_donation_validate__create_date +msgid "Created on" +msgstr "Erstellt am" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__currency_id +#: model:ir.model.fields,field_description:donation.field_donation_line__currency_id +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Currency" +msgstr "Währung" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_users__context_donation_campaign_id +msgid "Current Donation Campaign" +msgstr "Aktuelle Spendenkampagne" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_users__context_donation_payment_method_line_id +msgid "Current Donation Payment Method" +msgstr "Aktuelle Zahlungsmethode" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Date" +msgstr "Datum" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__display_name +#: model:ir.model.fields,field_description:donation.field_donation_donation__display_name +#: model:ir.model.fields,field_description:donation.field_donation_line__display_name +#: model:ir.model.fields,field_description:donation.field_donation_report__display_name +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__display_name +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__display_name +#: model:ir.model.fields,field_description:donation.field_donation_validate__display_name +msgid "Display Name" +msgstr "Anzeigename" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__distribution_analytic_account_ids +msgid "Distribution Analytic Account" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_account_analytic_applicability__business_domain +msgid "Domain" +msgstr "" + +#. module: donation +#: model:ir.model,name:donation.model_donation_donation +#: model:ir.model.fields,field_description:donation.field_account_payment_method_line__donation +#: model:ir.model.fields,field_description:donation.field_donation_line__donation_id +#: model:ir.model.fields,field_description:donation.field_donation_report__product_donation_type +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__donation_id +#: model:ir.model.fields.selection,name:donation.selection__account_analytic_applicability__business_domain__donation +#: model:ir.module.category,name:donation.module_category_donation +#: model:ir.ui.menu,name:donation.donation_top_menu +#: model_terms:ir.ui.view,arch_db:donation.res_config_settings_donation +msgid "Donation" +msgstr "Spende" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Donation %(donation)s is linked to a bank statement line, but the Donation " +"by Credit Transfer Account is not set for company '%(company)s'. This should " +"never happen." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Donation '%(donation)s' is linked to the tax receipt %(tax_receipt)s, so you " +"cannot delete it." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Donation '%s' is in Done state, so you cannot delete it." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Donation '%s' is linked to a journal entry, so you cannot delete it." +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__campaign_id +#: model:ir.model.fields,field_description:donation.field_donation_report__campaign_id +msgid "Donation Campaign" +msgstr "Spendenkampagne" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_campaign_action +#: model:ir.ui.menu,name:donation.donation_campaign_menu +msgid "Donation Campaigns" +msgstr "Spendenkampagnen" + +#. module: donation +#: model:res.groups,name:donation.group_donation_check_total +msgid "Donation Check Total" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__donation_date +#: model:ir.model.fields,field_description:donation.field_donation_report__donation_date +msgid "Donation Date" +msgstr "Spendendatum" + +#. module: donation +#: model:ir.model,name:donation.model_donation_line +#: model:ir.model.fields,field_description:donation.field_donation_donation__line_ids +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Donation Lines" +msgstr "Spendenzeile" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__number +msgid "Donation Number" +msgstr "Spendennummer" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_tax_receipt_menu +msgid "Donation Tax Receipts" +msgstr "Spendenbescheinigung" + +#. module: donation +#: model:ir.model,name:donation.model_donation_thanks_template +msgid "Donation Thanks Letter Template" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_company__donation_account_id +#: model:ir.model.fields,field_description:donation.field_res_config_settings__donation_account_id +msgid "Donation by Credit Transfer Account" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_payment_method_line.py:0 +msgid "Donation payment method '%s'is not an inbound payment method." +msgstr "" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_action +#: model:ir.actions.act_window,name:donation.partner_donation_action +#: model:ir.model.fields,field_description:donation.field_account_bank_statement_line__donation_ids +#: model:ir.model.fields,field_description:donation.field_res_partner__donation_ids +#: model:ir.model.fields,field_description:donation.field_res_users__donation_ids +#: model:ir.ui.menu,name:donation.donation_config_donation_menu +#: model:ir.ui.menu,name:donation.donation_menu +#: model:ir.ui.menu,name:donation.donation_title_menu +#: model_terms:ir.ui.view,arch_db:donation.view_partner_property_form +msgid "Donations" +msgstr "Spenden" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_report_action +#: model:ir.model,name:donation.model_donation_report +#: model:ir.ui.menu,name:donation.donation_report_menu +msgid "Donations Analysis" +msgstr "Spendenanalyse" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_line_action +msgid "Donations Lines" +msgstr "Spendenzeilen" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__state__done +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Done" +msgstr "Erledigt" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__partner_id +#: model:ir.model.fields,field_description:donation.field_donation_report__partner_id +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Donor" +msgstr "Spender" + +#. module: donation +#: model:ir.ui.menu,name:donation.donor +msgid "Donors" +msgstr "Spender" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__state__draft +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Draft" +msgstr "Entwurf" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__tax_receipt_total +msgid "Eligible Tax Receipt Sub-total in Company Currency" +msgstr "berechtigte Zwischensumme Spendenbescheinigung" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_report__tax_receipt_ok +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Eligible for a Tax Receipt" +msgstr "Geeignet für Spendenbescheinigung" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Error:" +msgstr "Fehler:" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Failed to get account for donation line with product '%s'." +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_follower_ids +msgid "Followers" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__tax_receipt_option__each +#: model:ir.model.fields.selection,name:donation.selection__donation_tax_receipt_option_switch__new_tax_receipt_option__each +msgid "For Each Donation" +msgstr "Für jede Spende" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Full in-kind donation: no journal entry generated." +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Group By" +msgstr "Gruppieren nach" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__has_message +msgid "Has Message" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__id +#: model:ir.model.fields,field_description:donation.field_donation_donation__id +#: model:ir.model.fields,field_description:donation.field_donation_line__id +#: model:ir.model.fields,field_description:donation.field_donation_report__id +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__id +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__id +#: model:ir.model.fields,field_description:donation.field_donation_validate__id +msgid "ID" +msgstr "ID" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_exception_icon +msgid "Icon" +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__message_needaction +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_account_payment_method_line__donation +msgid "If enabled, this payment method will be available on donations" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__image +msgid "Image" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__in_kind +#: model:ir.model.fields,field_description:donation.field_donation_report__in_kind +msgid "In Kind" +msgstr "Sachspende" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "In kind" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__tax_receipt_ok +msgid "Is Eligible for a Tax Receipt" +msgstr "Ist geeignet für Spendenbescheinigung" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__move_id +msgid "Journal Entry" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_donation__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_line__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_validate__write_uid +msgid "Last Updated by" +msgstr "Zuletzt aktualisiert von" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__write_date +#: model:ir.model.fields,field_description:donation.field_donation_donation__write_date +#: model:ir.model.fields,field_description:donation.field_donation_line__write_date +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__write_date +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__write_date +#: model:ir.model.fields,field_description:donation.field_donation_validate__write_date +msgid "Last Updated on" +msgstr "Zuletzt aktualisiert am" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_from_bank_statement_line_form +msgid "Lines" +msgstr "" + +#. module: donation +#: model:ir.module.category,description:donation.module_category_donation +msgid "Manage donations" +msgstr "Verwalte Spenden" + +#. module: donation +#: model:res.groups,name:donation.group_donation_manager +msgid "Manager" +msgstr "Manager" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_tree +msgid "Mark all selected donation as Thanks Printed?" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_tree +msgid "Mark as Thanks Printed" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_has_error +msgid "Message Delivery error" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_ids +msgid "Messages" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "Missing Product for Donations via Credit Transfert for company '%s'." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "Missing inbound payment method linked to the bank journal '%s'." +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__name +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__name +msgid "Name" +msgstr "Name" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_campaign_search +msgid "Name or Code" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "New" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_summary +msgid "Next Activity Summary" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_type_id +msgid "Next Activity Type" +msgstr "" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__tax_receipt_option__none +msgid "None" +msgstr "Keine" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__note +msgid "Notes" +msgstr "Notizen" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_has_error_counter +msgid "Number of errors" +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__message_needaction_counter +msgid "Number of messages requiring action" +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "" +"On bank statement line '%(line)s', the amount (%(amount)s) is negative so it " +"cannot be processed as a donation." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "" +"On bank statement line '%s', the partner is required to process a donation." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/res_company.py:0 +msgid "" +"On the company %(company)s, the Product for Donations via Credit Transfer (%" +"(product)s) is not a donation product !" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Other Information" +msgstr "Weitere Informationen" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__commercial_partner_id +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Parent Donor" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Partner" +msgstr "Parnter" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_report__country_id +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Partner Country" +msgstr "Partner Land" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__payment_method_line_id +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Payment Method" +msgstr "Zahlungsmethode" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_report__payment_method_line_id +msgid "Payment Method Line" +msgstr "" + +#. module: donation +#: model:ir.actions.act_window,name:donation.account_payment_method_line_donation_action +#: model:ir.model,name:donation.model_account_payment_method_line +#: model:ir.ui.menu,name:donation.account_payment_method_line_donation_menu +msgid "Payment Methods" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__payment_ref +msgid "Payment Reference" +msgstr "Zahlungsreferenz" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Payment account is not set on payment method '%s'." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Payment method is not set on donation %s (only fully in-kind donations don't " +"require a payment method)." +msgstr "" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_tax_receipt_print_menu +msgid "Print Receipts" +msgstr "Drucke Bescheinigung" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Print Thanks Letter" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__product_id +#: model:ir.model.fields,field_description:donation.field_donation_report__product_id +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Product" +msgstr "Produkt" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Product Category" +msgstr "Produktkategorie" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__product_donation_type +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Product Type donation" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_company__donation_credit_transfer_product_id +#: model:ir.model.fields,field_description:donation.field_res_config_settings__donation_credit_transfer_product_id +msgid "Product for Donations via Credit Transfer" +msgstr "" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_product_action +#: model:ir.ui.menu,name:donation.donation_products +msgid "Products" +msgstr "Produkte" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__quantity +msgid "Quantity" +msgstr "Menge" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt__donation_ids +#: model_terms:ir.ui.view,arch_db:donation.donation_tax_receipt_form +msgid "Related Donations" +msgstr "Verbundene Spenden" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_report_title_menu +msgid "Reporting" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_user_id +msgid "Responsible User" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Save Default Values" +msgstr "Speicher Default Werte" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_from_bank_statement_line_form +msgid "Save as Draft" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__sequence +#: model:ir.model.fields,field_description:donation.field_donation_line__sequence +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__sequence +msgid "Sequence" +msgstr "Reihenfolge" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_settings_action +#: model:ir.ui.menu,name:donation.donation_settings_menu +msgid "Settings" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__bank_statement_line_id +msgid "Source Bank Statement Line" +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_line__tax_receipt_ok +msgid "Specify if the product is eligible for a tax receipt" +msgstr "" +"Spezifizieren Sie hier, ob dieses Produkt für die Erstellung einer " +"Spendenbescheinigung geeignet ist" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__start_date +msgid "Start Date" +msgstr "Anfangsdatum" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__state +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "State" +msgstr "Status" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__activity_state +msgid "" +"Status based on activities\n" +"Overdue: Due date is already passed\n" +"Today: Activity date is today\n" +"Planned: Future activities." +msgstr "" + +#. module: donation +#: model:ir.model,name:donation.model_donation_tax_receipt_option_switch +msgid "Switch Donation Tax Receipt Option" +msgstr "Ändere Spendenbescheinigung" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__tax_receipt_id +#: model_terms:ir.ui.view,arch_db:donation.donation_line_tree +msgid "Tax Receipt" +msgstr "Steuerbeleg" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__tax_receipt_total +#: model:ir.model.fields,field_description:donation.field_donation_line__tax_receipt_amount +#: model:ir.model.fields,field_description:donation.field_donation_report__tax_receipt_amount +msgid "Tax Receipt Eligible Amount" +msgstr "Berechtigter Spendenbescheinigungsbetrag" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__tax_receipt_option +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__new_tax_receipt_option +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Tax Receipt Option" +msgstr "Spendenbescheinigung" + +#. module: donation +#: model:ir.model,name:donation.model_donation_tax_receipt +msgid "Tax Receipt for Donations" +msgstr "Steuerbeleg für Spenden" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_tax_title_menu +msgid "Tax Receipts" +msgstr "Spendenbescheinigungen" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__text +msgid "Text" +msgstr "" + +#. module: donation +#: model:ir.actions.report,name:donation.report_thanks +msgid "Thanks Letter" +msgstr "" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_thanks_template_action +#: model:ir.ui.menu,name:donation.donation_thanks_template_menu +msgid "Thanks Letter Templates" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__thanks_printed +#: model:ir.model.fields,field_description:donation.field_donation_report__thanks_printed +msgid "Thanks Printed" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__thanks_template_id +#: model:ir.model.fields,field_description:donation.field_donation_report__thanks_template_id +msgid "Thanks Template" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Thanks to Print" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"The Donation by Credit Transfer Account '%(account)s' for company '%" +"(company)s' is not reconciliable. This should never happen." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "The Donation by Credit Transfer Accountis not set for company '%s'." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"The amount of donation %(donation)s (%(check_total)s) is different from the " +"sum of the donation lines (%(amount_total)s)." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"The date of donation %s should be today or in the past, not in the future!" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"The payment method '%(pay_mode)s' selected on donation %(donation)s is not a " +"donation payment method." +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__thanks_printed +msgid "" +"This field automatically becomes active when the thanks letter has been " +"printed." +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_validate_form +msgid "This wizard will validate all the draft donations selected." +msgstr "Dieser Assistent bestätigt alle ausgewählten Spendenentwürfe." + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +#: model_terms:ir.ui.view,arch_db:donation.donation_from_bank_statement_line_form +msgid "Total" +msgstr "Gesamt" + +#. module: donation +#: model:ir.model.fields,help:donation.field_res_company__donation_account_id +#: model:ir.model.fields,help:donation.field_res_config_settings__donation_account_id +msgid "Transfer account for donations received by credit transfer. " +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__unit_price +msgid "Unit Price" +msgstr "Preis je Mengeneinheit" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_tax_receipt_option_switch_form +msgid "Update" +msgstr "Aktualisieren" + +#. module: donation +#: model:ir.model,name:donation.model_res_users +#: model:res.groups,name:donation.group_donation_user +msgid "User" +msgstr "Nutzer" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +#: model_terms:ir.ui.view,arch_db:donation.donation_from_bank_statement_line_form +#: model_terms:ir.ui.view,arch_db:donation.donation_tree +#: model_terms:ir.ui.view,arch_db:donation.donation_validate_form +msgid "Validate" +msgstr "Bestätigen" + +#. module: donation +#: model:ir.model,name:donation.model_donation_validate +#: model_terms:ir.ui.view,arch_db:donation.donation_validate_form +msgid "Validate Donations" +msgstr "Bestätige Spenden" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_validate_action +msgid "Validate Draft Donations" +msgstr "Bestätige Spenden Entwürfe" + +#. module: donation +#: model:res.groups,name:donation.group_donation_viewer +msgid "Viewer" +msgstr "Betrachter" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__website_message_ids +msgid "Website Messages" +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__website_message_ids +msgid "Website communication history" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"You cannot cancel this donation because it is linked to the tax receipt %s. " +"You should first delete this tax receipt (but it may not be legally allowed)." +msgstr "" +"Sie können die Spende nicht abbrechen, weil sie mit dem Steuerbeleg %s1 " +"verbunden ist. Sie müssen zuerst diesen Steuerbeleg löschen (aber dies mag " +"rechtlich nicht erlaubt sein)." + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "You cannot change the Tax Receipt Option when it is Annual." +msgstr "" +"Sie können nicht die Steuerbeleg Option ändern, wenn diese jährlich ist." + +#, python-format +#~ msgid "A cancelled donation should not be linked to a tax receipt" +#~ msgstr "" +#~ "Eine abgebrochene Spende sollte nicht mit einer Spendenbescheinigung " +#~ "verknüpft sein" + +#, python-format +#~ msgid "A cancelled donation should not be linked to an account move" +#~ msgstr "" +#~ "Abgebrochene Spenden sollten nicht mit einer Kontobewegung verknüpft sein" + +#~ msgid "Account Move" +#~ msgstr "Kontobewegung" + +#, python-format +#~ msgid "Full in-kind donation: no account move generated" +#~ msgstr "komplette Sachspende: keine Kontobewegung generiert" + +#~ msgid "Last Modified on" +#~ msgstr "Zuletzt geändert am" + +#, python-format +#~ msgid "The donation '%s' is in Done state, so you cannot delete it." +#~ msgstr "" +#~ "Die Spende '%s1 ist im Status 'Erledigt' und kann daher nicht gelöscht " +#~ "werden." + +#, python-format +#~ msgid "" +#~ "The donation '%s' is linked to an account move, so you cannot delete it." +#~ msgstr "" +#~ "Die Spende '%s1 ist mit einer Kontobewegung verknüpft und kann daher " +#~ "nicht gelöscht werden." + +#~ msgid "Analytic Account" +#~ msgstr "Kostenstelle" + +#~ msgid "Donation Line" +#~ msgstr "Spendenzeile" + +#~ msgid "Journal" +#~ msgstr "Jurnal" + +#~ msgid "Search Donations" +#~ msgstr "Suche Spenden" + +#, python-format +#~ msgid "" +#~ "The donation '%s' is linked to the tax receipt %s, so you cannot delete " +#~ "it." +#~ msgstr "" +#~ "Die Spende '%s1' ist mit dem Steuerbeleg %s2 und kann daher nicht " +#~ "gelöscht werden." + +#~ msgid "True" +#~ msgstr "Wahr" + +#~ msgid "Users" +#~ msgstr "Nutzer" + +#~ msgid "Cancelled Donation of %s" +#~ msgstr "Abgebrochene Spende von %s1" + +#~ msgid "" +#~ "Cannot validate the donation of %s because it doesn't have any lines!" +#~ msgstr "" +#~ "Spende %s1 kann nicht bestätigt werden, da keine Zeilen vorhanden sind!" + +#~ msgid "Cannot validate the donation of %s because it is not in draft state." +#~ msgstr "" +#~ "Die Spende %s1 kann nicht bestätigt werden, da sie sich im Entwurf-Status " +#~ "befindet." + +#~ msgid "Cannot validate the donation of %s because the total amount is 0 !" +#~ msgstr "" +#~ "Die Spende %s1 kann nicht bestätigt werden, da der Gesamtbetrag 0 ist!" + +#~ msgid "Donation Payment Method" +#~ msgstr "Zahlungsmethode" + +#~ msgid "Donation of %s" +#~ msgstr "Spende von %s" + +#~ msgid "Draft Donation of %s" +#~ msgstr "Spendenentwurf von %s1" + +#~ msgid "Missing Default Debit Account on journal '%s'." +#~ msgstr "Fehlender Default Passivsaldo im '%s1'-Jurnal." + +#~ msgid "Reports" +#~ msgstr "Berichte" + +#~ msgid "" +#~ "The amount of the donation of %s (%s) is different from the sum of the " +#~ "donation lines (%s)." +#~ msgstr "" +#~ "Der Betrag der Spende von %s1 (%s2) weicht von der Summe der " +#~ "Spendenzeilen (%s3) ab." + +#~ msgid "" +#~ "The date of the donation of %s should be today or in the past, not in the " +#~ "future!" +#~ msgstr "Das Datum der Spende von %s darf nicht in der Zukunft liegen!" diff --git a/donation/i18n/donation.pot b/donation/i18n/donation.pot new file mode 100644 index 000000000..187fd2af4 --- /dev/null +++ b/donation/i18n/donation.pot @@ -0,0 +1,1152 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * donation +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.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: donation +#: model:ir.model.fields,field_description:donation.field_res_partner__donation_count +#: model:ir.model.fields,field_description:donation.field_res_users__donation_count +msgid "# of Donations" +msgstr "" + +#. module: donation +#: model:ir.actions.report,print_report_name:donation.report_thanks +msgid "" +"'donation_thanks-%s%s' % (object.number, object.state == 'draft' and " +"'-draft' or '')" +msgstr "" + +#. module: donation +#: model:ir.model.constraint,message:donation.constraint_donation_campaign_code_company_uniq +msgid "A campaign with the same code already exists!" +msgstr "" + +#. module: donation +#: model:ir.model.constraint,message:donation.constraint_donation_donation_bank_statement_line_uniq +msgid "A donation already exists for this bank statement line." +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_needaction +msgid "Action Needed" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__active +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__active +msgid "Active" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_ids +msgid "Activities" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_state +msgid "Activity State" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_type_icon +msgid "Activity Type Icon" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__amount +#: model:ir.model.fields,field_description:donation.field_donation_report__amount_company_currency +msgid "Amount" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__amount_total +msgid "Amount Total" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__amount_total_company_currency +msgid "Amount Total in Company Currency" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__amount_company_currency +msgid "Amount in Company Currency" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__analytic_distribution +msgid "Analytic Distribution" +msgstr "" + +#. module: donation +#: model:ir.model,name:donation.model_account_analytic_applicability +msgid "Analytic Plan's Applicabilities" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__analytic_precision +msgid "Analytic Precision" +msgstr "" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__tax_receipt_option__annual +#: model:ir.model.fields.selection,name:donation.selection__donation_tax_receipt_option_switch__new_tax_receipt_option__annual +msgid "Annual Tax Receipt" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_campaign_form +#: model_terms:ir.ui.view,arch_db:donation.donation_campaign_search +#: model_terms:ir.ui.view,arch_db:donation.donation_thanks_template_form +#: model_terms:ir.ui.view,arch_db:donation.donation_thanks_template_search +msgid "Archived" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_attachment_count +msgid "Attachment Count" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Back to Draft" +msgstr "" + +#. module: donation +#: model:ir.model,name:donation.model_account_bank_statement_line +msgid "Bank Statement Line" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Campaign" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +#: model_terms:ir.ui.view,arch_db:donation.donation_tax_receipt_option_switch_form +#: model_terms:ir.ui.view,arch_db:donation.donation_validate_form +msgid "Cancel" +msgstr "" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__state__cancel +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Cancelled" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Cancelled donation '%s' is linked to a journal entry. This should never " +"happen." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Cancelled donation '%s' is linked to a tax receipt. This should never " +"happen." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Cannot validate donation %s because it doesn't have any lines!" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Cannot validate donation %s because it is not in draft state." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Cannot validate donation %s because the total amount is 0!" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_report__product_categ_id +msgid "Category of Product" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Change" +msgstr "" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_tax_receipt_option_switch_action +#: model_terms:ir.ui.view,arch_db:donation.donation_tax_receipt_option_switch_form +msgid "Change Tax Receipt Option" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__check_total +msgid "Check Amount" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.res_config_settings_donation +msgid "Check Total" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_config_settings__group_donation_check_total +msgid "Check Total on Donations" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__code +msgid "Code" +msgstr "" + +#. module: donation +#: model:ir.model,name:donation.model_donation_campaign +msgid "Code attributed for a Donation Campaign" +msgstr "" + +#. module: donation +#: model:ir.model,name:donation.model_res_company +msgid "Companies" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__company_id +#: model:ir.model.fields,field_description:donation.field_donation_donation__company_id +#: model:ir.model.fields,field_description:donation.field_donation_line__company_id +#: model:ir.model.fields,field_description:donation.field_donation_report__company_id +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__company_id +#: model_terms:ir.ui.view,arch_db:donation.donation_campaign_search +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Company" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__company_currency_id +#: model:ir.model.fields,field_description:donation.field_donation_line__company_currency_id +#: model:ir.model.fields,field_description:donation.field_donation_report__company_currency_id +msgid "Company Currency" +msgstr "" + +#. module: donation +#: model:ir.model,name:donation.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_config_menu +msgid "Configuration" +msgstr "" + +#. module: donation +#: model:ir.model,name:donation.model_res_partner +msgid "Contact" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__country_id +msgid "Country" +msgstr "" + +#. module: donation +#: model:ir.ui.menu,name:donation.tax_receipt_annual_create_menu +msgid "Create Annual Receipts" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "Create Donation from Bank Statement Line" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_donation__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_line__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_validate__create_uid +msgid "Created by" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__create_date +#: model:ir.model.fields,field_description:donation.field_donation_donation__create_date +#: model:ir.model.fields,field_description:donation.field_donation_line__create_date +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__create_date +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__create_date +#: model:ir.model.fields,field_description:donation.field_donation_validate__create_date +msgid "Created on" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__currency_id +#: model:ir.model.fields,field_description:donation.field_donation_line__currency_id +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Currency" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_users__context_donation_campaign_id +msgid "Current Donation Campaign" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_users__context_donation_payment_method_line_id +msgid "Current Donation Payment Method" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Date" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__display_name +#: model:ir.model.fields,field_description:donation.field_donation_donation__display_name +#: model:ir.model.fields,field_description:donation.field_donation_line__display_name +#: model:ir.model.fields,field_description:donation.field_donation_report__display_name +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__display_name +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__display_name +#: model:ir.model.fields,field_description:donation.field_donation_validate__display_name +msgid "Display Name" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__distribution_analytic_account_ids +msgid "Distribution Analytic Account" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_account_analytic_applicability__business_domain +msgid "Domain" +msgstr "" + +#. module: donation +#: model:ir.model,name:donation.model_donation_donation +#: model:ir.model.fields,field_description:donation.field_account_payment_method_line__donation +#: model:ir.model.fields,field_description:donation.field_donation_line__donation_id +#: model:ir.model.fields,field_description:donation.field_donation_report__product_donation_type +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__donation_id +#: model:ir.model.fields.selection,name:donation.selection__account_analytic_applicability__business_domain__donation +#: model:ir.module.category,name:donation.module_category_donation +#: model:ir.ui.menu,name:donation.donation_top_menu +#: model_terms:ir.ui.view,arch_db:donation.res_config_settings_donation +msgid "Donation" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Donation %(donation)s is linked to a bank statement line, but the Donation " +"by Credit Transfer Account is not set for company '%(company)s'. This should" +" never happen." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Donation '%(donation)s' is linked to the tax receipt %(tax_receipt)s, so you" +" cannot delete it." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Donation '%s' is in Done state, so you cannot delete it." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Donation '%s' is linked to a journal entry, so you cannot delete it." +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__campaign_id +#: model:ir.model.fields,field_description:donation.field_donation_report__campaign_id +msgid "Donation Campaign" +msgstr "" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_campaign_action +#: model:ir.ui.menu,name:donation.donation_campaign_menu +msgid "Donation Campaigns" +msgstr "" + +#. module: donation +#: model:res.groups,name:donation.group_donation_check_total +msgid "Donation Check Total" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__donation_date +#: model:ir.model.fields,field_description:donation.field_donation_report__donation_date +msgid "Donation Date" +msgstr "" + +#. module: donation +#: model:ir.model,name:donation.model_donation_line +#: model:ir.model.fields,field_description:donation.field_donation_donation__line_ids +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Donation Lines" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__number +msgid "Donation Number" +msgstr "" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_tax_receipt_menu +msgid "Donation Tax Receipts" +msgstr "" + +#. module: donation +#: model:ir.model,name:donation.model_donation_thanks_template +msgid "Donation Thanks Letter Template" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_company__donation_account_id +#: model:ir.model.fields,field_description:donation.field_res_config_settings__donation_account_id +msgid "Donation by Credit Transfer Account" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_payment_method_line.py:0 +msgid "Donation payment method '%s'is not an inbound payment method." +msgstr "" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_action +#: model:ir.actions.act_window,name:donation.partner_donation_action +#: model:ir.model.fields,field_description:donation.field_account_bank_statement_line__donation_ids +#: model:ir.model.fields,field_description:donation.field_res_partner__donation_ids +#: model:ir.model.fields,field_description:donation.field_res_users__donation_ids +#: model:ir.ui.menu,name:donation.donation_config_donation_menu +#: model:ir.ui.menu,name:donation.donation_menu +#: model:ir.ui.menu,name:donation.donation_title_menu +#: model_terms:ir.ui.view,arch_db:donation.view_partner_property_form +msgid "Donations" +msgstr "" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_report_action +#: model:ir.model,name:donation.model_donation_report +#: model:ir.ui.menu,name:donation.donation_report_menu +msgid "Donations Analysis" +msgstr "" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_line_action +msgid "Donations Lines" +msgstr "" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__state__done +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Done" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__partner_id +#: model:ir.model.fields,field_description:donation.field_donation_report__partner_id +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Donor" +msgstr "" + +#. module: donation +#: model:ir.ui.menu,name:donation.donor +msgid "Donors" +msgstr "" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__state__draft +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Draft" +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__tax_receipt_total +msgid "Eligible Tax Receipt Sub-total in Company Currency" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_report__tax_receipt_ok +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Eligible for a Tax Receipt" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Error:" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Failed to get account for donation line with product '%s'." +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_follower_ids +msgid "Followers" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__tax_receipt_option__each +#: model:ir.model.fields.selection,name:donation.selection__donation_tax_receipt_option_switch__new_tax_receipt_option__each +msgid "For Each Donation" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Full in-kind donation: no journal entry generated." +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Group By" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__has_message +msgid "Has Message" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__id +#: model:ir.model.fields,field_description:donation.field_donation_donation__id +#: model:ir.model.fields,field_description:donation.field_donation_line__id +#: model:ir.model.fields,field_description:donation.field_donation_report__id +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__id +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__id +#: model:ir.model.fields,field_description:donation.field_donation_validate__id +msgid "ID" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_exception_icon +msgid "Icon" +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__message_needaction +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_account_payment_method_line__donation +msgid "If enabled, this payment method will be available on donations" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__image +msgid "Image" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__in_kind +#: model:ir.model.fields,field_description:donation.field_donation_report__in_kind +msgid "In Kind" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "In kind" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__tax_receipt_ok +msgid "Is Eligible for a Tax Receipt" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__move_id +msgid "Journal Entry" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_donation__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_line__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_validate__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__write_date +#: model:ir.model.fields,field_description:donation.field_donation_donation__write_date +#: model:ir.model.fields,field_description:donation.field_donation_line__write_date +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__write_date +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__write_date +#: model:ir.model.fields,field_description:donation.field_donation_validate__write_date +msgid "Last Updated on" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_from_bank_statement_line_form +msgid "Lines" +msgstr "" + +#. module: donation +#: model:ir.module.category,description:donation.module_category_donation +msgid "Manage donations" +msgstr "" + +#. module: donation +#: model:res.groups,name:donation.group_donation_manager +msgid "Manager" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_tree +msgid "Mark all selected donation as Thanks Printed?" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_tree +msgid "Mark as Thanks Printed" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_has_error +msgid "Message Delivery error" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_ids +msgid "Messages" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "Missing Product for Donations via Credit Transfert for company '%s'." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "Missing inbound payment method linked to the bank journal '%s'." +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__name +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__name +msgid "Name" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_campaign_search +msgid "Name or Code" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "New" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_summary +msgid "Next Activity Summary" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_type_id +msgid "Next Activity Type" +msgstr "" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__tax_receipt_option__none +msgid "None" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__note +msgid "Notes" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_has_error_counter +msgid "Number of errors" +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__message_needaction_counter +msgid "Number of messages requiring action" +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "" +"On bank statement line '%(line)s', the amount (%(amount)s) is negative so it" +" cannot be processed as a donation." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "" +"On bank statement line '%s', the partner is required to process a donation." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/res_company.py:0 +msgid "" +"On the company %(company)s, the Product for Donations via Credit Transfer " +"(%(product)s) is not a donation product !" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Other Information" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__commercial_partner_id +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Parent Donor" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Partner" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_report__country_id +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Partner Country" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__payment_method_line_id +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Payment Method" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_report__payment_method_line_id +msgid "Payment Method Line" +msgstr "" + +#. module: donation +#: model:ir.actions.act_window,name:donation.account_payment_method_line_donation_action +#: model:ir.model,name:donation.model_account_payment_method_line +#: model:ir.ui.menu,name:donation.account_payment_method_line_donation_menu +msgid "Payment Methods" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__payment_ref +msgid "Payment Reference" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Payment account is not set on payment method '%s'." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Payment method is not set on donation %s (only fully in-kind donations don't" +" require a payment method)." +msgstr "" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_tax_receipt_print_menu +msgid "Print Receipts" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Print Thanks Letter" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__product_id +#: model:ir.model.fields,field_description:donation.field_donation_report__product_id +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Product" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Product Category" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__product_donation_type +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Product Type donation" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_company__donation_credit_transfer_product_id +#: model:ir.model.fields,field_description:donation.field_res_config_settings__donation_credit_transfer_product_id +msgid "Product for Donations via Credit Transfer" +msgstr "" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_product_action +#: model:ir.ui.menu,name:donation.donation_products +msgid "Products" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__quantity +msgid "Quantity" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt__donation_ids +#: model_terms:ir.ui.view,arch_db:donation.donation_tax_receipt_form +msgid "Related Donations" +msgstr "" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_report_title_menu +msgid "Reporting" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_user_id +msgid "Responsible User" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Save Default Values" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_from_bank_statement_line_form +msgid "Save as Draft" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__sequence +#: model:ir.model.fields,field_description:donation.field_donation_line__sequence +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__sequence +msgid "Sequence" +msgstr "" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_settings_action +#: model:ir.ui.menu,name:donation.donation_settings_menu +msgid "Settings" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__bank_statement_line_id +msgid "Source Bank Statement Line" +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_line__tax_receipt_ok +msgid "Specify if the product is eligible for a tax receipt" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__start_date +msgid "Start Date" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__state +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "State" +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__activity_state +msgid "" +"Status based on activities\n" +"Overdue: Due date is already passed\n" +"Today: Activity date is today\n" +"Planned: Future activities." +msgstr "" + +#. module: donation +#: model:ir.model,name:donation.model_donation_tax_receipt_option_switch +msgid "Switch Donation Tax Receipt Option" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__tax_receipt_id +#: model_terms:ir.ui.view,arch_db:donation.donation_line_tree +msgid "Tax Receipt" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__tax_receipt_total +#: model:ir.model.fields,field_description:donation.field_donation_line__tax_receipt_amount +#: model:ir.model.fields,field_description:donation.field_donation_report__tax_receipt_amount +msgid "Tax Receipt Eligible Amount" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__tax_receipt_option +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__new_tax_receipt_option +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Tax Receipt Option" +msgstr "" + +#. module: donation +#: model:ir.model,name:donation.model_donation_tax_receipt +msgid "Tax Receipt for Donations" +msgstr "" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_tax_title_menu +msgid "Tax Receipts" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__text +msgid "Text" +msgstr "" + +#. module: donation +#: model:ir.actions.report,name:donation.report_thanks +msgid "Thanks Letter" +msgstr "" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_thanks_template_action +#: model:ir.ui.menu,name:donation.donation_thanks_template_menu +msgid "Thanks Letter Templates" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__thanks_printed +#: model:ir.model.fields,field_description:donation.field_donation_report__thanks_printed +msgid "Thanks Printed" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__thanks_template_id +#: model:ir.model.fields,field_description:donation.field_donation_report__thanks_template_id +msgid "Thanks Template" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Thanks to Print" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"The Donation by Credit Transfer Account '%(account)s' for company " +"'%(company)s' is not reconciliable. This should never happen." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "The Donation by Credit Transfer Accountis not set for company '%s'." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"The amount of donation %(donation)s (%(check_total)s) is different from the " +"sum of the donation lines (%(amount_total)s)." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"The date of donation %s should be today or in the past, not in the future!" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"The payment method '%(pay_mode)s' selected on donation %(donation)s is not a" +" donation payment method." +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__thanks_printed +msgid "" +"This field automatically becomes active when the thanks letter has been " +"printed." +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_validate_form +msgid "This wizard will validate all the draft donations selected." +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +#: model_terms:ir.ui.view,arch_db:donation.donation_from_bank_statement_line_form +msgid "Total" +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_res_company__donation_account_id +#: model:ir.model.fields,help:donation.field_res_config_settings__donation_account_id +msgid "Transfer account for donations received by credit transfer. " +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__unit_price +msgid "Unit Price" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_tax_receipt_option_switch_form +msgid "Update" +msgstr "" + +#. module: donation +#: model:ir.model,name:donation.model_res_users +#: model:res.groups,name:donation.group_donation_user +msgid "User" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +#: model_terms:ir.ui.view,arch_db:donation.donation_from_bank_statement_line_form +#: model_terms:ir.ui.view,arch_db:donation.donation_tree +#: model_terms:ir.ui.view,arch_db:donation.donation_validate_form +msgid "Validate" +msgstr "" + +#. module: donation +#: model:ir.model,name:donation.model_donation_validate +#: model_terms:ir.ui.view,arch_db:donation.donation_validate_form +msgid "Validate Donations" +msgstr "" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_validate_action +msgid "Validate Draft Donations" +msgstr "" + +#. module: donation +#: model:res.groups,name:donation.group_donation_viewer +msgid "Viewer" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__website_message_ids +msgid "Website Messages" +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__website_message_ids +msgid "Website communication history" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"You cannot cancel this donation because it is linked to the tax receipt %s. " +"You should first delete this tax receipt (but it may not be legally " +"allowed)." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "You cannot change the Tax Receipt Option when it is Annual." +msgstr "" diff --git a/donation/i18n/es.po b/donation/i18n/es.po new file mode 100644 index 000000000..021cc7735 --- /dev/null +++ b/donation/i18n/es.po @@ -0,0 +1,1389 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * donation +# +# Translators: +# enjolras , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-11 21:44+0000\n" +"PO-Revision-Date: 2023-10-09 09:14+0000\n" +"Last-Translator: Ivorra78 \n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\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: donation +#: model:ir.model.fields,field_description:donation.field_res_partner__donation_count +#: model:ir.model.fields,field_description:donation.field_res_users__donation_count +msgid "# of Donations" +msgstr "# de Donativos" + +#. module: donation +#: model:ir.actions.report,print_report_name:donation.report_thanks +msgid "" +"'donation_thanks-%s%s' % (object.number, object.state == 'draft' and '-" +"draft' or '')" +msgstr "" +"'donation_thanks-%s%s' % (object.number, object.state == 'draft' and '-" +"draft' or '')" + +#. module: donation +#: model:ir.model.constraint,message:donation.constraint_donation_campaign_code_company_uniq +msgid "A campaign with the same code already exists!" +msgstr "¡Ya existe una campaña con el mismo código!" + +#. module: donation +#: model:ir.model.constraint,message:donation.constraint_donation_donation_bank_statement_line_uniq +msgid "A donation already exists for this bank statement line." +msgstr "Ya existe una donación para esta línea del extracto bancario." + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_needaction +msgid "Action Needed" +msgstr "Acción necesaria" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__active +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__active +msgid "Active" +msgstr "Activo" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_ids +msgid "Activities" +msgstr "Actividades" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "Decoración de actividad de excepción" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_state +msgid "Activity State" +msgstr "Estado de la actividad" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_type_icon +msgid "Activity Type Icon" +msgstr "Icono de tipo de actvidad" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__amount +#: model:ir.model.fields,field_description:donation.field_donation_report__amount_company_currency +msgid "Amount" +msgstr "Importe" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__amount_total +msgid "Amount Total" +msgstr "Importe total" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__amount_total_company_currency +msgid "Amount Total in Company Currency" +msgstr "Importe total en moneda de la compañía" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__amount_company_currency +msgid "Amount in Company Currency" +msgstr "Importe en moneda de la Compañía" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__analytic_distribution +msgid "Analytic Distribution" +msgstr "" + +#. module: donation +#: model:ir.model,name:donation.model_account_analytic_applicability +msgid "Analytic Plan's Applicabilities" +msgstr "Aplicabilidad del Plan Analítico" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__analytic_precision +msgid "Analytic Precision" +msgstr "Precisión Analítica" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__tax_receipt_option__annual +#: model:ir.model.fields.selection,name:donation.selection__donation_tax_receipt_option_switch__new_tax_receipt_option__annual +msgid "Annual Tax Receipt" +msgstr "Recibo de impuestos anual" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_campaign_form +#: model_terms:ir.ui.view,arch_db:donation.donation_campaign_search +#: model_terms:ir.ui.view,arch_db:donation.donation_thanks_template_form +#: model_terms:ir.ui.view,arch_db:donation.donation_thanks_template_search +msgid "Archived" +msgstr "Archivado" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_attachment_count +msgid "Attachment Count" +msgstr "Recuento de archivos adjuntos" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Back to Draft" +msgstr "Devolver a Borrador" + +#. module: donation +#: model:ir.model,name:donation.model_account_bank_statement_line +msgid "Bank Statement Line" +msgstr "Línea de extracto bancario" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Campaign" +msgstr "Campaña" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +#: model_terms:ir.ui.view,arch_db:donation.donation_tax_receipt_option_switch_form +#: model_terms:ir.ui.view,arch_db:donation.donation_validate_form +msgid "Cancel" +msgstr "Cancelar" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__state__cancel +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Cancelled" +msgstr "Cancelado" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Cancelled donation '%s' is linked to a journal entry. This should never " +"happen." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Cancelled donation '%s' is linked to a tax receipt. This should never happen." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Cannot validate donation %s because it doesn't have any lines!" +msgstr "¡No se puede validar la donación %s porque no tiene líneas!" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Cannot validate donation %s because it is not in draft state." +msgstr "" +"No se puede validar la donación %s porque no está en estado de borrador." + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Cannot validate donation %s because the total amount is 0!" +msgstr "¡No se puede validar la donación %s porque el importe total es 0!" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_report__product_categ_id +msgid "Category of Product" +msgstr "Categoría de producto" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Change" +msgstr "Cambiar" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_tax_receipt_option_switch_action +#: model_terms:ir.ui.view,arch_db:donation.donation_tax_receipt_option_switch_form +msgid "Change Tax Receipt Option" +msgstr "Cambiar la opción del recibo de impuestos" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__check_total +msgid "Check Amount" +msgstr "Comprobar importe" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.res_config_settings_donation +msgid "Check Total" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_config_settings__group_donation_check_total +msgid "Check Total on Donations" +msgstr "Comprobar el total de las donaciones" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__code +msgid "Code" +msgstr "Código" + +#. module: donation +#: model:ir.model,name:donation.model_donation_campaign +msgid "Code attributed for a Donation Campaign" +msgstr "Código asignado a una campaña de donativos" + +#. module: donation +#: model:ir.model,name:donation.model_res_company +msgid "Companies" +msgstr "Compañías" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__company_id +#: model:ir.model.fields,field_description:donation.field_donation_donation__company_id +#: model:ir.model.fields,field_description:donation.field_donation_line__company_id +#: model:ir.model.fields,field_description:donation.field_donation_report__company_id +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__company_id +#: model_terms:ir.ui.view,arch_db:donation.donation_campaign_search +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Company" +msgstr "Compañía" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__company_currency_id +#: model:ir.model.fields,field_description:donation.field_donation_line__company_currency_id +#: model:ir.model.fields,field_description:donation.field_donation_report__company_currency_id +msgid "Company Currency" +msgstr "Moneda de la Compañía" + +#. module: donation +#: model:ir.model,name:donation.model_res_config_settings +msgid "Config Settings" +msgstr "Configuración de Ajustes" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_config_menu +msgid "Configuration" +msgstr "Configuración" + +#. module: donation +#: model:ir.model,name:donation.model_res_partner +msgid "Contact" +msgstr "Contacto" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__country_id +msgid "Country" +msgstr "País" + +#. module: donation +#: model:ir.ui.menu,name:donation.tax_receipt_annual_create_menu +msgid "Create Annual Receipts" +msgstr "Crear recibos anuales" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "Create Donation from Bank Statement Line" +msgstr "Crear una donación a partir de un extracto bancario" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_donation__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_line__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_validate__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__create_date +#: model:ir.model.fields,field_description:donation.field_donation_donation__create_date +#: model:ir.model.fields,field_description:donation.field_donation_line__create_date +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__create_date +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__create_date +#: model:ir.model.fields,field_description:donation.field_donation_validate__create_date +msgid "Created on" +msgstr "Creado el" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__currency_id +#: model:ir.model.fields,field_description:donation.field_donation_line__currency_id +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Currency" +msgstr "Moneda" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_users__context_donation_campaign_id +msgid "Current Donation Campaign" +msgstr "Campaña actual de donativos" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_users__context_donation_payment_method_line_id +msgid "Current Donation Payment Method" +msgstr "Método de pago de la donación actual" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Date" +msgstr "Fecha" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__display_name +#: model:ir.model.fields,field_description:donation.field_donation_donation__display_name +#: model:ir.model.fields,field_description:donation.field_donation_line__display_name +#: model:ir.model.fields,field_description:donation.field_donation_report__display_name +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__display_name +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__display_name +#: model:ir.model.fields,field_description:donation.field_donation_validate__display_name +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__distribution_analytic_account_ids +msgid "Distribution Analytic Account" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_account_analytic_applicability__business_domain +msgid "Domain" +msgstr "Dominio" + +#. module: donation +#: model:ir.model,name:donation.model_donation_donation +#: model:ir.model.fields,field_description:donation.field_account_payment_method_line__donation +#: model:ir.model.fields,field_description:donation.field_donation_line__donation_id +#: model:ir.model.fields,field_description:donation.field_donation_report__product_donation_type +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__donation_id +#: model:ir.model.fields.selection,name:donation.selection__account_analytic_applicability__business_domain__donation +#: model:ir.module.category,name:donation.module_category_donation +#: model:ir.ui.menu,name:donation.donation_top_menu +#: model_terms:ir.ui.view,arch_db:donation.res_config_settings_donation +msgid "Donation" +msgstr "Donativo" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Donation %(donation)s is linked to a bank statement line, but the Donation " +"by Credit Transfer Account is not set for company '%(company)s'. This should " +"never happen." +msgstr "" +"Donación %(donation)s está vinculada a una línea de extracto bancario, pero " +"la cuenta de donación por transferencia no está configurada para la compañía " +"'%(company)s'. Esto no debería ocurrir nunca." + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Donation '%(donation)s' is linked to the tax receipt %(tax_receipt)s, so you " +"cannot delete it." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Donation '%s' is in Done state, so you cannot delete it." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Donation '%s' is linked to a journal entry, so you cannot delete it." +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__campaign_id +#: model:ir.model.fields,field_description:donation.field_donation_report__campaign_id +msgid "Donation Campaign" +msgstr "Campaña de donativo" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_campaign_action +#: model:ir.ui.menu,name:donation.donation_campaign_menu +msgid "Donation Campaigns" +msgstr "Campañas de donativos" + +#. module: donation +#: model:res.groups,name:donation.group_donation_check_total +msgid "Donation Check Total" +msgstr "Total del cheque de donación" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__donation_date +#: model:ir.model.fields,field_description:donation.field_donation_report__donation_date +msgid "Donation Date" +msgstr "Fecha de la donación" + +#. module: donation +#: model:ir.model,name:donation.model_donation_line +#: model:ir.model.fields,field_description:donation.field_donation_donation__line_ids +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Donation Lines" +msgstr "Líneas de donativos" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__number +msgid "Donation Number" +msgstr "Número de donativo" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_tax_receipt_menu +msgid "Donation Tax Receipts" +msgstr "Recibo de impuestos de donativo" + +#. module: donation +#: model:ir.model,name:donation.model_donation_thanks_template +msgid "Donation Thanks Letter Template" +msgstr "Plantilla de carta de agradecimiento" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_company__donation_account_id +#: model:ir.model.fields,field_description:donation.field_res_config_settings__donation_account_id +msgid "Donation by Credit Transfer Account" +msgstr "Donación por transferencia bancaria" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_payment_method_line.py:0 +msgid "Donation payment method '%s'is not an inbound payment method." +msgstr "" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_action +#: model:ir.actions.act_window,name:donation.partner_donation_action +#: model:ir.model.fields,field_description:donation.field_account_bank_statement_line__donation_ids +#: model:ir.model.fields,field_description:donation.field_res_partner__donation_ids +#: model:ir.model.fields,field_description:donation.field_res_users__donation_ids +#: model:ir.ui.menu,name:donation.donation_config_donation_menu +#: model:ir.ui.menu,name:donation.donation_menu +#: model:ir.ui.menu,name:donation.donation_title_menu +#: model_terms:ir.ui.view,arch_db:donation.view_partner_property_form +msgid "Donations" +msgstr "Donativos" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_report_action +#: model:ir.model,name:donation.model_donation_report +#: model:ir.ui.menu,name:donation.donation_report_menu +msgid "Donations Analysis" +msgstr "Análisis de donativos" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_line_action +msgid "Donations Lines" +msgstr "Líneas de donativos" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__state__done +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Done" +msgstr "Realizado" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__partner_id +#: model:ir.model.fields,field_description:donation.field_donation_report__partner_id +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Donor" +msgstr "Donante" + +#. module: donation +#: model:ir.ui.menu,name:donation.donor +msgid "Donors" +msgstr "Donantes" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__state__draft +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Draft" +msgstr "Borrador" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__tax_receipt_total +msgid "Eligible Tax Receipt Sub-total in Company Currency" +msgstr "Subtotal de ingresos fiscales admisibles en la divisa de la compañía" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_report__tax_receipt_ok +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Eligible for a Tax Receipt" +msgstr "Elegible para un recibo de impuestos" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Error:" +msgstr "Error:" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Failed to get account for donation line with product '%s'." +msgstr "" +"Error al obtener la cuenta para la línea de donación con el producto '%s'." + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_follower_ids +msgid "Followers" +msgstr "Seguidores" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_partner_ids +msgid "Followers (Partners)" +msgstr "Seguidores (socios)" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "Icono de fuente impresionante, por ejemplo fa-tasks" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__tax_receipt_option__each +#: model:ir.model.fields.selection,name:donation.selection__donation_tax_receipt_option_switch__new_tax_receipt_option__each +msgid "For Each Donation" +msgstr "Por cada donación" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Full in-kind donation: no journal entry generated." +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Group By" +msgstr "Agrupar por" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__has_message +msgid "Has Message" +msgstr "Tiene Mensaje" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__id +#: model:ir.model.fields,field_description:donation.field_donation_donation__id +#: model:ir.model.fields,field_description:donation.field_donation_line__id +#: model:ir.model.fields,field_description:donation.field_donation_report__id +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__id +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__id +#: model:ir.model.fields,field_description:donation.field_donation_validate__id +msgid "ID" +msgstr "ID" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_exception_icon +msgid "Icon" +msgstr "Icono" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "icono para indicar una actividad por excepción." + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__message_needaction +msgid "If checked, new messages require your attention." +msgstr "Si está marcada, nuevos mensajes requieren su atención." + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "si está marcada, algunos mensajes tienen un error de entrega." + +#. module: donation +#: model:ir.model.fields,help:donation.field_account_payment_method_line__donation +msgid "If enabled, this payment method will be available on donations" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__image +msgid "Image" +msgstr "Imagen" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__in_kind +#: model:ir.model.fields,field_description:donation.field_donation_report__in_kind +msgid "In Kind" +msgstr "En especie" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "In kind" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__tax_receipt_ok +msgid "Is Eligible for a Tax Receipt" +msgstr "Es elegible para un recibo de impuestos" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_is_follower +msgid "Is Follower" +msgstr "Es Seguidor/a" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__move_id +msgid "Journal Entry" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_donation__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_line__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_validate__write_uid +msgid "Last Updated by" +msgstr "Última actualización por" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__write_date +#: model:ir.model.fields,field_description:donation.field_donation_donation__write_date +#: model:ir.model.fields,field_description:donation.field_donation_line__write_date +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__write_date +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__write_date +#: model:ir.model.fields,field_description:donation.field_donation_validate__write_date +msgid "Last Updated on" +msgstr "Última actualización el" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_from_bank_statement_line_form +msgid "Lines" +msgstr "Líneas" + +#. module: donation +#: model:ir.module.category,description:donation.module_category_donation +msgid "Manage donations" +msgstr "Gestionar donativos" + +#. module: donation +#: model:res.groups,name:donation.group_donation_manager +msgid "Manager" +msgstr "Gestor" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_tree +msgid "Mark all selected donation as Thanks Printed?" +msgstr "" +"¿Marcar todas las donaciones seleccionadas como Impreso de agradecimiento?" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_tree +msgid "Mark as Thanks Printed" +msgstr "Marcar como Impreso de Agradecimiento" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_has_error +msgid "Message Delivery error" +msgstr "Error en entrega de mensaje" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_ids +msgid "Messages" +msgstr "Mensajes" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "Missing Product for Donations via Credit Transfert for company '%s'." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "Missing inbound payment method linked to the bank journal '%s'." +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "fecha límite de mi actividad" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__name +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__name +msgid "Name" +msgstr "Nombre" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_campaign_search +msgid "Name or Code" +msgstr "Nombre o codigo" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "New" +msgstr "Nuevo/a" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "Fecha límite para la siguiente actividad" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_summary +msgid "Next Activity Summary" +msgstr "Resumen de la Siguiente Actividad" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_type_id +msgid "Next Activity Type" +msgstr "Tipo de la Siguiente Actividad" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__tax_receipt_option__none +msgid "None" +msgstr "Ninguno" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__note +msgid "Notes" +msgstr "Notas" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_needaction_counter +msgid "Number of Actions" +msgstr "Número de acciones" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_has_error_counter +msgid "Number of errors" +msgstr "Número de errores" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__message_needaction_counter +msgid "Number of messages requiring action" +msgstr "Número de mensajes que requieren una acción" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "Número de mensajes con error de entrega" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "" +"On bank statement line '%(line)s', the amount (%(amount)s) is negative so it " +"cannot be processed as a donation." +msgstr "" +"En la línea del extracto bancario '%(line)s', el monto (%(amount)s) es " +"negativo, por lo que no se puede procesar como una donación." + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "" +"On bank statement line '%s', the partner is required to process a donation." +msgstr "" +"En la línea del extracto bancario '%s', el socio debe procesar una donación." + +#. module: donation +#. odoo-python +#: code:addons/donation/models/res_company.py:0 +msgid "" +"On the company %(company)s, the Product for Donations via Credit Transfer (%" +"(product)s) is not a donation product !" +msgstr "" +"¡En la compañía %(company)s, el Producto para donaciones mediante " +"transferencia de crédito (%(product)s) no es un producto de donación!" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Other Information" +msgstr "Otra información" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__commercial_partner_id +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Parent Donor" +msgstr "Donante Parental" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Partner" +msgstr "Empresa" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_report__country_id +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Partner Country" +msgstr "País de la empresa" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__payment_method_line_id +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Payment Method" +msgstr "Método de pago" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_report__payment_method_line_id +msgid "Payment Method Line" +msgstr "" + +#. module: donation +#: model:ir.actions.act_window,name:donation.account_payment_method_line_donation_action +#: model:ir.model,name:donation.model_account_payment_method_line +#: model:ir.ui.menu,name:donation.account_payment_method_line_donation_menu +msgid "Payment Methods" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__payment_ref +msgid "Payment Reference" +msgstr "Referencia de pago" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Payment account is not set on payment method '%s'." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Payment method is not set on donation %s (only fully in-kind donations don't " +"require a payment method)." +msgstr "" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_tax_receipt_print_menu +msgid "Print Receipts" +msgstr "Imprimir recibos" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Print Thanks Letter" +msgstr "Imprimir carta de agradecimiento" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__product_id +#: model:ir.model.fields,field_description:donation.field_donation_report__product_id +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Product" +msgstr "Producto" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Product Category" +msgstr "Categoría de producto" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__product_donation_type +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Product Type donation" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_company__donation_credit_transfer_product_id +#: model:ir.model.fields,field_description:donation.field_res_config_settings__donation_credit_transfer_product_id +msgid "Product for Donations via Credit Transfer" +msgstr "Producto para donaciones vía transferencia de crédito" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_product_action +#: model:ir.ui.menu,name:donation.donation_products +msgid "Products" +msgstr "Productos" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__quantity +msgid "Quantity" +msgstr "Cantidad" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt__donation_ids +#: model_terms:ir.ui.view,arch_db:donation.donation_tax_receipt_form +msgid "Related Donations" +msgstr "Donaciones relacionadas" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_report_title_menu +msgid "Reporting" +msgstr "Informe" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_user_id +msgid "Responsible User" +msgstr "Usuario Responsable" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Save Default Values" +msgstr "Guardar valores por defecto" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_from_bank_statement_line_form +msgid "Save as Draft" +msgstr "Guardar como borrador" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__sequence +#: model:ir.model.fields,field_description:donation.field_donation_line__sequence +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__sequence +msgid "Sequence" +msgstr "Secuencia" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_settings_action +#: model:ir.ui.menu,name:donation.donation_settings_menu +msgid "Settings" +msgstr "Ajustes" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__bank_statement_line_id +msgid "Source Bank Statement Line" +msgstr "Fuente de la línea del extracto bancario" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_line__tax_receipt_ok +msgid "Specify if the product is eligible for a tax receipt" +msgstr "Especifica si el producto es elegible para un recibo de impuestos" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__start_date +msgid "Start Date" +msgstr "Fecha de inicio" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__state +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "State" +msgstr "Estado" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__activity_state +msgid "" +"Status based on activities\n" +"Overdue: Due date is already passed\n" +"Today: Activity date is today\n" +"Planned: Future activities." +msgstr "" +"Estado en base a las actividades\n" +"Atrasada: La fecha de vencimiento ya ha pasado\n" +"Hoy: La fecha de la actividad es hoy\n" +"Planificada: Actividades futuras." + +#. module: donation +#: model:ir.model,name:donation.model_donation_tax_receipt_option_switch +msgid "Switch Donation Tax Receipt Option" +msgstr "Cambiar la opción del recibo de impuestos de donaciones" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__tax_receipt_id +#: model_terms:ir.ui.view,arch_db:donation.donation_line_tree +msgid "Tax Receipt" +msgstr "Recibo de impuestos" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__tax_receipt_total +#: model:ir.model.fields,field_description:donation.field_donation_line__tax_receipt_amount +#: model:ir.model.fields,field_description:donation.field_donation_report__tax_receipt_amount +msgid "Tax Receipt Eligible Amount" +msgstr "Importe elegible para recibo de impuestos" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__tax_receipt_option +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__new_tax_receipt_option +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Tax Receipt Option" +msgstr "Opción de recibo de impuestos" + +#. module: donation +#: model:ir.model,name:donation.model_donation_tax_receipt +msgid "Tax Receipt for Donations" +msgstr "Recibo de impuestos para donaciones" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_tax_title_menu +msgid "Tax Receipts" +msgstr "Recibo de donaciones" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__text +msgid "Text" +msgstr "Texto" + +#. module: donation +#: model:ir.actions.report,name:donation.report_thanks +msgid "Thanks Letter" +msgstr "Carta de agradecimiento" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_thanks_template_action +#: model:ir.ui.menu,name:donation.donation_thanks_template_menu +msgid "Thanks Letter Templates" +msgstr "Plantillas de cartas de agradecimiento" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__thanks_printed +#: model:ir.model.fields,field_description:donation.field_donation_report__thanks_printed +msgid "Thanks Printed" +msgstr "Impreso de agradecimiento" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__thanks_template_id +#: model:ir.model.fields,field_description:donation.field_donation_report__thanks_template_id +msgid "Thanks Template" +msgstr "Plantilla de agradecimiento" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Thanks to Print" +msgstr "Agradecimientos a Imprimir" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"The Donation by Credit Transfer Account '%(account)s' for company '%" +"(company)s' is not reconciliable. This should never happen." +msgstr "" +"La cuenta de donativos por transferencia '%(account)s' para la compañía '%" +"(company)s' no es conciliable. Esto no debería ocurrir nunca." + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "The Donation by Credit Transfer Accountis not set for company '%s'." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"The amount of donation %(donation)s (%(check_total)s) is different from the " +"sum of the donation lines (%(amount_total)s)." +msgstr "" +"La cantidad de donación %(donation)s (%(check_total)s) es diferente de la " +"suma de las líneas de donación (%(amount_total)s)." + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"The date of donation %s should be today or in the past, not in the future!" +msgstr "" +"La fecha de la donación %s debe ser hoy o en el pasado, ¡no en el futuro!" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"The payment method '%(pay_mode)s' selected on donation %(donation)s is not a " +"donation payment method." +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__thanks_printed +msgid "" +"This field automatically becomes active when the thanks letter has been " +"printed." +msgstr "" +"Este campo se activa automáticamente cuando se imprime la carta de " +"agradecimiento." + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_validate_form +msgid "This wizard will validate all the draft donations selected." +msgstr "El asistente validará todas las donaciones en borrador seleccionadas." + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +#: model_terms:ir.ui.view,arch_db:donation.donation_from_bank_statement_line_form +msgid "Total" +msgstr "Total" + +#. module: donation +#: model:ir.model.fields,help:donation.field_res_company__donation_account_id +#: model:ir.model.fields,help:donation.field_res_config_settings__donation_account_id +msgid "Transfer account for donations received by credit transfer. " +msgstr "" +"Cuenta de transferencia para las donaciones recibidas por transferencia. " + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "Tipo (o clase) de actividad excepcional registrada." + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__unit_price +msgid "Unit Price" +msgstr "Precio unitario" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_tax_receipt_option_switch_form +msgid "Update" +msgstr "Actualizar" + +#. module: donation +#: model:ir.model,name:donation.model_res_users +#: model:res.groups,name:donation.group_donation_user +msgid "User" +msgstr "Usuario" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +#: model_terms:ir.ui.view,arch_db:donation.donation_from_bank_statement_line_form +#: model_terms:ir.ui.view,arch_db:donation.donation_tree +#: model_terms:ir.ui.view,arch_db:donation.donation_validate_form +msgid "Validate" +msgstr "Validar" + +#. module: donation +#: model:ir.model,name:donation.model_donation_validate +#: model_terms:ir.ui.view,arch_db:donation.donation_validate_form +msgid "Validate Donations" +msgstr "Validar donativos" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_validate_action +msgid "Validate Draft Donations" +msgstr "Validar donativos en borrador" + +#. module: donation +#: model:res.groups,name:donation.group_donation_viewer +msgid "Viewer" +msgstr "Visualizador" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__website_message_ids +msgid "Website Messages" +msgstr "Mensajes de la página web" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__website_message_ids +msgid "Website communication history" +msgstr "historial de la comunicación en la página web" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"You cannot cancel this donation because it is linked to the tax receipt %s. " +"You should first delete this tax receipt (but it may not be legally allowed)." +msgstr "" +"No puede cancelar la donación por que está unida al recibo de impuestos %s. " +"Primero debe eliminar el recibo de impuestos (aunque puede que no sea legal)." + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "You cannot change the Tax Receipt Option when it is Annual." +msgstr "No puede cambiar la opción del recibo de impuestos cuando es Anual." + +#, python-format +#~ msgid "A cancelled donation should not be linked to a tax receipt" +#~ msgstr "Una donación cancelada no se puede unir a un recibo de impuestos" + +#, python-format +#~ msgid "A cancelled donation should not be linked to an account move" +#~ msgstr "Una donación cancelada no se debe unir a un asiento contable" + +#~ msgid "" +#~ "A storable product is a product for which you manage stock. The Inventory " +#~ "app has to be installed.\n" +#~ "A consumable product is a product for which stock is not managed.\n" +#~ "A service is a non-material product you provide." +#~ msgstr "" +#~ "Un producto almacenable es un producto para el que se gestionan " +#~ "existencias. La aplicación Inventario debe estar instalada.\n" +#~ "Un producto consumible es un producto para el que no se gestionan " +#~ "existencias.\n" +#~ "Un servicio es un producto no material que usted proporciona." + +#~ msgid "Account Move" +#~ msgstr "Asiento contable" + +#~ msgid "Analytic" +#~ msgstr "Analítica" + +#~ msgid "Analytic Distribution Search" +#~ msgstr "Búsqueda de Distribución Analítica" + +#~ msgid "Current Donation Payment Mode" +#~ msgstr "Modalidad actual de pago de donativos" + +#, python-format +#~ msgid "Donation payment mode '%s' is not an inbound payment mode." +#~ msgstr "El modo de pago de donaciones '%s' no es un modo de pago entrante." + +#, python-format +#~ msgid "" +#~ "Donation payment mode '%s' must be configured with 'Link to Bank Account' " +#~ "set to 'Fixed'." +#~ msgstr "" +#~ "El modo de pago de donaciones \"%s\" debe estar configurado con " +#~ "\"Vincular a cuenta bancaria\" en \"Fijo\"." + +#, python-format +#~ msgid "Full in-kind donation: no account move generated" +#~ msgstr "Donación completamente en especie: no se genera asiento contable" + +#~ msgid "If enabled, this payment mode will be available on donations" +#~ msgstr "Si se activa, este modo de pago estará disponible en las donaciones" + +#~ msgid "Last Modified on" +#~ msgstr "Última modificación el" + +#~ msgid "Main Attachment" +#~ msgstr "Archivo adjunto principal" + +#, python-format +#~ msgid "Missing Outstanding Receipts Account on company '%s'." +#~ msgstr "Falta la cuenta de cobros pendientes en la compañía '%s'." + +#, python-format +#~ msgid "Missing Product for Donations via Credit Transfer for company '%s'." +#~ msgstr "" +#~ "Falta producto para donaciones por transferencia de la compañía '%s'." + +#, python-format +#~ msgid "" +#~ "Missing inbound payment mode linked to the bank journal '%s' configured " +#~ "with 'Link to Bank Account' set to 'Fixed'." +#~ msgstr "" +#~ "Falta el modo de pago entrante vinculado al diario bancario '%s' " +#~ "configurado con 'Vincular a cuenta bancaria' en 'Fijo'." + +#~ msgid "Payment Mode" +#~ msgstr "Modo de pago" + +#, python-format +#~ msgid "" +#~ "Payment Mode is not set on donation %s (only fully in-kind donations " +#~ "don't require a payment mode)." +#~ msgstr "" +#~ "El modo de pago no está establecido en la donación %s (sólo las " +#~ "donaciones totalmente en especie no requieren un modo de pago)." + +#~ msgid "Payment Modes" +#~ msgstr "Métodos de pago" + +#~ msgid "Product Type" +#~ msgstr "Tipo de Producto" + +#, python-format +#~ msgid "The Donation by Credit Transfer Account is not set for company '%s'." +#~ msgstr "" +#~ "La cuenta de donación por transferencia no está configurada para la " +#~ "compañía \"%s\"." + +#, python-format +#~ msgid "" +#~ "The donation '%(donation)s' is linked to the tax receipt %(tax_receipt)s, " +#~ "so you cannot delete it." +#~ msgstr "" +#~ "La donación '%(donation)s' está vinculada al recibo de impuestos " +#~ "%(tax_receipt)s, por lo que no puedes eliminarlo." + +#, python-format +#~ msgid "The donation '%s' is in Done state, so you cannot delete it." +#~ msgstr "La donación '%s' está en el estado Realizado, no puede eliminarla." + +#, python-format +#~ msgid "" +#~ "The donation '%s' is linked to an account move, so you cannot delete it." +#~ msgstr "" +#~ "La donación '%s' está unida a un asiento contable, así que no puede ser " +#~ "eliminada." + +#, python-format +#~ msgid "" +#~ "The payment mode '%(pay_mode)s' selected on donation %(donation)s is not " +#~ "a donation payment mode." +#~ msgstr "" +#~ "El modo de pago '%(pay_mode)s' seleccionado en la donación %(donation)s " +#~ "no es un modo de pago de donación." + +#~ msgid "SMS Delivery error" +#~ msgstr "Error en la entrega de SMS" + +#~ msgid "Number of messages which requires an action" +#~ msgstr "Números de mensajes que requieren una acción" + +#~ msgid "Analytic Account" +#~ msgstr "Cuenta analítica" + +#~ msgid "Donation Line" +#~ msgstr "Línea de donativos" + +#~ msgid "Journal" +#~ msgstr "Diario" + +#~ msgid "Search Donations" +#~ msgstr "Buscar Donativos" + +#, python-format +#~ msgid "" +#~ "The donation '%s' is linked to the tax receipt %s, so you cannot delete " +#~ "it." +#~ msgstr "" +#~ "La donación '%s' está unida al recibo de impuestos %s, así que no puede " +#~ "ser eliminada." + +#~ msgid "True" +#~ msgstr "Verdadero" + +#~ msgid "Users" +#~ msgstr "Usuarios" + +#~ msgid "Cancelled Donation of %s" +#~ msgstr "Donación cancelada de %s" + +#~ msgid "" +#~ "Cannot validate the donation of %s because it doesn't have any lines!" +#~ msgstr "No se puede validar la donación de %s porque no tiene líneas!" + +#~ msgid "Cannot validate the donation of %s because it is not in draft state." +#~ msgstr "" +#~ "No se puede validar la donación de %s porque no está en estado borrador." + +#~ msgid "Cannot validate the donation of %s because the total amount is 0 !" +#~ msgstr "No se puede validar la donación %s por que el importe total es 0 !" + +#~ msgid "Donation Payment Method" +#~ msgstr "Método de pago del donativo" + +#~ msgid "Donation of %s" +#~ msgstr "Donativo de %s" + +#~ msgid "Draft Donation of %s" +#~ msgstr "Donación borrador de %s" + +#~ msgid "Missing Default Debit Account on journal '%s'." +#~ msgstr "Falta la cuenta de débito por defecto del diario '%s'." + +#~ msgid "Reports" +#~ msgstr "Informes" + +#~ msgid "" +#~ "The amount of the donation of %s (%s) is different from the sum of the " +#~ "donation lines (%s)." +#~ msgstr "" +#~ "El importe de la donación de %s (%s) es diferente a la suma de las lineas " +#~ "de donaciones (%s)." + +#~ msgid "" +#~ "The date of the donation of %s should be today or in the past, not in the " +#~ "future!" +#~ msgstr "" +#~ "La fecha de la donación de %s debe ser hoy o en el pasado, no en el " +#~ "futuro!" + +#~ msgid "" +#~ "The journal '%s' has the option 'Donation Payment Method', so it's type " +#~ "should be 'Cash' or 'Bank and Checks'." +#~ msgstr "" +#~ "El diario '%s' tiene la opción 'Método de Pago de Donativos', así que el " +#~ "tipo debe ser 'Efectivo' o 'Banco'." diff --git a/donation/i18n/fr.po b/donation/i18n/fr.po new file mode 100644 index 000000000..2c3d60e46 --- /dev/null +++ b/donation/i18n/fr.po @@ -0,0 +1,1303 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * donation +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 8.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-05-29 23:07+0000\n" +"PO-Revision-Date: 2015-05-29 23:07+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_partner__donation_count +#: model:ir.model.fields,field_description:donation.field_res_users__donation_count +msgid "# of Donations" +msgstr "Nombre de dons" + +#. module: donation +#: model:ir.actions.report,print_report_name:donation.report_thanks +msgid "" +"'donation_thanks-%s%s' % (object.number, object.state == 'draft' and '-" +"draft' or '')" +msgstr "" + +#. module: donation +#: model:ir.model.constraint,message:donation.constraint_donation_campaign_code_company_uniq +msgid "A campaign with the same code already exists!" +msgstr "" + +#. module: donation +#: model:ir.model.constraint,message:donation.constraint_donation_donation_bank_statement_line_uniq +msgid "A donation already exists for this bank statement line." +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_needaction +msgid "Action Needed" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__active +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__active +msgid "Active" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_ids +msgid "Activities" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_state +msgid "Activity State" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_type_icon +msgid "Activity Type Icon" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__amount +#: model:ir.model.fields,field_description:donation.field_donation_report__amount_company_currency +msgid "Amount" +msgstr "Montant" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__amount_total +msgid "Amount Total" +msgstr "Montant total" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__amount_total_company_currency +msgid "Amount Total in Company Currency" +msgstr "Montant total dans la devise de la société" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__amount_company_currency +msgid "Amount in Company Currency" +msgstr "Montant dans la devise de la société" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__analytic_distribution +msgid "Analytic Distribution" +msgstr "" + +#. module: donation +#: model:ir.model,name:donation.model_account_analytic_applicability +msgid "Analytic Plan's Applicabilities" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__analytic_precision +msgid "Analytic Precision" +msgstr "" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__tax_receipt_option__annual +#: model:ir.model.fields.selection,name:donation.selection__donation_tax_receipt_option_switch__new_tax_receipt_option__annual +msgid "Annual Tax Receipt" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_campaign_form +#: model_terms:ir.ui.view,arch_db:donation.donation_campaign_search +#: model_terms:ir.ui.view,arch_db:donation.donation_thanks_template_form +#: model_terms:ir.ui.view,arch_db:donation.donation_thanks_template_search +msgid "Archived" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_attachment_count +msgid "Attachment Count" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Back to Draft" +msgstr "Retour à l'état brouillon" + +#. module: donation +#: model:ir.model,name:donation.model_account_bank_statement_line +msgid "Bank Statement Line" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Campaign" +msgstr "Campagne de don" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +#: model_terms:ir.ui.view,arch_db:donation.donation_tax_receipt_option_switch_form +#: model_terms:ir.ui.view,arch_db:donation.donation_validate_form +msgid "Cancel" +msgstr "Annuler" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__state__cancel +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Cancelled" +msgstr "Annulé" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Cancelled donation '%s' is linked to a journal entry. This should never " +"happen." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Cancelled donation '%s' is linked to a tax receipt. This should never happen." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Cannot validate donation %s because it doesn't have any lines!" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Cannot validate donation %s because it is not in draft state." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Cannot validate donation %s because the total amount is 0!" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_report__product_categ_id +msgid "Category of Product" +msgstr "Catégorie de produit" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Change" +msgstr "" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_tax_receipt_option_switch_action +#: model_terms:ir.ui.view,arch_db:donation.donation_tax_receipt_option_switch_form +msgid "Change Tax Receipt Option" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__check_total +msgid "Check Amount" +msgstr "Montant" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.res_config_settings_donation +msgid "Check Total" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_config_settings__group_donation_check_total +msgid "Check Total on Donations" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__code +msgid "Code" +msgstr "Code" + +#. module: donation +#: model:ir.model,name:donation.model_donation_campaign +msgid "Code attributed for a Donation Campaign" +msgstr "Code attribué pour une campagne de don" + +#. module: donation +#: model:ir.model,name:donation.model_res_company +msgid "Companies" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__company_id +#: model:ir.model.fields,field_description:donation.field_donation_donation__company_id +#: model:ir.model.fields,field_description:donation.field_donation_line__company_id +#: model:ir.model.fields,field_description:donation.field_donation_report__company_id +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__company_id +#: model_terms:ir.ui.view,arch_db:donation.donation_campaign_search +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Company" +msgstr "Société" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__company_currency_id +#: model:ir.model.fields,field_description:donation.field_donation_line__company_currency_id +#: model:ir.model.fields,field_description:donation.field_donation_report__company_currency_id +msgid "Company Currency" +msgstr "Devise de la société" + +#. module: donation +#: model:ir.model,name:donation.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_config_menu +msgid "Configuration" +msgstr "Configuration" + +#. module: donation +#: model:ir.model,name:donation.model_res_partner +msgid "Contact" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__country_id +msgid "Country" +msgstr "Pays" + +#. module: donation +#: model:ir.ui.menu,name:donation.tax_receipt_annual_create_menu +msgid "Create Annual Receipts" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "Create Donation from Bank Statement Line" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_donation__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_line__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_validate__create_uid +msgid "Created by" +msgstr "Créé par" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__create_date +#: model:ir.model.fields,field_description:donation.field_donation_donation__create_date +#: model:ir.model.fields,field_description:donation.field_donation_line__create_date +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__create_date +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__create_date +#: model:ir.model.fields,field_description:donation.field_donation_validate__create_date +msgid "Created on" +msgstr "Créé le" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__currency_id +#: model:ir.model.fields,field_description:donation.field_donation_line__currency_id +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Currency" +msgstr "Devise" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_users__context_donation_campaign_id +msgid "Current Donation Campaign" +msgstr "Campagne de don courante" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_users__context_donation_payment_method_line_id +msgid "Current Donation Payment Method" +msgstr "Méthode de paiement actuelle" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Date" +msgstr "Date" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__display_name +#: model:ir.model.fields,field_description:donation.field_donation_donation__display_name +#: model:ir.model.fields,field_description:donation.field_donation_line__display_name +#: model:ir.model.fields,field_description:donation.field_donation_report__display_name +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__display_name +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__display_name +#: model:ir.model.fields,field_description:donation.field_donation_validate__display_name +msgid "Display Name" +msgstr "Nom affiché" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__distribution_analytic_account_ids +msgid "Distribution Analytic Account" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_account_analytic_applicability__business_domain +msgid "Domain" +msgstr "" + +#. module: donation +#: model:ir.model,name:donation.model_donation_donation +#: model:ir.model.fields,field_description:donation.field_account_payment_method_line__donation +#: model:ir.model.fields,field_description:donation.field_donation_line__donation_id +#: model:ir.model.fields,field_description:donation.field_donation_report__product_donation_type +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__donation_id +#: model:ir.model.fields.selection,name:donation.selection__account_analytic_applicability__business_domain__donation +#: model:ir.module.category,name:donation.module_category_donation +#: model:ir.ui.menu,name:donation.donation_top_menu +#: model_terms:ir.ui.view,arch_db:donation.res_config_settings_donation +msgid "Donation" +msgstr "Don" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Donation %(donation)s is linked to a bank statement line, but the Donation " +"by Credit Transfer Account is not set for company '%(company)s'. This should " +"never happen." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Donation '%(donation)s' is linked to the tax receipt %(tax_receipt)s, so you " +"cannot delete it." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Donation '%s' is in Done state, so you cannot delete it." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Donation '%s' is linked to a journal entry, so you cannot delete it." +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__campaign_id +#: model:ir.model.fields,field_description:donation.field_donation_report__campaign_id +msgid "Donation Campaign" +msgstr "Campagne de don" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_campaign_action +#: model:ir.ui.menu,name:donation.donation_campaign_menu +msgid "Donation Campaigns" +msgstr "Campagnes de don" + +#. module: donation +#: model:res.groups,name:donation.group_donation_check_total +msgid "Donation Check Total" +msgstr "Don : saisie du total" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__donation_date +#: model:ir.model.fields,field_description:donation.field_donation_report__donation_date +msgid "Donation Date" +msgstr "Date du don" + +#. module: donation +#: model:ir.model,name:donation.model_donation_line +#: model:ir.model.fields,field_description:donation.field_donation_donation__line_ids +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Donation Lines" +msgstr "Lignes de don" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__number +msgid "Donation Number" +msgstr "Numéro de don" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_tax_receipt_menu +msgid "Donation Tax Receipts" +msgstr "Reçus fiscaux" + +#. module: donation +#: model:ir.model,name:donation.model_donation_thanks_template +msgid "Donation Thanks Letter Template" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_company__donation_account_id +#: model:ir.model.fields,field_description:donation.field_res_config_settings__donation_account_id +msgid "Donation by Credit Transfer Account" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_payment_method_line.py:0 +msgid "Donation payment method '%s'is not an inbound payment method." +msgstr "" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_action +#: model:ir.actions.act_window,name:donation.partner_donation_action +#: model:ir.model.fields,field_description:donation.field_account_bank_statement_line__donation_ids +#: model:ir.model.fields,field_description:donation.field_res_partner__donation_ids +#: model:ir.model.fields,field_description:donation.field_res_users__donation_ids +#: model:ir.ui.menu,name:donation.donation_config_donation_menu +#: model:ir.ui.menu,name:donation.donation_menu +#: model:ir.ui.menu,name:donation.donation_title_menu +#: model_terms:ir.ui.view,arch_db:donation.view_partner_property_form +msgid "Donations" +msgstr "Dons" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_report_action +#: model:ir.model,name:donation.model_donation_report +#: model:ir.ui.menu,name:donation.donation_report_menu +msgid "Donations Analysis" +msgstr "Analyse des dons" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_line_action +msgid "Donations Lines" +msgstr "Lignes de dons" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__state__done +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Done" +msgstr "Validé" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__partner_id +#: model:ir.model.fields,field_description:donation.field_donation_report__partner_id +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Donor" +msgstr "Donateur" + +#. module: donation +#: model:ir.ui.menu,name:donation.donor +msgid "Donors" +msgstr "Donateurs" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__state__draft +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Draft" +msgstr "Brouillon" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__tax_receipt_total +msgid "Eligible Tax Receipt Sub-total in Company Currency" +msgstr "Montant éligible au reçu fiscal dans la monnaie de la société" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_report__tax_receipt_ok +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Eligible for a Tax Receipt" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Error:" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Failed to get account for donation line with product '%s'." +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_follower_ids +msgid "Followers" +msgstr "Followers" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__tax_receipt_option__each +#: model:ir.model.fields.selection,name:donation.selection__donation_tax_receipt_option_switch__new_tax_receipt_option__each +msgid "For Each Donation" +msgstr "Pour chaque don" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Full in-kind donation: no journal entry generated." +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Group By" +msgstr "Grouper par" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__has_message +msgid "Has Message" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__id +#: model:ir.model.fields,field_description:donation.field_donation_donation__id +#: model:ir.model.fields,field_description:donation.field_donation_line__id +#: model:ir.model.fields,field_description:donation.field_donation_report__id +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__id +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__id +#: model:ir.model.fields,field_description:donation.field_donation_validate__id +msgid "ID" +msgstr "ID" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_exception_icon +msgid "Icon" +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__message_needaction +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_account_payment_method_line__donation +msgid "If enabled, this payment method will be available on donations" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__image +msgid "Image" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__in_kind +#: model:ir.model.fields,field_description:donation.field_donation_report__in_kind +msgid "In Kind" +msgstr "En nature" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "In kind" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__tax_receipt_ok +msgid "Is Eligible for a Tax Receipt" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__move_id +msgid "Journal Entry" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_donation__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_line__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_validate__write_uid +msgid "Last Updated by" +msgstr "Dernière mise à jour par" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__write_date +#: model:ir.model.fields,field_description:donation.field_donation_donation__write_date +#: model:ir.model.fields,field_description:donation.field_donation_line__write_date +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__write_date +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__write_date +#: model:ir.model.fields,field_description:donation.field_donation_validate__write_date +msgid "Last Updated on" +msgstr "Dernière mise à jour le" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_from_bank_statement_line_form +msgid "Lines" +msgstr "" + +#. module: donation +#: model:ir.module.category,description:donation.module_category_donation +msgid "Manage donations" +msgstr "Gérer les dons" + +#. module: donation +#: model:res.groups,name:donation.group_donation_manager +msgid "Manager" +msgstr "Responsable" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_tree +msgid "Mark all selected donation as Thanks Printed?" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_tree +msgid "Mark as Thanks Printed" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_has_error +msgid "Message Delivery error" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_ids +msgid "Messages" +msgstr "Messages" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "Missing Product for Donations via Credit Transfert for company '%s'." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "Missing inbound payment method linked to the bank journal '%s'." +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__name +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__name +msgid "Name" +msgstr "Nom" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_campaign_search +msgid "Name or Code" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "New" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_summary +msgid "Next Activity Summary" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_type_id +msgid "Next Activity Type" +msgstr "" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__tax_receipt_option__none +msgid "None" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__note +msgid "Notes" +msgstr "Notes" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_has_error_counter +msgid "Number of errors" +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__message_needaction_counter +msgid "Number of messages requiring action" +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "" +"On bank statement line '%(line)s', the amount (%(amount)s) is negative so it " +"cannot be processed as a donation." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "" +"On bank statement line '%s', the partner is required to process a donation." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/res_company.py:0 +msgid "" +"On the company %(company)s, the Product for Donations via Credit Transfer (%" +"(product)s) is not a donation product !" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Other Information" +msgstr "Autres informations" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__commercial_partner_id +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Parent Donor" +msgstr "Donateur parent" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Partner" +msgstr "Partenaire" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_report__country_id +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Partner Country" +msgstr "Pays du partenaire" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__payment_method_line_id +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Payment Method" +msgstr "Méthode de paiement" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_report__payment_method_line_id +msgid "Payment Method Line" +msgstr "" + +#. module: donation +#: model:ir.actions.act_window,name:donation.account_payment_method_line_donation_action +#: model:ir.model,name:donation.model_account_payment_method_line +#: model:ir.ui.menu,name:donation.account_payment_method_line_donation_menu +msgid "Payment Methods" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__payment_ref +msgid "Payment Reference" +msgstr "Référence du paiement" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Payment account is not set on payment method '%s'." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Payment method is not set on donation %s (only fully in-kind donations don't " +"require a payment method)." +msgstr "" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_tax_receipt_print_menu +msgid "Print Receipts" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Print Thanks Letter" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__product_id +#: model:ir.model.fields,field_description:donation.field_donation_report__product_id +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Product" +msgstr "Article" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Product Category" +msgstr "Catégorie d'article" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__product_donation_type +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Product Type donation" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_company__donation_credit_transfer_product_id +#: model:ir.model.fields,field_description:donation.field_res_config_settings__donation_credit_transfer_product_id +msgid "Product for Donations via Credit Transfer" +msgstr "" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_product_action +#: model:ir.ui.menu,name:donation.donation_products +msgid "Products" +msgstr "Articles" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__quantity +msgid "Quantity" +msgstr "Quantité" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt__donation_ids +#: model_terms:ir.ui.view,arch_db:donation.donation_tax_receipt_form +msgid "Related Donations" +msgstr "Dons associés" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_report_title_menu +msgid "Reporting" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_user_id +msgid "Responsible User" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Save Default Values" +msgstr "Enregistrer les valeurs par défaut" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_from_bank_statement_line_form +msgid "Save as Draft" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__sequence +#: model:ir.model.fields,field_description:donation.field_donation_line__sequence +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__sequence +msgid "Sequence" +msgstr "Séquence" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_settings_action +#: model:ir.ui.menu,name:donation.donation_settings_menu +msgid "Settings" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__bank_statement_line_id +msgid "Source Bank Statement Line" +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_line__tax_receipt_ok +msgid "Specify if the product is eligible for a tax receipt" +msgstr "Spécifie si le produit est éligible au reçu fiscal." + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__start_date +msgid "Start Date" +msgstr "Date de départ" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__state +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "State" +msgstr "État" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__activity_state +msgid "" +"Status based on activities\n" +"Overdue: Due date is already passed\n" +"Today: Activity date is today\n" +"Planned: Future activities." +msgstr "" + +#. module: donation +#: model:ir.model,name:donation.model_donation_tax_receipt_option_switch +msgid "Switch Donation Tax Receipt Option" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__tax_receipt_id +#: model_terms:ir.ui.view,arch_db:donation.donation_line_tree +msgid "Tax Receipt" +msgstr "Reçu fiscal" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__tax_receipt_total +#: model:ir.model.fields,field_description:donation.field_donation_line__tax_receipt_amount +#: model:ir.model.fields,field_description:donation.field_donation_report__tax_receipt_amount +msgid "Tax Receipt Eligible Amount" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__tax_receipt_option +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__new_tax_receipt_option +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Tax Receipt Option" +msgstr "" + +#. module: donation +#: model:ir.model,name:donation.model_donation_tax_receipt +msgid "Tax Receipt for Donations" +msgstr "" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_tax_title_menu +msgid "Tax Receipts" +msgstr "Reçus fiscaux" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__text +msgid "Text" +msgstr "" + +#. module: donation +#: model:ir.actions.report,name:donation.report_thanks +msgid "Thanks Letter" +msgstr "" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_thanks_template_action +#: model:ir.ui.menu,name:donation.donation_thanks_template_menu +msgid "Thanks Letter Templates" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__thanks_printed +#: model:ir.model.fields,field_description:donation.field_donation_report__thanks_printed +msgid "Thanks Printed" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__thanks_template_id +#: model:ir.model.fields,field_description:donation.field_donation_report__thanks_template_id +msgid "Thanks Template" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Thanks to Print" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"The Donation by Credit Transfer Account '%(account)s' for company '%" +"(company)s' is not reconciliable. This should never happen." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "The Donation by Credit Transfer Accountis not set for company '%s'." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"The amount of donation %(donation)s (%(check_total)s) is different from the " +"sum of the donation lines (%(amount_total)s)." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"The date of donation %s should be today or in the past, not in the future!" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"The payment method '%(pay_mode)s' selected on donation %(donation)s is not a " +"donation payment method." +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__thanks_printed +msgid "" +"This field automatically becomes active when the thanks letter has been " +"printed." +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_validate_form +msgid "This wizard will validate all the draft donations selected." +msgstr "Cet assistant validera tous les dons brouillons sélectionnés." + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +#: model_terms:ir.ui.view,arch_db:donation.donation_from_bank_statement_line_form +msgid "Total" +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_res_company__donation_account_id +#: model:ir.model.fields,help:donation.field_res_config_settings__donation_account_id +msgid "Transfer account for donations received by credit transfer. " +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__unit_price +msgid "Unit Price" +msgstr "Prix unitaire" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_tax_receipt_option_switch_form +msgid "Update" +msgstr "" + +#. module: donation +#: model:ir.model,name:donation.model_res_users +#: model:res.groups,name:donation.group_donation_user +msgid "User" +msgstr "Utilisateur" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +#: model_terms:ir.ui.view,arch_db:donation.donation_from_bank_statement_line_form +#: model_terms:ir.ui.view,arch_db:donation.donation_tree +#: model_terms:ir.ui.view,arch_db:donation.donation_validate_form +msgid "Validate" +msgstr "Valider" + +#. module: donation +#: model:ir.model,name:donation.model_donation_validate +#: model_terms:ir.ui.view,arch_db:donation.donation_validate_form +msgid "Validate Donations" +msgstr "Valider les dons" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_validate_action +msgid "Validate Draft Donations" +msgstr "Valider les dons brouillons" + +#. module: donation +#: model:res.groups,name:donation.group_donation_viewer +msgid "Viewer" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__website_message_ids +msgid "Website Messages" +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__website_message_ids +msgid "Website communication history" +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"You cannot cancel this donation because it is linked to the tax receipt %s. " +"You should first delete this tax receipt (but it may not be legally allowed)." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "You cannot change the Tax Receipt Option when it is Annual." +msgstr "" + +#, python-format +#~ msgid "A cancelled donation should not be linked to a tax receipt" +#~ msgstr "Un don annulé ne devrait pas être lié à un reçu fiscal" + +#, python-format +#~ msgid "A cancelled donation should not be linked to an account move" +#~ msgstr "Un don annulé ne devrait pas être lié à une écriture comptable" + +#~ msgid "Account Move" +#~ msgstr "Ecriture comptable" + +#, python-format +#~ msgid "Full in-kind donation: no account move generated" +#~ msgstr "Don en nature: aucune écriture comptable générée" + +#~ msgid "Last Modified on" +#~ msgstr "Dernière mise à jour le" + +#, python-format +#~ msgid "The donation '%s' is in Done state, so you cannot delete it." +#~ msgstr "" +#~ "Le don '%s' est à l'état validé, donc vous ne pouvez pas le supprimer." + +#, python-format +#~ msgid "" +#~ "The donation '%s' is linked to an account move, so you cannot delete it." +#~ msgstr "" +#~ "Le don '%s' est lié à une écriture comptable, donc vous ne pouvez pas le " +#~ "supprimer." + +#~ msgid "Analytic Account" +#~ msgstr "Compte analytique" + +#~ msgid "Donation Line" +#~ msgstr "Ligne de don" + +#~ msgid "Journal" +#~ msgstr "Journal" + +#~ msgid "Search Donations" +#~ msgstr "Recherche des dons" + +#, python-format +#~ msgid "" +#~ "The donation '%s' is linked to the tax receipt %s, so you cannot delete " +#~ "it." +#~ msgstr "" +#~ "Le don '%s' est lié au reçu fiscal %s, donc vous ne pouvez pas le " +#~ "supprimer." + +#~ msgid "Unread Messages" +#~ msgstr "Unread Messages" + +#~ msgid "Users" +#~ msgstr "Utilisateurs" + +#~ msgid "Cancelled Donation of %s" +#~ msgstr "Don annulé de %s" + +#~ msgid "" +#~ "Cannot validate the donation of %s because it doesn't have any lines!" +#~ msgstr "" +#~ "Impossible de valider le don de %s parce qu'il ne contient aucune ligne !" + +#~ msgid "Cannot validate the donation of %s because it is not in draft state." +#~ msgstr "" +#~ "Impossible de valider le don de %s parce qu'il n'est pas à l'état " +#~ "brouillon." + +#, fuzzy +#~ msgid "Cannot validate the donation of %s because the total amount is 0 !" +#~ msgstr "" +#~ "Impossible de valider le don de %s parce qu'il ne contient aucune ligne !" + +#~ msgid "Donation Payment Method" +#~ msgstr "Méthode de paiement de don" + +#~ msgid "Donation of %s" +#~ msgstr "Don de %s" + +#~ msgid "Draft Donation of %s" +#~ msgstr "Don brouillon de %s" + +#~ msgid "Missing Default Debit Account on journal '%s'." +#~ msgstr "Compte de débit par défaut manquant sur le journal '%s'." + +#~ msgid "" +#~ "The amount of the donation of %s (%s) is different from the sum of the " +#~ "donation lines (%s)." +#~ msgstr "" +#~ "Le montant du don de %s (%s) est différent de la somme des lignes de don " +#~ "(%s)." + +#~ msgid "" +#~ "The date of the donation of %s should be today or in the past, not in the " +#~ "future!" +#~ msgstr "" +#~ "La date du don de %s devrait être aujourd'hui ou dans le passé, pas dans " +#~ "le futur !" + +#~ msgid "" +#~ "The journal '%s' has the option 'Donation Payment Method', so it's type " +#~ "should be 'Cash' or 'Bank and Checks'." +#~ msgstr "" +#~ "Le journal '%s' a l'option 'Méthode de paiement de don', donc il doit " +#~ "être de type 'Espèce' ou 'Banque et chèque'." + +#~ msgid "Date of the last message posted on the record." +#~ msgstr "Date of the last message posted on the record." + +#~ msgid "Donation Validated" +#~ msgstr "Don validé" + +#~ msgid "" +#~ "Holds the Chatter summary (number of messages, ...). This summary is " +#~ "directly in html format in order to be inserted in kanban views." +#~ msgstr "" +#~ "Holds the Chatter summary (number of messages, ...). This summary is " +#~ "directly in html format in order to be inserted in kanban views." + +#~ msgid "If checked new messages require your attention." +#~ msgstr "If checked new messages require your attention." + +#~ msgid "In-Kind Donation" +#~ msgstr "Don en nature" + +#~ msgid "Is a Follower" +#~ msgstr "Is a Follower" + +#~ msgid "Last Message Date" +#~ msgstr "Last Message Date" + +#~ msgid "Messages and communication history" +#~ msgstr "Messages and communication history" + +#~ msgid "" +#~ "Missing income account on product '%s' or on it's related product category" +#~ msgstr "" +#~ "Compte de produit manquant sur l'article '%s' ou sur sa catégorie interne " +#~ "associée" + +#~ msgid "Product Template" +#~ msgstr "Modèle d'article" + +#~ msgid "Summary" +#~ msgstr "Résumé" + +#~ msgid "This is a donation product." +#~ msgstr "Ceci est un article de don." diff --git a/donation/i18n/it.po b/donation/i18n/it.po new file mode 100644 index 000000000..62cd157da --- /dev/null +++ b/donation/i18n/it.po @@ -0,0 +1,1313 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * donation +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2025-01-20 14:06+0000\n" +"Last-Translator: mymage \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: donation +#: model:ir.model.fields,field_description:donation.field_res_partner__donation_count +#: model:ir.model.fields,field_description:donation.field_res_users__donation_count +msgid "# of Donations" +msgstr "N° di donazioni" + +#. module: donation +#: model:ir.actions.report,print_report_name:donation.report_thanks +msgid "" +"'donation_thanks-%s%s' % (object.number, object.state == 'draft' and '-" +"draft' or '')" +msgstr "" +"'donation_thanks-%s%s' % (object.number, object.state == 'draft' and '-" +"draft' or '')" + +#. module: donation +#: model:ir.model.constraint,message:donation.constraint_donation_campaign_code_company_uniq +msgid "A campaign with the same code already exists!" +msgstr "Esiste già una campagna con lo stesso codice!" + +#. module: donation +#: model:ir.model.constraint,message:donation.constraint_donation_donation_bank_statement_line_uniq +msgid "A donation already exists for this bank statement line." +msgstr "Esiste già una donazione per questa riga estratto conto bancario." + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_needaction +msgid "Action Needed" +msgstr "Azione richiesta" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__active +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__active +msgid "Active" +msgstr "Attiva" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_ids +msgid "Activities" +msgstr "Attività" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "Decorazione eccezione attività" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_state +msgid "Activity State" +msgstr "Stato attività" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_type_icon +msgid "Activity Type Icon" +msgstr "Icona tipo attività" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__amount +#: model:ir.model.fields,field_description:donation.field_donation_report__amount_company_currency +msgid "Amount" +msgstr "Valore" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__amount_total +msgid "Amount Total" +msgstr "Importo totale" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__amount_total_company_currency +msgid "Amount Total in Company Currency" +msgstr "Importo totale nella valuta aziendale" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__amount_company_currency +msgid "Amount in Company Currency" +msgstr "Importo in valuta aziendale" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__analytic_distribution +msgid "Analytic Distribution" +msgstr "" + +#. module: donation +#: model:ir.model,name:donation.model_account_analytic_applicability +msgid "Analytic Plan's Applicabilities" +msgstr "Applicabilità piano analitico" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__analytic_precision +msgid "Analytic Precision" +msgstr "Precisione analitica" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__tax_receipt_option__annual +#: model:ir.model.fields.selection,name:donation.selection__donation_tax_receipt_option_switch__new_tax_receipt_option__annual +msgid "Annual Tax Receipt" +msgstr "Ricevuta fiscale annuale" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_campaign_form +#: model_terms:ir.ui.view,arch_db:donation.donation_campaign_search +#: model_terms:ir.ui.view,arch_db:donation.donation_thanks_template_form +#: model_terms:ir.ui.view,arch_db:donation.donation_thanks_template_search +msgid "Archived" +msgstr "In archivio" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_attachment_count +msgid "Attachment Count" +msgstr "Conteggio allegati" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Back to Draft" +msgstr "Reimposta a bozza" + +#. module: donation +#: model:ir.model,name:donation.model_account_bank_statement_line +msgid "Bank Statement Line" +msgstr "Riga estratto conto" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Campaign" +msgstr "Campagna" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +#: model_terms:ir.ui.view,arch_db:donation.donation_tax_receipt_option_switch_form +#: model_terms:ir.ui.view,arch_db:donation.donation_validate_form +msgid "Cancel" +msgstr "Annulla" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__state__cancel +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Cancelled" +msgstr "Annullata" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Cancelled donation '%s' is linked to a journal entry. This should never " +"happen." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Cancelled donation '%s' is linked to a tax receipt. This should never happen." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Cannot validate donation %s because it doesn't have any lines!" +msgstr "Non si può validare la donazione %s perché non ha righe!" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Cannot validate donation %s because it is not in draft state." +msgstr "Non si può validare la donazione %s perché è in stato bozza." + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Cannot validate donation %s because the total amount is 0!" +msgstr "Non si può validare la donazione %s perché il valore totale è zero!" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_report__product_categ_id +msgid "Category of Product" +msgstr "Categoria prodotto" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Change" +msgstr "Cambio" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_tax_receipt_option_switch_action +#: model_terms:ir.ui.view,arch_db:donation.donation_tax_receipt_option_switch_form +msgid "Change Tax Receipt Option" +msgstr "Modifica opzione ricevuta fiscale" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__check_total +msgid "Check Amount" +msgstr "Controlla importo" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.res_config_settings_donation +msgid "Check Total" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_config_settings__group_donation_check_total +msgid "Check Total on Donations" +msgstr "Controlla totale nelle donazioni" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__code +msgid "Code" +msgstr "Codice" + +#. module: donation +#: model:ir.model,name:donation.model_donation_campaign +msgid "Code attributed for a Donation Campaign" +msgstr "Codice attribuito per una campagna donazione" + +#. module: donation +#: model:ir.model,name:donation.model_res_company +msgid "Companies" +msgstr "Aziende" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__company_id +#: model:ir.model.fields,field_description:donation.field_donation_donation__company_id +#: model:ir.model.fields,field_description:donation.field_donation_line__company_id +#: model:ir.model.fields,field_description:donation.field_donation_report__company_id +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__company_id +#: model_terms:ir.ui.view,arch_db:donation.donation_campaign_search +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Company" +msgstr "Azienda" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__company_currency_id +#: model:ir.model.fields,field_description:donation.field_donation_line__company_currency_id +#: model:ir.model.fields,field_description:donation.field_donation_report__company_currency_id +msgid "Company Currency" +msgstr "Valuta aziendale" + +#. module: donation +#: model:ir.model,name:donation.model_res_config_settings +msgid "Config Settings" +msgstr "Impostazioni configurazione" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_config_menu +msgid "Configuration" +msgstr "Configurazione" + +#. module: donation +#: model:ir.model,name:donation.model_res_partner +msgid "Contact" +msgstr "Contatto" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__country_id +msgid "Country" +msgstr "Nazione" + +#. module: donation +#: model:ir.ui.menu,name:donation.tax_receipt_annual_create_menu +msgid "Create Annual Receipts" +msgstr "Crea ricevute annuali" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "Create Donation from Bank Statement Line" +msgstr "Crea donazioni da righe estratto conto bancario" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_donation__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_line__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__create_uid +#: model:ir.model.fields,field_description:donation.field_donation_validate__create_uid +msgid "Created by" +msgstr "Creato da" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__create_date +#: model:ir.model.fields,field_description:donation.field_donation_donation__create_date +#: model:ir.model.fields,field_description:donation.field_donation_line__create_date +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__create_date +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__create_date +#: model:ir.model.fields,field_description:donation.field_donation_validate__create_date +msgid "Created on" +msgstr "Creato il" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__currency_id +#: model:ir.model.fields,field_description:donation.field_donation_line__currency_id +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Currency" +msgstr "Valuta" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_users__context_donation_campaign_id +msgid "Current Donation Campaign" +msgstr "Campagna donazioni attuale" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_users__context_donation_payment_method_line_id +msgid "Current Donation Payment Method" +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Date" +msgstr "Data" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__display_name +#: model:ir.model.fields,field_description:donation.field_donation_donation__display_name +#: model:ir.model.fields,field_description:donation.field_donation_line__display_name +#: model:ir.model.fields,field_description:donation.field_donation_report__display_name +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__display_name +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__display_name +#: model:ir.model.fields,field_description:donation.field_donation_validate__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__distribution_analytic_account_ids +msgid "Distribution Analytic Account" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_account_analytic_applicability__business_domain +msgid "Domain" +msgstr "Dominio" + +#. module: donation +#: model:ir.model,name:donation.model_donation_donation +#: model:ir.model.fields,field_description:donation.field_account_payment_method_line__donation +#: model:ir.model.fields,field_description:donation.field_donation_line__donation_id +#: model:ir.model.fields,field_description:donation.field_donation_report__product_donation_type +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__donation_id +#: model:ir.model.fields.selection,name:donation.selection__account_analytic_applicability__business_domain__donation +#: model:ir.module.category,name:donation.module_category_donation +#: model:ir.ui.menu,name:donation.donation_top_menu +#: model_terms:ir.ui.view,arch_db:donation.res_config_settings_donation +msgid "Donation" +msgstr "Donazione" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Donation %(donation)s is linked to a bank statement line, but the Donation " +"by Credit Transfer Account is not set for company '%(company)s'. This should " +"never happen." +msgstr "" +"La donazione %(donation)s è collegata a una riga dell'estratto conto " +"bancario, ma il conto donazione tramite bonifico bancario non è impostato " +"per la società '%(company)s'. Ciò non dovrebbe mai accadere." + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Donation '%(donation)s' is linked to the tax receipt %(tax_receipt)s, so you " +"cannot delete it." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Donation '%s' is in Done state, so you cannot delete it." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Donation '%s' is linked to a journal entry, so you cannot delete it." +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__campaign_id +#: model:ir.model.fields,field_description:donation.field_donation_report__campaign_id +msgid "Donation Campaign" +msgstr "Campagna donazione" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_campaign_action +#: model:ir.ui.menu,name:donation.donation_campaign_menu +msgid "Donation Campaigns" +msgstr "Campagne donazione" + +#. module: donation +#: model:res.groups,name:donation.group_donation_check_total +msgid "Donation Check Total" +msgstr "Totale controllo donazione" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__donation_date +#: model:ir.model.fields,field_description:donation.field_donation_report__donation_date +msgid "Donation Date" +msgstr "Data donazione" + +#. module: donation +#: model:ir.model,name:donation.model_donation_line +#: model:ir.model.fields,field_description:donation.field_donation_donation__line_ids +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Donation Lines" +msgstr "Righe donazione" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__number +msgid "Donation Number" +msgstr "Numero donazione" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_tax_receipt_menu +msgid "Donation Tax Receipts" +msgstr "Ricevute fiscali donazione" + +#. module: donation +#: model:ir.model,name:donation.model_donation_thanks_template +msgid "Donation Thanks Letter Template" +msgstr "Modello lettera ringraziamento donazione" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_company__donation_account_id +#: model:ir.model.fields,field_description:donation.field_res_config_settings__donation_account_id +msgid "Donation by Credit Transfer Account" +msgstr "Conto donazione con bonifico bancario" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_payment_method_line.py:0 +msgid "Donation payment method '%s'is not an inbound payment method." +msgstr "" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_action +#: model:ir.actions.act_window,name:donation.partner_donation_action +#: model:ir.model.fields,field_description:donation.field_account_bank_statement_line__donation_ids +#: model:ir.model.fields,field_description:donation.field_res_partner__donation_ids +#: model:ir.model.fields,field_description:donation.field_res_users__donation_ids +#: model:ir.ui.menu,name:donation.donation_config_donation_menu +#: model:ir.ui.menu,name:donation.donation_menu +#: model:ir.ui.menu,name:donation.donation_title_menu +#: model_terms:ir.ui.view,arch_db:donation.view_partner_property_form +msgid "Donations" +msgstr "Donazioni" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_report_action +#: model:ir.model,name:donation.model_donation_report +#: model:ir.ui.menu,name:donation.donation_report_menu +msgid "Donations Analysis" +msgstr "Analisi donazioni" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_line_action +msgid "Donations Lines" +msgstr "Righe donazioni" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__state__done +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Done" +msgstr "Evasa" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__partner_id +#: model:ir.model.fields,field_description:donation.field_donation_report__partner_id +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Donor" +msgstr "Donatore" + +#. module: donation +#: model:ir.ui.menu,name:donation.donor +msgid "Donors" +msgstr "Donatori" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__state__draft +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Draft" +msgstr "Bozza" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__tax_receipt_total +msgid "Eligible Tax Receipt Sub-total in Company Currency" +msgstr "Sub-totale idoneo a ricevuta fiscale in valuta azienda" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_report__tax_receipt_ok +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Eligible for a Tax Receipt" +msgstr "Idoneo per ricevuta fiscale" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Error:" +msgstr "Errore:" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Failed to get account for donation line with product '%s'." +msgstr "Fallito il recupero del conto per la riga donazione con prodotto '%s'." + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_follower_ids +msgid "Followers" +msgstr "Seguito da" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_partner_ids +msgid "Followers (Partners)" +msgstr "Seguito da (partner)" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "Icona Font Awesome es. fa-tasks" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__tax_receipt_option__each +#: model:ir.model.fields.selection,name:donation.selection__donation_tax_receipt_option_switch__new_tax_receipt_option__each +msgid "For Each Donation" +msgstr "Per ogni donazione" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Full in-kind donation: no journal entry generated." +msgstr "" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Group By" +msgstr "Raggruppa per" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__has_message +msgid "Has Message" +msgstr "Ha un messaggio" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__id +#: model:ir.model.fields,field_description:donation.field_donation_donation__id +#: model:ir.model.fields,field_description:donation.field_donation_line__id +#: model:ir.model.fields,field_description:donation.field_donation_report__id +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__id +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__id +#: model:ir.model.fields,field_description:donation.field_donation_validate__id +msgid "ID" +msgstr "ID" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_exception_icon +msgid "Icon" +msgstr "Icona" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "Icona per indicare un'attività eccezione." + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__message_needaction +msgid "If checked, new messages require your attention." +msgstr "Se selezionata, nuovi messaggi richiedono attenzione." + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "Se selezionata, alcuni messaggi hanno un errore di consegna." + +#. module: donation +#: model:ir.model.fields,help:donation.field_account_payment_method_line__donation +msgid "If enabled, this payment method will be available on donations" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__image +msgid "Image" +msgstr "Immagine" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__in_kind +#: model:ir.model.fields,field_description:donation.field_donation_report__in_kind +msgid "In Kind" +msgstr "In natura" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "In kind" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__tax_receipt_ok +msgid "Is Eligible for a Tax Receipt" +msgstr "È idoneo per una ricevuta fiscale" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_is_follower +msgid "Is Follower" +msgstr "Segue" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__move_id +msgid "Journal Entry" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_donation__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_line__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__write_uid +#: model:ir.model.fields,field_description:donation.field_donation_validate__write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento di" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__write_date +#: model:ir.model.fields,field_description:donation.field_donation_donation__write_date +#: model:ir.model.fields,field_description:donation.field_donation_line__write_date +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__write_date +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__write_date +#: model:ir.model.fields,field_description:donation.field_donation_validate__write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_from_bank_statement_line_form +msgid "Lines" +msgstr "Righe" + +#. module: donation +#: model:ir.module.category,description:donation.module_category_donation +msgid "Manage donations" +msgstr "Gestione donazioni" + +#. module: donation +#: model:res.groups,name:donation.group_donation_manager +msgid "Manager" +msgstr "Responsabile" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_tree +msgid "Mark all selected donation as Thanks Printed?" +msgstr "Impostare tutte le donazioni a Ringraziamenti stampati?" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_tree +msgid "Mark as Thanks Printed" +msgstr "Imposta a Ringraziamenti stampati" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_has_error +msgid "Message Delivery error" +msgstr "Errore di consegna messaggio" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_ids +msgid "Messages" +msgstr "Messaggi" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "Missing Product for Donations via Credit Transfert for company '%s'." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "Missing inbound payment method linked to the bank journal '%s'." +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "Scadenza mia attività" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__name +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__name +msgid "Name" +msgstr "Nome" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_campaign_search +msgid "Name or Code" +msgstr "Nome o codice" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "New" +msgstr "Nuova" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "Scadenza prossima attività" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_summary +msgid "Next Activity Summary" +msgstr "Riepilogo prossima attività" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_type_id +msgid "Next Activity Type" +msgstr "Tipo prossima attività" + +#. module: donation +#: model:ir.model.fields.selection,name:donation.selection__donation_donation__tax_receipt_option__none +msgid "None" +msgstr "Nessuna" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__note +msgid "Notes" +msgstr "Note" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_needaction_counter +msgid "Number of Actions" +msgstr "Numero di azioni" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__message_has_error_counter +msgid "Number of errors" +msgstr "Numero di errori" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__message_needaction_counter +msgid "Number of messages requiring action" +msgstr "Numero di messaggi che richiedono un'azione" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "Numero di messaggi con errore di consegna" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "" +"On bank statement line '%(line)s', the amount (%(amount)s) is negative so it " +"cannot be processed as a donation." +msgstr "" +"Nella riga estratto conto '%(line)s', il valore (%(amount)s) è negativo " +"quindi non può essere elaborato come una donazione." + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "" +"On bank statement line '%s', the partner is required to process a donation." +msgstr "" +"Nella riga estratto conto bancario '%s', è richiesto il partner per " +"elaborare la donazione." + +#. module: donation +#. odoo-python +#: code:addons/donation/models/res_company.py:0 +msgid "" +"On the company %(company)s, the Product for Donations via Credit Transfer (%" +"(product)s) is not a donation product !" +msgstr "" +"Nell'azienda %(company)s, il prodotto per le donazioni con trasferimento del " +"credito (%(product)s) non è un prodotto donazione!" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Other Information" +msgstr "Altre informazioni" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__commercial_partner_id +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Parent Donor" +msgstr "Donatore padre" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Partner" +msgstr "Partner" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_report__country_id +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Partner Country" +msgstr "Nazione partner" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__payment_method_line_id +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Payment Method" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_report__payment_method_line_id +msgid "Payment Method Line" +msgstr "" + +#. module: donation +#: model:ir.actions.act_window,name:donation.account_payment_method_line_donation_action +#: model:ir.model,name:donation.model_account_payment_method_line +#: model:ir.ui.menu,name:donation.account_payment_method_line_donation_menu +msgid "Payment Methods" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__payment_ref +msgid "Payment Reference" +msgstr "Riferimento pagamento" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "Payment account is not set on payment method '%s'." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"Payment method is not set on donation %s (only fully in-kind donations don't " +"require a payment method)." +msgstr "" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_tax_receipt_print_menu +msgid "Print Receipts" +msgstr "Stampa ricevute" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Print Thanks Letter" +msgstr "Stampa lettere ringraziamento" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__product_id +#: model:ir.model.fields,field_description:donation.field_donation_report__product_id +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Product" +msgstr "Prodotto" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Product Category" +msgstr "Categoria prodotto" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__product_donation_type +#: model_terms:ir.ui.view,arch_db:donation.donation_report_search +msgid "Product Type donation" +msgstr "" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_res_company__donation_credit_transfer_product_id +#: model:ir.model.fields,field_description:donation.field_res_config_settings__donation_credit_transfer_product_id +msgid "Product for Donations via Credit Transfer" +msgstr "Prodotto per donazioni tramite trasferimento del credito" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_product_action +#: model:ir.ui.menu,name:donation.donation_products +msgid "Products" +msgstr "Prodotti" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__quantity +msgid "Quantity" +msgstr "Quantità" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt__donation_ids +#: model_terms:ir.ui.view,arch_db:donation.donation_tax_receipt_form +msgid "Related Donations" +msgstr "Donazioni relative" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_report_title_menu +msgid "Reporting" +msgstr "Rendicontazione" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__activity_user_id +msgid "Responsible User" +msgstr "Utente responsabile" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +msgid "Save Default Values" +msgstr "Salva valori predefiniti" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_from_bank_statement_line_form +msgid "Save as Draft" +msgstr "Salva come bozza" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__sequence +#: model:ir.model.fields,field_description:donation.field_donation_line__sequence +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__sequence +msgid "Sequence" +msgstr "Sequenza" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_settings_action +#: model:ir.ui.menu,name:donation.donation_settings_menu +msgid "Settings" +msgstr "Impostazioni" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__bank_statement_line_id +msgid "Source Bank Statement Line" +msgstr "Riga estratto conto bancario origine" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_line__tax_receipt_ok +msgid "Specify if the product is eligible for a tax receipt" +msgstr "Indica se il prodotto è idoneo per una ricevuta fiscale" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_campaign__start_date +msgid "Start Date" +msgstr "Data inizio" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__state +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "State" +msgstr "Stato" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__activity_state +msgid "" +"Status based on activities\n" +"Overdue: Due date is already passed\n" +"Today: Activity date is today\n" +"Planned: Future activities." +msgstr "" +"Stato in base alle attività\n" +"Scaduto: la data richiesta è trascorsa\n" +"Oggi: la data attività è oggi\n" +"Pianificato: attività future." + +#. module: donation +#: model:ir.model,name:donation.model_donation_tax_receipt_option_switch +msgid "Switch Donation Tax Receipt Option" +msgstr "Scambia opzione ricevuta fiscale donazione" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__tax_receipt_id +#: model_terms:ir.ui.view,arch_db:donation.donation_line_tree +msgid "Tax Receipt" +msgstr "Ricevuta fiscale" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__tax_receipt_total +#: model:ir.model.fields,field_description:donation.field_donation_line__tax_receipt_amount +#: model:ir.model.fields,field_description:donation.field_donation_report__tax_receipt_amount +msgid "Tax Receipt Eligible Amount" +msgstr "Valore idoneo ricevuta fiscale" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__tax_receipt_option +#: model:ir.model.fields,field_description:donation.field_donation_tax_receipt_option_switch__new_tax_receipt_option +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Tax Receipt Option" +msgstr "Opzione ricevuta fiscale" + +#. module: donation +#: model:ir.model,name:donation.model_donation_tax_receipt +msgid "Tax Receipt for Donations" +msgstr "Ricevuta fiscale per donazioni" + +#. module: donation +#: model:ir.ui.menu,name:donation.donation_tax_title_menu +msgid "Tax Receipts" +msgstr "Ricevute fiscali" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_thanks_template__text +msgid "Text" +msgstr "Testo" + +#. module: donation +#: model:ir.actions.report,name:donation.report_thanks +msgid "Thanks Letter" +msgstr "Lettera ringraziamento" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_thanks_template_action +#: model:ir.ui.menu,name:donation.donation_thanks_template_menu +msgid "Thanks Letter Templates" +msgstr "Modelli lettera ringraziamento" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__thanks_printed +#: model:ir.model.fields,field_description:donation.field_donation_report__thanks_printed +msgid "Thanks Printed" +msgstr "Ringraziamenti stampati" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__thanks_template_id +#: model:ir.model.fields,field_description:donation.field_donation_report__thanks_template_id +msgid "Thanks Template" +msgstr "Modello ringraziamenti" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_search +msgid "Thanks to Print" +msgstr "Ringraziamenti da stampare" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"The Donation by Credit Transfer Account '%(account)s' for company '%" +"(company)s' is not reconciliable. This should never happen." +msgstr "" +"La donazione da conto trasferimento credito '%(account)s' per l'azienda '%" +"(company)s' non è riconciliabile. Questo non dovrebbe avvenire." + +#. module: donation +#. odoo-python +#: code:addons/donation/models/account_bank_statement_line.py:0 +msgid "The Donation by Credit Transfer Accountis not set for company '%s'." +msgstr "" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"The amount of donation %(donation)s (%(check_total)s) is different from the " +"sum of the donation lines (%(amount_total)s)." +msgstr "" +"L'importo della donazione %(donation)s (%(check_total)s) è diverso dalla " +"somma delle righe di donazione (%(amount_total)s)." + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"The date of donation %s should be today or in the past, not in the future!" +msgstr "" +"La data della donazione %s dovrebbe essere oggi o nel passato, non nel " +"futuro!" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"The payment method '%(pay_mode)s' selected on donation %(donation)s is not a " +"donation payment method." +msgstr "" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__thanks_printed +msgid "" +"This field automatically becomes active when the thanks letter has been " +"printed." +msgstr "" +"Questo campo diventa attivo automaticamente quando la lettera di " +"ringraziamento è stata stampata." + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_validate_form +msgid "This wizard will validate all the draft donations selected." +msgstr "Questa procedura guidata validerà tutte le donazioni selezionate." + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +#: model_terms:ir.ui.view,arch_db:donation.donation_from_bank_statement_line_form +msgid "Total" +msgstr "Totale" + +#. module: donation +#: model:ir.model.fields,help:donation.field_res_company__donation_account_id +#: model:ir.model.fields,help:donation.field_res_config_settings__donation_account_id +msgid "Transfer account for donations received by credit transfer. " +msgstr "" +"Conto trasferimento per donazioni ricevute da trasferimento del credito. " + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "Tipo di attività eccezione sul record." + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_line__unit_price +msgid "Unit Price" +msgstr "Prezzo unitario" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_tax_receipt_option_switch_form +msgid "Update" +msgstr "Aggiorna" + +#. module: donation +#: model:ir.model,name:donation.model_res_users +#: model:res.groups,name:donation.group_donation_user +msgid "User" +msgstr "Utente" + +#. module: donation +#: model_terms:ir.ui.view,arch_db:donation.donation_form +#: model_terms:ir.ui.view,arch_db:donation.donation_from_bank_statement_line_form +#: model_terms:ir.ui.view,arch_db:donation.donation_tree +#: model_terms:ir.ui.view,arch_db:donation.donation_validate_form +msgid "Validate" +msgstr "Valida" + +#. module: donation +#: model:ir.model,name:donation.model_donation_validate +#: model_terms:ir.ui.view,arch_db:donation.donation_validate_form +msgid "Validate Donations" +msgstr "Donazioni validate" + +#. module: donation +#: model:ir.actions.act_window,name:donation.donation_validate_action +msgid "Validate Draft Donations" +msgstr "Valida donazioni in bozza" + +#. module: donation +#: model:res.groups,name:donation.group_donation_viewer +msgid "Viewer" +msgstr "Visualizzatore" + +#. module: donation +#: model:ir.model.fields,field_description:donation.field_donation_donation__website_message_ids +msgid "Website Messages" +msgstr "Messaggi sito web" + +#. module: donation +#: model:ir.model.fields,help:donation.field_donation_donation__website_message_ids +msgid "Website communication history" +msgstr "Cronologia comunicazioni sito web" + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "" +"You cannot cancel this donation because it is linked to the tax receipt %s. " +"You should first delete this tax receipt (but it may not be legally allowed)." +msgstr "" +"Non si può annullare questa donazione perché è collegata alla ricevuta " +"fiscale %s. Si dovrebbe prima eliminare questa ricevuta fiscale (ma potrebbe " +"non essere legalmente consentito)." + +#. module: donation +#. odoo-python +#: code:addons/donation/models/donation.py:0 +msgid "You cannot change the Tax Receipt Option when it is Annual." +msgstr "Non si può modificare l'opzione ricevuta fiscale quando è annuale." + +#, python-format +#~ msgid "A cancelled donation should not be linked to a tax receipt" +#~ msgstr "" +#~ "Una donazione annullata non dovrebbe essere legata ad una ricevuta fiscale" + +#, python-format +#~ msgid "A cancelled donation should not be linked to an account move" +#~ msgstr "" +#~ "Una donazione annullata non dovrebbe essere legata ad un movimento " +#~ "contabile" + +#~ msgid "" +#~ "A storable product is a product for which you manage stock. The Inventory " +#~ "app has to be installed.\n" +#~ "A consumable product is a product for which stock is not managed.\n" +#~ "A service is a non-material product you provide." +#~ msgstr "" +#~ "Un prodotto stoccabile è un prodotto per il quale si gestiscono le " +#~ "giacenze. Deve essere installata l'app Magazzino.\n" +#~ "Un prodotto consumabile è un prodotto per il quale non sono gestite le " +#~ "giacenze.\n" +#~ "Un servizio è un prodotto non materiale che viene fornito." + +#~ msgid "Account Move" +#~ msgstr "Movimento contabile" + +#~ msgid "Analytic" +#~ msgstr "Analitica" + +#~ msgid "Analytic Distribution Search" +#~ msgstr "Ricerca distribuzione analitica" + +#~ msgid "Current Donation Payment Mode" +#~ msgstr "Metodo pagamento donazione attuale" + +#, python-format +#~ msgid "Donation payment mode '%s' is not an inbound payment mode." +#~ msgstr "" +#~ "Il metodo di pagamento donazione '%s' non è un metodo di pagamento in " +#~ "entrata." + +#, python-format +#~ msgid "" +#~ "Donation payment mode '%s' must be configured with 'Link to Bank Account' " +#~ "set to 'Fixed'." +#~ msgstr "" +#~ "Il metodo di pagamento '%s' deve essere configurato con 'Collega a conto " +#~ "bancario' impostato a 'Fisso'." + +#, python-format +#~ msgid "Full in-kind donation: no account move generated" +#~ msgstr "" +#~ "Donazione completamente in natura: nessun movimento contabile generato" + +#~ msgid "If enabled, this payment mode will be available on donations" +#~ msgstr "" +#~ "Se abilitata, questo metodo di pagamento sarà disponibile nelle donazioni" + +#~ msgid "Last Modified on" +#~ msgstr "Ultima modifica il" + +#~ msgid "Main Attachment" +#~ msgstr "Allegato principale" + +#, python-format +#~ msgid "Missing Outstanding Receipts Account on company '%s'." +#~ msgstr "Manca il conto ricevute rilevanti per l'azienda '%s'." + +#, python-format +#~ msgid "Missing Product for Donations via Credit Transfer for company '%s'." +#~ msgstr "" +#~ "Manca prodotto per donazioni con trasferimento del credito per l'azienda " +#~ "'%s'." + +#, python-format +#~ msgid "" +#~ "Missing inbound payment mode linked to the bank journal '%s' configured " +#~ "with 'Link to Bank Account' set to 'Fixed'." +#~ msgstr "" +#~ "Manca metodo pagamento in ingresso collegato al registro banca '%s' " +#~ "configurato con 'Collegato a conto bancario' impostato a 'Fisso'." + +#~ msgid "Payment Mode" +#~ msgstr "Modo di pagamento" + +#, python-format +#~ msgid "" +#~ "Payment Mode is not set on donation %s (only fully in-kind donations " +#~ "don't require a payment mode)." +#~ msgstr "" +#~ "Il metodo di pagamento non è impostato nella donazione %s (solo le " +#~ "donazioni completamente in natura non richiedono un metodo di pagamento)." + +#~ msgid "Payment Modes" +#~ msgstr "Modi di pagamento" + +#~ msgid "Product Type" +#~ msgstr "Tipologia prodotto" + +#, python-format +#~ msgid "The Donation by Credit Transfer Account is not set for company '%s'." +#~ msgstr "" +#~ "La donazione da conto trasferimento credito non è impostata per l'azienda " +#~ "'%s'." + +#, python-format +#~ msgid "" +#~ "The donation '%(donation)s' is linked to the tax receipt %(tax_receipt)s, " +#~ "so you cannot delete it." +#~ msgstr "" +#~ "La donazione '%(donation)s' è collegata con la ricevuta fiscale " +#~ "%(tax_receipt)s, quindi non si può cancellare." + +#, python-format +#~ msgid "The donation '%s' is in Done state, so you cannot delete it." +#~ msgstr "" +#~ "La donazione '%s' è in stato eseguita, quindi non si può cancellare." + +#, python-format +#~ msgid "" +#~ "The donation '%s' is linked to an account move, so you cannot delete it." +#~ msgstr "" +#~ "La donazione '%s' è collegata ad un movimento di magazzino, quindi non " +#~ "può essere cancellata." + +#, python-format +#~ msgid "" +#~ "The payment mode '%(pay_mode)s' selected on donation %(donation)s is not " +#~ "a donation payment mode." +#~ msgstr "" +#~ "Il metodo di pagamento '%(pay_mode)s' selezionato nel dominio " +#~ "%(donation)s non è un metodo di pagamento donazione." diff --git a/donation/models/__init__.py b/donation/models/__init__.py new file mode 100644 index 000000000..f9b05f0b2 --- /dev/null +++ b/donation/models/__init__.py @@ -0,0 +1,10 @@ +from . import donation +from . import donation_tax_receipt +from . import donation_campaign +from . import account_payment_method_line +from . import donation_thanks_template +from . import account_bank_statement_line +from . import account_analytic_applicability +from . import res_partner +from . import res_users +from . import res_company diff --git a/donation/models/account_analytic_applicability.py b/donation/models/account_analytic_applicability.py new file mode 100644 index 000000000..9ec9b8df4 --- /dev/null +++ b/donation/models/account_analytic_applicability.py @@ -0,0 +1,16 @@ +# Copyright 2023 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class AccountAnalyticApplicability(models.Model): + _inherit = "account.analytic.applicability" + + business_domain = fields.Selection( + selection_add=[ + ("donation", "Donation"), + ], + ondelete={"donation": "cascade"}, + ) diff --git a/donation/models/account_bank_statement_line.py b/donation/models/account_bank_statement_line.py new file mode 100644 index 000000000..dc6123643 --- /dev/null +++ b/donation/models/account_bank_statement_line.py @@ -0,0 +1,129 @@ +# Copyright 2023 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import Command, fields, models +from odoo.exceptions import UserError +from odoo.tools.misc import format_amount + +# This code is mostly used in the OCA module donation_bank_statement_oca +# But it's located in the "donation" module because it can be useful for +# other modules (alternative reconcile interfaces, module compatible with the Enterprise +# reconcile interface, etc.) + + +class AccountBankStatementLine(models.Model): + _inherit = "account.bank.statement.line" + + donation_ids = fields.One2many( + "donation.donation", "bank_statement_line_id", string="Donations", readonly=True + ) + + def _check_statement_line_donation(self): + self.ensure_one() + if not self.partner_id: + raise UserError( + self.env._( + "On bank statement line '%s', the partner is required to " + "process a donation.", + self.display_name, + ) + ) + if self.currency_id.compare_amounts(self.amount, 0) <= 0: + raise UserError( + self.env._( + "On bank statement line '%(line)s', the amount (%(amount)s) " + "is negative so it cannot be processed as a donation.", + line=self.display_name, + amount=format_amount(self.env, self.amount, self.currency_id), + ) + ) + if not self.company_id.donation_account_id: + raise UserError( + self.env._( + "The Donation by Credit Transfer Account" + "is not set for company '%s'.", + self.company_id.display_name, + ) + ) + + def _get_payment_method_line_donation(self): + self.ensure_one() + payment_method_line = self.env["account.payment.method.line"].search( + [ + ("company_id", "=", self.company_id.id), + ("payment_type", "=", "inbound"), + ("journal_id", "=", self.journal_id.id), + ], + limit=1, + ) + if not payment_method_line: + raise UserError( + self.env._( + "Missing inbound payment method linked to the bank journal '%s'.", + self.journal_id.display_name, + ) + ) + return payment_method_line + + def _get_donation_product(self): + self.ensure_one() + product = self.company_id.donation_credit_transfer_product_id + if not product: + raise UserError( + self.env._( + "Missing Product for Donations via Credit Transfert " + "for company '%s'.", + self.company_id.display_name, + ) + ) + return product + + def _prepare_donation_context(self): + self.ensure_one() + product = self._get_donation_product() + payment_method_line_id = self._get_payment_method_line_donation().id + context = { + "default_company_id": self.company_id.id, + "default_partner_id": self.partner_id.id, + "default_currency_id": self.currency_id.id, + "default_payment_method_line_id": payment_method_line_id, + "default_payment_ref": self.payment_ref, + "default_donation_date": self.date, + "default_bank_statement_line_id": self.id, + "default_check_total": self.amount, + "default_line_ids": [ + Command.create( + { + "product_id": product.id, + "quantity": 1, + "unit_price": self.amount, + } + ) + ], + } + return context + + def _prepare_donation_action(self): + action = { + "type": "ir.actions.act_window", + "name": self.env._("Create Donation from Bank Statement Line"), + "res_model": "donation.donation", + "view_mode": "form", + "view_id": self.env.ref( + "donation.donation_from_bank_statement_line_form" + ).id, + "target": "new", + "context": self._prepare_donation_context(), + } + return action + + def _prepare_donation_counterpart_move_line_vals(self, credit): + vals = { + "move_id": self.move_id.id, + "account_id": self.company_id.donation_account_id.id, + "partner_id": self.partner_id.id, + "credit": credit, + "debit": False, + } + return vals diff --git a/donation/models/account_payment_method_line.py b/donation/models/account_payment_method_line.py new file mode 100644 index 000000000..b3e92e383 --- /dev/null +++ b/donation/models/account_payment_method_line.py @@ -0,0 +1,26 @@ +# Copyright 2021 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from odoo import api, fields, models +from odoo.exceptions import ValidationError + + +class AccountPaymentMethodLine(models.Model): + _inherit = "account.payment.method.line" + + donation = fields.Boolean( + help="If enabled, this payment method will be available on donations", + ) + + @api.constrains("donation") + def _check_donation(self): + for mode in self: + if mode.donation and mode.payment_type != "inbound": + raise ValidationError( + self.env._( + "Donation payment method '%s'" + "is not an inbound payment method.", + mode.display_name, + ) + ) diff --git a/donation/models/donation.py b/donation/models/donation.py new file mode 100644 index 000000000..74d9bd4fb --- /dev/null +++ b/donation/models/donation.py @@ -0,0 +1,785 @@ +# Copyright 2014-2021 Barroux Abbey (http://www.barroux.org) +# Copyright 2014-2021 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +import logging + +from odoo import Command, api, fields, models +from odoo.exceptions import UserError +from odoo.tools.misc import format_amount + +logger = logging.getLogger(__name__) + + +class DonationDonation(models.Model): + _name = "donation.donation" + _inherit = ["mail.thread", "mail.activity.mixin"] + _description = "Donation" + _order = "id desc" + _check_company_auto = True + + currency_id = fields.Many2one( + "res.currency", + required=True, + tracking=True, + ondelete="restrict", + default=lambda self: self.env.company.currency_id, + ) + partner_id = fields.Many2one( + "res.partner", + string="Donor", + required=True, + index=True, + tracking=True, + ondelete="restrict", + ) + commercial_partner_id = fields.Many2one( + related="partner_id.commercial_partner_id", + string="Parent Donor", + store=True, + index=True, + ) + # country_id is here to have stats per country + country_id = fields.Many2one( + "res.country", + compute="_compute_country_id", + store=True, + ) + check_total = fields.Monetary( + string="Check Amount", + currency_field="currency_id", + tracking=True, + ) + amount_total = fields.Monetary( + compute="_compute_total", + currency_field="currency_id", + store=True, + tracking=True, + ) + amount_total_company_currency = fields.Monetary( + compute="_compute_total", + string="Amount Total in Company Currency", + currency_field="company_currency_id", + store=True, + ) + donation_date = fields.Date( + required=True, + index=True, + tracking=True, + ) + company_id = fields.Many2one( + "res.company", + required=True, + default=lambda self: self.env.company, + ) + line_ids = fields.One2many( + "donation.line", + "donation_id", + string="Donation Lines", + copy=True, + ) + move_id = fields.Many2one( + "account.move", + string="Journal Entry", + readonly=True, + copy=False, + check_company=True, + ) + number = fields.Char( + required=True, + copy=False, + string="Donation Number", + index=True, + default=lambda self: self.env._("New"), + readonly=True, + ) + payment_method_line_id = fields.Many2one( + "account.payment.method.line", + string="Payment Method", + domain="[('company_id', '=', company_id), ('donation', '=', True)]", + tracking=True, + check_company=True, + default=lambda self: self.env.user.context_donation_payment_method_line_id, + ) + payment_ref = fields.Char( + string="Payment Reference", + copy=False, + ) + state = fields.Selection( + [("draft", "Draft"), ("done", "Done"), ("cancel", "Cancelled")], + readonly=True, + copy=False, + default="draft", + index=True, + tracking=True, + ) + company_currency_id = fields.Many2one( + related="company_id.currency_id", + string="Company Currency", + store=True, + ) + campaign_id = fields.Many2one( + "donation.campaign", + string="Donation Campaign", + tracking=True, + check_company=True, + ondelete="restrict", + default=lambda self: self.env.user.context_donation_campaign_id, + ) + tax_receipt_id = fields.Many2one( + "donation.tax.receipt", + readonly=True, + copy=False, + tracking=True, + check_company=True, + ) + tax_receipt_option = fields.Selection( + [ + ("none", "None"), + ("each", "For Each Donation"), + ("annual", "Annual Tax Receipt"), + ], + compute="_compute_tax_receipt_option", + index=True, + tracking=True, + precompute=True, + store=True, + readonly=False, + ) + tax_receipt_total = fields.Monetary( + compute="_compute_total", + string="Tax Receipt Eligible Amount", + store=True, + readonly=True, + currency_field="company_currency_id", + help="Eligible Tax Receipt Sub-total in Company Currency", + ) + bank_statement_line_id = fields.Many2one( + "account.bank.statement.line", + string="Source Bank Statement Line", + ondelete="restrict", + readonly=True, + ) + thanks_printed = fields.Boolean( + copy=False, + tracking=True, + help="This field automatically becomes active when " + "the thanks letter has been printed.", + ) + thanks_template_id = fields.Many2one( + "donation.thanks.template", + ondelete="restrict", + copy=False, + ) + + _bank_statement_line_uniq = models.Constraint( + "unique(bank_statement_line_id)", + "A donation already exists for this bank statement line.", + ) + + @api.depends( + "line_ids.unit_price", + "line_ids.quantity", + "line_ids.product_id", + "donation_date", + "currency_id", + "company_id", + ) + def _compute_total(self): + for donation in self: + total = tax_receipt_total = 0.0 + for line in donation.line_ids: + line_total = line.quantity * line.unit_price + total += line_total + if line.tax_receipt_ok: + tax_receipt_total += line_total + + date = donation.donation_date or fields.Date.context_today(self) + donation.amount_total = total + donation_currency = donation.currency_id + company_currency = donation.company_id.currency_id + total_company_currency = donation_currency._convert( + total, company_currency, donation.company_id, date + ) + tax_receipt_total_cc = donation_currency._convert( + tax_receipt_total, + company_currency, + donation.company_id, + date, + ) + donation.amount_total_company_currency = total_company_currency + donation.tax_receipt_total = tax_receipt_total_cc + + # We don't want a depends on partner_id.country_id, because if the partner + # moves to another country, we want to keep the old country for + # past donations to have good statistics + @api.depends("partner_id") + def _compute_country_id(self): + for donation in self: + donation.country_id = donation.partner_id.country_id + + @api.model_create_multi + def create(self, vals_list): + for vals in vals_list: + if "company_id" in vals: + self = self.with_company(vals["company_id"]) + if vals.get("number", self.env._("New")) == self.env._("New"): + vals["number"] = self.env["ir.sequence"].next_by_code( + "donation.donation", sequence_date=vals.get("donation_date") + ) or self.env._("New") + return super().create(vals_list) + + def _prepare_each_tax_receipt(self): + self.ensure_one() + vals = { + "company_id": self.company_id.id, + "currency_id": self.company_currency_id.id, + "donation_date": self.donation_date, + "amount": self.tax_receipt_total, + "type": "each", + "partner_id": self.commercial_partner_id.id, + } + return vals + + def _prepare_counterpart_move_line(self, total_company_cur, total_currency): + self.ensure_one() + if self.company_currency_id.compare_amounts(total_company_cur, 0) > 0: + debit = total_company_cur + credit = 0 + else: + credit = -total_company_cur + debit = 0 + if self.bank_statement_line_id: + account_id = self.company_id.donation_account_id.id + else: + account_id = self.payment_method_line_id.payment_account_id.id + if not account_id: + raise UserError( + self.env._( + "Payment account is not set on payment method '%s'.", + self.payment_method_line_id.display_name, + ) + ) + vals = { + "debit": debit, + "credit": credit, + "account_id": account_id, + "partner_id": self.commercial_partner_id.id, + "currency_id": self.currency_id.id, + "amount_currency": total_currency, + "name": self.number, + "display_type": "payment_term", + } + return vals + + def _prepare_donation_move(self): + self.ensure_one() + if not self.bank_statement_line_id and not self.payment_method_line_id.donation: + raise UserError( + self.env._( + "The payment method '%(pay_mode)s' selected on donation " + "%(donation)s is not a donation payment method.", + pay_mode=self.payment_method_line_id.display_name, + donation=self.display_name, + ) + ) + journal = self.payment_method_line_id.journal_id + assert journal + + # Note : we can have negative donations for donors that use direct + # debit when their direct debit rejected by the bank + total_company_cur = 0.0 + total_currency = 0.0 + + vals = { + "company_id": self.company_id.id, + "journal_id": journal.id, + "date": self.donation_date, + "ref": self.payment_ref, + "line_ids": [], + } + + for line in self.line_ids: + if line.in_kind: + continue + if self.currency_id.is_zero(line.amount): + continue + account = line._get_account() + if not account: + raise UserError( + self.env._( + "Failed to get account for donation line with product '%s'.", + line.product_id.display_name, + ) + ) + + total_currency += line.amount + + amount_cc = self.currency_id._convert( + line.amount, + self.company_currency_id, + self.company_id, + self.donation_date, + ) + total_company_cur += amount_cc + if self.company_currency_id.compare_amounts(amount_cc, 0) > 0: + credit = amount_cc + debit = 0 + else: + debit = -amount_cc + credit = 0 + vals["line_ids"].append( + Command.create( + { + "display_type": "product", + "product_id": line.product_id.id, + "credit": credit, + "debit": debit, + "account_id": account.id, + "analytic_distribution": line.analytic_distribution, + "partner_id": self.commercial_partner_id.id, + "currency_id": self.currency_id.id, + "amount_currency": -line.amount, + } + ) + ) + + if not vals["line_ids"]: + return False + + # counter-part + ml_vals = self._prepare_counterpart_move_line(total_company_cur, total_currency) + vals["line_ids"].append(Command.create(ml_vals)) + return vals + + def save_as_draft(self): + # Used in simple form view used as wizard + # Do nothing, just close + self.ensure_one() + return + + def validate(self): + check_total_grp = self.env.user.has_group("donation.group_donation_check_total") + for donation in self: + if donation.donation_date > fields.Date.context_today(self): + raise UserError( + self.env._( + "The date of donation %s should be today " + "or in the past, not in the future!", + donation.display_name, + ) + ) + if not donation.line_ids: + raise UserError( + self.env._( + "Cannot validate donation %s because it doesn't " + "have any lines!", + donation.display_name, + ) + ) + + if donation.currency_id.is_zero(donation.amount_total): + raise UserError( + self.env._( + "Cannot validate donation %s because the total amount is 0!", + donation.display_name, + ) + ) + + if donation.state != "draft": + raise UserError( + self.env._( + "Cannot validate donation %s because it is not in draft state.", + donation.display_name, + ) + ) + + if ( + check_total_grp or donation.bank_statement_line_id + ) and donation.currency_id.compare_amounts( + donation.check_total, donation.amount_total + ): + raise UserError( + self.env._( + "The amount of donation " + "%(donation)s (%(check_total)s) is different " + "from the sum of the donation lines (%(amount_total)s).", + donation=donation.display_name, + check_total=format_amount( + self.env, donation.check_total, donation.currency_id + ), + amount_total=format_amount( + self.env, donation.amount_total, donation.currency_id + ), + ) + ) + full_in_kind = all([line.in_kind for line in donation.line_ids]) + if not donation.payment_method_line_id and not full_in_kind: + raise UserError( + self.env._( + "Payment method is not set on donation %s (only fully " + "in-kind donations don't require a payment method).", + donation.display_name, + ) + ) + + vals = {"state": "done"} + if full_in_kind and donation.payment_method_line_id: + vals["payment_method_line_id"] = False + + if not full_in_kind: + move_vals = donation._prepare_donation_move() + # when we have a full in-kind donation: no account move + if move_vals: + move = self.env["account.move"].create(move_vals) + move.with_context(validate_analytic=True)._post(soft=False) + vals["move_id"] = move.id + else: + donation.message_post( + body=self.env._( + "Full in-kind donation: no journal entry generated." + ) + ) + + receipt = donation.generate_each_tax_receipt() + if receipt: + vals["tax_receipt_id"] = receipt.id + + donation.write(vals) + if donation.bank_statement_line_id: + donation._reconcile_donation_from_bank_statement() + donation.partner_id._update_donor_rank() + return + + def _reconcile_donation_from_bank_statement(self): + self.ensure_one() + mlines_to_reconcile = self.env["account.move.line"] + transit_account = self.company_id.donation_account_id + if not transit_account: + raise UserError( + self.env._( + "Donation %(donation)s is linked to a bank statement line, but " + "the Donation by Credit Transfer Account is not set for company " + "'%(company)s'. This should never happen.", + donation=self.display_name, + company=self.company_id.display_name, + ) + ) + if not transit_account.reconcile: + raise UserError( + self.env._( + "The Donation by Credit Transfer Account '%(account)s' " + "for company '%(company)s' is not reconciliable. " + "This should never happen.", + account=transit_account.display_name, + company=self.company_id.display_name, + ) + ) + + for donation_mline in self.move_id.line_ids: + if ( + donation_mline.account_id == transit_account + and not donation_mline.reconciled + ): + mlines_to_reconcile |= donation_mline + logger.info( + "Found donation move line to reconcile ID=%s", donation_mline.id + ) + break + for statement_mline in self.bank_statement_line_id.move_id.line_ids: + if ( + statement_mline.account_id == transit_account + and not statement_mline.reconciled + ): + mlines_to_reconcile |= statement_mline + logger.info( + "Found bank statement move line to reconcile ID=%d", + statement_mline.id, + ) + break + if len(mlines_to_reconcile) == 2: + mlines_to_reconcile.reconcile() + logger.info( + "Successfull reconcilation between donation and bank statement." + ) + + def generate_each_tax_receipt(self): + self.ensure_one() + receipt = False + if ( + self.tax_receipt_option == "each" + and not self.tax_receipt_id + and not self.company_currency_id.is_zero(self.tax_receipt_total) + ): + receipt_vals = self._prepare_each_tax_receipt() + receipt = self.env["donation.tax.receipt"].create(receipt_vals) + return receipt + + def save_default_values(self): + self.ensure_one() + method_line_id = self.payment_method_line_id + compaign_id = self.campaign_id + self.env.user.write( + { + "context_donation_payment_method_line_id": method_line_id.id, + "context_donation_campaign_id": compaign_id.id, + } + ) + + def done2cancel(self): + """from Done state to Cancel state""" + for donation in self: + if donation.tax_receipt_id: + raise UserError( + self.env._( + "You cannot cancel this donation because " + "it is linked to the tax receipt %s. You should first " + "delete this tax receipt (but it may not be legally " + "allowed).", + donation.tax_receipt_id.display_name, + ) + ) + if donation.move_id: + donation.move_id.button_cancel() + donation.with_context(force_delete=True).move_id.unlink() + donation.write({"state": "cancel"}) + donation.partner_id._update_donor_rank() + + def cancel2draft(self): + """from Cancel state to Draft state""" + for donation in self: + if donation.move_id: + raise UserError( + self.env._( + "Cancelled donation '%s' is linked to a journal entry. " + "This should never happen.", + donation.display_name, + ) + ) + if donation.tax_receipt_id: + raise UserError( + self.env._( + "Cancelled donation '%s' is linked to a tax receipt. " + "This should never happen.", + donation.display_name, + ) + ) + self.write({"state": "draft"}) + + def unlink(self): + for donation in self: + if donation.state == "done": + raise UserError( + self.env._( + "Donation '%s' is in Done state, so you cannot delete it.", + donation.display_name, + ) + ) + if donation.move_id: + raise UserError( + self.env._( + "Donation '%s' is linked to a journal entry, " + "so you cannot delete it.", + donation.display_name, + ) + ) + if donation.tax_receipt_id: + raise UserError( + self.env._( + "Donation '%(donation)s' is linked to the tax receipt " + "%(tax_receipt)s, so you cannot delete it.", + donation=donation.display_name, + tax_receipt=donation.tax_receipt_id.display_name, + ) + ) + return super().unlink() + + @api.depends("state", "number") + def _compute_display_name(self): + state2label = dict(self.fields_get("state", "selection")["state"]["selection"]) + for donation in self: + name = donation.number + if donation.state != "done": + display_state = state2label.get(donation.state) + name = f"{name} ({display_state})" + donation.display_name = name + + @api.depends("partner_id") + def _compute_tax_receipt_option(self): + for donation in self: + donation.tax_receipt_option = ( + donation.partner_id + and donation.partner_id.commercial_partner_id.tax_receipt_option + or False + ) + + @api.onchange("tax_receipt_option") + def tax_receipt_option_change(self): + res = {} + if ( + self.partner_id + and self.partner_id.commercial_partner_id.tax_receipt_option == "annual" + and self.tax_receipt_option != "annual" + ): + res = { + "warning": { + "title": self.env._("Error:"), + "message": self.env._( + "You cannot change the Tax Receipt Option when it is Annual." + ), + }, + } + self.tax_receipt_option = "annual" + return res + + def print_thanks(self): + self.ensure_one() + self.write({"thanks_printed": True}) + action = ( + self.env.ref("donation.report_thanks") + .with_context(discard_logo_check=True) + .report_action(self) + ) + return action + + def thanks_printed_button(self): + self.write({"thanks_printed": True}) + + +class DonationLine(models.Model): + _name = "donation.line" + _description = "Donation Lines" + _rec_name = "product_id" + _inherit = "analytic.mixin" + _check_company_auto = True + + donation_id = fields.Many2one("donation.donation", ondelete="cascade") + currency_id = fields.Many2one( + related="donation_id.currency_id", + store=True, + ) + company_id = fields.Many2one(related="donation_id.company_id", store=True) + company_currency_id = fields.Many2one( + related="donation_id.company_id.currency_id", + string="Company Currency", + store=True, + ) + product_id = fields.Many2one( + "product.product", + required=True, + domain=[("donation_type", "!=", False)], + ondelete="restrict", + check_company=True, + ) + product_donation_type = fields.Selection( + related="product_id.donation_type", store=True, string="Product Type donation" + ) + quantity = fields.Integer(default=1) + unit_price = fields.Monetary(currency_field="currency_id") + amount = fields.Monetary( + compute="_compute_amount", + currency_field="currency_id", + store=True, + ) + amount_company_currency = fields.Monetary( + compute="_compute_amount", + string="Amount in Company Currency", + currency_field="company_currency_id", + store=True, + ) + tax_receipt_amount = fields.Monetary( + compute="_compute_amount", + string="Tax Receipt Eligible Amount", + currency_field="company_currency_id", + store=True, + ) + sequence = fields.Integer() + # for the fields tax_receipt_ok and in_kind, we made an important change + # between v8 and v9: in v8, it was a reglar field set by an onchange + # in v9, it is a related stored field + tax_receipt_ok = fields.Boolean( + related="product_id.tax_receipt_ok", + store=True, + ) + in_kind = fields.Boolean( + compute="_compute_in_kind", + store=True, + ) + + @api.depends("product_id") + def _compute_in_kind(self): + for line in self: + in_kind = False + if ( + line.product_id.donation_type + and line.product_id.donation_type.startswith("donation_in_kind") + ): + in_kind = True + line.in_kind = in_kind + + @api.depends( + "unit_price", + "quantity", + "product_id", + "donation_id.currency_id", + "donation_id.donation_date", + "donation_id.company_id", + ) + def _compute_amount(self): + for line in self: + amount = line.quantity * line.unit_price + line.amount = amount + donation_currency = line.donation_id.currency_id + date = line.donation_id.donation_date or fields.Date.context_today(self) + amount_company_currency = donation_currency._convert( + amount, + line.donation_id.company_id.currency_id, + line.donation_id.company_id, + date, + ) + tax_receipt_amount_cc = 0.0 + if line.product_id.tax_receipt_ok: + tax_receipt_amount_cc = amount_company_currency + line.amount_company_currency = amount_company_currency + line.tax_receipt_amount = tax_receipt_amount_cc + + @api.depends("product_id") + def _compute_analytic_distribution(self): + for line in self: + product = line.product_id + if product: + account = False + try: + account = line._get_account() + except Exception: + logger.warning( + "No income account configured for product %s", + product.display_name, + ) + distribution = self.env[ + "account.analytic.distribution.model" + ]._get_distribution( + { + "product_id": product.id, + "product_categ_id": product.categ_id.id, + "account_prefix": account and account.code or False, + "company_id": line.donation_id.company_id.id, + } + ) + line.analytic_distribution = distribution or line.analytic_distribution + + @api.onchange("product_id") + def product_id_change(self): + for line in self: + if line.product_id and line.product_id.list_price: + # We should change that one day... + line.unit_price = line.product_id.list_price + + def _get_account(self): + # Method designed to be inherited (in donation_mass for example) + self.ensure_one() + account = self.with_company( + self.company_id.id + ).product_id._get_product_accounts()["income"] + return account diff --git a/donation/models/donation_campaign.py b/donation/models/donation_campaign.py new file mode 100644 index 000000000..108ebf5e0 --- /dev/null +++ b/donation/models/donation_campaign.py @@ -0,0 +1,35 @@ +# Copyright 2014-2021 Barroux Abbey (http://www.barroux.org) +# Copyright 2014-2021 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class DonationCampaign(models.Model): + _name = "donation.campaign" + _description = "Code attributed for a Donation Campaign" + _order = "sequence, id" + _rec_names_search = ["name", "code"] + + active = fields.Boolean(default=True) + sequence = fields.Integer(default=10) + code = fields.Char() + name = fields.Char(required=True) + start_date = fields.Date(default=fields.Date.context_today) + # company_id is NOT required, it is empty by default + company_id = fields.Many2one("res.company", ondelete="cascade") + note = fields.Text("Notes") + + _code_company_uniq = models.Constraint( + "unique(code, company_id)", + "A campaign with the same code already exists!", + ) + + @api.depends("code", "name") + def _compute_display_name(self): + for camp in self: + name = camp.name + if camp.code: + name = f"[{camp.code}] {name}" + camp.display_name = name diff --git a/donation/models/donation_tax_receipt.py b/donation/models/donation_tax_receipt.py new file mode 100644 index 000000000..22d9cf24a --- /dev/null +++ b/donation/models/donation_tax_receipt.py @@ -0,0 +1,50 @@ +# Copyright 2014-2021 Barroux Abbey (http://www.barroux.org) +# Copyright 2014-2021 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class DonationTaxReceipt(models.Model): + _inherit = "donation.tax.receipt" + + donation_ids = fields.One2many( + "donation.donation", "tax_receipt_id", string="Related Donations" + ) + + @api.model + def update_tax_receipt_annual_dict( + self, tax_receipt_annual_dict, start_date, end_date, company + ): + res = super().update_tax_receipt_annual_dict( + tax_receipt_annual_dict, start_date, end_date, company + ) + donations = self.env["donation.donation"].search( + [ + ("donation_date", ">=", start_date), + ("donation_date", "<=", end_date), + ("tax_receipt_option", "=", "annual"), + ("tax_receipt_id", "=", False), + ("tax_receipt_total", "!=", 0), + ("company_id", "=", company.id), + ("state", "=", "done"), + ] + ) + for donation in donations: + # tax_receipt_total is in company currency + tax_receipt_amount = donation.tax_receipt_total + if company.currency_id.is_zero(tax_receipt_amount): + continue + partner = donation.commercial_partner_id + if partner not in tax_receipt_annual_dict: + tax_receipt_annual_dict[partner] = { + "amount": tax_receipt_amount, + "extra_vals": {"donation_ids": [(6, 0, [donation.id])]}, + } + else: + tax_receipt_annual_dict[partner]["amount"] += tax_receipt_amount + tax_receipt_annual_dict[partner]["extra_vals"]["donation_ids"][0][ + 2 + ].append(donation.id) + return res diff --git a/donation/models/donation_thanks_template.py b/donation/models/donation_thanks_template.py new file mode 100644 index 000000000..44e005016 --- /dev/null +++ b/donation/models/donation_thanks_template.py @@ -0,0 +1,22 @@ +# Copyright 2019 Akretion France +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class DonationThanksTemplate(models.Model): + _name = "donation.thanks.template" + _description = "Donation Thanks Letter Template" + _order = "sequence" + + sequence = fields.Integer(default=10) + name = fields.Char(required=True) + active = fields.Boolean(default=True) + company_id = fields.Many2one( + "res.company", + ondelete="cascade", + default=lambda self: self.env.company, + ) + text = fields.Text(translate=True) + image = fields.Binary(attachment=True) diff --git a/donation/models/res_company.py b/donation/models/res_company.py new file mode 100644 index 000000000..d5e74ba4b --- /dev/null +++ b/donation/models/res_company.py @@ -0,0 +1,41 @@ +# Copyright 2014-2021 Barroux Abbey (http://www.barroux.org) +# Copyright 2014-2021 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models +from odoo.exceptions import ValidationError + + +class ResCompany(models.Model): + _inherit = "res.company" + + donation_credit_transfer_product_id = fields.Many2one( + "product.product", + string="Product for Donations via Credit Transfer", + domain=[("donation_type", "!=", False)], + ondelete="restrict", + check_company=True, + ) + donation_account_id = fields.Many2one( + "account.account", + check_company=True, + copy=False, + ondelete="restrict", + string="Donation by Credit Transfer Account", + help="Transfer account for donations received by credit transfer. ", + ) + + @api.constrains("donation_credit_transfer_product_id") + def _company_donation_bank_statement_check(self): + for company in self: + product = company.donation_credit_transfer_product_id + if product and not product.donation_type: + raise ValidationError( + self.env._( + "On the company %(company)s, the Product for Donations " + "via Credit Transfer (%(product)s) is not a donation product !", + company=company.display_name, + product=product.display_name, + ) + ) diff --git a/donation/models/res_partner.py b/donation/models/res_partner.py new file mode 100644 index 000000000..c1693ae86 --- /dev/null +++ b/donation/models/res_partner.py @@ -0,0 +1,33 @@ +# Copyright 2014-2021 Barroux Abbey (http://www.barroux.org) +# Copyright 2014-2021 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class ResPartner(models.Model): + _inherit = "res.partner" + + donation_ids = fields.One2many( + "donation.donation", "partner_id", string="Donations", readonly=True + ) + donation_count = fields.Integer( + compute="_compute_donation_count", string="# of Donations", compute_sudo=True + ) + + @api.depends("donation_ids.partner_id") + def _compute_donation_count(self): + rg_res = self.env["donation.donation"]._read_group( + [("partner_id", "in", self.ids), ("state", "=", "done")], + groupby=["partner_id"], + aggregates=["__count"], + ) + mapped_data = {partner.id: count for (partner, count) in rg_res} + for partner in self: + partner.donation_count = mapped_data.get(partner.id, 0) + + def _prepare_donor_rank(self): + rank = super()._prepare_donor_rank() + rank += self.donation_count + return rank diff --git a/donation/models/res_users.py b/donation/models/res_users.py new file mode 100644 index 000000000..477621420 --- /dev/null +++ b/donation/models/res_users.py @@ -0,0 +1,21 @@ +# Copyright 2014-2021 Barroux Abbey (http://www.barroux.org) +# Copyright 2014-2021 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class ResUsers(models.Model): + _inherit = "res.users" + + # begin with context_ to allow user to change it by himself + context_donation_campaign_id = fields.Many2one( + "donation.campaign", "Current Donation Campaign" + ) + context_donation_payment_method_line_id = fields.Many2one( + "account.payment.method.line", + "Current Donation Payment Method", + domain=[("donation", "=", True)], + company_dependent=True, + ) diff --git a/donation/post_install.py b/donation/post_install.py new file mode 100644 index 000000000..799d7e0ac --- /dev/null +++ b/donation/post_install.py @@ -0,0 +1,10 @@ +# Copyright 2016-2021 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + + +def update_account_payment_method_line(env): + modes = env["account.payment.method.line"].search( + [("payment_type", "=", "inbound")] + ) + modes.write({"donation": True}) diff --git a/donation/pyproject.toml b/donation/pyproject.toml new file mode 100644 index 000000000..4231d0ccc --- /dev/null +++ b/donation/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/donation/readme/CONFIGURE.md b/donation/readme/CONFIGURE.md new file mode 100644 index 000000000..7839e6ddc --- /dev/null +++ b/donation/readme/CONFIGURE.md @@ -0,0 +1,21 @@ +To configure this module, you need to: + +> - create donation products +> - make sure you have an inbound payment method for each payment method +> used to receive donations. This payment method must be configured with +> *Link to Bank Account* set to *Fixed* and with the donation option +> active. +> - if you wish to have a control amount on the donation, add the users +> to the group *Donation Check Total* + +If you receive donations via credit transfer, you must also: + +- in the configuration page *Invoicing \> Configuration \> Settings*, in + the *Donations* section, select the product that will be used for + donations by credit transfer. +- on the bank journals corresponding to the bank accounts on which you + receive donations by credit transfer, in the *Payments Configuration* + tab, select the *Donation by credit transfer account*. This account + must allow reconciliation. +- Make sure that the accountant that processes bank statements has + *User* access level or higher on the *Donation* application. diff --git a/donation/readme/CONTRIBUTORS.md b/donation/readme/CONTRIBUTORS.md new file mode 100644 index 000000000..6a8eebf5a --- /dev/null +++ b/donation/readme/CONTRIBUTORS.md @@ -0,0 +1,5 @@ +- Brother Bernard \ +- Brother Irénée (Barroux Abbey) +- Alexis de Lattre \ +- Serpent Consulting Services Pvt. Ltd. \ +- Nikul Chaudhary \ diff --git a/donation/readme/DESCRIPTION.md b/donation/readme/DESCRIPTION.md new file mode 100644 index 000000000..32f2c01e7 --- /dev/null +++ b/donation/readme/DESCRIPTION.md @@ -0,0 +1,10 @@ +This module handles donations by cash, check or by credit transfer and +generate the corresponding journal entries and tax receipts. To fully +support donations by credit transfer, if you are using the OCA bank +statement reconcile interface, you also need the module +**donation_bank_statement_oca**. + +This module will assist you in writing a thanks letter. + +This module also supports in-kind donations (in-kind donations don't +generate any accounting entry but can generate a tax receipt). diff --git a/donation/readme/USAGE.md b/donation/readme/USAGE.md new file mode 100644 index 000000000..be645027b --- /dev/null +++ b/donation/readme/USAGE.md @@ -0,0 +1,23 @@ +This module handles donations by cash, check or by credit transfer: + +- for donation by cash or check, you should first create a new donation + and validate it. Then, if you have the module *account_check_deposit* + from the project + [OCA/account-financial-tools](https://github.com/OCA/account-financial-tools), + you can create a check deposit. +- for a donation by credit transfer, the process is different: import + your bank statement file and, while processing it, you will see a + donation button that allow you to create a new donation directly from + the bank statement reconcile interface. + +When you validate a donation: + +- it will create a journal entry that goes directly from the revenue + account to the payment account without going through a receivable + account. +- if the tax receipt option of the donor is configured as *For Each + Donation* and the product of the donation line is eligible to a tax + receipt, it will generate the tax receipt. + +To have some statistics about the donations, go to the menu Donation \> +Reporting \> Donations Analysis. diff --git a/donation/report/__init__.py b/donation/report/__init__.py new file mode 100644 index 000000000..cc7ec032c --- /dev/null +++ b/donation/report/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import donation_report diff --git a/donation/report/donation_report.py b/donation/report/donation_report.py new file mode 100644 index 000000000..3d8d69b23 --- /dev/null +++ b/donation/report/donation_report.py @@ -0,0 +1,119 @@ +# © 2014-2016 Barroux Abbey (http://www.barroux.org) +# © 2014-2016 Akretion France (Alexis de Lattre ) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from psycopg2 import sql + +from odoo import fields, models, tools + + +class DonationReport(models.Model): + _name = "donation.report" + _description = "Donations Analysis" + _auto = False + _rec_name = "donation_date" + _order = "donation_date desc" + + donation_date = fields.Date(readonly=True) + product_id = fields.Many2one("product.product", readonly=True) + product_donation_type = fields.Selection( + related="product_id.donation_type", store=True + ) + partner_id = fields.Many2one("res.partner", "Donor", readonly=True) + country_id = fields.Many2one("res.country", "Partner Country", readonly=True) + company_id = fields.Many2one("res.company", readonly=True) + product_categ_id = fields.Many2one( + "product.category", "Category of Product", readonly=True + ) + campaign_id = fields.Many2one( + "donation.campaign", "Donation Campaign", readonly=True + ) + payment_method_line_id = fields.Many2one( + "account.payment.method.line", readonly=True + ) + thanks_printed = fields.Boolean(readonly=True) + thanks_template_id = fields.Many2one( + "donation.thanks.template", string="Thanks Template", readonly=True + ) + in_kind = fields.Boolean() + tax_receipt_ok = fields.Boolean("Eligible for a Tax Receipt") + company_currency_id = fields.Many2one("res.currency", readonly=True) + amount_company_currency = fields.Monetary( + "Amount", readonly=True, currency_field="company_currency_id" + ) + tax_receipt_amount = fields.Monetary( + "Tax Receipt Eligible Amount", + readonly=True, + currency_field="company_currency_id", + ) + + def _select(self): + return sql.SQL( + """ + SELECT min(l.id) AS id, + d.donation_date, + l.product_id, + l.product_donation_type, + l.in_kind, + l.tax_receipt_ok, + pt.categ_id AS product_categ_id, + d.company_id, + d.payment_method_line_id, + d.partner_id, + d.country_id, + d.campaign_id, + d.company_currency_id, + d.thanks_printed, + d.thanks_template_id, + sum(l.amount_company_currency) AS amount_company_currency, + sum(l.tax_receipt_amount) AS tax_receipt_amount + """ + ) + + def _from(self): + return sql.SQL( + """ + donation_line l + LEFT JOIN donation_donation d ON (d.id=l.donation_id) + LEFT JOIN product_product pp ON (l.product_id=pp.id) + LEFT JOIN product_template pt ON (pp.product_tmpl_id=pt.id) + """ + ) + + def _where(self): + return sql.SQL( + """ + WHERE d.state='done' + """ + ) + + def _group_by(self): + return sql.SQL( + """ + GROUP BY l.product_id, + l.product_donation_type, + l.in_kind, + l.tax_receipt_ok, + pt.categ_id, + d.donation_date, + d.partner_id, + d.country_id, + d.campaign_id, + d.company_id, + d.payment_method_line_id, + d.thanks_printed, + d.thanks_template_id, + d.company_currency_id + """ + ) + + def init(self): + tools.drop_view_if_exists(self.env.cr, self._table) + query = sql.SQL("CREATE OR REPLACE VIEW {0} AS ({1} FROM {2} {3} {4})").format( + sql.Identifier(self._table), + self._select(), + self._from(), + self._where(), + self._group_by(), + ) # pylint: disable=sql-injection + self.env.cr.execute(query) diff --git a/donation/report/donation_report_view.xml b/donation/report/donation_report_view.xml new file mode 100644 index 000000000..ded54fd15 --- /dev/null +++ b/donation/report/donation_report_view.xml @@ -0,0 +1,144 @@ + + + + + donation.report.search + donation.report + + + + + + + + + + + + + + + + + + + + + + + donation.report.graph + donation.report + + + + + + + + + donation.report.pivot + donation.report + + + + + + + + + + + donation.report.list + donation.report + + + + + + + + + + + + + + + + + + + + + + + Donations Analysis + donation.report + pivot,graph,list + + + + diff --git a/donation/report/donation_thanks_report.xml b/donation/report/donation_thanks_report.xml new file mode 100644 index 000000000..d26927deb --- /dev/null +++ b/donation/report/donation_thanks_report.xml @@ -0,0 +1,20 @@ + + + + + Thanks Letter + donation.donation + donation.report_donation_thanks + donation.report_donation_thanks + qweb-pdf + 'donation_thanks-%s%s' % (object.number, object.state == 'draft' and '-draft' or '') + + + diff --git a/donation/report/donation_thanks_view.xml b/donation/report/donation_thanks_view.xml new file mode 100644 index 000000000..5ab9bc159 --- /dev/null +++ b/donation/report/donation_thanks_view.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/donation/security/donation_security.xml b/donation/security/donation_security.xml new file mode 100644 index 000000000..d199727b6 --- /dev/null +++ b/donation/security/donation_security.xml @@ -0,0 +1,91 @@ + + + + + + Donation + Manage donations + 45 + + + + Donation + Manage donations + 45 + + + + Viewer + 10 + + + + User + 20 + + + + + Manager + 30 + + + + + + Donation Check Total + + + + + + + + + + + + Donation Multi-company + + + [('company_id', 'in', company_ids)] + + + Donation Line Multi-company + + + [('company_id', 'in', company_ids)] + + + + Donation Report Multi-company + + [('company_id', 'in', company_ids)] + + + Donation Thanks Template multi-company + + ['|', ('company_id', '=', False), ('company_id', 'in', company_ids)] + + + Donation Campaign multi-company + + ['|', ('company_id', '=', False), ('company_id', 'in', company_ids)] + + + diff --git a/donation/security/ir.model.access.csv b/donation/security/ir.model.access.csv new file mode 100644 index 000000000..fe78cd317 --- /dev/null +++ b/donation/security/ir.model.access.csv @@ -0,0 +1,21 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_donation_donation_viewer,Read access on donation.donation to Donation Viewer,model_donation_donation,group_donation_viewer,1,0,0,0 +access_donation_donation_user,Full access on donation.donation to Donation User,model_donation_donation,group_donation_user,1,1,1,1 +access_donation_campaign_manager,Full access on donation.campaign to Donation Manager,model_donation_campaign,group_donation_manager,1,1,1,1 +access_donation_campaign_viewer,Read access on donation.campaign to Donation Viewer,model_donation_campaign,group_donation_viewer,1,0,0,0 +access_donation_line_viewer,Read access on donation.line to Donation Viewer,model_donation_line,group_donation_viewer,1,0,0,0 +access_donation_line_user,Full access on donation.line to Donation User,model_donation_line,group_donation_user,1,1,1,1 +access_donation_donation_read,Read access on donation.donation to Employee grp,model_donation_donation,base.group_user,1,0,0,0 +access_donation_line_read,Read access on donation.line to Employee grp,model_donation_line,base.group_user,1,0,0,0 +access_account_journal_donation,Read access on account.journal,account.model_account_journal,group_donation_viewer,1,0,0,0 +access_account_move_donation,Full access on account.move,account.model_account_move,group_donation_user,1,1,1,1 +access_account_move_line_donation,Full access on account.move.line,account.model_account_move_line,group_donation_user,1,1,1,1 +access_account_analytic_line_donation,Full access on account.analytic.line to donation user,analytic.model_account_analytic_line,group_donation_user,1,1,1,1 +access_donation_report,Full access on donation.report to Donation Viewer,model_donation_report,group_donation_viewer,1,1,1,1 +access_donation_tax_receipt_viewer,Read access on donation.tax.receipt to Donation Viewer grp,model_donation_tax_receipt,group_donation_viewer,1,0,0,0 +access_donation_tax_receipt,Create access on donation.tax.receipt to Donation User,model_donation_tax_receipt,group_donation_user,1,0,1,0 +access_donation_tax_receipt_full,Full access on donation.tax.receipt to Donation Manager,model_donation_tax_receipt,group_donation_manager,1,1,1,1 +access_donation_thanks_template_manager,Full access on donation.thanks.template to Donation Manager,model_donation_thanks_template,group_donation_manager,1,1,1,1 +access_donation_thanks_template_viewer,Read access on donation.thanks.template to Donation Viewer,model_donation_thanks_template,group_donation_viewer,1,0,0,0 +access_donation_validate,Full access on donation validate wizard,model_donation_validate,group_donation_user,1,1,1,1 +access_donation_tax_receipt_option_switch,Full access on donation_tax_receipt_option_switch wizard,model_donation_tax_receipt_option_switch,group_donation_user,1,1,1,1 diff --git a/donation/static/description/icon.png b/donation/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a9a29546567960489ed0cc91e4442038578ebbb4 GIT binary patch literal 11202 zcmdsdgZ>uBJa*iFR{kUzM&z3`7>t6~5llb51_m#(X=m#>9~4W6&B zub{n)qoq{^`0jNqtlG$m8EG6}-UZDHX@hF26?{bA;Mqu^^B~7_+Ac z1lv9{I;y6@QUuUQ%o?I{#`$50+?o>RAToAPA!^;G*c}0yL*u#H{ zAY1xERX0<`bspq;6vFg-$gK>2jgiXWI50Xbgo3vZ1fnPU-Yz{D?uVPCR6_B0F8LoU zA$C+_g6B!U9gZ3E;6p_^zHJRYuWhEOb$(5i46Ag0iCPIEwhYhw=jhtTd+se1irKtk zdH;RmjIs$j#w1IXY*0E!Z}BIN9TJ~aCu9Jj{n4~pJ3S!sw>fE^qWV~Nn>Q}HYicab z!Y7bY6&E2dj_3CvX>B?mFYxq30YAtx0U-F#8U|ZC0 z!V>u86_ih}bX$@klE$whw{lfsoD0tWJnG=Bto7Myj)E*@7>xO28O@Wr@Il-wm*JO; zAdqI|#Zu23SJR?Ifw*W1MTLaqb!X=x*6QeJ-S1*bfpg`dvsTg3Dtg~&nj;0x>8ae~ zRZhPt#=~G;OtiLCR8er0B8*wd0(ij~VF>H8`2SR>T7|$%p6g-!@cicxSs-t#Rcmoe zdCr*Z*KmRbMon%@)(Au9uQ@)1S!9aw*=V0L*OHx-s%pD%0cUZ^RhDl4AG z*0yJLS$ZApym{oBlL(z16xElt8u0>+jr2m@vo)nkHA`2gqRO{@k!Wsg&W}?*OjeZu zRT(dK5uD?tqr{Xdl!N^S?^K^Xk-YIvES;vQjP2l0qtb$H@$9 zqa}Jybew*ANJZ)#;C+meq{`3^9LB6@L2nF0&nRZhqN61eJNSheK!xBq<|yD_5jZXz z1>9*sFv*p>L=&>H(P;axWHB)ii$30x)B$vBMs_+D<@pohaxU?LCr!ui1-pVWd5v{q z!wssxHQ{2S&YsQNc;iz*MeNjZO?q>Nin+bFWTiMU1=8i^wF#No z;X4}mV^_{Bj;scqxiyF_R%L2r2Y-4DWq!8Dls#ti&|~h|nlMh>v$roHX}X~Q=H)<@ zaXS3Wr)U|t?c-~9+tt58JG zz-aJznRrcn;t)xE1kEA47tLO?YCcKq#PVhRsuhfkTei4-aOc~Wm96|qF-@DV;;U`# zS#5!%JHniA!PpTiLPEquXYdKz`3KCB#cFdVP==)w;C+z;m~RnA{o1W`)@%<;cY zo>n=ZDT4#0)yb!6-tphsQ+D|+wiO(=Srw_@ckuIAzt&cGknoiCxJ6XRd;Xki;XhPK zMZgDvL6=Gdt*SOjHM72#Rznk*KwZLBKAxxQ)koeRXa?wu?pTs0<>b4?kbd_+I*8v3 zai6~9+auNaWAyEihgpVq#4Nifs8BGmdQW;G`{WUe1C8dkz0IF>{1J&HYTa|DodYQ zQet|%%ju|j&O{Y+DaDY2Am8X(wHlCeXtoL`AKU~WvY$jk^^J! z9Le>${hjzqH<0TocE+=o)oQ9}xERsF|8%6sEFk2-@n-IdCm7Cls(W?0cx(_#q>;UPuA6cgXS8GVL--;?Mr}Tw~U8|5$bKdVpAKYjW+C zGbYfP?<<-0<4z_`5?b7|}p+TFI>}Yx7Y$}@cC#^Q5IFz(4ggx0U zysF0Li+N+Nx7v8+%2$EA(qVW{hhg_wkUF2iYBR&Eo_8DyVjMnSu-JrZneW>NA1x=T zqdwm>N;OV2TZ*#rUxfOmw<;`6DP2-Q(Tovnj)L1XmG3&TUw^PKj(wtAKz3jAx4>sZ z*v}tiy0v!2>F4xfg7ZDKMbi^)PS6DDM)PRZE_>S5yOuskbgR$Bc>Qv*n)+-pospwa zsbAT<95vsn?QZAqdd8j&c`6~iSmJ`TS5Hbg<-3lY*Ou4Z1~ItzDO6C5$Aiv~=PeFm zat+BETCN2RRg*i(F!Fs3yYs-NC`v~|CY#WKF->_>cFmT*dTO<<_mVIQui*4(LFVpB z@$6r!Yk4p`U7lm(P2n>Jl4LVolPZJkjBk%g5HLIl4i7W^G6)?|iPjhmy$3%@YifNn*koBJ0=Ep|*z$F^6sZ>wZsTBJc1mR#ob7a+~`29C%{D zH{WWHI#wWm*`Ph+=D%NT!4gQ*e>^#faUQ?3DB60pN-mMxWwp~lxvJQz(>_vjc1c~e=vZ$rFvo!R zh$@o}5TEo8TW#k~4rGvkm5!+fkzbtSqX(f7~>oNa<^`?pD~G>>r;cnW$@* z+gG}lx6$LBOEEq<(YyO1L|I?$79+%gvF=^la6^`$yPYVMG%Q+HW77Uyhx+lZmwZC5h0-}#*fyFLRfL(?U)z+&#s)6ZbzHR(BsV0}NU-`==mJBK}1Be$s z%LA6$=C=Bzjx9HKc_dsZG;|hiz1#U9zZyMHs!9`DFeCkJ+TqjWt4_xdzXuhA{n5P~^8yjaVJ z5tI2H;k+d#@Ex>@L`Ndd_uJAH%jMF|P1u(i{?^MfA#V)`OkJfq8# z2)|lEYs&SHnNS;~j;7xDm!}kB)Yq&aD{)%&) zXt5E0(DaDN=jcl82#KWy@Di=(wHx|i7j3#GSL<-^MPjXDQYTj8V*r&ItLl@>nmg-(ddFVpax z>xk+$?C*+;tY4}E2%$B$?#UMGa}$_F?elP=mwLl5$^gx7^r$TY=23sPlEoxxQ<$Ke zDKtd;akcYd6NZujjzvqT0{PZ$8Oj6?8V#Q$%Tf-s%ue;v>3#|uX1nth0tl6D;k*tfc7m{n4ikgHP0E$Oli`|!nrlDX=A)s1 z{0G-W)g)+bdz-lmVLDr^iY6)+wb5_eSx<&k(0~$ldZxb&UiCGU%N8@&9E}w{4f?k; z|E^0;>ZjA&f4LqY*x8=+dBF?rvF(8r?5%=ES*v@g?QaoM=i3^=na}5F zhuo$O$@u7j(-?1B+tfcgY6LrGLqC5=*dp=8S}J)XN4o}ceA^cx%dZMwSd?~Lw_j7>x`2muJ@$-eKY;>>f4oiM_O zpW0_h(Z)7Vq+MwN@?X7{Yg_$U}kaPgdFF!5F>RjiV^b zuN%42wQe=uqQZr_XL4O4XlsnS z`4q6HtuCBt{o%S5)RN!767U@EQx|wZXX75;b@^!Ger#3KN;2j@!YSEEqK^=q3XMj2 zl1I2ohmt>$0weY{U@VfH!Z+L}@}j@=bhppJJR3EQlFJZeJ^=d^_P}XZtyIFnj~Iy`t$2;_7W}I(TaKAfwAfMN`&teS#8-y;cd5#^zkfEp zO_D56!iAJLhqiHw1&JgLz2HmJqh`0nfzv(Cb1fCp&K!-R6f6MX#9O2Xr&k^=IfOWW z=j|h}JV~o5cJ&-R(4ZwGQ5~WA)3rdm8a8EL@{UAtl6@{{!_+}e3|EW$L#m$|f2dza z14l_xu6Xp(+1w{4d^dwjxcIm6Ps9enM_>MN@ehe^Eth3YI7M~AmdW(opxsRfa4Yiutkml%KL669K5 zU)Pi}Wm)-mJnll~385@(t-21ccoevoq$2a89^!ioF3J-`n2D+$p=Wd_tsSpOV;qUS z4}|{v@dwcdk6~U>7vcT*IR8fa{b>dSfyKWA1VbW6mt*gDuq60Hd!rk96L$6!RMS5l zq^ahnd309&weE}}L({~{2AD?*8vKG+V0o9HcEYW zXA~MvPW>H0tH$Mll=TDW!+<6>>qW4`U|)*?DN@ZMaK?M34*)bk4S2WRL=eF>8_Lkx zJuNS^qPI>k zra3*@ktqs^fM+%6qq88VDUKJBa>qTfjA312_F(Lwyscs~6D27h?$Kw;wgQ8eXKRRc zG6KmnNSJEeB9Ss5sPOOGZD#|JHP;cGAL<`?dTCAmf{Q_@<&*$bP{U0kB_FQ%Ol<=_ zAyn!xf17_S#0l@7<&mQ*AZz3ojNyC%9zJJCdB3>f8WK)Kr&ll67jx~{#2{3JT*SEI zz@XabEa{s9xC{E%4xB&r-}6X<8z8rMLBb0FD$A_;2`iu*u}>5yS7iLa#Ri+^DjlAI zfD&EuyMgj(Fq^gtd!{w8+@iOcS!@Xu;F^@3jK#-7Fmewk)C025r9MGOnkzBKP!kWP zuE)TL-N}@1yUhLJR(Zo?ZsM_|y2i}jF4K-OJXh9+w)qj((0|22etH&R3f33%wk;BOc*TcauQ8@qJ?R6mjOdcI=;=(I z9Ok3E=^siyfhJ?W#VVdpW-py_VBrkphpv0RWP((zn>xX0F1!d;nzBIqPP{AL?1T^l*M4L@1rlJEKs){=0&V}AW7gXu6+xY$YSyriZ$P0>#9 zMf5jhws8lYmg)0Vi03Z$i`mOx3Ztwb<{^uO&a-0CpjH;wFJRnE4==}AI~w|WKxh?G z2peqnj9td>UDm)_&6qzX#(?g;ZQsGYd)7sQ<{vb9DFO*VR04qo*( zSktZhTy}QLU@yq8-TA5uE=&8N-5naFXO|Rm6-zzj;#V1?+pO(gnP-`SSH~5iXVR$x zAwuS{N!1}Kauyf+R$5C$A>u=ZJh~&GoSbb7GVp95!M;j z)3TBFu>*pZa~uA&dAiKixa^}ps(yh3O_M!>!la(E$6FR!U*-f?oBb|=juip(2(CU5 z$7YL2;U^1`XPOla%VY?;>LGv#&&JpS3`2`r^zDno>=2HW@}s8QVm#Fl^)Wq zEbaNpU^AgnlQ*(W<_ueLEjpyX+AP^$0a>P7x30dn)Yso*k^u;Y{4B$VK!wu$pEZu; zI2_6Y$c%1D#DV7Dtu3^|n9xi7aH8bp>=nBJ&X5;!o_RTHuPU$f6$`D`C6nOkL9x{A zeOHpj+2SHeS-DLyi^P@E?Vz!BhuwnIf%<@_V})fr?)z5^smRs%5Oq*~^el%&B-ahw zyf&&hW@*cyUxirmau4 zFwE}l-h3nJ3D?P!G5xM?i}>&D_E`Twat^!1?+7Fsa3AA4RLq^fwR8Z? z0AHB`|8*mQ?E>8UE)wzA9zj+aqN?hE1Jy$5RdTmwCp;g6X5!P47x6Rrq ztWN4#0BaDcI;?8g&wNyK`d+O@?7Pmjk7NYxlx&}HLYs$-xzQ!pJwUl}*2=4Y=@7D1%arXoDw){I ze0X&+SBJQ(yzYxKwl7NQtC!p#Hoj`$+!56eigaXaPGA0RP0CHf^JZ=w%ZF>0r&9Du z@<9I1)?1Yki%J#rIsvIQ&CmZ@wG#(AfIi~Gx+IAlZQGBrRz#J#G{vd~2gaarI)x$e z(d{ia?n0#(y8BXFZx0oC$X5F7Dy)aVb`^Eh&i^Lse7&xfaWFz4M8&O+e=i*>E0=pDh28!RMCpRSa9tspG&Z?w1rb79 zgQuAi?bosw{(Bb`RU4Bp$$(^+Sf@(2{xZ3rDQNgjld@#Kwp}z&+Xbi4<;p#go{#V4 z70-xTNU95FTH;)qqbsgY%8Z8Qx&eB^%=}VH>sLtZSmdh|6%d;pzpmsmk{x@6F(FKH zzfOZ{ywsQpI-7M04B-GEkk%Pv0P`xjl-KDZ(X}4*kp7p|)SprQY;|CJjr5y;x2;^j zF~?lssm9d9=}>~aG*B$Fd&&I2IAzZ>jtorqo&TigrrO`}(GS&^z~ORlS%a#i)(Zi& z)`dxRipmqquC~onZ2xyhpJuwvvEdwnrz25c5Y8;#blw2XLRIOIdQPYJ27{{ygE;MZKk)@w-!Iv!Jazf~1&$5&5-XJ)FykkFeSw&6@I1+Rswa;3UV$6{ zF<_i_odr4N$9NI>a7$UOyyc_;yAAyk0P7qLja+1m)He<92nS%3=I6kOzoO7%{En?1XWX4a-`$)+OLAFyp;q3a}#!L*uk7t)gY(2U)IT;Z0(3t9$@ax#;m;;llYa6+fB$}+gcvz-z_XJ*clop6ppqat9Ji< zntt~t(SyO%XOM&V@ou4v(T4FB>k?`!z6!IpPdcEyP0ng>fJ$am z2fNXmwH=Nd+m}N9Wc(*1wE}}6VZ9uK#icV`s_=A!er9Cvagxd4cE*gR#B%)R@~8?r zoVuUh0qVg*Pr*u<@UV+%JhvUWs~HnllZxL5eX^F=zw^;Yf19VZ9GumE{nCJwJ?G?X z^p>1y*nNa!X(VnJ%(T{lC6|u#vTZUYPZmwax4wC5CB)XhH~1i_tcc*1Ttf;paFgQh zl$^iS`vNDq2t%jaJ!sgAd5U+#`gMQ;^Z8pJJ(8$+WV_#29k*{`3(fOy{2R5JV+w6OWO{i>V z4LL2#p9y_g2x&WM`z~I?cHCm(L1z=!9fWG}OY$#Jgau$AWa%@l;TRWxG7gWUdA@C4 zjFL&zWKL6FXaH~lNE1Xs; z9BIWT*tylM77lE+SiY+fs#wXbm{FL%u61dv0AtK%A|wOU4dL|bc{D6qgo=}b?sT@m zu>=&lx+WDGcu3KFanytfOek>5t0%5LK`LS^eKBVACXJze57ID!8gggL?`b+qm)+c{ zY)z?oEEAK=uA-YN8nbGD?j-Sa-Y&yQvqT^#=C@2Nic7CLg)*@DDz@DrVeI+AsL3_! z?uDYWNxmlaAv8RiRlM93x{=!1q_tUdbNZjWtm5;nQM_K;$iW1evPW3cgz(Kbq;Yh9 z0mmK9r_&i5_;t&FI1yvPdEcW2_mMBvL-_hYS9M;)I=8;fZSPbodU%1<&O;9sbV_TJ z985&`?$$;41FnK6@GH5wM21xdbBjL=c3zy{_*Pn|?J!*HG45~vd-87aZwUPA!d5Xha`LwaV_Zv8PpTC-SvlXM8%wpY-ix(jkcb zJK#Q0&^O0lf;;tF zF)H$Q2D9A2SQ==^yS3m8lO(g$MQUao|vaojXbnbfw@ zXtMi)KNwP>_ezYu47fGYg*16Rgb)Ui_@y1D*Z`-K4zZOTo{s7oPKE_oX z^dzydPcUu$89WEb3*OQ~qo+9%iftXtvc*nzNPJ*@Ybbl(w>O-Mqg?wuW6+z|isPyM zGBL85_Yz4HSGNoO*ByqT8eDgDezQ_~1}G#_rOv_kkH<~j?ix?Y4Gf;nx(?8$sRhi( zBc?*hP^rAb3fXz!3!t43qGCd?s>e`F)rvWquJW6M7c~|Fl z4F}`;BK3aXZciReHhBuMwOt5rW|Z6gB6S3?=)(_>!cuKDU5BO4=4>8wX~ku&A!Ei$|atOi8!>PfhqNS9pTIc2QdU&yRm|{L1?PR zKVsg?$=5exrE1Y}mxywCUQ1UyS`mxxWEe39L?o5biaIJ55}n?o$fH>CxGxGx(bQCj zg(<*3ao(pM5WNal+HJGzG!cef)_@K(I`}O?iiX&akT?_!PG9}+oP~;}FjCv*Zf;3=2?&)0eG(CQCN!c^qaL zOJ`Gwlrsg%7J}8j{G;I>A&9N&N|Cbx@q7dX>x|Vs?$#-)REmHUDd!Br0IixH#n7xr z7V!IwA%d|M=efk>t6Gm%#yJaAo&XQy}$}4YVdTwBH%<+Q9BuT zk_^CItZ6RD064OB;H_FG@-n2%!E(|;h zZV~_8KB#?@VYv9NfIsH(U&o)*3l*+o9?^?lu~nS0CxtD3)0Z!^fPPfn(%-6#8oW(= zV#P?=yk+1dP-diXJhKNd5KeCST+OKz+}{U?Ml%bkFqwZVDI%!VItRK z!P2j$mU=kIXei_#`#(tGfM?-$Hw z@)08%@3gy}J{S7W?$wyW!tc)?(wCn!*`?ks0jq(gGHMeee+w|~l`w2UH%Wp zQ^ui}^0xX^a-D3Qm0VPQ{})DWwg%XgEe68-M(_JuCyMEoPt3UKn1zuc)*CP}T4IKkaD{|8iA B2Fm~d literal 0 HcmV?d00001 diff --git a/donation/static/description/icon.svg b/donation/static/description/icon.svg new file mode 100644 index 000000000..6b8d94559 --- /dev/null +++ b/donation/static/description/icon.svg @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/donation/static/description/index.html b/donation/static/description/index.html new file mode 100644 index 000000000..1713e2151 --- /dev/null +++ b/donation/static/description/index.html @@ -0,0 +1,498 @@ + + + + + +README.rst + + + +
+ + + +Odoo Community Association + +
+

Donation

+ +

Beta License: AGPL-3 OCA/donation Translate me on Weblate Try me on Runboat

+

This module handles donations by cash, check or by credit transfer and +generate the corresponding journal entries and tax receipts. To fully +support donations by credit transfer, if you are using the OCA bank +statement reconcile interface, you also need the module +donation_bank_statement_oca.

+

This module will assist you in writing a thanks letter.

+

This module also supports in-kind donations (in-kind donations don’t +generate any accounting entry but can generate a tax receipt).

+

Table of contents

+ +
+

Configuration

+

To configure this module, you need to:

+
+
    +
  • create donation products
  • +
  • make sure you have an inbound payment method for each payment +method used to receive donations. This payment method must be +configured with Link to Bank Account set to Fixed and with the +donation option active.
  • +
  • if you wish to have a control amount on the donation, add the users +to the group Donation Check Total
  • +
+
+

If you receive donations via credit transfer, you must also:

+
    +
  • in the configuration page Invoicing > Configuration > Settings, in +the Donations section, select the product that will be used for +donations by credit transfer.
  • +
  • on the bank journals corresponding to the bank accounts on which you +receive donations by credit transfer, in the Payments Configuration +tab, select the Donation by credit transfer account. This account +must allow reconciliation.
  • +
  • Make sure that the accountant that processes bank statements has +User access level or higher on the Donation application.
  • +
+
+
+

Usage

+

This module handles donations by cash, check or by credit transfer:

+
    +
  • for donation by cash or check, you should first create a new donation +and validate it. Then, if you have the module account_check_deposit +from the project +OCA/account-financial-tools, +you can create a check deposit.
  • +
  • for a donation by credit transfer, the process is different: import +your bank statement file and, while processing it, you will see a +donation button that allow you to create a new donation directly from +the bank statement reconcile interface.
  • +
+

When you validate a donation:

+
    +
  • it will create a journal entry that goes directly from the revenue +account to the payment account without going through a receivable +account.
  • +
  • if the tax receipt option of the donor is configured as For Each +Donation and the product of the donation line is eligible to a tax +receipt, it will generate the tax receipt.
  • +
+

To have some statistics about the donations, go to the menu Donation > +Reporting > Donations Analysis.

+
+
+

Bug Tracker

+

Bugs are tracked on GitHub 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.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Barroux Abbey
  • +
  • Akretion
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

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.

+

Current maintainer:

+

alexis-via

+

This module is part of the OCA/donation project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+
+ + diff --git a/donation/tests/__init__.py b/donation/tests/__init__.py new file mode 100644 index 000000000..9bc50a42a --- /dev/null +++ b/donation/tests/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import test_donation diff --git a/donation/tests/test_donation.py b/donation/tests/test_donation.py new file mode 100644 index 000000000..8e2939aca --- /dev/null +++ b/donation/tests/test_donation.py @@ -0,0 +1,347 @@ +# Copyright 2015-2021 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +import time + +from odoo import Command, fields +from odoo.tests.common import TransactionCase + + +class TestDonation(TransactionCase): + at_install = False + post_install = True + + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True)) + cls.company = cls.env.ref("base.main_company") + cls.bank_journal = cls.env["account.journal"].create( + { + "type": "bank", + "name": "test bank journal", + "company_id": cls.company.id, + } + ) + cls.payment_account = cls.env["account.account"].create( + { + "name": "Donation Payment account", + "code": "TESTDONATION", + "company_ids": [Command.set([cls.company.id])], + "account_type": "asset_current", + "reconcile": True, + } + ) + cls.payment_method_line = cls.env["account.payment.method.line"].create( + { + "name": "test_payment_method_line", + "company_id": cls.company.id, + "payment_account_id": cls.payment_account.id, + "donation": True, + "journal_id": cls.bank_journal.id, + "payment_method_id": cls.env.ref( + "account.account_payment_method_manual_in" + ).id, + } + ) + today = time.strftime("%Y-%m-%d") + cls.product = cls.env["product.product"].create( + { + "name": "Donation", + "type": "service", + "donation_type": "donation", + "tax_receipt_ok": True, + "taxes_id": False, + } + ) + cls.inkind_product = cls.env["product.product"].create( + { + "name": "In-Kind Donation", + "type": "service", + "donation_type": "donation_in_kind", + "tax_receipt_ok": True, + "taxes_id": False, + } + ) + cls.no_tax_receipt_product = cls.env["product.product"].create( + { + "name": "Donation - no tax receipt", + "type": "service", + "donation_type": "donation", + "tax_receipt_ok": False, + "taxes_id": False, + } + ) + cls.ddo = cls.env["donation.donation"] + cls.donor1 = cls.env["res.partner"].create({"name": "Test donor1"}) + cls.donor2 = cls.env["res.partner"].create({"name": "Test donor2"}) + cls.donor3 = cls.env["res.partner"].create({"name": "Test donor3"}) + + cls.don1 = cls.ddo.create( + { + "company_id": cls.company.id, + "check_total": 100, + "partner_id": cls.donor1.id, + "donation_date": today, + "payment_method_line_id": cls.payment_method_line.id, + "tax_receipt_option": "each", + "line_ids": [ + Command.create( + { + "product_id": cls.product.id, + "quantity": 1, + "unit_price": 100, + } + ) + ], + } + ) + cls.don2 = cls.ddo.create( + { + "company_id": cls.company.id, + "check_total": 120, + "partner_id": cls.donor2.id, + "donation_date": today, + "payment_method_line_id": cls.payment_method_line.id, + "tax_receipt_option": "annual", + "line_ids": [ + Command.create( + { + "product_id": cls.product.id, + "quantity": 1, + "unit_price": 120, + } + ) + ], + } + ) + cls.don3 = cls.ddo.create( + { + "company_id": cls.company.id, + "check_total": 150, + "partner_id": cls.donor3.id, + "donation_date": today, + "payment_method_line_id": cls.payment_method_line.id, + "tax_receipt_option": "none", + "line_ids": [ + Command.create( + { + "product_id": cls.product.id, + "quantity": 1, + "unit_price": 150, + } + ) + ], + } + ) + cls.don4 = cls.ddo.create( + { + "company_id": cls.company.id, + "check_total": 1000, + "partner_id": cls.donor1.id, + "donation_date": today, + "payment_method_line_id": cls.payment_method_line.id, + "tax_receipt_option": "each", + "line_ids": [ + Command.create( + { + "product_id": cls.inkind_product.id, + "quantity": 1, + "unit_price": 1000, + } + ) + ], + } + ) + cls.don5 = cls.ddo.create( + { + "company_id": cls.company.id, + "check_total": 1200, + "partner_id": cls.donor1.id, + "donation_date": today, + "payment_method_line_id": cls.payment_method_line.id, + "tax_receipt_option": "each", + "line_ids": [ + Command.create( + { + "product_id": cls.inkind_product.id, + "quantity": 1, + "unit_price": 800, + } + ), + Command.create( + { + "product_id": cls.product.id, + "quantity": 1, + "unit_price": 400, + } + ), + ], + } + ) + + def test_donation_1(self): + donations = [self.don1, self.don2, self.don3, self.don4, self.don5] + for donation in donations: + self.assertEqual(donation.state, "draft") + donation.validate() + self.assertEqual(donation.state, "done") + if donation == self.don4: # full in-kind donation + self.assertFalse(donation.move_id) + else: + self.assertEqual(donation.move_id.state, "posted") + self.assertEqual(donation.payment_ref, donation.move_id.ref) + self.assertEqual( + donation.payment_method_line_id.journal_id, + donation.move_id.journal_id, + ) + self.assertEqual(donation.donation_date, donation.move_id.date) + if donation.tax_receipt_option == "each" and donation.tax_receipt_total: + self.assertTrue(donation.tax_receipt_id) + tax_receipt = donation.tax_receipt_id + self.assertEqual(tax_receipt.type, "each") + self.assertEqual(donation.commercial_partner_id, tax_receipt.partner_id) + self.assertEqual(donation.donation_date, tax_receipt.donation_date) + self.assertEqual(donation.tax_receipt_total, tax_receipt.amount) + + def test_donation_2(self): + self.donation_id = self.ddo.create( + { + "check_total": 1000, + "partner_id": self.donor1.id, + "donation_date": time.strftime("%Y-%m-%d"), + "payment_method_line_id": self.payment_method_line.id, + "tax_receipt_option": "each", + "line_ids": [ + Command.create( + { + "product_id": self.inkind_product.id, + "quantity": 1, + "unit_price": 1000, + } + ) + ], + } + ) + self.donation_id.save_default_values() + self.donation_id.tax_receipt_option_change() + self.donation_id.validate() + self.donation_id.tax_receipt_id = False + self.donation_id.done2cancel() + self.donation_id.cancel2draft() + self.donation_id.unlink() + + def test_annual_tax_receipt(self): + self.res_partner = self.env["res.partner"] + + partner_familly = self.res_partner.create( + {"name": "Famille Joly", "tax_receipt_option": "annual"} + ) + partner_husband = self.res_partner.create( + {"parent_id": partner_familly.id, "name": "Xavier Joly"} + ) + partner_wife = self.res_partner.create( + {"parent_id": partner_familly.id, "name": "Stéphanie Joly"} + ) + + partner_husband._compute_donation_count() + dons = self.create_donation_annual_receipt( + partner_husband, 40, 10, "CHQ FB 93283290" + ) + dons += self.create_donation_annual_receipt( + partner_husband, 140, 60, "CHQ FB OPIE02" + ) + dons += self.create_donation_annual_receipt( + partner_wife, 20, 5, "CHQ FB AZERTY1242" + ) + dons.validate() + last_day_year = time.strftime("%Y-12-31") + wizard = self.env["tax.receipt.annual.create"].create( + {"start_date": time.strftime("%Y-01-01"), "end_date": last_day_year} + ) + action = wizard.generate_annual_receipts() + tax_receipt_ids = action["domain"][0][2] + self.assertTrue(tax_receipt_ids) + dtro = self.env["donation.tax.receipt"] + tax_receipts = dtro.search( + [ + ("partner_id", "=", partner_familly.id), + ("type", "=", "annual"), + ("id", "in", tax_receipt_ids), + ] + ) + self.assertEqual(len(tax_receipts), 1) + tax_receipt = tax_receipts[0] + self.assertEqual(tax_receipt.amount, 200) + self.assertTrue(tax_receipt.number) + self.assertEqual(tax_receipt.date, fields.Date.from_string(last_day_year)) + self.assertEqual( + tax_receipt.donation_date, fields.Date.from_string(last_day_year) + ) + self.assertEqual(tax_receipt.currency_id, dons[0].company_id.currency_id) + + def test_donation_campaign(self): + self.don8 = self.ddo.create( + { + "check_total": 1000, + "partner_id": self.donor1.id, + "donation_date": time.strftime("%Y-%m-%d"), + "payment_method_line_id": self.payment_method_line.id, + "tax_receipt_option": "each", + "line_ids": [ + Command.create( + { + "product_id": self.inkind_product.id, + "quantity": 1, + "unit_price": 1000, + } + ) + ], + } + ) + + self.validate = self.env["donation.validate"] + wizard = self.validate.with_context( + active_ids=self.don8.ids, + active_model="donation.donation", + active_id=self.don8.id, + ).create({}) + wizard.run() + + self.option_switch = self.env["donation.tax.receipt.option.switch"] + wizard = self.option_switch.create( + {"donation_id": self.don8.id, "new_tax_receipt_option": "annual"} + ) + self.don8.tax_receipt_id = False + wizard.switch() + + def create_donation_annual_receipt( + self, partner, amount_tax_receipt, amount_no_tax_receipt, payment_ref + ): + donation = self.ddo.create( + { + "payment_method_line_id": self.payment_method_line.id, + "partner_id": partner.id, + "tax_receipt_option": "annual", + "donation_date": time.strftime("%Y-01-01"), + "payment_ref": payment_ref, + "line_ids": [ + Command.create( + { + "product_id": self.product.id, + "quantity": 1, + "unit_price": amount_tax_receipt, + } + ), + Command.create( + { + "product_id": self.no_tax_receipt_product.id, + "quantity": 1, + "unit_price": amount_no_tax_receipt, + } + ), + ], + } + ) + return donation diff --git a/donation/views/account_payment_method_line.xml b/donation/views/account_payment_method_line.xml new file mode 100644 index 000000000..e5cacd90a --- /dev/null +++ b/donation/views/account_payment_method_line.xml @@ -0,0 +1,40 @@ + + + + donation.account.payment.method.line.list + account.payment.method.line + + + + + + + + + + + + Payment Methods + account.payment.method.line + list,form + [('payment_type', '=', 'inbound'), ('donation', '=', True)] + {'default_donation': True, 'default_payment_type': 'inbound'} + + + diff --git a/donation/views/donation.xml b/donation/views/donation.xml new file mode 100644 index 000000000..15a0336a0 --- /dev/null +++ b/donation/views/donation.xml @@ -0,0 +1,556 @@ + + + + + donation.form + donation.donation + +
+
+
+ +
+
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creation Donation from Bank Statement Line form + donation.donation + 100 + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + donation.list + donation.donation + + +
+
+ + + + + + + + + + + + + + + +
+
+
+ + donation.search + donation.donation + + + + + + + + + + + + + + + + + + + + + + + + + + + + donation.graph + donation.donation + + + + + + + + + donation.pivot + donation.donation + + + + + + + + + donation.line.list + donation.line + + + + + + + + + + + + + + + + + + + donation.line.form + donation.line + +
+ + + + + + + + + + + + + + + +
+
+
+ + Donations + donation.donation + list,form,pivot,graph + + + + + Donations Lines + donation.line + list,form + + + + + + + + + Products + product.template + kanban,list,form + {'search_default_filter_donation': 1, 'default_donation_type': 'donation', 'default_type': 'service'} + + + + + + + diff --git a/donation/views/donation_campaign.xml b/donation/views/donation_campaign.xml new file mode 100644 index 000000000..4cd7510b7 --- /dev/null +++ b/donation/views/donation_campaign.xml @@ -0,0 +1,90 @@ + + + + + donation.campaign.form + donation.campaign + +
+ + + + + + + + + + + + + +
+
+
+ + donation.campaign.list + donation.campaign + + + + + + + + + + + + donation.campaign.search + donation.campaign + + + + + + + + + + + + + + Donation Campaigns + donation.campaign + list,form + + +
diff --git a/donation/views/donation_tax_receipt.xml b/donation/views/donation_tax_receipt.xml new file mode 100644 index 000000000..af7f785fa --- /dev/null +++ b/donation/views/donation_tax_receipt.xml @@ -0,0 +1,21 @@ + + + + + donation.donation.tax.receipt.form + donation.tax.receipt + + + + + + + + + + diff --git a/donation/views/donation_thanks_template.xml b/donation/views/donation_thanks_template.xml new file mode 100644 index 000000000..b147a4543 --- /dev/null +++ b/donation/views/donation_thanks_template.xml @@ -0,0 +1,72 @@ + + + + + donation.thanks.template + +
+ + + + + + + + + + +
+
+
+ + + donation.thanks.template + + + + + + + + + + + donation.thanks.template + + + + + + + + + + Thanks Letter Templates + donation.thanks.template + list,form + + + +
diff --git a/donation/views/res_partner.xml b/donation/views/res_partner.xml new file mode 100644 index 000000000..408d127b6 --- /dev/null +++ b/donation/views/res_partner.xml @@ -0,0 +1,32 @@ + + + + + Donations + donation.donation + list,form,graph + {'search_default_partner_id': active_id} + + + donation.button.res.partner.form + res.partner + + + + + + + diff --git a/donation/views/res_users.xml b/donation/views/res_users.xml new file mode 100644 index 000000000..a271ed299 --- /dev/null +++ b/donation/views/res_users.xml @@ -0,0 +1,39 @@ + + + + + donation.res.users.form + res.users + + + + + + + + + + donation.preferences.res.users.form + res.users + + + + + + + + + diff --git a/donation/wizard/__init__.py b/donation/wizard/__init__.py new file mode 100644 index 000000000..4dd8fb569 --- /dev/null +++ b/donation/wizard/__init__.py @@ -0,0 +1,3 @@ +from . import donation_validate +from . import tax_receipt_option_switch +from . import res_config_settings diff --git a/donation/wizard/donation_validate.py b/donation/wizard/donation_validate.py new file mode 100644 index 000000000..e9da64c99 --- /dev/null +++ b/donation/wizard/donation_validate.py @@ -0,0 +1,22 @@ +# Copyright 2014-2016 Barroux Abbey (http://www.barroux.org) +# Copyright 2014-2016 Akretion France +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models + + +class DonationValidate(models.TransientModel): + _name = "donation.validate" + _description = "Validate Donations" + + def run(self): + self.ensure_one() + assert ( + self.env.context.get("active_model") == "donation.donation" + ), "Source model must be donations" + assert self.env.context.get("active_ids"), "No donations selected" + donations = self.env["donation.donation"].browse( + self.env.context.get("active_ids") + ) + donations.filtered(lambda x: x.state == "draft").validate() + return diff --git a/donation/wizard/donation_validate_view.xml b/donation/wizard/donation_validate_view.xml new file mode 100644 index 000000000..7522d0e75 --- /dev/null +++ b/donation/wizard/donation_validate_view.xml @@ -0,0 +1,35 @@ + + + + + donation_validate.form + donation.validate + +
+

+ This wizard will validate all the draft donations selected. +

+
+
+
+
+
+ + Validate Draft Donations + donation.validate + form + new + +
diff --git a/donation/wizard/res_config_settings.py b/donation/wizard/res_config_settings.py new file mode 100644 index 000000000..47fca8a6b --- /dev/null +++ b/donation/wizard/res_config_settings.py @@ -0,0 +1,23 @@ +# Copyright 2016-2021 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import fields, models + + +class ResConfigSettings(models.TransientModel): + _inherit = "res.config.settings" + + donation_credit_transfer_product_id = fields.Many2one( + related="company_id.donation_credit_transfer_product_id", readonly=False + ) + donation_account_id = fields.Many2one( + related="company_id.donation_account_id", + readonly=False, + domain="[('reconcile', '=', True), ('active', '=', True), " + "('company_ids', 'in', company_id), ('account_type', '=', 'asset_current')]", + ) + group_donation_check_total = fields.Boolean( + string="Check Total on Donations", + implied_group="donation.group_donation_check_total", + ) diff --git a/donation/wizard/res_config_settings.xml b/donation/wizard/res_config_settings.xml new file mode 100644 index 000000000..f9b814915 --- /dev/null +++ b/donation/wizard/res_config_settings.xml @@ -0,0 +1,57 @@ + + + + + donation.res.config.settings.form + res.config.settings + + + + + + + + + + + + + + + + + + + + + + + Settings + res.config.settings + form + {'module' : 'donation', 'bin_size': False} + + + + diff --git a/donation/wizard/tax_receipt_option_switch.py b/donation/wizard/tax_receipt_option_switch.py new file mode 100644 index 000000000..cd290857c --- /dev/null +++ b/donation/wizard/tax_receipt_option_switch.py @@ -0,0 +1,32 @@ +# Copyright 2017 Barroux Abbey (www.barroux.org) +# Copyright 2017 Akretion France (www.akretion.com) +# @author Alexis de Lattre + +from odoo import fields, models + + +class DonationTaxReceiptOptionSwitch(models.TransientModel): + _name = "donation.tax.receipt.option.switch" + _description = "Switch Donation Tax Receipt Option" + + donation_id = fields.Many2one( + "donation.donation", + string="Donation", + required=True, + default=lambda self: self._context.get("active_id"), + ) + new_tax_receipt_option = fields.Selection( + [("each", "For Each Donation"), ("annual", "Annual Tax Receipt")], + string="Tax Receipt Option", + required=True, + ) + + def switch(self): + self.ensure_one() + assert self.donation_id, "Missing donation" + assert not self.donation_id.tax_receipt_id, "Already linked to a tax receipt" + self.donation_id.write({"tax_receipt_option": self.new_tax_receipt_option}) + receipt = self.donation_id.generate_each_tax_receipt() + if receipt: + self.donation_id.write({"tax_receipt_id": receipt.id}) + return diff --git a/donation/wizard/tax_receipt_option_switch_view.xml b/donation/wizard/tax_receipt_option_switch_view.xml new file mode 100644 index 000000000..cf0b73483 --- /dev/null +++ b/donation/wizard/tax_receipt_option_switch_view.xml @@ -0,0 +1,40 @@ + + + + + donation_tax_receipt_option_switch.form + donation.tax.receipt.option.switch + +
+ + + + +
+
+
+
+
+ + Change Tax Receipt Option + donation.tax.receipt.option.switch + form + new + +
diff --git a/donation_base/README.rst b/donation_base/README.rst new file mode 100644 index 000000000..b473e0b83 --- /dev/null +++ b/donation_base/README.rst @@ -0,0 +1,107 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + +============= +Donation Base +============= + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:880e54d2cacf1a0ea20abf6820323de0b708f85a828696fc1b9ad5e2b687e036 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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/license-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%2Fdonation-lightgray.png?logo=github + :target: https://github.com/OCA/donation/tree/18.0/donation_base + :alt: OCA/donation +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/donation-18-0/donation-18-0-donation_base + :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/donation&target_branch=18.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This is the base module for donations. This module doesn't do anything +in itself ; it just adds some properties on products and partners and +adds the *donation.tax.receipt* object. + +To get some real features, you should install the *donation* or the +*donation_sale* module. To understand the difference between these 2 +modules, read `this post `__. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +To configure this module, you need to: + + - create donation products + - set the *Tax Receipt Option* on partners + +Bug Tracker +=========== + +Bugs are tracked on `GitHub 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 `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* Barroux Abbey +* Akretion + +Contributors +------------ + +- Brother Bernard +- Brother Irénée (Barroux Abbey) +- Alexis de Lattre +- Serpent Consulting Services Pvt. Ltd. +- Nikul Chaudhary + +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 `__: + +|maintainer-alexis-via| + +This module is part of the `OCA/donation `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/donation_base/__init__.py b/donation_base/__init__.py new file mode 100644 index 000000000..f987065d3 --- /dev/null +++ b/donation_base/__init__.py @@ -0,0 +1,4 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import models +from . import wizard diff --git a/donation_base/__manifest__.py b/donation_base/__manifest__.py new file mode 100644 index 000000000..dde94dd20 --- /dev/null +++ b/donation_base/__manifest__.py @@ -0,0 +1,30 @@ +# © 2014-2021 Barroux Abbey (http://www.barroux.org) +# © 2014-2021 Akretion France (Alexis de Lattre ) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "Donation Base", + "version": "19.0.1.0.0", + "category": "Accounting", + "license": "AGPL-3", + "summary": "Base module for donations", + "author": "Barroux Abbey, Akretion, Odoo Community Association (OCA)", + "maintainers": ["alexis-via"], + "website": "https://github.com/OCA/donation", + "depends": ["account"], + "data": [ + "security/ir.model.access.csv", + "security/tax_receipt_security.xml", + "report/report.xml", + "views/product.xml", + "views/res_partner.xml", + "views/donation_tax_receipt.xml", + "wizard/tax_receipt_annual_create_view.xml", + "wizard/tax_receipt_print_view.xml", + "report/report_donationtax.xml", + "data/donation_tax_seq.xml", + "data/donation_mail_template.xml", + ], + "demo": ["demo/donation_demo.xml"], + "installable": True, +} diff --git a/donation_base/data/donation_mail_template.xml b/donation_base/data/donation_mail_template.xml new file mode 100644 index 000000000..a34877942 --- /dev/null +++ b/donation_base/data/donation_mail_template.xml @@ -0,0 +1,57 @@ + + + + + Donation Tax Receipt - Send by Email + {{user.email_formatted}} + {{object.company_id.name}} - Tax Receipt {{object.number or 'n/a'}} + {{object.partner_id.id}} + + + + + + + {{object.partner_id.lang}} + +
+

+ Dear Alexis + + ( + + ) + + ,

+ + Thank you very much for your donation.

+ + Please find enclosed your tax receipt RECPT-2023-001 + amounting in $ 10.00 + from Barroux Abbey. + +
+
+ --
Mitchell Admin
+
+

+

+
+
+
+
diff --git a/donation_base/data/donation_tax_seq.xml b/donation_base/data/donation_tax_seq.xml new file mode 100644 index 000000000..9c9b41d5a --- /dev/null +++ b/donation_base/data/donation_tax_seq.xml @@ -0,0 +1,16 @@ + + + + + Donation Tax Receipt + donation.tax.receipt + %(range_year)s- + + 5 + + diff --git a/donation_base/demo/donation_demo.xml b/donation_base/demo/donation_demo.xml new file mode 100644 index 000000000..7eefbb02f --- /dev/null +++ b/donation_base/demo/donation_demo.xml @@ -0,0 +1,92 @@ + + + + + Donation + DON + + + + 0 + service + donation + + This donation item is eligible for a tax receipt. + + + Donation - no tax receipt + DON-NOTAXR + + + + 0 + service + donation + + This donation item is not eligible for a tax receipt. + + + In-Kind Donation + KIND-DON + + + + 0 + service + donation_in_kind + + This donation item is eligible for a tax receipt. + + + In-Kind Donation - no tax receipt + KIND-DON-NOTAXR + + + + 0 + service + donation_in_kind + + This donation item is not eligible for a tax receipt. + + + + Rémi Duplat + + 12 rue de l'espérance + 69100 + Villeurbanne + + vincent.duplat@yahoo.example.com + each + + + Lucie Dubois + + 34 rue Pierre Dupont + 69001 + Lyon + + lucie.dubois@yahoo.example.com + annual + + + Joe Smith + + Craig Pond Trail + 04431 + East Orland + + + joe.smith@gmail.example.com + none + + diff --git a/donation_base/i18n/de.po b/donation_base/i18n/de.po new file mode 100644 index 000000000..8d5c1ac66 --- /dev/null +++ b/donation_base/i18n/de.po @@ -0,0 +1,698 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * donation_base +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2019-06-28 16:42+0000\n" +"Last-Translator: Ben Brich \n" +"Language-Team: none\n" +"Language: de\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 3.6.1\n" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_res_partner__tax_receipt_count +#: model:ir.model.fields,field_description:donation_base.field_res_users__tax_receipt_count +msgid "# of Tax Receipts" +msgstr "# Spendenbescheinigungen" + +#. module: donation_base +#: model:ir.actions.report,print_report_name:donation_base.report_donation_tax_receipt +msgid "'Fiscal_receipt-'+(object.number or '').replace('/','')" +msgstr "" + +#. module: donation_base +#: model:mail.template,body_html:donation_base.tax_receipt_email_template +msgid "" +"
\n" +"

\n" +" Dear Alexis\n" +" \n" +" (\n" +" \n" +" )\n" +"\n" +" ,

\n" +"\n" +" Thank you very much for your donation.

\n" +"\n" +" Please find enclosed your tax receipt RECPT-2023-001\n" +" amounting in $ 10.00\n" +" from Barroux " +"Abbey.\n" +" \n" +"
\n" +"
\n" +" --
Mitchell Admin
\n" +"
\n" +"

\n" +"

\n" +"
\n" +" " +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_needaction +msgid "Action Needed" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_ids +msgid "Activities" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_state +msgid "Activity State" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_type_icon +msgid "Activity Type Icon" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__amount +msgid "Amount" +msgstr "Betrag" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.report_donationtaxreceipt_document +msgid "Amount Total:" +msgstr "Gesamtbetrag:" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__donation_tax_receipt__type__annual +#: model:ir.model.fields.selection,name:donation_base.selection__res_partner__tax_receipt_option__annual +msgid "Annual Tax Receipt" +msgstr "Sammelspendenbescheinigung" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Annual Tax Receipts" +msgstr "Sammelspendenbescheinigungen" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_attachment_count +msgid "Attachment Count" +msgstr "" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_print_form +#: model_terms:ir.ui.view,arch_db:donation_base.tax_receipt_annual_create_form +msgid "Cancel" +msgstr "Abbrechen" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__company_id +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__company_id +msgid "Company" +msgstr "Unternehmen" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/models/donation_tax_receipt.py:0 +msgid "Compose Email" +msgstr "Verfasse E-Mail" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_res_partner +msgid "Contact" +msgstr "" + +#. module: donation_base +#: model:ir.actions.act_window,name:donation_base.tax_receipt_annual_create_action +msgid "Create Annual Receipts" +msgstr "Erstelle Sammelbescheinigungen" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__create_uid +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__create_uid +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__create_uid +msgid "Created by" +msgstr "Erstellt von" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__create_date +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__create_date +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__create_date +msgid "Created on" +msgstr "Erstellt am" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__currency_id +msgid "Currency" +msgstr "Währung" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__date +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Date" +msgstr "Datum" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.report_donationtaxreceipt_document +msgid "Date:" +msgstr "Datum:" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__display_name +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__display_name +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__display_name +msgid "Display Name" +msgstr "Anzeigename" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_product_product__donation_type +#: model:ir.model.fields,field_description:donation_base.field_product_template__donation_type +#: model:product.template,name:donation_base.product_product_donation_product_template +#: model_terms:ir.ui.view,arch_db:donation_base.product_template_search_view +msgid "Donation" +msgstr "Spende" + +#. module: donation_base +#: model:product.template,name:donation_base.product_product_donation_notaxreceipt_product_template +msgid "Donation - no tax receipt" +msgstr "Spende- keine Spendenbescheinigung" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__donation_date +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Donation Date" +msgstr "Spendendatum" + +#. module: donation_base +#: model:ir.actions.report,name:donation_base.report_donation_tax_receipt +#: model_terms:ir.ui.view,arch_db:donation_base.report_donationtaxreceipt_document +msgid "Donation Tax Receipt" +msgstr "Spendenbescheinigung" + +#. module: donation_base +#: model:mail.template,name:donation_base.tax_receipt_email_template +msgid "Donation Tax Receipt - Send by Email" +msgstr "" + +#. module: donation_base +#: model:ir.actions.act_window,name:donation_base.donation_tax_receipt_action +#: model:ir.actions.act_window,name:donation_base.partner_tax_receipt_action +msgid "Donation Tax Receipts" +msgstr "Spendenbescheinigungen" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.product_template_search_view +msgid "Donation Type" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__partner_id +msgid "Donor" +msgstr "Spender" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_res_partner__donor_rank +#: model:ir.model.fields,field_description:donation_base.field_res_users__donor_rank +msgid "Donor Rank" +msgstr "" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.report_donationtaxreceipt_document +msgid "Donor:" +msgstr "Spender:" + +#. module: donation_base +#: model:ir.actions.act_window,name:donation_base.res_partner_action_donor +#: model_terms:ir.ui.view,arch_db:donation_base.res_partner_view_search +msgid "Donors" +msgstr "" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.product_template_search_view +msgid "Eligible for a Tax Receipt" +msgstr "Geeignet für Spendenbescheinigung" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__end_date +msgid "End Date" +msgstr "Enddatum" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_follower_ids +msgid "Followers" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__res_partner__tax_receipt_option__each +msgid "For Each Donation" +msgstr "Für jede Spende" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.tax_receipt_annual_create_form +msgid "Generate" +msgstr "Erzeugen" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_tax_receipt_annual_create +#: model_terms:ir.ui.view,arch_db:donation_base.tax_receipt_annual_create_form +msgid "Generate Annual Tax Receipts" +msgstr "Erzeuge Sammelspendenbescheinigungen" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Group By" +msgstr "Gruppieren nach" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__has_message +msgid "Has Message" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__id +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__id +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__id +msgid "ID" +msgstr "ID" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_exception_icon +msgid "Icon" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__message_needaction +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__product_template__donation_type__donation_in_kind +#: model:product.template,name:donation_base.product_product_inkind_donation_product_template +msgid "In-Kind Donation" +msgstr "Sachspende" + +#. module: donation_base +#: model:product.template,name:donation_base.product_product_inkind_donation_notaxreceipt_product_template +msgid "In-Kind Donation - no tax receipt" +msgstr "Spachspende - keine Spendenbescheinigung" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_product_product__tax_receipt_ok +#: model:ir.model.fields,field_description:donation_base.field_product_template__tax_receipt_ok +msgid "Is Eligible for a Tax Receipt" +msgstr "Ist geeignet für Spendenbescheinigung" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__write_uid +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__write_uid +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__write_uid +msgid "Last Updated by" +msgstr "Zuletzt aktualisiert von" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__write_date +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__write_date +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__write_date +msgid "Last Updated on" +msgstr "Zuletzt aktualisiert am" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_has_error +msgid "Message Delivery error" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_ids +msgid "Messages" +msgstr "" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/models/donation_tax_receipt.py:0 +msgid "Missing email on partner '%s'." +msgstr "Fehlende Email bei Partner '%s'." + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__product_template__donation_type__donation +msgid "Monetary Donation" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/models/donation_tax_receipt.py:0 +msgid "New" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_summary +msgid "Next Activity Summary" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_type_id +msgid "Next Activity Type" +msgstr "" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/wizard/tax_receipt_annual_create.py:0 +msgid "No annual tax receipt to generate" +msgstr "Keine Sammelspendenbescheinigung zu erzeugen" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__res_partner__tax_receipt_option__none +msgid "None" +msgstr "Keine" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_has_error_counter +msgid "Number of errors" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__message_needaction_counter +msgid "Number of messages requiring action" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__donation_tax_receipt__type__each +msgid "One-Time Tax Receipt" +msgstr "Einmalige Spendenbescheinigung" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "One-Time Tax Receipts" +msgstr "Einmalige Spendenbescheinigungen" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Partner" +msgstr "" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_form +msgid "Print" +msgstr "Druck" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__print_date +msgid "Print Date" +msgstr "Druckdatum" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_donation_tax_receipt_print +msgid "Print Donation Tax Receipts" +msgstr "Drucke Spendenbescheinigungen" + +#. module: donation_base +#: model:ir.actions.act_window,name:donation_base.donation_tax_receipt_print_action +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_print_form +msgid "Print Receipts" +msgstr "Drucke Bescheinigungen" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_print_form +msgid "Print Tax Receipts" +msgstr "Drucke Spendenbescheinigungen" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_product_template +msgid "Product" +msgstr "Produkt" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_product_product +msgid "Product Variant" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__number +msgid "Receipt Number" +msgstr "Bescheinigungsnummer" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__receipt_ids +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_print_form +msgid "Receipts to Print" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_user_id +msgid "Responsible User" +msgstr "" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_form +msgid "Send by Email" +msgstr "Sende per E-Mail" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_product_product__tax_receipt_ok +#: model:ir.model.fields,help:donation_base.field_product_template__tax_receipt_ok +msgid "Specify if the product is eligible for a tax receipt" +msgstr "" +"Spezifizieren Sie hier, ob dieses Produkt für die Erstellung einer " +"Spendenbescheinigung geeignet ist" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__start_date +msgid "Start Date" +msgstr "Anfangsdatum" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__activity_state +msgid "" +"Status based on activities\n" +"Overdue: Due date is already passed\n" +"Today: Activity date is today\n" +"Planned: Future activities." +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_res_partner__tax_receipt_option +#: model:ir.model.fields,field_description:donation_base.field_res_users__tax_receipt_option +msgid "Tax Receipt Option" +msgstr "Spendenbescheinigung" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_donation_tax_receipt +msgid "Tax Receipt for Donations" +msgstr "Steuerbescheinigung für Spenden" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_res_partner__tax_receipt_ids +#: model:ir.model.fields,field_description:donation_base.field_res_users__tax_receipt_ids +#: model_terms:ir.ui.view,arch_db:donation_base.view_partner_property_form +msgid "Tax Receipts" +msgstr "Steuerbescheinigungen" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/wizard/tax_receipt_annual_create.py:0 +msgid "" +"The Donor '%(partner)s' already has an annual tax receipt in this timeframe: " +"%(receipt)s dated %(date)s." +msgstr "" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/wizard/tax_receipt_print.py:0 +msgid "There are no tax receipts to print." +msgstr "Es gibt keine Spendenbescheinigungen zum Drucken." + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/models/product.py:0 +msgid "There shouldn't have any Customer Taxes on the donation product '%s'." +msgstr "" +"Im Produkt '%s' sind Steuern (Verkauf) ausgewählt. In Spendenprodukten " +"dürfen keine Steuern definiert werden." + +#. module: donation_base +#: model_terms:product.template,description:donation_base.product_product_donation_product_template +#: model_terms:product.template,description:donation_base.product_product_inkind_donation_product_template +msgid "This donation item is eligible for a tax receipt." +msgstr "Dieses Spendenprodukt ist geeignet für eine Spendenbescheinigung." + +#. module: donation_base +#: model_terms:product.template,description:donation_base.product_product_donation_notaxreceipt_product_template +#: model_terms:product.template,description:donation_base.product_product_inkind_donation_notaxreceipt_product_template +msgid "This donation item is not eligible for a tax receipt." +msgstr "Dieses Spendenprodukt ist ungeeignet für eine Spendenbescheinigung." + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__type +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Type" +msgstr "Typ" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__website_message_ids +msgid "Website Messages" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__website_message_ids +msgid "Website communication history" +msgstr "" + +#. module: donation_base +#: model:mail.template,subject:donation_base.tax_receipt_email_template +msgid "{{object.company_id.name}} - Tax Receipt {{object.number or 'n/a'}}" +msgstr "" + +#~ msgid "Last Modified on" +#~ msgstr "Zuletzt geändert am" + +#~ msgid "Is a Donation" +#~ msgstr "Ist eine Spende" + +#, python-format +#~ msgid "" +#~ "The option 'In-Kind Donation' is active on the product '%s', so you must " +#~ "also activate the option 'Is a Donation'." +#~ msgstr "" +#~ "Die Option 'Sachspende' ist im Produkt '%s' ausgewählt, deswegen muss " +#~ "auch die Option 'Ist eine Spende' ausgewählt sein." + +#, python-format +#~ msgid "" +#~ "The option 'Is Eligible for a Tax Receipt' is active on the product '%s', " +#~ "so you must also activate the option 'Is a Donation'." +#~ msgstr "" +#~ "The Option 'Geeignet für Spendenbescheinigung' ist im Product '%s' " +#~ "ausgewählt, deswegen muss auch die Option 'Ist eine Spende' ausgewählt " +#~ "sein." + +#~ msgid "" +#~ "${object.company_id.name.replace(' ', '_')}-Tax_Receipt_${(object.number " +#~ "or '').replace('/','_')}" +#~ msgstr "" +#~ "${object.company_id.name.replace(' ', '_')}-Spendenbescheinigung_$" +#~ "{(object.number or '').replace('/','_')}" + +#~ msgid "${object.company_id.name} - Tax Receipt ${object.number or 'n/a'}" +#~ msgstr "" +#~ "${object.company_id.name} - Spendenbescheinigung ${object.number or 'n/a'}" + +#~ msgid "Product Template" +#~ msgstr "Produktvorlage" + +#~ msgid "Search Donation Tax Receipts" +#~ msgstr "Suche Spendenbescheinigungen" + +#, python-format +#~ msgid "" +#~ "The Donor '%s' already has an annual tax receipt in this timeframe: %s " +#~ "dated %s." +#~ msgstr "" +#~ "Der Spender '%s' hat bereits eine Sammelspendenbescheinigung für den " +#~ "Zeitraum vom %s bis %s." + +#~ msgid "" +#~ "\n" +#~ "

Dear ${object.partner_id.name}\n" +#~ " % if object.partner_id.parent_id:\n" +#~ " (${object.partner_id.parent_id.name})\n" +#~ " % endif\n" +#~ " ,

\n" +#~ " \n" +#~ "

Please find enclosed your tax receipt ${object.number}\n" +#~ " amounting in ${object.amount} ${object.currency_id.name}\n" +#~ " from ${object.company_id.name}.\n" +#~ "

\n" +#~ " \n" +#~ "

Thank you very much for your donation.

\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ "

Sehr geehrte/r ${object.partner_id.name}\n" +#~ " % if object.partner_id.parent_id:\n" +#~ " (${object.partner_id.parent_id.name})\n" +#~ " % endif\n" +#~ " ,

\n" +#~ " \n" +#~ "

Im Anhnag erhalten Sie Ihre Spendenbescheinigung $" +#~ "{object.number}\n" +#~ " über den Betrag von ${object.amount} $" +#~ "{object.currency_id.name}\n" +#~ " von ${object.company_id.name}.\n" +#~ "

\n" +#~ " \n" +#~ "

Vielen Dank für Ihre Spende.

\n" +#~ " " + +#~ msgid "Receipts To Print" +#~ msgstr "Bescheinigungen zum drucken" + +#~ msgid "" +#~ "The product '%s' is a donation, so you must configure it as a Service" +#~ msgstr "" +#~ "Das Produkt '%s' ist eine Spende, also muss es als Service konfiguriert " +#~ "werden" diff --git a/donation_base/i18n/donation_base.pot b/donation_base/i18n/donation_base.pot new file mode 100644 index 000000000..6c34f6610 --- /dev/null +++ b/donation_base/i18n/donation_base.pot @@ -0,0 +1,593 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * donation_base +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.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: donation_base +#: model:ir.model.fields,field_description:donation_base.field_res_partner__tax_receipt_count +#: model:ir.model.fields,field_description:donation_base.field_res_users__tax_receipt_count +msgid "# of Tax Receipts" +msgstr "" + +#. module: donation_base +#: model:ir.actions.report,print_report_name:donation_base.report_donation_tax_receipt +msgid "'Fiscal_receipt-'+(object.number or '').replace('/','')" +msgstr "" + +#. module: donation_base +#: model:mail.template,body_html:donation_base.tax_receipt_email_template +msgid "" +"
\n" +"

\n" +" Dear Alexis\n" +" \n" +" (\n" +" \n" +" )\n" +"\n" +" ,

\n" +"\n" +" Thank you very much for your donation.

\n" +"\n" +" Please find enclosed your tax receipt RECPT-2023-001\n" +" amounting in $ 10.00\n" +" from Barroux Abbey.\n" +" \n" +"
\n" +"
\n" +" --
Mitchell Admin
\n" +"
\n" +"

\n" +"

\n" +"
\n" +" " +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_needaction +msgid "Action Needed" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_ids +msgid "Activities" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_state +msgid "Activity State" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_type_icon +msgid "Activity Type Icon" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__amount +msgid "Amount" +msgstr "" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.report_donationtaxreceipt_document +msgid "Amount Total:" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__donation_tax_receipt__type__annual +#: model:ir.model.fields.selection,name:donation_base.selection__res_partner__tax_receipt_option__annual +msgid "Annual Tax Receipt" +msgstr "" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Annual Tax Receipts" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_attachment_count +msgid "Attachment Count" +msgstr "" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_print_form +#: model_terms:ir.ui.view,arch_db:donation_base.tax_receipt_annual_create_form +msgid "Cancel" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__company_id +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__company_id +msgid "Company" +msgstr "" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/models/donation_tax_receipt.py:0 +msgid "Compose Email" +msgstr "" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_res_partner +msgid "Contact" +msgstr "" + +#. module: donation_base +#: model:ir.actions.act_window,name:donation_base.tax_receipt_annual_create_action +msgid "Create Annual Receipts" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__create_uid +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__create_uid +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__create_uid +msgid "Created by" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__create_date +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__create_date +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__create_date +msgid "Created on" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__currency_id +msgid "Currency" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__date +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Date" +msgstr "" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.report_donationtaxreceipt_document +msgid "Date:" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__display_name +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__display_name +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__display_name +msgid "Display Name" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_product_product__donation_type +#: model:ir.model.fields,field_description:donation_base.field_product_template__donation_type +#: model:product.template,name:donation_base.product_product_donation_product_template +#: model_terms:ir.ui.view,arch_db:donation_base.product_template_search_view +msgid "Donation" +msgstr "" + +#. module: donation_base +#: model:product.template,name:donation_base.product_product_donation_notaxreceipt_product_template +msgid "Donation - no tax receipt" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__donation_date +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Donation Date" +msgstr "" + +#. module: donation_base +#: model:ir.actions.report,name:donation_base.report_donation_tax_receipt +#: model_terms:ir.ui.view,arch_db:donation_base.report_donationtaxreceipt_document +msgid "Donation Tax Receipt" +msgstr "" + +#. module: donation_base +#: model:mail.template,name:donation_base.tax_receipt_email_template +msgid "Donation Tax Receipt - Send by Email" +msgstr "" + +#. module: donation_base +#: model:ir.actions.act_window,name:donation_base.donation_tax_receipt_action +#: model:ir.actions.act_window,name:donation_base.partner_tax_receipt_action +msgid "Donation Tax Receipts" +msgstr "" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.product_template_search_view +msgid "Donation Type" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__partner_id +msgid "Donor" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_res_partner__donor_rank +#: model:ir.model.fields,field_description:donation_base.field_res_users__donor_rank +msgid "Donor Rank" +msgstr "" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.report_donationtaxreceipt_document +msgid "Donor:" +msgstr "" + +#. module: donation_base +#: model:ir.actions.act_window,name:donation_base.res_partner_action_donor +#: model_terms:ir.ui.view,arch_db:donation_base.res_partner_view_search +msgid "Donors" +msgstr "" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.product_template_search_view +msgid "Eligible for a Tax Receipt" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__end_date +msgid "End Date" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_follower_ids +msgid "Followers" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__res_partner__tax_receipt_option__each +msgid "For Each Donation" +msgstr "" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.tax_receipt_annual_create_form +msgid "Generate" +msgstr "" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_tax_receipt_annual_create +#: model_terms:ir.ui.view,arch_db:donation_base.tax_receipt_annual_create_form +msgid "Generate Annual Tax Receipts" +msgstr "" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Group By" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__has_message +msgid "Has Message" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__id +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__id +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__id +msgid "ID" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_exception_icon +msgid "Icon" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__message_needaction +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__product_template__donation_type__donation_in_kind +#: model:product.template,name:donation_base.product_product_inkind_donation_product_template +msgid "In-Kind Donation" +msgstr "" + +#. module: donation_base +#: model:product.template,name:donation_base.product_product_inkind_donation_notaxreceipt_product_template +msgid "In-Kind Donation - no tax receipt" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_product_product__tax_receipt_ok +#: model:ir.model.fields,field_description:donation_base.field_product_template__tax_receipt_ok +msgid "Is Eligible for a Tax Receipt" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__write_uid +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__write_uid +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__write_date +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__write_date +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__write_date +msgid "Last Updated on" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_has_error +msgid "Message Delivery error" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_ids +msgid "Messages" +msgstr "" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/models/donation_tax_receipt.py:0 +msgid "Missing email on partner '%s'." +msgstr "" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__product_template__donation_type__donation +msgid "Monetary Donation" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/models/donation_tax_receipt.py:0 +msgid "New" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_summary +msgid "Next Activity Summary" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_type_id +msgid "Next Activity Type" +msgstr "" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/wizard/tax_receipt_annual_create.py:0 +msgid "No annual tax receipt to generate" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__res_partner__tax_receipt_option__none +msgid "None" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_has_error_counter +msgid "Number of errors" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__message_needaction_counter +msgid "Number of messages requiring action" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__donation_tax_receipt__type__each +msgid "One-Time Tax Receipt" +msgstr "" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "One-Time Tax Receipts" +msgstr "" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Partner" +msgstr "" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_form +msgid "Print" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__print_date +msgid "Print Date" +msgstr "" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_donation_tax_receipt_print +msgid "Print Donation Tax Receipts" +msgstr "" + +#. module: donation_base +#: model:ir.actions.act_window,name:donation_base.donation_tax_receipt_print_action +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_print_form +msgid "Print Receipts" +msgstr "" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_print_form +msgid "Print Tax Receipts" +msgstr "" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_product_template +msgid "Product" +msgstr "" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_product_product +msgid "Product Variant" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__number +msgid "Receipt Number" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__receipt_ids +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_print_form +msgid "Receipts to Print" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_user_id +msgid "Responsible User" +msgstr "" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_form +msgid "Send by Email" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_product_product__tax_receipt_ok +#: model:ir.model.fields,help:donation_base.field_product_template__tax_receipt_ok +msgid "Specify if the product is eligible for a tax receipt" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__start_date +msgid "Start Date" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__activity_state +msgid "" +"Status based on activities\n" +"Overdue: Due date is already passed\n" +"Today: Activity date is today\n" +"Planned: Future activities." +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_res_partner__tax_receipt_option +#: model:ir.model.fields,field_description:donation_base.field_res_users__tax_receipt_option +msgid "Tax Receipt Option" +msgstr "" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_donation_tax_receipt +msgid "Tax Receipt for Donations" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_res_partner__tax_receipt_ids +#: model:ir.model.fields,field_description:donation_base.field_res_users__tax_receipt_ids +#: model_terms:ir.ui.view,arch_db:donation_base.view_partner_property_form +msgid "Tax Receipts" +msgstr "" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/wizard/tax_receipt_annual_create.py:0 +msgid "" +"The Donor '%(partner)s' already has an annual tax receipt in this timeframe:" +" %(receipt)s dated %(date)s." +msgstr "" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/wizard/tax_receipt_print.py:0 +msgid "There are no tax receipts to print." +msgstr "" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/models/product.py:0 +msgid "There shouldn't have any Customer Taxes on the donation product '%s'." +msgstr "" + +#. module: donation_base +#: model_terms:product.template,description:donation_base.product_product_donation_product_template +#: model_terms:product.template,description:donation_base.product_product_inkind_donation_product_template +msgid "This donation item is eligible for a tax receipt." +msgstr "" + +#. module: donation_base +#: model_terms:product.template,description:donation_base.product_product_donation_notaxreceipt_product_template +#: model_terms:product.template,description:donation_base.product_product_inkind_donation_notaxreceipt_product_template +msgid "This donation item is not eligible for a tax receipt." +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__type +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Type" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__website_message_ids +msgid "Website Messages" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__website_message_ids +msgid "Website communication history" +msgstr "" + +#. module: donation_base +#: model:mail.template,subject:donation_base.tax_receipt_email_template +msgid "{{object.company_id.name}} - Tax Receipt {{object.number or 'n/a'}}" +msgstr "" diff --git a/donation_base/i18n/es.po b/donation_base/i18n/es.po new file mode 100644 index 000000000..6d4089da2 --- /dev/null +++ b/donation_base/i18n/es.po @@ -0,0 +1,722 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * donation_base +# +# Translators: +# enjolras , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-11 21:44+0000\n" +"PO-Revision-Date: 2023-09-05 21:36+0000\n" +"Last-Translator: Ivorra78 \n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\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: donation_base +#: model:ir.model.fields,field_description:donation_base.field_res_partner__tax_receipt_count +#: model:ir.model.fields,field_description:donation_base.field_res_users__tax_receipt_count +msgid "# of Tax Receipts" +msgstr "# de Comprobantes Fiscales" + +#. module: donation_base +#: model:ir.actions.report,print_report_name:donation_base.report_donation_tax_receipt +msgid "'Fiscal_receipt-'+(object.number or '').replace('/','')" +msgstr "'Fiscal_receipt-'+(object.number or '').replace('/','')" + +#. module: donation_base +#: model:mail.template,body_html:donation_base.tax_receipt_email_template +msgid "" +"
\n" +"

\n" +" Dear Alexis\n" +" \n" +" (\n" +" \n" +" )\n" +"\n" +" ,

\n" +"\n" +" Thank you very much for your donation.

\n" +"\n" +" Please find enclosed your tax receipt RECPT-2023-001\n" +" amounting in $ 10.00\n" +" from Barroux " +"Abbey.\n" +" \n" +"
\n" +"
\n" +" --
Mitchell Admin
\n" +"
\n" +"

\n" +"

\n" +"
\n" +" " +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_needaction +msgid "Action Needed" +msgstr "Acción necesaria" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_ids +msgid "Activities" +msgstr "Actividades" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "Decoración de Actividad de Excepción" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_state +msgid "Activity State" +msgstr "Estado de la Actividad" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_type_icon +msgid "Activity Type Icon" +msgstr "Icono del tipo de actividad" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__amount +msgid "Amount" +msgstr "Importe" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.report_donationtaxreceipt_document +msgid "Amount Total:" +msgstr "Importe total:" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__donation_tax_receipt__type__annual +#: model:ir.model.fields.selection,name:donation_base.selection__res_partner__tax_receipt_option__annual +msgid "Annual Tax Receipt" +msgstr "Recibo de impuestos anual" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Annual Tax Receipts" +msgstr "Recibos de impuestos anuales" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_attachment_count +msgid "Attachment Count" +msgstr "Recuento de archivos adjuntos" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_print_form +#: model_terms:ir.ui.view,arch_db:donation_base.tax_receipt_annual_create_form +msgid "Cancel" +msgstr "Cancelar" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__company_id +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__company_id +msgid "Company" +msgstr "Companía" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/models/donation_tax_receipt.py:0 +msgid "Compose Email" +msgstr "Componer correo electrónico" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_res_partner +msgid "Contact" +msgstr "Contacto" + +#. module: donation_base +#: model:ir.actions.act_window,name:donation_base.tax_receipt_annual_create_action +msgid "Create Annual Receipts" +msgstr "Crear recibos anuales" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__create_uid +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__create_uid +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__create_date +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__create_date +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__create_date +msgid "Created on" +msgstr "Creado el" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__currency_id +msgid "Currency" +msgstr "Moneda" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__date +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Date" +msgstr "Fecha" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.report_donationtaxreceipt_document +msgid "Date:" +msgstr "Fecha:" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__display_name +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__display_name +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__display_name +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_product_product__donation_type +#: model:ir.model.fields,field_description:donation_base.field_product_template__donation_type +#: model:product.template,name:donation_base.product_product_donation_product_template +#: model_terms:ir.ui.view,arch_db:donation_base.product_template_search_view +msgid "Donation" +msgstr "Donativo" + +#. module: donation_base +#: model:product.template,name:donation_base.product_product_donation_notaxreceipt_product_template +msgid "Donation - no tax receipt" +msgstr "Donativo - sin recibo de impuestos" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__donation_date +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Donation Date" +msgstr "Fecha del donativo" + +#. module: donation_base +#: model:ir.actions.report,name:donation_base.report_donation_tax_receipt +#: model_terms:ir.ui.view,arch_db:donation_base.report_donationtaxreceipt_document +msgid "Donation Tax Receipt" +msgstr "Recibo de impuestos de donativo" + +#. module: donation_base +#: model:mail.template,name:donation_base.tax_receipt_email_template +msgid "Donation Tax Receipt - Send by Email" +msgstr "Recibo de impuestos por donación - Enviar por correo electrónico" + +#. module: donation_base +#: model:ir.actions.act_window,name:donation_base.donation_tax_receipt_action +#: model:ir.actions.act_window,name:donation_base.partner_tax_receipt_action +msgid "Donation Tax Receipts" +msgstr "Recibos de impuestos de donativo" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.product_template_search_view +msgid "Donation Type" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__partner_id +msgid "Donor" +msgstr "Donante" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_res_partner__donor_rank +#: model:ir.model.fields,field_description:donation_base.field_res_users__donor_rank +msgid "Donor Rank" +msgstr "Rango del donante" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.report_donationtaxreceipt_document +msgid "Donor:" +msgstr "Donante:" + +#. module: donation_base +#: model:ir.actions.act_window,name:donation_base.res_partner_action_donor +#: model_terms:ir.ui.view,arch_db:donation_base.res_partner_view_search +msgid "Donors" +msgstr "Donantes" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.product_template_search_view +msgid "Eligible for a Tax Receipt" +msgstr "Elegible para un recibo de impuestos" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__end_date +msgid "End Date" +msgstr "Fecha de finalización" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_follower_ids +msgid "Followers" +msgstr "Seguidores/as" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_partner_ids +msgid "Followers (Partners)" +msgstr "Seguidores (socios)" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "Icono de fuente impresionante, por ejemplo fa-tasks" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__res_partner__tax_receipt_option__each +msgid "For Each Donation" +msgstr "Por cada donativo" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.tax_receipt_annual_create_form +msgid "Generate" +msgstr "Generar" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_tax_receipt_annual_create +#: model_terms:ir.ui.view,arch_db:donation_base.tax_receipt_annual_create_form +msgid "Generate Annual Tax Receipts" +msgstr "Generar recibos de impuestos anuales" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Group By" +msgstr "Agrupar por" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__has_message +msgid "Has Message" +msgstr "Tiene mensaje" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__id +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__id +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__id +msgid "ID" +msgstr "ID" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_exception_icon +msgid "Icon" +msgstr "Icono" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "icono para indicar una actividad por excepción." + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__message_needaction +msgid "If checked, new messages require your attention." +msgstr "Si está marcado, nuevos mensajes requieren de su atención." + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "Si está marcada, algunos mensajes tienen un error de entrega." + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__product_template__donation_type__donation_in_kind +#: model:product.template,name:donation_base.product_product_inkind_donation_product_template +msgid "In-Kind Donation" +msgstr "Donativo en especie" + +#. module: donation_base +#: model:product.template,name:donation_base.product_product_inkind_donation_notaxreceipt_product_template +msgid "In-Kind Donation - no tax receipt" +msgstr "Donativo en especie - sin recibo fiscal" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_product_product__tax_receipt_ok +#: model:ir.model.fields,field_description:donation_base.field_product_template__tax_receipt_ok +msgid "Is Eligible for a Tax Receipt" +msgstr "Es elegible para un recibo de impuestos" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_is_follower +msgid "Is Follower" +msgstr "Es seguidor/a" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__write_uid +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__write_uid +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__write_uid +msgid "Last Updated by" +msgstr "Última actualización por" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__write_date +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__write_date +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__write_date +msgid "Last Updated on" +msgstr "Última actualización el" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_has_error +msgid "Message Delivery error" +msgstr "Error en entrega del mensaje" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_ids +msgid "Messages" +msgstr "Mensajes" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/models/donation_tax_receipt.py:0 +msgid "Missing email on partner '%s'." +msgstr "Falta el correo electrónico del socio '%s'." + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__product_template__donation_type__donation +msgid "Monetary Donation" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "Fecha límite de Mi Actividad" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/models/donation_tax_receipt.py:0 +msgid "New" +msgstr "Nuevo/a" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "Fecha Límite para la Próxima Actividad" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_summary +msgid "Next Activity Summary" +msgstr "Resumen de la Siguiente Actividad" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_type_id +msgid "Next Activity Type" +msgstr "Tipo de la Siguiente Actividad" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/wizard/tax_receipt_annual_create.py:0 +msgid "No annual tax receipt to generate" +msgstr "No hay recibos de impuestos anuales a generar" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__res_partner__tax_receipt_option__none +msgid "None" +msgstr "Ninguno" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_needaction_counter +msgid "Number of Actions" +msgstr "Número de acciones" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_has_error_counter +msgid "Number of errors" +msgstr "Número de errores" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__message_needaction_counter +msgid "Number of messages requiring action" +msgstr "Número de mensajes que requieren una acción" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "Número de mensajes con error de entrega" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__donation_tax_receipt__type__each +msgid "One-Time Tax Receipt" +msgstr "Recibo de impuestos por única vez" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "One-Time Tax Receipts" +msgstr "Recibos de impuestos por única vez" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Partner" +msgstr "Socio" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_form +msgid "Print" +msgstr "Imprimir" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__print_date +msgid "Print Date" +msgstr "Fecha de impresión" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_donation_tax_receipt_print +msgid "Print Donation Tax Receipts" +msgstr "Imprimir recibos de impuestos de donativos" + +#. module: donation_base +#: model:ir.actions.act_window,name:donation_base.donation_tax_receipt_print_action +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_print_form +msgid "Print Receipts" +msgstr "Imprimir recibos" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_print_form +msgid "Print Tax Receipts" +msgstr "Imprimir recibos de impuestos" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_product_template +msgid "Product" +msgstr "Producto" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_product_product +msgid "Product Variant" +msgstr "Variante de Producto" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__number +msgid "Receipt Number" +msgstr "Número de recibo" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__receipt_ids +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_print_form +msgid "Receipts to Print" +msgstr "Recibos a imprimir" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_user_id +msgid "Responsible User" +msgstr "Usuario Responsable" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_form +msgid "Send by Email" +msgstr "Enviar por email" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_product_product__tax_receipt_ok +#: model:ir.model.fields,help:donation_base.field_product_template__tax_receipt_ok +msgid "Specify if the product is eligible for a tax receipt" +msgstr "Especifica si el producto es elegible para un recibo de impuestos" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__start_date +msgid "Start Date" +msgstr "Fecha de inicio" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__activity_state +msgid "" +"Status based on activities\n" +"Overdue: Due date is already passed\n" +"Today: Activity date is today\n" +"Planned: Future activities." +msgstr "" +"Estado basado en actividades\n" +"Atrasada: La fecha de vencimiento ya ha pasado\n" +"Hoy: La fecha de entrega es hoy\n" +"Planificada: Futuras actividades." + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_res_partner__tax_receipt_option +#: model:ir.model.fields,field_description:donation_base.field_res_users__tax_receipt_option +msgid "Tax Receipt Option" +msgstr "Opción de recibo de impuestos" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_donation_tax_receipt +msgid "Tax Receipt for Donations" +msgstr "Recibo de impuestos para donaciones" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_res_partner__tax_receipt_ids +#: model:ir.model.fields,field_description:donation_base.field_res_users__tax_receipt_ids +#: model_terms:ir.ui.view,arch_db:donation_base.view_partner_property_form +msgid "Tax Receipts" +msgstr "Recibos de impuestos" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/wizard/tax_receipt_annual_create.py:0 +msgid "" +"The Donor '%(partner)s' already has an annual tax receipt in this timeframe: " +"%(receipt)s dated %(date)s." +msgstr "" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/wizard/tax_receipt_print.py:0 +msgid "There are no tax receipts to print." +msgstr "No hay recibos de impuestos para imprimir." + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/models/product.py:0 +msgid "There shouldn't have any Customer Taxes on the donation product '%s'." +msgstr "" +"No debería haber ningún Impuesto al Cliente en el producto de donación '%s'." + +#. module: donation_base +#: model_terms:product.template,description:donation_base.product_product_donation_product_template +#: model_terms:product.template,description:donation_base.product_product_inkind_donation_product_template +msgid "This donation item is eligible for a tax receipt." +msgstr "Este artículo de donación es elegible para un recibo de impuestos." + +#. module: donation_base +#: model_terms:product.template,description:donation_base.product_product_donation_notaxreceipt_product_template +#: model_terms:product.template,description:donation_base.product_product_inkind_donation_notaxreceipt_product_template +msgid "This donation item is not eligible for a tax receipt." +msgstr "Este artículo de donación no es elegible para un recibo de impuestos." + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__type +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Type" +msgstr "Tipo" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "Tipo (o clase) de actividad excepcional registrada." + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__website_message_ids +msgid "Website Messages" +msgstr "Mensajes de la página web" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__website_message_ids +msgid "Website communication history" +msgstr "Historial de la comunicación en la página web" + +#. module: donation_base +#: model:mail.template,subject:donation_base.tax_receipt_email_template +msgid "{{object.company_id.name}} - Tax Receipt {{object.number or 'n/a'}}" +msgstr "{{object.company_id.name}} - Tax Receipt {{object.number or 'n/a'}}" + +#~ msgid "" +#~ "
\n" +#~ "

\n" +#~ " Dear Alexis\n" +#~ " \n" +#~ " ()\n" +#~ "\n" +#~ " ,

\n" +#~ "\n" +#~ " Thank you very much for your donation.

\n" +#~ "\n" +#~ " Please find enclosed your tax receipt RECPT-2023-001\n" +#~ " amounting in $ 10.00\n" +#~ " from Barroux Abbey.\n" +#~ " \n" +#~ "

\n" +#~ " --
Mitchell Admin
\n" +#~ "
\n" +#~ "

\n" +#~ "

\n" +#~ "
\n" +#~ " " +#~ msgstr "" +#~ "
\n" +#~ "

\n" +#~ " Estimado Alexis\n" +#~ " \n" +#~ " ()\n" +#~ "\n" +#~ " ,

\n" +#~ "\n" +#~ " Muchas gracias por su donación.

\n" +#~ "\n" +#~ " Le adjuntamos su recibo fiscalRECPT-2023-001\n" +#~ " Importe en $ 10.00\n" +#~ " Desde Barroux Abbey.\n" +#~ " \n" +#~ "

\n" +#~ " --
Mitchell Admin
\n" +#~ "
\n" +#~ "

\n" +#~ "

\n" +#~ "
\n" +#~ " " + +#~ msgid "" +#~ "A storable product is a product for which you manage stock. The Inventory " +#~ "app has to be installed.\n" +#~ "A consumable product is a product for which stock is not managed.\n" +#~ "A service is a non-material product you provide." +#~ msgstr "" +#~ "Un producto almacenable es un producto para el que se gestionan " +#~ "existencias. La aplicación Inventario debe estar instalada.\n" +#~ "Un producto consumible es un producto para el que no se gestionan " +#~ "existencias.\n" +#~ "Un servicio es un producto no material que usted proporciona." + +#~ msgid "In-Kind Donation Consummable" +#~ msgstr "Donativo en especie Consumible" + +#~ msgid "In-Kind Donation Service" +#~ msgstr "Servicio de donativos en especie" + +#~ msgid "Last Modified on" +#~ msgstr "Última modificación el" + +#~ msgid "Main Attachment" +#~ msgstr "Archivo adjunto principal" + +#~ msgid "Product Type" +#~ msgstr "Tipo de Producto" + +#, python-format +#~ msgid "" +#~ "The Donor '%(partner)s' already has an annual tax receipt in this " +#~ "timeframe: %(receipt)s dated %(number)s." +#~ msgstr "" +#~ "El donante '%(partner)s' ya tiene un recibo fiscal anual en este periodo: " +#~ "%(receipt)s con fecha %(number)s." + +#~ msgid "" +#~ "{{object.company_id.name.replace(' ', '_')}}-Tax_Receipt_{{(object.number " +#~ "or '').replace('/','_')}}" +#~ msgstr "" +#~ "{{object.company_id.name.replace(' ', '_')}}-Tax_Receipt_{{(object.number " +#~ "or '').replace('/','_')}}" + +#~ msgid "SMS Delivery error" +#~ msgstr "Error en la entrega de sms" + +#~ msgid "Number of messages which requires an action" +#~ msgstr "Número de mensajes que requieren una acción" + +#~ msgid "Is a Donation" +#~ msgstr "Es un donativo" + +#~ msgid "Product Template" +#~ msgstr "Plantilla de producto" + +#~ msgid "Receipts To Print" +#~ msgstr "Recibos a imprimir" diff --git a/donation_base/i18n/fr.po b/donation_base/i18n/fr.po new file mode 100644 index 000000000..1e566526b --- /dev/null +++ b/donation_base/i18n/fr.po @@ -0,0 +1,658 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * donation_base +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-23 15:37+0000\n" +"PO-Revision-Date: 2016-11-23 15:37+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_res_partner__tax_receipt_count +#: model:ir.model.fields,field_description:donation_base.field_res_users__tax_receipt_count +msgid "# of Tax Receipts" +msgstr "Nb de reçus fiscaux" + +#. module: donation_base +#: model:ir.actions.report,print_report_name:donation_base.report_donation_tax_receipt +msgid "'Fiscal_receipt-'+(object.number or '').replace('/','')" +msgstr "" + +#. module: donation_base +#: model:mail.template,body_html:donation_base.tax_receipt_email_template +msgid "" +"
\n" +"

\n" +" Dear Alexis\n" +" \n" +" (\n" +" \n" +" )\n" +"\n" +" ,

\n" +"\n" +" Thank you very much for your donation.

\n" +"\n" +" Please find enclosed your tax receipt RECPT-2023-001\n" +" amounting in $ 10.00\n" +" from Barroux " +"Abbey.\n" +" \n" +"
\n" +"
\n" +" --
Mitchell Admin
\n" +"
\n" +"

\n" +"

\n" +"
\n" +" " +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_needaction +msgid "Action Needed" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_ids +msgid "Activities" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_state +msgid "Activity State" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_type_icon +msgid "Activity Type Icon" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__amount +msgid "Amount" +msgstr "Montant" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.report_donationtaxreceipt_document +msgid "Amount Total:" +msgstr "Montant total :" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__donation_tax_receipt__type__annual +#: model:ir.model.fields.selection,name:donation_base.selection__res_partner__tax_receipt_option__annual +msgid "Annual Tax Receipt" +msgstr "Reçu fiscal annuel" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Annual Tax Receipts" +msgstr "Reçus fiscaux annuels" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_attachment_count +msgid "Attachment Count" +msgstr "" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_print_form +#: model_terms:ir.ui.view,arch_db:donation_base.tax_receipt_annual_create_form +msgid "Cancel" +msgstr "Annuler" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__company_id +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__company_id +msgid "Company" +msgstr "Société" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/models/donation_tax_receipt.py:0 +msgid "Compose Email" +msgstr "" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_res_partner +msgid "Contact" +msgstr "" + +#. module: donation_base +#: model:ir.actions.act_window,name:donation_base.tax_receipt_annual_create_action +msgid "Create Annual Receipts" +msgstr "Créer les reçus annuels" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__create_uid +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__create_uid +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__create_uid +msgid "Created by" +msgstr "Créé par" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__create_date +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__create_date +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__create_date +msgid "Created on" +msgstr "Créé le" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__currency_id +msgid "Currency" +msgstr "Devise" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__date +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Date" +msgstr "Date " + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.report_donationtaxreceipt_document +msgid "Date:" +msgstr "Date :" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__display_name +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__display_name +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__display_name +msgid "Display Name" +msgstr "Afficher le nom" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_product_product__donation_type +#: model:ir.model.fields,field_description:donation_base.field_product_template__donation_type +#: model:product.template,name:donation_base.product_product_donation_product_template +#: model_terms:ir.ui.view,arch_db:donation_base.product_template_search_view +msgid "Donation" +msgstr "Don" + +#. module: donation_base +#: model:product.template,name:donation_base.product_product_donation_notaxreceipt_product_template +msgid "Donation - no tax receipt" +msgstr "Don sans reçu fiscal" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__donation_date +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Donation Date" +msgstr "Date du don" + +#. module: donation_base +#: model:ir.actions.report,name:donation_base.report_donation_tax_receipt +#: model_terms:ir.ui.view,arch_db:donation_base.report_donationtaxreceipt_document +msgid "Donation Tax Receipt" +msgstr "Reçu fiscal de don" + +#. module: donation_base +#: model:mail.template,name:donation_base.tax_receipt_email_template +msgid "Donation Tax Receipt - Send by Email" +msgstr "" + +#. module: donation_base +#: model:ir.actions.act_window,name:donation_base.donation_tax_receipt_action +#: model:ir.actions.act_window,name:donation_base.partner_tax_receipt_action +msgid "Donation Tax Receipts" +msgstr "Reçus fiscaux de dons" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.product_template_search_view +msgid "Donation Type" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__partner_id +msgid "Donor" +msgstr "Donateur" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_res_partner__donor_rank +#: model:ir.model.fields,field_description:donation_base.field_res_users__donor_rank +msgid "Donor Rank" +msgstr "" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.report_donationtaxreceipt_document +msgid "Donor:" +msgstr "Donateur :" + +#. module: donation_base +#: model:ir.actions.act_window,name:donation_base.res_partner_action_donor +#: model_terms:ir.ui.view,arch_db:donation_base.res_partner_view_search +msgid "Donors" +msgstr "" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.product_template_search_view +msgid "Eligible for a Tax Receipt" +msgstr "Éligible reçu fiscal" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__end_date +msgid "End Date" +msgstr "Date de fin" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_follower_ids +msgid "Followers" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__res_partner__tax_receipt_option__each +msgid "For Each Donation" +msgstr "Pour chaque don" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.tax_receipt_annual_create_form +msgid "Generate" +msgstr "Générer" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_tax_receipt_annual_create +#: model_terms:ir.ui.view,arch_db:donation_base.tax_receipt_annual_create_form +msgid "Generate Annual Tax Receipts" +msgstr "Générer les reçus fiscaux annuels" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Group By" +msgstr "Regrouper par" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__has_message +msgid "Has Message" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__id +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__id +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__id +msgid "ID" +msgstr "ID" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_exception_icon +msgid "Icon" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__message_needaction +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__product_template__donation_type__donation_in_kind +#: model:product.template,name:donation_base.product_product_inkind_donation_product_template +msgid "In-Kind Donation" +msgstr "Don en nature" + +#. module: donation_base +#: model:product.template,name:donation_base.product_product_inkind_donation_notaxreceipt_product_template +msgid "In-Kind Donation - no tax receipt" +msgstr "Don en nature sans reçu fiscal" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_product_product__tax_receipt_ok +#: model:ir.model.fields,field_description:donation_base.field_product_template__tax_receipt_ok +msgid "Is Eligible for a Tax Receipt" +msgstr "Est éligible à l'émission d'un reçu fiscal" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__write_uid +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__write_uid +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__write_uid +msgid "Last Updated by" +msgstr "Dernière mise à jour par" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__write_date +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__write_date +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__write_date +msgid "Last Updated on" +msgstr "Dernière mise à jour le" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_has_error +msgid "Message Delivery error" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_ids +msgid "Messages" +msgstr "" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/models/donation_tax_receipt.py:0 +msgid "Missing email on partner '%s'." +msgstr "" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__product_template__donation_type__donation +msgid "Monetary Donation" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/models/donation_tax_receipt.py:0 +msgid "New" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_summary +msgid "Next Activity Summary" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_type_id +msgid "Next Activity Type" +msgstr "" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/wizard/tax_receipt_annual_create.py:0 +msgid "No annual tax receipt to generate" +msgstr "Aucun reçu fiscal à générer" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__res_partner__tax_receipt_option__none +msgid "None" +msgstr "Aucun" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_has_error_counter +msgid "Number of errors" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__message_needaction_counter +msgid "Number of messages requiring action" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__donation_tax_receipt__type__each +msgid "One-Time Tax Receipt" +msgstr "Reçu fiscal ponctuel" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "One-Time Tax Receipts" +msgstr "Reçus fiscaux ponctuels" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Partner" +msgstr "Partenaire" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_form +#, fuzzy +msgid "Print" +msgstr "Date d'impression" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__print_date +msgid "Print Date" +msgstr "Date d'impression" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_donation_tax_receipt_print +#, fuzzy +msgid "Print Donation Tax Receipts" +msgstr "Impression du reçu fiscal" + +#. module: donation_base +#: model:ir.actions.act_window,name:donation_base.donation_tax_receipt_print_action +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_print_form +msgid "Print Receipts" +msgstr "Imprimer les reçus" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_print_form +msgid "Print Tax Receipts" +msgstr "Imprimer les reçus fiscaux" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_product_template +msgid "Product" +msgstr "Article" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_product_product +msgid "Product Variant" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__number +msgid "Receipt Number" +msgstr "Numéro du reçu" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__receipt_ids +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_print_form +msgid "Receipts to Print" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_user_id +msgid "Responsible User" +msgstr "" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_form +msgid "Send by Email" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_product_product__tax_receipt_ok +#: model:ir.model.fields,help:donation_base.field_product_template__tax_receipt_ok +msgid "Specify if the product is eligible for a tax receipt" +msgstr "Définit si l'article est éligible à l'émission d'un reçu fiscal" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__start_date +msgid "Start Date" +msgstr "Date de début" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__activity_state +msgid "" +"Status based on activities\n" +"Overdue: Due date is already passed\n" +"Today: Activity date is today\n" +"Planned: Future activities." +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_res_partner__tax_receipt_option +#: model:ir.model.fields,field_description:donation_base.field_res_users__tax_receipt_option +msgid "Tax Receipt Option" +msgstr "Option pour le reçu fiscal" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_donation_tax_receipt +msgid "Tax Receipt for Donations" +msgstr "Reçu fiscal pour les dons" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_res_partner__tax_receipt_ids +#: model:ir.model.fields,field_description:donation_base.field_res_users__tax_receipt_ids +#: model_terms:ir.ui.view,arch_db:donation_base.view_partner_property_form +msgid "Tax Receipts" +msgstr "Reçus fiscaux" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/wizard/tax_receipt_annual_create.py:0 +msgid "" +"The Donor '%(partner)s' already has an annual tax receipt in this timeframe: " +"%(receipt)s dated %(date)s." +msgstr "" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/wizard/tax_receipt_print.py:0 +msgid "There are no tax receipts to print." +msgstr "Il n'y a aucun reçu fiscal à imprimer." + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/models/product.py:0 +msgid "There shouldn't have any Customer Taxes on the donation product '%s'." +msgstr "" +"Il ne devrait y avoir aucune taxe à la vente sur l'article de don '%s'." + +#. module: donation_base +#: model_terms:product.template,description:donation_base.product_product_donation_product_template +#: model_terms:product.template,description:donation_base.product_product_inkind_donation_product_template +msgid "This donation item is eligible for a tax receipt." +msgstr "Cet article est éligible au reçu fiscal." + +#. module: donation_base +#: model_terms:product.template,description:donation_base.product_product_donation_notaxreceipt_product_template +#: model_terms:product.template,description:donation_base.product_product_inkind_donation_notaxreceipt_product_template +msgid "This donation item is not eligible for a tax receipt." +msgstr "Cet article n'est pas éligible au reçu fiscal." + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__type +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Type" +msgstr "Type" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__website_message_ids +msgid "Website Messages" +msgstr "" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__website_message_ids +msgid "Website communication history" +msgstr "" + +#. module: donation_base +#: model:mail.template,subject:donation_base.tax_receipt_email_template +msgid "{{object.company_id.name}} - Tax Receipt {{object.number or 'n/a'}}" +msgstr "" + +#~ msgid "Last Modified on" +#~ msgstr "Dernière Modification le" + +#~ msgid "Is a Donation" +#~ msgstr "Est un don" + +#, python-format +#~ msgid "" +#~ "The option 'In-Kind Donation' is active on the product '%s', so you must " +#~ "also activate the option 'Is a Donation'." +#~ msgstr "" +#~ "L'option 'Don en nature' est activée sur l'article '%s', donc vous devez " +#~ "également activer l'option 'Est un don'." + +#, python-format +#~ msgid "" +#~ "The option 'Is Eligible for a Tax Receipt' is active on the product '%s', " +#~ "so you must also activate the option 'Is a Donation'." +#~ msgstr "" +#~ "L'option 'Éligible au reçu fiscal' est activée sur l'article '%s', donc " +#~ "vous devez également activer l'option 'Est un don'." + +#~ msgid "Product Template" +#~ msgstr "Modèle d'article" + +#, fuzzy +#~ msgid "Search Donation Tax Receipts" +#~ msgstr "Rechercher dans les reçus fiscaux" + +#, python-format +#~ msgid "" +#~ "The Donor '%s' already has an annual tax receipt in this timeframe: %s " +#~ "dated %s." +#~ msgstr "" +#~ "Le donateur '%s' a déjà un reçu fiscal annuel dans cet intervalle de " +#~ "temps: %s daté du %s." + +#~ msgid "Receipts To Print" +#~ msgstr "Reçus à imprimer" + +#~ msgid "" +#~ "The product '%s' is a donation, so you must configure it as a Service" +#~ msgstr "L'article '%s' est un don, donc il doit être de type 'service'" + +#~ msgid "Donation Taxes Receipts" +#~ msgstr "Reçus fiscaux de dons" + +#~ msgid "Generate Annual Tax Receipt" +#~ msgstr "Générer les reçus fiscaux annuels" + +#~ msgid "Specify if the product can be selected in a donation line." +#~ msgstr "Définit si l'article peut être sélectionné dans une ligne de don." diff --git a/donation_base/i18n/it.po b/donation_base/i18n/it.po new file mode 100644 index 000000000..898e30005 --- /dev/null +++ b/donation_base/i18n/it.po @@ -0,0 +1,738 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * donation_base +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2026-07-07 09:46+0000\n" +"Last-Translator: mymage \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.15.2\n" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_res_partner__tax_receipt_count +#: model:ir.model.fields,field_description:donation_base.field_res_users__tax_receipt_count +msgid "# of Tax Receipts" +msgstr "N° di ricevute fiscali" + +#. module: donation_base +#: model:ir.actions.report,print_report_name:donation_base.report_donation_tax_receipt +msgid "'Fiscal_receipt-'+(object.number or '').replace('/','')" +msgstr "'Fiscal_receipt-'+(object.number or '').replace('/','')" + +#. module: donation_base +#: model:mail.template,body_html:donation_base.tax_receipt_email_template +msgid "" +"
\n" +"

\n" +" Dear Alexis\n" +" \n" +" (\n" +" \n" +" )\n" +"\n" +" ,

\n" +"\n" +" Thank you very much for your donation.

\n" +"\n" +" Please find enclosed your tax receipt RECPT-2023-001\n" +" amounting in $ 10.00\n" +" from Barroux " +"Abbey.\n" +" \n" +"
\n" +"
\n" +" --
Mitchell Admin
\n" +"
\n" +"

\n" +"

\n" +"
\n" +" " +msgstr "" +"
\n" +"

\n" +" Spettabile Alexis\n" +" \n" +" (\n" +" \n" +" )\n" +"\n" +" ,

\n" +"\n" +" grazie per la vostra donazione.

\n" +"\n" +" Trova allegata la sua ricevuta fiscale RECPT-2023-001\n" +" del valore di $ 10.00" +"\n" +" da Barroux " +"Abbey.\n" +" \n" +"
\n" +"
\n" +" --
Mitchell Admin
\n" +"
\n" +"

\n" +"

\n" +"
\n" +" " + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_needaction +msgid "Action Needed" +msgstr "Azione richiesta" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_ids +msgid "Activities" +msgstr "Attività" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "Decorazione eccezione attività" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_state +msgid "Activity State" +msgstr "Stato attività" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_type_icon +msgid "Activity Type Icon" +msgstr "Icona tipo attività" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__amount +msgid "Amount" +msgstr "Valore" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.report_donationtaxreceipt_document +msgid "Amount Total:" +msgstr "Importo totale:" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__donation_tax_receipt__type__annual +#: model:ir.model.fields.selection,name:donation_base.selection__res_partner__tax_receipt_option__annual +msgid "Annual Tax Receipt" +msgstr "Ricevuta fiscale annuale" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Annual Tax Receipts" +msgstr "Ricevute fiscali annuali" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_attachment_count +msgid "Attachment Count" +msgstr "Conteggio allegati" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_print_form +#: model_terms:ir.ui.view,arch_db:donation_base.tax_receipt_annual_create_form +msgid "Cancel" +msgstr "Annulla" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__company_id +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__company_id +msgid "Company" +msgstr "Azienda" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/models/donation_tax_receipt.py:0 +msgid "Compose Email" +msgstr "Componi e-mail" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_res_partner +msgid "Contact" +msgstr "Contatto" + +#. module: donation_base +#: model:ir.actions.act_window,name:donation_base.tax_receipt_annual_create_action +msgid "Create Annual Receipts" +msgstr "Crea ricevute annuali" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__create_uid +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__create_uid +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__create_uid +msgid "Created by" +msgstr "Creato da" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__create_date +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__create_date +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__create_date +msgid "Created on" +msgstr "Creato il" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__currency_id +msgid "Currency" +msgstr "Valuta" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__date +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Date" +msgstr "Data" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.report_donationtaxreceipt_document +msgid "Date:" +msgstr "Data:" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__display_name +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__display_name +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_product_product__donation_type +#: model:ir.model.fields,field_description:donation_base.field_product_template__donation_type +#: model:product.template,name:donation_base.product_product_donation_product_template +#: model_terms:ir.ui.view,arch_db:donation_base.product_template_search_view +msgid "Donation" +msgstr "Donazione" + +#. module: donation_base +#: model:product.template,name:donation_base.product_product_donation_notaxreceipt_product_template +msgid "Donation - no tax receipt" +msgstr "Donazione - senza ricevuta fiscale" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__donation_date +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Donation Date" +msgstr "Data donazione" + +#. module: donation_base +#: model:ir.actions.report,name:donation_base.report_donation_tax_receipt +#: model_terms:ir.ui.view,arch_db:donation_base.report_donationtaxreceipt_document +msgid "Donation Tax Receipt" +msgstr "Ricevuta fiscale donazione" + +#. module: donation_base +#: model:mail.template,name:donation_base.tax_receipt_email_template +msgid "Donation Tax Receipt - Send by Email" +msgstr "Ricevuta fiscale donazione - Invia per e-mail" + +#. module: donation_base +#: model:ir.actions.act_window,name:donation_base.donation_tax_receipt_action +#: model:ir.actions.act_window,name:donation_base.partner_tax_receipt_action +msgid "Donation Tax Receipts" +msgstr "Ricevute fiscali donazione" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.product_template_search_view +msgid "Donation Type" +msgstr "Tipo donazione" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__partner_id +msgid "Donor" +msgstr "Donatore" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_res_partner__donor_rank +#: model:ir.model.fields,field_description:donation_base.field_res_users__donor_rank +msgid "Donor Rank" +msgstr "Livello donatore" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.report_donationtaxreceipt_document +msgid "Donor:" +msgstr "Donatore:" + +#. module: donation_base +#: model:ir.actions.act_window,name:donation_base.res_partner_action_donor +#: model_terms:ir.ui.view,arch_db:donation_base.res_partner_view_search +msgid "Donors" +msgstr "Donatori" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.product_template_search_view +msgid "Eligible for a Tax Receipt" +msgstr "Idoneo per ricevuta fiscale" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__end_date +msgid "End Date" +msgstr "Data fine" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_follower_ids +msgid "Followers" +msgstr "Seguito da" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_partner_ids +msgid "Followers (Partners)" +msgstr "Seguito da (partner)" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "Icona Font Awesome es. fa-tasks" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__res_partner__tax_receipt_option__each +msgid "For Each Donation" +msgstr "Per ogni donazione" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.tax_receipt_annual_create_form +msgid "Generate" +msgstr "Genera" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_tax_receipt_annual_create +#: model_terms:ir.ui.view,arch_db:donation_base.tax_receipt_annual_create_form +msgid "Generate Annual Tax Receipts" +msgstr "Genera ricevute fiscali annuali" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Group By" +msgstr "Raggruppa per" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__has_message +msgid "Has Message" +msgstr "Ha un messaggio" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__id +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__id +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__id +msgid "ID" +msgstr "ID" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_exception_icon +msgid "Icon" +msgstr "Icona" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "Icona per indicare un'attività eccezione." + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__message_needaction +msgid "If checked, new messages require your attention." +msgstr "Se selezionata, nuovi messaggi richiedono attenzione." + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "Se selezionata, alcuni messaggi hanno un errore di consegna." + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__product_template__donation_type__donation_in_kind +#: model:product.template,name:donation_base.product_product_inkind_donation_product_template +msgid "In-Kind Donation" +msgstr "Donazione in natura" + +#. module: donation_base +#: model:product.template,name:donation_base.product_product_inkind_donation_notaxreceipt_product_template +msgid "In-Kind Donation - no tax receipt" +msgstr "Donazione in natura - nessuna ricevuta fiscale" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_product_product__tax_receipt_ok +#: model:ir.model.fields,field_description:donation_base.field_product_template__tax_receipt_ok +msgid "Is Eligible for a Tax Receipt" +msgstr "È idoneo per una ricevuta fiscale" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_is_follower +msgid "Is Follower" +msgstr "Segue" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__write_uid +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__write_uid +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento di" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__write_date +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__write_date +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_has_error +msgid "Message Delivery error" +msgstr "Errore di consegna messaggio" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_ids +msgid "Messages" +msgstr "Messaggi" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/models/donation_tax_receipt.py:0 +msgid "Missing email on partner '%s'." +msgstr "E-mail mancante nel partner '%s'." + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__product_template__donation_type__donation +msgid "Monetary Donation" +msgstr "Donazione in denaro" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "Scadenza mia attività" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/models/donation_tax_receipt.py:0 +msgid "New" +msgstr "Nuova" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "Scadenza prossima attività" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_summary +msgid "Next Activity Summary" +msgstr "Riepilogo prossima attività" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_type_id +msgid "Next Activity Type" +msgstr "Tipo prossima attività" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/wizard/tax_receipt_annual_create.py:0 +msgid "No annual tax receipt to generate" +msgstr "Nessuna ricevuta fiscale annuale da generare" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__res_partner__tax_receipt_option__none +msgid "None" +msgstr "Nessuna" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_needaction_counter +msgid "Number of Actions" +msgstr "Numero di azioni" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__message_has_error_counter +msgid "Number of errors" +msgstr "Numero di errori" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__message_needaction_counter +msgid "Number of messages requiring action" +msgstr "Numero di messaggi che richiedono un'azione" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "Numero di messaggi con errore di consegna" + +#. module: donation_base +#: model:ir.model.fields.selection,name:donation_base.selection__donation_tax_receipt__type__each +msgid "One-Time Tax Receipt" +msgstr "Ricevuta fiscale unica" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "One-Time Tax Receipts" +msgstr "Ricevute fiscali uniche" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Partner" +msgstr "Partner" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_form +msgid "Print" +msgstr "Stampa" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__print_date +msgid "Print Date" +msgstr "Data stampa" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_donation_tax_receipt_print +msgid "Print Donation Tax Receipts" +msgstr "Stampa ricevute fiscali donazione" + +#. module: donation_base +#: model:ir.actions.act_window,name:donation_base.donation_tax_receipt_print_action +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_print_form +msgid "Print Receipts" +msgstr "Stampa ricevute" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_print_form +msgid "Print Tax Receipts" +msgstr "Stampa ricevute fiscali" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_product_template +msgid "Product" +msgstr "Prodotto" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_product_product +msgid "Product Variant" +msgstr "Variante prodotto" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__number +msgid "Receipt Number" +msgstr "Numero ricevuta" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt_print__receipt_ids +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_print_form +msgid "Receipts to Print" +msgstr "Ricevute da stampare" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__activity_user_id +msgid "Responsible User" +msgstr "Utente responsabile" + +#. module: donation_base +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_form +msgid "Send by Email" +msgstr "Invia per e-mail" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_product_product__tax_receipt_ok +#: model:ir.model.fields,help:donation_base.field_product_template__tax_receipt_ok +msgid "Specify if the product is eligible for a tax receipt" +msgstr "Indica se il prodotto è idoneo per una ricevuta fiscale" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_tax_receipt_annual_create__start_date +msgid "Start Date" +msgstr "Data inizio" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__activity_state +msgid "" +"Status based on activities\n" +"Overdue: Due date is already passed\n" +"Today: Activity date is today\n" +"Planned: Future activities." +msgstr "" +"Stato in base alle attività\n" +"Scaduto: la data richiesta è trascorsa\n" +"Oggi: la data attività è oggi\n" +"Pianificato: attività future." + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_res_partner__tax_receipt_option +#: model:ir.model.fields,field_description:donation_base.field_res_users__tax_receipt_option +msgid "Tax Receipt Option" +msgstr "Opzione ricevuta fiscale" + +#. module: donation_base +#: model:ir.model,name:donation_base.model_donation_tax_receipt +msgid "Tax Receipt for Donations" +msgstr "Ricevuta fiscale per donazioni" + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_res_partner__tax_receipt_ids +#: model:ir.model.fields,field_description:donation_base.field_res_users__tax_receipt_ids +#: model_terms:ir.ui.view,arch_db:donation_base.view_partner_property_form +msgid "Tax Receipts" +msgstr "Ricevute fiscali" + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/wizard/tax_receipt_annual_create.py:0 +msgid "" +"The Donor '%(partner)s' already has an annual tax receipt in this timeframe: " +"%(receipt)s dated %(date)s." +msgstr "" +"Il donatore '%(partner)s' ha già una ricevuta fiscale in questo periodo: %" +"(receipt)s datata %(date)s." + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/wizard/tax_receipt_print.py:0 +msgid "There are no tax receipts to print." +msgstr "Non ci sono ricevute fiscali da stampare." + +#. module: donation_base +#. odoo-python +#: code:addons/donation_base/models/product.py:0 +msgid "There shouldn't have any Customer Taxes on the donation product '%s'." +msgstr "" +"Non dovrebbero esserci imposte a carico del cliente sul prodotto donazione " +"'%s'." + +#. module: donation_base +#: model_terms:product.template,description:donation_base.product_product_donation_product_template +#: model_terms:product.template,description:donation_base.product_product_inkind_donation_product_template +msgid "This donation item is eligible for a tax receipt." +msgstr "Questo elemento donazione è idoneo per una ricevuta fiscale." + +#. module: donation_base +#: model_terms:product.template,description:donation_base.product_product_donation_notaxreceipt_product_template +#: model_terms:product.template,description:donation_base.product_product_inkind_donation_notaxreceipt_product_template +msgid "This donation item is not eligible for a tax receipt." +msgstr "Questo elemento donazione non è idoneo per una ricevuta fiscale." + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__type +#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_search +msgid "Type" +msgstr "Tipo" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "Tipo di attività eccezione sul record." + +#. module: donation_base +#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__website_message_ids +msgid "Website Messages" +msgstr "Messaggi sito web" + +#. module: donation_base +#: model:ir.model.fields,help:donation_base.field_donation_tax_receipt__website_message_ids +msgid "Website communication history" +msgstr "Cronologia comunicazioni sito web" + +#. module: donation_base +#: model:mail.template,subject:donation_base.tax_receipt_email_template +msgid "{{object.company_id.name}} - Tax Receipt {{object.number or 'n/a'}}" +msgstr "" +"{{object.company_id.name}} - Ricevuta fiscale {{object.number or 'n/a'}}" + +#~ msgid "" +#~ "
\n" +#~ "

\n" +#~ " Dear Alexis\n" +#~ " \n" +#~ " ()\n" +#~ "\n" +#~ " ,

\n" +#~ "\n" +#~ " Thank you very much for your donation.

\n" +#~ "\n" +#~ " Please find enclosed your tax receipt RECPT-2023-001\n" +#~ " amounting in $ 10.00\n" +#~ " from Barroux Abbey.\n" +#~ " \n" +#~ "

\n" +#~ " --
Mitchell Admin
\n" +#~ "
\n" +#~ "

\n" +#~ "

\n" +#~ "
\n" +#~ " " +#~ msgstr "" +#~ "
\n" +#~ "

\n" +#~ " Spettabile Alexis\n" +#~ " \n" +#~ " ()\n" +#~ "\n" +#~ " ,

\n" +#~ "\n" +#~ " grazie per la donazione.

\n" +#~ "\n" +#~ " In allegato la sua ricevuta fiscale RECPT-2023-001\n" +#~ " del valori di $ 10.00\n" +#~ " da Barroux Abbey.\n" +#~ " \n" +#~ "

\n" +#~ " --
Mitchell Admin
\n" +#~ "
\n" +#~ "

\n" +#~ "

\n" +#~ "
\n" +#~ " " + +#~ msgid "" +#~ "A storable product is a product for which you manage stock. The Inventory " +#~ "app has to be installed.\n" +#~ "A consumable product is a product for which stock is not managed.\n" +#~ "A service is a non-material product you provide." +#~ msgstr "" +#~ "Un prodotto stoccabile è un prodotto per il quale si gestiscono le " +#~ "giacenze. Deve essere installata l'app Magazzino.\n" +#~ "Un prodotto consumabile è un prodotto per il quale non sono gestite le " +#~ "giacenze.\n" +#~ "Un servizio è un prodotto non materiale che viene fornito." + +#~ msgid "In-Kind Donation Consummable" +#~ msgstr "Donazione in nauta consumabile" + +#~ msgid "In-Kind Donation Service" +#~ msgstr "Servizio donazione in natura" + +#~ msgid "Last Modified on" +#~ msgstr "Ultima modifica il" + +#~ msgid "Main Attachment" +#~ msgstr "Allegato principale" + +#~ msgid "Product Type" +#~ msgstr "Tipologia prodotto" + +#, python-format +#~ msgid "" +#~ "The Donor '%(partner)s' already has an annual tax receipt in this " +#~ "timeframe: %(receipt)s dated %(number)s." +#~ msgstr "" +#~ "Il donatore '%(partner)s' ha già una ricevuta fiscale annuale in questo " +#~ "periodo: %(receipt)s datata %(number)s." + +#~ msgid "" +#~ "{{object.company_id.name.replace(' ', '_')}}-Tax_Receipt_{{(object.number " +#~ "or '').replace('/','_')}}" +#~ msgstr "" +#~ "{{object.company_id.name.replace(' ', '_')}}-Tax_Receipt_{{(object.number " +#~ "or '').replace('/','_')}}" diff --git a/donation_base/models/__init__.py b/donation_base/models/__init__.py new file mode 100644 index 000000000..0067d6e8d --- /dev/null +++ b/donation_base/models/__init__.py @@ -0,0 +1,3 @@ +from . import product +from . import res_partner +from . import donation_tax_receipt diff --git a/donation_base/models/donation_tax_receipt.py b/donation_base/models/donation_tax_receipt.py new file mode 100644 index 000000000..2698165a3 --- /dev/null +++ b/donation_base/models/donation_tax_receipt.py @@ -0,0 +1,100 @@ +# Copyright 2014-2021 Barroux Abbey (http://www.barroux.org) +# Copyright 2014-2021 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import _, api, fields, models +from odoo.exceptions import UserError + + +class DonationTaxReceipt(models.Model): + _name = "donation.tax.receipt" + _inherit = ["mail.thread", "mail.activity.mixin"] + _description = "Tax Receipt for Donations" + _order = "id desc" + _rec_name = "number" + + number = fields.Char(string="Receipt Number", tracking=True) + date = fields.Date( + required=True, + default=fields.Date.context_today, + index=True, + tracking=True, + ) + donation_date = fields.Date(tracking=True) + amount = fields.Monetary(tracking=True) + currency_id = fields.Many2one( + "res.currency", + required=True, + ondelete="restrict", + default=lambda self: self.env.company.currency_id.id, + tracking=True, + ) + partner_id = fields.Many2one( + "res.partner", + string="Donor", + required=True, + ondelete="restrict", + domain=[("parent_id", "=", False)], + index=True, + tracking=True, + ) + company_id = fields.Many2one( + "res.company", + string="Company", + required=True, + default=lambda self: self.env.company, + tracking=True, + ) + print_date = fields.Date(tracking=True) + type = fields.Selection( + [("each", "One-Time Tax Receipt"), ("annual", "Annual Tax Receipt")], + required=True, + tracking=True, + ) + + @api.model_create_multi + def create(self, vals_list): + for vals in vals_list: + if "company_id" in vals: + self = self.with_company(vals["company_id"]) + date = vals.get("donation_date") + if vals.get("number", _("New")) == _("New"): + vals["number"] = self.env["ir.sequence"].next_by_code( + "donation.tax.receipt", sequence_date=date + ) or _("New") + return super().create(vals_list) + + @api.model + def update_tax_receipt_annual_dict( + self, tax_receipt_annual_dict, start_date, end_date, company + ): + """This method is inherited in donation and donation_sale + It is called by the tax.receipt.annual.create wizard""" + + def action_send_tax_receipt(self): + self.ensure_one() + if not self.partner_id.email: + raise UserError( + _("Missing email on partner '%s'.") % self.partner_id.display_name + ) + template = self.env.ref("donation_base.tax_receipt_email_template") + layout_xmlid = "mail.mail_notification_light" + ctx = dict( + default_model=self._name, + default_res_ids=self.ids, + default_use_template=bool(template), + default_template_id=template.id, + default_composition_mode="comment", + default_email_layout_xmlid=layout_xmlid, + force_email=True, + ) + action = { + "name": _("Compose Email"), + "type": "ir.actions.act_window", + "view_mode": "form", + "res_model": "mail.compose.message", + "target": "new", + "context": ctx, + } + return action diff --git a/donation_base/models/product.py b/donation_base/models/product.py new file mode 100644 index 000000000..7ee762eef --- /dev/null +++ b/donation_base/models/product.py @@ -0,0 +1,71 @@ +# Copyright 2014-2021 Barroux Abbey (http://www.barroux.org) +# Copyright 2014-2021 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import _, api, fields, models +from odoo.exceptions import ValidationError + + +class ProductTemplate(models.Model): + _inherit = "product.template" + + donation_type = fields.Selection( + selection=[ + ("donation", "Monetary Donation"), + ("donation_in_kind", "In-Kind Donation"), + ], + string="Donation", + ) + tax_receipt_ok = fields.Boolean( + string="Is Eligible for a Tax Receipt", + tracking=True, + compute="_compute_tax_receipt_ok", + readonly=False, + store=True, + precompute=True, + help="Specify if the product is eligible for a tax receipt", + ) + + @api.depends("donation_type") + def _compute_tax_receipt_ok(self): + for product in self: + if not product.donation_type: + product.tax_receipt_ok = False + + @api.onchange("donation_type") + def _donation_change(self): + for product in self: + if product.donation_type: + product.taxes_id = False + product.supplier_taxes_id = False + product.purchase_ok = False + + @api.constrains("donation_type", "taxes_id") + def donation_check(self): + for product in self: + # The check below is to make sure that we don't forget to remove + # the default sale VAT tax on the donation product, particularly + # for users of donation_sale. If there are countries that have + # sale tax on donations (!), please tell us and we can remove this + # constraint + if product.donation_type and product.taxes_id: + raise ValidationError( + _( + "There shouldn't have any Customer Taxes on the " + "donation product '%s'." + ) + % product.display_name + ) + + +class ProductProduct(models.Model): + _inherit = "product.product" + + @api.onchange("donation_type") + def _donation_change(self): + for product in self: + if product.donation_type: + product.taxes_id = False + product.supplier_taxes_id = False + product.purchase_ok = False diff --git a/donation_base/models/res_partner.py b/donation_base/models/res_partner.py new file mode 100644 index 000000000..435d0b6cd --- /dev/null +++ b/donation_base/models/res_partner.py @@ -0,0 +1,56 @@ +# Copyright 2014-2021 Barroux Abbey (http://www.barroux.org) +# Copyright 2014-2021 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class ResPartner(models.Model): + _inherit = "res.partner" + + tax_receipt_option = fields.Selection( + [ + ("none", "None"), + ("each", "For Each Donation"), + ("annual", "Annual Tax Receipt"), + ], + default="each", + tracking=True, + ) + tax_receipt_ids = fields.One2many( + "donation.tax.receipt", "partner_id", string="Tax Receipts" + ) + tax_receipt_count = fields.Integer( + compute="_compute_tax_receipt_count", + string="# of Tax Receipts", + ) + donor_rank = fields.Integer(default=0) + + # I don't want to sync tax_receipt_option between parent and child + # The field tax_receipt_option should be configured on the parent + # and read on the parent + + @api.depends("tax_receipt_ids") + def _compute_tax_receipt_count(self): + for partner in self: + partner.tax_receipt_count = len(partner.tax_receipt_ids.ids) + + @api.model_create_multi + def create(self, vals_list): + search_partner_mode = self.env.context.get("res_partner_search_mode") + is_donor = search_partner_mode == "donor" + if is_donor: + for vals in vals_list: + if "donor_rank" not in vals: + vals["donor_rank"] = 1 + return super().create(vals_list) + + def _prepare_donor_rank(self): + self.ensure_one() + return 0 + + def _update_donor_rank(self): + """This method is inherited in donation and donation_sale""" + self.ensure_one() + self.write({"donor_rank": self._prepare_donor_rank()}) diff --git a/donation_base/pyproject.toml b/donation_base/pyproject.toml new file mode 100644 index 000000000..4231d0ccc --- /dev/null +++ b/donation_base/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/donation_base/readme/CONFIGURE.md b/donation_base/readme/CONFIGURE.md new file mode 100644 index 000000000..24508ad82 --- /dev/null +++ b/donation_base/readme/CONFIGURE.md @@ -0,0 +1,4 @@ +To configure this module, you need to: + +> - create donation products +> - set the *Tax Receipt Option* on partners diff --git a/donation_base/readme/CONTRIBUTORS.md b/donation_base/readme/CONTRIBUTORS.md new file mode 100644 index 000000000..6a8eebf5a --- /dev/null +++ b/donation_base/readme/CONTRIBUTORS.md @@ -0,0 +1,5 @@ +- Brother Bernard \ +- Brother Irénée (Barroux Abbey) +- Alexis de Lattre \ +- Serpent Consulting Services Pvt. Ltd. \ +- Nikul Chaudhary \ diff --git a/donation_base/readme/DESCRIPTION.md b/donation_base/readme/DESCRIPTION.md new file mode 100644 index 000000000..2bda5d654 --- /dev/null +++ b/donation_base/readme/DESCRIPTION.md @@ -0,0 +1,7 @@ +This is the base module for donations. This module doesn't do anything +in itself ; it just adds some properties on products and partners and +adds the *donation.tax.receipt* object. + +To get some real features, you should install the *donation* or the +*donation_sale* module. To understand the difference between these 2 +modules, read [this post](https://github.com/OCA/donation/issues/22). diff --git a/donation_base/report/report.xml b/donation_base/report/report.xml new file mode 100644 index 000000000..81fc8c956 --- /dev/null +++ b/donation_base/report/report.xml @@ -0,0 +1,22 @@ + + + + + Donation Tax Receipt + donation.tax.receipt + qweb-pdf + donation_base.report_donationtaxreceipt + donation_base.report_donationtaxreceipt + 'Fiscal_receipt-'+(object.number or '').replace('/','') + + + report + + diff --git a/donation_base/report/report_donationtax.xml b/donation_base/report/report_donationtax.xml new file mode 100644 index 000000000..95f5464e4 --- /dev/null +++ b/donation_base/report/report_donationtax.xml @@ -0,0 +1,37 @@ + + + + + + + diff --git a/donation_base/security/ir.model.access.csv b/donation_base/security/ir.model.access.csv new file mode 100644 index 000000000..c0b5c76b3 --- /dev/null +++ b/donation_base/security/ir.model.access.csv @@ -0,0 +1,7 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_donation_tax_receipt_full,Full access on donation.tax.receipt to Config grp,model_donation_tax_receipt,base.group_system,1,1,1,1 +access_donation_tax_receipt_account_full,Full access on donation.tax.receipt to Accounting Manager,model_donation_tax_receipt,account.group_account_manager,1,1,1,1 +access_donation_tax_receipt_account_invoice,Create access on donation.tax.receipt to Billing group,model_donation_tax_receipt,account.group_account_invoice,1,0,1,0 +access_donation_tax_receipt_account_readonly,Readonly access on donation.tax.receipt to Auditor group,model_donation_tax_receipt,account.group_account_readonly,1,0,0,0 +access_donation_tax_receipt_print,Donation tax receipt print wizard,model_donation_tax_receipt_print,account.group_account_invoice,1,1,1,1 +access_tax_receipt_annual_create,Donation tax receipt annual create wizard,model_tax_receipt_annual_create,account.group_account_invoice,1,1,1,1 diff --git a/donation_base/security/tax_receipt_security.xml b/donation_base/security/tax_receipt_security.xml new file mode 100644 index 000000000..feb03af5e --- /dev/null +++ b/donation_base/security/tax_receipt_security.xml @@ -0,0 +1,14 @@ + + + + + Donation Tax Receipt Multi-company + + [('company_id', 'in', company_ids)] + + diff --git a/donation_base/static/description/icon.png b/donation_base/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 zcmW++2RxMjAAjx~&dlBk9S+%}OXg)AGE&Cb*&}d0jUxM@u(PQx^-s)697TX`ehR4?GS^qbkof1cslKgkU)h65qZ9Oc=ml_0temigYLJfnz{IDzUf>bGs4N!v3=Z3jMq&A#7%rM5eQ#dc?k~! zVpnB`o+K7|Al`Q_U;eD$B zfJtP*jH`siUq~{KE)`jP2|#TUEFGRryE2`i0**z#*^6~AI|YzIWy$Cu#CSLW3q=GA z6`?GZymC;dCPk~rBS%eCb`5OLr;RUZ;D`}um=H)BfVIq%7VhiMr)_#G0N#zrNH|__ zc+blN2UAB0=617@>_u;MPHN;P;N#YoE=)R#i$k_`UAA>WWCcEVMh~L_ zj--gtp&|K1#58Yz*AHCTMziU1Jzt_jG0I@qAOHsk$2}yTmVkBp_eHuY$A9)>P6o~I z%aQ?!(GqeQ-Y+b0I(m9pwgi(IIZZzsbMv+9w{PFtd_<_(LA~0H(xz{=FhLB@(1&qHA5EJw1>>=%q2f&^X>IQ{!GJ4e9U z&KlB)z(84HmNgm2hg2C0>WM{E(DdPr+EeU_N@57;PC2&DmGFW_9kP&%?X4}+xWi)( z;)z%wI5>D4a*5XwD)P--sPkoY(a~WBw;E~AW`Yue4kFa^LM3X`8x|}ZUeMnqr}>kH zG%WWW>3ml$Yez?i%)2pbKPI7?5o?hydokgQyZsNEr{a|mLdt;X2TX(#B1j35xPnPW z*bMSSOauW>o;*=kO8ojw91VX!qoOQb)zHJ!odWB}d+*K?#sY_jqPdg{Sm2HdYzdEx zOGVPhVRTGPtv0o}RfVP;Nd(|CB)I;*t&QO8h zFfekr30S!-LHmV_Su-W+rEwYXJ^;6&3|L$mMC8*bQptyOo9;>Qb9Q9`ySe3%V$A*9 zeKEe+b0{#KWGp$F+tga)0RtI)nhMa-K@JS}2krK~n8vJ=Ngm?R!9G<~RyuU0d?nz# z-5EK$o(!F?hmX*2Yt6+coY`6jGbb7tF#6nHA zuKk=GGJ;ZwON1iAfG$E#Y7MnZVmrY|j0eVI(DN_MNFJmyZ|;w4tf@=CCDZ#5N_0K= z$;R~bbk?}TpfDjfB&aiQ$VA}s?P}xPERJG{kxk5~R`iRS(SK5d+Xs9swCozZISbnS zk!)I0>t=A<-^z(cmSFz3=jZ23u13X><0b)P)^1T_))Kr`e!-pb#q&J*Q`p+B6la%C zuVl&0duN<;uOsB3%T9Fp8t{ED108<+W(nOZd?gDnfNBC3>M8WE61$So|P zVvqH0SNtDTcsUdzaMDpT=Ty0pDHHNL@Z0w$Y`XO z2M-_r1S+GaH%pz#Uy0*w$Vdl=X=rQXEzO}d6J^R6zjM1u&c9vYLvLp?W7w(?np9x1 zE_0JSAJCPB%i7p*Wvg)pn5T`8k3-uR?*NT|J`eS#_#54p>!p(mLDvmc-3o0mX*mp_ zN*AeS<>#^-{S%W<*mz^!X$w_2dHWpcJ6^j64qFBft-o}o_Vx80o0>}Du;>kLts;$8 zC`7q$QI(dKYG`Wa8#wl@V4jVWBRGQ@1dr-hstpQL)Tl+aqVpGpbSfN>5i&QMXfiZ> zaA?T1VGe?rpQ@;+pkrVdd{klI&jVS@I5_iz!=UMpTsa~mBga?1r}aRBm1WS;TT*s0f0lY=JBl66Upy)-k4J}lh=P^8(SXk~0xW=T9v*B|gzIhN z>qsO7dFd~mgxAy4V?&)=5ieYq?zi?ZEoj)&2o)RLy=@hbCRcfT5jigwtQGE{L*8<@Yd{zg;CsL5mvzfDY}P-wos_6PfprFVaeqNE%h zKZhLtcQld;ZD+>=nqN~>GvROfueSzJD&BE*}XfU|H&(FssBqY=hPCt`d zH?@s2>I(|;fcW&YM6#V#!kUIP8$Nkdh0A(bEVj``-AAyYgwY~jB zT|I7Bf@%;7aL7Wf4dZ%VqF$eiaC38OV6oy3Z#TER2G+fOCd9Iaoy6aLYbPTN{XRPz z;U!V|vBf%H!}52L2gH_+j;`bTcQRXB+y9onc^wLm5wi3-Be}U>k_u>2Eg$=k!(l@I zcCg+flakT2Nej3i0yn+g+}%NYb?ta;R?(g5SnwsQ49U8Wng8d|{B+lyRcEDvR3+`O{zfmrmvFrL6acVP%yG98X zo&+VBg@px@i)%o?dG(`T;n*$S5*rnyiR#=wW}}GsAcfyQpE|>a{=$Hjg=-*_K;UtD z#z-)AXwSRY?OPefw^iI+ z)AXz#PfEjlwTes|_{sB?4(O@fg0AJ^g8gP}ex9Ucf*@_^J(s_5jJV}c)s$`Myn|Kd z$6>}#q^n{4vN@+Os$m7KV+`}c%4)4pv@06af4-x5#wj!KKb%caK{A&Y#Rfs z-po?Dcb1({W=6FKIUirH&(yg=*6aLCekcKwyfK^JN5{wcA3nhO(o}SK#!CINhI`-I z1)6&n7O&ZmyFMuNwvEic#IiOAwNkR=u5it{B9n2sAJV5pNhar=j5`*N!Na;c7g!l$ z3aYBqUkqqTJ=Re-;)s!EOeij=7SQZ3Hq}ZRds%IM*PtM$wV z@;rlc*NRK7i3y5BETSKuumEN`Xu_8GP1Ri=OKQ$@I^ko8>H6)4rjiG5{VBM>B|%`&&s^)jS|-_95&yc=GqjNo{zFkw%%HHhS~e=s zD#sfS+-?*t|J!+ozP6KvtOl!R)@@-z24}`9{QaVLD^9VCSR2b`b!KC#o;Ki<+wXB6 zx3&O0LOWcg4&rv4QG0)4yb}7BFSEg~=IR5#ZRj8kg}dS7_V&^%#Do==#`u zpy6{ox?jWuR(;pg+f@mT>#HGWHAJRRDDDv~@(IDw&R>9643kK#HN`!1vBJHnC+RM&yIh8{gG2q zA%e*U3|N0XSRa~oX-3EAneep)@{h2vvd3Xvy$7og(sayr@95+e6~Xvi1tUqnIxoIH zVWo*OwYElb#uyW{Imam6f2rGbjR!Y3`#gPqkv57dB6K^wRGxc9B(t|aYDGS=m$&S!NmCtrMMaUg(c zc2qC=2Z`EEFMW-me5B)24AqF*bV5Dr-M5ig(l-WPS%CgaPzs6p_gnCIvTJ=Y<6!gT zVt@AfYCzjjsMEGi=rDQHo0yc;HqoRNnNFeWZgcm?f;cp(6CNylj36DoL(?TS7eU#+ z7&mfr#y))+CJOXQKUMZ7QIdS9@#-}7y2K1{8)cCt0~-X0O!O?Qx#E4Og+;A2SjalQ zs7r?qn0H044=sDN$SRG$arw~n=+T_DNdSrarmu)V6@|?1-ZB#hRn`uilTGPJ@fqEy zGt(f0B+^JDP&f=r{#Y_wi#AVDf-y!RIXU^0jXsFpf>=Ji*TeqSY!H~AMbJdCGLhC) zn7Rx+sXw6uYj;WRYrLd^5IZq@6JI1C^YkgnedZEYy<&4(z%Q$5yv#Boo{AH8n$a zhb4Y3PWdr269&?V%uI$xMcUrMzl=;w<_nm*qr=c3Rl@i5wWB;e-`t7D&c-mcQl7x! zZWB`UGcw=Y2=}~wzrfLx=uet<;m3~=8I~ZRuzvMQUQdr+yTV|ATf1Uuomr__nDf=X zZ3WYJtHp_ri(}SQAPjv+Y+0=fH4krOP@S&=zZ-t1jW1o@}z;xk8 z(Nz1co&El^HK^NrhVHa-_;&88vTU>_J33=%{if;BEY*J#1n59=07jrGQ#IP>@u#3A z;!q+E1Rj3ZJ+!4bq9F8PXJ@yMgZL;>&gYA0%_Kbi8?S=XGM~dnQZQ!yBSgcZhY96H zrWnU;k)qy`rX&&xlDyA%(a1Hhi5CWkmg(`Gb%m(HKi-7Z!LKGRP_B8@`7&hdDy5n= z`OIxqxiVfX@OX1p(mQu>0Ai*v_cTMiw4qRt3~NBvr9oBy0)r>w3p~V0SCm=An6@3n)>@z!|o-$HvDK z|3D2ZMJkLE5loMKl6R^ez@Zz%S$&mbeoqH5`Bb){Ei21q&VP)hWS2tjShfFtGE+$z zzCR$P#uktu+#!w)cX!lWN1XU%K-r=s{|j?)Akf@q#3b#{6cZCuJ~gCxuMXRmI$nGtnH+-h z+GEi!*X=AP<|fG`1>MBdTb?28JYc=fGvAi2I<$B(rs$;eoJCyR6_bc~p!XR@O-+sD z=eH`-ye})I5ic1eL~TDmtfJ|8`0VJ*Yr=hNCd)G1p2MMz4C3^Mj?7;!w|Ly%JqmuW zlIEW^Ft%z?*|fpXda>Jr^1noFZEwFgVV%|*XhH@acv8rdGxeEX{M$(vG{Zw+x(ei@ zmfXb22}8-?Fi`vo-YVrTH*C?a8%M=Hv9MqVH7H^J$KsD?>!SFZ;ZsvnHr_gn=7acz z#W?0eCdVhVMWN12VV^$>WlQ?f;P^{(&pYTops|btm6aj>_Uz+hqpGwB)vWp0Cf5y< zft8-je~nn?W11plq}N)4A{l8I7$!ks_x$PXW-2XaRFswX_BnF{R#6YIwMhAgd5F9X zGmwdadS6(a^fjHtXg8=l?Rc0Sm%hk6E9!5cLVloEy4eh(=FwgP`)~I^5~pBEWo+F6 zSf2ncyMurJN91#cJTy_u8Y}@%!bq1RkGC~-bV@SXRd4F{R-*V`bS+6;W5vZ(&+I<9$;-V|eNfLa5n-6% z2(}&uGRF;p92eS*sE*oR$@pexaqr*meB)VhmIg@h{uzkk$9~qh#cHhw#>O%)b@+(| z^IQgqzuj~Sk(J;swEM-3TrJAPCq9k^^^`q{IItKBRXYe}e0Tdr=Huf7da3$l4PdpwWDop%^}n;dD#K4s#DYA8SHZ z&1!riV4W4R7R#C))JH1~axJ)RYnM$$lIR%6fIVA@zV{XVyx}C+a-Dt8Y9M)^KU0+H zR4IUb2CJ{Hg>CuaXtD50jB(_Tcx=Z$^WYu2u5kubqmwp%drJ6 z?Fo40g!Qd<-l=TQxqHEOuPX0;^z7iX?Ke^a%XT<13TA^5`4Xcw6D@Ur&VT&CUe0d} z1GjOVF1^L@>O)l@?bD~$wzgf(nxX1OGD8fEV?TdJcZc2KoUe|oP1#=$$7ee|xbY)A zDZq+cuTpc(fFdj^=!;{k03C69lMQ(|>uhRfRu%+!k&YOi-3|1QKB z z?n?eq1XP>p-IM$Z^C;2L3itnbJZAip*Zo0aw2bs8@(s^~*8T9go!%dHcAz2lM;`yp zD=7&xjFV$S&5uDaiScyD?B-i1ze`+CoRtz`Wn+Zl&#s4&}MO{@N!ufrzjG$B79)Y2d3tBk&)TxUTw@QS0TEL_?njX|@vq?Uz(nBFK5Pq7*xj#u*R&i|?7+6# z+|r_n#SW&LXhtheZdah{ZVoqwyT{D>MC3nkFF#N)xLi{p7J1jXlmVeb;cP5?e(=f# zuT7fvjSbjS781v?7{)-X3*?>tq?)Yd)~|1{BDS(pqC zC}~H#WXlkUW*H5CDOo<)#x7%RY)A;ShGhI5s*#cRDA8YgqG(HeKDx+#(ZQ?386dv! zlXCO)w91~Vw4AmOcATuV653fa9R$fyK8ul%rG z-wfS zihugoZyr38Im?Zuh6@RcF~t1anQu7>#lPpb#}4cOA!EM11`%f*07RqOVkmX{p~KJ9 z^zP;K#|)$`^Rb{rnHGH{~>1(fawV0*Z#)}M`m8-?ZJV<+e}s9wE# z)l&az?w^5{)`S(%MRzxdNqrs1n*-=jS^_jqE*5XDrA0+VE`5^*p3CuM<&dZEeCjoz zR;uu_H9ZPZV|fQq`Cyw4nscrVwi!fE6ciMmX$!_hN7uF;jjKG)d2@aC4ropY)8etW=xJvni)8eHi`H$%#zn^WJ5NLc-rqk|u&&4Z6fD_m&JfSI1Bvb?b<*n&sfl0^t z=HnmRl`XrFvMKB%9}>PaA`m-fK6a0(8=qPkWS5bb4=v?XcWi&hRY?O5HdulRi4?fN zlsJ*N-0Qw+Yic@s0(2uy%F@ib;GjXt01Fmx5XbRo6+n|pP(&nodMoap^z{~q ziEeaUT@Mxe3vJSfI6?uLND(CNr=#^W<1b}jzW58bIfyWTDle$mmS(|x-0|2UlX+9k zQ^EX7Nw}?EzVoBfT(-LT|=9N@^hcn-_p&sqG z&*oVs2JSU+N4ZD`FhCAWaS;>|wH2G*Id|?pa#@>tyxX`+4HyIArWDvVrX)2WAOQff z0qyHu&-S@i^MS-+j--!pr4fPBj~_8({~e1bfcl0wI1kaoN>mJL6KUPQm5N7lB(ui1 zE-o%kq)&djzWJ}ob<-GfDlkB;F31j-VHKvQUGQ3sp`CwyGJk_i!y^sD0fqC@$9|jO zOqN!r!8-p==F@ZVP=U$qSpY(gQ0)59P1&t@y?5rvg<}E+GB}26NYPp4f2YFQrQtot5mn3wu_qprZ=>Ig-$ zbW26Ws~IgY>}^5w`vTB(G`PTZaDiGBo5o(tp)qli|NeV( z@H_=R8V39rt5J5YB2Ky?4eJJ#b`_iBe2ot~6%7mLt5t8Vwi^Jy7|jWXqa3amOIoRb zOr}WVFP--DsS`1WpN%~)t3R!arKF^Q$e12KEqU36AWwnCBICpH4XCsfnyrHr>$I$4 z!DpKX$OKLWarN7nv@!uIA+~RNO)l$$w}p(;b>mx8pwYvu;dD_unryX_NhT8*Tj>BTrTTL&!?O+%Rv;b?B??gSzdp?6Uug9{ zd@V08Z$BdI?fpoCS$)t4mg4rT8Q_I}h`0d-vYZ^|dOB*Q^S|xqTV*vIg?@fVFSmMpaw0qtTRbx} z({Pg?#{2`sc9)M5N$*N|4;^t$+QP?#mov zGVC@I*lBVrOU-%2y!7%)fAKjpEFsgQc4{amtiHb95KQEwvf<(3T<9-Zm$xIew#P22 zc2Ix|App^>v6(3L_MCU0d3W##AB0M~3D00EWoKZqsJYT(#@w$Y_H7G22M~ApVFTRHMI_3be)Lkn#0F*V8Pq zc}`Cjy$bE;FJ6H7p=0y#R>`}-m4(0F>%@P|?7fx{=R^uFdISRnZ2W_xQhD{YuR3t< z{6yxu=4~JkeA;|(J6_nv#>Nvs&FuLA&PW^he@t(UwFFE8)|a!R{`E`K`i^ZnyE4$k z;(749Ix|oi$c3QbEJ3b~D_kQsPz~fIUKym($a_7dJ?o+40*OLl^{=&oq$<#Q(yyrp z{J-FAniyAw9tPbe&IhQ|a`DqFTVQGQ&Gq3!C2==4x{6EJwiPZ8zub-iXoUtkJiG{} zPaR&}_fn8_z~(=;5lD-aPWD3z8PZS@AaUiomF!G8I}Mf>e~0g#BelA-5#`cj;O5>N Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/donation_base/static/description/index.html b/donation_base/static/description/index.html new file mode 100644 index 000000000..10b059f1b --- /dev/null +++ b/donation_base/static/description/index.html @@ -0,0 +1,452 @@ + + + + + +README.rst + + + +
+ + + +Odoo Community Association + +
+

Donation Base

+ +

Beta License: AGPL-3 OCA/donation Translate me on Weblate Try me on Runboat

+

This is the base module for donations. This module doesn’t do anything +in itself ; it just adds some properties on products and partners and +adds the donation.tax.receipt object.

+

To get some real features, you should install the donation or the +donation_sale module. To understand the difference between these 2 +modules, read this post.

+

Table of contents

+ +
+

Configuration

+

To configure this module, you need to:

+
+
    +
  • create donation products
  • +
  • set the Tax Receipt Option on partners
  • +
+
+
+
+

Bug Tracker

+

Bugs are tracked on GitHub 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.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Barroux Abbey
  • +
  • Akretion
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

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.

+

Current maintainer:

+

alexis-via

+

This module is part of the OCA/donation project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+
+ + diff --git a/donation_base/tests/__init__.py b/donation_base/tests/__init__.py new file mode 100644 index 000000000..fcff6fe7e --- /dev/null +++ b/donation_base/tests/__init__.py @@ -0,0 +1 @@ +from . import test_donation_tax_receipt diff --git a/donation_base/tests/test_donation_tax_receipt.py b/donation_base/tests/test_donation_tax_receipt.py new file mode 100644 index 000000000..065cc3b20 --- /dev/null +++ b/donation_base/tests/test_donation_tax_receipt.py @@ -0,0 +1,91 @@ +# Copyright 2018-Today Serpent Consulting Services Pvt. Ltd. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +import time + +from odoo import fields +from odoo.exceptions import UserError +from odoo.tests.common import TransactionCase + + +class TestDonationTaxReceipt(TransactionCase): + def setUp(self): + super().setUp() + self.dt_receipt = self.env["donation.tax.receipt"] + self.partner = self.env["res.partner"].create( + {"name": "Tax Receipt Donor", "email": "donor@example.com"} + ) + self.company = self.env.ref("base.main_company") + self.product_id = self.env["product.product"].create( + { + "name": "Donation", + "type": "service", + "donation_type": "donation", + "tax_receipt_ok": True, + "taxes_id": False, + } + ) + self.dt_receipt_rec = self.dt_receipt.create( + { + "date": fields.Date.today(), + "donation_date": fields.Date.today(), + "print_date": fields.Date.today(), + "amount": 101, + "partner_id": self.partner.id, + "company_id": self.company.id, + "currency_id": self.company.currency_id.id, + "type": "each", + } + ) + + def test_donation(self): + self.partner._compute_tax_receipt_count() + self.assertTrue(self.partner.tax_receipt_count) + + self.dt_receipt_rec.action_send_tax_receipt() + self.partner.email = False + with self.assertRaises(UserError): + self.dt_receipt_rec.action_send_tax_receipt() + + def test_donation_type(self): + self.assertEqual(self.product_id.type, "service") + self.assertTrue(self.product_id.donation_type) + + +class TestTaxReceiptAnnualCreate(TransactionCase): + def setUp(self): + super().setUp() + self.dt_receipt = self.env["donation.tax.receipt"] + self.tax_receipt_print = self.env["donation.tax.receipt.print"] + self.partner = self.env["res.partner"].create( + {"name": "Annual Tax Receipt Donor", "email": "annual@example.com"} + ) + self.company = self.env.ref("base.main_company") + self.dt_receipt_rec = self.dt_receipt.create( + { + "date": fields.Date.today(), + "donation_date": fields.Date.today(), + "print_date": fields.Date.today(), + "amount": 101, + "partner_id": self.partner.id, + "company_id": self.company.id, + "currency_id": self.company.currency_id.id, + "type": "each", + } + ) + self.tax_receipt_print_rec = self.tax_receipt_print.create( + {"receipt_ids": [(6, 0, [self.dt_receipt_rec.id])]} + ) + + def test_wizard_methods(self): + self.tax_receipt_print_rec.print_receipts() + + def test_tax_receipt_annual_create(self): + self.annual_create = self.env["tax.receipt.annual.create"] + self.annual_create_id = self.annual_create.create( + { + "start_date": time.strftime("2017-%m-%d"), + "end_date": time.strftime("2017-%m-%d"), + } + ) + with self.assertRaises(UserError): + self.annual_create_id.generate_annual_receipts() diff --git a/donation_base/views/donation_tax_receipt.xml b/donation_base/views/donation_tax_receipt.xml new file mode 100644 index 000000000..4ab115509 --- /dev/null +++ b/donation_base/views/donation_tax_receipt.xml @@ -0,0 +1,154 @@ + + + + + donation.tax.receipt.form + donation.tax.receipt + +
+
+
+ + + + + + + + + + + + + + + +
+
+ + donation.tax.receipt.list + donation.tax.receipt + + + + + + + + + + + + + + + + donation.tax.receipt.search + donation.tax.receipt + + + + + + + + + + + + + + + + + + + + + + donation.tax.receipt.graph + donation.tax.receipt + + + + + + + + + donation.tax.receipt.pivot + donation.tax.receipt + + + + + + + + + + Donation Tax Receipts + donation.tax.receipt + list,form,graph,pivot + +
diff --git a/donation_base/views/product.xml b/donation_base/views/product.xml new file mode 100644 index 000000000..ffbb84c14 --- /dev/null +++ b/donation_base/views/product.xml @@ -0,0 +1,49 @@ + + + + + donation.product.template.search + product.template + + + + + + + + + + + + + + + donation.product.template.form + product.template + + + + + + + + + + diff --git a/donation_base/views/res_partner.xml b/donation_base/views/res_partner.xml new file mode 100644 index 000000000..a27fd7050 --- /dev/null +++ b/donation_base/views/res_partner.xml @@ -0,0 +1,64 @@ + + + + + Donation Tax Receipts + donation.tax.receipt + list,form,graph,pivot + {'search_default_partner_id': active_id} + + + donation.tax.receipt.res.partner.form + res.partner + + + + + + + + + + + + + donation.res.partner.search + res.partner + + + + + + + + + Donors + res.partner + kanban,list,form + {'search_default_donor': 1, 'res_partner_search_mode': 'donor', 'default_is_company': False, 'default_donor_rank': 1} + + diff --git a/donation_base/wizard/__init__.py b/donation_base/wizard/__init__.py new file mode 100644 index 000000000..1a2eb5c74 --- /dev/null +++ b/donation_base/wizard/__init__.py @@ -0,0 +1,2 @@ +from . import tax_receipt_print +from . import tax_receipt_annual_create diff --git a/donation_base/wizard/tax_receipt_annual_create.py b/donation_base/wizard/tax_receipt_annual_create.py new file mode 100644 index 000000000..5220cfa58 --- /dev/null +++ b/donation_base/wizard/tax_receipt_annual_create.py @@ -0,0 +1,103 @@ +# Copyright 2014-2021 Barroux Abbey (http://www.barroux.org) +# Copyright 2014-2021 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +import datetime +import logging + +from odoo import _, api, fields, models +from odoo.exceptions import UserError +from odoo.tools.misc import format_date + +logger = logging.getLogger(__name__) + + +class TaxReceiptAnnualCreate(models.TransientModel): + _name = "tax.receipt.annual.create" + _description = "Generate Annual Tax Receipts" + + @api.model + def _default_end_date(self): + return datetime.date(fields.Date.context_today(self).year - 1, 12, 31) + + @api.model + def _default_start_date(self): + return datetime.date(fields.Date.context_today(self).year - 1, 1, 1) + + start_date = fields.Date( + required=True, default=lambda self: self._default_start_date() + ) + end_date = fields.Date(required=True, default=lambda self: self._default_end_date()) + company_id = fields.Many2one( + "res.company", + string="Company", + required=True, + default=lambda self: self.env.company, + ) + + @api.model + def _prepare_annual_tax_receipt(self, partner, partner_dict): + vals = { + "company_id": self.company_id.id, + "currency_id": self.company_id.currency_id.id, + "amount": partner_dict["amount"], + "type": "annual", + "partner_id": partner.id, + "date": self.end_date, + "donation_date": self.end_date, + } + # designed to add add O2M fields donation_ids and invoice_ids + vals.update(partner_dict["extra_vals"]) + return vals + + def generate_annual_receipts(self): + self.ensure_one() + logger.info( + "Start to generate annual fiscal receipts from %s to %s", + self.start_date, + self.end_date, + ) + dtro = self.env["donation.tax.receipt"] + tax_receipt_annual_dict = {} + self.env["donation.tax.receipt"].update_tax_receipt_annual_dict( + tax_receipt_annual_dict, self.start_date, self.end_date, self.company_id + ) + tax_receipt_ids = [] + existing_annual_receipts = dtro.search( + [ + ("donation_date", "<=", self.end_date), + ("donation_date", ">=", self.start_date), + ("company_id", "=", self.company_id.id), + ("type", "=", "annual"), + ] + ) + existing_annual_receipts_dict = {} + for receipt in existing_annual_receipts: + existing_annual_receipts_dict[receipt.partner_id] = receipt + + for partner, partner_dict in tax_receipt_annual_dict.items(): + # Block if the partner already has an annual tax receipt + if partner in existing_annual_receipts_dict: + existing_receipt = existing_annual_receipts_dict[partner] + raise UserError( + _( + "The Donor '%(partner)s' already has an annual tax receipt " + "in this timeframe: %(receipt)s dated %(date)s.", + partner=partner.display_name, + receipt=existing_receipt.number, + date=format_date(self.env, existing_receipt.date), + ) + ) + vals = self._prepare_annual_tax_receipt(partner, partner_dict) + tax_receipt = dtro.create(vals) + tax_receipt_ids.append(tax_receipt.id) + logger.info("Tax receipt %s generated", tax_receipt.number) + if not tax_receipt_ids: + raise UserError(_("No annual tax receipt to generate")) + logger.info("%d annual fiscal receipts generated", len(tax_receipt_ids)) + action = ( + self.env.ref("donation_base.donation_tax_receipt_action").sudo().read([])[0] + ) + action["domain"] = [("id", "in", tax_receipt_ids)] + return action diff --git a/donation_base/wizard/tax_receipt_annual_create_view.xml b/donation_base/wizard/tax_receipt_annual_create_view.xml new file mode 100644 index 000000000..739ff941b --- /dev/null +++ b/donation_base/wizard/tax_receipt_annual_create_view.xml @@ -0,0 +1,37 @@ + + + + + tax_receipt_annual_create.form + tax.receipt.annual.create + +
+ + + + + +
+
+
+
+
+ + Create Annual Receipts + tax.receipt.annual.create + form + new + +
diff --git a/donation_base/wizard/tax_receipt_print.py b/donation_base/wizard/tax_receipt_print.py new file mode 100644 index 000000000..d22bebee6 --- /dev/null +++ b/donation_base/wizard/tax_receipt_print.py @@ -0,0 +1,34 @@ +# Copyright 2014-2021 Barroux Abbey (http://www.barroux.org) +# Copyright 2014-2021 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import _, api, fields, models +from odoo.exceptions import UserError + + +class DonationTaxReceiptPrint(models.TransientModel): + _name = "donation.tax.receipt.print" + _description = "Print Donation Tax Receipts" + + @api.model + def _get_receipts(self): + return self.env["donation.tax.receipt"].search([("print_date", "=", False)]) + + receipt_ids = fields.Many2many( + "donation.tax.receipt", + column1="print_wizard_id", + column2="receipt_id", + string="Receipts to Print", + default=lambda self: self._get_receipts(), + ) + + def print_receipts(self): + self.ensure_one() + if not self.receipt_ids: + raise UserError(_("There are no tax receipts to print.")) + today = fields.Date.context_today(self) + self.receipt_ids.write({"print_date": today}) + return self.env.ref("donation_base.report_donation_tax_receipt").report_action( + self.receipt_ids + ) diff --git a/donation_base/wizard/tax_receipt_print_view.xml b/donation_base/wizard/tax_receipt_print_view.xml new file mode 100644 index 000000000..7f15a0c89 --- /dev/null +++ b/donation_base/wizard/tax_receipt_print_view.xml @@ -0,0 +1,35 @@ + + + + + donation_tax_receipt_print.form + donation.tax.receipt.print + +
+ + + +
+
+
+
+
+ + Print Receipts + donation.tax.receipt.print + form + new + +
diff --git a/eslint.config.cjs b/eslint.config.cjs index dd0cbe0ae..0d5731f89 100644 --- a/eslint.config.cjs +++ b/eslint.config.cjs @@ -1,4 +1,3 @@ -var globals = require('globals'); jsdoc = require("eslint-plugin-jsdoc"); const config = [{ @@ -17,8 +16,6 @@ const config = [{ openerp: "readonly", owl: "readonly", luxon: "readonly", - QUnit: "readonly", - ...globals.browser, }, ecmaVersion: 2024, @@ -194,7 +191,7 @@ const config = [{ }, }, { - files: ["**/*.esm.js", "**/*test.js"], + files: ["**/*.esm.js"], languageOptions: { ecmaVersion: 2024, diff --git a/partner_match_or_create/README.rst b/partner_match_or_create/README.rst new file mode 100644 index 000000000..d733ff616 --- /dev/null +++ b/partner_match_or_create/README.rst @@ -0,0 +1,90 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + +======================= +Partner Match or Create +======================= + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:0cac77ca6ac6feebd29693c3d7ebe40803b9f4bbab4c220771b48b712809e6c7 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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/license-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%2Fdonation-lightgray.png?logo=github + :target: https://github.com/OCA/donation/tree/18.0/partner_match_or_create + :alt: OCA/donation +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/donation-18-0/donation-18-0-partner_match_or_create + :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/donation&target_branch=18.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This is a technical module used by the OCA module **stay_api** and the +OCA module **donation_api**. It allows to share code between those 2 +modules. + +**Table of contents** + +.. contents:: + :local: + +Bug Tracker +=========== + +Bugs are tracked on `GitHub 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 `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* Akretion + +Contributors +------------ + +- Alexis de Lattre + +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 `__: + +|maintainer-alexis-via| + +This module is part of the `OCA/donation `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/partner_match_or_create/__init__.py b/partner_match_or_create/__init__.py new file mode 100644 index 000000000..aee8895e7 --- /dev/null +++ b/partner_match_or_create/__init__.py @@ -0,0 +1,2 @@ +from . import models +from . import wizards diff --git a/partner_match_or_create/__manifest__.py b/partner_match_or_create/__manifest__.py new file mode 100644 index 000000000..acb93bfc2 --- /dev/null +++ b/partner_match_or_create/__manifest__.py @@ -0,0 +1,20 @@ +# Copyright 2025 Akretion France (https://www.akretion.com) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "Partner Match or Create", + "version": "19.0.1.0.0", + "category": "Tools", + "license": "AGPL-3", + "summary": "Create a new partner or match an existing partner", + "author": "Akretion, Odoo Community Association (OCA)", + "maintainers": ["alexis-via"], + "website": "https://github.com/OCA/donation", + "depends": ["phone_validation"], + "data": [ + "security/ir.model.access.csv", + "wizards/partner_match_or_create.xml", + ], + "installable": True, +} diff --git a/partner_match_or_create/i18n/fr.po b/partner_match_or_create/i18n/fr.po new file mode 100644 index 000000000..ef7dbc3e7 --- /dev/null +++ b/partner_match_or_create/i18n/fr.po @@ -0,0 +1,327 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * partner_match_or_create +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-01-11 21:58+0000\n" +"PO-Revision-Date: 2026-01-11 21:58+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_res_partner_title__api_code +msgid "API Code" +msgstr "Code API" + +#. module: partner_match_or_create +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.view_partner_title_form +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.view_partner_title_tree +msgid "API Code (do not modify)" +msgstr "Code API (ne pas modifier)" + +#. module: partner_match_or_create +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "Address" +msgstr "Adresse" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__street +msgid "Address Line 1" +msgstr "Adresse 1ère ligne" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__street2 +msgid "Address Line 2" +msgstr "Adresse 2ème ligne" + +#. module: partner_match_or_create +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "Cancel" +msgstr "Annuler" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__city +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "City" +msgstr "Ville" + +#. module: partner_match_or_create +#: model:ir.model,name:partner_match_or_create.model_res_partner +msgid "Contact" +msgstr "" + +#. module: partner_match_or_create +#. odoo-python +#: code:addons/partner_match_or_create/wizards/partner_match_or_create.py:0 +msgid "" +"Contact %(partner_name)s created from web form information." +msgstr "" +"Contact %(partner_name)s créé à partir des informations du " +"formulaire Web." + +#. module: partner_match_or_create +#. odoo-python +#: code:addons/partner_match_or_create/wizards/partner_match_or_create.py:0 +msgid "" +"Contact created by the wizard of the module partner_match_or_create." +msgstr "" +"Contact créé par l'assistant du module partner_match_or_create." + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_id +msgid "Contact to Update" +msgstr "Contact à mettre à jour" + +#. module: partner_match_or_create +#. odoo-python +#: code:addons/partner_match_or_create/wizards/partner_match_or_create.py:0 +msgid "" +"Contact updated by the wizard of the module partner_match_or_create." +msgstr "" +"Contact mise à jour par l'assistant du module partner_match_or_create." + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__country_id +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "Country" +msgstr "Pays" + +#. module: partner_match_or_create +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "Create New Contact" +msgstr "Créer une nouveau contact" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__create_or_update +msgid "Create Or Update" +msgstr "Créer ou mettre à jour" + +#. module: partner_match_or_create +#: model:ir.actions.act_window,name:partner_match_or_create.partner_match_or_create_action +msgid "Create or Update Contact" +msgstr "Créer ou mettre à jour un contact" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__create_uid +msgid "Created by" +msgstr "Créé par" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__create_date +msgid "Created on" +msgstr "Créé le" + +#. module: partner_match_or_create +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "Current Address" +msgstr "Adresse actuelle" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_city +msgid "Current City" +msgstr "Ville actuelle" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_country_id +msgid "Current Country" +msgstr "Pays actuel" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_email +msgid "Current E-mail" +msgstr "E-mail actuel" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_mobile +msgid "Current Mobile" +msgstr "Portable actuel" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_phone +msgid "Current Phone" +msgstr "Téléphone actuel" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_state_id +msgid "Current State" +msgstr "État actuel" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_street +msgid "Current Street" +msgstr "Rue actuelle" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_street2 +msgid "Current Street2" +msgstr "Rue2 actuelle" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_zip +msgid "Current ZIP" +msgstr "Code postal actuel" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__display_name +msgid "Display Name" +msgstr "Nom affiché" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__email +msgid "E-mail" +msgstr "E-mail" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__firstname +msgid "Firstname" +msgstr "Prénom" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__id +msgid "ID" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__write_uid +msgid "Last Updated by" +msgstr "Dernière mise à jour par" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__write_date +msgid "Last Updated on" +msgstr "Dernière mise à jour le" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__lastname +msgid "Lastname" +msgstr "Nom de famille" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__mobile +msgid "Mobile" +msgstr "Portable" + +#. module: partner_match_or_create +#. odoo-python +#: code:addons/partner_match_or_create/wizards/partner_match_or_create.py:0 +msgid "New Partner" +msgstr "Nouveau partenaire" + +#. module: partner_match_or_create +#: model:ir.model,name:partner_match_or_create.model_res_partner_title +msgid "Partner Title" +msgstr "Titre du partenaire" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__phone +msgid "Phone" +msgstr "Téléphone" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__res_id +msgid "Res" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__res_model +msgid "Res Model" +msgstr "Modèle Res" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__state_id +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "State" +msgstr "État" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__suggested_partner_ids +msgid "Suggested Contacts" +msgstr "Contacts suggérés" + +#. module: partner_match_or_create +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "Suggested Existing Contacts" +msgstr "Contacts existants suggérés" + +#. module: partner_match_or_create +#: model:ir.model.fields,help:partner_match_or_create.field_res_partner_title__api_code +msgid "Technical code used by the API. Do not modify!" +msgstr "Code technique utilisé par l'API. Ne pas modifier !" + +#. module: partner_match_or_create +#. odoo-python +#: code:addons/partner_match_or_create/wizards/partner_match_or_create.py:0 +msgid "The partner to update is not set." +msgstr "Le partenaire à mettre à jour n'est pas défini." + +#. module: partner_match_or_create +#: model:ir.model.constraint,message:partner_match_or_create.constraint_res_partner_title_api_code_uniq +msgid "This API code already exists." +msgstr "Ce code API existe déjà." + +#. module: partner_match_or_create +#: model:ir.model.fields.selection,name:partner_match_or_create.selection__partner_match_or_create__create_or_update__update +msgid "This partner already exists in Odoo" +msgstr "Ce partenaire existe déjà dans Odoo" + +#. module: partner_match_or_create +#: model:ir.model.fields.selection,name:partner_match_or_create.selection__partner_match_or_create__create_or_update__create +msgid "This partner doesn't already exists in Odoo" +msgstr "Ce partenaire n'existe pas dans Odoo" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__title_id +msgid "Title" +msgstr "Titre" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_address +msgid "Update Address" +msgstr "Mettre à jour l'adresse" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_email +msgid "Update E-mail" +msgstr "Mettre à jour l'e-mail" + +#. module: partner_match_or_create +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "Update Existing Contact" +msgstr "Mettre à jour un contact existant" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_mobile +msgid "Update Mobile" +msgstr "Mettre à jour le portable" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_phone +msgid "Update Phone" +msgstr "Mettre à jour le téléphone" + +#. module: partner_match_or_create +#: model:ir.model,name:partner_match_or_create.model_partner_match_or_create +msgid "Wizard to match/update an existing contact or create a new contact" +msgstr "" +"Assistant pour trouver/mettre à jour un contact existant ou créer un nouveau " +"contact" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__zip +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "ZIP" +msgstr "Code postal" + +#~ msgid "Last Modified on" +#~ msgstr "Dernière modification le" diff --git a/partner_match_or_create/i18n/it.po b/partner_match_or_create/i18n/it.po new file mode 100644 index 000000000..919a32030 --- /dev/null +++ b/partner_match_or_create/i18n/it.po @@ -0,0 +1,316 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * partner_match_or_create +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\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" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_res_partner_title__api_code +msgid "API Code" +msgstr "" + +#. module: partner_match_or_create +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.view_partner_title_form +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.view_partner_title_tree +msgid "API Code (do not modify)" +msgstr "" + +#. module: partner_match_or_create +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "Address" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__street +msgid "Address Line 1" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__street2 +msgid "Address Line 2" +msgstr "" + +#. module: partner_match_or_create +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "Cancel" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__city +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "City" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model,name:partner_match_or_create.model_res_partner +msgid "Contact" +msgstr "" + +#. module: partner_match_or_create +#. odoo-python +#: code:addons/partner_match_or_create/wizards/partner_match_or_create.py:0 +msgid "" +"Contact %(partner_name)s created from web form information." +msgstr "" + +#. module: partner_match_or_create +#. odoo-python +#: code:addons/partner_match_or_create/wizards/partner_match_or_create.py:0 +msgid "" +"Contact created by the wizard of the module " +"partner_match_or_create." +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_id +msgid "Contact to Update" +msgstr "" + +#. module: partner_match_or_create +#. odoo-python +#: code:addons/partner_match_or_create/wizards/partner_match_or_create.py:0 +msgid "" +"Contact updated by the wizard of the module " +"partner_match_or_create." +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__country_id +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "Country" +msgstr "" + +#. module: partner_match_or_create +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "Create New Contact" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__create_or_update +msgid "Create Or Update" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.actions.act_window,name:partner_match_or_create.partner_match_or_create_action +msgid "Create or Update Contact" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__create_uid +msgid "Created by" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__create_date +msgid "Created on" +msgstr "" + +#. module: partner_match_or_create +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "Current Address" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_city +msgid "Current City" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_country_id +msgid "Current Country" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_email +msgid "Current E-mail" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_mobile +msgid "Current Mobile" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_phone +msgid "Current Phone" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_state_id +msgid "Current State" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_street +msgid "Current Street" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_street2 +msgid "Current Street2" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_zip +msgid "Current ZIP" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__display_name +msgid "Display Name" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__email +msgid "E-mail" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__firstname +msgid "Firstname" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__id +msgid "ID" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__write_date +msgid "Last Updated on" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__lastname +msgid "Lastname" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__mobile +msgid "Mobile" +msgstr "" + +#. module: partner_match_or_create +#. odoo-python +#: code:addons/partner_match_or_create/wizards/partner_match_or_create.py:0 +msgid "New Partner" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model,name:partner_match_or_create.model_res_partner_title +msgid "Partner Title" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__phone +msgid "Phone" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__res_id +msgid "Res" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__res_model +msgid "Res Model" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__state_id +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "State" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__suggested_partner_ids +msgid "Suggested Contacts" +msgstr "" + +#. module: partner_match_or_create +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "Suggested Existing Contacts" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,help:partner_match_or_create.field_res_partner_title__api_code +msgid "Technical code used by the API. Do not modify!" +msgstr "" + +#. module: partner_match_or_create +#. odoo-python +#: code:addons/partner_match_or_create/wizards/partner_match_or_create.py:0 +msgid "The partner to update is not set." +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.constraint,message:partner_match_or_create.constraint_res_partner_title_api_code_uniq +msgid "This API code already exists." +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields.selection,name:partner_match_or_create.selection__partner_match_or_create__create_or_update__update +msgid "This partner already exists in Odoo" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields.selection,name:partner_match_or_create.selection__partner_match_or_create__create_or_update__create +msgid "This partner doesn't already exists in Odoo" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__title_id +msgid "Title" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_address +msgid "Update Address" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_email +msgid "Update E-mail" +msgstr "" + +#. module: partner_match_or_create +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "Update Existing Contact" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_mobile +msgid "Update Mobile" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_phone +msgid "Update Phone" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model,name:partner_match_or_create.model_partner_match_or_create +msgid "Wizard to match/update an existing contact or create a new contact" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__zip +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "ZIP" +msgstr "" diff --git a/partner_match_or_create/i18n/partner_match_or_create.pot b/partner_match_or_create/i18n/partner_match_or_create.pot new file mode 100644 index 000000000..3ae49d71f --- /dev/null +++ b/partner_match_or_create/i18n/partner_match_or_create.pot @@ -0,0 +1,315 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * partner_match_or_create +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.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: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_res_partner_title__api_code +msgid "API Code" +msgstr "" + +#. module: partner_match_or_create +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.view_partner_title_form +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.view_partner_title_tree +msgid "API Code (do not modify)" +msgstr "" + +#. module: partner_match_or_create +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "Address" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__street +msgid "Address Line 1" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__street2 +msgid "Address Line 2" +msgstr "" + +#. module: partner_match_or_create +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "Cancel" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__city +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "City" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model,name:partner_match_or_create.model_res_partner +msgid "Contact" +msgstr "" + +#. module: partner_match_or_create +#. odoo-python +#: code:addons/partner_match_or_create/wizards/partner_match_or_create.py:0 +msgid "" +"Contact %(partner_name)s created from web form information." +msgstr "" + +#. module: partner_match_or_create +#. odoo-python +#: code:addons/partner_match_or_create/wizards/partner_match_or_create.py:0 +msgid "" +"Contact created by the wizard of the module " +"partner_match_or_create." +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_id +msgid "Contact to Update" +msgstr "" + +#. module: partner_match_or_create +#. odoo-python +#: code:addons/partner_match_or_create/wizards/partner_match_or_create.py:0 +msgid "" +"Contact updated by the wizard of the module " +"partner_match_or_create." +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__country_id +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "Country" +msgstr "" + +#. module: partner_match_or_create +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "Create New Contact" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__create_or_update +msgid "Create Or Update" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.actions.act_window,name:partner_match_or_create.partner_match_or_create_action +msgid "Create or Update Contact" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__create_uid +msgid "Created by" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__create_date +msgid "Created on" +msgstr "" + +#. module: partner_match_or_create +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "Current Address" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_city +msgid "Current City" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_country_id +msgid "Current Country" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_email +msgid "Current E-mail" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_mobile +msgid "Current Mobile" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_phone +msgid "Current Phone" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_state_id +msgid "Current State" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_street +msgid "Current Street" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_street2 +msgid "Current Street2" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_partner_zip +msgid "Current ZIP" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__display_name +msgid "Display Name" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__email +msgid "E-mail" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__firstname +msgid "Firstname" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__id +msgid "ID" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__write_date +msgid "Last Updated on" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__lastname +msgid "Lastname" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__mobile +msgid "Mobile" +msgstr "" + +#. module: partner_match_or_create +#. odoo-python +#: code:addons/partner_match_or_create/wizards/partner_match_or_create.py:0 +msgid "New Partner" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model,name:partner_match_or_create.model_res_partner_title +msgid "Partner Title" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__phone +msgid "Phone" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__res_id +msgid "Res" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__res_model +msgid "Res Model" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__state_id +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "State" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__suggested_partner_ids +msgid "Suggested Contacts" +msgstr "" + +#. module: partner_match_or_create +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "Suggested Existing Contacts" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,help:partner_match_or_create.field_res_partner_title__api_code +msgid "Technical code used by the API. Do not modify!" +msgstr "" + +#. module: partner_match_or_create +#. odoo-python +#: code:addons/partner_match_or_create/wizards/partner_match_or_create.py:0 +msgid "The partner to update is not set." +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.constraint,message:partner_match_or_create.constraint_res_partner_title_api_code_uniq +msgid "This API code already exists." +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields.selection,name:partner_match_or_create.selection__partner_match_or_create__create_or_update__update +msgid "This partner already exists in Odoo" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields.selection,name:partner_match_or_create.selection__partner_match_or_create__create_or_update__create +msgid "This partner doesn't already exists in Odoo" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__title_id +msgid "Title" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_address +msgid "Update Address" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_email +msgid "Update E-mail" +msgstr "" + +#. module: partner_match_or_create +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "Update Existing Contact" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_mobile +msgid "Update Mobile" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__update_phone +msgid "Update Phone" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model,name:partner_match_or_create.model_partner_match_or_create +msgid "Wizard to match/update an existing contact or create a new contact" +msgstr "" + +#. module: partner_match_or_create +#: model:ir.model.fields,field_description:partner_match_or_create.field_partner_match_or_create__zip +#: model_terms:ir.ui.view,arch_db:partner_match_or_create.partner_match_or_create_form +msgid "ZIP" +msgstr "" diff --git a/partner_match_or_create/models/__init__.py b/partner_match_or_create/models/__init__.py new file mode 100644 index 000000000..91fed54d4 --- /dev/null +++ b/partner_match_or_create/models/__init__.py @@ -0,0 +1 @@ +from . import res_partner diff --git a/partner_match_or_create/models/res_partner.py b/partner_match_or_create/models/res_partner.py new file mode 100644 index 000000000..60896cc1d --- /dev/null +++ b/partner_match_or_create/models/res_partner.py @@ -0,0 +1,72 @@ +# Copyright 2025 Akretion France (https://www.akretion.com/) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +import logging + +from odoo import models + +logger = logging.getLogger(__name__) + + +class ResPartner(models.Model): + _inherit = "res.partner" + + def _controller_try_match_partner(self, vals): + email = vals["controller_email"] + mobile = vals["controller_mobile"] + partner_id = None + if "res.partner.phone" in self.env: # module base_partner_one2many_phone + partner_phone = ( + self.env["res.partner.phone"] + .sudo() + .search_read( + [ + ("type", "in", ("1_email_primary", "2_email_secondary")), + ("email", "=ilike", email), + ("partner_id", "!=", False), + ], + ["partner_id"], + limit=1, + ) + ) + if partner_phone: + partner_id = partner_phone[0]["partner_id"][0] + else: + partner = self.env["res.partner"].search_read( + [("email", "=ilike", email)], ["id"], limit=1 + ) + if partner: + partner_id = partner[0]["id"] + if partner_id: + logger.info("Match on email %s with partner ID %d", email, partner_id) + # "and vals['controller_country_id']" to make sure the mobile phone has been + # reformatted + if not partner_id and mobile and vals["controller_country_id"]: + if "res.partner.phone" in self.env: # module base_partner_one2many_phone + partner_phone = ( + self.env["res.partner.phone"] + .sudo() + .search_read( + [ + ("type", "in", ("5_mobile_primary", "6_mobile_secondary")), + ("phone", "=", mobile), + ("partner_id", "!=", False), + ], + ["partner_id"], + limit=1, + ) + ) + if partner_phone: + partner_id = partner_phone[0]["partner_id"][0] + else: + partner = self.env["res.partner"].search_read( + [("phone", "=", mobile)], ["id"], limit=1 + ) + if partner: + partner_id = partner[0]["id"] + if partner_id: + logger.info("Match on mobile %s with partner ID %d", mobile, partner_id) + if not partner_id: + logger.info("No match on an existing partner") + return partner_id diff --git a/partner_match_or_create/pyproject.toml b/partner_match_or_create/pyproject.toml new file mode 100644 index 000000000..4231d0ccc --- /dev/null +++ b/partner_match_or_create/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/partner_match_or_create/readme/CONTRIBUTORS.md b/partner_match_or_create/readme/CONTRIBUTORS.md new file mode 100644 index 000000000..b61afe5d0 --- /dev/null +++ b/partner_match_or_create/readme/CONTRIBUTORS.md @@ -0,0 +1 @@ +- Alexis de Lattre \<\> diff --git a/partner_match_or_create/readme/DESCRIPTION.md b/partner_match_or_create/readme/DESCRIPTION.md new file mode 100644 index 000000000..2fc4c0267 --- /dev/null +++ b/partner_match_or_create/readme/DESCRIPTION.md @@ -0,0 +1 @@ +This is a technical module used by the OCA module **stay\_api** and the OCA module **donation\_api**. It allows to share code between those 2 modules. diff --git a/partner_match_or_create/security/ir.model.access.csv b/partner_match_or_create/security/ir.model.access.csv new file mode 100644 index 000000000..df2694d1c --- /dev/null +++ b/partner_match_or_create/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_partner_match_or_create,Full access on partner.match.or.create wizard,model_partner_match_or_create,base.group_partner_manager,1,1,1,1 diff --git a/partner_match_or_create/static/description/icon.png b/partner_match_or_create/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1dcc49c24f364e9adf0afbc6fc0bac6dbecdeb11 GIT binary patch literal 10254 zcmbt)WmufcvhH9Zc!C8B?l8#UE&&o;gF7=g3=D(IAOS+K1lK^25Zv7%L4sRw_uvvF z*qyAk?>c**=lnR&y+1yw{;I3Hy6Ua2{<d0kcR+VvBo; zA_X`>;1;xAPL9rQqFxd#f5{a^zW*uaW+r3+U{|fRunu`GZhy$X z8_|Zi{zd#vIokczl8Xh*4Wi@i0+C?Rg1AB5VOEg8B>buLFCi~r5DPd2ED7QP2>^LO zKpr7+?*I1bPaFSLLEa0l2$tj*;u8Qtc=&(RUc*VK@ zjIN{I--GfO@vl+&r^eqy_BZ3dndN_PDzMc*W^!?dIsWAWU@LBjBg6^f4F6*!-hUYh zY$Xb}gF8b0%S1Ac@c%Rs()UCiEu3v6SiFE>h_!{gBb-H2{e=wB5o!YkT0>#LKZFw$ z?CuD0Gvfsb(|XbVxx0AL0%`gG2X+6|f;jiTHU9shtjoW-{2!| zMN*WuOj6elhD4zqgjNpX>F#JP{)hAbenX<+FPr>7jXM&q{|x+pbj8cU<=>Ej zWE1_%qoFVzDAZB%g@v<+1ud%<#2E~ML11jOV5pUZoXktGmzB38%te^i-3o9i$lge>z>tBcK|P2K0H9w{l#|i%$~egM)Ys{q>p<9yaE*%v2cy1wXE{AXqG1_b znfyg@Fq*e@yC)^(@$R*j^E;skyEM6pmL$1ctg*mWiWM&q1{nj>E^)Odw$RPr zhjesSk}k}@-e_%uZTy0t_*TJD&6%*HV0KH>xE@oBex6CL@`Ty3nH_2OF#M?6j(j|9 znRKGSfp3Q2i+|>}w?>8g$>r`|OcvG5r;p)z8DO8+O>EvYQ=_~`p}9!ReUEjUnNL@6 z+C*aoo67(sd|7QgW54@V9Y8PnBW$Q+7ZsRFA}Vj*viA!yWUfb!s*yJi6JKsXZCH4j z*B%nJpad-DDvJ8d>xrxkkh6A}i7V3nULqHCiG~|)YY6{NE3M}c^s#PQhzhsJUf^QW zR+F;up-dN*!)M1ZYl@d0HoqfVD2PNiQcPdzq4NDKO!8mUl{!t*ntBg_+-+lRlI0~Lr>5v!PiQj|hD7B-YFIs~6hIY*R6USZA zlb}=UxqxpSzIsL3pPmiuixCN|3LFBd?0Ih8Y6GWQ;U>dkdXtQaQ&8H|TGAQbuHY=F z_R83&B{1_hP7L#$^eAe?GPB_83y#HZKTwD>e-@E2P>Gk$BBb9|Ivfmdp za~s>3=aj(;xmz8n)sI}uFO$|C>0CZbcTY$Bq6~L-Bc9=vl@X#0S~Q@j8iKzuPeQE_ zQSI)wNz~CvJ>!%QszoCfUm9}h^DL!WYAN|FtMO#kpDXq74sYC87(uvv*jiCjV?Ta& zgO1D0OP3TEN3YnBpD6GnmsEolzEbGM{&VlTz_)J(o{nl0+TmNt{xL%L6G&UR$^aYC zQOA#W7R%9JsC5oTZJE>_?!Ci}mNH{0ObyUd%Q!k%5J8Z`8sR!m`~|Taje`(bLD7=a z-{-=d7w;k@DIrgU{I@K}eN`>S**Lg<@ChAf$M(&kV9TLUixqFQ>YoYHrI!K#R6`S> z%?d5hQ@&;Gje<|uRQZb%Hhibocl9(buI?=0aZW{JYXx?ZS@Lr%G8L<d+riEi2~+{HfHK{K^VrGYNi{2-WJOiC>Pz?f*)cxKCl>1H1=$jb!^ zpmYw>eoiM0Hy7$xbbX_e5o*+{7T2&-t%-h4i7MMo;k|tSqQAeNkwHS9hWY#EV7r3| zTmOmN{;b9OUZpp`LP(I9Wo%R#$b6YdH7GD4*p6>a2N2A04pQ*n;INQMh%+mj;x7>S z_(H?uJ^n!r1)kJH1*s+%$al#?C^Cw{H@RA^QGB=Dubyc)XUaY>f`(VKTlIO-YNCp{1n zOl*>jT?Dtf5fD$DY-j&B*Xmn|2-u2OB zBL@-lFs5lhcQKXBR*cIXmi%~EJcc^5#Xpg!E^A6sXf1#$qJGRpmU~A zcdj-cvBfx(fIRAMU(1obztJR%I7v3R-%$#~r!0sS^I(iC*5i6296*88A7I=_JhU3p zya!aCti0R5*RFT%LW0R|;u&oJ6=P-c$le4J0bi}u!!@;xzao|l6fJ{;Mld9hGhrJg zr_B)=4yktp)yPB@tCC_L9h1>GzXD6DA!W7xt{1)8!07~gONkEWC8@y%lciB{9ojy) zWm$drJ_9uVJ>Q$-`@q%OM7_S>(K=__CGYB~@@mE^Z=eT|x0Rv?Z-N)LLWR zod*Zy3v)iMX@usPX-OKBDgC8yq?fMhqf8H)A&C)Hi29YFn!NVf5!J0-F{wC&L5-3`#id=4?=2>Zp6Pdu4N6#bG&atu7 z8IET&ciXy_Tp4YjMx3yIAbw#_e2#jgGJ~ogkv-|M7|%Gio%2@mnS89NKUOM#Bzg4_ z9e9oN;^m>G*#?)AawODi6YckRPmkSKD_4b4WFpj|@|eS!B0WN@?QscYzTH`~6e%iz z!z1>ps)CG37%(E=kZ_>re)@ODv^0^=rWU^*m;6M&gD10EYImO98JVabRe5{#wrogYUKPB@_(#e7Ej9_x;n1oHDj5GawU)A&1hWj|HzJB(q{vMTX>jOW;Jz zBsW&SqTaR7!NXXg_A}$XnFpg_n)Zi;{e9eb*k|b(y$a}12boJ7rqQXQpVhU8HxHTl zt8Ln!KLFyfq!%}hdMXle^qajw2g6S{z&7tQ6J(w9 z3+!HTO{_TqM{9o$RR~lKFf4b4(xLUP?QG;McNFQc_Yd_mig9Ejy9%q~Ye>rIn3};U z)w&1@QCK;cC(;x0G&YuSad+>{c@ZsFJcUdcs@PP-x{mrO)|6_#CjMlXsMJx;Cr?FF zVFrlt@$Z-Ll^*7d0#`5Uez@bb{Xn(BQLhScBhF!6+aIso0=l{PP7P(6-ru>nVy%AP z+|eZpY(ooMU7rtG$l#14v=Z?@ebOjm(A2)5k_${|wAA$oq+;42wiS78ezjgWWnTrF z`1!i2h{fM91aD8uxz?tZpE(PsL37e3$*I6%un5Bzzpn10p`j72R;3=Oaug_|Z(y)@ z9$SJN@-5d1tNIy0=7|d&_HAnDx!yDd-u#qmfuDh)0a_CVje{hvQz9rDFHJTpQ0Dg@ zGQ3t*gZlcFSXfx%OG@Cds&NDROxd^osY_)abmo^dKMUY!R~kGH%*;rutPF@Mx$zrv z6Q1soKnYYRW#;Bi-!H)>Br0<`y+Wy~p7_<>{ljuG`Dpje=v1x}-ND<)bWBr|<}v6B zkDTUZ^@VsH>CyR}ml4j2rB{}0q8eGwX>ExkI9yZN0)(P}$N(yi$AxmBY#Xj`(7zs{ zJbn2&jE`-*0lww_r;|fNaWm_xp;c9JHIv|RExZGKP%18qjgYa);`N-^VqXNVz{~)~ z?^&D;ouy!pKPy?%@xH`A zSR z7x%N3@o&{YEjfa|1;*eW_4TU{ zt;qCcY3Hj(<0DJuny*QL!y!StcG{>bhpUP%eVMq=1xcR>yZT8X9)1;rXOmQjPcANs zr>&Qb{rr66;s|4v3iGmQlMjr9j;G6pqNs%;TsyVNd3{i~hpDX8ugdcnd&UQJzj)rH zh>S6#n`cCJ9CwHv<2Ht$o`R5(h#r||VB?%J?s5W48;^o)b`Pi1^~}5{Y19lg{&W@LfHt*gc1`w$RfLrK{~H?A1$5 z;5v?AIhpN%gQsR6+Act9-3y z8>jCTMnWQq-^s3#Lb|WalgB$k3F>}lyCxs<2&A;LS0}s#<|hPx9kM#B+Lu2DiD_3P zelg;N!80(j@HNc2pXs}re%sHi+{aqBt~qUOy86?zN>7)yiCEJqy@2Gh#gzJE6j6Rx zBQK{77zW?gLWtQ20Dzntu16k9^N>DQ@Nmbx*mOg=F=k)8VJfM%y(Xu41;8YCz+@K| z9u7vhlT`BOnk_oMTeC;u@OhhoTeA`^34^iMihCLM_uVD>rI-9@4l7ocZl@DJ8FWZU zB0lRBIqkHj4#pE&mD(X!e!~;G$`7f47k* zOznM2@`&KM(|f5}sz)z%2}yJ5YmMj5Zwzr-W?v3R&@KuJ+l0zo==N@)nsbMHqHV}w z7#_ntMGCNM21RuH^SYG+RH0sHUsF2z7ams57@2xbPj0y5)8h+caqv@P^q!do+}>+X zzUBx|mikTawzXWYzJ4(AqAJpBF4ObmD_@gyg->oFGB6`k(8+?rFRV5P1yDkFM=8(c z%RI)iG(rKtq-^V%B_(R9;tk6WIzA?x@cESTXg zWYDBxkoNB5v6J8BP&n@HVtBNb@r+XYpjgub zR4oE*$ffXJuh2g8TCaLnpNoSxJ~Jx@ayx9z5Osa)=AI#bg^5eQb<6gpR%c+Qs#N*e z@XE4pAmjdI#0%pV7sIN>mNa^jTkd=<==2_#t-}9Ju&Z^|Lp$%B92@eN%=MRc)LK$% z@!XAg;dQ8bt=@ZNey7+a(dy^o;QKGP@Rb5NJYQRrGEC{J=FB(Irw-MAfoP(9RK;)&jlxSCT=W;ODCf($WqRFhqN#LR^qVhK zWhEp4`{Nnk;n0FHj}eNCZpRM`Y-@MIM&pvr7zQOZ3Ik5;CmZbR99b&22(!-07YNF) z$o0MKej-jnvQV39{TH4r2R5univa1{ASc|VOTi4c@`t2FId|xkh5typ-rdU;1j){adk@*+( zkHj{5B~eSy&HrPOOvl_FJ98)0V;^d`0-u0FTslgiLBQVGSTiSyu zgMGAu&R}SbNa-DgKJb?;fe3Qys$?=;5?V`eRiq*Kj$I`}Z*x4rC~eNM=DsOq(=nUW>(+7o@O8K-_U(X? zTyg032nXKax5W~SF5|eBj%r8Fa>i!ejC72*sd}zJ)t7Xy!gFvM`c4@*Iw>z$u)j_l zR-Uqxymg}>Ti>i%9j*4kwfC33i~kyIQ``n)r(L z!|H2*)Mwj4dk%e*L0tgFdW185>j4<7YwLXwcOsed`%6mS{+=&d@d!B}GkbDV*0 zNIWzW^|trz!&;qeI&mPiVDOUL70xpqVv0fpN9tjpu)@1LD9D<9}9{57j9!W$`zC6&i zl9lKkmPh`x)5+h>>JtiRNNBW5$_)%-)#+SVSGsjX2T=+SRX05>yJZd`1hyk<@{%1+ zDu^k>J$d*Qz6BZMwHx!@O**^Tx&fsHDw%$@J0nfj^je^Ihy*aIx{B(hkBvSvh46Z9 zRO)BjjXL_IHXKo~$4es=8Wxk;Y+&nVBCXA;=MVuLgVn8Mk(*y^+kP3f?Pr~4^A}hXj9UHS}qeI%XKD3KhHnkrNH0(Y20BWl&!Kfm`EVh2;i5C zpirU^K0nc2-I{cqvjZKVx z=&hH#-d=gDWjVE}cMNAPJf;#NYdQ=h`twjX6yquXuCNgGx1~uk{YHAmFpQF`ZLGC=~ukEyj?cFDI zH=@XvV#AY1EY4qb`y*;Ki>KuFB|2|toL7__Cr0S1Dl{s#y0=~7HSq~&7lpBc*VLua zvv3r&-LM*{hq%IYP7<@)dG-G$kMrZaqs(MYoZ zugEeJ@u(ip9rMoVtoFe;dF`^Br5x7v!rr5`hb5mJ#ocGqXHnm9m`yILjd0>UQSMv) z^v}l5^bM6RZ6M%{mkI) zHOoSp&dX)*xUt+kXscna#a`XxI;Ul2Sxa^i5sZc=(Q)oA^2-_;!pfYHAul+oA@Ilelm;rw@FYR+SIaWS?;_ zUdw<|qqaYq(nqu>rG48E9dYAoT6GH;QRuBYK1}W#C_Z_?7~k*pJ3?MzVt&rhZTsBy zw?nN$_Z>kimtwWcy`0?G#!)&7GjOcxCQps@p&ml8>~z(t=sjhR$6aFh!Vw5GA(lTh z5GM)jCwloa6a}7mdfqNYE7oi`Jv$m5>5qR%9eZ=)=a z+K4j5NpcDHHdepCS+P*{@o=yNp&TE(Sd4b0Notqso-Kt_mhDk1<-fa>T4KdY2N`U) zxu41vD%T&k$Gl?CW81%7r#-o1TZ0&PCcy}L4TPiV;sz`|S!&w8-s$rLdM zF&)>@`7=)65PWn#oi|8tXNb|((2ojf9d0fNZ^l7xY~dX~%*Xf-v2W-2n$i~s!4?H; z2qbQscFN21tqB{|x1+(^G~xQSrvX&Y;V-%?b1}zjBQX{GOFcVYTcwm>>}>6^HA=$x zn+z^Biv_5}0!#@7z1~YXJFCT2?D^jm+kH7jAqBo?M@ZdMl|2|66oLnSJXUOJtVLxe z0vH)N^t*qrjq=eFRMV>BFEfS)-2RzKlt973;d3D}4edwIE>kGc5-o=JV56ird)RlS z{Jg@0t-b#Ife80%!E~(7`qkZ8O~Q-8_{j7G&tqwX&&>^tm-#*{v7j-f1n0}mCR#7P z-4FkajD2$9?4Fc7-C_|0Z_G^bxIs%tWk|aFgSQ(qkM+5PRh=g&ZeAZg35$-kn~}_;~&fP-dCNCzg>{gyW!~LZpn?aZ~Va3~H0Ta)z z<4XPVk@;#%1S@fq<(2#8T04#8$mz>vM;(jek0>Qh!K%t5*4tU(fVYwD3Ri~=D!AmI zV$Dt#TEDX7{lpW%tF&DOlTO)vZodn_%wYu~)ZQ}Qo^cBbDHd{YajkzNxttQW>ST<^ z2~^xhB_y1sjIF5;xchvCn{QVugIE2eYZDZ!-Y-4lJdb34*k({@M zJ5!9Di^||~(IZ4iOoAbtggao+CaYvJynmB^;4r-tY2gS_*P!?U?hlEX;l+^*{%B2n z)|1j9wOHQQ^5Xha>{Cu8_w^8=#6;Dz7kU~RgTqn;ynDm6{xdlkf2vk0UK^oS3yVy4 zE+v&qnlYtPHBk#X&2}r7`@K`J@^e~Qm?iRJ*tbAaZDZTmB&mWMkZp7Kj7^kth#_uX z5z>gC(8Xz|Ie(+#&wiF3;Aey|Db(R*-U)!6;l_5@u?-$>j0SgEl5+c}Lfe-$p-dFH zB_$bC<)x6#A_2Uuo8=^l1@}vK!gvbF#b&MoH8ac3xMxUz$LFb8KU(x$YhtHanM_sw zYOFMBX2iNNSe&a}!;G9nv(tsW4@%3iQcqczOCF*JOBQ@4Orw=o?_vc(9$hfO`>U6& zyY_CUa9pASiJpmv`@oR!k;&$`h8!)$uS=}d-fPddfIdMDUW@%3y1LI(1Q=e$)sz(QC*E;Nfl99YTgk+|@jl`+iF?<_D?4YqV0Zl)lO8YWC@1ZWW^mi{5ePQN<~FQ2NMG$|K{py5akJa zkezmqhN)>MGMp$7=sOo2(7ppv``dCIwf&MaQQis7S596kkiw8Do(jO?EY4iJ4Hec6 z4Hymzu`w)cI9Pbq6GPtTP)x&Lmk;FT=ZCB4>(5}c0?;2l`p&?>&<;2(P8a3lOTNP# zdEzF5qDpkRR&PZC&cS{7xD@qV;(g5X%xI?m$9Q + + + + +README.rst + + + +
+ + + +Odoo Community Association + +
+

Partner Match or Create

+ +

Beta License: AGPL-3 OCA/donation Translate me on Weblate Try me on Runboat

+

This is a technical module used by the OCA module stay_api and the +OCA module donation_api. It allows to share code between those 2 +modules.

+

Table of contents

+ +
+

Bug Tracker

+

Bugs are tracked on GitHub 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.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Akretion
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

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.

+

Current maintainer:

+

alexis-via

+

This module is part of the OCA/donation project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+
+ + diff --git a/partner_match_or_create/wizards/__init__.py b/partner_match_or_create/wizards/__init__.py new file mode 100644 index 000000000..c0cbeac03 --- /dev/null +++ b/partner_match_or_create/wizards/__init__.py @@ -0,0 +1 @@ +from . import partner_match_or_create diff --git a/partner_match_or_create/wizards/partner_match_or_create.py b/partner_match_or_create/wizards/partner_match_or_create.py new file mode 100644 index 000000000..bec0a820a --- /dev/null +++ b/partner_match_or_create/wizards/partner_match_or_create.py @@ -0,0 +1,305 @@ +# Copyright 2025 Akretion France (https://www.akretion.com/) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +import logging + +from odoo import _, api, fields, models +from odoo.exceptions import UserError +from odoo.fields import Domain + +logger = logging.getLogger(__name__) + + +class PartnerMatchOrCreate(models.TransientModel): + _name = "partner.match.or.create" + _description = "Wizard to match/update an existing contact or create a new contact" + + res_model = fields.Char(required=True, readonly=True) + res_id = fields.Integer(required=True, readonly=True) + firstname = fields.Char() + lastname = fields.Char(required=True) + email = fields.Char(string="E-mail") + phone = fields.Char() + mobile = fields.Char() + street = fields.Char(string="Address Line 1") + street2 = fields.Char(string="Address Line 2") + zip = fields.Char(string="ZIP") + city = fields.Char() + state_id = fields.Many2one("res.country.state") + country_id = fields.Many2one("res.country") + update_partner_id = fields.Many2one( + "res.partner", + string="Contact to Update", + compute="_compute_update_partner_id", + store=True, + readonly=False, + precompute=True, + ) + update_partner_email = fields.Char( + related="update_partner_id.email", string="Current E-mail" + ) + update_partner_phone = fields.Char( + related="update_partner_id.phone", string="Current Phone" + ) + # I can't use a related on update_partner_id because the full address + # is not displayed any more when update_partner_id is changed + update_partner_street = fields.Char( + related="update_partner_id.street", string="Current Street" + ) + update_partner_street2 = fields.Char( + related="update_partner_id.street2", string="Current Street2" + ) + update_partner_zip = fields.Char( + related="update_partner_id.zip", string="Current ZIP" + ) + update_partner_city = fields.Char( + related="update_partner_id.city", string="Current City" + ) + update_partner_state_id = fields.Many2one( + related="update_partner_id.state_id", string="Current State" + ) + update_partner_country_id = fields.Many2one( + related="update_partner_id.country_id", string="Current Country" + ) + update_email = fields.Boolean( + compute="_compute_update_bool", + readonly=False, + store=True, + string="Update E-mail", + precompute=True, + ) + update_phone = fields.Boolean( + compute="_compute_update_bool", + readonly=False, + store=True, + precompute=True, + ) + update_address = fields.Boolean( + compute="_compute_update_bool", + readonly=False, + store=True, + precompute=True, + ) + suggested_partner_ids = fields.Many2many( + "res.partner", readonly=True, string="Suggested Contacts" + ) + create_or_update = fields.Selection( + [ + ("create", "This partner doesn't already exists in Odoo"), + ("update", "This partner already exists in Odoo"), + ], + required=True, + ) + + @api.depends( + "update_partner_id", + "email", + "phone", + "mobile", + "street", + "street2", + "city", + "state_id", + "zip", + "country_id", + ) + def _compute_update_bool(self): + for wiz in self: + update_email = False + update_phone = False + update_address = False + upartner = wiz.update_partner_id + if upartner: + if wiz.email and wiz.email != upartner.email: + update_email = True + preferred_phone = wiz.mobile or wiz.phone + if preferred_phone and preferred_phone != upartner.phone: + update_phone = True + if ( + wiz.street + and wiz.city + and wiz.zip + and wiz.country_id + and any( + [ + wiz.street != upartner.street, + wiz.street2 != upartner.street2, + wiz.city != upartner.city, + wiz.state_id != upartner.state_id, + wiz.zip != upartner.zip, + wiz.country_id != upartner.country_id, + ] + ) + ): + update_address = True + wiz.update_email = update_email + wiz.update_phone = update_phone + wiz.update_address = update_address + + @api.depends("create_or_update") + def _compute_update_partner_id(self): + for wiz in self: + if wiz.create_or_update == "create": + wiz.update_partner_id = False + + def _prepare_suggested_partner_domain(self, vals): + rpo = self.env["res.partner"] + # similar lastname + domain_or_list = [] + if vals.get("lastname"): + max_lastname_split = max(vals["lastname"].split(" "), key=len) + logger.info( + "Populating suggested partners with max_lastname_split=%s", + max_lastname_split, + ) + if hasattr(rpo, "lastname"): + domain_or_list.append([("lastname", "ilike", max_lastname_split)]) + else: + domain_or_list.append([("name", "ilike", max_lastname_split)]) + elif vals.get("zip"): + domain_or_list.append([("zip", "=", vals["zip"])]) + # same country + if vals.get("country_id"): + domain_or_list.append([("country_id", "=", vals["country_id"])]) + domain = Domain.AND(domain_or_list) + return domain + + @api.model + def default_get(self, fields_list): + res = super().default_get(fields_list) + res_model = self._context.get("active_model") + assert res_model + res_id = self._context.get("active_id") + assert res_id + record = self.env[res_model].browse(res_id) + # partner may have been created in the meantime + update_partner = False + if hasattr(record, "controller_email") and record.controller_email: + update_partner = self.env["res.partner"].search( + [("email", "=ilike", record.controller_email)], limit=1 + ) + res.update( + { + "res_model": res_model, + "res_id": res_id, + "create_or_update": update_partner and "update" or "create", + "update_partner_id": update_partner and update_partner.id or False, + } + ) + for rfield in [ + "firstname", + "lastname", + "email", + "phone", + "mobile", + "street", + "street2", + "zip", + "city", + "state_id", + "country_id", + ]: + controller_field = f"controller_{rfield}" + if hasattr(record, controller_field): + value = record[controller_field] + if rfield == "email": + value = value and value.lower() or False + elif rfield.endswith("_id"): + value = value and value.id or False + res[rfield] = value + suggested_partner_domain = self._prepare_suggested_partner_domain(res) + suggested_partner_ids = ( + self.env["res.partner"].search(suggested_partner_domain).ids + ) + res["suggested_partner_ids"] = [(6, 0, suggested_partner_ids)] + if suggested_partner_ids: + res["create_or_update"] = "update" + else: + res["create_or_update"] = "create" + return res + + def create_partner(self): + self.ensure_one() + rpo = self.env["res.partner"] + vals = { + "email": self.email, + "phone": self.mobile or self.phone, + "street": self.street, + "street2": self.street2, + "zip": self.zip, + "city": self.city, + "state_id": self.state_id.id or False, + "country_id": self.country_id.id or False, + } + # if OCA module partner_firstname is installed + if hasattr(rpo, "firstname") and hasattr(rpo, "lastname"): + vals.update( + { + "firstname": self.firstname, + "lastname": self.lastname, + } + ) + else: + name = self.lastname + if self.firstname: + name = f"{self.firstname} {name}" + vals["name"] = name + partner = self.env["res.partner"].create(vals) + model = self.env[self.res_model] + partner.message_post( + body=_( + "Contact created by the wizard of the module " + "partner_match_or_create." + ) + ) + record = model.browse(self.res_id) + record.write({"partner_id": partner.id}) + record.message_post( + body=_( + "Contact " + "%(partner_name)s created from web form information.", + partner_id=partner.id, + partner_name=partner.display_name, + ) + ) + action = { + "type": "ir.actions.act_window", + "name": _("New Partner"), + "res_model": "res.partner", + "view_mode": "form", + "res_id": partner.id, + } + return action + + def update_partner(self): + self.ensure_one() + if not self.update_partner_id: + raise UserError(_("The partner to update is not set.")) + vals = {} + if self.update_phone: + vals["phone"] = self.mobile or self.phone + if self.update_email: + vals["email"] = self.email + if self.update_address: + vals.update( + { + "street": self.street, + "street2": self.street2, + "zip": self.zip, + "city": self.city, + "state_id": self.state_id.id or False, + "country_id": self.country_id.id or False, + } + ) + model = self.env[self.res_model] + if vals: + self.update_partner_id.write(vals) + msg = _( + "Contact updated by the wizard of the module " + "partner_match_or_create." + ) + self.update_partner_id.message_post(body=msg) + record = model.browse(self.res_id) + record.write({"partner_id": self.update_partner_id.id}) + record.message_post(body=msg) diff --git a/partner_match_or_create/wizards/partner_match_or_create.xml b/partner_match_or_create/wizards/partner_match_or_create.xml new file mode 100644 index 000000000..c0f8bba44 --- /dev/null +++ b/partner_match_or_create/wizards/partner_match_or_create.xml @@ -0,0 +1,145 @@ + + + + + partner.match.or.create + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + Create or Update Contact + partner.match.or.create + form + new + +
diff --git a/setup/_metapackage/pyproject.toml b/setup/_metapackage/pyproject.toml new file mode 100644 index 000000000..c6a0f8a74 --- /dev/null +++ b/setup/_metapackage/pyproject.toml @@ -0,0 +1,13 @@ +[project] +name = "odoo-addons-oca-donation" +version = "18.0.20260616.0" +dependencies = [ + "odoo-addon-donation==18.0.*", + "odoo-addon-donation_base==18.0.*", + "odoo-addon-partner_match_or_create==18.0.*", +] +classifiers=[ + "Programming Language :: Python", + "Framework :: Odoo", + "Framework :: Odoo :: 18.0", +] From f838017f931e5c310a53c619b19d7ab70a9bc133 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20NO=C3=8BL?= Date: Tue, 21 Jul 2026 17:55:58 +0200 Subject: [PATCH 2/2] lint --- donation/README.rst | 10 +++++----- donation/models/account_payment_method_line.py | 3 +-- donation/models/donation.py | 4 ++-- donation/static/description/index.html | 6 +++--- donation/wizard/donation_validate.py | 6 +++--- donation_base/README.rst | 10 +++++----- donation_base/models/donation_tax_receipt.py | 12 +++++++----- donation_base/models/product.py | 8 ++++---- donation_base/static/description/index.html | 6 +++--- donation_base/wizard/tax_receipt_annual_create.py | 6 +++--- donation_base/wizard/tax_receipt_print.py | 4 ++-- partner_match_or_create/README.rst | 10 +++++----- .../static/description/index.html | 6 +++--- .../wizards/partner_match_or_create.py | 12 ++++++------ 14 files changed, 52 insertions(+), 51 deletions(-) diff --git a/donation/README.rst b/donation/README.rst index d52c95082..910d9d74b 100644 --- a/donation/README.rst +++ b/donation/README.rst @@ -21,13 +21,13 @@ Donation :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fdonation-lightgray.png?logo=github - :target: https://github.com/OCA/donation/tree/18.0/donation + :target: https://github.com/OCA/donation/tree/19.0/donation :alt: OCA/donation .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/donation-18-0/donation-18-0-donation + :target: https://translation.odoo-community.org/projects/donation-19-0/donation-19-0-donation :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/donation&target_branch=18.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/donation&target_branch=19.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -106,7 +106,7 @@ Bug Tracker Bugs are tracked on `GitHub 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 `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -149,6 +149,6 @@ Current `maintainer `__: |maintainer-alexis-via| -This module is part of the `OCA/donation `_ project on GitHub. +This module is part of the `OCA/donation `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/donation/models/account_payment_method_line.py b/donation/models/account_payment_method_line.py index b3e92e383..54d8831e6 100644 --- a/donation/models/account_payment_method_line.py +++ b/donation/models/account_payment_method_line.py @@ -19,8 +19,7 @@ def _check_donation(self): if mode.donation and mode.payment_type != "inbound": raise ValidationError( self.env._( - "Donation payment method '%s'" - "is not an inbound payment method.", + "Donation payment method '%s' is not an inbound payment method.", # noqa: E501 mode.display_name, ) ) diff --git a/donation/models/donation.py b/donation/models/donation.py index 74d9bd4fb..2d89318b1 100644 --- a/donation/models/donation.py +++ b/donation/models/donation.py @@ -567,7 +567,8 @@ def cancel2draft(self): ) self.write({"state": "draft"}) - def unlink(self): + @api.ondelete(at_uninstall=False) + def _unlink_except_linked_or_done(self): for donation in self: if donation.state == "done": raise UserError( @@ -593,7 +594,6 @@ def unlink(self): tax_receipt=donation.tax_receipt_id.display_name, ) ) - return super().unlink() @api.depends("state", "number") def _compute_display_name(self): diff --git a/donation/static/description/index.html b/donation/static/description/index.html index 1713e2151..b01663f65 100644 --- a/donation/static/description/index.html +++ b/donation/static/description/index.html @@ -374,7 +374,7 @@

Donation

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:806827f430c13aad384855ea0d7e692a93622d480940cc9cf098778d94285b4c !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/donation Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/donation Translate me on Weblate Try me on Runboat

This module handles donations by cash, check or by credit transfer and generate the corresponding journal entries and tax receipts. To fully support donations by credit transfer, if you are using the OCA bank @@ -455,7 +455,7 @@

Bug Tracker

Bugs are tracked on GitHub 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.

+feedback.

Do not contact contributors directly about support or help with technical issues.

@@ -488,7 +488,7 @@

Maintainers

promote its widespread use.

Current maintainer:

alexis-via

-

This module is part of the OCA/donation project on GitHub.

+

This module is part of the OCA/donation project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

diff --git a/donation/wizard/donation_validate.py b/donation/wizard/donation_validate.py index e9da64c99..b400dbb48 100644 --- a/donation/wizard/donation_validate.py +++ b/donation/wizard/donation_validate.py @@ -11,9 +11,9 @@ class DonationValidate(models.TransientModel): def run(self): self.ensure_one() - assert ( - self.env.context.get("active_model") == "donation.donation" - ), "Source model must be donations" + assert self.env.context.get("active_model") == "donation.donation", ( + "Source model must be donations" + ) assert self.env.context.get("active_ids"), "No donations selected" donations = self.env["donation.donation"].browse( self.env.context.get("active_ids") diff --git a/donation_base/README.rst b/donation_base/README.rst index b473e0b83..c3ea72aec 100644 --- a/donation_base/README.rst +++ b/donation_base/README.rst @@ -21,13 +21,13 @@ Donation Base :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fdonation-lightgray.png?logo=github - :target: https://github.com/OCA/donation/tree/18.0/donation_base + :target: https://github.com/OCA/donation/tree/19.0/donation_base :alt: OCA/donation .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/donation-18-0/donation-18-0-donation_base + :target: https://translation.odoo-community.org/projects/donation-19-0/donation-19-0-donation_base :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/donation&target_branch=18.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/donation&target_branch=19.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -59,7 +59,7 @@ Bug Tracker Bugs are tracked on `GitHub 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 `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -102,6 +102,6 @@ Current `maintainer `__: |maintainer-alexis-via| -This module is part of the `OCA/donation `_ project on GitHub. +This module is part of the `OCA/donation `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/donation_base/models/donation_tax_receipt.py b/donation_base/models/donation_tax_receipt.py index 2698165a3..78702e30e 100644 --- a/donation_base/models/donation_tax_receipt.py +++ b/donation_base/models/donation_tax_receipt.py @@ -3,7 +3,7 @@ # @author: Alexis de Lattre # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from odoo import _, api, fields, models +from odoo import api, fields, models from odoo.exceptions import UserError @@ -59,10 +59,10 @@ def create(self, vals_list): if "company_id" in vals: self = self.with_company(vals["company_id"]) date = vals.get("donation_date") - if vals.get("number", _("New")) == _("New"): + if vals.get("number", self.env._("New")) == self.env._("New"): vals["number"] = self.env["ir.sequence"].next_by_code( "donation.tax.receipt", sequence_date=date - ) or _("New") + ) or self.env._("New") return super().create(vals_list) @api.model @@ -76,7 +76,9 @@ def action_send_tax_receipt(self): self.ensure_one() if not self.partner_id.email: raise UserError( - _("Missing email on partner '%s'.") % self.partner_id.display_name + self.env._( + "Missing email on partner '%s'.", self.partner_id.display_name + ) ) template = self.env.ref("donation_base.tax_receipt_email_template") layout_xmlid = "mail.mail_notification_light" @@ -90,7 +92,7 @@ def action_send_tax_receipt(self): force_email=True, ) action = { - "name": _("Compose Email"), + "name": self.env._("Compose Email"), "type": "ir.actions.act_window", "view_mode": "form", "res_model": "mail.compose.message", diff --git a/donation_base/models/product.py b/donation_base/models/product.py index 7ee762eef..9159bb215 100644 --- a/donation_base/models/product.py +++ b/donation_base/models/product.py @@ -3,7 +3,7 @@ # @author: Alexis de Lattre # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from odoo import _, api, fields, models +from odoo import api, fields, models from odoo.exceptions import ValidationError @@ -51,11 +51,11 @@ def donation_check(self): # constraint if product.donation_type and product.taxes_id: raise ValidationError( - _( + self.env._( "There shouldn't have any Customer Taxes on the " - "donation product '%s'." + "donation product '%s'.", + product.display_name, ) - % product.display_name ) diff --git a/donation_base/static/description/index.html b/donation_base/static/description/index.html index 10b059f1b..2fb75337f 100644 --- a/donation_base/static/description/index.html +++ b/donation_base/static/description/index.html @@ -374,7 +374,7 @@

Donation Base

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:880e54d2cacf1a0ea20abf6820323de0b708f85a828696fc1b9ad5e2b687e036 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/donation Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/donation Translate me on Weblate Try me on Runboat

This is the base module for donations. This module doesn’t do anything in itself ; it just adds some properties on products and partners and adds the donation.tax.receipt object.

@@ -409,7 +409,7 @@

Bug Tracker

Bugs are tracked on GitHub 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.

+feedback.

Do not contact contributors directly about support or help with technical issues.

@@ -442,7 +442,7 @@

Maintainers

promote its widespread use.

Current maintainer:

alexis-via

-

This module is part of the OCA/donation project on GitHub.

+

This module is part of the OCA/donation project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

diff --git a/donation_base/wizard/tax_receipt_annual_create.py b/donation_base/wizard/tax_receipt_annual_create.py index 5220cfa58..57da2c4af 100644 --- a/donation_base/wizard/tax_receipt_annual_create.py +++ b/donation_base/wizard/tax_receipt_annual_create.py @@ -6,7 +6,7 @@ import datetime import logging -from odoo import _, api, fields, models +from odoo import api, fields, models from odoo.exceptions import UserError from odoo.tools.misc import format_date @@ -81,7 +81,7 @@ def generate_annual_receipts(self): if partner in existing_annual_receipts_dict: existing_receipt = existing_annual_receipts_dict[partner] raise UserError( - _( + self.env._( "The Donor '%(partner)s' already has an annual tax receipt " "in this timeframe: %(receipt)s dated %(date)s.", partner=partner.display_name, @@ -94,7 +94,7 @@ def generate_annual_receipts(self): tax_receipt_ids.append(tax_receipt.id) logger.info("Tax receipt %s generated", tax_receipt.number) if not tax_receipt_ids: - raise UserError(_("No annual tax receipt to generate")) + raise UserError(self.env._("No annual tax receipt to generate")) logger.info("%d annual fiscal receipts generated", len(tax_receipt_ids)) action = ( self.env.ref("donation_base.donation_tax_receipt_action").sudo().read([])[0] diff --git a/donation_base/wizard/tax_receipt_print.py b/donation_base/wizard/tax_receipt_print.py index d22bebee6..f602a0701 100644 --- a/donation_base/wizard/tax_receipt_print.py +++ b/donation_base/wizard/tax_receipt_print.py @@ -3,7 +3,7 @@ # @author: Alexis de Lattre # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from odoo import _, api, fields, models +from odoo import api, fields, models from odoo.exceptions import UserError @@ -26,7 +26,7 @@ def _get_receipts(self): def print_receipts(self): self.ensure_one() if not self.receipt_ids: - raise UserError(_("There are no tax receipts to print.")) + raise UserError(self.env._("There are no tax receipts to print.")) today = fields.Date.context_today(self) self.receipt_ids.write({"print_date": today}) return self.env.ref("donation_base.report_donation_tax_receipt").report_action( diff --git a/partner_match_or_create/README.rst b/partner_match_or_create/README.rst index d733ff616..7ead065d2 100644 --- a/partner_match_or_create/README.rst +++ b/partner_match_or_create/README.rst @@ -21,13 +21,13 @@ Partner Match or Create :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fdonation-lightgray.png?logo=github - :target: https://github.com/OCA/donation/tree/18.0/partner_match_or_create + :target: https://github.com/OCA/donation/tree/19.0/partner_match_or_create :alt: OCA/donation .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/donation-18-0/donation-18-0-partner_match_or_create + :target: https://translation.odoo-community.org/projects/donation-19-0/donation-19-0-partner_match_or_create :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/donation&target_branch=18.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/donation&target_branch=19.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -47,7 +47,7 @@ Bug Tracker Bugs are tracked on `GitHub 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 `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -85,6 +85,6 @@ Current `maintainer `__: |maintainer-alexis-via| -This module is part of the `OCA/donation `_ project on GitHub. +This module is part of the `OCA/donation `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/partner_match_or_create/static/description/index.html b/partner_match_or_create/static/description/index.html index 204f06bbd..1a9a5e53f 100644 --- a/partner_match_or_create/static/description/index.html +++ b/partner_match_or_create/static/description/index.html @@ -374,7 +374,7 @@

Partner Match or Create

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:0cac77ca6ac6feebd29693c3d7ebe40803b9f4bbab4c220771b48b712809e6c7 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/donation Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/donation Translate me on Weblate Try me on Runboat

This is a technical module used by the OCA module stay_api and the OCA module donation_api. It allows to share code between those 2 modules.

@@ -395,7 +395,7 @@

Bug Tracker

Bugs are tracked on GitHub 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.

+feedback.

Do not contact contributors directly about support or help with technical issues.

@@ -423,7 +423,7 @@

Maintainers

promote its widespread use.

Current maintainer:

alexis-via

-

This module is part of the OCA/donation project on GitHub.

+

This module is part of the OCA/donation project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

diff --git a/partner_match_or_create/wizards/partner_match_or_create.py b/partner_match_or_create/wizards/partner_match_or_create.py index bec0a820a..860cb95ba 100644 --- a/partner_match_or_create/wizards/partner_match_or_create.py +++ b/partner_match_or_create/wizards/partner_match_or_create.py @@ -4,7 +4,7 @@ import logging -from odoo import _, api, fields, models +from odoo import api, fields, models from odoo.exceptions import UserError from odoo.fields import Domain @@ -248,7 +248,7 @@ def create_partner(self): partner = self.env["res.partner"].create(vals) model = self.env[self.res_model] partner.message_post( - body=_( + body=self.env._( "Contact created by the wizard of the module " "partner_match_or_create." ) @@ -256,7 +256,7 @@ def create_partner(self): record = model.browse(self.res_id) record.write({"partner_id": partner.id}) record.message_post( - body=_( + body=self.env._( "Contact " "%(partner_name)s created from web form information.", partner_id=partner.id, @@ -265,7 +265,7 @@ def create_partner(self): ) action = { "type": "ir.actions.act_window", - "name": _("New Partner"), + "name": self.env._("New Partner"), "res_model": "res.partner", "view_mode": "form", "res_id": partner.id, @@ -275,7 +275,7 @@ def create_partner(self): def update_partner(self): self.ensure_one() if not self.update_partner_id: - raise UserError(_("The partner to update is not set.")) + raise UserError(self.env._("The partner to update is not set.")) vals = {} if self.update_phone: vals["phone"] = self.mobile or self.phone @@ -295,7 +295,7 @@ def update_partner(self): model = self.env[self.res_model] if vals: self.update_partner_id.write(vals) - msg = _( + msg = self.env._( "Contact updated by the wizard of the module " "partner_match_or_create." )