mirror of
https://github.com/brain-tec/account_ebics.git
synced 2024-12-25 19:01:44 +00:00
[16.0]account_ebics - fix for multi-statement/multi-bank-acccount camt files
This commit is contained in:
parent
201dfa642c
commit
98a24fdb5e
@ -209,12 +209,12 @@ class EbicsFile(models.Model):
|
||||
self.note_process += "\n"
|
||||
if error_cnt:
|
||||
self.note_process += (
|
||||
_("Number of errors detected during import: %s: ") % error_cnt
|
||||
_("Number of errors detected during import: %s") % error_cnt
|
||||
)
|
||||
self.note_process += "\n"
|
||||
if warning_cnt:
|
||||
self.note_process += (
|
||||
_("Number of watnings detected during import: %s: ") % warning_cnt
|
||||
_("Number of warnings detected during import: %s") % warning_cnt
|
||||
)
|
||||
if st_cnt:
|
||||
self.note_process += "\n\n"
|
||||
@ -410,6 +410,7 @@ class EbicsFile(models.Model):
|
||||
res = {"statement_ids": [], "notifications": []}
|
||||
try:
|
||||
with self.env.cr.savepoint():
|
||||
transactions = False
|
||||
msg_hdr = _("{} : Import failed for file %(fn)s:\n", fn=self.name)
|
||||
file_data = base64.b64decode(self.data)
|
||||
root = etree.fromstring(file_data, parser=etree.XMLParser(recover=True))
|
||||
@ -460,6 +461,19 @@ class EbicsFile(models.Model):
|
||||
),
|
||||
]
|
||||
)
|
||||
if not journal:
|
||||
message = msg_hdr.format(_("Error"))
|
||||
message += _(
|
||||
"No financial journal found for Account Number %(nbr)s, "
|
||||
"Currency %(cc)s",
|
||||
nbr=acc_number,
|
||||
cc=currency_code,
|
||||
)
|
||||
res["notifications"].append(
|
||||
{"type": "error", "message": message}
|
||||
)
|
||||
continue
|
||||
|
||||
journal_currency = (
|
||||
journal.currency_id or journal.company_id.currency_id
|
||||
)
|
||||
@ -477,9 +491,16 @@ class EbicsFile(models.Model):
|
||||
continue
|
||||
|
||||
root_new = deepcopy(root)
|
||||
entries = False
|
||||
for j, el in enumerate(root_new[0].findall("ns:Stmt", ns), start=1):
|
||||
if j != i:
|
||||
el.getparent.remove(el)
|
||||
el.getparent().remove(el)
|
||||
else:
|
||||
entries = el.findall("ns:Ntry", ns)
|
||||
if not entries:
|
||||
continue
|
||||
|
||||
transactions = True
|
||||
data = base64.b64encode(etree.tostring(root_new))
|
||||
|
||||
if author == "oca":
|
||||
@ -504,6 +525,12 @@ class EbicsFile(models.Model):
|
||||
if notifications:
|
||||
res["notifications"].append(act["context"]["notifications"])
|
||||
|
||||
if not transactions:
|
||||
message = _(
|
||||
"Warning:\nNo transactions found in file %(fn)s.", fn=self.name
|
||||
)
|
||||
res["notifications"].append({"type": "warning", "message": message})
|
||||
|
||||
except UserError as e:
|
||||
message = msg_hdr.format(_("Error"))
|
||||
message += "".join(e.args)
|
||||
|
Loading…
Reference in New Issue
Block a user