From b1ee6bbab88a6c1bdfad84d107ee1bb013b64d57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20-=20Le=20Filament?= <remi@le-filament.com> Date: Tue, 21 Dec 2021 16:07:35 +0100 Subject: [PATCH] [FIX] calculations for cashflow --- models/lefilament_tdb.py | 66 ++++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 36 deletions(-) diff --git a/models/lefilament_tdb.py b/models/lefilament_tdb.py index b8dd290..75e48e2 100644 --- a/models/lefilament_tdb.py +++ b/models/lefilament_tdb.py @@ -62,33 +62,30 @@ class LeFilamentTdb(models.Model): # Trésorerie self.env.cr.execute( - "SELECT SUM(amount_total_signed) \ - FROM account_move \ + "SELECT SUM(amount) \ + FROM account_bank_statement_line \ WHERE date < date_trunc('month', %s \ - + interval '1' month) \ - AND statement_line_id is not NULL;", + + interval '1' month)", (date_tdb,), ) treso_total = self.env.cr.fetchone()[0] # CHARGES self.env.cr.execute( - "SELECT SUM(amount_total_signed) \ - FROM account_move \ - WHERE amount_total_signed < 0 \ + "SELECT SUM(amount) \ + FROM account_bank_statement_line \ + WHERE amount < 0 \ AND date >= date_trunc('month', %s) \ - AND date < date_trunc('month', %s + interval '1' month) \ - AND statement_line_id is not NULL;", + AND date < date_trunc('month', %s + interval '1' month)", (date_tdb, date_tdb), ) charges = self.env.cr.fetchone()[0] # ENCAISSE self.env.cr.execute( - "SELECT SUM(amount_total_signed) \ - FROM account_move \ - WHERE amount_total_signed > 0 \ + "SELECT SUM(amount) \ + FROM account_bank_statement_line \ + WHERE amount > 0 \ AND date >= date_trunc('month', %s) \ - AND date < date_trunc('month', %s + interval '1' month) \ - AND statement_line_id is not NULL;", + AND date < date_trunc('month', %s + interval '1' month)", (date_tdb, date_tdb), ) encaisse = self.env.cr.fetchone()[0] @@ -240,23 +237,21 @@ class LeFilamentTdb(models.Model): FROM account_bank_statement ORDER BY ID DESC LIMIT 1 ) AS date_maj, - (SELECT SUM(amount_total_signed) - FROM account_move - WHERE statement_line_id is NOT NULL + (SELECT SUM(amount) + FROM account_bank_statement_line ) AS tresorerie, - (SELECT SUM(amount_total_signed) - FROM account_move - WHERE amount_total_signed > 0 AND date > %s - AND statement_line_id is NOT NULL + (SELECT SUM(amount) + FROM account_bank_statement_line + WHERE amount > 0 AND date > %s ) AS entree, - (SELECT SUM(amount_total_signed) - FROM account_move - WHERE amount_total_signed < 0 AND date > %s + (SELECT SUM(amount) + FROM account_bank_statement_line + WHERE amount < 0 AND date > %s AND statement_line_id is NOT NULL ) AS sortie, - (SELECT SUM(amount_total_signed) - FROM account_move - WHERE date > %s AND statement_line_id is NOT NULL + (SELECT SUM(amount) + FROM account_bank_statement_line + WHERE date > %s ) AS variation, (SELECT SUM(e.total_amount) FROM hr_expense_sheet es, hr_expense e @@ -329,13 +324,12 @@ class LeFilamentTdb(models.Model): self._cr.execute( """ SELECT to_char(date_trunc('month', date),'YYYY-MM') AS mois, - SUM(CASE WHEN amount_total_signed > 0 + SUM(CASE WHEN amount > 0 THEN amount_total_signed ELSE 0 END) AS entree, - SUM(CASE WHEN amount_total_signed < 0 + SUM(CASE WHEN amount < 0 THEN amount_total_signed ELSE 0 END) AS sortie, - SUM(amount_total_signed) AS variation - FROM account_move - WHERE statement_line_id is not NULL + SUM(amount) AS variation + FROM account_bank_statement_line GROUP BY date_trunc('month', date) ORDER BY date_trunc('month', date); """ @@ -366,11 +360,10 @@ class LeFilamentTdb(models.Model): self._cr.execute( """ SELECT to_char(date_trunc('month', date),'YYYY-MM') AS mois, - SUM(SUM(amount_total_signed)) OVER ( + SUM(SUM(amount)) OVER ( ORDER BY date_trunc('month', date) ) AS treso - FROM account_move - WHERE statement_line_id is not NULL + FROM account_bank_statement_line GROUP BY date_trunc('month', date) ORDER BY date_trunc('month', date) DESC LIMIT 6; """ @@ -403,7 +396,8 @@ class LeFilamentTdb(models.Model): ELSE 0 END ) AS f_client FROM account_move - WHERE state != 'draft' AND state != 'paid' + WHERE state = 'posted' + AND payment_state IN ('not_paid','in_payment','partial') GROUP BY date_trunc('month', invoice_date_due) ORDER BY date_trunc('month', invoice_date_due); """ -- GitLab