From bd0c0d06606e8006bc6beb9ee0a79c2e6ceab13a Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Wed, 7 Jul 2021 18:24:47 +0200 Subject: [PATCH] [IMP] mis_builder_cash_flow: Consider states according selection "Target Moves" option in MIS report instance was previously ignored. Now it's taken into account, but still excluding cancelled entries. --- mis_builder_cash_flow/README.rst | 7 +++++++ mis_builder_cash_flow/__manifest__.py | 1 + mis_builder_cash_flow/models/__init__.py | 4 ++-- .../models/mis_report_instance.py | 17 +++++++++++++++++ mis_builder_cash_flow/readme/CONTRIBUTORS.rst | 3 +++ mis_builder_cash_flow/readme/USAGE.rst | 4 ++++ mis_builder_cash_flow/report/mis_cash_flow.py | 8 ++++++++ .../static/description/index.html | 8 ++++++++ 8 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 mis_builder_cash_flow/models/mis_report_instance.py diff --git a/mis_builder_cash_flow/README.rst b/mis_builder_cash_flow/README.rst index 074e80f4..747dbed5 100644 --- a/mis_builder_cash_flow/README.rst +++ b/mis_builder_cash_flow/README.rst @@ -43,6 +43,10 @@ To use this module, you need to: #. Go to Accounting > Reports > MIS Reporting > MIS Reports and choose "Cash Flow" report #. You can add forecast lines on Accounting > Reports > MIS Reporting > Cash Flow Forecast Line +#. If you select on "Target Moves" the value "All Posted Entries", you will get only + lines for already posted invoices/entries + the forecast lines. +#. Selecting "All Entries", draft invoices/entries are also included. +#. In any case, cancelled invoices/entries are not included. Known issues / Roadmap ====================== @@ -75,6 +79,9 @@ Contributors * Juan José Scarafía * Gonzalo Ruzafa * Alberto Martín +* `Tecnativa `_: + + * Pedro M. Baeza Maintainers ~~~~~~~~~~~ diff --git a/mis_builder_cash_flow/__manifest__.py b/mis_builder_cash_flow/__manifest__.py index 61fcfb0c..b5553c04 100644 --- a/mis_builder_cash_flow/__manifest__.py +++ b/mis_builder_cash_flow/__manifest__.py @@ -1,4 +1,5 @@ # Copyright 2019 ADHOC SA +# Copyright 2021 Tecnativa - Pedro M. Baeza # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { diff --git a/mis_builder_cash_flow/models/__init__.py b/mis_builder_cash_flow/models/__init__.py index 63bc6fd4..018fab7c 100644 --- a/mis_builder_cash_flow/models/__init__.py +++ b/mis_builder_cash_flow/models/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2019 ADHOC SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from . import mis_cash_flow_forecast_line from . import account_account +from . import mis_cash_flow_forecast_line +from . import mis_report_instance diff --git a/mis_builder_cash_flow/models/mis_report_instance.py b/mis_builder_cash_flow/models/mis_report_instance.py new file mode 100644 index 00000000..2a5e0659 --- /dev/null +++ b/mis_builder_cash_flow/models/mis_report_instance.py @@ -0,0 +1,17 @@ +# Copyright 2021 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo import models + + +class MisReportInstancePeriod(models.Model): + _inherit = "mis.report.instance.period" + + def _get_additional_move_line_filter(self): + """Add the posted condition .""" + domain = super()._get_additional_move_line_filter() + if ( + self._get_aml_model_name() == "mis.cash_flow" + and self.report_instance_id.target_move == "posted" + ): + domain += [("state", "=", "posted")] + return domain diff --git a/mis_builder_cash_flow/readme/CONTRIBUTORS.rst b/mis_builder_cash_flow/readme/CONTRIBUTORS.rst index bf76fd12..6c0f8064 100644 --- a/mis_builder_cash_flow/readme/CONTRIBUTORS.rst +++ b/mis_builder_cash_flow/readme/CONTRIBUTORS.rst @@ -1,3 +1,6 @@ * Juan José Scarafía * Gonzalo Ruzafa * Alberto Martín +* `Tecnativa `_: + + * Pedro M. Baeza diff --git a/mis_builder_cash_flow/readme/USAGE.rst b/mis_builder_cash_flow/readme/USAGE.rst index 44f6253a..4de3545e 100644 --- a/mis_builder_cash_flow/readme/USAGE.rst +++ b/mis_builder_cash_flow/readme/USAGE.rst @@ -2,3 +2,7 @@ To use this module, you need to: #. Go to Accounting > Reports > MIS Reporting > MIS Reports and choose "Cash Flow" report #. You can add forecast lines on Accounting > Reports > MIS Reporting > Cash Flow Forecast Line +#. If you select on "Target Moves" the value "All Posted Entries", you will get only + lines for already posted invoices/entries + the forecast lines. +#. Selecting "All Entries", draft invoices/entries are also included. +#. In any case, cancelled invoices/entries are not included. diff --git a/mis_builder_cash_flow/report/mis_cash_flow.py b/mis_builder_cash_flow/report/mis_cash_flow.py index 348ac5c2..0c367b54 100644 --- a/mis_builder_cash_flow/report/mis_cash_flow.py +++ b/mis_builder_cash_flow/report/mis_cash_flow.py @@ -50,6 +50,12 @@ class MisCashFlow(models.Model): account_internal_type = fields.Selection( related="account_id.user_type_id.type", readonly=True ) + state = fields.Selection(selection="_selection_parent_state",) + + def _selection_parent_state(self): + return self.env["account.move"].fields_get(allfields=["state"])["state"][ + "selection" + ] def init(self): query = """ @@ -75,6 +81,7 @@ class MisCashFlow(models.Model): aml.partner_id as partner_id, aml.company_id as company_id, aml.name as name, + aml.parent_state as state, COALESCE(aml.date_maturity, aml.date) as date FROM account_move_line as aml WHERE aml.parent_state != 'cancel' @@ -99,6 +106,7 @@ class MisCashFlow(models.Model): fl.partner_id as partner_id, fl.company_id as company_id, fl.name as name, + 'posted' as state, fl.date as date FROM mis_cash_flow_forecast_line as fl """ diff --git a/mis_builder_cash_flow/static/description/index.html b/mis_builder_cash_flow/static/description/index.html index a1a00537..02cd4a67 100644 --- a/mis_builder_cash_flow/static/description/index.html +++ b/mis_builder_cash_flow/static/description/index.html @@ -394,6 +394,10 @@ The forecast is based on two types of date:

  1. Go to Accounting > Reports > MIS Reporting > MIS Reports and choose “Cash Flow” report
  2. You can add forecast lines on Accounting > Reports > MIS Reporting > Cash Flow Forecast Line
  3. +
  4. If you select on “Target Moves” the value “All Posted Entries”, you will get only +lines for already posted invoices/entries + the forecast lines.
  5. +
  6. Selecting “All Entries”, draft invoices/entries are also included.
  7. +
  8. In any case, cancelled invoices/entries are not included.
@@ -424,6 +428,10 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
  • Juan José Scarafía <jjs@adhoc.com.ar>
  • Gonzalo Ruzafa <gr@adhoc.com.ar>
  • Alberto Martín <alberto.martin@guadaltech.es>
  • +
  • Tecnativa:
      +
    • Pedro M. Baeza
    • +
    +