diff --git a/account_financial_report/report/parser.py b/account_financial_report/report/parser.py index 5b2a6f50..8c3865c6 100644 --- a/account_financial_report/report/parser.py +++ b/account_financial_report/report/parser.py @@ -440,89 +440,89 @@ class account_balance(report_sxw.rml_parse): ############################################################### all_account_period = {} #todas las cuentas por periodo - - for p_act in range(0,13): + if form['columns'] == 'thirteen': + for p_act in range(0,13): - if p_act == 12: - form['periods'] = period_ids - else: - form['periods'] = [period_ids[p_act]] + if p_act == 12: + form['periods'] = period_ids + else: + form['periods'] = [period_ids[p_act]] + + if form['inf_type'] == 'IS': + ctx_to_use = _ctx_end(self.context.copy()) + else: + ctx_i = _ctx_init(self.context.copy()) + ctx_to_use = _ctx_init(self.context.copy()) + + + account_black_ids = account_obj.search(self.cr, self.uid, ([('id', 'in', [i[0] for i in account_ids]),('type','not in',('view','consolidation'))])) + account_black = account_obj.browse(self.cr, self.uid, account_black_ids, ctx_to_use) - if form['inf_type'] == 'IS': - ctx_to_use = _ctx_end(self.context.copy()) - else: - ctx_i = _ctx_init(self.context.copy()) - ctx_to_use = _ctx_init(self.context.copy()) - - - account_black_ids = account_obj.search(self.cr, self.uid, ([('id', 'in', [i[0] for i in account_ids]),('type','not in',('view','consolidation'))])) - account_black = account_obj.browse(self.cr, self.uid, account_black_ids, ctx_to_use) - - if form['inf_type'] == 'BF': - account_black_init = account_obj.browse(self.cr, self.uid, account_black_ids, ctx_i) - - account_not_black_ids = account_obj.search(self.cr, self.uid, ([('id', 'in', [i[0] for i in account_ids]),('type','in',('view','consolidation'))])) - account_not_black = account_obj.browse(self.cr, self.uid, account_not_black_ids, ctx_to_use) - account_not_black.sort(key=lambda x: x.level) - account_not_black.reverse() - account_not_black_ids = [i.id for i in account_not_black] - - #~ Negros - dict_black = {} - for i in account_black: - black_data = {} - black_data['obj'] = i - black_data['debit'] = i.debit - black_data['credit'] = i.credit - black_data['balance'] = i.balance if form['inf_type'] == 'BF': - black_data['balanceinit'] = 0.0 - dict_black[i.id] = black_data - - if form['inf_type'] == 'BF': - for i in account_black_init: - dict_black[i.id]['balanceinit'] = i.balance - ######################### - - - - #~ No negros - dict_not_black = {} - for i in account_not_black: - not_black_data = {} - not_black_data['obj'] = i - not_black_data['debit'] = 0.0 - not_black_data['credit'] = 0.0 - not_black_data['balance'] = 0.0 + account_black_init = account_obj.browse(self.cr, self.uid, account_black_ids, ctx_i) + + account_not_black_ids = account_obj.search(self.cr, self.uid, ([('id', 'in', [i[0] for i in account_ids]),('type','in',('view','consolidation'))])) + account_not_black = account_obj.browse(self.cr, self.uid, account_not_black_ids, ctx_to_use) + account_not_black.sort(key=lambda x: x.level) + account_not_black.reverse() + account_not_black_ids = [i.id for i in account_not_black] + + #~ Negros + dict_black = {} + for i in account_black: + black_data = {} + black_data['obj'] = i + black_data['debit'] = i.debit + black_data['credit'] = i.credit + black_data['balance'] = i.balance + if form['inf_type'] == 'BF': + black_data['balanceinit'] = 0.0 + dict_black[i.id] = black_data + if form['inf_type'] == 'BF': - not_black_data['balanceinit'] = 0.0 - dict_not_black[i.id] = not_black_data - ########################### - - all_account = dict_black.copy() #se hace una copia, porque se modificara - - print "##################" - for i in dict_not_black: - print dict_not_black[i].get('obj').name , dict_not_black[i].get('debit') - - for acc_id in account_not_black_ids: - print dict_not_black[acc_id].get('obj').name - acc_childs = dict_not_black[acc_id].get('obj').child_id - for child_id in acc_childs: - dict_not_black[acc_id]['debit'] += all_account[child_id.id].get('debit') - dict_not_black[acc_id]['credit'] += all_account[child_id.id].get('credit') - dict_not_black[acc_id]['balance'] += all_account[child_id.id].get('balance') + for i in account_black_init: + dict_black[i.id]['balanceinit'] = i.balance + ######################### + + + + #~ No negros + dict_not_black = {} + for i in account_not_black: + not_black_data = {} + not_black_data['obj'] = i + not_black_data['debit'] = 0.0 + not_black_data['credit'] = 0.0 + not_black_data['balance'] = 0.0 if form['inf_type'] == 'BF': - dict_not_black[acc_id]['balanceinit'] += all_account[child_id.id].get('balanceinit') - all_account[acc_id] = dict_not_black[acc_id] + not_black_data['balanceinit'] = 0.0 + dict_not_black[i.id] = not_black_data + ########################### - print "##################" - for i in all_account: - print all_account[i].get('obj').name , all_account[i].get('debit') - if p_act == 12: - all_account_period['all'] = all_account - else: - all_account_period[ period_ids[p_act] ] = all_account + all_account = dict_black.copy() #se hace una copia, porque se modificara + + print "##################" + for i in dict_not_black: + print dict_not_black[i].get('obj').name , dict_not_black[i].get('debit') + + for acc_id in account_not_black_ids: + print dict_not_black[acc_id].get('obj').name + acc_childs = dict_not_black[acc_id].get('obj').child_id + for child_id in acc_childs: + dict_not_black[acc_id]['debit'] += all_account[child_id.id].get('debit') + dict_not_black[acc_id]['credit'] += all_account[child_id.id].get('credit') + dict_not_black[acc_id]['balance'] += all_account[child_id.id].get('balance') + if form['inf_type'] == 'BF': + dict_not_black[acc_id]['balanceinit'] += all_account[child_id.id].get('balanceinit') + all_account[acc_id] = dict_not_black[acc_id] + + print "##################" + for i in all_account: + print all_account[i].get('obj').name , all_account[i].get('debit') + if p_act == 12: + all_account_period['all'] = all_account + else: + all_account_period[ period_ids[p_act] ] = all_account #pdb.set_trace()