From 415d6acbc6c374a1f88d9f49c2cc45d74cf1b223 Mon Sep 17 00:00:00 2001 From: PicchiSeba Date: Tue, 23 Jul 2024 09:58:36 +0200 Subject: [PATCH] [ADD]sale_commission_settlement_report: manage settlement report visualization --- sale_commission_settlement_report/README.rst | 99 ++++ sale_commission_settlement_report/__init__.py | 1 + .../__manifest__.py | 17 + .../models/__init__.py | 4 + .../models/res_company.py | 14 + .../models/res_config_settings.py | 14 + .../models/sale_commission_settlement.py | 21 + .../models/sale_commission_settlement_line.py | 13 + .../readme/CONFIGURE.rst | 12 + .../readme/DESCRIPTION.rst | 4 + .../static/description/index.html | 447 ++++++++++++++++++ .../views/report_settlement_templates.xml | 20 + .../views/res_config_settings_view.xml | 37 ++ .../views/sale_commission_settlement_view.xml | 26 + .../addons/sale_commission_settlement_report | 1 + .../setup.py | 6 + 16 files changed, 736 insertions(+) create mode 100644 sale_commission_settlement_report/README.rst create mode 100644 sale_commission_settlement_report/__init__.py create mode 100644 sale_commission_settlement_report/__manifest__.py create mode 100644 sale_commission_settlement_report/models/__init__.py create mode 100644 sale_commission_settlement_report/models/res_company.py create mode 100644 sale_commission_settlement_report/models/res_config_settings.py create mode 100644 sale_commission_settlement_report/models/sale_commission_settlement.py create mode 100644 sale_commission_settlement_report/models/sale_commission_settlement_line.py create mode 100644 sale_commission_settlement_report/readme/CONFIGURE.rst create mode 100644 sale_commission_settlement_report/readme/DESCRIPTION.rst create mode 100644 sale_commission_settlement_report/static/description/index.html create mode 100644 sale_commission_settlement_report/views/report_settlement_templates.xml create mode 100644 sale_commission_settlement_report/views/res_config_settings_view.xml create mode 100644 sale_commission_settlement_report/views/sale_commission_settlement_view.xml create mode 120000 setup/sale_commission_settlement_report/odoo/addons/sale_commission_settlement_report create mode 100644 setup/sale_commission_settlement_report/setup.py diff --git a/sale_commission_settlement_report/README.rst b/sale_commission_settlement_report/README.rst new file mode 100644 index 000000000..0f7d803c7 --- /dev/null +++ b/sale_commission_settlement_report/README.rst @@ -0,0 +1,99 @@ +=================================== +Sales Commissions Settlement Report +=================================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:ce159e2233d2f40f3a1d6e7cdfe31935afd20bc5832eac1478134bf93ae09fe1 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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%2Fcommission-lightgray.png?logo=github + :target: https://github.com/OCA/commission/tree/14.0/sale_commission_settlement_report + :alt: OCA/commission +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/commission-14-0/commission-14-0-sale_commission_settlement_report + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/commission&target_branch=14.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows to: + + * add invoice customer info to settlement report + * hide lines with amount = 0 from settlement report + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +To show the partner in settlement lines: + +#. Go to *Settings > Sales > Quotations & Orders*: + + * enable the setting "Show partner details in settlements report" + + +To hide lines with amount equals to 0: + +#. Go to *Settings > Sales > Quotations & Orders*: + + * enable the setting "Do not display lines with zero amount in settlements and its report" + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Ooops404 +* PyTech-SRL + +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-PicchiSeba| image:: https://github.com/PicchiSeba.png?size=40px + :target: https://github.com/PicchiSeba + :alt: PicchiSeba + +Current `maintainer `__: + +|maintainer-PicchiSeba| + +This module is part of the `OCA/commission `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/sale_commission_settlement_report/__init__.py b/sale_commission_settlement_report/__init__.py new file mode 100644 index 000000000..0650744f6 --- /dev/null +++ b/sale_commission_settlement_report/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/sale_commission_settlement_report/__manifest__.py b/sale_commission_settlement_report/__manifest__.py new file mode 100644 index 000000000..56e680432 --- /dev/null +++ b/sale_commission_settlement_report/__manifest__.py @@ -0,0 +1,17 @@ +{ + "name": "Sales Commissions Settlement Report", + "summary": "Settings to customize the settlement report", + "version": "14.0.1.0.0", + "author": "Odoo Community Association (OCA), Ooops404, PyTech-SRL", + "maintainers": ["PicchiSeba"], + "category": "Sales", + "website": "https://github.com/OCA/commission", + "license": "AGPL-3", + "depends": ["sale_commission"], + "data": [ + "views/report_settlement_templates.xml", + "views/res_config_settings_view.xml", + "views/sale_commission_settlement_view.xml", + ], + "installable": True, +} diff --git a/sale_commission_settlement_report/models/__init__.py b/sale_commission_settlement_report/models/__init__.py new file mode 100644 index 000000000..9b169a109 --- /dev/null +++ b/sale_commission_settlement_report/models/__init__.py @@ -0,0 +1,4 @@ +from . import res_company +from . import res_config_settings +from . import sale_commission_settlement +from . import sale_commission_settlement_line diff --git a/sale_commission_settlement_report/models/res_company.py b/sale_commission_settlement_report/models/res_company.py new file mode 100644 index 000000000..c53ef3fec --- /dev/null +++ b/sale_commission_settlement_report/models/res_company.py @@ -0,0 +1,14 @@ +from odoo import fields, models + + +class ResCompany(models.Model): + _inherit = "res.company" + + show_partner_settlement_report = fields.Boolean( + "Show partner details in settlements report", + default=False, + ) + settlement_skip_zero_amount_lines = fields.Boolean( + "Skip lines in settlements with zero amount", + default=False, + ) diff --git a/sale_commission_settlement_report/models/res_config_settings.py b/sale_commission_settlement_report/models/res_config_settings.py new file mode 100644 index 000000000..a30b28243 --- /dev/null +++ b/sale_commission_settlement_report/models/res_config_settings.py @@ -0,0 +1,14 @@ +from odoo import fields, models + + +class ResConfigSettings(models.TransientModel): + _inherit = "res.config.settings" + + show_partner_settlement_report = fields.Boolean( + related="company_id.show_partner_settlement_report", + readonly=False, + ) + settlement_skip_zero_amount_lines = fields.Boolean( + related="company_id.settlement_skip_zero_amount_lines", + readonly=False, + ) diff --git a/sale_commission_settlement_report/models/sale_commission_settlement.py b/sale_commission_settlement_report/models/sale_commission_settlement.py new file mode 100644 index 000000000..ed217bd7b --- /dev/null +++ b/sale_commission_settlement_report/models/sale_commission_settlement.py @@ -0,0 +1,21 @@ +from odoo import api, fields, models + + +class SaleCommissionSettlement(models.Model): + _inherit = "sale.commission.settlement" + + showable_line_ids = fields.Many2many( + "sale.commission.settlement.line", + compute="_compute_showable_line_ids", + ) + show_partner_settlement_report = fields.Boolean( + related="company_id.show_partner_settlement_report", + ) + + @api.depends("line_ids", "line_ids.settled_amount") + def _compute_showable_line_ids(self): + for record in self: + lines = record.line_ids + if record.company_id.settlement_skip_zero_amount_lines: + lines = lines.filtered(lambda line: line.settled_amount) + record.showable_line_ids = lines diff --git a/sale_commission_settlement_report/models/sale_commission_settlement_line.py b/sale_commission_settlement_report/models/sale_commission_settlement_line.py new file mode 100644 index 000000000..5e64c0b21 --- /dev/null +++ b/sale_commission_settlement_report/models/sale_commission_settlement_line.py @@ -0,0 +1,13 @@ +from odoo import fields, models + + +class SettlementLine(models.Model): + _inherit = "sale.commission.settlement.line" + + partner_id = fields.Many2one( + "res.partner", + related="invoice_line_id.partner_id", + ) + show_partner_settlement_report = fields.Boolean( + related="company_id.show_partner_settlement_report", + ) diff --git a/sale_commission_settlement_report/readme/CONFIGURE.rst b/sale_commission_settlement_report/readme/CONFIGURE.rst new file mode 100644 index 000000000..601706570 --- /dev/null +++ b/sale_commission_settlement_report/readme/CONFIGURE.rst @@ -0,0 +1,12 @@ +To show the partner in settlement lines: + +#. Go to *Settings > Sales > Quotations & Orders*: + + * enable the setting "Show partner details in settlements report" + + +To hide lines with amount equals to 0: + +#. Go to *Settings > Sales > Quotations & Orders*: + + * enable the setting "Do not display lines with zero amount in settlements and its report" diff --git a/sale_commission_settlement_report/readme/DESCRIPTION.rst b/sale_commission_settlement_report/readme/DESCRIPTION.rst new file mode 100644 index 000000000..cc8f1e7a7 --- /dev/null +++ b/sale_commission_settlement_report/readme/DESCRIPTION.rst @@ -0,0 +1,4 @@ +This module allows to: + + * add invoice customer info to settlement report + * hide lines with amount = 0 from settlement report diff --git a/sale_commission_settlement_report/static/description/index.html b/sale_commission_settlement_report/static/description/index.html new file mode 100644 index 000000000..62889f9c1 --- /dev/null +++ b/sale_commission_settlement_report/static/description/index.html @@ -0,0 +1,447 @@ + + + + + +Sales Commissions Settlement Report + + + +
+

Sales Commissions Settlement Report

+ + +

Beta License: AGPL-3 OCA/commission Translate me on Weblate Try me on Runboat

+

This module allows to:

+
+
    +
  • add invoice customer info to settlement report
  • +
  • hide lines with amount = 0 from settlement report
  • +
+
+

Table of contents

+ +
+

Configuration

+

To show the partner in settlement lines:

+
    +
  1. Go to Settings > Sales > Quotations & Orders:
  2. +
+
+
    +
  • enable the setting “Show partner details in settlements report”
  • +
+
+

To hide lines with amount equals to 0:

+
    +
  1. Go to Settings > Sales > Quotations & Orders:
  2. +
+
+
    +
  • enable the setting “Do not display lines with zero amount in settlements and its report”
  • +
+
+
+
+

Bug Tracker

+

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

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • Ooops404
  • +
  • PyTech-SRL
  • +
+
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

Current maintainer:

+

PicchiSeba

+

This module is part of the OCA/commission project on GitHub.

+

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

+
+
+
+ + diff --git a/sale_commission_settlement_report/views/report_settlement_templates.xml b/sale_commission_settlement_report/views/report_settlement_templates.xml new file mode 100644 index 000000000..1286563b7 --- /dev/null +++ b/sale_commission_settlement_report/views/report_settlement_templates.xml @@ -0,0 +1,20 @@ + + + + diff --git a/sale_commission_settlement_report/views/res_config_settings_view.xml b/sale_commission_settlement_report/views/res_config_settings_view.xml new file mode 100644 index 000000000..9f7b4ba8c --- /dev/null +++ b/sale_commission_settlement_report/views/res_config_settings_view.xml @@ -0,0 +1,37 @@ + + + + res.config.settings.view.form.inherit.sale.management + res.config.settings + + + +
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
diff --git a/sale_commission_settlement_report/views/sale_commission_settlement_view.xml b/sale_commission_settlement_report/views/sale_commission_settlement_view.xml new file mode 100644 index 000000000..9558e1bd6 --- /dev/null +++ b/sale_commission_settlement_report/views/sale_commission_settlement_view.xml @@ -0,0 +1,26 @@ + + + + Settlements + sale.commission.settlement + + + + 1 + + + + + + + + + + + + + + + + + diff --git a/setup/sale_commission_settlement_report/odoo/addons/sale_commission_settlement_report b/setup/sale_commission_settlement_report/odoo/addons/sale_commission_settlement_report new file mode 120000 index 000000000..3b73702fe --- /dev/null +++ b/setup/sale_commission_settlement_report/odoo/addons/sale_commission_settlement_report @@ -0,0 +1 @@ +../../../../sale_commission_settlement_report \ No newline at end of file diff --git a/setup/sale_commission_settlement_report/setup.py b/setup/sale_commission_settlement_report/setup.py new file mode 100644 index 000000000..28c57bb64 --- /dev/null +++ b/setup/sale_commission_settlement_report/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)