Browse Source

[IMP] some PEP8

pull/689/head
Lorenzo Battistini 11 years ago
committed by Nikos Tsirintanis
parent
commit
9bfa1f2e20
  1. 12
      account_financial_report_horizontal/__openerp__.py
  2. 189
      account_financial_report_horizontal/report/account_balance_sheet.py
  3. 179
      account_financial_report_horizontal/report/account_profit_loss.py
  4. 25
      account_financial_report_horizontal/report/common_report_header.py
  5. 1
      account_financial_report_horizontal/wizard/__init__.py
  6. 7
      account_financial_report_horizontal/wizard/account_report_balance_sheet.py
  7. 121
      account_financial_report_horizontal/wizard/account_report_common.py
  8. 15
      account_financial_report_horizontal/wizard/account_report_common_account.py
  9. 5
      account_financial_report_horizontal/wizard/account_report_profit_loss.py

12
account_financial_report_horizontal/__openerp__.py

@ -21,9 +21,9 @@
# #
############################################################################## ##############################################################################
{ {
"name" : "Accounting Financial Reports Horizontal",
"version" : "0.2",
"author" : ["Therp BV", "Agile Business Group"],
"name": "Accounting Financial Reports Horizontal",
"version": "0.2",
"author": ["Therp BV", "Agile Business Group"],
"category": 'Accounting & Finance', "category": 'Accounting & Finance',
'complexity': "normal", 'complexity': "normal",
"description": """ "description": """
@ -31,8 +31,8 @@ This is a port to OpenERP 7.0 of the horizontal financial reports
'Balance sheet' and 'Profit and Loss' as found in OpenERP 6.0. 'Balance sheet' and 'Profit and Loss' as found in OpenERP 6.0.
""", """,
'website': 'https://launchpad.net/account-financial-report', 'website': 'https://launchpad.net/account-financial-report',
'images' : [],
"depends" : ["account"],
'images': [],
"depends": ["account"],
'data': [ 'data': [
'menu.xml', 'menu.xml',
'account_report.xml', 'account_report.xml',
@ -41,7 +41,7 @@ This is a port to OpenERP 7.0 of the horizontal financial reports
'wizard/account_report_profit_loss_view.xml', 'wizard/account_report_profit_loss_view.xml',
], ],
'demo': [], 'demo': [],
'test': [ ],
'test': [],
'installable': True, 'installable': True,
'active': False, 'active': False,
} }

189
account_financial_report_horizontal/report/account_balance_sheet.py

@ -26,14 +26,21 @@ import time
import pooler import pooler
from report import report_sxw from report import report_sxw
from openerp.addons.account_financial_report_horizontal.report import account_profit_loss
from openerp.addons.account_financial_report_horizontal.report import (
account_profit_loss
)
from common_report_header import common_report_header from common_report_header import common_report_header
from tools.translate import _ from tools.translate import _
class report_balancesheet_horizontal(report_sxw.rml_parse, common_report_header):
class report_balancesheet_horizontal(
report_sxw.rml_parse, common_report_header
):
def __init__(self, cr, uid, name, context=None): def __init__(self, cr, uid, name, context=None):
super(report_balancesheet_horizontal, self).__init__(cr, uid, name, context=context)
self.obj_pl = account_profit_loss.report_pl_account_horizontal(cr, uid, name, context=context)
super(report_balancesheet_horizontal, self).__init__(
cr, uid, name, context=context)
self.obj_pl = account_profit_loss.report_pl_account_horizontal(
cr, uid, name, context=context)
self.result_sum_dr = 0.0 self.result_sum_dr = 0.0
self.result_sum_cr = 0.0 self.result_sum_cr = 0.0
self.result = {} self.result = {}
@ -45,16 +52,16 @@ class report_balancesheet_horizontal(report_sxw.rml_parse, common_report_header)
'get_lines_another': self.get_lines_another, 'get_lines_another': self.get_lines_another,
'sum_dr': self.sum_dr, 'sum_dr': self.sum_dr,
'sum_cr': self.sum_cr, 'sum_cr': self.sum_cr,
'get_data':self.get_data,
'get_pl_balance':self.get_pl_balance,
'get_data': self.get_data,
'get_pl_balance': self.get_pl_balance,
'get_fiscalyear': self._get_fiscalyear, 'get_fiscalyear': self._get_fiscalyear,
'get_account': self._get_account, 'get_account': self._get_account,
'get_start_period': self.get_start_period, 'get_start_period': self.get_start_period,
'get_end_period': self.get_end_period, 'get_end_period': self.get_end_period,
'get_sortby': self._get_sortby, 'get_sortby': self._get_sortby,
'get_filter': self._get_filter, 'get_filter': self._get_filter,
'get_start_date':self._get_start_date,
'get_end_date':self._get_end_date,
'get_start_date': self._get_start_date,
'get_end_date': self._get_end_date,
'get_target_move': self._get_target_move, 'get_target_move': self._get_target_move,
}) })
self.context = context self.context = context
@ -62,11 +69,19 @@ class report_balancesheet_horizontal(report_sxw.rml_parse, common_report_header)
def set_context(self, objects, data, ids, report_type=None): def set_context(self, objects, data, ids, report_type=None):
new_ids = ids new_ids = ids
if (data['model'] == 'ir.ui.menu'): if (data['model'] == 'ir.ui.menu'):
new_ids = 'chart_account_id' in data['form'] and data['form']['chart_account_id'] and [data['form']['chart_account_id'][0]] or []
objects = self.pool.get('account.account').browse(self.cr, self.uid, new_ids)
lang_dict = self.pool.get('res.users').read(self.cr,self.uid,self.uid,['context_lang'])
new_ids = 'chart_account_id' in data['form'] and data[
'form'
]['chart_account_id'] and [data[
'form'
]['chart_account_id'][0]] or []
objects = self.pool.get('account.account').browse(
self.cr, self.uid, new_ids)
lang_dict = self.pool.get('res.users').read(
self.cr, self.uid, self.uid, ['context_lang'])
data['lang'] = lang_dict.get('context_lang') or False data['lang'] = lang_dict.get('context_lang') or False
return super(report_balancesheet_horizontal, self).set_context(objects, data, new_ids, report_type=report_type)
return super(
report_balancesheet_horizontal, self
).set_context(objects, data, new_ids, report_type=report_type)
def sum_dr(self): def sum_dr(self):
if self.res_bl['type'] == _('Net Profit'): if self.res_bl['type'] == _('Net Profit'):
@ -81,7 +96,7 @@ class report_balancesheet_horizontal(report_sxw.rml_parse, common_report_header)
def get_pl_balance(self): def get_pl_balance(self):
return self.res_bl return self.res_bl
def get_data(self,data):
def get_data(self, data):
cr, uid = self.cr, self.uid cr, uid = self.cr, self.uid
db_pool = pooler.get_pool(self.cr.dbname) db_pool = pooler.get_pool(self.cr.dbname)
@ -106,7 +121,7 @@ class report_balancesheet_horizontal(report_sxw.rml_parse, common_report_header)
ctx['periods'] = data['form'].get('periods', False) ctx['periods'] = data['form'].get('periods', False)
elif data['form']['filter'] == 'filter_date': elif data['form']['filter'] == 'filter_date':
ctx['date_from'] = data['form'].get('date_from', False) ctx['date_from'] = data['form'].get('date_from', False)
ctx['date_to'] = data['form'].get('date_to', False)
ctx['date_to'] = data['form'].get('date_to', False)
ctx['state'] = data['form'].get('target_move', 'all') ctx['state'] = data['form'].get('target_move', 'all')
cal_list = {} cal_list = {}
pl_dict = {} pl_dict = {}
@ -114,7 +129,8 @@ class report_balancesheet_horizontal(report_sxw.rml_parse, common_report_header)
account_id = data['form'].get('chart_account_id', False) account_id = data['form'].get('chart_account_id', False)
if account_id: if account_id:
account_id = account_id[0] account_id = account_id[0]
account_ids = account_pool._get_children_and_consol(cr, uid, account_id, context=ctx)
account_ids = account_pool._get_children_and_consol(
cr, uid, account_id, context=ctx)
accounts = account_pool.browse(cr, uid, account_ids, context=ctx) accounts = account_pool.browse(cr, uid, account_ids, context=ctx)
if not self.res_bl: if not self.res_bl:
@ -125,41 +141,66 @@ class report_balancesheet_horizontal(report_sxw.rml_parse, common_report_header)
self.res_bl['type'] = _('Net Profit') self.res_bl['type'] = _('Net Profit')
else: else:
self.res_bl['type'] = _('Net Loss') self.res_bl['type'] = _('Net Loss')
pl_dict = {
pl_dict = {
'code': self.res_bl['type'], 'code': self.res_bl['type'],
'name': self.res_bl['type'], 'name': self.res_bl['type'],
'level': False, 'level': False,
'balance':self.res_bl['balance'],
'type':self.res_bl['type'],
'balance': self.res_bl['balance'],
'type': self.res_bl['type'],
} }
for typ in types: for typ in types:
accounts_temp = [] accounts_temp = []
for account in accounts: for account in accounts:
if (account.user_type.report_type) and (account.user_type.report_type == typ):
if (account.user_type.report_type) and (
account.user_type.report_type == typ
):
account_dict = { account_dict = {
'id': account.id, 'id': account.id,
'code': account.code, 'code': account.code,
'name': account.name, 'name': account.name,
'level': account.level, 'level': account.level,
'balance': (account.balance and typ == 'liability' and -1 or 1 ) * account.balance,
'balance': (
account.balance and typ == 'liability' and -1 or 1
) * account.balance,
'type': account.type, 'type': account.type,
} }
currency = account.currency_id and account.currency_id or account.company_id.currency_id
if typ == 'liability' and account.type <> 'view' and (account.debit <> account.credit):
currency = (
account.currency_id and account.currency_id
or account.company_id.currency_id
)
if typ == 'liability' and account.type != 'view' and (
account.debit != account.credit
):
self.result_sum_dr += account_dict['balance'] self.result_sum_dr += account_dict['balance']
if typ == 'asset' and account.type <> 'view' and (account.debit <> account.credit):
if typ == 'asset' and account.type != 'view' and (
account.debit != account.credit
):
self.result_sum_cr += account_dict['balance'] self.result_sum_cr += account_dict['balance']
if data['form']['display_account'] == 'bal_movement': if data['form']['display_account'] == 'bal_movement':
if (not currency_pool.is_zero(self.cr, self.uid, currency, account.credit)) or (not currency_pool.is_zero(self.cr, self.uid, currency, account.debit)) or (not currency_pool.is_zero(self.cr, self.uid, currency, account.balance)):
if (
not currency_pool.is_zero(
self.cr, self.uid, currency, account.credit
)) or (
not currency_pool.is_zero(
self.cr, self.uid, currency, account.debit
)
) or (
not currency_pool.is_zero(
self.cr, self.uid, currency,
account.balance
)
):
accounts_temp.append(account_dict) accounts_temp.append(account_dict)
elif data['form']['display_account'] == 'bal_solde': elif data['form']['display_account'] == 'bal_solde':
if not currency_pool.is_zero(self.cr, self.uid, currency, account.balance):
if not currency_pool.is_zero(
self.cr, self.uid, currency, account.balance
):
accounts_temp.append(account_dict) accounts_temp.append(account_dict)
else: else:
accounts_temp.append(account_dict) accounts_temp.append(account_dict)
self.result[typ] = accounts_temp self.result[typ] = accounts_temp
cal_list[typ]=self.result[typ]
cal_list[typ] = self.result[typ]
if pl_dict['code'] == _('Net Loss'): if pl_dict['code'] == _('Net Loss'):
self.result['asset'].append(pl_dict) self.result['asset'].append(pl_dict)
@ -168,49 +209,53 @@ class report_balancesheet_horizontal(report_sxw.rml_parse, common_report_header)
if cal_list: if cal_list:
temp = {} temp = {}
for i in range(0,max(len(cal_list['liability']),len(cal_list['asset']))):
if i < len(cal_list['liability']) and i < len(cal_list['asset']):
temp={
'code': cal_list['liability'][i]['code'],
'name': cal_list['liability'][i]['name'],
'level': cal_list['liability'][i]['level'],
'balance':cal_list['liability'][i]['balance'],
'type':cal_list['liability'][i]['type'],
'code1': cal_list['asset'][i]['code'],
'name1': cal_list['asset'][i]['name'],
'level1': cal_list['asset'][i]['level'],
'balance1':cal_list['asset'][i]['balance'],
'type1':cal_list['asset'][i]['type'],
}
for i in range(
0, max(len(cal_list['liability']), len(cal_list['asset']))
):
if i < len(cal_list['liability']) and i < len(
cal_list['asset']
):
temp = {
'code': cal_list['liability'][i]['code'],
'name': cal_list['liability'][i]['name'],
'level': cal_list['liability'][i]['level'],
'balance': cal_list['liability'][i]['balance'],
'type': cal_list['liability'][i]['type'],
'code1': cal_list['asset'][i]['code'],
'name1': cal_list['asset'][i]['name'],
'level1': cal_list['asset'][i]['level'],
'balance1': cal_list['asset'][i]['balance'],
'type1': cal_list['asset'][i]['type'],
}
self.result_temp.append(temp) self.result_temp.append(temp)
else: else:
if i < len(cal_list['asset']): if i < len(cal_list['asset']):
temp={
'code': '',
'name': '',
'level': False,
'balance':False,
'type':False,
'code1': cal_list['asset'][i]['code'],
'name1': cal_list['asset'][i]['name'],
'level1': cal_list['asset'][i]['level'],
'balance1':cal_list['asset'][i]['balance'],
'type1':cal_list['asset'][i]['type'],
}
temp = {
'code': '',
'name': '',
'level': False,
'balance': False,
'type': False,
'code1': cal_list['asset'][i]['code'],
'name1': cal_list['asset'][i]['name'],
'level1': cal_list['asset'][i]['level'],
'balance1': cal_list['asset'][i]['balance'],
'type1': cal_list['asset'][i]['type'],
}
self.result_temp.append(temp) self.result_temp.append(temp)
if i < len(cal_list['liability']):
temp={
'code': cal_list['liability'][i]['code'],
'name': cal_list['liability'][i]['name'],
'level': cal_list['liability'][i]['level'],
'balance':cal_list['liability'][i]['balance'],
'type':cal_list['liability'][i]['type'],
'code1': '',
'name1': '',
'level1': False,
'balance1':False,
'type1':False,
}
if i < len(cal_list['liability']):
temp = {
'code': cal_list['liability'][i]['code'],
'name': cal_list['liability'][i]['name'],
'level': cal_list['liability'][i]['level'],
'balance': cal_list['liability'][i]['balance'],
'type': cal_list['liability'][i]['type'],
'code1': '',
'name1': '',
'level1': False,
'balance1': False,
'type1': False,
}
self.result_temp.append(temp) self.result_temp.append(temp)
return None return None
@ -220,12 +265,18 @@ class report_balancesheet_horizontal(report_sxw.rml_parse, common_report_header)
def get_lines_another(self, group): def get_lines_another(self, group):
return self.result.get(group, []) return self.result.get(group, [])
report_sxw.report_sxw('report.account.balancesheet.horizontal', 'account.account',
'addons/account_financial_report_horizontal/report/account_balance_sheet_horizontal.rml',parser=report_balancesheet_horizontal,
report_sxw.report_sxw(
'report.account.balancesheet.horizontal', 'account.account',
'addons/account_financial_report_horizontal/report/'
'account_balance_sheet_horizontal.rml',
parser=report_balancesheet_horizontal,
header='internal landscape') header='internal landscape')
report_sxw.report_sxw('report.account.balancesheet', 'account.account',
'addons/account_financial_report_horizontal/report/account_balance_sheet.rml',parser=report_balancesheet_horizontal,
report_sxw.report_sxw(
'report.account.balancesheet', 'account.account',
'addons/account_financial_report_horizontal/report/'
'account_balance_sheet.rml',
parser=report_balancesheet_horizontal,
header='internal') header='internal')
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

179
account_financial_report_horizontal/report/account_profit_loss.py

@ -27,16 +27,18 @@ from report import report_sxw
from common_report_header import common_report_header from common_report_header import common_report_header
from tools.translate import _ from tools.translate import _
class report_pl_account_horizontal(report_sxw.rml_parse, common_report_header): class report_pl_account_horizontal(report_sxw.rml_parse, common_report_header):
def __init__(self, cr, uid, name, context=None): def __init__(self, cr, uid, name, context=None):
super(report_pl_account_horizontal, self).__init__(cr, uid, name, context=context)
super(report_pl_account_horizontal, self).__init__(
cr, uid, name, context=context)
self.result_sum_dr = 0.0 self.result_sum_dr = 0.0
self.result_sum_cr = 0.0 self.result_sum_cr = 0.0
self.res_pl = {} self.res_pl = {}
self.result = {} self.result = {}
self.result_temp = [] self.result_temp = []
self.localcontext.update( {
self.localcontext.update({
'time': time, 'time': time,
'get_lines': self.get_lines, 'get_lines': self.get_lines,
'get_lines_another': self.get_lines_another, 'get_lines_another': self.get_lines_another,
@ -50,22 +52,26 @@ class report_pl_account_horizontal(report_sxw.rml_parse, common_report_header):
'get_end_period': self.get_end_period, 'get_end_period': self.get_end_period,
'get_sortby': self._get_sortby, 'get_sortby': self._get_sortby,
'get_filter': self._get_filter, 'get_filter': self._get_filter,
'get_start_date':self._get_start_date,
'get_end_date':self._get_end_date,
'get_start_date': self._get_start_date,
'get_end_date': self._get_end_date,
'get_target_move': self._get_target_move, 'get_target_move': self._get_target_move,
'get_trans':self._get_trans
'get_trans': self._get_trans
}) })
self.context = context self.context = context
def set_context(self, objects, data, ids, report_type=None): def set_context(self, objects, data, ids, report_type=None):
new_ids = ids new_ids = ids
if (data['model'] == 'ir.ui.menu'): if (data['model'] == 'ir.ui.menu'):
new_ids = 'chart_account_id' in data['form'] and data['form']['chart_account_id'] and [data['form']['chart_account_id'][0]] or []
objects = self.pool.get('account.account').browse(self.cr, self.uid, new_ids)
lang_dict = self.pool.get('res.users').read(self.cr,self.uid,self.uid,['context_lang'])
new_ids = 'chart_account_id' in data['form'] and data['form'][
'chart_account_id'] and [data['form'][
'chart_account_id'][0]] or []
objects = self.pool.get('account.account').browse(
self.cr, self.uid, new_ids)
lang_dict = self.pool.get('res.users').read(
self.cr, self.uid, self.uid, ['context_lang'])
data['lang'] = lang_dict.get('context_lang') or False data['lang'] = lang_dict.get('context_lang') or False
return super(report_pl_account_horizontal, self).set_context(objects, data, new_ids, report_type=report_type)
return super(report_pl_account_horizontal, self).set_context(
objects, data, new_ids, report_type=report_type)
def final_result(self): def final_result(self):
return self.res_pl return self.res_pl
@ -89,7 +95,8 @@ class report_pl_account_horizontal(report_sxw.rml_parse, common_report_header):
'code': account.code, 'code': account.code,
'name': account.name, 'name': account.name,
'level': account.level, 'level': account.level,
'balance': account.balance and (account_type == 'income' and -1 or 1) * account.balance,
'balance': account.balance and (
account_type == 'income' and -1 or 1) * account.balance,
'type': account.type, 'type': account.type,
} }
@ -102,7 +109,7 @@ class report_pl_account_horizontal(report_sxw.rml_parse, common_report_header):
types = [ types = [
'expense', 'expense',
'income' 'income'
]
]
ctx = self.context.copy() ctx = self.context.copy()
ctx['fiscalyear'] = data['form'].get('fiscalyear_id', False) ctx['fiscalyear'] = data['form'].get('fiscalyear_id', False)
@ -110,88 +117,116 @@ class report_pl_account_horizontal(report_sxw.rml_parse, common_report_header):
ctx['fiscalyear'] = ctx['fiscalyear'][0] ctx['fiscalyear'] = ctx['fiscalyear'][0]
if data['form']['filter'] == 'filter_period': if data['form']['filter'] == 'filter_period':
ctx['periods'] = data['form'].get('periods', False)
ctx['periods'] = data['form'].get('periods', False)
elif data['form']['filter'] == 'filter_date': elif data['form']['filter'] == 'filter_date':
ctx['date_from'] = data['form'].get('date_from', False) ctx['date_from'] = data['form'].get('date_from', False)
ctx['date_to'] = data['form'].get('date_to', False)
ctx['date_to'] = data['form'].get('date_to', False)
ctx['state'] = data['form'].get('target_move', 'all') ctx['state'] = data['form'].get('target_move', 'all')
cal_list = {} cal_list = {}
account_id = data['form'].get('chart_account_id', False) account_id = data['form'].get('chart_account_id', False)
if account_id: if account_id:
account_id = account_id[0] account_id = account_id[0]
account_ids = account_pool._get_children_and_consol(cr, uid, account_id, context=ctx)
account_ids = account_pool._get_children_and_consol(
cr, uid, account_id, context=ctx)
accounts = account_pool.browse(cr, uid, account_ids, context=ctx) accounts = account_pool.browse(cr, uid, account_ids, context=ctx)
for typ in types: for typ in types:
accounts_temp = [] accounts_temp = []
for account in accounts: for account in accounts:
if (account.user_type.report_type) and (account.user_type.report_type == typ):
currency = account.currency_id and account.currency_id or account.company_id.currency_id
if typ == 'expense' and account.type <> 'view' and (account.debit <> account.credit):
if (account.user_type.report_type) and (
account.user_type.report_type == typ
):
currency = (
account.currency_id and account.currency_id
or account.company_id.currency_id)
if typ == 'expense' and account.type != 'view' and (
account.debit != account.credit
):
self.result_sum_dr += account.debit - account.credit self.result_sum_dr += account.debit - account.credit
if typ == 'income' and account.type <> 'view' and (account.debit <> account.credit):
if typ == 'income' and account.type != 'view' and (
account.debit != account.credit
):
self.result_sum_cr += account.credit - account.debit self.result_sum_cr += account.credit - account.debit
if data['form']['display_account'] == 'bal_movement': if data['form']['display_account'] == 'bal_movement':
if (not currency_pool.is_zero(self.cr, self.uid, currency, account.credit)) or (not currency_pool.is_zero(self.cr, self.uid, currency, account.debit)) or (not currency_pool.is_zero(self.cr, self.uid, currency, account.balance)):
accounts_temp.append(get_account_repr(account, typ))
if (
not currency_pool.is_zero(
self.cr, self.uid, currency, account.credit)
) or (
not currency_pool.is_zero(
self.cr, self.uid, currency, account.debit)
) or (
not currency_pool.is_zero(
self.cr, self.uid, currency, account.balance)
):
accounts_temp.append(
get_account_repr(account, typ))
elif data['form']['display_account'] == 'bal_solde': elif data['form']['display_account'] == 'bal_solde':
if not currency_pool.is_zero(self.cr, self.uid, currency, account.balance):
accounts_temp.append(get_account_repr(account, typ))
if not currency_pool.is_zero(
self.cr, self.uid, currency, account.balance
):
accounts_temp.append(
get_account_repr(account, typ))
else: else:
accounts_temp.append(get_account_repr(account, typ)) accounts_temp.append(get_account_repr(account, typ))
if self.result_sum_dr > self.result_sum_cr: if self.result_sum_dr > self.result_sum_cr:
self.res_pl['type'] = _('Net Loss') self.res_pl['type'] = _('Net Loss')
self.res_pl['balance'] = (self.result_sum_dr - self.result_sum_cr)
self.res_pl['balance'] = (
self.result_sum_dr - self.result_sum_cr)
else: else:
self.res_pl['type'] = _('Net Profit') self.res_pl['type'] = _('Net Profit')
self.res_pl['balance'] = (self.result_sum_cr - self.result_sum_dr)
self.res_pl['balance'] = (
self.result_sum_cr - self.result_sum_dr)
self.result[typ] = accounts_temp self.result[typ] = accounts_temp
cal_list[typ] = self.result[typ] cal_list[typ] = self.result[typ]
if cal_list: if cal_list:
temp = {} temp = {}
for i in range(0,max(len(cal_list['expense']),len(cal_list['income']))):
if i < len(cal_list['expense']) and i < len(cal_list['income']):
temp={
'code': cal_list['expense'][i]['code'],
'name': cal_list['expense'][i]['name'],
'level': cal_list['expense'][i]['level'],
'balance':cal_list['expense'][i]['balance'],
'type':cal_list['expense'][i]['type'],
'code1': cal_list['income'][i]['code'],
'name1': cal_list['income'][i]['name'],
'level1': cal_list['income'][i]['level'],
'balance1': cal_list['income'][i]['balance'],
'type1':cal_list['income'][i]['type'],
}
for i in range(
0, max(len(cal_list['expense']), len(cal_list['income']))
):
if i < len(cal_list['expense']) and i < len(
cal_list['income']
):
temp = {
'code': cal_list['expense'][i]['code'],
'name': cal_list['expense'][i]['name'],
'level': cal_list['expense'][i]['level'],
'balance': cal_list['expense'][i]['balance'],
'type': cal_list['expense'][i]['type'],
'code1': cal_list['income'][i]['code'],
'name1': cal_list['income'][i]['name'],
'level1': cal_list['income'][i]['level'],
'balance1': cal_list['income'][i]['balance'],
'type1': cal_list['income'][i]['type'],
}
self.result_temp.append(temp) self.result_temp.append(temp)
else: else:
if i < len(cal_list['income']): if i < len(cal_list['income']):
temp={
'code': '',
'name': '',
'level': False,
'balance':False,
'type':False,
'code1': cal_list['income'][i]['code'],
'name1': cal_list['income'][i]['name'],
'level1': cal_list['income'][i]['level'],
'balance1': cal_list['income'][i]['balance'],
'type1':cal_list['income'][i]['type'],
}
temp = {
'code': '',
'name': '',
'level': False,
'balance': False,
'type': False,
'code1': cal_list['income'][i]['code'],
'name1': cal_list['income'][i]['name'],
'level1': cal_list['income'][i]['level'],
'balance1': cal_list['income'][i]['balance'],
'type1': cal_list['income'][i]['type'],
}
self.result_temp.append(temp) self.result_temp.append(temp)
if i < len(cal_list['expense']):
temp={
'code': cal_list['expense'][i]['code'],
'name': cal_list['expense'][i]['name'],
'level': cal_list['expense'][i]['level'],
'balance': cal_list['expense'][i]['balance'],
'type': cal_list['expense'][i]['type'],
'code1': '',
'name1': '',
'level1': False,
'balance1':False,
'type1':False,
}
if i < len(cal_list['expense']):
temp = {
'code': cal_list['expense'][i]['code'],
'name': cal_list['expense'][i]['name'],
'level': cal_list['expense'][i]['level'],
'balance': cal_list['expense'][i]['balance'],
'type': cal_list['expense'][i]['type'],
'code1': '',
'name1': '',
'level1': False,
'balance1': False,
'type1': False,
}
self.result_temp.append(temp) self.result_temp.append(temp)
return None return None
@ -201,10 +236,16 @@ class report_pl_account_horizontal(report_sxw.rml_parse, common_report_header):
def get_lines_another(self, group): def get_lines_another(self, group):
return self.result.get(group, []) return self.result.get(group, [])
report_sxw.report_sxw('report.account.profit_horizontal', 'account.account',
'addons/account_financial_report_horizontal/report/account_profit_horizontal.rml',parser=report_pl_account_horizontal, header='internal landscape')
report_sxw.report_sxw('report.account.profit_loss', 'account.account',
'addons/account_financial_report_horizontal/report/account_profit_loss.rml',parser=report_pl_account_horizontal, header='internal')
report_sxw.report_sxw(
'report.account.profit_horizontal', 'account.account',
'addons/account_financial_report_horizontal/report/'
'account_profit_horizontal.rml',
parser=report_pl_account_horizontal, header='internal landscape')
report_sxw.report_sxw(
'report.account.profit_loss', 'account.account',
'addons/account_financial_report_horizontal/report/'
'account_profit_loss.rml',
parser=report_pl_account_horizontal, header='internal')
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

25
account_financial_report_horizontal/report/common_report_header.py

@ -22,6 +22,7 @@
import pooler import pooler
from tools.translate import _ from tools.translate import _
class common_report_header(object): class common_report_header(object):
def _get_start_date(self, data): def _get_start_date(self, data):
@ -43,17 +44,25 @@ class common_report_header(object):
def get_start_period(self, data): def get_start_period(self, data):
if data.get('form', False) and data['form'].get('period_from', False): 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'][0]).name
return pooler.get_pool(self.cr.dbname).get(
'account.period').browse(self.cr, self.uid, data[
'form']['period_from'][0]).name
return '' return ''
def get_end_period(self, data): def get_end_period(self, data):
if data.get('form', False) and data['form'].get('period_to', False): 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'][0]).name
return pooler.get_pool(self.cr.dbname).get(
'account.period').browse(self.cr, self.uid, data[
'form']['period_to'][0]).name
return '' return ''
def _get_account(self, data): 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'][0]).name
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'][0]).name
return '' return ''
def _get_sortby(self, data): def _get_sortby(self, data):
@ -68,6 +77,10 @@ class common_report_header(object):
return _('No Filter') return _('No Filter')
def _get_fiscalyear(self, data): def _get_fiscalyear(self, data):
if data.get('form', False) and data['form'].get('fiscalyear_id', False):
return pooler.get_pool(self.cr.dbname).get('account.fiscalyear').browse(self.cr, self.uid, data['form']['fiscalyear_id'][0]).name
if data.get('form', False) and data['form'].get(
'fiscalyear_id', False
):
return pooler.get_pool(self.cr.dbname).get(
'account.fiscalyear').browse(self.cr, self.uid, data[
'form']['fiscalyear_id'][0]).name
return '' return ''

1
account_financial_report_horizontal/wizard/__init__.py

@ -2,4 +2,3 @@ import account_report_common
import account_report_common_account import account_report_common_account
import account_report_balance_sheet import account_report_balance_sheet
import account_report_profit_loss import account_report_profit_loss

7
account_financial_report_horizontal/wizard/account_report_balance_sheet.py

@ -22,11 +22,12 @@
############################################################################## ##############################################################################
from osv import orm, fields from osv import orm, fields
from tools.translate import _
class account_bs_report(orm.TransientModel): class account_bs_report(orm.TransientModel):
""" """
This wizard will provide the account balance sheet report by periods, between any two dates.
This wizard will provide the account balance sheet report by periods,
between any two dates.
""" """
_name = 'account.bs.report' _name = 'account.bs.report'
_inherit = "account_financial_report_horizontal.common.account.report" _inherit = "account_financial_report_horizontal.common.account.report"
@ -36,7 +37,7 @@ class account_bs_report(orm.TransientModel):
'display_type': fields.boolean("Landscape Mode"), 'display_type': fields.boolean("Landscape Mode"),
} }
_defaults={
_defaults = {
'display_type': True, 'display_type': True,
} }

121
account_financial_report_horizontal/wizard/account_report_common.py

@ -27,102 +27,151 @@ from lxml import etree
from osv import fields, orm from osv import fields, orm
from tools.translate import _ from tools.translate import _
class account_common_report(orm.TransientModel): class account_common_report(orm.TransientModel):
_name = "account_financial_report_horizontal.common.report" _name = "account_financial_report_horizontal.common.report"
_description = "Account Common Report" _description = "Account Common Report"
_columns = { _columns = {
'chart_account_id': fields.many2one('account.account', 'Chart of account', help='Select Charts of Accounts', required=True, domain = [('parent_id','=',False)]),
'fiscalyear_id': fields.many2one('account.fiscalyear', 'Fiscal year', help='Keep empty for all open fiscal year'),
'filter': fields.selection([('filter_no', 'No Filters'), ('filter_date', 'Date'), ('filter_period', 'Periods')], "Filter by", required=True),
'chart_account_id': fields.many2one(
'account.account', 'Chart of account',
help='Select Charts of Accounts',
required=True, domain=[('parent_id', '=', False)]),
'fiscalyear_id': fields.many2one(
'account.fiscalyear', 'Fiscal year',
help='Keep empty for all open fiscal year'),
'filter': fields.selection([
('filter_no', 'No Filters'), ('filter_date', 'Date'),
('filter_period', 'Periods')
],
"Filter by", required=True),
'period_from': fields.many2one('account.period', 'Start period'), 'period_from': fields.many2one('account.period', 'Start period'),
'period_to': fields.many2one('account.period', 'End period'), 'period_to': fields.many2one('account.period', 'End period'),
'date_from': fields.date("Start Date"), 'date_from': fields.date("Start Date"),
'date_to': fields.date("End Date"), 'date_to': fields.date("End Date"),
'target_move': fields.selection([('posted', 'All Posted Entries'),
('all', 'All Entries'),
], 'Target Moves', required=True),
'target_move': fields.selection([
('posted', 'All Posted Entries'),
('all', 'All Entries'),
], 'Target Moves', required=True
),
} }
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
def fields_view_get(
self, cr, uid, view_id=None, view_type='form', context=None,
toolbar=False, submenu=False
):
if context is None: if context is None:
context = {} context = {}
res = super(account_common_report, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=False)
res = super(account_common_report, self).fields_view_get(
cr, uid, view_id=view_id, view_type=view_type, context=context,
toolbar=toolbar, submenu=False)
if context.get('active_model', False) == 'account.account' and view_id: if context.get('active_model', False) == 'account.account' and view_id:
doc = etree.XML(res['arch']) doc = etree.XML(res['arch'])
nodes = doc.xpath("//field[@name='chart_account_id']") nodes = doc.xpath("//field[@name='chart_account_id']")
for node in nodes: for node in nodes:
node.set('readonly', '1') node.set('readonly', '1')
node.set('help', 'If you print the report from Account list/form view it will not consider Charts of account')
node.set(
'help',
'If you print the report from Account list/form view '
'it will not consider Charts of account')
res['arch'] = etree.tostring(doc) res['arch'] = etree.tostring(doc)
return res return res
def onchange_filter(self, cr, uid, ids, filter='filter_no', fiscalyear_id=False, context=None):
def onchange_filter(
self, cr, uid, ids, filter='filter_no', fiscalyear_id=False,
context=None
):
res = {} res = {}
if filter == 'filter_no': if filter == 'filter_no':
res['value'] = {'period_from': False, 'period_to': False, 'date_from': False ,'date_to': False}
res['value'] = {
'period_from': False, 'period_to': False,
'date_from': False, 'date_to': False
}
if filter == 'filter_date': if filter == 'filter_date':
res['value'] = {'period_from': False, 'period_to': False, 'date_from': time.strftime('%Y-01-01'), 'date_to': time.strftime('%Y-%m-%d')}
res['value'] = {
'period_from': False, 'period_to': False,
'date_from': time.strftime('%Y-01-01'),
'date_to': time.strftime('%Y-%m-%d')
}
if filter == 'filter_period' and fiscalyear_id: if filter == 'filter_period' and fiscalyear_id:
start_period = end_period = False start_period = end_period = False
cr.execute(''' cr.execute('''
SELECT * FROM (SELECT p.id SELECT * FROM (SELECT p.id
FROM account_period p FROM account_period p
LEFT JOIN account_fiscalyear f ON (p.fiscalyear_id = f.id)
LEFT JOIN account_fiscalyear f
ON (p.fiscalyear_id = f.id)
WHERE f.id = %s WHERE f.id = %s
ORDER BY p.date_start ASC ORDER BY p.date_start ASC
LIMIT 1) AS period_start LIMIT 1) AS period_start
UNION UNION
SELECT * FROM (SELECT p.id SELECT * FROM (SELECT p.id
FROM account_period p FROM account_period p
LEFT JOIN account_fiscalyear f ON (p.fiscalyear_id = f.id)
LEFT JOIN account_fiscalyear f
ON (p.fiscalyear_id = f.id)
WHERE f.id = %s WHERE f.id = %s
AND p.date_start < NOW() AND p.date_start < NOW()
ORDER BY p.date_stop DESC ORDER BY p.date_stop DESC
LIMIT 1) AS period_stop''', (fiscalyear_id, fiscalyear_id))
periods = [i[0] for i in cr.fetchall()]
LIMIT 1) AS period_stop''', (
fiscalyear_id, fiscalyear_id
)
)
periods = [i[0] for i in cr.fetchall()]
if periods and len(periods) > 1: if periods and len(periods) > 1:
start_period = periods[0] start_period = periods[0]
end_period = periods[1] end_period = periods[1]
res['value'] = {'period_from': start_period, 'period_to': end_period, 'date_from': False, 'date_to': False}
res['value'] = {
'period_from': start_period, 'period_to': end_period,
'date_from': False, 'date_to': False
}
return res return res
def _get_account(self, cr, uid, context=None): def _get_account(self, cr, uid, context=None):
accounts = self.pool.get('account.account').search(cr, uid, [('parent_id', '=', False)], limit=1)
accounts = self.pool.get('account.account').search(
cr, uid, [('parent_id', '=', False)], limit=1)
return accounts and accounts[0] or False return accounts and accounts[0] or False
def _get_fiscalyear(self, cr, uid, context=None): def _get_fiscalyear(self, cr, uid, context=None):
now = time.strftime('%Y-%m-%d') now = time.strftime('%Y-%m-%d')
fiscalyears = self.pool.get('account.fiscalyear').search(cr, uid, [('date_start', '<', now), ('date_stop', '>', now)], limit=1 )
fiscalyears = self.pool.get('account.fiscalyear').search(
cr, uid, [('date_start', '<', now), (
'date_stop', '>', now)], limit=1)
return fiscalyears and fiscalyears[0] or False return fiscalyears and fiscalyears[0] or False
_defaults = { _defaults = {
'fiscalyear_id': _get_fiscalyear,
'filter': 'filter_no',
'chart_account_id': _get_account,
'target_move': 'posted',
'fiscalyear_id': _get_fiscalyear,
'filter': 'filter_no',
'chart_account_id': _get_account,
'target_move': 'posted',
} }
def _build_contexts(self, cr, uid, ids, data, context=None): def _build_contexts(self, cr, uid, ids, data, context=None):
if context is None: if context is None:
context = {} context = {}
result = {} result = {}
result['fiscalyear'] = 'fiscalyear_id' in data['form'] and data['form']['fiscalyear_id'] or False
result['chart_account_id'] = 'chart_account_id' in data['form'] and data['form']['chart_account_id'] or False
result['fiscalyear'] = 'fiscalyear_id' in data['form'] and data[
'form']['fiscalyear_id'] or False
result['chart_account_id'] = 'chart_account_id' in data[
'form'] and data['form']['chart_account_id'] or False
if data['form']['filter'] == 'filter_date': if data['form']['filter'] == 'filter_date':
result['date_from'] = data['form']['date_from'] result['date_from'] = data['form']['date_from']
result['date_to'] = data['form']['date_to'] result['date_to'] = data['form']['date_to']
elif data['form']['filter'] == 'filter_period': elif data['form']['filter'] == 'filter_period':
if not data['form']['period_from'] or not data['form']['period_to']:
raise osv.except_osv(_('Error'),_('Select a starting and an ending period'))
if not data['form']['period_from'] or not data[
'form'
]['period_to']:
raise orm.except_orm(
_('Error'), _('Select a starting and an ending period'))
result['period_from'] = data['form']['period_from'] result['period_from'] = data['form']['period_from']
result['period_to'] = data['form']['period_to'] result['period_to'] = data['form']['period_to']
if data['form']['period_to'] and result['period_to']: if data['form']['period_to'] and result['period_to']:
period_from = data['form'].get('period_from', False) and data['form']['period_from'][0] or False
period_to = data['form'].get('period_to', False) and data['form']['period_to'][0] or False
period_from = data['form'].get('period_from', False) and data[
'form']['period_from'][0] or False
period_to = data['form'].get('period_to', False) and data[
'form']['period_to'][0] or False
period_obj = self.pool.get('account.period') period_obj = self.pool.get('account.period')
result['periods'] = period_obj.build_ctx_periods(cr, uid, period_from, period_to)
result['periods'] = period_obj.build_ctx_periods(
cr, uid, period_from, period_to)
return result return result
@ -135,9 +184,13 @@ class account_common_report(orm.TransientModel):
data = {} data = {}
data['ids'] = context.get('active_ids', []) data['ids'] = context.get('active_ids', [])
data['model'] = context.get('active_model', 'ir.ui.menu') data['model'] = context.get('active_model', 'ir.ui.menu')
data['form'] = self.read(cr, uid, ids, ['date_from', 'date_to', 'fiscalyear_id', 'period_from', 'period_to', 'filter', 'chart_account_id', 'target_move'])[0]
used_context = self._build_contexts(cr, uid, ids, data, context=context)
data['form']['periods'] = used_context.get('periods', False) and used_context['periods'] or []
data['form'] = self.read(cr, uid, ids, [
'date_from', 'date_to', 'fiscalyear_id', 'period_from',
'period_to', 'filter', 'chart_account_id', 'target_move'
])[0]
used_context = self._build_contexts(
cr, uid, ids, data, context=context)
data['form']['periods'] = used_context.get(
'periods', False) and used_context['periods'] or []
data['form']['used_context'] = used_context data['form']['used_context'] = used_context
return self._print_report(cr, uid, ids, data, context=context) return self._print_report(cr, uid, ids, data, context=context)

15
account_financial_report_horizontal/wizard/account_report_common_account.py

@ -23,14 +23,16 @@
from osv import orm, fields from osv import orm, fields
class account_common_account_report(orm.TransientModel): class account_common_account_report(orm.TransientModel):
_name = 'account_financial_report_horizontal.common.account.report' _name = 'account_financial_report_horizontal.common.account.report'
_description = 'Account Common Account Report' _description = 'Account Common Account Report'
_inherit = "account_financial_report_horizontal.common.report" _inherit = "account_financial_report_horizontal.common.report"
_columns = { _columns = {
'display_account': fields.selection([('bal_all','All'), ('bal_movement','With movements'),
('bal_solde','With balance is not equal to 0'),
],'Display accounts', required=True),
'display_account': fields.selection([
('bal_all', 'All'), ('bal_movement', 'With movements'),
('bal_solde', 'With balance is not equal to 0'),
], 'Display accounts', required=True),
} }
_defaults = { _defaults = {
@ -40,7 +42,8 @@ class account_common_account_report(orm.TransientModel):
def pre_print_report(self, cr, uid, ids, data, context=None): def pre_print_report(self, cr, uid, ids, data, context=None):
if context is None: if context is None:
context = {} context = {}
data['form'].update(self.read(cr, uid, ids, ['display_account'], context=context)[0])
data['form']['lang'] = self.pool.get('res.users').browse(cr, uid, uid, context).lang
data['form'].update(self.read(
cr, uid, ids, ['display_account'], context=context)[0])
data['form']['lang'] = self.pool.get('res.users').browse(
cr, uid, uid, context).lang
return data return data

5
account_financial_report_horizontal/wizard/account_report_profit_loss.py

@ -23,9 +23,11 @@
from osv import orm, fields from osv import orm, fields
class account_pl_report(orm.TransientModel): class account_pl_report(orm.TransientModel):
""" """
This wizard will provide the account profit and loss report by periods, between any two dates.
This wizard will provide the account profit and loss report by periods,
between any two dates.
""" """
_inherit = "account_financial_report_horizontal.common.account.report" _inherit = "account_financial_report_horizontal.common.account.report"
_name = "account.pl.report" _name = "account.pl.report"
@ -56,4 +58,3 @@ class account_pl_report(orm.TransientModel):
'report_name': 'account.profit_loss', 'report_name': 'account.profit_loss',
'datas': data, 'datas': data,
} }
Loading…
Cancel
Save