You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
1.2 KiB

  1. # Copyright 2020 CorporateHub (https://corporatehub.eu)
  2. # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
  3. from odoo import api, fields, models
  4. import logging
  5. _logger = logging.getLogger(__name__)
  6. class AccountBankStatementImport(models.TransientModel):
  7. _inherit = 'account.bank.statement.import'
  8. def _get_default_mapping_id(self):
  9. return self.env["account.journal"].browse(
  10. self.env.context.get('journal_id')).default_sheet_mapping_id
  11. sheet_mapping_id = fields.Many2one(
  12. string='Sheet mapping',
  13. comodel_name='account.bank.statement.import.sheet.mapping',
  14. default=_get_default_mapping_id,
  15. )
  16. @api.multi
  17. def _parse_file(self, data_file):
  18. self.ensure_one()
  19. try:
  20. Parser = self.env['account.bank.statement.import.sheet.parser']
  21. return Parser.parse(
  22. self.sheet_mapping_id,
  23. data_file,
  24. self.filename
  25. )
  26. except:
  27. if self.env.context.get(
  28. 'account_bank_statement_import_txt_xlsx_test'):
  29. raise
  30. _logger.warning('Sheet parser error', exc_info=True)
  31. return super()._parse_file(data_file)