diff --git a/addons/l10n_ch/__openerp__.py b/addons/l10n_ch/__openerp__.py index 27caa0df224..1c6bb5688d7 100644 --- a/addons/l10n_ch/__openerp__.py +++ b/addons/l10n_ch/__openerp__.py @@ -63,7 +63,7 @@ TODO : """, "version" : "6.1", "author" : "Camptocamp", - "category" : "Localization/Account Charts", + "category" : "Finance", "website": "http://www.camptocamp.com", "depends" : [ diff --git a/addons/l10n_ch/bank.py b/addons/l10n_ch/bank.py index ab633a66718..65ad176d53d 100644 --- a/addons/l10n_ch/bank.py +++ b/addons/l10n_ch/bank.py @@ -48,7 +48,7 @@ class ResPartnerBank(osv.osv): 'print_bank': fields.boolean('Print Bank on BVR'), 'print_account': fields.boolean('Print Account Number on BVR'), 'acc_number': fields.char('Account/IBAN Number', size=64), - + 'my_bank': fields.boolean('Use my account to print BVR ?', help="Check to print BVR invoices"), } def name_get(self, cursor, uid, ids, context=None): @@ -64,83 +64,19 @@ class ResPartnerBank(osv.osv): res = [] for r in self.read(cursor, uid, ids, ['name','state'], context): res.append((r['id'], r['name']+' : '+bank_type_names.get(r['state'], ''))) - return res - - def post_write(self, cr, uid, ids, context={}): - """ Override of post_write method. - In Switzerland with post accounts you can either have a postal account - with a required bank number (BVR Bank) or a postal number alone (BV Post, BVR Post). - So acc_number is not always mandatory and postal and bank number are not the same field """ + return res - obj_acc = self.pool.get('account.account') - obj_data = self.pool.get('ir.model.data') - for bank in self.browse(cr, uid, ids, context): - if bank.company_id and not bank.journal_id: - # Find the code and parent of the bank account to create - dig = 6 - current_num = 1 - ids = obj_acc.search(cr, uid, [('type','=','liquidity')], context=context) - # No liquidity account exists, no template available - if not ids: continue - - ref_acc_bank_temp = obj_acc.browse(cr, uid, ids[0], context=context) - ref_acc_bank = ref_acc_bank_temp.parent_id - while True: - new_code = str(ref_acc_bank.code.ljust(dig-len(str(current_num)), '0')) + str(current_num) - ids = obj_acc.search(cr, uid, [('code', '=', new_code), ('company_id', '=', bank.company_id.id)]) - if not ids: - break - current_num += 1 - - # Here is the test - if not bank.acc_number: - number = bank.post_number - else: - number = bank.acc_number - - acc = { - 'name': (bank.bank_name or '')+' '+ number, - 'currency_id': bank.company_id.currency_id.id, - 'code': new_code, - 'type': 'liquidity', - 'user_type': ref_acc_bank_temp.user_type.id, - 'reconcile': False, - 'parent_id': ref_acc_bank.id, - 'company_id': bank.company_id.id, - } - acc_bank_id = obj_acc.create(cr,uid,acc,context=context) - - # Get the journal view id - data_id = obj_data.search(cr, uid, [('model','=','account.journal.view'), ('name','=','account_journal_bank_view')]) - data = obj_data.browse(cr, uid, data_id[0], context=context) - view_id_cash = data.res_id - - jour_obj = self.pool.get('account.journal') - new_code = 1 - while True: - code = _('BNK')+str(new_code) - ids = jour_obj.search(cr, uid, [('code','=',code)], context=context) - if not ids: - break - new_code += 1 - - #create the bank journal - vals_journal = { - 'name': (bank.bank_name or '')+' '+number, - 'code': code, - 'type': 'bank', - 'company_id': bank.company_id.id, - 'analytic_journal_id': False, - 'currency_id': False, - 'default_credit_account_id': acc_bank_id, - 'default_debit_account_id': acc_bank_id, - 'view_id': view_id_cash - } - journal_id = jour_obj.create(cr, uid, vals_journal, context=context) - - self.write(cr, uid, [bank.id], {'journal_id': journal_id}, context=context) - return True - + + def _get_number(self, bank): + "Hook to get bank number of bank account" + res = super(ResPartnerBank, self)._get_number(bank) + res = res or u'' + if bank.post_number: + if res: + res = u"%s - %s" % (res, bank.post_number) + else: + res = bank.post_number + return res _sql_constraints = [('bvr_adherent_uniq', 'unique (bvr_adherent_num)', 'The BVR adherent number must be unique !')] diff --git a/addons/l10n_ch/bank_view.xml b/addons/l10n_ch/bank_view.xml index 5558cbafc3c..f8c66c16000 100644 --- a/addons/l10n_ch/bank_view.xml +++ b/addons/l10n_ch/bank_view.xml @@ -137,7 +137,9 @@ - + + + diff --git a/addons/l10n_ch/company.py b/addons/l10n_ch/company.py index e37e787f9a5..a90bb6a0389 100644 --- a/addons/l10n_ch/company.py +++ b/addons/l10n_ch/company.py @@ -53,10 +53,10 @@ class res_company(osv.osv): } _defaults = { - 'bvr_scan_line_vert': lambda *a: 232, - 'bvr_scan_line_horz': lambda *a: 72, - 'bvr_scan_line_font_size': lambda *a: 12, - 'bvr_scan_line_letter_spacing': lambda *a: 0, + 'bvr_scan_line_vert': 232, + 'bvr_scan_line_horz': 72, + 'bvr_scan_line_font_size': 12, + 'bvr_scan_line_letter_spacing': 0, } res_company() diff --git a/addons/l10n_ch/demo/dta_demo.xml b/addons/l10n_ch/demo/dta_demo.xml index 9009e4a4336..cdddb0d7a74 100644 --- a/addons/l10n_ch/demo/dta_demo.xml +++ b/addons/l10n_ch/demo/dta_demo.xml @@ -17,7 +17,7 @@ - + My bank @@ -53,7 +53,7 @@ DTA - + diff --git a/addons/l10n_ch/invoice.py b/addons/l10n_ch/invoice.py index 69a51fdea24..9e8d3f0d57b 100644 --- a/addons/l10n_ch/invoice.py +++ b/addons/l10n_ch/invoice.py @@ -73,8 +73,9 @@ class account_invoice(osv.osv): help='The partner bank account to pay\nKeep empty to use the default' ), ### Amount to pay - 'amount_to_pay': fields.function(_amount_to_pay, method=True, - type='float', string='Amount to be paid', + 'amount_to_pay': fields.function(_amount_to_pay, + type='float', + string='Amount to be paid', help='The amount which should be paid at the current date\n' \ 'minus the amount which is already in payment order'), } @@ -144,23 +145,26 @@ class account_invoice(osv.osv): date_invoice=False, payment_term=False, partner_bank_id=False, company_id=False): """ Function that is call when the partner of the invoice is changed it will retrieve and set the good bank partner bank""" - + #context not define in signature of function in account module + context = {} res = super(account_invoice, self).onchange_partner_id(cr, uid, ids, type, partner_id, date_invoice, - payment_term) + payment_term, + partner_bank_id, + company_id) bank_id = False if partner_id: if type in ('in_invoice', 'in_refund'): - p = self.pool.get('res.partner').browse(cr, uid, partner_id) + p = self.pool.get('res.partner').browse(cr, uid, partner_id, context) if p.bank_ids: bank_id = p.bank_ids[0].id res['value']['partner_bank_id'] = bank_id else: - user = self.pool.get('res.users').browse(cr, uid, uid) + user = self.pool.get('res.users').browse(cr, uid, uid, context) bank_ids = user.company_id.partner_id.bank_ids if bank_ids: #How to order bank ? diff --git a/addons/l10n_ch/test/l10n_ch_dta.yml b/addons/l10n_ch/test/l10n_ch_dta.yml index 125f859dc4c..3f1dbacfd86 100644 --- a/addons/l10n_ch/test/l10n_ch_dta.yml +++ b/addons/l10n_ch/test/l10n_ch_dta.yml @@ -95,7 +95,7 @@ context['active_id'] = pay_order_id result = wiz.create_dta(context=context) assert result, "No result returned" - + data = wiz.read(['dta_file']) dta_file = base64.decodestring(data[0]['dta_file'] or '') assert dta_file, "File is empty" diff --git a/addons/l10n_ch/wizard/bvr_import.py b/addons/l10n_ch/wizard/bvr_import.py index bf085334eda..31c1e9ab96f 100644 --- a/addons/l10n_ch/wizard/bvr_import.py +++ b/addons/l10n_ch/wizard/bvr_import.py @@ -168,7 +168,7 @@ def _import(self, cursor, user, data, context=None): # line2reconcile = line.id account_id = line.account_id.id break - result = voucher_obj.onchange_partner_id(cursor, user, [], partner_id, journal_id=statement.journal_id.id, price=abs(record['amount']), voucher_currency_id= statement.currency.id, ttype='receipt', date=statement.date ,context=context) + result = voucher_obj.onchange_partner_id(cursor, user, [], partner_id, journal_id=statement.journal_id.id, price=abs(record['amount']), currency_id= statement.currency.id, ttype='receipt', date=statement.date ,context=context) voucher_res = { 'type': 'receipt' , 'name': values['name'], diff --git a/addons/l10n_ch/wizard/create_dta_view.xml b/addons/l10n_ch/wizard/create_dta_view.xml index 3f466f1da7a..53d0cdc42d8 100644 --- a/addons/l10n_ch/wizard/create_dta_view.xml +++ b/addons/l10n_ch/wizard/create_dta_view.xml @@ -9,11 +9,11 @@
- +