Add income statement and fix some typo in balance sheet

This commit is contained in:
Cédric Krier committed 2008-04-04 12:18:34 +02:00
1 parent f271d71e68
commit 299f4343b6
2 files changed
+199 -15

No files matched your search

+132 -10
View File
@@ -758,7 +758,7 @@ class TrialBalance(Report):
TrialBalance()
class OpenBalanceSheet(WizardOSV):
class OpenBalanceSheetInit(WizardOSV):
_name = 'account.account.open_balance_sheet.init'
date = fields.Date('Date', required=True)
company = fields.Many2One('company.company', 'Company', required=True)
@@ -779,7 +779,7 @@ class OpenBalanceSheet(WizardOSV):
def default_posted(self, cursor, user, context=None):
return False
OpenBalanceSheet()
OpenBalanceSheetInit()
class OpenBalanceSheet(Wizard):
@@ -805,17 +805,17 @@ class OpenBalanceSheet(Wizard):
},
}
def _get_root_codes(self, cursor, user, data, context=None):
def _get_root_codes(self, cursor, user, datas, context=None):
return ('asset', 'liability', 'equity')
def _action_open(self, cursor, user, data, context=None):
def _action_open(self, cursor, user, datas, context=None):
if context is None:
context = {}
model_data_obj = self.pool.get('ir.model.data')
act_window_obj = self.pool.get('ir.action.act_window')
company_obj = self.pool.get('company.company')
company = company_obj.browse(cursor, user, data['form']['company'],
company = company_obj.browse(cursor, user, datas['form']['company'],
context=context)
lang = context.get('language', False) or 'en_US'
try:
@@ -826,7 +826,7 @@ class OpenBalanceSheet(Wizard):
locale.setlocale(locale.LC_ALL, lang + '.' + encoding)
except:
pass
date = time.strptime(str(data['form']['date']), '%Y-%m-%d')
date = time.strptime(str(datas['form']['date']), '%Y-%m-%d')
date = time.strftime(locale.nl_langinfo(locale.D_FMT).\
replace('%y', '%Y'), date)
@@ -838,14 +838,136 @@ class OpenBalanceSheet(Wizard):
context=context)
res = act_window_obj.read(cursor, user, model_data.db_id, context=context)
res['context'] = str({
'date': data['form']['date'],
'posted': data['form']['posted'],
'company': data['form']['company'],
'date': datas['form']['date'],
'posted': datas['form']['posted'],
'company': datas['form']['company'],
})
res['domain'] = res['domain'][:-1] + ', ' + \
str(('code', 'in', self._get_root_codes(cursor, user, data,
str(('code', 'in', self._get_root_codes(cursor, user, datas,
context=context))) + res['domain'][-1]
res['name'] = res['name'] + ' - '+ date + ' - ' + company.name
return res
OpenBalanceSheet()
class OpenIncomeStatementInit(WizardOSV):
_name = 'account.account.open_income_statement.init'
fiscalyear = fields.Many2One('account.fiscalyear', 'Fiscal Year',
required=True, on_change=['fiscalyear'])
start_period = fields.Many2One('account.period', 'Start Period',
domain="[('fiscalyear', '=', fiscalyear), " \
"('start_date', '<=', (end_period, 'start_date'))]")
end_period = fields.Many2One('account.period', 'End Period',
domain="[('fiscalyear', '=', fiscalyear), " \
"('start_date', '>=', (start_period, 'start_date'))]")
company = fields.Many2One('company.company', 'Company', required=True)
posted = fields.Boolean('Posted Move', help='Only posted move')
def default_fiscalyear(self, cursor, user, context=None):
fiscalyear_obj = self.pool.get('account.fiscalyear')
fiscalyear_id = fiscalyear_obj.find(cursor, user, exception=False,
context=context)
if fiscalyear_id:
return fiscalyear_obj.name_get(cursor, user, fiscalyear_id,
context=context)[0]
return False
def default_company(self, cursor, user, context=None):
if context is None:
context = {}
company_obj = self.pool.get('company.company')
if context.get('company'):
return company_obj.name_get(cursor, user, context['company'],
context=context)[0]
return False
def default_posted(self, cursor, user, context=None):
return False
def on_change_fiscalyear(self, cursor, user, ids, vals, context=None):
return {
'start_period': False,
'end_period': False,
}
OpenIncomeStatementInit()
class OpenIncomeStatement(Wizard):
'Open Income Statement'
_name = 'account.account.open_income_statement'
states = {
'init': {
'result': {
'type': 'form',
'object': 'account.account.open_income_statement.init',
'state': [
('end', 'Cancel', 'gtk-cancel'),
('open', 'Open', 'gtk-ok', True),
],
},
},
'open': {
'result': {
'type': 'action',
'action': '_action_open',
'state': 'end',
},
},
}
def _get_root_codes(self, cursor, user, datas, context=None):
return ('income',)
def _action_open(self, cursor, user, datas, context=None):
if context is None:
context = {}
model_data_obj = self.pool.get('ir.model.data')
act_window_obj = self.pool.get('ir.action.act_window')
period_obj = self.pool.get('account.period')
start_period_ids = [0]
if datas['form']['start_period']:
start_period = period_obj.browse(cursor, user,
datas['form']['start_period'], context=context)
start_period_ids = period_obj.search(cursor, user, [
('fiscalyear', '=', datas['form']['fiscalyear']),
('end_date', '<=', start_period.start_date),
], context=context)
end_period_ids = []
if datas['form']['end_period']:
end_period = period_obj.browse(cursor, user,
datas['form']['end_period'], context=context)
end_period_ids = period_obj.search(cursor, user, [
('fiscalyear', '=', datas['form']['fiscalyear']),
('end_date', '<=', end_period.start_date),
], context=context)
end_period_ids = exclude(end_period_ids, start_period_ids)
if datas['form']['end_period'] not in end_period_ids:
end_period_ids.append(datas['form']['end_period'])
else:
end_period_ids = period_obj.search(cursor, user, [
('fiscalyear', '=', datas['form']['fiscalyear']),
], context=context)
end_period_ids = exclude(end_period_ids, start_period_ids)
model_data_ids = model_data_obj.search(cursor, user, [
('fs_id', '=', 'act_account_income_statement_tree'),
('module', '=', 'account'),
], limit=1, context=context)
model_data = model_data_obj.browse(cursor, user, model_data_ids[0],
context=context)
res = act_window_obj.read(cursor, user, model_data.db_id, context=context)
res['context'] = str({
'periods': end_period_ids,
'posted': datas['form']['posted'],
'company': datas['form']['company'],
})
res['domain'] = res['domain'][:-1] + ', ' + \
str(('code', 'in', self._get_root_codes(cursor, user, datas,
context=context))) + res['domain'][-1]
return res
OpenIncomeStatement()
+67 -5
View File
@@ -174,28 +174,35 @@
<field name="sequence" eval="30"/>
<field name="account_type" eval="True"/>
</record>
<record model="account.account.type" id="account_type_income">
<field name="name">Income</field>
<field name="code">income</field>
<field name="sequence" eval="40"/>
</record>
<record model="account.account.type" id="account_type_revenue">
<field name="name">Revenue</field>
<field name="code">revenue</field>
<field name="sequence" eval="40"/>
<field name="parent" ref="account_type_income"/>
<field name="sequence" eval="10"/>
<field name="account_type" eval="True"/>
</record>
<record model="account.account.type" id="account_type_expense">
<field name="name">Expense</field>
<field name="code">expense</field>
<field name="sequence" eval="50"/>
<field name="parent" ref="account_type_income"/>
<field name="sequence" eval="20"/>
<field name="account_type" eval="True"/>
</record>
<record model="account.account.type" id="account_type_view">
<field name="name">View</field>
<field name="code">view</field>
<field name="sequence" eval="60"/>
<field name="sequence" eval="50"/>
<field name="account_type" eval="True"/>
</record>
<record model="account.account.type" id="account_type_closed">
<field name="name">Closed</field>
<field name="code">closed</field>
<field name="sequence" eval="70"/>
<field name="sequence" eval="60"/>
<field name="account_type" eval="True"/>
</record>
@@ -523,8 +530,63 @@
<field name="wiz_name">account.account.open_balance_sheet</field>
</record>
<menuitem parent="menu_reporting" action="wizard_open_balance_sheet"
id="menu_print_balance_sheet" icon="STOCK_INDENT"
id="menu_open_balance_sheet" icon="STOCK_INDENT"
name="Balance Sheet"/>
<record model="ir.ui.view" id="open_income_statement_init_view_form">
<field name="model">account.account.open_income_statement.init</field>
<field name="type">form</field>
<field name="arch" type="xml">
<![CDATA[
<form string="Open Income Statement">
<label name="fiscalyear"/>
<field name="fiscalyear"/>
<newline/>
<label name="start_period"/>
<field name="start_period"/>
<label name="end_period"/>
<field name="end_period"/>
<label name="company"/>
<field name="company"/>
<label name="posted"/>
<field name="posted"/>
</form>
]]>
</field>
</record>
<record model="ir.ui.view" id="account_income_statement_view_tree">
<field name="model">account.account.type</field>
<field name="type">tree</field>
<field name="field_childs">childs</field>
<field name="arch" type="xml">
<![CDATA[
<tree string="Income Statement">
<field name="name"/>
<field name="amount"/>
</tree>
]]>
</field>
</record>
<record model="ir.action.act_window" id="act_account_income_statement_tree">
<field name="name">Income Statement</field>
<field name="res_model">account.account.type</field>
<field name="view_type">tree</field>
<field name="domain">[('parent', '=', False)]</field>
</record>
<record model="ir.action.act_window.view" id="act_income_statement_view1">
<field name="sequence" eval="10"/>
<field name="view" ref="account_income_statement_view_tree"/>
<field name="act_window" ref="act_account_income_statement_tree"/>
</record>
<record model="ir.action.wizard" id="wizard_open_income_statement">
<field name="name">Open Income Statement</field>
<field name="wiz_name">account.account.open_income_statement</field>
</record>
<menuitem parent="menu_reporting" action="wizard_open_income_statement"
id="menu_open_income_statement" icon="STOCK_INDENT"
name="Income Statement"/>
</data>
</tryton>