From a56715840e1bb783ee9c33842cecc653e8a6ed5c Mon Sep 17 00:00:00 2001 From: lreficent Date: Fri, 1 Sep 2017 17:27:37 +0200 Subject: [PATCH 01/45] [9.0][ADD] account_invoice_fixed_discount --- account_invoice_fixed_discount/README.rst | 77 ++++++++++++++++ account_invoice_fixed_discount/__init__.py | 5 ++ account_invoice_fixed_discount/__openerp__.py | 21 +++++ .../models/__init__.py | 5 ++ .../models/account_invoice.py | 76 ++++++++++++++++ .../reports/report_account_invoice.xml | 27 ++++++ .../static/description/icon.png | Bin 0 -> 9455 bytes .../tests/__init__.py | 5 ++ .../tests/test_account_fixed_discount.py | 82 ++++++++++++++++++ .../views/account_invoice_view.xml | 41 +++++++++ 10 files changed, 339 insertions(+) create mode 100644 account_invoice_fixed_discount/README.rst create mode 100644 account_invoice_fixed_discount/__init__.py create mode 100644 account_invoice_fixed_discount/__openerp__.py create mode 100644 account_invoice_fixed_discount/models/__init__.py create mode 100644 account_invoice_fixed_discount/models/account_invoice.py create mode 100644 account_invoice_fixed_discount/reports/report_account_invoice.xml create mode 100644 account_invoice_fixed_discount/static/description/icon.png create mode 100644 account_invoice_fixed_discount/tests/__init__.py create mode 100644 account_invoice_fixed_discount/tests/test_account_fixed_discount.py create mode 100644 account_invoice_fixed_discount/views/account_invoice_view.xml diff --git a/account_invoice_fixed_discount/README.rst b/account_invoice_fixed_discount/README.rst new file mode 100644 index 00000000000..35182cdb49f --- /dev/null +++ b/account_invoice_fixed_discount/README.rst @@ -0,0 +1,77 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +============================== +Account Invoice Fixed Discount +============================== + +This module extends the functionality of Invoicing to allow you to apply fixed +amount discounts at invoice line level. + +The module also extends the invoice report to show fixed discount. + +Installation +============ + +**Warning**: This module is incompatible with +``account_invoice_triple_discount`` which also belongs to `OCA/account-invoicing +`_. + +Configuration +============= + +To configure this module, you need to: + +#. Go to * Sale > Configuration > Settings*. +#. In the *Discount* option select *Allow discounts on sales order lines*. + +Usage +===== + +To use this module, you need to: + +#. Go to *Invoicing*. +#. Create a Invoice and specify a fixed discount in a line. + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/95/9.0 + +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 smash it by providing detailed and welcomed feedback. + +Credits +======= + +Images +------ + +* Odoo Community Association: `Icon `_. + +Contributors +------------ + +* Lois Rilo +* Jordi Ballester + + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +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. + +To contribute to this module, please visit https://odoo-community.org. diff --git a/account_invoice_fixed_discount/__init__.py b/account_invoice_fixed_discount/__init__.py new file mode 100644 index 00000000000..7201c080519 --- /dev/null +++ b/account_invoice_fixed_discount/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Eficent Business and IT Consulting Services S.L. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import models diff --git a/account_invoice_fixed_discount/__openerp__.py b/account_invoice_fixed_discount/__openerp__.py new file mode 100644 index 00000000000..b1f8d252582 --- /dev/null +++ b/account_invoice_fixed_discount/__openerp__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Eficent Business and IT Consulting Services S.L. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +{ + "name": "Account Fixed Discount", + "summary": "Allows to apply fixed amount discounts in invoices.", + "version": "9.0.1.0.0", + "category": "Accounting & Finance", + "website": "https://odoo-community.org/", + "author": "Eficent, Odoo Community Association (OCA)", + "license": "AGPL-3", + "application": False, + "installable": True, + "depends": [ + "account", + ], + "data": [ + "views/account_invoice_view.xml", + "reports/report_account_invoice.xml", + ], +} diff --git a/account_invoice_fixed_discount/models/__init__.py b/account_invoice_fixed_discount/models/__init__.py new file mode 100644 index 00000000000..5f4f4494429 --- /dev/null +++ b/account_invoice_fixed_discount/models/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Eficent Business and IT Consulting Services S.L. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import account_invoice diff --git a/account_invoice_fixed_discount/models/account_invoice.py b/account_invoice_fixed_discount/models/account_invoice.py new file mode 100644 index 00000000000..3f1633f4d05 --- /dev/null +++ b/account_invoice_fixed_discount/models/account_invoice.py @@ -0,0 +1,76 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Eficent Business and IT Consulting Services S.L. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from openerp import api, fields, models, _ +import openerp.addons.decimal_precision as dp +from openerp.exceptions import ValidationError + + +class AccountInvoice(models.Model): + _inherit = "account.invoice" + + @api.multi + def get_taxes_values(self): + self.ensure_one() + vals = {} + for line in self.invoice_line_ids.filtered('discount_fixed'): + vals[line] = { + 'price_unit': line.price_unit, + 'discount_fixed': line.discount_fixed, + } + price_unit = line.price_unit - line.discount_fixed + line.update({ + 'price_unit': price_unit, + 'discount_fixed': 0.0, + }) + tax_grouped = super(AccountInvoice, self).get_taxes_values() + for line in vals.keys(): + line.update(vals[line]) + return tax_grouped + + +class AccountInvoiceLine(models.Model): + _inherit = "account.invoice.line" + + discount_fixed = fields.Float( + string="Discount (Fixed)", + digits=dp.get_precision('Product Price'), + help="Fixed amount discount.") + + @api.onchange('discount') + def _onchange_discount(self): + if self.discount: + self.discount_fixed = 0.0 + + @api.onchange('discount_fixed') + def _onchange_discount_fixed(self): + if self.discount_fixed: + self.discount = 0.0 + + @api.multi + @api.constrains('discount', 'discount_fixed') + def _check_only_one_discount(self): + for line in self: + if line.discount and line.discount_fixed: + raise ValidationError( + _("You can only set one type of discount per line.")) + + @api.one + @api.depends('price_unit', 'discount', 'invoice_line_tax_ids', 'quantity', + 'product_id', 'invoice_id.partner_id', + 'invoice_id.currency_id', 'invoice_id.company_id', + 'discount_fixed') + def _compute_price(self): + prev_price_unit = self.price_unit + prev_discount_fixed = self.discount_fixed + price_unit = self.price_unit - self.discount_fixed + self.update({ + 'price_unit': price_unit, + 'discount_fixed': 0.0, + }) + super(AccountInvoiceLine, self)._compute_price() + self.update({ + 'price_unit': prev_price_unit, + 'discount_fixed': prev_discount_fixed, + }) diff --git a/account_invoice_fixed_discount/reports/report_account_invoice.xml b/account_invoice_fixed_discount/reports/report_account_invoice.xml new file mode 100644 index 00000000000..20d398d7601 --- /dev/null +++ b/account_invoice_fixed_discount/reports/report_account_invoice.xml @@ -0,0 +1,27 @@ + + + + + + + diff --git a/account_invoice_fixed_discount/static/description/icon.png b/account_invoice_fixed_discount/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/account_invoice_fixed_discount/tests/__init__.py b/account_invoice_fixed_discount/tests/__init__.py new file mode 100644 index 00000000000..b6d11e57ee3 --- /dev/null +++ b/account_invoice_fixed_discount/tests/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Eficent Business and IT Consulting Services S.L. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import test_account_fixed_discount diff --git a/account_invoice_fixed_discount/tests/test_account_fixed_discount.py b/account_invoice_fixed_discount/tests/test_account_fixed_discount.py new file mode 100644 index 00000000000..a66a1bc3b28 --- /dev/null +++ b/account_invoice_fixed_discount/tests/test_account_fixed_discount.py @@ -0,0 +1,82 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Tecnativa - David Vidal +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from openerp.tests import SavepointCase +from openerp.exceptions import ValidationError + + +class TestInvoiceFixedDiscount(SavepointCase): + + @classmethod + def setUpClass(cls): + super(TestInvoiceFixedDiscount, cls).setUpClass() + cls.partner = cls.env['res.partner'].create({'name': 'Test'}) + cls.tax = cls.env['account.tax'].create({ + 'name': 'TAX 15%', + 'amount_type': 'percent', + 'type_tax_use': 'sale', + 'amount': 15.0, + }) + cls.account_type = cls.env['account.account.type'].create({ + 'name': 'Test', + 'type': 'receivable', + }) + cls.account = cls.env['account.account'].create({ + 'name': 'Test account', + 'code': 'TEST', + 'user_type_id': cls.account_type.id, + 'reconcile': True, + }) + cls.invoice = cls.env['account.invoice'].create({ + 'name': "Test Customer Invoice", + 'journal_id': cls.env['account.journal'].search( + [('type', '=', 'sale')])[0].id, + 'partner_id': cls.partner.id, + 'account_id': cls.account.id, + }) + cls.invoice_line = cls.env['account.invoice.line'] + cls.invoice_line1 = cls.invoice_line.create({ + 'invoice_id': cls.invoice.id, + 'name': 'Line 1', + 'price_unit': 200.0, + 'account_id': cls.account.id, + 'invoice_line_tax_ids': [(6, 0, [cls.tax.id])], + 'quantity': 1, + }) + + def test_01_discounts(self): + """ Tests multiple discounts in line with taxes.""" + # Apply a fixed discount + self.invoice_line1.discount_fixed = 10.0 + self.invoice._onchange_invoice_line_ids() + self.assertEqual(self.invoice.amount_total, 218.50) + # Try to add also a % discount + with self.assertRaises(ValidationError): + self.invoice_line1.write({'discount': 50.0}) + # Apply a % discount + self.invoice_line1._onchange_discount_fixed() + self.invoice_line1.discount_fixed = 0.0 + self.invoice_line1.discount = 50.0 + self.invoice_line1._onchange_discount() + self.invoice._onchange_invoice_line_ids() + self.assertEqual(self.invoice.amount_total, 115.00) + + def test_02_discounts_multiple_lines(self): + """ Tests multiple lines with mixed taxes and dicount types.""" + self.invoice_line2 = self.invoice_line.create({ + 'invoice_id': self.invoice.id, + 'name': 'Line 1', + 'price_unit': 500.0, + 'account_id': self.account.id, + 'quantity': 1, + }) + self.assertEqual(self.invoice_line2.price_subtotal, 500.0) + # Add a fixed discount + self.invoice_line2.discount_fixed = 100.0 + self.invoice._onchange_invoice_line_ids() + self.assertEqual(self.invoice_line2.price_subtotal, 400.0) + self.assertEqual(self.invoice.amount_total, 630.0) + self.invoice_line1.discount = 50.0 + self.invoice._onchange_invoice_line_ids() + self.assertEqual(self.invoice.amount_total, 515.0) diff --git a/account_invoice_fixed_discount/views/account_invoice_view.xml b/account_invoice_fixed_discount/views/account_invoice_view.xml new file mode 100644 index 00000000000..beeb3d7297e --- /dev/null +++ b/account_invoice_fixed_discount/views/account_invoice_view.xml @@ -0,0 +1,41 @@ + + + + + + + account.invoice.line.tree - sale_fixed_discount + account.invoice.line + + + + + + + + + + account.invoice.line.form - sale_fixed_discount + account.invoice.line + + + + + + + + + + account.invoice.form - sale_fixed_discount + account.invoice + + + + + + + + + From b6f8f32ba5d3106cb90fd01c895076eef7b80d1b Mon Sep 17 00:00:00 2001 From: lreficent Date: Fri, 12 Jan 2018 10:38:48 +0100 Subject: [PATCH 02/45] [10.0][MIG] account_invoice_fixed_discount --- account_invoice_fixed_discount/README.rst | 8 +++++++- account_invoice_fixed_discount/__init__.py | 1 - .../{__openerp__.py => __manifest__.py} | 2 +- account_invoice_fixed_discount/models/__init__.py | 1 - account_invoice_fixed_discount/models/account_invoice.py | 9 ++++++--- account_invoice_fixed_discount/tests/__init__.py | 1 - .../tests/test_account_fixed_discount.py | 4 ++-- 7 files changed, 16 insertions(+), 10 deletions(-) rename account_invoice_fixed_discount/{__openerp__.py => __manifest__.py} (95%) diff --git a/account_invoice_fixed_discount/README.rst b/account_invoice_fixed_discount/README.rst index 35182cdb49f..ec8f9a87008 100644 --- a/account_invoice_fixed_discount/README.rst +++ b/account_invoice_fixed_discount/README.rst @@ -36,7 +36,13 @@ To use this module, you need to: .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/95/9.0 + :target: https://runbot.odoo-community.org/runbot/95/10.0 + +Known issues / Roadmap +====================== + +* At the moment, the simultaneous use of percent and fixed discounts (at + line level) is not supported. Bug Tracker =========== diff --git a/account_invoice_fixed_discount/__init__.py b/account_invoice_fixed_discount/__init__.py index 7201c080519..ec50cfc0f30 100644 --- a/account_invoice_fixed_discount/__init__.py +++ b/account_invoice_fixed_discount/__init__.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- -# Copyright 2017 Eficent Business and IT Consulting Services S.L. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from . import models diff --git a/account_invoice_fixed_discount/__openerp__.py b/account_invoice_fixed_discount/__manifest__.py similarity index 95% rename from account_invoice_fixed_discount/__openerp__.py rename to account_invoice_fixed_discount/__manifest__.py index b1f8d252582..d15c78274a3 100644 --- a/account_invoice_fixed_discount/__openerp__.py +++ b/account_invoice_fixed_discount/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Account Fixed Discount", "summary": "Allows to apply fixed amount discounts in invoices.", - "version": "9.0.1.0.0", + "version": "10.0.1.0.0", "category": "Accounting & Finance", "website": "https://odoo-community.org/", "author": "Eficent, Odoo Community Association (OCA)", diff --git a/account_invoice_fixed_discount/models/__init__.py b/account_invoice_fixed_discount/models/__init__.py index 5f4f4494429..009711ad3d3 100644 --- a/account_invoice_fixed_discount/models/__init__.py +++ b/account_invoice_fixed_discount/models/__init__.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- -# Copyright 2017 Eficent Business and IT Consulting Services S.L. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from . import account_invoice diff --git a/account_invoice_fixed_discount/models/account_invoice.py b/account_invoice_fixed_discount/models/account_invoice.py index 3f1633f4d05..e49c80d9463 100644 --- a/account_invoice_fixed_discount/models/account_invoice.py +++ b/account_invoice_fixed_discount/models/account_invoice.py @@ -2,9 +2,9 @@ # Copyright 2017 Eficent Business and IT Consulting Services S.L. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from openerp import api, fields, models, _ -import openerp.addons.decimal_precision as dp -from openerp.exceptions import ValidationError +from odoo import api, fields, models, _ +import odoo.addons.decimal_precision as dp +from odoo.exceptions import ValidationError class AccountInvoice(models.Model): @@ -60,8 +60,11 @@ def _check_only_one_discount(self): @api.depends('price_unit', 'discount', 'invoice_line_tax_ids', 'quantity', 'product_id', 'invoice_id.partner_id', 'invoice_id.currency_id', 'invoice_id.company_id', + 'invoice_id.date_invoice', 'invoice_id.date', 'discount_fixed') def _compute_price(self): + if not self.discount_fixed: + return super(AccountInvoiceLine, self)._compute_price() prev_price_unit = self.price_unit prev_discount_fixed = self.discount_fixed price_unit = self.price_unit - self.discount_fixed diff --git a/account_invoice_fixed_discount/tests/__init__.py b/account_invoice_fixed_discount/tests/__init__.py index b6d11e57ee3..1d497dd7743 100644 --- a/account_invoice_fixed_discount/tests/__init__.py +++ b/account_invoice_fixed_discount/tests/__init__.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- -# Copyright 2017 Eficent Business and IT Consulting Services S.L. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from . import test_account_fixed_discount diff --git a/account_invoice_fixed_discount/tests/test_account_fixed_discount.py b/account_invoice_fixed_discount/tests/test_account_fixed_discount.py index a66a1bc3b28..e7c54cebaa1 100644 --- a/account_invoice_fixed_discount/tests/test_account_fixed_discount.py +++ b/account_invoice_fixed_discount/tests/test_account_fixed_discount.py @@ -2,8 +2,8 @@ # Copyright 2017 Tecnativa - David Vidal # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from openerp.tests import SavepointCase -from openerp.exceptions import ValidationError +from odoo.tests import SavepointCase +from odoo.exceptions import ValidationError class TestInvoiceFixedDiscount(SavepointCase): From 6a937f13af55fe37d8fe38899d54c80dfee14710 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Tue, 19 Jun 2018 18:46:28 +0000 Subject: [PATCH 03/45] [UPD] Update account_invoice_fixed_discount.pot --- .../i18n/account_invoice_fixed_discount.pot | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 account_invoice_fixed_discount/i18n/account_invoice_fixed_discount.pot diff --git a/account_invoice_fixed_discount/i18n/account_invoice_fixed_discount.pot b/account_invoice_fixed_discount/i18n/account_invoice_fixed_discount.pot new file mode 100644 index 00000000000..12d8ae4bb50 --- /dev/null +++ b/account_invoice_fixed_discount/i18n/account_invoice_fixed_discount.pot @@ -0,0 +1,46 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_invoice_fixed_discount +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: account_invoice_fixed_discount +#: model:ir.ui.view,arch_db:account_invoice_fixed_discount.report_invoice_document +msgid "Disc. Fixed Amount" +msgstr "" + +#. module: account_invoice_fixed_discount +#: model:ir.model.fields,field_description:account_invoice_fixed_discount.field_account_invoice_line_discount_fixed +msgid "Discount (Fixed)" +msgstr "" + +#. module: account_invoice_fixed_discount +#: model:ir.model.fields,help:account_invoice_fixed_discount.field_account_invoice_line_discount_fixed +msgid "Fixed amount discount." +msgstr "" + +#. module: account_invoice_fixed_discount +#: model:ir.model,name:account_invoice_fixed_discount.model_account_invoice +msgid "Invoice" +msgstr "" + +#. module: account_invoice_fixed_discount +#: model:ir.model,name:account_invoice_fixed_discount.model_account_invoice_line +msgid "Invoice Line" +msgstr "" + +#. module: account_invoice_fixed_discount +#: code:addons/account_invoice_fixed_discount/models/account_invoice.py:57 +#, python-format +msgid "You can only set one type of discount per line." +msgstr "" + From 59bb6e544e66ae01e94bb860b7aaed8e9ccb574f Mon Sep 17 00:00:00 2001 From: mreficent Date: Tue, 28 Aug 2018 16:31:00 +0200 Subject: [PATCH 04/45] [MIG] account_invoice_fixed_discount: Migration to 11.0 --- account_invoice_fixed_discount/README.rst | 80 +++++++++++-------- account_invoice_fixed_discount/__init__.py | 1 - .../__manifest__.py | 3 +- .../models/__init__.py | 1 - .../models/account_invoice.py | 1 - .../readme/CONTRIBUTORS.rst | 2 + .../readme/DESCRIPTION.rst | 4 + .../readme/INSTALL.rst | 3 + .../readme/ROADMAP.rst | 2 + .../readme/USAGE.rst | 5 ++ .../reports/report_account_invoice.xml | 5 +- .../tests/__init__.py | 1 - .../tests/test_account_fixed_discount.py | 1 - .../views/account_invoice_view.xml | 24 ++++-- 14 files changed, 85 insertions(+), 48 deletions(-) create mode 100644 account_invoice_fixed_discount/readme/CONTRIBUTORS.rst create mode 100644 account_invoice_fixed_discount/readme/DESCRIPTION.rst create mode 100644 account_invoice_fixed_discount/readme/INSTALL.rst create mode 100644 account_invoice_fixed_discount/readme/ROADMAP.rst create mode 100644 account_invoice_fixed_discount/readme/USAGE.rst diff --git a/account_invoice_fixed_discount/README.rst b/account_invoice_fixed_discount/README.rst index ec8f9a87008..4090c3dbf83 100644 --- a/account_invoice_fixed_discount/README.rst +++ b/account_invoice_fixed_discount/README.rst @@ -1,43 +1,56 @@ -.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg - :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html - :alt: License: AGPL-3 +====================== +Account Fixed Discount +====================== -============================== -Account Invoice Fixed Discount -============================== +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Faccount--invoicing-lightgray.png?logo=github + :target: https://github.com/OCA/account-invoicing/tree/11.0-mig-account_invoice_fixed_discount/account_invoice_fixed_discount + :alt: OCA/account-invoicing +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/account-invoicing-11-0-mig-account_invoice_fixed_discount/account-invoicing-11-0-mig-account_invoice_fixed_discount-account_invoice_fixed_discount + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/95/11.0-mig-account_invoice_fixed_discount + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| This module extends the functionality of Invoicing to allow you to apply fixed amount discounts at invoice line level. The module also extends the invoice report to show fixed discount. +**Table of contents** + +.. contents:: + :local: + Installation ============ **Warning**: This module is incompatible with ``account_invoice_triple_discount`` which also belongs to `OCA/account-invoicing -`_. - -Configuration -============= - -To configure this module, you need to: - -#. Go to * Sale > Configuration > Settings*. -#. In the *Discount* option select *Allow discounts on sales order lines*. +`__. Usage ===== To use this module, you need to: +#. Go to *Settings* and *Activate the developer mode* #. Go to *Invoicing*. #. Create a Invoice and specify a fixed discount in a line. -.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas - :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/95/10.0 - Known issues / Roadmap ====================== @@ -47,37 +60,40 @@ Known issues / Roadmap 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 smash it by providing detailed and welcomed feedback. +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 smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. Credits ======= -Images ------- +Authors +~~~~~~~ -* Odoo Community Association: `Icon `_. +* Eficent Contributors ------------- +~~~~~~~~~~~~ * Lois Rilo * Jordi Ballester +Maintainers +~~~~~~~~~~~ -Maintainer ----------- +This module is maintained by the OCA. .. image:: https://odoo-community.org/logo.png :alt: Odoo Community Association :target: https://odoo-community.org -This module is maintained by the OCA. - 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. -To contribute to this module, please visit https://odoo-community.org. +This module is part of the `OCA/account-invoicing `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/account_invoice_fixed_discount/__init__.py b/account_invoice_fixed_discount/__init__.py index ec50cfc0f30..69f7babdfb1 100644 --- a/account_invoice_fixed_discount/__init__.py +++ b/account_invoice_fixed_discount/__init__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from . import models diff --git a/account_invoice_fixed_discount/__manifest__.py b/account_invoice_fixed_discount/__manifest__.py index d15c78274a3..99c032d98bd 100644 --- a/account_invoice_fixed_discount/__manifest__.py +++ b/account_invoice_fixed_discount/__manifest__.py @@ -1,10 +1,9 @@ -# -*- coding: utf-8 -*- # Copyright 2017 Eficent Business and IT Consulting Services S.L. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { "name": "Account Fixed Discount", "summary": "Allows to apply fixed amount discounts in invoices.", - "version": "10.0.1.0.0", + "version": "11.0.1.0.0", "category": "Accounting & Finance", "website": "https://odoo-community.org/", "author": "Eficent, Odoo Community Association (OCA)", diff --git a/account_invoice_fixed_discount/models/__init__.py b/account_invoice_fixed_discount/models/__init__.py index 009711ad3d3..6834786a795 100644 --- a/account_invoice_fixed_discount/models/__init__.py +++ b/account_invoice_fixed_discount/models/__init__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from . import account_invoice diff --git a/account_invoice_fixed_discount/models/account_invoice.py b/account_invoice_fixed_discount/models/account_invoice.py index e49c80d9463..4accb8fb8f7 100644 --- a/account_invoice_fixed_discount/models/account_invoice.py +++ b/account_invoice_fixed_discount/models/account_invoice.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2017 Eficent Business and IT Consulting Services S.L. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/account_invoice_fixed_discount/readme/CONTRIBUTORS.rst b/account_invoice_fixed_discount/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..607aac471de --- /dev/null +++ b/account_invoice_fixed_discount/readme/CONTRIBUTORS.rst @@ -0,0 +1,2 @@ +* Lois Rilo +* Jordi Ballester diff --git a/account_invoice_fixed_discount/readme/DESCRIPTION.rst b/account_invoice_fixed_discount/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..19defa557c0 --- /dev/null +++ b/account_invoice_fixed_discount/readme/DESCRIPTION.rst @@ -0,0 +1,4 @@ +This module extends the functionality of Invoicing to allow you to apply fixed +amount discounts at invoice line level. + +The module also extends the invoice report to show fixed discount. diff --git a/account_invoice_fixed_discount/readme/INSTALL.rst b/account_invoice_fixed_discount/readme/INSTALL.rst new file mode 100644 index 00000000000..7c551f17b47 --- /dev/null +++ b/account_invoice_fixed_discount/readme/INSTALL.rst @@ -0,0 +1,3 @@ +**Warning**: This module is incompatible with +``account_invoice_triple_discount`` which also belongs to `OCA/account-invoicing +`__. diff --git a/account_invoice_fixed_discount/readme/ROADMAP.rst b/account_invoice_fixed_discount/readme/ROADMAP.rst new file mode 100644 index 00000000000..e1bf21e7ffa --- /dev/null +++ b/account_invoice_fixed_discount/readme/ROADMAP.rst @@ -0,0 +1,2 @@ +* At the moment, the simultaneous use of percent and fixed discounts (at + line level) is not supported. diff --git a/account_invoice_fixed_discount/readme/USAGE.rst b/account_invoice_fixed_discount/readme/USAGE.rst new file mode 100644 index 00000000000..9d0cb920cbb --- /dev/null +++ b/account_invoice_fixed_discount/readme/USAGE.rst @@ -0,0 +1,5 @@ +To use this module, you need to: + +#. Go to *Settings* and *Activate the developer mode* +#. Go to *Invoicing*. +#. Create a Invoice and specify a fixed discount in a line. diff --git a/account_invoice_fixed_discount/reports/report_account_invoice.xml b/account_invoice_fixed_discount/reports/report_account_invoice.xml index 20d398d7601..faf5f91205a 100644 --- a/account_invoice_fixed_discount/reports/report_account_invoice.xml +++ b/account_invoice_fixed_discount/reports/report_account_invoice.xml @@ -12,12 +12,11 @@ - Disc. Fixed Amount + Disc. Fixed Amount - + diff --git a/account_invoice_fixed_discount/tests/__init__.py b/account_invoice_fixed_discount/tests/__init__.py index 1d497dd7743..16a0e89c59b 100644 --- a/account_invoice_fixed_discount/tests/__init__.py +++ b/account_invoice_fixed_discount/tests/__init__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from . import test_account_fixed_discount diff --git a/account_invoice_fixed_discount/tests/test_account_fixed_discount.py b/account_invoice_fixed_discount/tests/test_account_fixed_discount.py index e7c54cebaa1..826e2a9d614 100644 --- a/account_invoice_fixed_discount/tests/test_account_fixed_discount.py +++ b/account_invoice_fixed_discount/tests/test_account_fixed_discount.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2017 Tecnativa - David Vidal # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/account_invoice_fixed_discount/views/account_invoice_view.xml b/account_invoice_fixed_discount/views/account_invoice_view.xml index beeb3d7297e..41758acfee9 100644 --- a/account_invoice_fixed_discount/views/account_invoice_view.xml +++ b/account_invoice_fixed_discount/views/account_invoice_view.xml @@ -5,35 +5,47 @@ - account.invoice.line.tree - sale_fixed_discount + account.invoice.line.tree - fixed_discount account.invoice.line - + - account.invoice.line.form - sale_fixed_discount + account.invoice.line.form - fixed_discount account.invoice.line - + - account.invoice.form - sale_fixed_discount + account.invoice.form - fixed_discount account.invoice - + + + + + + + account.invoice.supplier.form - fixed_discount + account.invoice + + + + From 62dcd9a7e9f714838a12c64c6086a8c83e3a1fb8 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 8 Oct 2018 17:22:05 +0000 Subject: [PATCH 05/45] [UPD] README.rst --- account_invoice_fixed_discount/README.rst | 10 +- .../static/description/index.html | 446 ++++++++++++++++++ 2 files changed, 451 insertions(+), 5 deletions(-) create mode 100644 account_invoice_fixed_discount/static/description/index.html diff --git a/account_invoice_fixed_discount/README.rst b/account_invoice_fixed_discount/README.rst index 4090c3dbf83..e0eb8de8811 100644 --- a/account_invoice_fixed_discount/README.rst +++ b/account_invoice_fixed_discount/README.rst @@ -14,13 +14,13 @@ Account Fixed Discount :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Faccount--invoicing-lightgray.png?logo=github - :target: https://github.com/OCA/account-invoicing/tree/11.0-mig-account_invoice_fixed_discount/account_invoice_fixed_discount + :target: https://github.com/OCA/account-invoicing/tree/11.0/account_invoice_fixed_discount :alt: OCA/account-invoicing .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/account-invoicing-11-0-mig-account_invoice_fixed_discount/account-invoicing-11-0-mig-account_invoice_fixed_discount-account_invoice_fixed_discount + :target: https://translation.odoo-community.org/projects/account-invoicing-11-0/account-invoicing-11-0-account_invoice_fixed_discount :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/95/11.0-mig-account_invoice_fixed_discount + :target: https://runbot.odoo-community.org/runbot/95/11.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -63,7 +63,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -94,6 +94,6 @@ 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. -This module is part of the `OCA/account-invoicing `_ project on GitHub. +This module is part of the `OCA/account-invoicing `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/account_invoice_fixed_discount/static/description/index.html b/account_invoice_fixed_discount/static/description/index.html new file mode 100644 index 00000000000..0e8128035f3 --- /dev/null +++ b/account_invoice_fixed_discount/static/description/index.html @@ -0,0 +1,446 @@ + + + + + + +Account Fixed Discount + + + +
+

Account Fixed Discount

+ + +

Beta License: AGPL-3 OCA/account-invoicing Translate me on Weblate Try me on Runbot

+

This module extends the functionality of Invoicing to allow you to apply fixed +amount discounts at invoice line level.

+

The module also extends the invoice report to show fixed discount.

+

Table of contents

+ +
+

Installation

+

Warning: This module is incompatible with +account_invoice_triple_discount which also belongs to OCA/account-invoicing.

+
+
+

Usage

+

To use this module, you need to:

+
    +
  1. Go to Settings and Activate the developer mode
  2. +
  3. Go to Invoicing.
  4. +
  5. Create a Invoice and specify a fixed discount in a line.
  6. +
+
+
+

Known issues / Roadmap

+
    +
  • At the moment, the simultaneous use of percent and fixed discounts (at +line level) is not supported.
  • +
+
+
+

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 smashing it by providing a detailed and welcomed +feedback.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • Eficent
  • +
+
+
+

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.

+

This module is part of the OCA/account-invoicing project on GitHub.

+

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

+
+
+
+ + From c5f7cfba6b0662565ffd74efccabea963cc548fc Mon Sep 17 00:00:00 2001 From: oca-travis Date: Mon, 8 Oct 2018 18:04:22 +0000 Subject: [PATCH 06/45] [UPD] Update account_invoice_fixed_discount.pot --- .../i18n/account_invoice_fixed_discount.pot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/account_invoice_fixed_discount/i18n/account_invoice_fixed_discount.pot b/account_invoice_fixed_discount/i18n/account_invoice_fixed_discount.pot index 12d8ae4bb50..06bf52304a9 100644 --- a/account_invoice_fixed_discount/i18n/account_invoice_fixed_discount.pot +++ b/account_invoice_fixed_discount/i18n/account_invoice_fixed_discount.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 10.0\n" +"Project-Id-Version: Odoo Server 11.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: <>\n" "Language-Team: \n" @@ -39,7 +39,7 @@ msgid "Invoice Line" msgstr "" #. module: account_invoice_fixed_discount -#: code:addons/account_invoice_fixed_discount/models/account_invoice.py:57 +#: code:addons/account_invoice_fixed_discount/models/account_invoice.py:56 #, python-format msgid "You can only set one type of discount per line." msgstr "" From 3627ef6c09c58c73c6180c5d64bbd8f6fa605da1 Mon Sep 17 00:00:00 2001 From: hveficent Date: Thu, 18 Apr 2019 11:50:17 +0200 Subject: [PATCH 07/45] [MIG] account_invoice_fixed_discount: Migration to 12.0 --- account_invoice_fixed_discount/__manifest__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/account_invoice_fixed_discount/__manifest__.py b/account_invoice_fixed_discount/__manifest__.py index 99c032d98bd..69644168731 100644 --- a/account_invoice_fixed_discount/__manifest__.py +++ b/account_invoice_fixed_discount/__manifest__.py @@ -3,9 +3,9 @@ { "name": "Account Fixed Discount", "summary": "Allows to apply fixed amount discounts in invoices.", - "version": "11.0.1.0.0", + "version": "12.0.1.0.0", "category": "Accounting & Finance", - "website": "https://odoo-community.org/", + "website": "https://github.com/OCA/account-invoicing", "author": "Eficent, Odoo Community Association (OCA)", "license": "AGPL-3", "application": False, From 412084e577ccf41a48992714db80c92546ff80e4 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 7 Jun 2019 12:06:03 +0000 Subject: [PATCH 08/45] [UPD] README.rst --- account_invoice_fixed_discount/README.rst | 10 +++++----- .../static/description/index.html | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/account_invoice_fixed_discount/README.rst b/account_invoice_fixed_discount/README.rst index e0eb8de8811..7ba316e5728 100644 --- a/account_invoice_fixed_discount/README.rst +++ b/account_invoice_fixed_discount/README.rst @@ -14,13 +14,13 @@ Account Fixed Discount :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Faccount--invoicing-lightgray.png?logo=github - :target: https://github.com/OCA/account-invoicing/tree/11.0/account_invoice_fixed_discount + :target: https://github.com/OCA/account-invoicing/tree/12.0/account_invoice_fixed_discount :alt: OCA/account-invoicing .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/account-invoicing-11-0/account-invoicing-11-0-account_invoice_fixed_discount + :target: https://translation.odoo-community.org/projects/account-invoicing-12-0/account-invoicing-12-0-account_invoice_fixed_discount :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/95/11.0 + :target: https://runbot.odoo-community.org/runbot/95/12.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -63,7 +63,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -94,6 +94,6 @@ 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. -This module is part of the `OCA/account-invoicing `_ project on GitHub. +This module is part of the `OCA/account-invoicing `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/account_invoice_fixed_discount/static/description/index.html b/account_invoice_fixed_discount/static/description/index.html index 0e8128035f3..7ba42b12e8b 100644 --- a/account_invoice_fixed_discount/static/description/index.html +++ b/account_invoice_fixed_discount/static/description/index.html @@ -367,7 +367,7 @@

Account Fixed Discount

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/account-invoicing Translate me on Weblate Try me on Runbot

+

Beta License: AGPL-3 OCA/account-invoicing Translate me on Weblate Try me on Runbot

This module extends the functionality of Invoicing to allow you to apply fixed amount discounts at invoice line level.

The module also extends the invoice report to show fixed discount.

@@ -412,7 +412,7 @@

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -feedback.

+feedback.

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

@@ -437,7 +437,7 @@

Maintainers

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.

-

This module is part of the OCA/account-invoicing project on GitHub.

+

This module is part of the OCA/account-invoicing project on GitHub.

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

From b840132b17e562c8a1dee440cc969123fbe48e63 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Fri, 7 Jun 2019 12:24:40 +0000 Subject: [PATCH 09/45] [UPD] Update account_invoice_fixed_discount.pot --- .../i18n/account_invoice_fixed_discount.pot | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/account_invoice_fixed_discount/i18n/account_invoice_fixed_discount.pot b/account_invoice_fixed_discount/i18n/account_invoice_fixed_discount.pot index 06bf52304a9..3c896f4f25e 100644 --- a/account_invoice_fixed_discount/i18n/account_invoice_fixed_discount.pot +++ b/account_invoice_fixed_discount/i18n/account_invoice_fixed_discount.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 11.0\n" +"Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: <>\n" "Language-Team: \n" @@ -14,17 +14,17 @@ msgstr "" "Plural-Forms: \n" #. module: account_invoice_fixed_discount -#: model:ir.ui.view,arch_db:account_invoice_fixed_discount.report_invoice_document +#: model_terms:ir.ui.view,arch_db:account_invoice_fixed_discount.report_invoice_document msgid "Disc. Fixed Amount" msgstr "" #. module: account_invoice_fixed_discount -#: model:ir.model.fields,field_description:account_invoice_fixed_discount.field_account_invoice_line_discount_fixed +#: model:ir.model.fields,field_description:account_invoice_fixed_discount.field_account_invoice_line__discount_fixed msgid "Discount (Fixed)" msgstr "" #. module: account_invoice_fixed_discount -#: model:ir.model.fields,help:account_invoice_fixed_discount.field_account_invoice_line_discount_fixed +#: model:ir.model.fields,help:account_invoice_fixed_discount.field_account_invoice_line__discount_fixed msgid "Fixed amount discount." msgstr "" From 840081a53d21b28fdb7dd26ebdf222767251f7f9 Mon Sep 17 00:00:00 2001 From: mreficent Date: Fri, 7 Jun 2019 15:07:13 +0200 Subject: [PATCH 10/45] [FIX] account_invoice_fixed_discount: templated correctly --- .../reports/report_account_invoice.xml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/account_invoice_fixed_discount/reports/report_account_invoice.xml b/account_invoice_fixed_discount/reports/report_account_invoice.xml index faf5f91205a..b55bab0a791 100644 --- a/account_invoice_fixed_discount/reports/report_account_invoice.xml +++ b/account_invoice_fixed_discount/reports/report_account_invoice.xml @@ -12,11 +12,14 @@ - Disc. Fixed Amount + + Disc. Fixed Amount + + - + From 47624f494906caf9f7272e868ec62ef86b9389c1 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Fri, 7 Jun 2019 13:35:14 +0000 Subject: [PATCH 11/45] [UPD] Update account_invoice_fixed_discount.pot --- .../i18n/account_invoice_fixed_discount.pot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/account_invoice_fixed_discount/i18n/account_invoice_fixed_discount.pot b/account_invoice_fixed_discount/i18n/account_invoice_fixed_discount.pot index 3c896f4f25e..2ed9bde4454 100644 --- a/account_invoice_fixed_discount/i18n/account_invoice_fixed_discount.pot +++ b/account_invoice_fixed_discount/i18n/account_invoice_fixed_discount.pot @@ -15,7 +15,7 @@ msgstr "" #. module: account_invoice_fixed_discount #: model_terms:ir.ui.view,arch_db:account_invoice_fixed_discount.report_invoice_document -msgid "Disc. Fixed Amount" +msgid "Disc. Fixed Amount" msgstr "" #. module: account_invoice_fixed_discount From 200280335c07fd3cc7182b69e86b1c5f6ddfe5e3 Mon Sep 17 00:00:00 2001 From: Maria Sparenberg Date: Tue, 16 Jul 2019 10:30:53 +0000 Subject: [PATCH 12/45] Added translation using Weblate (German) --- account_invoice_fixed_discount/i18n/de.po | 46 +++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 account_invoice_fixed_discount/i18n/de.po diff --git a/account_invoice_fixed_discount/i18n/de.po b/account_invoice_fixed_discount/i18n/de.po new file mode 100644 index 00000000000..55c03029f2b --- /dev/null +++ b/account_invoice_fixed_discount/i18n/de.po @@ -0,0 +1,46 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_invoice_fixed_discount +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\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" + +#. module: account_invoice_fixed_discount +#: model_terms:ir.ui.view,arch_db:account_invoice_fixed_discount.report_invoice_document +msgid "Disc. Fixed Amount" +msgstr "" + +#. module: account_invoice_fixed_discount +#: model:ir.model.fields,field_description:account_invoice_fixed_discount.field_account_invoice_line__discount_fixed +msgid "Discount (Fixed)" +msgstr "" + +#. module: account_invoice_fixed_discount +#: model:ir.model.fields,help:account_invoice_fixed_discount.field_account_invoice_line__discount_fixed +msgid "Fixed amount discount." +msgstr "" + +#. module: account_invoice_fixed_discount +#: model:ir.model,name:account_invoice_fixed_discount.model_account_invoice +msgid "Invoice" +msgstr "" + +#. module: account_invoice_fixed_discount +#: model:ir.model,name:account_invoice_fixed_discount.model_account_invoice_line +msgid "Invoice Line" +msgstr "" + +#. module: account_invoice_fixed_discount +#: code:addons/account_invoice_fixed_discount/models/account_invoice.py:56 +#, python-format +msgid "You can only set one type of discount per line." +msgstr "" From cc22b8712f0036f86d4a6ce9e2408e1e01ec69a4 Mon Sep 17 00:00:00 2001 From: Maria Sparenberg Date: Wed, 17 Jul 2019 10:20:58 +0000 Subject: [PATCH 13/45] Translated using Weblate (German) Currently translated at 100.0% (6 of 6 strings) Translation: account-invoicing-12.0/account-invoicing-12.0-account_invoice_fixed_discount Translate-URL: https://translation.odoo-community.org/projects/account-invoicing-12-0/account-invoicing-12-0-account_invoice_fixed_discount/de/ --- account_invoice_fixed_discount/i18n/de.po | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/account_invoice_fixed_discount/i18n/de.po b/account_invoice_fixed_discount/i18n/de.po index 55c03029f2b..266a0f44133 100644 --- a/account_invoice_fixed_discount/i18n/de.po +++ b/account_invoice_fixed_discount/i18n/de.po @@ -6,41 +6,45 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2019-07-17 12:43+0000\n" +"Last-Translator: Maria Sparenberg \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.7.1\n" #. module: account_invoice_fixed_discount #: model_terms:ir.ui.view,arch_db:account_invoice_fixed_discount.report_invoice_document msgid "Disc. Fixed Amount" -msgstr "" +msgstr "Rabatt (abs.)" #. module: account_invoice_fixed_discount #: model:ir.model.fields,field_description:account_invoice_fixed_discount.field_account_invoice_line__discount_fixed msgid "Discount (Fixed)" -msgstr "" +msgstr "Rabatt (abs.)" #. module: account_invoice_fixed_discount #: model:ir.model.fields,help:account_invoice_fixed_discount.field_account_invoice_line__discount_fixed msgid "Fixed amount discount." -msgstr "" +msgstr "Hier kann ein absoluter Rabatt hinzugefügt werden." #. module: account_invoice_fixed_discount #: model:ir.model,name:account_invoice_fixed_discount.model_account_invoice msgid "Invoice" -msgstr "" +msgstr "Rechnung" #. module: account_invoice_fixed_discount #: model:ir.model,name:account_invoice_fixed_discount.model_account_invoice_line msgid "Invoice Line" -msgstr "" +msgstr "Rechnungsposition" #. module: account_invoice_fixed_discount #: code:addons/account_invoice_fixed_discount/models/account_invoice.py:56 #, python-format msgid "You can only set one type of discount per line." msgstr "" +"Es kann nur eine Art von Rabatt (prozentual oder absolut) pro Zeile gesetzt " +"werden." From 24ed9773a7b71837b3346fe4c2c4bc9c6fcdbd0f Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 29 Jul 2019 02:37:43 +0000 Subject: [PATCH 14/45] [UPD] README.rst --- account_invoice_fixed_discount/static/description/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/account_invoice_fixed_discount/static/description/index.html b/account_invoice_fixed_discount/static/description/index.html index 7ba42b12e8b..4927f54a009 100644 --- a/account_invoice_fixed_discount/static/description/index.html +++ b/account_invoice_fixed_discount/static/description/index.html @@ -3,7 +3,7 @@ - + Account Fixed Discount