[PEP8]
parent
5a7af5b6ba
commit
7420790192
|
@ -3,7 +3,7 @@
|
|||
# Module Writen to OpenERP, Open Source Management Solution
|
||||
# Copyright (C) OpenERP Venezuela (<http://openerp.com.ve>).
|
||||
# All Rights Reserved
|
||||
###############Credits######################################################
|
||||
# Credits######################################################
|
||||
# Coded by: Humberto Arocha humberto@openerp.com.ve
|
||||
# Angelica Barrios angelicaisabelb@gmail.com
|
||||
# Jordi Esteve <jesteve@zikzakmedia.com>
|
||||
|
@ -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',
|
||||
'account_financial_report/report/balance_full_5_cols.rml',
|
||||
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.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',
|
||||
'account_financial_report/report/balance_full_qtr_cols.rml',
|
||||
parser=account_balance,
|
||||
header=False)
|
||||
|
||||
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)
|
||||
|
|
Loading…
Reference in New Issue