From d3cdab2d55b7155ffd9fcef60ae74e02a422061d Mon Sep 17 00:00:00 2001 From: Mustufa Rangwala Date: Sat, 10 Jul 2010 18:08:37 +0530 Subject: [PATCH] [IMP] account: account_journal_common_default => Improve class add some more methods remove from old report journal files bzr revid: mra@mra-laptop-20100710123837-gjmixcj0ibvd0lsg --- addons/account/report/account_journal.py | 40 ++++----- addons/account/report/account_journal.rml | 2 +- .../report/account_journal_common_default.py | 81 ++++++++++++++---- addons/account/report/general_journal.py | 84 +++++++++---------- 4 files changed, 126 insertions(+), 81 deletions(-) diff --git a/addons/account/report/account_journal.py b/addons/account/report/account_journal.py index 9ac0716aa43..17379a5e58d 100644 --- a/addons/account/report/account_journal.py +++ b/addons/account/report/account_journal.py @@ -70,28 +70,28 @@ class journal_print(report_sxw.rml_parse, account_journal_common_default): 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 l WHERE period_id=%s AND journal_id IN %s '+ self.query_get_clause +'', (period_id, self.journal_ids)) - return self.cr.fetchone()[0] or 0.0 +# def _sum_debit(self, period_id, journal_id=[]): +# self.cr.execute('SELECT SUM(debit) FROM account_move_line l WHERE period_id=%s AND journal_id IN %s '+ self.query_get_clause +'', (period_id, self.journal_ids)) +# 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 l WHERE period_id=%s AND journal_id IN %s '+ self.query_get_clause +'', (period_id, self.journal_ids)) +# 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 l WHERE period_id=%s AND journal_id IN %s '+ self.query_get_clause +'', (period_id, self.journal_ids)) - return self.cr.fetchone()[0] or 0.0 +# def get_start_period(self, form): +# if 'period_from' in form and form['period_from']: +# return pooler.get_pool(self.cr.dbname).get('account.period').browse(self.cr,self.uid,form['period_from']).name +# return '' +# +# def get_end_period(self, form): +# if 'period_to' in form and form['period_to']: +# return pooler.get_pool(self.cr.dbname).get('account.period').browse(self.cr,self.uid,form['period_to']).name +# return '' - def get_start_period(self, form): - if 'period_from' in form and form['period_from']: - return pooler.get_pool(self.cr.dbname).get('account.period').browse(self.cr,self.uid,form['period_from']).name - return '' - - def get_end_period(self, form): - if 'period_to' in form and form['period_to']: - return pooler.get_pool(self.cr.dbname).get('account.period').browse(self.cr,self.uid,form['period_to']).name - return '' - - def get_account(self, form): - if form and 'chart_account_id' in form and form['chart_account_id']: - return pooler.get_pool(self.cr.dbname).get('account.account').browse(self.cr,self.uid,form['chart_account_id']).name - return '' +# def get_account(self, form): +# if form and 'chart_account_id' in form and form['chart_account_id']: +# return pooler.get_pool(self.cr.dbname).get('account.account').browse(self.cr,self.uid,form['chart_account_id']).name +# return '' report_sxw.report_sxw('report.account.journal.period.print', 'account.journal.period', 'addons/account/report/account_journal.rml', parser=journal_print, header=False) diff --git a/addons/account/report/account_journal.rml b/addons/account/report/account_journal.rml index 28d3229fbcd..543c16bb069 100644 --- a/addons/account/report/account_journal.rml +++ b/addons/account/report/account_journal.rml @@ -222,7 +222,7 @@ [[ data and 'form' in data and data['form']['date_from'] or '' ]] [[ data and 'form' in data and data['form']['date_to'] or '']] [[ data and 'form' in data and data['form']['sort_selection'] or 'date' ]] - [[ get_account(data and 'form' in data and data['form'] or None) ]] + [[ get_account(data) or removeParentNode('para') ]] [[ get_start_period(data) or removeParentNode('para') ]] [[ get_end_period(data) or removeParentNode('para') ]] [[ data and 'form' in data and data['form']['filter'] or 'No Filter' ]] diff --git a/addons/account/report/account_journal_common_default.py b/addons/account/report/account_journal_common_default.py index 762d5429869..572b851e1f9 100644 --- a/addons/account/report/account_journal_common_default.py +++ b/addons/account/report/account_journal_common_default.py @@ -18,32 +18,77 @@ # along with this program. If not, see . # ############################################################################## -from osv import osv, fields -from tools.translate import _ + +import pooler class account_journal_common_default(object): - def _sum_debit(self, period_id, journal_id=False): - if isinstance(journal_id, int): + def _sum_debit(self, period_id=False, journal_id=False): + if journal_id and isinstance(journal_id, int): journal_id = [journal_id] if not journal_id: journal_id = self.journal_ids - self.cr.execute('SELECT SUM(debit) FROM account_move_line l WHERE period_id=%s AND journal_id IN %s '+self.query_get_clause+' ', (period_id, tuple(journal_id))) - res = self.cr.fetchone()[0] - return res or 0.0 - - def _sum_credit(self, period_id, journal_id=False): - if isinstance(journal_id, int): - journal_id = [journal_id] - if not journal_id: - journal_id = self.journal_ids - self.cr.execute('SELECT SUM(credit) FROM account_move_line l WHERE period_id=%s AND journal_id IN %s '+self.query_get_clause+'', (period_id, tuple(journal_id))) + if not period_id: + period_id = self.period_ids + if not (period_id and journal_id): + return 0.0 + self.cr.execute('SELECT SUM(debit) FROM account_move_line l ' + 'WHERE period_id IN %s AND journal_id IN %s '+self.query_get_clause+' ', + (tuple(period_id), tuple(journal_id))) return self.cr.fetchone()[0] or 0.0 - def get_start_date(self, form): - return pooler.get_pool(self.cr.dbname).get('account.period').browse(self.cr,self.uid,form['period_from']).name + def _sum_credit(self, period_id=False, journal_id=False): + if journal_id and isinstance(journal_id, int): + journal_id = [journal_id] + if not journal_id: + journal_id = self.journal_ids + if not period_id: + period_id = self.period_ids + if not (period_id and journal_id): + return 0.0 + self.cr.execute('SELECT SUM(credit) FROM account_move_line l ' + 'WHERE period_id IN %s AND journal_id IN %s '+self.query_get_clause+'', + (tuple(period_id), tuple(journal_id))) + return self.cr.fetchone()[0] or 0.0 - 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 +# def get_start_date(self, form): +# return pooler.get_pool(self.cr.dbname).get('account.period').browse(self.cr,self.uid,form['period_from']).name +# +# 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 + + def get_start_period(self, data): + if data.get('form', False) and data['form'].get('period_from', False): + return pooler.get_pool(self.cr.dbname).get('account.period').browse(self.cr,self.uid,data['form']['period_from']).name + return '' + + def get_end_period(self, data): + if data.get('form', False) and data['form'].get('period_to', False): + return pooler.get_pool(self.cr.dbname).get('account.period').browse(self.cr, self.uid, data['form']['period_to']).name + return '' + + def get_account(self, data): + if data.get('form', False) and data['form'].get('chart_account_id', False): + return pooler.get_pool(self.cr.dbname).get('account.account').browse(self.cr, self.uid, data['form']['chart_account_id']).name + return '' + + def _sum_debit_period(self, period_id, journal_id=None): + journals = journal_id or self.journal_ids + if not journals: + return 0.0 + self.cr.execute('SELECT SUM(debit) FROM account_move_line l ' + 'WHERE period_id=%s AND journal_id IN %s '+ self.query_get_clause +'', + (period_id, tuple(journals))) + + return self.cr.fetchone()[0] or 0.0 + + def _sum_credit_period(self, period_id, journal_id=None): + journals = journal_id or self.journal_ids + if not journals: + return 0.0 + self.cr.execute('SELECT SUM(credit) FROM account_move_line l ' + 'WHERE period_id=%s AND journal_id IN %s '+self.query_get_clause +' ', + (period_id, tuple(journals))) + return self.cr.fetchone()[0] or 0.0 #vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/account/report/general_journal.py b/addons/account/report/general_journal.py index b5edd0dda1f..39c8fd0f16a 100644 --- a/addons/account/report/general_journal.py +++ b/addons/account/report/general_journal.py @@ -22,11 +22,12 @@ import time import pooler +from account_journal_common_default import account_journal_common_default from report import report_sxw # # Use period and Journal for selection or resources # -class journal_print(report_sxw.rml_parse): +class journal_print(report_sxw.rml_parse, account_journal_common_default): def __init__(self, cr, uid, name, context=None): if context is None: context = {} @@ -85,48 +86,47 @@ class journal_print(report_sxw.rml_parse): res = self.cr.dictfetchall() return res - def _sum_debit_period(self, period_id, journal_id=None): - journals = journal_id or self.journal_ids - if not journals: - return 0.0 - self.cr.execute('SELECT SUM(debit) FROM account_move_line l ' - 'WHERE period_id=%s AND journal_id IN %s '+ self.query_get_clause +'', - (period_id, tuple(journals))) +# def _sum_debit_period(self, period_id, journal_id=None): +# journals = journal_id or self.journal_ids +# if not journals: +# return 0.0 +# self.cr.execute('SELECT SUM(debit) FROM account_move_line l ' +# 'WHERE period_id=%s AND journal_id IN %s '+ self.query_get_clause +'', +# (period_id, tuple(journals))) +# +# return self.cr.fetchone()[0] or 0.0 +# +# def _sum_credit_period(self, period_id, journal_id=None): +# journals = journal_id or self.journal_ids +# if not journals: +# return 0.0 +# self.cr.execute('SELECT SUM(credit) FROM account_move_line l ' +# 'WHERE period_id=%s AND journal_id IN %s '+self.query_get_clause +' ', +# (period_id, tuple(journals))) +# return self.cr.fetchone()[0] or 0.0 - return self.cr.fetchone()[0] or 0.0 - - - def _sum_credit_period(self, period_id, journal_id=None): - journals = journal_id or self.journal_ids - if not journals: - return 0.0 - self.cr.execute('SELECT SUM(credit) FROM account_move_line l ' - 'WHERE period_id=%s AND journal_id IN %s '+self.query_get_clause +' ', - (period_id, tuple(journals))) - return self.cr.fetchone()[0] or 0.0 - - def _sum_debit(self, period_id=None, journal_id=None): - journals = journal_id or self.journal_ids - 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 l ' - 'WHERE period_id IN %s ' - 'AND journal_id IN %s '+self.query_get_clause +'', - (tuple(periods), tuple(journals))) - res = self.cr.fetchone()[0] - return res or 0.0 - - def _sum_credit(self, period_id=None, journal_id=None): - periods = period_id or self.period_ids - 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 l ' - 'WHERE period_id IN %s ' - 'AND journal_id IN %s '+self.query_get_clause +'', - (tuple(periods), tuple(journals))) - return self.cr.fetchone()[0] or 0.0 +# def _sum_debit(self, period_id=None, journal_id=None): +# journals = journal_id or self.journal_ids +# 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 l ' +# 'WHERE period_id IN %s ' +# 'AND journal_id IN %s '+self.query_get_clause +'', +# (tuple(periods), tuple(journals))) +# res = self.cr.fetchone()[0] +# return res or 0.0 +# +# def _sum_credit(self, period_id=None, journal_id=None): +# periods = period_id or self.period_ids +# 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 l ' +# 'WHERE period_id IN %s ' +# 'AND journal_id IN %s '+self.query_get_clause +'', +# (tuple(periods), tuple(journals))) +# return self.cr.fetchone()[0] or 0.0 def get_start_date(self, form): return pooler.get_pool(self.cr.dbname).get('account.period').browse(self.cr,self.uid,form['period_from']).name