Skip to content
Extraits de code Groupes Projets
Valider 5c918183 rédigé par Benjamin - Le Filament's avatar Benjamin - Le Filament
Parcourir les fichiers

[mig] migration v12

parent 29aef25a
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -2,15 +2,16 @@ ...@@ -2,15 +2,16 @@
{ {
'name': 'Import BPCE Bank Statement', 'name': 'Import BPCE Bank Statement',
'category': 'Banking addons', 'category': 'Banking addons',
'version': '10.0.1.0.0', 'version': '12.0.1.0.0',
'license': 'AGPL-3', 'license': 'AGPL-3',
'author': 'Odoo SA,' 'author': 'Odoo SA,'
'Akretion,' 'Akretion,'
'La Louve,' 'La Louve,'
'GRAP,' 'GRAP,'
'Nicolas JEUDY,' 'Nicolas JEUDY,'
'Aurélien DUMAINE', 'Aurélien DUMAINE,'
'Odoo Community Association (OCA)', 'Odoo Community Association (OCA),'
'Le Filament',
'website': 'https://odoo-community.org/', 'website': 'https://odoo-community.org/',
'depends': [ 'depends': [
'account_bank_statement_import', 'account_bank_statement_import',
......
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import logging import logging
import StringIO from io import StringIO
import re import re
import datetime import datetime
...@@ -60,36 +60,41 @@ class AccountBankStatementImport(models.TransientModel): ...@@ -60,36 +60,41 @@ class AccountBankStatementImport(models.TransientModel):
try: try:
file_version = "version_A" file_version = "version_A"
# for files generated before june 2017 # for files generated before june 2017
test_versionA = re.compile(self.regexp_version[file_version]['line_1']).search(data_file[0]) test_versionA = re.compile(
self.regexp_version[file_version]['line_1']).search(data_file[0])
if (test_versionA == None): 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" 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): if (test_versionB == None):
# for files generated after december 2017 # for files generated after december 2017
file_version = "version_C" 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') bank_group_code = parse_line_1.group('bank_group_code')
openning_date = parse_line_1.group('opening_date') openning_date = parse_line_1.group('opening_date')
closing_date = parse_line_1.group('closing_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') bank_account_number = parse_line_2.group('bank_account_number')
currency = parse_line_2.group('currency') 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(',','.')) 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(',','.')) 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: except Exception as e:
_logger.debug(e) _logger.error(e)
return False 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 @api.model
def _parse_file(self, data_file): 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) result = self._check_file(data_file)
if not result: if not result:
return super(AccountBankStatementImport, self)._parse_file( return super(AccountBankStatementImport, self)._parse_file(
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter