[IMP] Se convierte en funcion el codigo conseguir los periodos
parent
18880410e8
commit
c0d3e4687d
|
@ -159,6 +159,10 @@ class account_balance(report_sxw.rml_parse):
|
|||
(account info plus debit/credit/balance in the selected period
|
||||
and the full year)
|
||||
"""
|
||||
account_obj = self.pool.get('account.account')
|
||||
period_obj = self.pool.get('account.period')
|
||||
fiscalyear_obj = self.pool.get('account.fiscalyear')
|
||||
|
||||
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
|
||||
|
@ -180,9 +184,6 @@ class account_balance(report_sxw.rml_parse):
|
|||
|
||||
res = {}
|
||||
result_acc = []
|
||||
account_obj = self.pool.get('account.account')
|
||||
period_obj = self.pool.get('account.period')
|
||||
fiscalyear_obj = self.pool.get('account.fiscalyear')
|
||||
|
||||
if form.get('fiscalyear'):
|
||||
if type(form.get('fiscalyear')) in (list,tuple):
|
||||
|
@ -228,26 +229,28 @@ class account_balance(report_sxw.rml_parse):
|
|||
# Calculate the period Debit/Credit #
|
||||
# (from the selected period or all the non special periods in the fy) #
|
||||
#############################################################################
|
||||
|
||||
ctx_end = self.context.copy()
|
||||
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']:
|
||||
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))])
|
||||
def _ctx_end(ctx):
|
||||
ctx_end = ctx
|
||||
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']:
|
||||
special = self.special_period(form['periods'])
|
||||
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['date_from'] = form['date_from']
|
||||
ctx_end['date_to'] = form['date_to']
|
||||
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))])
|
||||
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['date_from'] = form['date_from']
|
||||
ctx_end['date_to'] = form['date_to']
|
||||
|
||||
return ctx_end.copy()
|
||||
|
||||
def missing_period():
|
||||
ctx_init['fiscalyear'] = fiscalyear_obj.search(self.cr, self.uid, [('date_stop','<',fiscalyear.date_start)],order='date_stop') and \
|
||||
|
@ -260,25 +263,28 @@ class account_balance(report_sxw.rml_parse):
|
|||
# to the end of the year) #
|
||||
#############################################################################
|
||||
|
||||
ctx_init = self.context.copy()
|
||||
ctx_init['filter'] = form.get('filter','all')
|
||||
ctx_init['fiscalyear'] = fiscalyear.id
|
||||
|
||||
if form['filter'] in ['byperiod', 'all']:
|
||||
ctx_init['periods'] = form['periods']
|
||||
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)])
|
||||
if not ctx_init['periods']:
|
||||
missing_period()
|
||||
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'])])
|
||||
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)])
|
||||
def _ctx_init(ctx):
|
||||
ctx_init = self.context.copy()
|
||||
ctx_init['filter'] = form.get('filter','all')
|
||||
ctx_init['fiscalyear'] = fiscalyear.id
|
||||
|
||||
if form['filter'] in ['byperiod', 'all']:
|
||||
ctx_init['periods'] = form['periods']
|
||||
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)])
|
||||
if not ctx_init['periods']:
|
||||
missing_period()
|
||||
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'])])
|
||||
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)])
|
||||
|
||||
return ctx_init.copy()
|
||||
|
||||
def z(n):
|
||||
return abs(n) < 0.005 and 0.0 or n
|
||||
|
||||
|
@ -287,6 +293,9 @@ class account_balance(report_sxw.rml_parse):
|
|||
#
|
||||
tot = {}
|
||||
|
||||
ctx_init = _ctx_init(self.context.copy())
|
||||
ctx_end = _ctx_end(self.context.copy())
|
||||
|
||||
for aa_id in account_ids:
|
||||
id = aa_id[0]
|
||||
|
||||
|
@ -307,8 +316,10 @@ class account_balance(report_sxw.rml_parse):
|
|||
}
|
||||
|
||||
if form['columns'] != 'thirteen':
|
||||
|
||||
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])
|
||||
b = z(i+d-c)
|
||||
res.update({
|
||||
|
@ -318,6 +329,14 @@ class account_balance(report_sxw.rml_parse):
|
|||
'balance': self.exchange(b),
|
||||
})
|
||||
|
||||
if form['columns'] == 'thirteen':
|
||||
period_ids = period_obj.search(self.cr, self.uid, [('fiscalyear_id','=',fiscalyear.id),('special','=',False)],order='date_start asc')
|
||||
print 'TODOS LOS PERIODS ',period_ids
|
||||
pass
|
||||
for i in range(12):
|
||||
pass
|
||||
|
||||
|
||||
#
|
||||
# Check whether we must include this line in the report or not
|
||||
#
|
||||
|
|
Loading…
Reference in New Issue