diff --git a/account_financial_report/report/parser.py b/account_financial_report/report/parser.py index 76b17de2..ea9f8e85 100644 --- a/account_financial_report/report/parser.py +++ b/account_financial_report/report/parser.py @@ -3,7 +3,7 @@ # Module Writen to OpenERP, Open Source Management Solution # Copyright (C) OpenERP Venezuela (). # All Rights Reserved -###############Credits###################################################### +# Credits###################################################### # Coded by: Humberto Arocha humberto@openerp.com.ve # Angelica Barrios angelicaisabelb@gmail.com # Jordi Esteve @@ -35,6 +35,8 @@ from report import report_sxw from tools import config from tools.translate import _ from osv import osv + + class account_balance(report_sxw.rml_parse): def __init__(self, cr, uid, name, context): @@ -53,12 +55,11 @@ class account_balance(report_sxw.rml_parse): 'get_fiscalyear_text': self.get_fiscalyear_text, 'get_periods_and_date_text': self.get_periods_and_date_text, 'get_informe_text': self.get_informe_text, - 'get_month':self.get_month, - 'exchange_name':self.exchange_name, + 'get_month': self.get_month, + 'exchange_name': self.exchange_name, }) self.context = context - def get_fiscalyear_text(self, form): """ Returns the fiscal year text used on the report. @@ -66,26 +67,29 @@ class account_balance(report_sxw.rml_parse): fiscalyear_obj = self.pool.get('account.fiscalyear') fiscalyear = None if form.get('fiscalyear'): - fiscalyear = fiscalyear_obj.browse(self.cr, self.uid, form['fiscalyear']) + fiscalyear = fiscalyear_obj.browse( + self.cr, self.uid, form['fiscalyear']) return fiscalyear.name or fiscalyear.code else: - fiscalyear = fiscalyear_obj.browse(self.cr, self.uid, fiscalyear_obj.find(self.cr, self.uid)) + fiscalyear = fiscalyear_obj.browse( + self.cr, self.uid, fiscalyear_obj.find(self.cr, self.uid)) return "%s*" % (fiscalyear.name or fiscalyear.code) def get_informe_text(self, form): """ Returns the header text used on the report. """ - afr_id = form['afr_id'] and type(form['afr_id']) in (list,tuple) and form['afr_id'][0] or form['afr_id'] + afr_id = form['afr_id'] and type(form['afr_id']) in ( + list, tuple) and form['afr_id'][0] or form['afr_id'] if afr_id: name = self.pool.get('afr').browse(self.cr, self.uid, afr_id).name - elif form['analytic_ledger'] and form['columns']=='four' and form['inf_type'] == 'BS': + elif form['analytic_ledger'] and form['columns'] == 'four' and form['inf_type'] == 'BS': name = _('Analytic Ledger') elif form['inf_type'] == 'BS': name = _('Balance Sheet') elif form['inf_type'] == 'IS': name = _('Income Statement') - + return name def get_month(self, form): @@ -93,15 +97,16 @@ class account_balance(report_sxw.rml_parse): return day, year and month ''' if form['filter'] in ['bydate', 'all']: - months=["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"] - mes = months[time.strptime(form['date_to'],"%Y-%m-%d")[1]-1] - ano = time.strptime(form['date_to'],"%Y-%m-%d")[0] - dia = time.strptime(form['date_to'],"%Y-%m-%d")[2] - return _('From ')+self.formatLang(form['date_from'], date=True)+ _(' to ')+self.formatLang(form['date_to'], date=True) + months = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", + "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"] + mes = months[time.strptime(form['date_to'], "%Y-%m-%d")[1]-1] + ano = time.strptime(form['date_to'], "%Y-%m-%d")[0] + dia = time.strptime(form['date_to'], "%Y-%m-%d")[2] + return _('From ')+self.formatLang(form['date_from'], date=True) + _(' to ')+self.formatLang(form['date_to'], date=True) elif form['filter'] in ['byperiod', 'all']: - aux=[] + aux = [] period_obj = self.pool.get('account.period') - + for period in period_obj.browse(self.cr, self.uid, form['periods']): aux.append(period.date_start) aux.append(period.date_stop) @@ -114,17 +119,20 @@ class account_balance(report_sxw.rml_parse): """ period_obj = self.pool.get('account.period') periods_str = None - fiscalyear_id = form['fiscalyear'] or fiscalyear_obj.find(self.cr, self.uid) - period_ids = period_obj.search(self.cr, self.uid, [('fiscalyear_id','=',fiscalyear_id),('special','=',False)]) + fiscalyear_id = form[ + 'fiscalyear'] or fiscalyear_obj.find(self.cr, self.uid) + period_ids = period_obj.search(self.cr, self.uid, [( + 'fiscalyear_id', '=', fiscalyear_id), ('special', '=', False)]) if form['filter'] in ['byperiod', 'all']: period_ids = form['periods'] - periods_str = ', '.join([period.name or period.code for period in period_obj.browse(self.cr, self.uid, period_ids)]) + periods_str = ', '.join([period.name or period.code for period in period_obj.browse( + self.cr, self.uid, period_ids)]) dates_str = None if form['filter'] in ['bydate', 'all']: - dates_str = self.formatLang(form['date_from'], date=True) + ' - ' + self.formatLang(form['date_to'], date=True) + ' ' - return {'periods':periods_str, 'date':dates_str} - + dates_str = self.formatLang(form[ + 'date_from'], date=True) + ' - ' + self.formatLang(form['date_to'], date=True) + ' ' + return {'periods': periods_str, 'date': dates_str} def special_period(self, periods): period_obj = self.pool.get('account.period') @@ -133,13 +141,15 @@ class account_balance(report_sxw.rml_parse): if not period_counter: return True return False - + def exchange_name(self, form): - self.from_currency_id = self.get_company_currency(form['company_id'] and type(form['company_id']) in (list,tuple) and form['company_id'][0] or form['company_id']) + self.from_currency_id = self.get_company_currency(form['company_id'] and type(form[ + 'company_id']) in (list, tuple) and form['company_id'][0] or form['company_id']) if not form['currency_id']: self.to_currency_id = self.from_currency_id else: - self.to_currency_id = form['currency_id'] and type(form['currency_id']) in (list, tuple) and form['currency_id'][0] or form['currency_id'] + self.to_currency_id = form['currency_id'] and type(form['currency_id']) in ( + list, tuple) and form['currency_id'][0] or form['currency_id'] return self.pool.get('res.currency').browse(self.cr, self.uid, self.to_currency_id).name def exchange(self, from_amount): @@ -147,34 +157,34 @@ class account_balance(report_sxw.rml_parse): return from_amount curr_obj = self.pool.get('res.currency') return curr_obj.compute(self.cr, self.uid, self.from_currency_id, self.to_currency_id, from_amount) - + def get_company_currency(self, company_id): rc_obj = self.pool.get('res.company') return rc_obj.browse(self.cr, self.uid, company_id).currency_id.id - + def get_company_accounts(self, company_id, acc='credit'): rc_obj = self.pool.get('res.company') - if acc=='credit': + if acc == 'credit': return [brw.id for brw in rc_obj.browse(self.cr, self.uid, company_id).credit_account_ids] else: return [brw.id for brw in rc_obj.browse(self.cr, self.uid, company_id).debit_account_ids] - def _get_analytic_ledger(self, account, ctx={}): res = [] - if account['type'] in ('other','liquidity','receivable','payable'): + if account['type'] in ('other', 'liquidity', 'receivable', 'payable'): #~ TODO: CUANDO EL PERIODO ESTE VACIO LLENARLO CON LOS PERIODOS DEL EJERCICIO #~ FISCAL, SIN LOS PERIODOS ESPECIALES periods = ', '.join([str(i) for i in ctx['periods']]) #~ periods = str(tuple(ctx['periods'])) - where = """where aml.period_id in (%s) and aa.id = %s and aml.state <> 'draft'"""%(periods,account['id']) + where = """where aml.period_id in (%s) and aa.id = %s and aml.state <> 'draft'""" % ( + periods, account['id']) sql_detalle = """select aml.id as id, aj.name as diario, aa.name as descripcion, (select name from res_partner where aml.partner_id = id) as partner, aa.code as cuenta, aml.name as name, aml.ref as ref, - case when aml.debit is null then 0.00 else aml.debit end as debit, + case when aml.debit is null then 0.00 else aml.debit end as debit, case when aml.credit is null then 0.00 else aml.credit end as credit, (select code from account_analytic_account where aml.analytic_account_id = id) as analitica, aml.date as date, ap.name as periodo, @@ -194,10 +204,10 @@ class account_balance(report_sxw.rml_parse): res.append({ 'id': det['id'], 'date': det['date'], - 'journal':det['diario'], - 'partner':det['partner'], - 'name':det['name'], - 'entry':det['asiento'], + 'journal': det['diario'], + 'partner': det['partner'], + 'name': det['name'], + 'entry': det['asiento'], 'ref': det['ref'], 'debit': det['debit'], 'credit': det['credit'], @@ -216,105 +226,119 @@ class account_balance(report_sxw.rml_parse): account_obj = self.pool.get('account.account') period_obj = self.pool.get('account.period') fiscalyear_obj = self.pool.get('account.fiscalyear') - - def _get_children_and_consol(cr, uid, ids, level, context={},change_sign=False): + + def _get_children_and_consol(cr, uid, ids, level, context={}, change_sign=False): aa_obj = self.pool.get('account.account') - ids2=[] + ids2 = [] for aa_brw in aa_obj.browse(cr, uid, ids, context): - if aa_brw.child_id and aa_brw.level < level and aa_brw.type !='consolidation': + if aa_brw.child_id and aa_brw.level < level and aa_brw.type != 'consolidation': if not change_sign: - ids2.append([aa_brw.id,True, False,aa_brw]) - ids2 += _get_children_and_consol(cr, uid, [x.id for x in aa_brw.child_id], level, context,change_sign=change_sign) + ids2.append([aa_brw.id, True, False, aa_brw]) + ids2 += _get_children_and_consol(cr, uid, [ + x.id for x in aa_brw.child_id], level, context, change_sign=change_sign) if change_sign: - ids2.append(aa_brw.id) + ids2.append(aa_brw.id) else: - ids2.append([aa_brw.id,False,True,aa_brw]) + ids2.append([aa_brw.id, False, True, aa_brw]) else: if change_sign: - ids2.append(aa_brw.id) + ids2.append(aa_brw.id) else: - ids2.append([aa_brw.id,True,True,aa_brw]) + ids2.append([aa_brw.id, True, True, aa_brw]) return ids2 ############################################################################# # CONTEXT FOR ENDIND BALANCE # - ############################################################################# + ####################################################################### def _ctx_end(ctx): ctx_end = ctx - ctx_end['filter'] = form.get('filter','all') + ctx_end['filter'] = form.get('filter', 'all') ctx_end['fiscalyear'] = fiscalyear.id #~ ctx_end['periods'] = period_obj.search(self.cr, self.uid, [('fiscalyear_id','=',fiscalyear.id),('special','=',False)]) - - if ctx_end['filter'] not in ['bydate','none']: + + if ctx_end['filter'] not in ['bydate', 'none']: special = self.special_period(form['periods']) else: special = False - + if form['filter'] in ['byperiod', 'all']: if special: - ctx_end['periods'] = period_obj.search(self.cr, self.uid, [('id','in',form['periods'] or ctx_end.get('periods',False))]) + ctx_end['periods'] = period_obj.search(self.cr, self.uid, [( + 'id', 'in', form['periods'] or ctx_end.get('periods', False))]) else: - ctx_end['periods'] = period_obj.search(self.cr, self.uid, [('id','in',form['periods'] or ctx_end.get('periods',False)),('special','=',False)]) - - if form['filter'] in ['bydate','all','none']: + ctx_end['periods'] = period_obj.search(self.cr, self.uid, [('id', 'in', form[ + 'periods'] or ctx_end.get('periods', False)), ('special', '=', False)]) + + if form['filter'] in ['bydate', 'all', 'none']: ctx_end['date_from'] = form['date_from'] ctx_end['date_to'] = form['date_to'] - + return ctx_end.copy() - + def missing_period(ctx_init): - - ctx_init['fiscalyear'] = fiscalyear_obj.search(self.cr, self.uid, [('date_stop','<',fiscalyear.date_start)],order='date_stop') and \ - fiscalyear_obj.search(self.cr, self.uid, [('date_stop','<',fiscalyear.date_start)],order='date_stop')[-1] or [] - ctx_init['periods'] = period_obj.search(self.cr, self.uid, [('fiscalyear_id','=',ctx_init['fiscalyear']),('date_stop','<',fiscalyear.date_start)]) + + ctx_init['fiscalyear'] = fiscalyear_obj.search(self.cr, self.uid, [('date_stop', '<', fiscalyear.date_start)], order='date_stop') and \ + fiscalyear_obj.search(self.cr, self.uid, [( + 'date_stop', '<', fiscalyear.date_start)], order='date_stop')[-1] or [] + ctx_init['periods'] = period_obj.search(self.cr, self.uid, [( + 'fiscalyear_id', '=', ctx_init['fiscalyear']), ('date_stop', '<', fiscalyear.date_start)]) return ctx_init ############################################################################# # CONTEXT FOR INITIAL BALANCE # - ############################################################################# - + ####################################################################### + def _ctx_init(ctx): ctx_init = self.context.copy() - ctx_init['filter'] = form.get('filter','all') + ctx_init['filter'] = form.get('filter', 'all') ctx_init['fiscalyear'] = fiscalyear.id if form['filter'] in ['byperiod', 'all']: ctx_init['periods'] = form['periods'] if not ctx_init['periods']: ctx_init = missing_period(ctx_init.copy()) - date_start = min([period.date_start for period in period_obj.browse(self.cr, self.uid, ctx_init['periods'])]) - ctx_init['periods'] = period_obj.search(self.cr, self.uid, [('fiscalyear_id','=',fiscalyear.id),('date_stop','<=',date_start)]) + date_start = min([period.date_start for period in period_obj.browse( + self.cr, self.uid, ctx_init['periods'])]) + ctx_init['periods'] = period_obj.search(self.cr, self.uid, [( + 'fiscalyear_id', '=', fiscalyear.id), ('date_stop', '<=', date_start)]) elif form['filter'] in ['bydate']: ctx_init['date_from'] = fiscalyear.date_start ctx_init['date_to'] = form['date_from'] - ctx_init['periods'] = period_obj.search(self.cr, self.uid, [('fiscalyear_id','=',fiscalyear.id),('date_stop','<=',ctx_init['date_to'])]) + ctx_init['periods'] = period_obj.search(self.cr, self.uid, [( + 'fiscalyear_id', '=', fiscalyear.id), ('date_stop', '<=', ctx_init['date_to'])]) elif form['filter'] == 'none': - ctx_init['periods'] = period_obj.search(self.cr, self.uid, [('fiscalyear_id','=',fiscalyear.id),('special','=',True)]) - date_start = min([period.date_start for period in period_obj.browse(self.cr, self.uid, ctx_init['periods'])]) - ctx_init['periods'] = period_obj.search(self.cr, self.uid, [('fiscalyear_id','=',fiscalyear.id),('date_start','<=',date_start),('special','=',True)]) - + ctx_init['periods'] = period_obj.search(self.cr, self.uid, [( + 'fiscalyear_id', '=', fiscalyear.id), ('special', '=', True)]) + date_start = min([period.date_start for period in period_obj.browse( + self.cr, self.uid, ctx_init['periods'])]) + ctx_init['periods'] = period_obj.search(self.cr, self.uid, [( + 'fiscalyear_id', '=', fiscalyear.id), ('date_start', '<=', date_start), ('special', '=', True)]) + return ctx_init.copy() def z(n): return abs(n) < 0.005 and 0.0 or n - - self.from_currency_id = self.get_company_currency(form['company_id'] and type(form['company_id']) in (list,tuple) and form['company_id'][0] or form['company_id']) + self.from_currency_id = self.get_company_currency(form['company_id'] and type(form[ + 'company_id']) in (list, tuple) and form['company_id'][0] or form['company_id']) if not form['currency_id']: self.to_currency_id = self.from_currency_id else: - self.to_currency_id = form['currency_id'] and type(form['currency_id']) in (list, tuple) and form['currency_id'][0] or form['currency_id'] + self.to_currency_id = form['currency_id'] and type(form['currency_id']) in ( + list, tuple) and form['currency_id'][0] or form['currency_id'] - if form.has_key('account_list') and form['account_list']: + if 'account_list' in form and form['account_list']: account_ids = form['account_list'] del form['account_list'] - - credit_account_ids = self.get_company_accounts(form['company_id'] and type(form['company_id']) in (list,tuple) and form['company_id'][0] or form['company_id'],'credit') - - debit_account_ids = self.get_company_accounts(form['company_id'] and type(form['company_id']) in (list,tuple) and form['company_id'][0] or form['company_id'],'debit') + + credit_account_ids = self.get_company_accounts(form['company_id'] and type(form[ + 'company_id']) in (list, tuple) and form['company_id'][0] or form['company_id'], 'credit') + + debit_account_ids = self.get_company_accounts(form['company_id'] and type(form[ + 'company_id']) in (list, tuple) and form['company_id'][0] or form['company_id'], 'debit') if form.get('fiscalyear'): - if type(form.get('fiscalyear')) in (list,tuple): + if type(form.get('fiscalyear')) in (list, tuple): fiscalyear = form['fiscalyear'] and form['fiscalyear'][0] elif type(form.get('fiscalyear')) in (int,): fiscalyear = form['fiscalyear'] @@ -324,44 +348,52 @@ class account_balance(report_sxw.rml_parse): # Get the accounts # ################################################################ - account_ids = _get_children_and_consol(self.cr, self.uid, account_ids, form['display_account_level'] and form['display_account_level'] or 100,self.context) - - credit_account_ids = _get_children_and_consol(self.cr, self.uid, credit_account_ids, 100,self.context,change_sign=True) - - debit_account_ids = _get_children_and_consol(self.cr, self.uid, debit_account_ids, 100,self.context,change_sign=True) - - credit_account_ids = list(set(credit_account_ids) - set(debit_account_ids)) + account_ids = _get_children_and_consol(self.cr, self.uid, account_ids, form[ + 'display_account_level'] and form['display_account_level'] or 100, self.context) + + credit_account_ids = _get_children_and_consol( + self.cr, self.uid, credit_account_ids, 100, self.context, change_sign=True) + + debit_account_ids = _get_children_and_consol( + self.cr, self.uid, debit_account_ids, 100, self.context, change_sign=True) + + credit_account_ids = list(set( + credit_account_ids) - set(debit_account_ids)) # # Generate the report lines (checking each account) # - + tot_check = False - + if not form['periods']: - form['periods'] = period_obj.search(self.cr, self.uid, [('fiscalyear_id','=',fiscalyear.id),('special','=',False)],order='date_start asc') + form['periods'] = period_obj.search(self.cr, self.uid, [( + 'fiscalyear_id', '=', fiscalyear.id), ('special', '=', False)], order='date_start asc') if not form['periods']: - raise osv.except_osv(_('UserError'),_('The Selected Fiscal Year Does not have Regular Periods')) + raise osv.except_osv(_('UserError'), _( + 'The Selected Fiscal Year Does not have Regular Periods')) if form['columns'] == 'qtr': - period_ids = period_obj.search(self.cr, self.uid, [('fiscalyear_id','=',fiscalyear.id),('special','=',False)],order='date_start asc') - a=0 - l=[] - p=[] + period_ids = period_obj.search(self.cr, self.uid, [( + 'fiscalyear_id', '=', fiscalyear.id), ('special', '=', False)], order='date_start asc') + a = 0 + l = [] + p = [] for x in period_ids: - a+=1 - if a<3: + a += 1 + if a < 3: l.append(x) else: l.append(x) p.append(l) - l=[] - a=0 - + l = [] + a = 0 + #~ period_ids = p elif form['columns'] == 'thirteen': - period_ids = period_obj.search(self.cr, self.uid, [('fiscalyear_id','=',fiscalyear.id),('special','=',False)],order='date_start asc') + period_ids = period_obj.search(self.cr, self.uid, [( + 'fiscalyear_id', '=', fiscalyear.id), ('special', '=', False)], order='date_start asc') if form['columns'] == 'qtr': tot_bal1 = 0.0 @@ -386,7 +418,7 @@ class account_balance(report_sxw.rml_parse): tot_bal13 = 0.0 else: - + ctx_init = _ctx_init(self.context.copy()) ctx_end = _ctx_end(self.context.copy()) @@ -395,11 +427,10 @@ class account_balance(report_sxw.rml_parse): tot_crd = 0.0 tot_ytd = 0.0 tot_eje = 0.0 - + res = {} result_acc = [] - tot = {} - + tot = {} for aa_id in account_ids: id = aa_id[0] @@ -409,129 +440,148 @@ class account_balance(report_sxw.rml_parse): # if not form['display_account_level'] or aa_id[3].level <= form['display_account_level']: res = { - 'id' : id, - 'type' : aa_id[3].type, - 'code' : aa_id[3].code, - 'name' : (aa_id[2] and not aa_id[1]) and 'TOTAL %s'%(aa_id[3].name.upper()) or aa_id[3].name, - 'parent_id' : aa_id[3].parent_id and aa_id[3].parent_id.id, - 'level' : aa_id[3].level, - 'label' : aa_id[1], - 'total' : aa_id[2], - 'change_sign' : credit_account_ids and (id in credit_account_ids and -1 or 1) or 1 + 'id': id, + 'type': aa_id[3].type, + 'code': aa_id[3].code, + 'name': (aa_id[2] and not aa_id[1]) and 'TOTAL %s' % (aa_id[3].name.upper()) or aa_id[3].name, + 'parent_id': aa_id[3].parent_id and aa_id[3].parent_id.id, + 'level': aa_id[3].level, + 'label': aa_id[1], + 'total': aa_id[2], + 'change_sign': credit_account_ids and (id in credit_account_ids and -1 or 1) or 1 } - + if form['columns'] == 'qtr': pn = 1 for p_id in p: form['periods'] = p_id - + ctx_init = _ctx_init(self.context.copy()) - aa_brw_init = account_obj.browse(self.cr, self.uid, id, ctx_init) - + aa_brw_init = account_obj.browse( + self.cr, self.uid, id, ctx_init) + ctx_end = _ctx_end(self.context.copy()) - aa_brw_end = account_obj.browse(self.cr, self.uid, id, ctx_end) - + aa_brw_end = account_obj.browse( + self.cr, self.uid, id, ctx_end) + if form['inf_type'] == 'IS': - d,c,b = map(z,[aa_brw_end.debit,aa_brw_end.credit,aa_brw_end.balance]) + d, c, b = map(z, [ + aa_brw_end.debit, aa_brw_end.credit, aa_brw_end.balance]) res.update({ - 'dbr%s'%pn: self.exchange(d), - 'cdr%s'%pn: self.exchange(c), - 'bal%s'%pn: self.exchange(b), + 'dbr%s' % pn: self.exchange(d), + 'cdr%s' % pn: self.exchange(c), + 'bal%s' % pn: self.exchange(b), }) else: - i,d,c = map(z,[aa_brw_init.balance,aa_brw_end.debit,aa_brw_end.credit]) + i, d, c = map(z, [ + aa_brw_init.balance, aa_brw_end.debit, aa_brw_end.credit]) b = z(i+d-c) res.update({ - 'dbr%s'%pn: self.exchange(d), - 'cdr%s'%pn: self.exchange(c), - 'bal%s'%pn: self.exchange(b), + 'dbr%s' % pn: self.exchange(d), + 'cdr%s' % pn: self.exchange(c), + 'bal%s' % pn: self.exchange(b), }) - - pn +=1 - + + pn += 1 + form['periods'] = period_ids - + ctx_init = _ctx_init(self.context.copy()) - aa_brw_init = account_obj.browse(self.cr, self.uid, id, ctx_init) - + aa_brw_init = account_obj.browse( + self.cr, self.uid, id, ctx_init) + ctx_end = _ctx_end(self.context.copy()) - aa_brw_end = account_obj.browse(self.cr, self.uid, id, ctx_end) - + aa_brw_end = account_obj.browse( + self.cr, self.uid, id, ctx_end) + if form['inf_type'] == 'IS': - d,c,b = map(z,[aa_brw_end.debit,aa_brw_end.credit,aa_brw_end.balance]) + d, c, b = map(z, [ + aa_brw_end.debit, aa_brw_end.credit, aa_brw_end.balance]) res.update({ 'dbr5': self.exchange(d), 'cdr5': self.exchange(c), 'bal5': self.exchange(b), }) else: - i,d,c = map(z,[aa_brw_init.balance,aa_brw_end.debit,aa_brw_end.credit]) + i, d, c = map(z, [ + aa_brw_init.balance, aa_brw_end.debit, aa_brw_end.credit]) b = z(i+d-c) res.update({ 'dbr5': self.exchange(d), 'cdr5': self.exchange(c), 'bal5': self.exchange(b), }) - + elif form['columns'] == 'thirteen': pn = 1 for p_id in period_ids: form['periods'] = [p_id] - + ctx_init = _ctx_init(self.context.copy()) - aa_brw_init = account_obj.browse(self.cr, self.uid, id, ctx_init) - + aa_brw_init = account_obj.browse( + self.cr, self.uid, id, ctx_init) + ctx_end = _ctx_end(self.context.copy()) - aa_brw_end = account_obj.browse(self.cr, self.uid, id, ctx_end) - + aa_brw_end = account_obj.browse( + self.cr, self.uid, id, ctx_end) + if form['inf_type'] == 'IS': - d,c,b = map(z,[aa_brw_end.debit,aa_brw_end.credit,aa_brw_end.balance]) + d, c, b = map(z, [ + aa_brw_end.debit, aa_brw_end.credit, aa_brw_end.balance]) res.update({ - 'dbr%s'%pn: self.exchange(d), - 'cdr%s'%pn: self.exchange(c), - 'bal%s'%pn: self.exchange(b), + 'dbr%s' % pn: self.exchange(d), + 'cdr%s' % pn: self.exchange(c), + 'bal%s' % pn: self.exchange(b), }) else: - i,d,c = map(z,[aa_brw_init.balance,aa_brw_end.debit,aa_brw_end.credit]) + i, d, c = map(z, [ + aa_brw_init.balance, aa_brw_end.debit, aa_brw_end.credit]) b = z(i+d-c) res.update({ - 'dbr%s'%pn: self.exchange(d), - 'cdr%s'%pn: self.exchange(c), - 'bal%s'%pn: self.exchange(b), + 'dbr%s' % pn: self.exchange(d), + 'cdr%s' % pn: self.exchange(c), + 'bal%s' % pn: self.exchange(b), }) - - pn +=1 - + + pn += 1 + form['periods'] = period_ids - + ctx_init = _ctx_init(self.context.copy()) - aa_brw_init = account_obj.browse(self.cr, self.uid, id, ctx_init) - + aa_brw_init = account_obj.browse( + self.cr, self.uid, id, ctx_init) + ctx_end = _ctx_end(self.context.copy()) - aa_brw_end = account_obj.browse(self.cr, self.uid, id, ctx_end) - + aa_brw_end = account_obj.browse( + self.cr, self.uid, id, ctx_end) + if form['inf_type'] == 'IS': - d,c,b = map(z,[aa_brw_end.debit,aa_brw_end.credit,aa_brw_end.balance]) + d, c, b = map(z, [ + aa_brw_end.debit, aa_brw_end.credit, aa_brw_end.balance]) res.update({ 'dbr13': self.exchange(d), 'cdr13': self.exchange(c), 'bal13': self.exchange(b), }) else: - i,d,c = map(z,[aa_brw_init.balance,aa_brw_end.debit,aa_brw_end.credit]) + i, d, c = map(z, [ + aa_brw_init.balance, aa_brw_end.debit, aa_brw_end.credit]) b = z(i+d-c) res.update({ 'dbr13': self.exchange(d), 'cdr13': self.exchange(c), 'bal13': self.exchange(b), }) - + else: - aa_brw_init = account_obj.browse(self.cr, self.uid, id, ctx_init) - aa_brw_end = account_obj.browse(self.cr, self.uid, id, ctx_end) + aa_brw_init = account_obj.browse( + self.cr, self.uid, id, ctx_init) + aa_brw_end = account_obj.browse( + self.cr, self.uid, id, ctx_end) - i,d,c = map(z,[aa_brw_init.balance,aa_brw_end.debit,aa_brw_end.credit]) + i, d, c = map(z, [ + aa_brw_init.balance, aa_brw_end.debit, aa_brw_end.credit]) b = z(i+d-c) res.update({ 'balanceinit': self.exchange(i), @@ -539,8 +589,8 @@ class account_balance(report_sxw.rml_parse): 'credit': self.exchange(c), 'ytd': self.exchange(d-c), }) - - if form['inf_type'] == 'IS' and form['columns'] == 'one': + + if form['inf_type'] == 'IS' and form['columns'] == 'one': res.update({ 'balance': self.exchange(d-c), }) @@ -553,36 +603,42 @@ class account_balance(report_sxw.rml_parse): # Check whether we must include this line in the report or not # to_include = False - + if form['columns'] in ('thirteen', 'qtr'): to_test = [False] if form['display_account'] == 'mov' and aa_id[3].parent_id: # Include accounts with movements for x in range(pn-1): - to_test.append(res.get('dbr%s'%x,0.0) >= 0.005 and True or False) - to_test.append(res.get('cdr%s'%x,0.0) >= 0.005 and True or False) + to_test.append(res.get( + 'dbr%s' % x, 0.0) >= 0.005 and True or False) + to_test.append(res.get( + 'cdr%s' % x, 0.0) >= 0.005 and True or False) if any(to_test): to_include = True - + elif form['display_account'] == 'bal' and aa_id[3].parent_id: # Include accounts with balance for x in range(pn-1): - to_test.append(res.get('bal%s'%x,0.0) >= 0.005 and True or False) + to_test.append(res.get( + 'bal%s' % x, 0.0) >= 0.005 and True or False) if any(to_test): to_include = True - + elif form['display_account'] == 'bal_mov' and aa_id[3].parent_id: # Include accounts with balance or movements for x in range(pn-1): - to_test.append(res.get('bal%s'%x,0.0) >= 0.005 and True or False) - to_test.append(res.get('dbr%s'%x,0.0) >= 0.005 and True or False) - to_test.append(res.get('cdr%s'%x,0.0) >= 0.005 and True or False) + to_test.append(res.get( + 'bal%s' % x, 0.0) >= 0.005 and True or False) + to_test.append(res.get( + 'dbr%s' % x, 0.0) >= 0.005 and True or False) + to_test.append(res.get( + 'cdr%s' % x, 0.0) >= 0.005 and True or False) if any(to_test): to_include = True else: # Include all accounts to_include = True - + else: if form['display_account'] == 'mov' and aa_id[3].parent_id: @@ -600,14 +656,13 @@ class account_balance(report_sxw.rml_parse): else: # Include all accounts to_include = True - + #~ ANALYTIC LEDGER - if to_include and form['analytic_ledger'] and form['columns']=='four' and form['inf_type'] == 'BS' and res['type'] in ('other','liquidity','receivable','payable'): - res['mayor'] = self._get_analytic_ledger(res,ctx=ctx_end) + if to_include and form['analytic_ledger'] and form['columns'] == 'four' and form['inf_type'] == 'BS' and res['type'] in ('other', 'liquidity', 'receivable', 'payable'): + res['mayor'] = self._get_analytic_ledger(res, ctx=ctx_end) else: res['mayor'] = [] - - + if to_include: result_acc.append(res) # @@ -618,28 +673,28 @@ class account_balance(report_sxw.rml_parse): if form['columns'] == 'qtr': tot_check = True #~ tot[res['id']] = True - tot_bal1 += res.get('bal1',0.0) - tot_bal2 += res.get('bal2',0.0) - tot_bal3 += res.get('bal3',0.0) - tot_bal4 += res.get('bal4',0.0) - tot_bal5 += res.get('bal5',0.0) + tot_bal1 += res.get('bal1', 0.0) + tot_bal2 += res.get('bal2', 0.0) + tot_bal3 += res.get('bal3', 0.0) + tot_bal4 += res.get('bal4', 0.0) + tot_bal5 += res.get('bal5', 0.0) elif form['columns'] == 'thirteen': tot_check = True #~ tot[res['id']] = True - tot_bal1 += res.get('bal1',0.0) - tot_bal2 += res.get('bal2',0.0) - tot_bal3 += res.get('bal3',0.0) - tot_bal4 += res.get('bal4',0.0) - tot_bal5 += res.get('bal5',0.0) - tot_bal6 += res.get('bal6',0.0) - tot_bal7 += res.get('bal7',0.0) - tot_bal8 += res.get('bal8',0.0) - tot_bal9 += res.get('bal9',0.0) - tot_bal10 += res.get('bal10',0.0) - tot_bal11 += res.get('bal11',0.0) - tot_bal12 += res.get('bal12',0.0) - tot_bal13 += res.get('bal13',0.0) + tot_bal1 += res.get('bal1', 0.0) + tot_bal2 += res.get('bal2', 0.0) + tot_bal3 += res.get('bal3', 0.0) + tot_bal4 += res.get('bal4', 0.0) + tot_bal5 += res.get('bal5', 0.0) + tot_bal6 += res.get('bal6', 0.0) + tot_bal7 += res.get('bal7', 0.0) + tot_bal8 += res.get('bal8', 0.0) + tot_bal9 += res.get('bal9', 0.0) + tot_bal10 += res.get('bal10', 0.0) + tot_bal11 += res.get('bal11', 0.0) + tot_bal12 += res.get('bal12', 0.0) + tot_bal13 += res.get('bal13', 0.0) else: tot_check = True @@ -653,84 +708,84 @@ class account_balance(report_sxw.rml_parse): if tot_check: str_label = form['lab_str'] res2 = { - 'type' : 'view', - 'name': 'TOTAL %s'%(str_label), - 'label': False, - 'total': True, + 'type': 'view', + 'name': 'TOTAL %s' % (str_label), + 'label': False, + 'total': True, } if form['columns'] == 'qtr': res2.update(dict( - bal1 = tot_bal1, - bal2 = tot_bal2, - bal3 = tot_bal3, - bal4 = tot_bal4, - bal5 = tot_bal5,)) + bal1=tot_bal1, + bal2=tot_bal2, + bal3=tot_bal3, + bal4=tot_bal4, + bal5=tot_bal5,)) elif form['columns'] == 'thirteen': res2.update(dict( - bal1 = tot_bal1, - bal2 = tot_bal2, - bal3 = tot_bal3, - bal4 = tot_bal4, - bal5 = tot_bal5, - bal6 = tot_bal6, - bal7 = tot_bal7, - bal8 = tot_bal8, - bal9 = tot_bal9, - bal10 = tot_bal10, - bal11 = tot_bal11, - bal12 = tot_bal12, - bal13 = tot_bal13,)) + bal1=tot_bal1, + bal2=tot_bal2, + bal3=tot_bal3, + bal4=tot_bal4, + bal5=tot_bal5, + bal6=tot_bal6, + bal7=tot_bal7, + bal8=tot_bal8, + bal9=tot_bal9, + bal10=tot_bal10, + bal11=tot_bal11, + bal12=tot_bal12, + bal13=tot_bal13,)) else: res2.update({ - 'balanceinit': tot_bin, - 'debit': tot_deb, - 'credit': tot_crd, - 'ytd': tot_ytd, - 'balance': tot_eje, + 'balanceinit': tot_bin, + 'debit': tot_deb, + 'credit': tot_crd, + 'ytd': tot_ytd, + 'balance': tot_eje, }) - + result_acc.append(res2) return result_acc -report_sxw.report_sxw('report.afr.1cols', - 'wizard.report', +report_sxw.report_sxw('report.afr.1cols', + 'wizard.report', 'account_financial_report/report/balance_full.rml', - parser=account_balance, - header=False) + parser=account_balance, + header=False) -report_sxw.report_sxw('report.afr.2cols', - 'wizard.report', +report_sxw.report_sxw('report.afr.2cols', + 'wizard.report', 'account_financial_report/report/balance_full_2_cols.rml', - parser=account_balance, - header=False) + parser=account_balance, + header=False) -report_sxw.report_sxw('report.afr.4cols', - 'wizard.report', +report_sxw.report_sxw('report.afr.4cols', + 'wizard.report', 'account_financial_report/report/balance_full_4_cols.rml', - parser=account_balance, - header=False) + parser=account_balance, + header=False) -report_sxw.report_sxw('report.afr.analytic.ledger', - 'wizard.report', +report_sxw.report_sxw('report.afr.analytic.ledger', + 'wizard.report', 'account_financial_report/report/balance_full_4_cols_analytic_ledger.rml', - parser=account_balance, - header=False) - -report_sxw.report_sxw('report.afr.5cols', - 'wizard.report', + parser=account_balance, + header=False) + +report_sxw.report_sxw('report.afr.5cols', + 'wizard.report', 'account_financial_report/report/balance_full_5_cols.rml', - parser=account_balance, - header=False) - -report_sxw.report_sxw('report.afr.qtrcols', - 'wizard.report', + parser=account_balance, + header=False) + +report_sxw.report_sxw('report.afr.qtrcols', + 'wizard.report', 'account_financial_report/report/balance_full_qtr_cols.rml', - parser=account_balance, - header=False) + parser=account_balance, + header=False) -report_sxw.report_sxw('report.afr.13cols', - 'wizard.report', +report_sxw.report_sxw('report.afr.13cols', + 'wizard.report', 'account_financial_report/report/balance_full_13_cols.rml', - parser=account_balance, - header=False) + parser=account_balance, + header=False)