From 2351d430864c5752c4511e31137067a6a1704297 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Wed, 14 Oct 2020 16:30:31 +0000 Subject: [PATCH 01/26] [UPD] Update account_invoice_margin_sale.pot --- account_invoice_margin_sale/README.rst | 92 ++++ account_invoice_margin_sale/__init__.py | 3 + account_invoice_margin_sale/__manifest__.py | 19 + .../i18n/account_invoice_margin_sale.pot | 19 + .../models/__init__.py | 3 + account_invoice_margin_sale/models/sale.py | 14 + .../readme/CONTRIBUTORS.rst | 4 + .../readme/DESCRIPTION.rst | 1 + .../readme/INSTALL.rst | 1 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 430 ++++++++++++++++++ account_invoice_margin_sale/tests/__init__.py | 3 + .../tests/test_account_invoice_margin_sale.py | 77 ++++ 13 files changed, 666 insertions(+) create mode 100644 account_invoice_margin_sale/README.rst create mode 100644 account_invoice_margin_sale/__init__.py create mode 100644 account_invoice_margin_sale/__manifest__.py create mode 100644 account_invoice_margin_sale/i18n/account_invoice_margin_sale.pot create mode 100644 account_invoice_margin_sale/models/__init__.py create mode 100644 account_invoice_margin_sale/models/sale.py create mode 100644 account_invoice_margin_sale/readme/CONTRIBUTORS.rst create mode 100644 account_invoice_margin_sale/readme/DESCRIPTION.rst create mode 100644 account_invoice_margin_sale/readme/INSTALL.rst create mode 100644 account_invoice_margin_sale/static/description/icon.png create mode 100644 account_invoice_margin_sale/static/description/index.html create mode 100644 account_invoice_margin_sale/tests/__init__.py create mode 100644 account_invoice_margin_sale/tests/test_account_invoice_margin_sale.py diff --git a/account_invoice_margin_sale/README.rst b/account_invoice_margin_sale/README.rst new file mode 100644 index 000000000..dcba648d3 --- /dev/null +++ b/account_invoice_margin_sale/README.rst @@ -0,0 +1,92 @@ +=========================== +Account Invoice Margin Sale +=========================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png + :target: https://odoo-community.org/page/development-status + :alt: Production/Stable +.. |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%2Fmargin--analysis-lightgray.png?logo=github + :target: https://github.com/OCA/margin-analysis/tree/13.0/account_invoice_margin_sale + :alt: OCA/margin-analysis +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/margin-analysis-13-0/margin-analysis-13-0-account_invoice_margin_sale + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/132/13.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows transfer purchase price from sale order line to invoice. + +**Table of contents** + +.. contents:: + :local: + +Installation +============ + +This module is autoinstalable. + +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 +~~~~~~~ + +* Tecnativa + +Contributors +~~~~~~~~~~~~ + +* `Tecnativa `__: + + * Sergio Teruel + * Carlos Dauden + +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-sergio-teruel| image:: https://github.com/sergio-teruel.png?size=40px + :target: https://github.com/sergio-teruel + :alt: sergio-teruel +.. |maintainer-carlosdauden| image:: https://github.com/carlosdauden.png?size=40px + :target: https://github.com/carlosdauden + :alt: carlosdauden + +Current `maintainers `__: + +|maintainer-sergio-teruel| |maintainer-carlosdauden| + +This module is part of the `OCA/margin-analysis `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/account_invoice_margin_sale/__init__.py b/account_invoice_margin_sale/__init__.py new file mode 100644 index 000000000..7d768b54b --- /dev/null +++ b/account_invoice_margin_sale/__init__.py @@ -0,0 +1,3 @@ +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). + +from . import models diff --git a/account_invoice_margin_sale/__manifest__.py b/account_invoice_margin_sale/__manifest__.py new file mode 100644 index 000000000..aaa435430 --- /dev/null +++ b/account_invoice_margin_sale/__manifest__.py @@ -0,0 +1,19 @@ +# Copyright 2017-2018 Tecnativa - Sergio Teruel +# Copyright 2019 Tecnativa - Carlos Dauden +# License AGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). + +{ + "name": "Account Invoice Margin Sale", + "summary": "Set margin in invoices from sale orders", + "version": "13.0.1.0.0", + "development_status": "Production/Stable", + "maintainers": ["sergio-teruel", "carlosdauden"], + "category": "Account", + "website": "https://github.com/OCA/margin-analysis", + "author": "Tecnativa, " "Odoo Community Association (OCA)", + "license": "AGPL-3", + "application": False, + "installable": True, + "auto_install": True, + "depends": ["sale_margin", "account_invoice_margin"], +} diff --git a/account_invoice_margin_sale/i18n/account_invoice_margin_sale.pot b/account_invoice_margin_sale/i18n/account_invoice_margin_sale.pot new file mode 100644 index 000000000..63fe7daa5 --- /dev/null +++ b/account_invoice_margin_sale/i18n/account_invoice_margin_sale.pot @@ -0,0 +1,19 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_invoice_margin_sale +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.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_margin_sale +#: model:ir.model,name:account_invoice_margin_sale.model_sale_order_line +msgid "Sales Order Line" +msgstr "" diff --git a/account_invoice_margin_sale/models/__init__.py b/account_invoice_margin_sale/models/__init__.py new file mode 100644 index 000000000..a6061a236 --- /dev/null +++ b/account_invoice_margin_sale/models/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import sale diff --git a/account_invoice_margin_sale/models/sale.py b/account_invoice_margin_sale/models/sale.py new file mode 100644 index 000000000..e728eb6c7 --- /dev/null +++ b/account_invoice_margin_sale/models/sale.py @@ -0,0 +1,14 @@ +# Copyright 2017-2018 Tecnativa - Sergio Teruel +# Copyright 2019 Tecnativa - Carlos Dauden +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models + + +class SaleOrderLine(models.Model): + _inherit = "sale.order.line" + + def _prepare_invoice_line(self): + vals = super()._prepare_invoice_line() + vals["purchase_price"] = self.purchase_price + return vals diff --git a/account_invoice_margin_sale/readme/CONTRIBUTORS.rst b/account_invoice_margin_sale/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..508f0287d --- /dev/null +++ b/account_invoice_margin_sale/readme/CONTRIBUTORS.rst @@ -0,0 +1,4 @@ +* `Tecnativa `__: + + * Sergio Teruel + * Carlos Dauden diff --git a/account_invoice_margin_sale/readme/DESCRIPTION.rst b/account_invoice_margin_sale/readme/DESCRIPTION.rst new file mode 100644 index 000000000..6fb927348 --- /dev/null +++ b/account_invoice_margin_sale/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +This module allows transfer purchase price from sale order line to invoice. diff --git a/account_invoice_margin_sale/readme/INSTALL.rst b/account_invoice_margin_sale/readme/INSTALL.rst new file mode 100644 index 000000000..0cde2de70 --- /dev/null +++ b/account_invoice_margin_sale/readme/INSTALL.rst @@ -0,0 +1 @@ +This module is autoinstalable. diff --git a/account_invoice_margin_sale/static/description/icon.png b/account_invoice_margin_sale/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_margin_sale/static/description/index.html b/account_invoice_margin_sale/static/description/index.html new file mode 100644 index 000000000..a6fc1d4eb --- /dev/null +++ b/account_invoice_margin_sale/static/description/index.html @@ -0,0 +1,430 @@ + + + + + + +Account Invoice Margin Sale + + + +
+

Account Invoice Margin Sale

+ + +

Production/Stable License: AGPL-3 OCA/margin-analysis Translate me on Weblate Try me on Runbot

+

This module allows transfer purchase price from sale order line to invoice.

+

Table of contents

+ +
+

Installation

+

This module is autoinstalable.

+
+
+

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

+
    +
  • Tecnativa
  • +
+
+
+

Contributors

+
    +
  • Tecnativa:
      +
    • Sergio Teruel
    • +
    • Carlos Dauden
    • +
    +
  • +
+
+
+

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:

+

sergio-teruel carlosdauden

+

This module is part of the OCA/margin-analysis project on GitHub.

+

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

+
+
+
+ + diff --git a/account_invoice_margin_sale/tests/__init__.py b/account_invoice_margin_sale/tests/__init__.py new file mode 100644 index 000000000..4423d9c36 --- /dev/null +++ b/account_invoice_margin_sale/tests/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import test_account_invoice_margin_sale diff --git a/account_invoice_margin_sale/tests/test_account_invoice_margin_sale.py b/account_invoice_margin_sale/tests/test_account_invoice_margin_sale.py new file mode 100644 index 000000000..ab83ab5de --- /dev/null +++ b/account_invoice_margin_sale/tests/test_account_invoice_margin_sale.py @@ -0,0 +1,77 @@ +# Copyright 2017-2018 Tecnativa - Sergio Teruel +# Copyright 2019 Tecnativa - Carlos Dauden +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo.tests.common import SavepointCase + + +class TestAccountInvoiceMargin(SavepointCase): + @classmethod + def setUpClass(cls): + super(TestAccountInvoiceMargin, cls).setUpClass() + cls.journal = cls.env["account.journal"].create( + {"name": "Test journal", "type": "sale", "code": "TEST_J"} + ) + cls.account_type = cls.env["account.account.type"].create( + { + "name": "Test account type", + "type": "receivable", + "internal_group": "income", + } + ) + cls.account = cls.env["account.account"].create( + { + "name": "Test account", + "code": "TEST_A", + "user_type_id": cls.account_type.id, + "reconcile": True, + } + ) + cls.partner = cls.env["res.partner"].create( + {"name": "Test partner", "customer_rank": 1, "is_company": True} + ) + cls.partner.property_account_receivable_id = cls.account + cls.product_categ = cls.env["product.category"].create( + {"name": "Test category"} + ) + + cls.product = cls.env["product.product"].create( + { + "name": "test product", + "categ_id": cls.product_categ.id, + "uom_id": cls.env.ref("uom.product_uom_unit").id, + "uom_po_id": cls.env.ref("uom.product_uom_unit").id, + "default_code": "test-margin", + "invoice_policy": "order", + "list_price": 200.00, + "standard_price": 100.00, + } + ) + cls.product.property_account_receivable_id = cls.account + pricelist = cls.env["product.pricelist"].create({"name": "Public Pricelist"}) + + cls.sale_order = cls.env["sale.order"].create( + { + "partner_id": cls.partner.id, + "pricelist_id": pricelist.id, + "order_line": [ + ( + 0, + 0, + { + "name": cls.product.name, + "product_id": cls.product.id, + "product_uom_qty": 1, + "product_uom": cls.product.uom_id.id, + "price_unit": 100.0, + }, + ) + ], + } + ) + + def test_invoice_sale_order(self): + self.sale_order.action_confirm() + self.sale_order.order_line.purchase_price = 500.00 + invoice = self.sale_order._create_invoices() + self.assertAlmostEqual(invoice.invoice_line_ids.purchase_price, 500.00, 2) From 40dae1fbe90663296b149250f3a3b8d0319fef78 Mon Sep 17 00:00:00 2001 From: Harald Panten Date: Wed, 16 Dec 2020 19:31:02 +0000 Subject: [PATCH 02/26] Added translation using Weblate (Spanish) --- account_invoice_margin_sale/i18n/es.po | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 account_invoice_margin_sale/i18n/es.po diff --git a/account_invoice_margin_sale/i18n/es.po b/account_invoice_margin_sale/i18n/es.po new file mode 100644 index 000000000..9e949e78d --- /dev/null +++ b/account_invoice_margin_sale/i18n/es.po @@ -0,0 +1,20 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_invoice_margin_sale +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. module: account_invoice_margin_sale +#: model:ir.model,name:account_invoice_margin_sale.model_sale_order_line +msgid "Sales Order Line" +msgstr "" From f0565289ad8fa38c0baff1735c1f43f8709b2278 Mon Sep 17 00:00:00 2001 From: Harald Panten Date: Wed, 16 Dec 2020 19:31:27 +0000 Subject: [PATCH 03/26] Translated using Weblate (Spanish) Currently translated at 100.0% (1 of 1 strings) Translation: margin-analysis-13.0/margin-analysis-13.0-account_invoice_margin_sale Translate-URL: https://translation.odoo-community.org/projects/margin-analysis-13-0/margin-analysis-13-0-account_invoice_margin_sale/es/ --- account_invoice_margin_sale/i18n/es.po | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/account_invoice_margin_sale/i18n/es.po b/account_invoice_margin_sale/i18n/es.po index 9e949e78d..fa7d4a6f1 100644 --- a/account_invoice_margin_sale/i18n/es.po +++ b/account_invoice_margin_sale/i18n/es.po @@ -6,15 +6,17 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 13.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2020-12-16 22:19+0000\n" +"Last-Translator: Harald Panten \n" "Language-Team: none\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.3.2\n" #. module: account_invoice_margin_sale #: model:ir.model,name:account_invoice_margin_sale.model_sale_order_line msgid "Sales Order Line" -msgstr "" +msgstr "Línea de pedido de venta" From 8255fd54b49224794d532511fe799bf9f408189b Mon Sep 17 00:00:00 2001 From: Bhavesh Odedra Date: Mon, 1 Feb 2021 12:50:41 -0700 Subject: [PATCH 04/26] [IMP] skip margin calculation for Down Payment invoice [UPD] Update account_invoice_margin_sale.pot [UPD] README.rst account_invoice_margin_sale 13.0.1.0.1 Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: margin-analysis-13.0/margin-analysis-13.0-account_invoice_margin_sale Translate-URL: https://translation.odoo-community.org/projects/margin-analysis-13-0/margin-analysis-13-0-account_invoice_margin_sale/ --- account_invoice_margin_sale/README.rst | 4 +++ account_invoice_margin_sale/__manifest__.py | 2 +- .../i18n/account_invoice_margin_sale.pot | 10 +++++++ account_invoice_margin_sale/i18n/es.po | 10 +++++++ .../models/__init__.py | 1 + .../models/account_invoice.py | 26 +++++++++++++++++++ .../readme/CONTRIBUTORS.rst | 4 +++ .../static/description/index.html | 4 +++ 8 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 account_invoice_margin_sale/models/account_invoice.py diff --git a/account_invoice_margin_sale/README.rst b/account_invoice_margin_sale/README.rst index dcba648d3..d9b5296e3 100644 --- a/account_invoice_margin_sale/README.rst +++ b/account_invoice_margin_sale/README.rst @@ -63,6 +63,10 @@ Contributors * Sergio Teruel * Carlos Dauden +* `Open Source Integrators `__: + + * Bhavesh Odedra + Maintainers ~~~~~~~~~~~ diff --git a/account_invoice_margin_sale/__manifest__.py b/account_invoice_margin_sale/__manifest__.py index aaa435430..86176cda1 100644 --- a/account_invoice_margin_sale/__manifest__.py +++ b/account_invoice_margin_sale/__manifest__.py @@ -5,7 +5,7 @@ { "name": "Account Invoice Margin Sale", "summary": "Set margin in invoices from sale orders", - "version": "13.0.1.0.0", + "version": "13.0.1.0.1", "development_status": "Production/Stable", "maintainers": ["sergio-teruel", "carlosdauden"], "category": "Account", diff --git a/account_invoice_margin_sale/i18n/account_invoice_margin_sale.pot b/account_invoice_margin_sale/i18n/account_invoice_margin_sale.pot index 63fe7daa5..8b6e20ee1 100644 --- a/account_invoice_margin_sale/i18n/account_invoice_margin_sale.pot +++ b/account_invoice_margin_sale/i18n/account_invoice_margin_sale.pot @@ -13,6 +13,16 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: account_invoice_margin_sale +#: model:ir.model,name:account_invoice_margin_sale.model_account_move +msgid "Journal Entries" +msgstr "" + +#. module: account_invoice_margin_sale +#: model:ir.model,name:account_invoice_margin_sale.model_account_move_line +msgid "Journal Item" +msgstr "" + #. module: account_invoice_margin_sale #: model:ir.model,name:account_invoice_margin_sale.model_sale_order_line msgid "Sales Order Line" diff --git a/account_invoice_margin_sale/i18n/es.po b/account_invoice_margin_sale/i18n/es.po index fa7d4a6f1..a15803283 100644 --- a/account_invoice_margin_sale/i18n/es.po +++ b/account_invoice_margin_sale/i18n/es.po @@ -16,6 +16,16 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.3.2\n" +#. module: account_invoice_margin_sale +#: model:ir.model,name:account_invoice_margin_sale.model_account_move +msgid "Journal Entries" +msgstr "" + +#. module: account_invoice_margin_sale +#: model:ir.model,name:account_invoice_margin_sale.model_account_move_line +msgid "Journal Item" +msgstr "" + #. module: account_invoice_margin_sale #: model:ir.model,name:account_invoice_margin_sale.model_sale_order_line msgid "Sales Order Line" diff --git a/account_invoice_margin_sale/models/__init__.py b/account_invoice_margin_sale/models/__init__.py index a6061a236..1c5404c77 100644 --- a/account_invoice_margin_sale/models/__init__.py +++ b/account_invoice_margin_sale/models/__init__.py @@ -1,3 +1,4 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from . import sale +from . import account_invoice diff --git a/account_invoice_margin_sale/models/account_invoice.py b/account_invoice_margin_sale/models/account_invoice.py new file mode 100644 index 000000000..a6637a76d --- /dev/null +++ b/account_invoice_margin_sale/models/account_invoice.py @@ -0,0 +1,26 @@ +# Copyright 2021 Sergio Teruel +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, models + + +class AccountMove(models.Model): + _inherit = "account.move" + + def _get_margin_applicable_lines(self): + lines = super()._get_margin_applicable_lines() + return lines.filtered(lambda x: not x.sale_line_ids.is_downpayment) + + +class AccountMoveLine(models.Model): + _inherit = "account.move.line" + + @api.depends("purchase_price", "price_subtotal") + def _compute_margin(self): + for line in self: + if any(line.sale_line_ids.mapped("is_downpayment")): + line.update( + {"margin": 0.0, "margin_signed": 0.0, "margin_percent": 0.0} + ) + else: + super(AccountMoveLine, line)._compute_margin() diff --git a/account_invoice_margin_sale/readme/CONTRIBUTORS.rst b/account_invoice_margin_sale/readme/CONTRIBUTORS.rst index 508f0287d..6690797bb 100644 --- a/account_invoice_margin_sale/readme/CONTRIBUTORS.rst +++ b/account_invoice_margin_sale/readme/CONTRIBUTORS.rst @@ -2,3 +2,7 @@ * Sergio Teruel * Carlos Dauden + +* `Open Source Integrators `__: + + * Bhavesh Odedra diff --git a/account_invoice_margin_sale/static/description/index.html b/account_invoice_margin_sale/static/description/index.html index a6fc1d4eb..1ce804606 100644 --- a/account_invoice_margin_sale/static/description/index.html +++ b/account_invoice_margin_sale/static/description/index.html @@ -410,6 +410,10 @@

Contributors

  • Carlos Dauden
  • +
  • Open Source Integrators:
      +
    • Bhavesh Odedra
    • +
    +
  • From cb6cb939a7b31f754c6032e8b022072583c9c6b3 Mon Sep 17 00:00:00 2001 From: Reyes4711 Date: Mon, 3 May 2021 13:56:53 +0200 Subject: [PATCH 05/26] [14.0][MIG] account_invoice_margin_sale: Migration to 14.0 [UPD] Update account_invoice_margin_sale.pot [UPD] README.rst --- account_invoice_margin_sale/README.rst | 10 ++-- account_invoice_margin_sale/__init__.py | 2 +- account_invoice_margin_sale/__manifest__.py | 2 +- .../i18n/account_invoice_margin_sale.pot | 25 ++++++++- account_invoice_margin_sale/models/sale.py | 4 +- .../static/description/index.html | 6 +- .../tests/test_account_invoice_margin_sale.py | 55 ++++++++++++++++++- 7 files changed, 89 insertions(+), 15 deletions(-) diff --git a/account_invoice_margin_sale/README.rst b/account_invoice_margin_sale/README.rst index d9b5296e3..5de2c0ee8 100644 --- a/account_invoice_margin_sale/README.rst +++ b/account_invoice_margin_sale/README.rst @@ -14,13 +14,13 @@ Account Invoice Margin Sale :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmargin--analysis-lightgray.png?logo=github - :target: https://github.com/OCA/margin-analysis/tree/13.0/account_invoice_margin_sale + :target: https://github.com/OCA/margin-analysis/tree/14.0/account_invoice_margin_sale :alt: OCA/margin-analysis .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/margin-analysis-13-0/margin-analysis-13-0-account_invoice_margin_sale + :target: https://translation.odoo-community.org/projects/margin-analysis-14-0/margin-analysis-14-0-account_invoice_margin_sale :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/132/13.0 + :target: https://runbot.odoo-community.org/runbot/132/14.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -43,7 +43,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. @@ -91,6 +91,6 @@ Current `maintainers `__: |maintainer-sergio-teruel| |maintainer-carlosdauden| -This module is part of the `OCA/margin-analysis `_ project on GitHub. +This module is part of the `OCA/margin-analysis `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/account_invoice_margin_sale/__init__.py b/account_invoice_margin_sale/__init__.py index 7d768b54b..69f7babdf 100644 --- a/account_invoice_margin_sale/__init__.py +++ b/account_invoice_margin_sale/__init__.py @@ -1,3 +1,3 @@ -# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from . import models diff --git a/account_invoice_margin_sale/__manifest__.py b/account_invoice_margin_sale/__manifest__.py index 86176cda1..28867433e 100644 --- a/account_invoice_margin_sale/__manifest__.py +++ b/account_invoice_margin_sale/__manifest__.py @@ -5,7 +5,7 @@ { "name": "Account Invoice Margin Sale", "summary": "Set margin in invoices from sale orders", - "version": "13.0.1.0.1", + "version": "14.0.1.0.0", "development_status": "Production/Stable", "maintainers": ["sergio-teruel", "carlosdauden"], "category": "Account", diff --git a/account_invoice_margin_sale/i18n/account_invoice_margin_sale.pot b/account_invoice_margin_sale/i18n/account_invoice_margin_sale.pot index 8b6e20ee1..b4e57ad38 100644 --- a/account_invoice_margin_sale/i18n/account_invoice_margin_sale.pot +++ b/account_invoice_margin_sale/i18n/account_invoice_margin_sale.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" +"Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -13,9 +13,23 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: account_invoice_margin_sale +#: model:ir.model.fields,field_description:account_invoice_margin_sale.field_account_move__display_name +#: model:ir.model.fields,field_description:account_invoice_margin_sale.field_account_move_line__display_name +#: model:ir.model.fields,field_description:account_invoice_margin_sale.field_sale_order_line__display_name +msgid "Display Name" +msgstr "" + +#. module: account_invoice_margin_sale +#: model:ir.model.fields,field_description:account_invoice_margin_sale.field_account_move__id +#: model:ir.model.fields,field_description:account_invoice_margin_sale.field_account_move_line__id +#: model:ir.model.fields,field_description:account_invoice_margin_sale.field_sale_order_line__id +msgid "ID" +msgstr "" + #. module: account_invoice_margin_sale #: model:ir.model,name:account_invoice_margin_sale.model_account_move -msgid "Journal Entries" +msgid "Journal Entry" msgstr "" #. module: account_invoice_margin_sale @@ -23,6 +37,13 @@ msgstr "" msgid "Journal Item" msgstr "" +#. module: account_invoice_margin_sale +#: model:ir.model.fields,field_description:account_invoice_margin_sale.field_account_move____last_update +#: model:ir.model.fields,field_description:account_invoice_margin_sale.field_account_move_line____last_update +#: model:ir.model.fields,field_description:account_invoice_margin_sale.field_sale_order_line____last_update +msgid "Last Modified on" +msgstr "" + #. module: account_invoice_margin_sale #: model:ir.model,name:account_invoice_margin_sale.model_sale_order_line msgid "Sales Order Line" diff --git a/account_invoice_margin_sale/models/sale.py b/account_invoice_margin_sale/models/sale.py index e728eb6c7..c590a399e 100644 --- a/account_invoice_margin_sale/models/sale.py +++ b/account_invoice_margin_sale/models/sale.py @@ -8,7 +8,7 @@ class SaleOrderLine(models.Model): _inherit = "sale.order.line" - def _prepare_invoice_line(self): - vals = super()._prepare_invoice_line() + def _prepare_invoice_line(self, **optional_values): + vals = super()._prepare_invoice_line(**optional_values) vals["purchase_price"] = self.purchase_price return vals diff --git a/account_invoice_margin_sale/static/description/index.html b/account_invoice_margin_sale/static/description/index.html index 1ce804606..67dfa5ff5 100644 --- a/account_invoice_margin_sale/static/description/index.html +++ b/account_invoice_margin_sale/static/description/index.html @@ -367,7 +367,7 @@

    Account Invoice Margin Sale

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

    Production/Stable License: AGPL-3 OCA/margin-analysis Translate me on Weblate Try me on Runbot

    +

    Production/Stable License: AGPL-3 OCA/margin-analysis Translate me on Weblate Try me on Runbot

    This module allows transfer purchase price from sale order line to invoice.

    Table of contents

    @@ -391,7 +391,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.

    @@ -425,7 +425,7 @@

    Maintainers

    promote its widespread use.

    Current maintainers:

    sergio-teruel carlosdauden

    -

    This module is part of the OCA/margin-analysis project on GitHub.

    +

    This module is part of the OCA/margin-analysis project on GitHub.

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

    diff --git a/account_invoice_margin_sale/tests/test_account_invoice_margin_sale.py b/account_invoice_margin_sale/tests/test_account_invoice_margin_sale.py index ab83ab5de..5e768d8d7 100644 --- a/account_invoice_margin_sale/tests/test_account_invoice_margin_sale.py +++ b/account_invoice_margin_sale/tests/test_account_invoice_margin_sale.py @@ -47,7 +47,6 @@ def setUpClass(cls): "standard_price": 100.00, } ) - cls.product.property_account_receivable_id = cls.account pricelist = cls.env["product.pricelist"].create({"name": "Public Pricelist"}) cls.sale_order = cls.env["sale.order"].create( @@ -75,3 +74,57 @@ def test_invoice_sale_order(self): self.sale_order.order_line.purchase_price = 500.00 invoice = self.sale_order._create_invoices() self.assertAlmostEqual(invoice.invoice_line_ids.purchase_price, 500.00, 2) + + def test_invoice_down_payment(self): + SaleAdvancePaymentInv = self.env["sale.advance.payment.inv"] + AccountMove = self.env["account.move"] + product = self.env["product.product"].create( + { + "name": "test product for down payment", + "categ_id": self.product_categ.id, + "uom_id": self.env.ref("uom.product_uom_unit").id, + "list_price": 1000.00, + "standard_price": 500.00, + "type": "service", + "invoice_policy": "order", + } + ) + self.order = self.env["sale.order"].create( + { + "partner_id": self.partner.id, + "order_line": [ + ( + 0, + False, + { + "product_id": product.id, + "name": "Testing Product", + "product_uom_qty": 1, + "product_uom": product.uom_id.id, + "price_unit": 1000.00, + "purchase_price": 500.00, + }, + ), + ], + } + ) + self.order.action_confirm() + # Create one down payment + wiz = SaleAdvancePaymentInv.with_context( + active_ids=self.order.ids, + open_invoices=True, + ).create({"advance_payment_method": "fixed", "fixed_amount": 100.00}) + action = wiz.create_invoices() + invoice_id = action["res_id"] + invoice1 = AccountMove.browse(invoice_id) + self.assertEqual(invoice1.margin, 0.0) + + # Create regular invoice which has a down payment + wiz = SaleAdvancePaymentInv.with_context( + active_ids=self.order.ids, + open_invoices=True, + ).create({"advance_payment_method": "delivered"}) + wiz.create_invoices() + invoice2 = self.order.invoice_ids - invoice1 + self.assertEqual(invoice2.margin, 500.00) + self.assertEqual(invoice2.margin_percent, 50.0) From 44bea45a8162b79ae3ab7f57f50f36439b9b5906 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=20Mart=C3=ADnez?= Date: Sun, 27 Feb 2022 11:10:41 +0000 Subject: [PATCH 06/26] Translated using Weblate (Spanish) Currently translated at 100.0% (3 of 3 strings) Translation: margin-analysis-14.0/margin-analysis-14.0-account_invoice_margin_sale Translate-URL: https://translation.odoo-community.org/projects/margin-analysis-14-0/margin-analysis-14-0-account_invoice_margin_sale/es/ --- account_invoice_margin_sale/i18n/es.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/account_invoice_margin_sale/i18n/es.po b/account_invoice_margin_sale/i18n/es.po index a15803283..ca476b32e 100644 --- a/account_invoice_margin_sale/i18n/es.po +++ b/account_invoice_margin_sale/i18n/es.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 13.0\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2020-12-16 22:19+0000\n" -"Last-Translator: Harald Panten \n" +"PO-Revision-Date: 2022-02-27 13:17+0000\n" +"Last-Translator: Rafa Martínez \n" "Language-Team: none\n" "Language: es\n" "MIME-Version: 1.0\n" @@ -19,12 +19,12 @@ msgstr "" #. module: account_invoice_margin_sale #: model:ir.model,name:account_invoice_margin_sale.model_account_move msgid "Journal Entries" -msgstr "" +msgstr "Entradas de diario" #. module: account_invoice_margin_sale #: model:ir.model,name:account_invoice_margin_sale.model_account_move_line msgid "Journal Item" -msgstr "" +msgstr "Apunte contable" #. module: account_invoice_margin_sale #: model:ir.model,name:account_invoice_margin_sale.model_sale_order_line From 9aab1858f7e3432830796e3680902d802d31793f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Thu, 28 Jul 2022 17:14:57 +0200 Subject: [PATCH 07/26] [MIG] account_invoice_margin_sale: Migration to 15.0 TT36420 --- account_invoice_margin_sale/README.rst | 11 ++++++----- account_invoice_margin_sale/__manifest__.py | 2 +- account_invoice_margin_sale/models/account_invoice.py | 1 + account_invoice_margin_sale/readme/CONTRIBUTORS.rst | 1 + .../static/description/index.html | 9 +++++---- .../tests/test_account_invoice_margin_sale.py | 6 +++--- 6 files changed, 17 insertions(+), 13 deletions(-) diff --git a/account_invoice_margin_sale/README.rst b/account_invoice_margin_sale/README.rst index 5de2c0ee8..240df22c0 100644 --- a/account_invoice_margin_sale/README.rst +++ b/account_invoice_margin_sale/README.rst @@ -14,13 +14,13 @@ Account Invoice Margin Sale :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmargin--analysis-lightgray.png?logo=github - :target: https://github.com/OCA/margin-analysis/tree/14.0/account_invoice_margin_sale + :target: https://github.com/OCA/margin-analysis/tree/15.0/account_invoice_margin_sale :alt: OCA/margin-analysis .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/margin-analysis-14-0/margin-analysis-14-0-account_invoice_margin_sale + :target: https://translation.odoo-community.org/projects/margin-analysis-15-0/margin-analysis-15-0-account_invoice_margin_sale :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/132/14.0 + :target: https://runbot.odoo-community.org/runbot/132/15.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -43,7 +43,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. @@ -62,6 +62,7 @@ Contributors * Sergio Teruel * Carlos Dauden + * Víctor Martínez * `Open Source Integrators `__: @@ -91,6 +92,6 @@ Current `maintainers `__: |maintainer-sergio-teruel| |maintainer-carlosdauden| -This module is part of the `OCA/margin-analysis `_ project on GitHub. +This module is part of the `OCA/margin-analysis `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/account_invoice_margin_sale/__manifest__.py b/account_invoice_margin_sale/__manifest__.py index 28867433e..7c51edfb3 100644 --- a/account_invoice_margin_sale/__manifest__.py +++ b/account_invoice_margin_sale/__manifest__.py @@ -5,7 +5,7 @@ { "name": "Account Invoice Margin Sale", "summary": "Set margin in invoices from sale orders", - "version": "14.0.1.0.0", + "version": "15.0.1.0.0", "development_status": "Production/Stable", "maintainers": ["sergio-teruel", "carlosdauden"], "category": "Account", diff --git a/account_invoice_margin_sale/models/account_invoice.py b/account_invoice_margin_sale/models/account_invoice.py index a6637a76d..1c5d55e05 100644 --- a/account_invoice_margin_sale/models/account_invoice.py +++ b/account_invoice_margin_sale/models/account_invoice.py @@ -15,6 +15,7 @@ def _get_margin_applicable_lines(self): class AccountMoveLine(models.Model): _inherit = "account.move.line" + # pylint: disable=W8110 @api.depends("purchase_price", "price_subtotal") def _compute_margin(self): for line in self: diff --git a/account_invoice_margin_sale/readme/CONTRIBUTORS.rst b/account_invoice_margin_sale/readme/CONTRIBUTORS.rst index 6690797bb..59d8d9964 100644 --- a/account_invoice_margin_sale/readme/CONTRIBUTORS.rst +++ b/account_invoice_margin_sale/readme/CONTRIBUTORS.rst @@ -2,6 +2,7 @@ * Sergio Teruel * Carlos Dauden + * Víctor Martínez * `Open Source Integrators `__: diff --git a/account_invoice_margin_sale/static/description/index.html b/account_invoice_margin_sale/static/description/index.html index 67dfa5ff5..960f15b51 100644 --- a/account_invoice_margin_sale/static/description/index.html +++ b/account_invoice_margin_sale/static/description/index.html @@ -3,7 +3,7 @@ - + Account Invoice Margin Sale