Add display balance on account type

Remove account_type from account type
This commit is contained in:
Cédric Krier committed 2008-05-23 12:32:10 +02:00
1 parent c61aae3a93
commit be57698795
3 files changed
+46 -29

No files matched your search

+24 -13
View File
@@ -30,19 +30,21 @@ class Type(OSV):
childs = fields.One2Many('account.account.type', 'parent', 'Childs')
sequence = fields.Integer('Sequence', required=True,
help='Use to order the account type')
account_type = fields.Boolean('Account Type',
help='Can be use as type for account')
#TODO fix digits depend of the currency
amount = fields.Function('get_amount', digits=(16, 2), string='Amount')
balance_sheet = fields.Boolean('Balance Sheet')
income_statement = fields.Boolean('Income Statement')
display_balance = fields.Selection([
('debit-credit', 'Debit - Credit'),
('credit-debit', 'Credit - Debit'),
], 'Display Balance', required=True)
def __init__(self):
super(Type, self).__init__()
self._order.insert(0, ('sequence', 'ASC'))
def default_account_type(self, cursor, user, context=None):
return False
def default_code(self, cursor, user, context=None):
return 'view'
def default_balance_sheet(self, cursor, user, context=None):
return False
@@ -50,6 +52,9 @@ class Type(OSV):
def default_income_statement(self, cursor, user, context=None):
return False
def default_display_balance(self, cursor, user, context=None):
return 'debit-credit'
def get_amount(self, cursor, user, ids, name, arg, context=None):
company_obj = self.pool.get('company.company')
account_obj = self.pool.get('account.account')
@@ -81,14 +86,18 @@ class Type(OSV):
context=context):
type_sum[account.type.id] += currency_obj.round(cursor, user,
company.currency, account.debit - account.credit)
for type_id in ids:
types = self.browse(cursor, user, ids, context=context)
for type in types:
child_ids = self.search(cursor, user, [
('parent', 'child_of', [type_id]),
('parent', 'child_of', [type.id]),
], context=context)
for child_id in child_ids:
res[type_id] += type_sum[child_id]
res[type_id] = currency_obj.round(cursor, user,
company.currency, res[type_id])
res[type.id] += type_sum[child_id]
res[type.id] = currency_obj.round(cursor, user,
company.currency, res[type.id])
if type.display_balance == 'credit-debit':
res[type.id] = - res[type.id]
return res
Type()
@@ -105,8 +114,7 @@ class AccountTemplate(OSV):
complete_name = fields.Function('get_complete_name', type='char',
string='Name')
code = fields.Char('Code', size=None, select=1)
type = fields.Many2One('account.account.type', 'Type', required=True,
domain=[('account_type', '=', True)])
type = fields.Many2One('account.account.type', 'Type', required=True)
parents = fields.Many2Many('account.account.template',
'account_account_template_rel', 'child', 'parent', 'Parents')
childs = fields.Many2Many('account.account.template',
@@ -212,8 +220,7 @@ class Account(OSV):
second_currency = fields.Many2One('currency.currency', 'Secondary currency',
help='Force all moves for this account \n' \
'to have this secondary currency.')
type = fields.Many2One('account.account.type', 'Type', required=True,
domain=[('account_type', '=', True)])
type = fields.Many2One('account.account.type', 'Type', required=True)
parents = fields.Many2Many('account.account', 'account_account_rel',
'child', 'parent', 'Parents')
childs = fields.Many2Many('account.account', 'account_account_rel',
@@ -341,10 +348,12 @@ class Account(OSV):
account2company = {}
id2company = {}
id2account = {}
accounts = self.browse(cursor, user, all_ids, context=context)
for account in accounts:
account2company[account.id] = account.company.id
id2company[account.company.id] = account.company
id2account[account.id] = account
for account_id in ids:
res.setdefault(account_id, Decimal('0.0'))
@@ -361,6 +370,8 @@ class Account(OSV):
to_currency, round=True, context=context)
res[account_id] = currency_obj.round(cursor, user, to_currency,
res[account_id])
if id2account[account_id].type.display_balance == 'credit-debit':
res[account_id] = - res[account_id]
return res
def get_credit_debit(self, cursor, user, ids, name, arg, context=None):
+16 -11
View File
@@ -40,14 +40,15 @@
<field name="parent"/>
<label name="sequence"/>
<field name="sequence"/>
<label name="account_type"/>
<field name="account_type"/>
<newline/>
<label name="balance_sheet"/>
<field name="balance_sheet"/>
<newline/>
<label name="income_statement"/>
<field name="income_statement"/>
<newline/>
<label name="display_balance"/>
<field name="display_balance"/>
</form>
]]>
</field>
@@ -112,39 +113,43 @@
</record>
<record model="account.account.type" id="account_type_asset">
<field name="name">Asset</field>
<field name="code">view</field>
<field name="sequence" eval="10"/>
<field name="balance_sheet" eval="True"/>
</record>
<record model="account.account.type" id="account_type_asset_current">
<field name="name">Current</field>
<field name="code">view</field>
<field name="parent" ref="account_type_asset"/>
<field name="sequence" eval="10"/>
</record>
<record model="account.account.type" id="account_type_asset_current_cash">
<field name="name">Cash</field>
<field name="code">view</field>
<field name="parent" ref="account_type_asset_current"/>
<field name="sequence" eval="10"/>
<field name="account_type" eval="True"/>
</record>
<record model="account.account.type" id="account_type_asset_current_receivable">
<field name="name">Receivable</field>
<field name="code">receivable</field>
<field name="parent" ref="account_type_asset_current"/>
<field name="sequence" eval="20"/>
<field name="account_type" eval="True"/>
</record>
<record model="account.account.type" id="account_type_asset_long_term">
<field name="name">Long-term</field>
<field name="code">view</field>
<field name="parent" ref="account_type_asset"/>
<field name="sequence" eval="20"/>
</record>
<record model="account.account.type" id="account_type_liability">
<field name="name">Liability</field>
<field name="code">view</field>
<field name="sequence" eval="20"/>
<field name="balance_sheet" eval="True"/>
</record>
<record model="account.account.type" id="account_type_liability_current">
<field name="name">Current</field>
<field name="code">view</field>
<field name="parent" ref="account_type_liability"/>
<field name="sequence" eval="10"/>
</record>
@@ -153,23 +158,23 @@
<field name="code">payable</field>
<field name="parent" ref="account_type_liability_current"/>
<field name="sequence" eval="10"/>
<field name="account_type" eval="True"/>
</record>
<record model="account.account.type" id="account_type_liability_current_tax">
<field name="name">Tax</field>
<field name="code">view</field>
<field name="parent" ref="account_type_liability_current"/>
<field name="sequence" eval="20"/>
<field name="account_type" eval="True"/>
</record>
<record model="account.account.type" id="account_type_liability_long_term">
<field name="name">Long-term</field>
<field name="code">view</field>
<field name="parent" ref="account_type_liability"/>
<field name="sequence" eval="20"/>
</record>
<record model="account.account.type" id="account_type_equity">
<field name="name">Equity</field>
<field name="code">view</field>
<field name="sequence" eval="30"/>
<field name="account_type" eval="True"/>
<field name="balance_sheet" eval="True"/>
</record>
<record model="account.account.type" id="account_type_income">
@@ -177,31 +182,31 @@
<field name="code">income</field>
<field name="sequence" eval="40"/>
<field name="income_statement" eval="True"/>
<field name="display_balance">credit-debit</field>
</record>
<record model="account.account.type" id="account_type_revenue">
<field name="name">Revenue</field>
<field name="code">revenue</field>
<field name="parent" ref="account_type_income"/>
<field name="sequence" eval="10"/>
<field name="account_type" eval="True"/>
<field name="display_balance">credit-debit</field>
</record>
<record model="account.account.type" id="account_type_expense">
<field name="name">Expense</field>
<field name="code">expense</field>
<field name="parent" ref="account_type_income"/>
<field name="sequence" eval="20"/>
<field name="account_type" eval="True"/>
<field name="display_balance">credit-debit</field>
</record>
<record model="account.account.type" id="account_type_view">
<field name="name">View</field>
<field name="code">view</field>
<field name="sequence" eval="50"/>
<field name="account_type" eval="True"/>
</record>
<record model="account.account.type" id="account_type_off_balance">
<field name="name">Off-Balance</field>
<field name="code"></field>
<field name="sequence" eval="60"/>
<field name="account_type" eval="True"/>
</record>
<record model="ir.ui.view" id="account_template_view_form">
+6 -5
View File
@@ -219,14 +219,15 @@ class CloseFiscalYear(Wizard):
if account.close_method == 'none':
return
if account.close_method == 'balance':
balance = account.debit - account.credit
if not currency_obj.is_zero(cursor, user, account.currency,
account.balance):
balance):
line_id = move_line_obj.create(cursor, user, {
'name': name,
'debit': account.balance > Decimal('0.0') \
and account.balance or Decimal('0.0'),
'credit': account.balance < Decimal('0.0') \
and - account.balance or Decimal('0.0'),
'debit': balance > Decimal('0.0') \
and balance or Decimal('0.0'),
'credit': balance < Decimal('0.0') \
and - balance or Decimal('0.0'),
'account': account.id,
'journal': journal.id,
'period': period.id,