diff --git a/__manifest__.py b/__manifest__.py index 91f044939371e22874502a8217a01f3685f495f1..e4d13667164da2caec0fe4ddb96bba605268a923 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -2,15 +2,16 @@ { 'name': 'Import BPCE Bank Statement', 'category': 'Banking addons', - 'version': '10.0.1.0.0', + 'version': '12.0.1.0.0', 'license': 'AGPL-3', 'author': 'Odoo SA,' 'Akretion,' 'La Louve,' 'GRAP,' 'Nicolas JEUDY,' - 'Aurélien DUMAINE', - 'Odoo Community Association (OCA)', + 'Aurélien DUMAINE,' + 'Odoo Community Association (OCA),' + 'Le Filament', 'website': 'https://odoo-community.org/', 'depends': [ 'account_bank_statement_import', diff --git a/wizard/account_bank_statement_import.py b/wizard/account_bank_statement_import.py index b658ef59adf840ffd243ccc47c3c4f622c254b68..f05d037d1cecdb3a2aaa679b06e4dbb14219556b 100644 --- a/wizard/account_bank_statement_import.py +++ b/wizard/account_bank_statement_import.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- import logging -import StringIO +from io import StringIO import re import datetime @@ -59,43 +59,48 @@ class AccountBankStatementImport(models.TransientModel): def _check_file(self, data_file): try: file_version = "version_A" - #for files generated before june 2017 - test_versionA = re.compile(self.regexp_version[file_version]['line_1']).search(data_file[0]) + # for files generated before june 2017 + test_versionA = re.compile( + self.regexp_version[file_version]['line_1']).search(data_file[0]) if (test_versionA == None): - #for files generated after june 2017 and before decembre 2017 + # for files generated after june 2017 and before decembre 2017 file_version = "version_B" - test_versionB = re.compile(self.regexp_version[file_version]['line_1']).search(data_file[0]) + test_versionB = re.compile( + self.regexp_version[file_version]['line_1']).search(data_file[0]) if (test_versionB == None): - #for files generated after december 2017 + # for files generated after december 2017 file_version = "version_C" - parse_line_1 = re.compile(self.regexp_version[file_version]['line_1']).search(data_file[0]) + parse_line_1 = re.compile( + self.regexp_version[file_version]['line_1']).search(data_file[0]) bank_group_code = parse_line_1.group('bank_group_code') openning_date = parse_line_1.group('opening_date') closing_date = parse_line_1.group('closing_date') - parse_line_2 = re.compile(self.regexp_version[file_version]['line_2']).search(data_file[1]) + parse_line_2 = re.compile( + self.regexp_version[file_version]['line_2']).search(data_file[1]) bank_account_number = parse_line_2.group('bank_account_number') currency = parse_line_2.group('currency') closing_balance = float(re.compile(self.regexp_version[file_version]['line_closing_balance']).search(data_file[3]).group('balance').replace(',','.')) opening_balance = float(re.compile(self.regexp_version[file_version]['line_opening_balance']).search(data_file[len(data_file)-1]).group('balance').replace(',','.')) - except Exception as e: - _logger.debug(e) + _logger.error(e) return False - return (file_version,bank_group_code,openning_date,closing_date,bank_account_number,opening_balance,closing_balance,currency) + return (file_version, bank_group_code, openning_date, closing_date, + bank_account_number, opening_balance, closing_balance, + currency) @api.model def _parse_file(self, data_file): - data_file = data_file.splitlines() + data_file = data_file.decode('iso-8859-1').splitlines() result = self._check_file(data_file) if not result: return super(AccountBankStatementImport, self)._parse_file( data_file) - file_version,bank_group_code,openning_date,closing_date,bank_account_number,opening_balance,closing_balance,currency = result + file_version, bank_group_code, openning_date, closing_date, bank_account_number, opening_balance, closing_balance, currency = result transactions = [] total_amt = 0.00 try: