From b533a232f2b47a3be620b7aa652ad393f5033f49 Mon Sep 17 00:00:00 2001 From: marionumza Date: Fri, 7 Jul 2023 16:40:15 -0300 Subject: [PATCH 1/2] ADD account_invoice_report_hide_line --- account_invoice_report_hide_line/README.rst | 108 +++++ account_invoice_report_hide_line/__init__.py | 4 + .../__manifest__.py | 16 + .../i18n/account_invoice_report_hide_line.pot | 39 ++ account_invoice_report_hide_line/i18n/de.po | 42 ++ account_invoice_report_hide_line/i18n/hr.po | 28 ++ .../models/__init__.py | 4 + .../models/account_invoice.py | 17 + .../readme/CONTRIBUTORS.rst | 2 + .../readme/CREDITS.rst | 3 + .../readme/DESCRIPTION.rst | 3 + .../readme/USAGE.rst | 10 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 452 ++++++++++++++++++ .../tests/__init__.py | 4 + .../tests/test_account_invoice_report.py | 50 ++ .../views/account_move_view.xml | 23 + .../views/report_invoice.xml | 14 + 18 files changed, 819 insertions(+) create mode 100644 account_invoice_report_hide_line/README.rst create mode 100644 account_invoice_report_hide_line/__init__.py create mode 100644 account_invoice_report_hide_line/__manifest__.py create mode 100644 account_invoice_report_hide_line/i18n/account_invoice_report_hide_line.pot create mode 100644 account_invoice_report_hide_line/i18n/de.po create mode 100644 account_invoice_report_hide_line/i18n/hr.po create mode 100644 account_invoice_report_hide_line/models/__init__.py create mode 100644 account_invoice_report_hide_line/models/account_invoice.py create mode 100644 account_invoice_report_hide_line/readme/CONTRIBUTORS.rst create mode 100644 account_invoice_report_hide_line/readme/CREDITS.rst create mode 100644 account_invoice_report_hide_line/readme/DESCRIPTION.rst create mode 100644 account_invoice_report_hide_line/readme/USAGE.rst create mode 100644 account_invoice_report_hide_line/static/description/icon.png create mode 100644 account_invoice_report_hide_line/static/description/index.html create mode 100644 account_invoice_report_hide_line/tests/__init__.py create mode 100644 account_invoice_report_hide_line/tests/test_account_invoice_report.py create mode 100644 account_invoice_report_hide_line/views/account_move_view.xml create mode 100644 account_invoice_report_hide_line/views/report_invoice.xml diff --git a/account_invoice_report_hide_line/README.rst b/account_invoice_report_hide_line/README.rst new file mode 100644 index 000000000..86e0daa23 --- /dev/null +++ b/account_invoice_report_hide_line/README.rst @@ -0,0 +1,108 @@ +============================================================= +Hide invoice lines from the PDF report if the unit price is 0 +============================================================= + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! 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--invoice--reporting-lightgray.png?logo=github + :target: https://github.com/OCA/account-invoice-reporting/tree/14.0/account_invoice_report_hide_line + :alt: OCA/account-invoice-reporting +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/account-invoice-reporting-14-0/account-invoice-reporting-14-0-account_invoice_report_hide_line + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/94/14.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +In some service companies, the customer is invoiced for a service that may consume inventory items. Those inventory items needs to be invoiced to account in the cost of services sold and reconcile the value of the inventory items delivered and sitting in the Un-Invoiced Goods Delivered, but they should not appear to the customer on the PDF report of their invoice. + +This module allows you to hide invoice lines from the PDF report if the unit price is 0. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +To use this module, you need to: + +* Go to Invoicing +* Create or select a draft invoice +* Add an invoice line + * Un-check the "Show in report" box + * Select a storable product + * Set the unit price to 0 +* Save and print the invoice. The new line does not show up in PDF. +* If you are using anglo-saxon accounting, validate the invoice and check that the journal entry is reconciling the delivery of the product. + +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 +~~~~~~~ + +* Open Source Integrators + +Contributors +~~~~~~~~~~~~ + +* Bhavesh Odedra +* Ammar Officewala + +Other credits +~~~~~~~~~~~~~ + +The development of this module has been financially supported by: + +* Open Source Integrators + +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-bodedra| image:: https://github.com/bodedra.png?size=40px + :target: https://github.com/bodedra + :alt: bodedra +.. |maintainer-max3903| image:: https://github.com/max3903.png?size=40px + :target: https://github.com/max3903 + :alt: max3903 + +Current `maintainers `__: + +|maintainer-bodedra| |maintainer-max3903| + +This module is part of the `OCA/account-invoice-reporting `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/account_invoice_report_hide_line/__init__.py b/account_invoice_report_hide_line/__init__.py new file mode 100644 index 000000000..33c2f06ef --- /dev/null +++ b/account_invoice_report_hide_line/__init__.py @@ -0,0 +1,4 @@ +# Copyright (C) 2019 Open Source Integrators +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import models diff --git a/account_invoice_report_hide_line/__manifest__.py b/account_invoice_report_hide_line/__manifest__.py new file mode 100644 index 000000000..14669e6ef --- /dev/null +++ b/account_invoice_report_hide_line/__manifest__.py @@ -0,0 +1,16 @@ +# Copyright (C) 2019 Open Source Integrators +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "Hide invoice lines from the PDF report if the unit price is 0", + "version": "14.0.1.0.0", + "category": "Accounting", + "author": "Open Source Integrators, " "Odoo Community Association (OCA)", + "website": "https://github.com/OCA/account-invoice-reporting", + "depends": ["account"], + "data": ["views/account_move_view.xml", "views/report_invoice.xml"], + "installable": True, + "license": "AGPL-3", + "development_status": "Beta", + "maintainers": ["bodedra", "max3903"], +} diff --git a/account_invoice_report_hide_line/i18n/account_invoice_report_hide_line.pot b/account_invoice_report_hide_line/i18n/account_invoice_report_hide_line.pot new file mode 100644 index 000000000..d92d985fe --- /dev/null +++ b/account_invoice_report_hide_line/i18n/account_invoice_report_hide_line.pot @@ -0,0 +1,39 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_invoice_report_hide_line +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.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_report_hide_line +#: model:ir.model.fields,field_description:account_invoice_report_hide_line.field_account_move_line__display_name +msgid "Display Name" +msgstr "" + +#. module: account_invoice_report_hide_line +#: model:ir.model.fields,field_description:account_invoice_report_hide_line.field_account_move_line__id +msgid "ID" +msgstr "" + +#. module: account_invoice_report_hide_line +#: model:ir.model,name:account_invoice_report_hide_line.model_account_move_line +msgid "Journal Item" +msgstr "" + +#. module: account_invoice_report_hide_line +#: model:ir.model.fields,field_description:account_invoice_report_hide_line.field_account_move_line____last_update +msgid "Last Modified on" +msgstr "" + +#. module: account_invoice_report_hide_line +#: model:ir.model.fields,field_description:account_invoice_report_hide_line.field_account_move_line__show_in_report +msgid "Show In Report" +msgstr "" diff --git a/account_invoice_report_hide_line/i18n/de.po b/account_invoice_report_hide_line/i18n/de.po new file mode 100644 index 000000000..ff9677ca4 --- /dev/null +++ b/account_invoice_report_hide_line/i18n/de.po @@ -0,0 +1,42 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_invoice_report_hide_line +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2022-05-11 13:05+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 4.3.2\n" + +#. module: account_invoice_report_hide_line +#: model:ir.model.fields,field_description:account_invoice_report_hide_line.field_account_move_line__display_name +msgid "Display Name" +msgstr "Anzeigename" + +#. module: account_invoice_report_hide_line +#: model:ir.model.fields,field_description:account_invoice_report_hide_line.field_account_move_line__id +msgid "ID" +msgstr "ID" + +#. module: account_invoice_report_hide_line +#: model:ir.model,name:account_invoice_report_hide_line.model_account_move_line +msgid "Journal Item" +msgstr "Journal-Item" + +#. module: account_invoice_report_hide_line +#: model:ir.model.fields,field_description:account_invoice_report_hide_line.field_account_move_line____last_update +msgid "Last Modified on" +msgstr "Zuletzt geändert am" + +#. module: account_invoice_report_hide_line +#: model:ir.model.fields,field_description:account_invoice_report_hide_line.field_account_move_line__show_in_report +msgid "Show In Report" +msgstr "im Beleg anzeigen" diff --git a/account_invoice_report_hide_line/i18n/hr.po b/account_invoice_report_hide_line/i18n/hr.po new file mode 100644 index 000000000..5ed5d687a --- /dev/null +++ b/account_invoice_report_hide_line/i18n/hr.po @@ -0,0 +1,28 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_invoice_report_hide_line +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2020-03-05 16:13+0000\n" +"Last-Translator: Bole \n" +"Language-Team: none\n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=" +"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 3.10\n" + +#. module: account_invoice_report_hide_line +#: model:ir.model,name:account_invoice_report_hide_line.model_account_invoice_line +msgid "Invoice Line" +msgstr "Stavka računa" + +#. module: account_invoice_report_hide_line +#: model:ir.model.fields,field_description:account_invoice_report_hide_line.field_account_invoice_line__show_in_report +msgid "Show In Report" +msgstr "Prikaži u izvještaju" diff --git a/account_invoice_report_hide_line/models/__init__.py b/account_invoice_report_hide_line/models/__init__.py new file mode 100644 index 000000000..72e75675d --- /dev/null +++ b/account_invoice_report_hide_line/models/__init__.py @@ -0,0 +1,4 @@ +# Copyright (C) 2019 Open Source Integrators +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import account_invoice diff --git a/account_invoice_report_hide_line/models/account_invoice.py b/account_invoice_report_hide_line/models/account_invoice.py new file mode 100644 index 000000000..305283aa2 --- /dev/null +++ b/account_invoice_report_hide_line/models/account_invoice.py @@ -0,0 +1,17 @@ +# Copyright (C) 2019 Open Source Integrators +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class AccountMoveLine(models.Model): + _inherit = "account.move.line" + + show_in_report = fields.Boolean(default=True) + + @api.onchange("price_unit") + def _onchange_price_unit(self): + if self.price_unit > 0.0: + self.show_in_report = True + else: + self.show_in_report = False diff --git a/account_invoice_report_hide_line/readme/CONTRIBUTORS.rst b/account_invoice_report_hide_line/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..85952502e --- /dev/null +++ b/account_invoice_report_hide_line/readme/CONTRIBUTORS.rst @@ -0,0 +1,2 @@ +* Bhavesh Odedra +* Ammar Officewala diff --git a/account_invoice_report_hide_line/readme/CREDITS.rst b/account_invoice_report_hide_line/readme/CREDITS.rst new file mode 100644 index 000000000..0eff0acf4 --- /dev/null +++ b/account_invoice_report_hide_line/readme/CREDITS.rst @@ -0,0 +1,3 @@ +The development of this module has been financially supported by: + +* Open Source Integrators diff --git a/account_invoice_report_hide_line/readme/DESCRIPTION.rst b/account_invoice_report_hide_line/readme/DESCRIPTION.rst new file mode 100644 index 000000000..fff05709d --- /dev/null +++ b/account_invoice_report_hide_line/readme/DESCRIPTION.rst @@ -0,0 +1,3 @@ +In some service companies, the customer is invoiced for a service that may consume inventory items. Those inventory items needs to be invoiced to account in the cost of services sold and reconcile the value of the inventory items delivered and sitting in the Un-Invoiced Goods Delivered, but they should not appear to the customer on the PDF report of their invoice. + +This module allows you to hide invoice lines from the PDF report if the unit price is 0. diff --git a/account_invoice_report_hide_line/readme/USAGE.rst b/account_invoice_report_hide_line/readme/USAGE.rst new file mode 100644 index 000000000..7fd83f93f --- /dev/null +++ b/account_invoice_report_hide_line/readme/USAGE.rst @@ -0,0 +1,10 @@ +To use this module, you need to: + +* Go to Invoicing +* Create or select a draft invoice +* Add an invoice line + * Un-check the "Show in report" box + * Select a storable product + * Set the unit price to 0 +* Save and print the invoice. The new line does not show up in PDF. +* If you are using anglo-saxon accounting, validate the invoice and check that the journal entry is reconciling the delivery of the product. diff --git a/account_invoice_report_hide_line/static/description/icon.png b/account_invoice_report_hide_line/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_report_hide_line/static/description/index.html b/account_invoice_report_hide_line/static/description/index.html new file mode 100644 index 000000000..92407034c --- /dev/null +++ b/account_invoice_report_hide_line/static/description/index.html @@ -0,0 +1,452 @@ + + + + + + +Hide invoice lines from the PDF report if the unit price is 0 + + + +
+

Hide invoice lines from the PDF report if the unit price is 0

+ + +

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

+

In some service companies, the customer is invoiced for a service that may consume inventory items. Those inventory items needs to be invoiced to account in the cost of services sold and reconcile the value of the inventory items delivered and sitting in the Un-Invoiced Goods Delivered, but they should not appear to the customer on the PDF report of their invoice.

+

This module allows you to hide invoice lines from the PDF report if the unit price is 0.

+

Table of contents

+ +
+

Usage

+

To use this module, you need to:

+
    +
  • Go to Invoicing
  • +
  • Create or select a draft invoice
  • +
  • +
    Add an invoice line
    +
      +
    • Un-check the “Show in report” box
    • +
    • Select a storable product
    • +
    • Set the unit price to 0
    • +
    +
    +
    +
  • +
  • Save and print the invoice. The new line does not show up in PDF.
  • +
  • If you are using anglo-saxon accounting, validate the invoice and check that the journal entry is reconciling the delivery of the product.
  • +
+
+
+

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

+
    +
  • Open Source Integrators
  • +
+
+ +
+

Other credits

+

The development of this module has been financially supported by:

+ +
+
+

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 maintainers:

+

bodedra max3903

+

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

+

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

+
+
+
+ + diff --git a/account_invoice_report_hide_line/tests/__init__.py b/account_invoice_report_hide_line/tests/__init__.py new file mode 100644 index 000000000..863bddc90 --- /dev/null +++ b/account_invoice_report_hide_line/tests/__init__.py @@ -0,0 +1,4 @@ +# Copyright (C) 2019 Open Source Integrators +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import test_account_invoice_report diff --git a/account_invoice_report_hide_line/tests/test_account_invoice_report.py b/account_invoice_report_hide_line/tests/test_account_invoice_report.py new file mode 100644 index 000000000..3a12dd890 --- /dev/null +++ b/account_invoice_report_hide_line/tests/test_account_invoice_report.py @@ -0,0 +1,50 @@ +# Copyright (C) 2019 Open Source Integrators +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo.tests import tagged +from odoo.tests.common import Form + +from odoo.addons.account.tests.test_account_move_entry import TestAccountMove + + +@tagged("post_install", "-at_install") +class TestAccountCustomerInvoice(TestAccountMove): + def test_customer_invoice_show_in_report(self): + move_form = Form(self.env["account.move"]) + self.account_invoice_line_obj = self.env["account.move.line"] + self.journalrec = self.env["account.journal"].search([("type", "=", "sale")])[0] + self.partner3 = self.env.ref("base.res_partner_3") + move_form.journal_id = self.journalrec + move_form.partner_id = self.partner3 + with move_form.invoice_line_ids.new() as line_form: + line_form.product_id = self.env.ref("product.product_product_5") + line_form.quantity = 10 + line_form.account_id = self.env["account.account"].search( + [ + ( + "user_type_id", + "=", + self.env.ref("account.data_account_type_revenue").id, + ), + ("company_id", "=", move_form.company_id.id), + ], + limit=1, + ) + line_form.name = "product 5 test" + line_form.price_unit = 100.00 + self.invoice = move_form.save() + invoice_line = self.invoice.invoice_line_ids[0] + # I check that invoice_line will be checked with show_in_report + self.assertTrue( + invoice_line.show_in_report, + "Fail to show_in_report checked based on Price > 0.0", + ) + # Update unit price with 0.0 + invoice_line.price_unit = 0.0 + invoice_line._onchange_price_unit() + + # I check that invoice_line will be unchecked with show_in_report + self.assertFalse( + invoice_line.show_in_report, + "Fail to show_in_report unchecked based on Price " "< 0.0", + ) diff --git a/account_invoice_report_hide_line/views/account_move_view.xml b/account_invoice_report_hide_line/views/account_move_view.xml new file mode 100644 index 000000000..ca2552d2f --- /dev/null +++ b/account_invoice_report_hide_line/views/account_move_view.xml @@ -0,0 +1,23 @@ + + + + account.move.form + account.move + + + + + + + + + + + diff --git a/account_invoice_report_hide_line/views/report_invoice.xml b/account_invoice_report_hide_line/views/report_invoice.xml new file mode 100644 index 000000000..d70f73723 --- /dev/null +++ b/account_invoice_report_hide_line/views/report_invoice.xml @@ -0,0 +1,14 @@ + + + + From 1f65b7bd3e5f5d316a3690c4b43940bb255105e3 Mon Sep 17 00:00:00 2001 From: marionumza Date: Fri, 7 Jul 2023 16:45:21 -0300 Subject: [PATCH 2/2] MOD version --- account_invoice_report_hide_line/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/account_invoice_report_hide_line/__manifest__.py b/account_invoice_report_hide_line/__manifest__.py index 14669e6ef..caac61dc0 100644 --- a/account_invoice_report_hide_line/__manifest__.py +++ b/account_invoice_report_hide_line/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Hide invoice lines from the PDF report if the unit price is 0", - "version": "14.0.1.0.0", + "version": "15.0.1.0.0", "category": "Accounting", "author": "Open Source Integrators, " "Odoo Community Association (OCA)", "website": "https://github.com/OCA/account-invoice-reporting",