From 2ac196834264911e305e97b6505719fbf2736687 Mon Sep 17 00:00:00 2001 From: David Vidal Date: Fri, 21 Sep 2018 12:14:17 +0200 Subject: [PATCH 01/15] [ADD] sale_report_margin: New Module (#38) --- sale_report_margin/README.rst | 87 ++++ sale_report_margin/__init__.py | 1 + sale_report_margin/__manifest__.py | 15 + .../i18n/sale_report_margin.pot | 25 + sale_report_margin/readme/CONTRIBUTORS.rst | 2 + sale_report_margin/readme/DESCRIPTION.rst | 3 + sale_report_margin/readme/ROADMAP.rst | 1 + sale_report_margin/readme/USAGE.rst | 2 + sale_report_margin/reports/__init__.py | 1 + sale_report_margin/reports/sale_report.py | 20 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 435 ++++++++++++++++++ 12 files changed, 592 insertions(+) create mode 100644 sale_report_margin/README.rst create mode 100644 sale_report_margin/__init__.py create mode 100644 sale_report_margin/__manifest__.py create mode 100644 sale_report_margin/i18n/sale_report_margin.pot create mode 100644 sale_report_margin/readme/CONTRIBUTORS.rst create mode 100644 sale_report_margin/readme/DESCRIPTION.rst create mode 100644 sale_report_margin/readme/ROADMAP.rst create mode 100644 sale_report_margin/readme/USAGE.rst create mode 100644 sale_report_margin/reports/__init__.py create mode 100644 sale_report_margin/reports/sale_report.py create mode 100644 sale_report_margin/static/description/icon.png create mode 100644 sale_report_margin/static/description/index.html diff --git a/sale_report_margin/README.rst b/sale_report_margin/README.rst new file mode 100644 index 000000000..a20d4cfd9 --- /dev/null +++ b/sale_report_margin/README.rst @@ -0,0 +1,87 @@ +================== +Sale Report Margin +================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! 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%2Fmargin--analysis-lightgray.png?logo=github + :target: https://github.com/OCA/margin-analysis/tree/11.0/sale_report_margin + :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-11-0/margin-analysis-11-0-sale_report_margin + :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/11.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +Adds `purchase_price` field to sale report. This field comes from the *Cost* +field configured in the products themselves and on the defined inventory +valuation method. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +Go to *Sales > Reporting > Sales* and you'll find the new *Purchase Price* +measure. + +Known issues / Roadmap +====================== + +- To be added Gross Margin and comparisons. + +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 +~~~~~~~~~~~~ + +* Sergio Teruel +* David Vidal + +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. + +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/sale_report_margin/__init__.py b/sale_report_margin/__init__.py new file mode 100644 index 000000000..65323532b --- /dev/null +++ b/sale_report_margin/__init__.py @@ -0,0 +1 @@ +from . import reports diff --git a/sale_report_margin/__manifest__.py b/sale_report_margin/__manifest__.py new file mode 100644 index 000000000..4b9ab4787 --- /dev/null +++ b/sale_report_margin/__manifest__.py @@ -0,0 +1,15 @@ +# Copyright 2018 Tecnativa - Sergio Teruel +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +{ + "name": "Sale Report Margin", + "version": "11.0.1.0.0", + 'author': 'Tecnativa,' + 'Odoo Community Association (OCA)', + 'website': 'https://github.com/OCA/sale-reporting', + "category": "Sales", + "license": "AGPL-3", + "depends": [ + "sale_margin", + ], + "installable": True, +} diff --git a/sale_report_margin/i18n/sale_report_margin.pot b/sale_report_margin/i18n/sale_report_margin.pot new file mode 100644 index 000000000..4a3a30d4e --- /dev/null +++ b/sale_report_margin/i18n/sale_report_margin.pot @@ -0,0 +1,25 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_report_margin +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.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: sale_report_margin +#: model:ir.model.fields,field_description:sale_report_margin.field_sale_report_purchase_price +msgid "Purchase Price" +msgstr "" + +#. module: sale_report_margin +#: model:ir.model,name:sale_report_margin.model_sale_report +msgid "Sales Orders Statistics" +msgstr "" + diff --git a/sale_report_margin/readme/CONTRIBUTORS.rst b/sale_report_margin/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..5505ba54f --- /dev/null +++ b/sale_report_margin/readme/CONTRIBUTORS.rst @@ -0,0 +1,2 @@ +* Sergio Teruel +* David Vidal diff --git a/sale_report_margin/readme/DESCRIPTION.rst b/sale_report_margin/readme/DESCRIPTION.rst new file mode 100644 index 000000000..f5de88888 --- /dev/null +++ b/sale_report_margin/readme/DESCRIPTION.rst @@ -0,0 +1,3 @@ +Adds `purchase_price` field to sale report. This field comes from the *Cost* +field configured in the products themselves and on the defined inventory +valuation method. diff --git a/sale_report_margin/readme/ROADMAP.rst b/sale_report_margin/readme/ROADMAP.rst new file mode 100644 index 000000000..8a8078b80 --- /dev/null +++ b/sale_report_margin/readme/ROADMAP.rst @@ -0,0 +1 @@ +- To be added Gross Margin and comparisons. diff --git a/sale_report_margin/readme/USAGE.rst b/sale_report_margin/readme/USAGE.rst new file mode 100644 index 000000000..49e8a8f07 --- /dev/null +++ b/sale_report_margin/readme/USAGE.rst @@ -0,0 +1,2 @@ +Go to *Sales > Reporting > Sales* and you'll find the new *Purchase Price* +measure. diff --git a/sale_report_margin/reports/__init__.py b/sale_report_margin/reports/__init__.py new file mode 100644 index 000000000..cd23411b8 --- /dev/null +++ b/sale_report_margin/reports/__init__.py @@ -0,0 +1 @@ +from . import sale_report diff --git a/sale_report_margin/reports/sale_report.py b/sale_report_margin/reports/sale_report.py new file mode 100644 index 000000000..dac971834 --- /dev/null +++ b/sale_report_margin/reports/sale_report.py @@ -0,0 +1,20 @@ +# Copyright 2018 Tecnativa - Sergio Teruel +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class SaleReport(models.Model): + _inherit = "sale.report" + + purchase_price = fields.Float( + string='Purchase Price', + readonly=True, + ) + + def _select(self): + select_str = super(SaleReport, self)._select() + select_str += """, + SUM(l.purchase_price / COALESCE(cr.rate, 1.0)) as purchase_price + """ + return select_str diff --git a/sale_report_margin/static/description/icon.png b/sale_report_margin/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/sale_report_margin/static/description/index.html b/sale_report_margin/static/description/index.html new file mode 100644 index 000000000..f925cd9c1 --- /dev/null +++ b/sale_report_margin/static/description/index.html @@ -0,0 +1,435 @@ + + + + + + +Sale Report Margin + + + +
+

Sale Report Margin

+ + +

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

+

Adds purchase_price field to sale report. This field comes from the Cost +field configured in the products themselves and on the defined inventory +valuation method.

+

Table of contents

+ +
+

Usage

+

Go to Sales > Reporting > Sales and you’ll find the new Purchase Price +measure.

+
+
+

Known issues / Roadmap

+
    +
  • To be added Gross Margin and comparisons.
  • +
+
+
+

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
  • +
+
+ +
+

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/margin-analysis project on GitHub.

+

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

+
+
+
+ + From 99e00381278e4de6532464bcba5fdfabd34bf054 Mon Sep 17 00:00:00 2001 From: Sergio Teruel Date: Fri, 29 Nov 2019 15:49:08 +0100 Subject: [PATCH 02/15] [MIG] sale_report_margin: Migration to v12.0 --- sale_report_margin/README.rst | 22 +++++++++++++------ sale_report_margin/__manifest__.py | 10 +++++---- .../i18n/sale_report_margin.pot | 6 ++--- sale_report_margin/reports/sale_report.py | 16 +++++++++----- .../static/description/index.html | 8 ++++--- 5 files changed, 39 insertions(+), 23 deletions(-) diff --git a/sale_report_margin/README.rst b/sale_report_margin/README.rst index a20d4cfd9..270d31c5c 100644 --- a/sale_report_margin/README.rst +++ b/sale_report_margin/README.rst @@ -7,20 +7,20 @@ Sale Report Margin !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png +.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png :target: https://odoo-community.org/page/development-status - :alt: Beta + :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/11.0/sale_report_margin + :target: https://github.com/OCA/margin-analysis/tree/12.0/sale_report_margin :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-11-0/margin-analysis-11-0-sale_report_margin + :target: https://translation.odoo-community.org/projects/margin-analysis-12-0/margin-analysis-12-0-sale_report_margin :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/11.0 + :target: https://runbot.odoo-community.org/runbot/132/12.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -51,7 +51,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. @@ -82,6 +82,14 @@ 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/margin-analysis `_ project on GitHub. +.. |maintainer-sergio-teruel| image:: https://github.com/sergio-teruel.png?size=40px + :target: https://github.com/sergio-teruel + :alt: sergio-teruel + +Current `maintainer `__: + +|maintainer-sergio-teruel| + +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/sale_report_margin/__manifest__.py b/sale_report_margin/__manifest__.py index 4b9ab4787..0444c9f79 100644 --- a/sale_report_margin/__manifest__.py +++ b/sale_report_margin/__manifest__.py @@ -2,10 +2,12 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { "name": "Sale Report Margin", - "version": "11.0.1.0.0", - 'author': 'Tecnativa,' - 'Odoo Community Association (OCA)', - 'website': 'https://github.com/OCA/sale-reporting', + "version": "12.0.1.0.0", + "author": "Tecnativa," + "Odoo Community Association (OCA)", + "website": "https://github.com/OCA/sale-reporting", + "development_status": "Production/Stable", + "maintainers": ["sergio-teruel"], "category": "Sales", "license": "AGPL-3", "depends": [ diff --git a/sale_report_margin/i18n/sale_report_margin.pot b/sale_report_margin/i18n/sale_report_margin.pot index 4a3a30d4e..6f0d95095 100644 --- a/sale_report_margin/i18n/sale_report_margin.pot +++ b/sale_report_margin/i18n/sale_report_margin.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,12 +14,12 @@ msgstr "" "Plural-Forms: \n" #. module: sale_report_margin -#: model:ir.model.fields,field_description:sale_report_margin.field_sale_report_purchase_price +#: model:ir.model.fields,field_description:sale_report_margin.field_sale_report__purchase_price msgid "Purchase Price" msgstr "" #. module: sale_report_margin #: model:ir.model,name:sale_report_margin.model_sale_report -msgid "Sales Orders Statistics" +msgid "Sales Analysis Report" msgstr "" diff --git a/sale_report_margin/reports/sale_report.py b/sale_report_margin/reports/sale_report.py index dac971834..65a704419 100644 --- a/sale_report_margin/reports/sale_report.py +++ b/sale_report_margin/reports/sale_report.py @@ -12,9 +12,13 @@ class SaleReport(models.Model): readonly=True, ) - def _select(self): - select_str = super(SaleReport, self)._select() - select_str += """, - SUM(l.purchase_price / COALESCE(cr.rate, 1.0)) as purchase_price - """ - return select_str + def _query(self, with_clause='', fields=None, groupby='', from_clause=''): + if fields is None: + fields = {} + fields.update({ + "purchase_price": + " ,SUM(l.purchase_price / COALESCE(s.currency_rate, 1.0))" + "AS purchase_price", + }) + return super()._query(with_clause=with_clause, fields=fields, + groupby=groupby, from_clause=from_clause) diff --git a/sale_report_margin/static/description/index.html b/sale_report_margin/static/description/index.html index f925cd9c1..28d39afb1 100644 --- a/sale_report_margin/static/description/index.html +++ b/sale_report_margin/static/description/index.html @@ -367,7 +367,7 @@

Sale Report Margin

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

Beta 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

Adds purchase_price field to sale report. This field comes from the Cost field configured in the products themselves and on the defined inventory valuation method.

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

@@ -426,7 +426,9 @@

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/margin-analysis project on GitHub.

+

Current maintainer:

+

sergio-teruel

+

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.

From 35ce62b64ceb8fc67bfdae11557a07244e0aa6c2 Mon Sep 17 00:00:00 2001 From: Sergio Teruel Date: Sat, 22 Feb 2020 19:51:10 +0100 Subject: [PATCH 03/15] [IMP] sale_report_margin: black, isort --- sale_report_margin/__manifest__.py | 7 ++---- sale_report_margin/reports/sale_report.py | 26 ++++++++++++----------- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/sale_report_margin/__manifest__.py b/sale_report_margin/__manifest__.py index 0444c9f79..3c8067a8c 100644 --- a/sale_report_margin/__manifest__.py +++ b/sale_report_margin/__manifest__.py @@ -3,15 +3,12 @@ { "name": "Sale Report Margin", "version": "12.0.1.0.0", - "author": "Tecnativa," - "Odoo Community Association (OCA)", + "author": "Tecnativa," "Odoo Community Association (OCA)", "website": "https://github.com/OCA/sale-reporting", "development_status": "Production/Stable", "maintainers": ["sergio-teruel"], "category": "Sales", "license": "AGPL-3", - "depends": [ - "sale_margin", - ], + "depends": ["sale_margin"], "installable": True, } diff --git a/sale_report_margin/reports/sale_report.py b/sale_report_margin/reports/sale_report.py index 65a704419..3ada5695c 100644 --- a/sale_report_margin/reports/sale_report.py +++ b/sale_report_margin/reports/sale_report.py @@ -7,18 +7,20 @@ class SaleReport(models.Model): _inherit = "sale.report" - purchase_price = fields.Float( - string='Purchase Price', - readonly=True, - ) + purchase_price = fields.Float(string="Purchase Price", readonly=True) - def _query(self, with_clause='', fields=None, groupby='', from_clause=''): + def _query(self, with_clause="", fields=None, groupby="", from_clause=""): if fields is None: fields = {} - fields.update({ - "purchase_price": - " ,SUM(l.purchase_price / COALESCE(s.currency_rate, 1.0))" - "AS purchase_price", - }) - return super()._query(with_clause=with_clause, fields=fields, - groupby=groupby, from_clause=from_clause) + fields.update( + { + "purchase_price": " ,SUM(l.purchase_price / COALESCE(s.currency_rate, 1.0))" + "AS purchase_price" + } + ) + return super()._query( + with_clause=with_clause, + fields=fields, + groupby=groupby, + from_clause=from_clause, + ) From 5b16265a038c719a2e002ee094203963e99b32fd Mon Sep 17 00:00:00 2001 From: Sergio Teruel Date: Sat, 22 Feb 2020 19:51:11 +0100 Subject: [PATCH 04/15] [MIG] sale_report_margin: Migration to v13.0 --- sale_report_margin/README.rst | 16 ++++++----- sale_report_margin/__manifest__.py | 2 +- sale_report_margin/i18n/es.po | 28 +++++++++++++++++++ .../i18n/sale_report_margin.pot | 7 ++--- sale_report_margin/readme/CONTRIBUTORS.rst | 6 ++-- sale_report_margin/reports/sale_report.py | 3 +- .../static/description/index.html | 12 ++++++-- 7 files changed, 56 insertions(+), 18 deletions(-) create mode 100644 sale_report_margin/i18n/es.po diff --git a/sale_report_margin/README.rst b/sale_report_margin/README.rst index 270d31c5c..915fe1fa8 100644 --- a/sale_report_margin/README.rst +++ b/sale_report_margin/README.rst @@ -14,13 +14,13 @@ Sale Report Margin :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/12.0/sale_report_margin + :target: https://github.com/OCA/margin-analysis/tree/13.0/sale_report_margin :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-12-0/margin-analysis-12-0-sale_report_margin + :target: https://translation.odoo-community.org/projects/margin-analysis-13-0/margin-analysis-13-0-sale_report_margin :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/12.0 + :target: https://runbot.odoo-community.org/runbot/132/13.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -51,7 +51,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. @@ -66,8 +66,10 @@ Authors Contributors ~~~~~~~~~~~~ -* Sergio Teruel -* David Vidal +* `Tecnativa `_: + + * Sergio Teruel + * David Vidal Maintainers ~~~~~~~~~~~ @@ -90,6 +92,6 @@ Current `maintainer `__: |maintainer-sergio-teruel| -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/sale_report_margin/__manifest__.py b/sale_report_margin/__manifest__.py index 3c8067a8c..9d894478e 100644 --- a/sale_report_margin/__manifest__.py +++ b/sale_report_margin/__manifest__.py @@ -2,7 +2,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { "name": "Sale Report Margin", - "version": "12.0.1.0.0", + "version": "13.0.1.0.0", "author": "Tecnativa," "Odoo Community Association (OCA)", "website": "https://github.com/OCA/sale-reporting", "development_status": "Production/Stable", diff --git a/sale_report_margin/i18n/es.po b/sale_report_margin/i18n/es.po new file mode 100644 index 000000000..222b2b4c5 --- /dev/null +++ b/sale_report_margin/i18n/es.po @@ -0,0 +1,28 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_report_margin +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-03-23 21:10+0000\n" +"PO-Revision-Date: 2020-03-23 22:11+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 2.0.6\n" + +#. module: sale_report_margin +#: model:ir.model.fields,field_description:sale_report_margin.field_sale_report__purchase_price +msgid "Purchase Price" +msgstr "Coste" + +#. module: sale_report_margin +#: model:ir.model,name:sale_report_margin.model_sale_report +msgid "Sales Analysis Report" +msgstr "Análisis de ventas" diff --git a/sale_report_margin/i18n/sale_report_margin.pot b/sale_report_margin/i18n/sale_report_margin.pot index 6f0d95095..bd9898a57 100644 --- a/sale_report_margin/i18n/sale_report_margin.pot +++ b/sale_report_margin/i18n/sale_report_margin.pot @@ -1,12 +1,12 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * sale_report_margin +# * sale_report_margin # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 13.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: <>\n" +"Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,4 +22,3 @@ msgstr "" #: model:ir.model,name:sale_report_margin.model_sale_report msgid "Sales Analysis Report" msgstr "" - diff --git a/sale_report_margin/readme/CONTRIBUTORS.rst b/sale_report_margin/readme/CONTRIBUTORS.rst index 5505ba54f..fd93b208b 100644 --- a/sale_report_margin/readme/CONTRIBUTORS.rst +++ b/sale_report_margin/readme/CONTRIBUTORS.rst @@ -1,2 +1,4 @@ -* Sergio Teruel -* David Vidal +* `Tecnativa `_: + + * Sergio Teruel + * David Vidal diff --git a/sale_report_margin/reports/sale_report.py b/sale_report_margin/reports/sale_report.py index 3ada5695c..a2fa004d1 100644 --- a/sale_report_margin/reports/sale_report.py +++ b/sale_report_margin/reports/sale_report.py @@ -14,7 +14,8 @@ def _query(self, with_clause="", fields=None, groupby="", from_clause=""): fields = {} fields.update( { - "purchase_price": " ,SUM(l.purchase_price / COALESCE(s.currency_rate, 1.0))" + "purchase_price": " ,SUM(l.purchase_price /" + " COALESCE(s.currency_rate, 1.0))" "AS purchase_price" } ) diff --git a/sale_report_margin/static/description/index.html b/sale_report_margin/static/description/index.html index 28d39afb1..d2220d324 100644 --- a/sale_report_margin/static/description/index.html +++ b/sale_report_margin/static/description/index.html @@ -367,7 +367,7 @@

Sale Report Margin

!! 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

Adds purchase_price field to sale report. This field comes from the Cost field configured in the products themselves and on the defined inventory valuation method.

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

@@ -414,10 +414,16 @@

Authors

Maintainers

@@ -428,7 +434,7 @@

Maintainers

promote its widespread use.

Current maintainer:

sergio-teruel

-

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.

From 637897219d945ff85f8e19cfc4dd9d9b509cdad1 Mon Sep 17 00:00:00 2001 From: Radovan Skolnik Date: Fri, 13 Aug 2021 00:28:43 +0200 Subject: [PATCH 05/15] Fix website attribute in __manifest__.py (#95) [FIX] sale_report_margin: website attribute in manifest --- sale_report_margin/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sale_report_margin/__manifest__.py b/sale_report_margin/__manifest__.py index 9d894478e..915c568d6 100644 --- a/sale_report_margin/__manifest__.py +++ b/sale_report_margin/__manifest__.py @@ -4,7 +4,7 @@ "name": "Sale Report Margin", "version": "13.0.1.0.0", "author": "Tecnativa," "Odoo Community Association (OCA)", - "website": "https://github.com/OCA/sale-reporting", + "website": "https://github.com/OCA/margin-analysis", "development_status": "Production/Stable", "maintainers": ["sergio-teruel"], "category": "Sales", From c622bcc58653f35aa4cc3d997db2ec5d4992d763 Mon Sep 17 00:00:00 2001 From: CarlosRoca13 Date: Fri, 22 Jul 2022 12:18:41 +0200 Subject: [PATCH 06/15] [MIG] margin_analysis: Migration to 15.0 --- sale_report_margin/README.rst | 15 ++++++++------- sale_report_margin/__manifest__.py | 4 ++-- sale_report_margin/i18n/sale_report_margin.pot | 2 +- sale_report_margin/readme/CONTRIBUTORS.rst | 5 +++-- sale_report_margin/reports/sale_report.py | 2 +- sale_report_margin/static/description/index.html | 11 ++++++----- 6 files changed, 21 insertions(+), 18 deletions(-) diff --git a/sale_report_margin/README.rst b/sale_report_margin/README.rst index 915fe1fa8..875ddd44d 100644 --- a/sale_report_margin/README.rst +++ b/sale_report_margin/README.rst @@ -14,13 +14,13 @@ Sale Report Margin :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/sale_report_margin + :target: https://github.com/OCA/margin-analysis/tree/15.0/sale_report_margin :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-sale_report_margin + :target: https://translation.odoo-community.org/projects/margin-analysis-15-0/margin-analysis-15-0-sale_report_margin :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/15.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -51,7 +51,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. @@ -68,8 +68,9 @@ Contributors * `Tecnativa `_: - * Sergio Teruel - * David Vidal + * Sergio Teruel + * David Vidal + * Carlos Roca Maintainers ~~~~~~~~~~~ @@ -92,6 +93,6 @@ Current `maintainer `__: |maintainer-sergio-teruel| -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/sale_report_margin/__manifest__.py b/sale_report_margin/__manifest__.py index 915c568d6..d70e96881 100644 --- a/sale_report_margin/__manifest__.py +++ b/sale_report_margin/__manifest__.py @@ -2,8 +2,8 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { "name": "Sale Report Margin", - "version": "13.0.1.0.0", - "author": "Tecnativa," "Odoo Community Association (OCA)", + "version": "15.0.1.0.0", + "author": "Tecnativa, Odoo Community Association (OCA)", "website": "https://github.com/OCA/margin-analysis", "development_status": "Production/Stable", "maintainers": ["sergio-teruel"], diff --git a/sale_report_margin/i18n/sale_report_margin.pot b/sale_report_margin/i18n/sale_report_margin.pot index bd9898a57..33f21dd8c 100644 --- a/sale_report_margin/i18n/sale_report_margin.pot +++ b/sale_report_margin/i18n/sale_report_margin.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" +"Project-Id-Version: Odoo Server 15.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" diff --git a/sale_report_margin/readme/CONTRIBUTORS.rst b/sale_report_margin/readme/CONTRIBUTORS.rst index fd93b208b..313775474 100644 --- a/sale_report_margin/readme/CONTRIBUTORS.rst +++ b/sale_report_margin/readme/CONTRIBUTORS.rst @@ -1,4 +1,5 @@ * `Tecnativa `_: - * Sergio Teruel - * David Vidal + * Sergio Teruel + * David Vidal + * Carlos Roca diff --git a/sale_report_margin/reports/sale_report.py b/sale_report_margin/reports/sale_report.py index a2fa004d1..a99551210 100644 --- a/sale_report_margin/reports/sale_report.py +++ b/sale_report_margin/reports/sale_report.py @@ -7,7 +7,7 @@ class SaleReport(models.Model): _inherit = "sale.report" - purchase_price = fields.Float(string="Purchase Price", readonly=True) + purchase_price = fields.Float(readonly=True) def _query(self, with_clause="", fields=None, groupby="", from_clause=""): if fields is None: diff --git a/sale_report_margin/static/description/index.html b/sale_report_margin/static/description/index.html index d2220d324..9d71d6015 100644 --- a/sale_report_margin/static/description/index.html +++ b/sale_report_margin/static/description/index.html @@ -367,7 +367,7 @@

Sale Report Margin

!! 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

Adds purchase_price field to sale report. This field comes from the Cost field configured in the products themselves and on the defined inventory valuation method.

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

@@ -418,8 +418,9 @@

Contributors

  • Tecnativa:

  • @@ -434,7 +435,7 @@

    Maintainers

    promote its widespread use.

    Current maintainer:

    sergio-teruel

    -

    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.

    From 27c8af299dbdb0f3b9823d11e98afece437068e3 Mon Sep 17 00:00:00 2001 From: Alex Guardado Date: Mon, 5 Jun 2023 13:01:58 +0200 Subject: [PATCH 07/15] [MIG] sale_report_margin: Migration to 16.0 --- sale_report_margin/README.rst | 10 ++--- sale_report_margin/__manifest__.py | 2 +- .../i18n/sale_report_margin.pot | 2 +- sale_report_margin/reports/sale_report.py | 20 ++------- .../static/description/index.html | 6 +-- sale_report_margin/tests/__init__.py | 3 ++ .../tests/test_sale_report_margin.py | 43 +++++++++++++++++++ 7 files changed, 60 insertions(+), 26 deletions(-) create mode 100644 sale_report_margin/tests/__init__.py create mode 100644 sale_report_margin/tests/test_sale_report_margin.py diff --git a/sale_report_margin/README.rst b/sale_report_margin/README.rst index 875ddd44d..484d0e458 100644 --- a/sale_report_margin/README.rst +++ b/sale_report_margin/README.rst @@ -14,13 +14,13 @@ Sale Report Margin :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/15.0/sale_report_margin + :target: https://github.com/OCA/margin-analysis/tree/16.0/sale_report_margin :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-15-0/margin-analysis-15-0-sale_report_margin + :target: https://translation.odoo-community.org/projects/margin-analysis-16-0/margin-analysis-16-0-sale_report_margin :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/15.0 + :target: https://runbot.odoo-community.org/runbot/132/16.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -51,7 +51,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. @@ -93,6 +93,6 @@ Current `maintainer `__: |maintainer-sergio-teruel| -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/sale_report_margin/__manifest__.py b/sale_report_margin/__manifest__.py index d70e96881..7d46790c4 100644 --- a/sale_report_margin/__manifest__.py +++ b/sale_report_margin/__manifest__.py @@ -2,7 +2,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { "name": "Sale Report Margin", - "version": "15.0.1.0.0", + "version": "16.0.1.0.0", "author": "Tecnativa, Odoo Community Association (OCA)", "website": "https://github.com/OCA/margin-analysis", "development_status": "Production/Stable", diff --git a/sale_report_margin/i18n/sale_report_margin.pot b/sale_report_margin/i18n/sale_report_margin.pot index 33f21dd8c..44b31b2b6 100644 --- a/sale_report_margin/i18n/sale_report_margin.pot +++ b/sale_report_margin/i18n/sale_report_margin.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 15.0\n" +"Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" diff --git a/sale_report_margin/reports/sale_report.py b/sale_report_margin/reports/sale_report.py index a99551210..be3f576e6 100644 --- a/sale_report_margin/reports/sale_report.py +++ b/sale_report_margin/reports/sale_report.py @@ -9,19 +9,7 @@ class SaleReport(models.Model): purchase_price = fields.Float(readonly=True) - def _query(self, with_clause="", fields=None, groupby="", from_clause=""): - if fields is None: - fields = {} - fields.update( - { - "purchase_price": " ,SUM(l.purchase_price /" - " COALESCE(s.currency_rate, 1.0))" - "AS purchase_price" - } - ) - return super()._query( - with_clause=with_clause, - fields=fields, - groupby=groupby, - from_clause=from_clause, - ) + def _select_additional_fields(self): + res = super()._select_additional_fields() + res["purchase_price"] = "SUM(l.purchase_price)" + return res diff --git a/sale_report_margin/static/description/index.html b/sale_report_margin/static/description/index.html index 9d71d6015..aae21f1fa 100644 --- a/sale_report_margin/static/description/index.html +++ b/sale_report_margin/static/description/index.html @@ -367,7 +367,7 @@

    Sale Report Margin

    !! 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

    Adds purchase_price field to sale report. This field comes from the Cost field configured in the products themselves and on the defined inventory valuation method.

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

    @@ -435,7 +435,7 @@

    Maintainers

    promote its widespread use.

    Current maintainer:

    sergio-teruel

    -

    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/sale_report_margin/tests/__init__.py b/sale_report_margin/tests/__init__.py new file mode 100644 index 000000000..214d9e873 --- /dev/null +++ b/sale_report_margin/tests/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from . import test_sale_report_margin diff --git a/sale_report_margin/tests/test_sale_report_margin.py b/sale_report_margin/tests/test_sale_report_margin.py new file mode 100644 index 000000000..345c1fee1 --- /dev/null +++ b/sale_report_margin/tests/test_sale_report_margin.py @@ -0,0 +1,43 @@ +# Copyright 2023 Álvaro Marcos +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo.tests.common import TransactionCase + + +class TestSaleReportMargin(TransactionCase): + @classmethod + def setUpClass(cls): + super(TestSaleReportMargin, cls).setUpClass() + cls.product_product = cls.env["product.product"].create( + {"name": "Product Test"} + ) + cls.partner = cls.env["res.partner"].create({"name": "Partner Test"}) + + def test_sale_report_margin(self): + """Check purchase_price in sale report""" + order = self.env["sale.order"].create( + { + "name": "Test Order", + "partner_id": self.partner.id, + "order_line": [ + ( + 0, + 0, + { + "product_id": self.product_product.id, + "price_unit": 10.0, + "product_uom_qty": 1.0, + "purchase_price": 8.0, + }, + ) + ], + } + ) + order.action_confirm() + report = self.env["sale.report"].search( + [ + ("order_id", "=", order.id), + ("product_id", "=", self.product_product.id), + ] + ) + self.assertEqual(report.purchase_price, 8.0) From ac9b33f54861f35790598bff866cf62dd52cadcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?gelo=20joga=20Rodr=C3=ADguez?= Date: Mon, 28 Aug 2023 12:02:42 +0000 Subject: [PATCH 08/15] Translated using Weblate (Spanish) Currently translated at 100.0% (2 of 2 strings) Translation: margin-analysis-16.0/margin-analysis-16.0-sale_report_margin Translate-URL: https://translation.odoo-community.org/projects/margin-analysis-16-0/margin-analysis-16-0-sale_report_margin/es/ --- sale_report_margin/README.rst | 15 ++++--- sale_report_margin/i18n/es.po | 10 ++--- .../static/description/index.html | 44 ++++++++++--------- 3 files changed, 37 insertions(+), 32 deletions(-) diff --git a/sale_report_margin/README.rst b/sale_report_margin/README.rst index 484d0e458..978087903 100644 --- a/sale_report_margin/README.rst +++ b/sale_report_margin/README.rst @@ -2,10 +2,13 @@ Sale Report Margin ================== -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:d88ddf73e1f1fc5a50a47a17cfd138876b0ff7dd8bab256e781b8eba61118967 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png :target: https://odoo-community.org/page/development-status @@ -19,11 +22,11 @@ Sale Report Margin .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/margin-analysis-16-0/margin-analysis-16-0-sale_report_margin :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/16.0 - :alt: Try me on Runbot +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/margin-analysis&target_branch=16.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| Adds `purchase_price` field to sale report. This field comes from the *Cost* field configured in the products themselves and on the defined inventory @@ -50,7 +53,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 +If you spotted it first, help us to smash it by providing a detailed and welcomed `feedback `_. Do not contact contributors directly about support or help with technical issues. diff --git a/sale_report_margin/i18n/es.po b/sale_report_margin/i18n/es.po index 222b2b4c5..fb7ef049f 100644 --- a/sale_report_margin/i18n/es.po +++ b/sale_report_margin/i18n/es.po @@ -7,20 +7,20 @@ msgstr "" "Project-Id-Version: Odoo Server 13.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-03-23 21:10+0000\n" -"PO-Revision-Date: 2020-03-23 22:11+0100\n" -"Last-Translator: \n" +"PO-Revision-Date: 2023-09-02 18:17+0000\n" +"Last-Translator: gelo joga Rodríguez \n" "Language-Team: \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.0.6\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" #. module: sale_report_margin #: model:ir.model.fields,field_description:sale_report_margin.field_sale_report__purchase_price msgid "Purchase Price" -msgstr "Coste" +msgstr "Coste unitario" #. module: sale_report_margin #: model:ir.model,name:sale_report_margin.model_sale_report diff --git a/sale_report_margin/static/description/index.html b/sale_report_margin/static/description/index.html index aae21f1fa..ecafc9382 100644 --- a/sale_report_margin/static/description/index.html +++ b/sale_report_margin/static/description/index.html @@ -1,20 +1,20 @@ - + - + Sale Report Margin -
    -

    Sale Report Margin

    +
    + + +Odoo Community Association + +
    +

    Sale Report Margin

    -

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

    +

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

    Adds purchase_price field to sale report. This field comes from the Cost field configured in the products themselves and on the defined inventory valuation method.

    @@ -388,34 +393,34 @@

    Sale Report Margin

    -

    Usage

    +

    Usage

    Go to Sales > Reporting > Sales and you’ll find the new Purchase Price measure.

    -

    Known issues / Roadmap

    +

    Known issues / Roadmap

    • To be added Gross Margin and comparisons.
    -

    Bug Tracker

    +

    Bug Tracker

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

    +feedback.

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

    -

    Credits

    +

    Credits

    -

    Authors

    +

    Authors

    • Tecnativa
    -

    Maintainers

    +

    Maintainers

    This module is maintained by the OCA.

    Odoo Community Association @@ -441,10 +446,11 @@

    Maintainers

    promote its widespread use.

    Current maintainer:

    sergio-teruel

    -

    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/sale_report_margin/tests/test_sale_report_margin.py b/sale_report_margin/tests/test_sale_report_margin.py index 53c5db9c0..ca00ba9a3 100644 --- a/sale_report_margin/tests/test_sale_report_margin.py +++ b/sale_report_margin/tests/test_sale_report_margin.py @@ -1,17 +1,18 @@ # Copyright 2023 Álvaro Marcos # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from odoo.tests.common import TransactionCase +from odoo.orm.commands import Command +from odoo.addons.base.tests.common import BaseCommon -class TestSaleReportMargin(TransactionCase): + +class TestSaleReportMargin(BaseCommon): @classmethod def setUpClass(cls): super().setUpClass() cls.product_product = cls.env["product.product"].create( {"name": "Product Test"} ) - cls.partner = cls.env["res.partner"].create({"name": "Partner Test"}) def test_sale_report_margin(self): """Check purchase_price in sale report""" @@ -20,9 +21,7 @@ def test_sale_report_margin(self): "name": "Test Order", "partner_id": self.partner.id, "order_line": [ - ( - 0, - 0, + Command.create( { "product_id": self.product_product.id, "price_unit": 10.0,