*moved sign of account_account on account_account_type

*splitted type of accounts into 2 fields: a fiels.selection for internal purpose (static) and a many2one to account_account_type for user categorization.
*changed demo data accordingly
*modified wizard of closing fiscalyear and views  accordingly

bzr revid: qdp@tinyerp.com-20080904120144-t0izbg80ot7tpth6
This commit is contained in:
qdp 2008-09-04 14:01:44 +02:00
parent 47fb47e040
commit 1daa6977d0
5 changed files with 70 additions and 72 deletions

View File

@ -104,10 +104,12 @@ class account_account_type(osv.osv):
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of account types."),
'partner_account': fields.boolean('Partner account'),
'close_method': fields.selection([('none','None'), ('balance','Balance'), ('detail','Detail'),('unreconciled','Unreconciled')], 'Deferral Method', required=True),
'sign': fields.selection([(-1, 'Negative'), (1, 'Positive')], 'Sign on Reports', required=True, help='Allows to change the displayed amount of the balance in the reports, in order to see positive results instead of negative ones in expenses accounts.'),
}
_defaults = {
'close_method': lambda *a: 'none',
'sequence': lambda *a: 5,
'sign': lambda *a: 1,
}
_order = "sequence"
account_account_type()
@ -224,10 +226,23 @@ class account_account(osv.osv):
_columns = {
'name': fields.char('Name', size=128, required=True, select=True),
'sign': fields.selection([(-1, 'Negative'), (1, 'Positive')], 'Sign', required=True, help='Allows to change the displayed amount of the balance to see positive results instead of negative ones in expenses accounts'),
'currency_id': fields.many2one('res.currency', 'Secondary Currency', help="Force all moves for this account to have this secondary currency."),
'code': fields.char('Code', size=64),
'type': fields.selection(_code_get, 'Account Type', required=True),
'type': fields.selection([
('receivable','Receivable'),
('payable','Payable'),
('view','View'),
('consolidation','Consolidation'),
('income','Income'),
('expense','Expense'),
('tax','Tax'),
('cash','Cash'),
#('asset','Asset'),
#('equity','Equity'),
('closed','Closed'),
], 'Internal Type', required=True,),
'user_type': fields.many2one('account.account.type', 'Account Type'),
# 'parent_id': fields.many2many('account.account', 'account_account_rel', 'child_id', 'parent_id', 'Parents'),
'parent_id': fields.many2one('account.account','Parent', ondelete='cascade'),
'child_parent_ids':fields.one2many('account.account','parent_id','Children'),
@ -258,7 +273,6 @@ class account_account(osv.osv):
return self.pool.get('res.company').search(cr, uid, [('parent_id', '=', False)])[0]
_defaults = {
'sign': lambda *a: 1,
'type' : lambda *a :'view',
'reconcile': lambda *a: False,
'company_id': _default_company,
@ -1656,10 +1670,23 @@ class account_account_template(osv.osv):
_columns = {
'name': fields.char('Name', size=128, required=True, select=True),
'sign': fields.selection([(-1, 'Negative'), (1, 'Positive')], 'Sign', required=True, help='Allows to change the displayed amount of the balance to see positive results instead of negative ones in expenses accounts.'),
#'sign': fields.selection([(-1, 'Negative'), (1, 'Positive')], 'Sign', required=True, help='Allows to change the displayed amount of the balance to see positive results instead of negative ones in expenses accounts.'),
'currency_id': fields.many2one('res.currency', 'Secondary Currency', help="Force all moves for this account to have this secondary currency."),
'code': fields.char('Code', size=64),
'type': fields.selection(_code_get, 'Account Type', required=True),
'type': fields.selection([
('receivable','Receivable'),
('payable','Payable'),
('view','View'),
('consolidation','Consolidation'),
('income','Income'),
('expense','Expense'),
('tax','Tax'),
('cash','Cash'),
#('asset','Asset'),
#('equity','Equity'),
('closed','Closed'),
], 'Internal Type', required=True,),
'user_type': fields.many2one('account.account.type', 'Account Type'),
'reconcile': fields.boolean('Allow Reconciliation', help="Check this option if the user can make a reconciliation of the entries in this account."),
'shortcut': fields.char('Shortcut', size=12),
'note': fields.text('Note'),
@ -1669,7 +1696,7 @@ class account_account_template(osv.osv):
}
_defaults = {
'sign': lambda *a: 1,
#'sign': lambda *a: 1,
'reconcile': lambda *a: False,
'type' : lambda *a :'view',
}
@ -1948,10 +1975,11 @@ class wizard_multi_charts_accounts(osv.osv_memory):
#create the account_account
vals={
'name': (obj_acc_root.id == account_template.id) and obj_multi.company_id.name or account_template.name,
'sign': account_template.sign,
#'sign': account_template.sign,
'currency_id': account_template.currency_id and account_template.currency_id.id or False,
'code': account_template.code,
'type': account_template.type,
'user_type': account_template.user_type or False,
'reconcile': account_template.reconcile,
'shortcut': account_template.shortcut,
'note': account_template.note,
@ -2015,10 +2043,11 @@ class wizard_multi_charts_accounts(osv.osv_memory):
tmp = self.pool.get('res.partner.bank').name_get(cr, uid, [line.acc_no.id])[0][1]
vals={
'name': line.acc_no.bank and line.acc_no.bank.name+' '+tmp or tmp,
'sign': ref_acc_bank.sign,
#'sign': ref_acc_bank.sign,
'currency_id': line.currency_id and line.currency_id.id or False,
'code': ref_acc_bank.code+str(current_num),
'type': 'cash',
'user_type': account_template.user_type or False,
'reconcile': True,
'parent_id': acc_template_ref[ref_acc_bank.id] or False,
'company_id': company_id,

View File

@ -120,8 +120,8 @@
<notebook colspan="4">
<page string="General Information">
<newline/>
<field name="sign"/>
<!--<field name="sign"/>-->
<field name="user_type" select="1"/>
<field name="currency_id" select="2"/>
<field name="reconcile"/>
<newline/>
@ -418,8 +418,8 @@
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Account Type">
<field name="code"/>
<field name="name"/>
<field name="code"/>
</tree>
</field>
</record>
@ -432,6 +432,7 @@
<field name="name" select="1"/>
<field name="code" select="1"/>
<field name="sequence"/>
<field name="sign"/>
<field name="close_method"/>
<field name="partner_account"/>
</form>
@ -1482,9 +1483,10 @@
<field name="code" select="1"/>
<newline/>
<field name="parent_id" select="1"/>
<field name="type" select="1"/>
<field name="shortcut"/>
<field name="sign"/>
<field name="type" select="1"/>
<field name="user_type" select="1"/>
<field name="currency_id" select="2"/>
<field name="reconcile"/>
<field name="tax_ids" colspan="4"/>

View File

@ -5,68 +5,30 @@
Account Type
-->
<record id="account_type_receivable" model="account.account.type">
<field name="name">Receivable</field>
<field name="code">receivable</field>
<field name="partner_account">True</field>
<field name="close_method">balance</field>
</record>
<record id="account_type_payable" model="account.account.type">
<field name="name">Payable</field>
<field name="code">payable</field>
<field name="partner_account">True</field>
<field name="close_method">balance</field>
</record>
<record id="account_type_view" model="account.account.type">
<field name="name">Total Account</field>
<field name="code">view</field>
<field name="close_method">none</field>
</record>
<!--<record id="account_type_root" model="account.account.type">
<field name="name">Root</field>
<field name="code">root</field>
<field name="close_method">none</field>
</record>-->
<record id="account_type_consolidation" model="account.account.type">
<field name="name">Consolidation</field>
<field name="code">consolidation</field>
<field name="close_method">none</field>
</record>
<record id="account_type_income" model="account.account.type">
<field name="name">Income</field>
<field name="code">income</field>
<field name="close_method">unreconciled</field>
</record>
<record id="account_type_expense" model="account.account.type">
<field name="name">Expense</field>
<field name="code">expense</field>
<field name="close_method">unreconciled</field>
</record>
<record id="account_type_tax" model="account.account.type">
<field name="name">Tax</field>
<field name="code">tax</field>
<field name="close_method">balance</field>
</record>
<record id="account_type_cash" model="account.account.type">
<field name="name">Cash</field>
<field name="code">cash</field>
<field name="close_method">balance</field>
</record>
<record id="account_type_asset" model="account.account.type">
<field name="name">Asset</field>
<field name="code">asset</field>
<field name="close_method">none</field>
</record>
<record id="account_type_liability" model="account.account.type">
<field name="name">Liability</field> <!-- Equity? -->
<field name="code">liability</field>
<field name="close_method">unreconciled</field>
</record>
<record id="account_type_income" model="account.account.type">
<field name="name">Income</field> <!-- Profit? -->
<field name="code">income</field>
<field name="close_method">balance</field>
</record>
<record id="account_type_equity" model="account.account.type">
<field name="name">Equity</field>
<field name="code">equity</field>
<field name="close_method">none</field>
<record id="account_type_expense" model="account.account.type">
<field name="name">Expense</field> <!-- Loss? -->
<field name="code">expense</field>
<field name="close_method">unreconciled</field>
</record>
<record id="account_type_closed" model="account.account.type">
<field name="name">Closed</field>
<field name="code">closed</field>
<field name="close_method">none</field>
<record id="account_type_cash_moves" model="account.account.type">
<field name="name">Cash Moves</field> <!-- usefull? -->
<field name="code">cash</field>
<field name="close_method">unreconciled</field>
</record>
</data>
</terp>

View File

@ -19,6 +19,7 @@ your own accounts.
<field name="name">Main Receivable</field>
<field name="code">x 40000</field>
<field name="type">receivable</field>
<field name="user_type" ref="account.account_type_asset"/>
<field eval="ref('minimal_0')" name="parent_id"/>
<field name="company_id" ref="base.main_company"/>
<field eval="True" name="reconcile"/>
@ -33,6 +34,7 @@ your own chart of account.
<field name="name">Main Payable</field>
<field name="code">x 440000</field>
<field name="type">payable</field>
<field name="user_type" ref="account.account_type_liability"/>
<field eval="ref('minimal_0')" name="parent_id"/>
<field name="company_id" ref="base.main_company"/>
<field eval="True" name="reconcile"/>
@ -48,6 +50,7 @@ your own chart of account.
<field name="name">Petty Cash</field>
<field name="code">x 570000</field>
<field name="type">cash</field>
<field name="user_type" ref="account.account_type_cash_moves"/>
<field eval="ref('minimal_0')" name="parent_id"/>
<field name="company_id" ref="base.main_company"/>
<field name="note">
@ -62,6 +65,7 @@ your own chart of account.
<field name="name">Products Purchase</field>
<field name="code">x 600000</field>
<field name="type">expense</field>
<field name="user_type" ref="account.account_type_expense"/>
<field eval="ref('minimal_0')" name="parent_id"/>
<field name="company_id" ref="base.main_company"/>
<field name="note">
@ -75,6 +79,7 @@ your own chart of account.
<field name="name">Products Sales</field>
<field name="code">x 701000</field>
<field name="type">income</field>
<field name="user_type" ref="account.account_type_income"/>
<field eval="ref('minimal_0')" name="parent_id"/>
<field name="company_id" ref="base.main_company"/>
<field name="note">

View File

@ -88,11 +88,11 @@ def _data_save(self, cr, uid, data, context):
obj='account_move_line', context={'fiscalyear': fy_id})
cr.execute('select id from account_account WHERE active')
ids = map(lambda x: x[0], cr.fetchall())
accnt_type_obj = pool.get('account.account.type')
for account in pool.get('account.account').browse(cr, uid, ids,
context={'fiscalyear': fy_id}):
accnt_type_ids = accnt_type_obj.search(cr, uid, [('code','=',account.type)])
accnt_type_data = accnt_type_obj.browse(cr, uid, accnt_type_ids[0])
accnt_type_data = account.user_type
if not accnt_type_data:
continue
if accnt_type_data.close_method=='none' or account.type == 'view':
continue
if accnt_type_data.close_method=='balance':