diff --git a/account_statement_base_import/parser/file_parser.py b/account_statement_base_import/parser/file_parser.py index 7eb107a6..ff8ee482 100644 --- a/account_statement_base_import/parser/file_parser.py +++ b/account_statement_base_import/parser/file_parser.py @@ -46,7 +46,7 @@ class FileParser(BankStatementImportParser): :param char: parse_name: The name of the parser :param char: ftype: extension of the file (could be csv, xls or xlsx) - :param dict: extra_fields: extra fields to add to the conversion + :param dict: extra_fields: extra fields to put into the conversion dict. In the format {fieldname: fieldtype} :param list: header : specify header fields if the csv file has no header @@ -58,14 +58,7 @@ class FileParser(BankStatementImportParser): raise except_orm( _('User Error'), _('Invalid file type %s. Please use csv, xls or xlsx') % ftype) - self.conversion_dict = { - 'ref': unicode, - 'label': unicode, - 'date': datetime.datetime, - 'amount': float_or_zero, - } - if extra_fields: - self.conversion_dict.update(extra_fields) + self.conversion_dict = extra_fields self.keys_to_validate = self.conversion_dict.keys() self.fieldnames = header self._datemode = 0 # used only for xls documents, diff --git a/account_statement_base_import/parser/generic_file_parser.py b/account_statement_base_import/parser/generic_file_parser.py index 03f4dd13..69bc8725 100644 --- a/account_statement_base_import/parser/generic_file_parser.py +++ b/account_statement_base_import/parser/generic_file_parser.py @@ -20,6 +20,11 @@ import datetime from file_parser import FileParser +from openerp.addons.account_statement_base_import.parser.file_parser import float_or_zero +try: + import xlrd +except: + raise Exception(_('Please install python lib xlrd')) class GenericFileParser(FileParser): @@ -30,8 +35,16 @@ class GenericFileParser(FileParser): """ def __init__(self, parse_name, ftype='csv', **kwargs): + conversion_dict = { + 'ref': unicode, + 'label': unicode, + 'date': datetime.datetime, + 'amount': float_or_zero, + } super(GenericFileParser, self).__init__( - parse_name, ftype=ftype, **kwargs) + parse_name, ftype=ftype, + extra_fields=conversion_dict, + **kwargs) @classmethod def parser_for(cls, parser_name):