From 13241bca58c99edb5078b4feaf2e2e2e72defd0d Mon Sep 17 00:00:00 2001 From: "qdp-launchpad@tinyerp.com" <> Date: Tue, 29 Jun 2010 18:05:16 +0200 Subject: [PATCH] [IMP] account: journals report - more refactoring bzr revid: qdp-launchpad@tinyerp.com-20100629160516-67e1toe81fjky759 --- addons/account/__openerp__.py | 6 +-- addons/account/report/account_journal.py | 6 +-- addons/account/report/central_journal.py | 32 +++++------- addons/account/report/general_journal.py | 27 +++++----- addons/account/wizard/__init__.py | 9 ++-- .../wizard/account_central_journal_view.xml | 49 ------------------- ...al.py => account_common_journal_report.py} | 17 +++---- ...l.py => account_report_central_journal.py} | 21 ++------ .../account_report_central_journal_view.xml | 34 +++++++++++++ .../wizard/account_report_general_journal.py | 35 +++++++++++++ ...> account_report_general_journal_view.xml} | 0 ...nal.py => account_report_print_journal.py} | 15 +----- ... => account_report_print_journal_view.xml} | 0 13 files changed, 119 insertions(+), 132 deletions(-) delete mode 100644 addons/account/wizard/account_central_journal_view.xml rename addons/account/wizard/{account_general_journal.py => account_common_journal_report.py} (80%) rename addons/account/wizard/{account_central_journal.py => account_report_central_journal.py} (62%) create mode 100644 addons/account/wizard/account_report_central_journal_view.xml create mode 100644 addons/account/wizard/account_report_general_journal.py rename addons/account/wizard/{account_general_journal_view.xml => account_report_general_journal_view.xml} (100%) rename addons/account/wizard/{account_print_journal.py => account_report_print_journal.py} (60%) rename addons/account/wizard/{account_print_journal_view.xml => account_report_print_journal_view.xml} (100%) diff --git a/addons/account/__openerp__.py b/addons/account/__openerp__.py index ace32fe1b0c..ff8789746c1 100644 --- a/addons/account/__openerp__.py +++ b/addons/account/__openerp__.py @@ -65,9 +65,9 @@ module named account_vouchers 'wizard/account_open_closed_fiscalyear_view.xml', 'wizard/account_move_line_unreconcile_select_view.xml', 'wizard/account_vat_view.xml', - 'wizard/account_print_journal_view.xml', - 'wizard/account_general_journal_view.xml', - 'wizard/account_central_journal_view.xml', + 'wizard/account_report_print_journal_view.xml', + 'wizard/account_report_general_journal_view.xml', + 'wizard/account_report_central_journal_view.xml', 'wizard/account_subscription_generate_view.xml', 'wizard/account_fiscalyear_close_view.xml', 'wizard/account_state_open_view.xml', diff --git a/addons/account/report/account_journal.py b/addons/account/report/account_journal.py index 156976c0dc2..8912439c97b 100644 --- a/addons/account/report/account_journal.py +++ b/addons/account/report/account_journal.py @@ -53,16 +53,16 @@ class journal_print(report_sxw.rml_parse): obj_mline = self.pool.get('account.move.line') self.cr.execute('update account_journal_period set state=%s where journal_id=%s and period_id=%s and state=%s', ('printed',journal_id,period_id,'draft')) self.cr.commit() - self.cr.execute('select id from account_move_line where period_id=%s and journal_id=%s and state<>\'draft\''+self.query_get_clause+' order by %s', (period_id, journal_id, sort_selection)) + self.cr.execute('SELECT id FROM account_move_line l WHERE '+self.query_get_clause+' AND period_id=%s AND journal_id=%s ORDER BY %s', (period_id, journal_id, sort_selection)) ids = map(lambda x: x[0], self.cr.fetchall()) return obj_mline.browse(self.cr, self.uid, ids) def _sum_debit(self, period_id, journal_id): - self.cr.execute('select sum(debit) from account_move_line where period_id=%s and journal_id=%s'+self.query_get_clause+' and state<>\'draft\'', (period_id, journal_id)) + self.cr.execute('SELECT SUM(debit) FROM account_move_line l WHERE '+self.query_get_clause+' AND period_id=%s AND journal_id=%s', (period_id, journal_id)) return self.cr.fetchone()[0] or 0.0 def _sum_credit(self, period_id, journal_id): - self.cr.execute('select sum(credit) from account_move_line where period_id=%s and journal_id=%s'+self.query_get_clause+' and state<>\'draft\'', (period_id, journal_id)) + self.cr.execute('SELECT SUM(credit) FROM account_move_line l WHERE '+self.query_get_clause+' AND period_id=%s AND journal_id=%s', (period_id, journal_id)) return self.cr.fetchone()[0] or 0.0 def get_start_period(self, form): diff --git a/addons/account/report/central_journal.py b/addons/account/report/central_journal.py index a805b896d6c..45a915ba08d 100644 --- a/addons/account/report/central_journal.py +++ b/addons/account/report/central_journal.py @@ -27,6 +27,15 @@ import pooler # Use period and Journal for selection or resources # class journal_print(report_sxw.rml_parse): + + def set_context(self, objects, data, ids, report_type = None): + new_ids = ids + if (data['model'] == 'ir.ui.menu'): + new_ids = 'active_ids' in data['form'] and data['form']['active_ids'] or [] + objects = self.pool.get('account.journal.period').browse(self.cr, self.uid, new_ids) + self.query_get_clause = data['form']['query_line'] or '' + super(journal_print, self).set_context(objects, data, new_ids, report_type) + def __init__(self, cr, uid, name, context): super(journal_print, self).__init__(cr, uid, name, context=context) self.localcontext.update({ @@ -39,29 +48,16 @@ class journal_print(report_sxw.rml_parse): }) def lines(self, period_id, journal_id, *args): - if type(period_id)==type([]): - ids_final = [] - for journal in journal_id: - for period in period_id: - ids_journal_period = self.pool.get('account.journal.period').search(self.cr, self.uid, [('journal_id','=',journal),('period_id','=',period)]) - if ids_journal_period: - self.cr.execute('select a.code, a.name, sum(debit) as debit, sum(credit) as credit from account_move_line l left join account_account a on (l.account_id=a.id) where l.period_id=%s and l.journal_id=%s and l.state<>\'draft\' group by a.id, a.code, a.name, l.journal_id, l.period_id', (period, journal)) - res = self.cr.dictfetchall() - a = {'journal':self.pool.get('account.journal').browse(self.cr, self.uid, journal),'period':self.pool.get('account.period').browse(self.cr, self.uid, period)} - if res: - res[0].update(a) - ids_final.append(res) - return ids_final - self.cr.execute('select a.code, a.name, sum(debit) as debit, sum(credit) as credit from account_move_line l left join account_account a on (l.account_id=a.id) where l.period_id=%s and l.journal_id=%s and l.state<>\'draft\' group by a.id, a.code, a.name', (period_id, journal_id)) + self.cr.execute('SELECT a.code, a.name, SUM(debit) AS debit, SUM(credit) AS credit from account_move_line l LEFT JOIN account_account a ON (l.account_id=a.id) WHERE '+self.query_get_clause+' AND l.period_id=%s AND l.journal_id=%s GROUP BY a.id, a.code, a.name', (period_id, journal_id)) res = self.cr.dictfetchall() return res def _sum_debit(self, period_id, journal_id): - self.cr.execute('select sum(debit) from account_move_line where period_id=%s and journal_id=%s and state<>\'draft\'', (period_id, journal_id)) + self.cr.execute('SELECT SUM(debit) FROM account_move_line l WHERE '+self.query_get_clause+' AND period_id=%s AND journal_id=%s', (period_id, journal_id)) return self.cr.fetchone()[0] or 0.0 def _sum_credit(self, period_id, journal_id): - self.cr.execute('select sum(credit) from account_move_line where period_id=%s and journal_id=%s and state<>\'draft\'', (period_id, journal_id)) + self.cr.execute('SELECT SUM(credit) FROM account_move_line l WHERE '+self.query_get_clause+' AND period_id=%s AND journal_id=%s', (period_id, journal_id)) return self.cr.fetchone()[0] or 0.0 def get_start_date(self, form): @@ -70,9 +66,5 @@ class journal_print(report_sxw.rml_parse): def get_end_date(self, form): return pooler.get_pool(self.cr.dbname).get('account.period').browse(self.cr,self.uid,form['period_to']).name - report_sxw.report_sxw('report.account.central.journal', 'account.journal.period', 'addons/account/report/central_journal.rml', parser=journal_print, header=False) -report_sxw.report_sxw('report.account.central.journal.wiz', 'account.journal.period', 'addons/account/report/wizard_central_journal.rml', parser=journal_print, header=False) - # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - diff --git a/addons/account/report/general_journal.py b/addons/account/report/general_journal.py index aa8248130f2..55ff11b2efc 100644 --- a/addons/account/report/general_journal.py +++ b/addons/account/report/general_journal.py @@ -72,8 +72,7 @@ class journal_print(report_sxw.rml_parse): 'SUM(l.debit) AS debit, SUM(l.credit) AS credit ' 'FROM account_move_line l ' 'LEFT JOIN account_journal j ON (l.journal_id=j.id) ' - 'WHERE period_id=%s AND journal_id IN %s ' +self.query_get_clause + - 'AND l.state<>\'draft\' ' + 'WHERE '+self.query_get_clause +' AND period_id=%s AND journal_id IN %s ' 'GROUP BY j.id, j.code, j.name', (period_id, tuple(self.journal_ids))) res = self.cr.dictfetchall() @@ -83,9 +82,8 @@ class journal_print(report_sxw.rml_parse): journals = journal_id or self.journal_ids if not journals: return 0.0 - self.cr.execute('SELECT SUM(debit) FROM account_move_line ' - 'WHERE period_id=%s AND journal_id IN %s '+self.query_get_clause + - 'AND state<>\'draft\'', + self.cr.execute('SELECT SUM(debit) FROM account_move_line l ' + 'WHERE '+self.query_get_clause +' AND period_id=%s AND journal_id IN %s ', (period_id, tuple(journals))) return self.cr.fetchone()[0] or 0.0 @@ -93,9 +91,8 @@ class journal_print(report_sxw.rml_parse): journals = journal_id or self.journal_ids if not journals: return 0.0 - self.cr.execute('SELECT SUM(credit) FROM account_move_line ' - 'WHERE period_id=%s AND journal_id IN %s '+self.query_get_clause + - 'AND state<>\'draft\'', + self.cr.execute('SELECT SUM(credit) FROM account_move_line l ' + 'WHERE '+self.query_get_clause +' AND period_id=%s AND journal_id IN %s ', (period_id, tuple(journals))) return self.cr.fetchone()[0] or 0.0 @@ -104,10 +101,9 @@ class journal_print(report_sxw.rml_parse): periods = period_id or self.period_ids if not (journals and periods): return 0.0 - self.cr.execute('SELECT SUM(debit) FROM account_move_line ' - 'WHERE period_id IN %s ' - 'AND journal_id IN %s '+self.query_get_clause + - 'AND state<>\'draft\'', + self.cr.execute('SELECT SUM(debit) FROM account_move_line l ' + 'WHERE '+self.query_get_clause +' AND period_id IN %s ' + 'AND journal_id IN %s ', (tuple(periods), tuple(journals))) return self.cr.fetchone()[0] or 0.0 @@ -116,10 +112,9 @@ class journal_print(report_sxw.rml_parse): journals = journal_id or self.journal_ids if not (periods and journals): return 0.0 - self.cr.execute('SELECT SUM(credit) FROM account_move_line ' - 'WHERE period_id IN %s ' - 'AND journal_id IN %s '+self.query_get_clause + - 'AND state<>\'draft\'', + self.cr.execute('SELECT SUM(credit) FROM account_move_line l ' + 'WHERE '+self.query_get_clause +' AND period_id IN %s ' + 'AND journal_id IN %s ', (tuple(periods), tuple(journals))) return self.cr.fetchone()[0] or 0.0 diff --git a/addons/account/wizard/__init__.py b/addons/account/wizard/__init__.py index 1231c67463a..47de9699c54 100644 --- a/addons/account/wizard/__init__.py +++ b/addons/account/wizard/__init__.py @@ -56,9 +56,12 @@ import account_use_model import account_state_open import account_statement_from_invoice -import account_print_journal -import account_central_journal -import account_general_journal + +import account_common_journal_report +import account_report_print_journal +import account_report_central_journal +import account_report_general_journal + import account_change_currency import account_bs_report diff --git a/addons/account/wizard/account_central_journal_view.xml b/addons/account/wizard/account_central_journal_view.xml deleted file mode 100644 index f85a0b5f4c8..00000000000 --- a/addons/account/wizard/account_central_journal_view.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - Account central Journal - account.central.journal - form - -
- - - - - - - - - - - - - -