Add display balance on account type
Remove account_type from account type
This commit is contained in:
1 parent
c61aae3a93
commit
be57698795
3 files changed
+46
-29
No files matched your search
+24
-13
@@ -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
@@ -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
@@ -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,
|
||||
|
||||
Reference in new issue
Block a user