diff --git a/donation/README.rst b/donation/README.rst new file mode 100644 index 000000000..910d9d74b --- /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/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-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=19.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..54d8831e6 --- /dev/null +++ b/donation/models/account_payment_method_line.py @@ -0,0 +1,25 @@ +# 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.", # noqa: E501 + mode.display_name, + ) + ) diff --git a/donation/models/donation.py b/donation/models/donation.py new file mode 100644 index 000000000..2d89318b1 --- /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"}) + + @api.ondelete(at_uninstall=False) + def _unlink_except_linked_or_done(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, + ) + ) + + @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 000000000..a9a295465 Binary files /dev/null and b/donation/static/description/icon.png differ 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..b01663f65 --- /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..b400dbb48 --- /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..c3ea72aec --- /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/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-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=19.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..78702e30e --- /dev/null +++ b/donation_base/models/donation_tax_receipt.py @@ -0,0 +1,102 @@ +# 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", self.env._("New")) == self.env._("New"): + vals["number"] = self.env["ir.sequence"].next_by_code( + "donation.tax.receipt", sequence_date=date + ) or self.env._("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( + 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" + 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": self.env._("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..9159bb215 --- /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( + self.env._( + "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 000000000..3a0328b51 Binary files /dev/null and b/donation_base/static/description/icon.png differ diff --git a/donation_base/static/description/index.html b/donation_base/static/description/index.html new file mode 100644 index 000000000..2fb75337f --- /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..57da2c4af --- /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( + self.env._( + "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(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] + ) + 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..f602a0701 --- /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(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( + 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..7ead065d2 --- /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/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-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=19.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 000000000..1dcc49c24 Binary files /dev/null and b/partner_match_or_create/static/description/icon.png differ diff --git a/partner_match_or_create/static/description/index.html b/partner_match_or_create/static/description/index.html new file mode 100644 index 000000000..1a9a5e53f --- /dev/null +++ b/partner_match_or_create/static/description/index.html @@ -0,0 +1,433 @@ + + + + + +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..860cb95ba --- /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=self.env._( + "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=self.env._( + "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": self.env._("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(self.env._("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 = self.env._( + "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", +]