diff --git a/addons/account/account.py b/addons/account/account.py
index caf5eb74e99..41fffe4e2f7 100644
--- a/addons/account/account.py
+++ b/addons/account/account.py
@@ -1580,27 +1580,32 @@ class account_config_fiscalyear(osv.osv_memory):
account_config_fiscalyear()
+
+
class account_config_journal_bank_accounts(osv.osv_memory):
_name='account.config.journal.bank.account'
_columns = {
- 'name':fields.char('Journal Name', size=64,required=True),
- 'bank_account_id':fields.many2one('account.account', 'Bank Account', required=True, domain=[('type','=','cash')]),
- 'view_id':fields.many2one('account.journal.view', 'Journal view', required=True),
- 'sequence_id':fields.many2one('ir.sequence', 'Sequence', required=True),
+ 'name':fields.char('Journal Name', size=64),
+ 'lines_id': fields.one2many('account.config.journal.bank.account.line', 'journal_id', 'Journal Lines'),
}
+
def action_create(self, cr, uid, ids, context=None):
- res=self.read(cr,uid,ids)[0]
+ config_res=self.read(cr,uid,ids)[0]
res_obj = self.pool.get('account.journal')
- if 'name' in res and 'bank_account_id' in res and 'view_id' in res and 'sequence_id' in res:
- vals={
- 'name':res['name'],
- 'type':'cash',
- 'view_id':res['view_id'],
- 'default_credit_account_id':res['bank_account_id'],
- 'default_debit_account_id':res['bank_account_id'],
- 'sequence_id':res['sequence_id']
- }
- res_obj.create(cr, uid, vals, context=context)
+ line_obj=self.pool.get('account.config.journal.bank.account.line')
+ if 'lines_id' in config_res and config_res['lines_id']:
+ lines=line_obj.read(cr,uid,config_res['lines_id'])
+ for res in lines:
+ if 'name' in res and 'bank_account_id' in res and 'view_id' in res and 'sequence_id' in res:
+ vals={
+ 'name':res['name'],
+ 'type':'cash',
+ 'view_id':res['view_id'],
+ 'default_credit_account_id':res['bank_account_id'],
+ 'default_debit_account_id':res['bank_account_id'],
+ 'sequence_id':res['sequence_id']
+ }
+ res_obj.create(cr, uid, vals, context=context)
return {
'view_type': 'form',
"view_mode": 'form',
@@ -1611,3 +1616,21 @@ class account_config_journal_bank_accounts(osv.osv_memory):
account_config_journal_bank_accounts()
+class account_config_journal_bank_accounts_line(osv.osv_memory):
+ _name='account.config.journal.bank.account.line'
+ def _journal_view_get(self, cr, uid, context={}):
+ journal_obj = self.pool.get('account.journal.view')
+ ids = journal_obj.search(cr, uid, [])
+ res = journal_obj.read(cr, uid, ids, ['id', 'name'], context)
+ return [(r['id'], r['name']) for r in res]
+ _columns = {
+ 'name':fields.char('Journal Name', size=64,required=True),
+ 'bank_account_id':fields.many2one('account.account', 'Bank Account', required=True, domain=[('type','=','cash')]),
+ 'view_id':fields.selection(_journal_view_get, 'Journal View', required=True),
+ 'sequence_id':fields.many2one('ir.sequence', 'Sequence', required=True),
+ 'journal_id':fields.many2one('account.config.journal.bank.account', 'Journal', required=True),
+ }
+
+
+account_config_journal_bank_accounts_line()
+
diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml
index d20aa28bbb0..7431c63b432 100644
--- a/addons/account/account_view.xml
+++ b/addons/account/account_view.xml
@@ -1499,8 +1499,8 @@