diff --git a/account_financial_report_qweb/report/open_items.py b/account_financial_report_qweb/report/open_items.py index d939958c..e8b72d4a 100644 --- a/account_financial_report_qweb/report/open_items.py +++ b/account_financial_report_qweb/report/open_items.py @@ -1,7 +1,6 @@ # -*- coding: utf-8 -*- # © 2016 Julien Coux (Camptocamp) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from datetime import timedelta from odoo import models, fields, api, _ @@ -415,6 +414,10 @@ FROM LEFT JOIN account_partial_reconcile pr ON ml.balance < 0 AND pr.credit_move_id = ml.id + LEFT JOIN + account_move_line ml_future + ON ml.balance < 0 AND pr.debit_move_id = ml_future.id + AND ml_future.date > %s LEFT JOIN account_move_line ml_past ON ml.balance < 0 AND pr.debit_move_id = ml_past.id @@ -425,20 +428,27 @@ FROM LEFT JOIN account_partial_reconcile pr ON ml.balance > 0 AND pr.debit_move_id = ml.id + LEFT JOIN + account_move_line ml_future + ON ml.balance > 0 AND pr.credit_move_id = ml_future.id + AND ml_future.date > %s LEFT JOIN account_move_line ml_past ON ml.balance > 0 AND pr.credit_move_id = ml_past.id AND ml_past.date <= %s """ sub_query += """ - LEFT JOIN account_full_reconcile afr ON afr.id = ml.full_reconcile_id WHERE ra.report_id = %s - AND ml.full_reconcile_id IS NULL OR afr.create_date >= %s GROUP BY ml.id, ml.balance, ml.amount_currency + HAVING + ( + ml.full_reconcile_id IS NULL + OR MAX(ml_future.id) IS NOT NULL + ) """ return sub_query @@ -607,20 +617,17 @@ ORDER BY ORDER BY a.code, ml.date, ml.id """ - full_reconcile_date = fields.Datetime.to_string( - fields.Datetime.from_string(self.date_at) + timedelta(days=1)) self.env.cr.execute( query_inject_move_line, (self.date_at, + self.date_at, self.id, - full_reconcile_date, + self.date_at, self.date_at, self.id, - full_reconcile_date, self.env.uid, self.id, - self.date_at, - ) + self.date_at,) ) def _compute_partners_and_accounts_cumul(self):