mirror of
https://github.com/brain-tec/account_ebics.git
synced 2024-11-23 20:52:04 +00:00
[14.0][MIG]account_ebics
This commit is contained in:
parent
516c13873d
commit
8dc2641a05
@ -59,7 +59,7 @@ We also recommend to consider the installation of the following modules:
|
|||||||
|
|
||||||
|
|
|
|
||||||
|
|
||||||
- account_bank_statement_import_camt_oca
|
- account_statement_import_camt
|
||||||
|
|
||||||
Required to handle camt.052 and camt.054 files.
|
Required to handle camt.052 and camt.054 files.
|
||||||
|
|
||||||
@ -67,13 +67,25 @@ We also recommend to consider the installation of the following modules:
|
|||||||
|
|
||||||
|
|
|
|
||||||
|
|
||||||
- account_bank_statement_import_helper
|
- account_statement_import_helper
|
||||||
|
|
||||||
Required if you are processing bank statements with local bank account numbers (e.g. french CFONB files).
|
Required if you are processing bank statements with local bank account numbers (e.g. french CFONB files)
|
||||||
|
and using import parsers based upon the OCA account_statement_import module.
|
||||||
|
|
||||||
The import helper will match the local bank account number with the IBAN number specified on the Odoo Financial journal.
|
The import helper will match the local bank account number with the IBAN number specified on the Odoo Financial journal.
|
||||||
|
|
||||||
Cf. https://github.com/noviat-apps
|
Cf. https://github.com/Noviat/noviat-apps
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
|
- account_bank_statement_import_helper
|
||||||
|
|
||||||
|
Required if you are processing bank statements with local bank account numbers
|
||||||
|
and using import parsers based upon the Odoo Enterprise account_bank_statement_import module.
|
||||||
|
|
||||||
|
The import helper will match the local bank account number with the IBAN number specified on the Odoo Financial journal.
|
||||||
|
|
||||||
|
Cf. https://github.com/Noviat/noviat-apps
|
||||||
|
|
||||||
|
|
|
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright 2009-2020 Noviat.
|
# Copyright 2009-2021 Noviat.
|
||||||
# License LGPL-3 or later (http://www.gnu.org/licenses/lpgl).
|
# License LGPL-3 or later (http://www.gnu.org/licenses/lpgl).
|
||||||
|
|
||||||
import base64
|
import base64
|
||||||
@ -138,16 +138,19 @@ class EbicsFile(models.Model):
|
|||||||
}
|
}
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def _check_import_module(self, module):
|
def _check_import_module(self, module, raise_if_not_found=True):
|
||||||
mod = self.env['ir.module.module'].search(
|
mod = self.env['ir.module.module'].sudo().search(
|
||||||
[('name', '=like', module),
|
[('name', '=like', module),
|
||||||
('state', '=', 'installed')])
|
('state', '=', 'installed')])
|
||||||
if not mod:
|
if not mod:
|
||||||
|
if raise_if_not_found:
|
||||||
raise UserError(_(
|
raise UserError(_(
|
||||||
"The module to process the '%s' format is not installed "
|
"The module to process the '%s' format is not installed "
|
||||||
"on your system. "
|
"on your system. "
|
||||||
"\nPlease install module '%s'")
|
"\nPlease install module '%s'")
|
||||||
% (self.format_id.name, module))
|
% (self.format_id.name, module))
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
def _process_result_action(self, res):
|
def _process_result_action(self, res):
|
||||||
notifications = []
|
notifications = []
|
||||||
@ -287,7 +290,7 @@ class EbicsFile(models.Model):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _process_camt052(self):
|
def _process_camt052(self):
|
||||||
import_module = 'account_bank_statement_import_camt_oca'
|
import_module = 'account_statement_import_camt'
|
||||||
self._check_import_module(import_module)
|
self._check_import_module(import_module)
|
||||||
return self._process_camt053(self)
|
return self._process_camt053(self)
|
||||||
|
|
||||||
@ -301,7 +304,7 @@ class EbicsFile(models.Model):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _process_camt054(self):
|
def _process_camt054(self):
|
||||||
import_module = 'account_bank_statement_import_camt_oca'
|
import_module = 'account_statement_import_camt'
|
||||||
self._check_import_module(import_module)
|
self._check_import_module(import_module)
|
||||||
return self._process_camt053(self)
|
return self._process_camt053(self)
|
||||||
|
|
||||||
@ -315,10 +318,67 @@ class EbicsFile(models.Model):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _process_camt053(self):
|
def _process_camt053(self):
|
||||||
import_module = 'account_bank_statement_import_camt%'
|
modules = [
|
||||||
self._check_import_module(import_module)
|
('oca', 'account_statement_import_camt'),
|
||||||
wiz_model = 'account.bank.statement.import'
|
('oe', 'account_bank_statement_import_camt'),
|
||||||
|
]
|
||||||
|
found = False
|
||||||
|
for src, mod in modules:
|
||||||
|
if self._check_import_module(mod, raise_if_not_found=False):
|
||||||
|
found = True
|
||||||
|
break
|
||||||
|
if not found:
|
||||||
|
raise UserError(_(
|
||||||
|
"The module to process the '%s' format is not installed "
|
||||||
|
"on your system. "
|
||||||
|
"\nPlease install one of the following modules: \n%s."
|
||||||
|
) % (self.format_id.name, ', '.join([x[1] for x in modules]))
|
||||||
|
)
|
||||||
|
if src == 'oca':
|
||||||
|
self._process_camt053_oca()
|
||||||
|
else:
|
||||||
|
self._process_camt053_oe()
|
||||||
|
|
||||||
|
def _process_camt053_oca(self):
|
||||||
|
wiz_model = 'account.statement.import'
|
||||||
|
wiz_vals = {
|
||||||
|
'statement_filename': self.name,
|
||||||
|
'statement_file': self.data,
|
||||||
|
}
|
||||||
|
result = {
|
||||||
|
'type': 'ir.actions.client',
|
||||||
|
'tag': 'bank_statement_reconciliation_view',
|
||||||
|
'context': {'statement_line_ids': [],
|
||||||
|
'company_ids': self.env.user.company_ids.ids,
|
||||||
|
'notifications': []},
|
||||||
|
}
|
||||||
|
wiz_ctx = dict(self.env.context, active_model='ebics.file')
|
||||||
|
wiz = self.env[wiz_model].with_context(wiz_ctx).create(wiz_vals)
|
||||||
|
res = wiz.import_file_button()
|
||||||
|
ctx = res.get('context')
|
||||||
|
import pdb; pdb.set_trace()
|
||||||
|
if (res.get('res_model')
|
||||||
|
== 'account.bank.statement.import.journal.creation'):
|
||||||
|
message = _(
|
||||||
|
"Error detected while importing statement %s.\n"
|
||||||
|
) % self.name
|
||||||
|
message += _("No financial journal found.")
|
||||||
|
details = _(
|
||||||
|
'Bank account number: %s'
|
||||||
|
) % ctx.get('default_bank_acc_number')
|
||||||
|
result['context']['notifications'].extend([{
|
||||||
|
'type': 'warning',
|
||||||
|
'message': message,
|
||||||
|
'details': details,
|
||||||
|
}])
|
||||||
|
result['context']['statement_line_ids'].extend(
|
||||||
|
ctx['statement_line_ids'])
|
||||||
|
result['context']['notifications'].extend(
|
||||||
|
ctx['notifications'])
|
||||||
|
return self._process_result_action(result)
|
||||||
|
|
||||||
|
def _process_camt053_oe(self):
|
||||||
|
wiz_model = 'account.bank.statement.import'
|
||||||
wiz_vals = {
|
wiz_vals = {
|
||||||
'attachment_ids': [(0, 0, {'name': self.name,
|
'attachment_ids': [(0, 0, {'name': self.name,
|
||||||
'datas': self.data,
|
'datas': self.data,
|
||||||
|
@ -298,7 +298,7 @@ class EbicsXfer(models.TransientModel):
|
|||||||
suffix = self.format_id.suffix
|
suffix = self.format_id.suffix
|
||||||
fn = self.upload_fname
|
fn = self.upload_fname
|
||||||
if not fn.endswith(suffix):
|
if not fn.endswith(suffix):
|
||||||
fn = '.'.join[fn, suffix]
|
fn = '.'.join([fn, suffix])
|
||||||
ef_vals = {
|
ef_vals = {
|
||||||
'name': self.upload_fname,
|
'name': self.upload_fname,
|
||||||
'data': self.upload_data,
|
'data': self.upload_data,
|
||||||
|
Loading…
Reference in New Issue
Block a user