diff --git a/addons/account/installer.py b/addons/account/installer.py index 301e966bae0e6308580331cf8616ff790645e148..81993908be9d76cb059a1e959855f72350478005 100644 --- a/addons/account/installer.py +++ b/addons/account/installer.py @@ -198,6 +198,10 @@ class account_installer(osv.osv_memory): new_account = obj_acc.create(cr,uid,vals) acc_template_ref[account_template.id] = new_account if account_template.name == 'Bank Current Account': + view_id_cash = self.pool.get('account.journal.view').search(cr,uid,[('name','=','Cash Journal View')])[0] + view_id_cur = self.pool.get('account.journal.view').search(cr,uid,[('name','=','Multi-Currency Cash Journal View')])[0] + ref_acc_bank = obj_multi.bank_account_view_id + cash_result = mod_obj._get_id(cr, uid, 'account', 'conf_account_type_cash') cash_type_id = mod_obj.read(cr, uid, [cash_result], ['res_id'])[0]['res_id'] @@ -209,20 +213,62 @@ class account_installer(osv.osv_memory): record = self.browse(cr, uid, ids, context=context)[0] code_cnt = 1 + vals_seq = { + 'name': _('Bank Journal '), + 'code': 'account.journal', + } + seq_id = obj_sequence.create(cr,uid,vals_seq) + + #create the bank journal + vals_journal = {} + vals_journal['name']= _('Bank Journal ') + vals_journal['code']= _('BNK') + vals_journal['sequence_id'] = seq_id + vals_journal['type'] = 'cash' + if vals.get('currency_id', False): + vals_journal['view_id'] = view_id_cur + vals_journal['currency'] = vals.get('currency_id', False) + else: + vals_journal['view_id'] = view_id_cash + vals_journal['default_credit_account_id'] = new_account + vals_journal['default_debit_account_id'] = new_account + obj_journal.create(cr,uid,vals_journal) + for val in record.bank_accounts_id: if val.account_type == 'cash':type = cash_type_id elif val.account_type == 'bank':type = bank_type_id else:type = check_type_id - vals = {'name': val.acc_name or '', + vals_bnk = {'name': val.acc_name or '', 'currency_id': val.currency_id.id or False, 'code': str(110400 + code_cnt), 'type': 'other', 'user_type': type, 'parent_id':new_account, 'company_id': company_id.id } - obj_acc.create(cr, uid, vals) + child_bnk_acc = obj_acc.create(cr, uid, vals_bnk) + vals_seq_child = { + 'name': _(vals_bnk['name']), + 'code': 'account.journal', + } + seq_id = obj_sequence.create(cr, uid, vals_seq_child) + + #create the bank journal + vals_journal = {} + vals_journal['name']= vals_bnk['name'] + ' Journal' + vals_journal['code']= _(vals_bnk['name'][:3]) + vals_journal['sequence_id'] = seq_id + vals_journal['type'] = 'cash' + if vals.get('currency_id', False): + vals_journal['view_id'] = view_id_cur + vals_journal['currency'] = vals_bnk.get('currency_id', False) + else: + vals_journal['view_id'] = view_id_cash + vals_journal['default_credit_account_id'] = child_bnk_acc + vals_journal['default_debit_account_id'] = child_bnk_acc + obj_journal.create(cr,uid,vals_journal) code_cnt += 1 + #reactivate the parent_store functionnality on account_account self.pool._init = False self.pool.get('account.account')._parent_store_compute(cr) @@ -341,6 +387,7 @@ class account_installer(osv.osv_memory): def execute(self, cr, uid, ids, context=None): super(account_installer, self).execute(cr, uid, ids, context=context) record = self.browse(cr, uid, ids, context=context)[0] + company_id = self.pool.get('res.users').browse(cr,uid,[uid],context)[0].company_id for res in self.read(cr,uid,ids): if record.charts == 'configurable': fp = tools.file_open(opj('account','configurable_account_chart.xml')) @@ -355,16 +402,36 @@ class account_installer(osv.osv_memory): tax_val = {} default_tax = [] if s_tax*100 > 0.0: + vals_tax_code = { + 'name': 'VAT%s%%'%(s_tax*100), + 'code': 'VAT%s%%'%(s_tax*100), + 'company_id': company_id.id, + 'sign': 1, + } + new_tax_code = self.pool.get('account.tax.code').create(cr,uid,vals_tax_code) sales_tax = obj_tax.create(cr, uid, - {'name':'%s%%'%(s_tax*100), - 'amount':s_tax + {'name':'VAT%s%%'%(s_tax*100), + 'description':'VAT%s%%'%(s_tax*100), + 'amount':s_tax, + 'base_code_id':new_tax_code, + 'tax_code_id':new_tax_code }) tax_val.update({'taxes_id':[(6,0,[sales_tax])]}) default_tax.append(('taxes_id',sales_tax)) if p_tax*100 > 0.0: + vals_tax_code = { + 'name': 'VAT%s%%'%(p_tax*100), + 'code': 'VAT%s%%'%(p_tax*100), + 'company_id': company_id.id, + 'sign': 1, + } + new_tax_code = self.pool.get('account.tax.code').create(cr,uid,vals_tax_code) purchase_tax = obj_tax.create(cr, uid, - {'name':'%s%%'%(p_tax*100), - 'amount':p_tax + {'name':'VAT%s%%'%(p_tax*100), + 'description':'VAT%s%%'%(p_tax*100), + 'amount':p_tax, + 'base_code_id':new_tax_code, + 'tax_code_id':new_tax_code }) tax_val.update({'supplier_taxes_id':[(6,0,[purchase_tax])]}) default_tax.append(('supplier_taxes_id',purchase_tax))