mirror of
https://github.com/OCA/bank-statement-import.git
synced 2025-01-20 12:37:43 +02:00
[FIX] Fix same eror in camt54 module
This commit is contained in:
@@ -219,8 +219,6 @@ class CamtParser(models.AbstractModel):
|
|||||||
result["date"] = sorted(
|
result["date"] = sorted(
|
||||||
transactions, key=lambda x: x["date"], reverse=True
|
transactions, key=lambda x: x["date"], reverse=True
|
||||||
)[0]["date"]
|
)[0]["date"]
|
||||||
for seq, vals in enumerate(transactions, start=1):
|
|
||||||
vals["sequence"] = seq
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def check_version(self, ns, root):
|
def check_version(self, ns, root):
|
||||||
|
|||||||
@@ -10,13 +10,11 @@
|
|||||||
'narration': 'CRÉDIT GROUPÉ BVR TRAITEMENT DU 22.03.2017 NUMÉRO CLIENT 01-70884-3 PAQUET ID: 123456CHCAFEBABE',
|
'narration': 'CRÉDIT GROUPÉ BVR TRAITEMENT DU 22.03.2017 NUMÉRO CLIENT 01-70884-3 PAQUET ID: 123456CHCAFEBABE',
|
||||||
'partner_name': 'Banque Cantonale Vaudoise',
|
'partner_name': 'Banque Cantonale Vaudoise',
|
||||||
'payment_ref': '/',
|
'payment_ref': '/',
|
||||||
'ref': '302388292000011111111111111',
|
'ref': '302388292000011111111111111'},
|
||||||
'sequence': 1},
|
|
||||||
{'account_number': 'CH3333000000123456789',
|
{'account_number': 'CH3333000000123456789',
|
||||||
'amount': 1296.0,
|
'amount': 1296.0,
|
||||||
'date': '2017-03-22',
|
'date': '2017-03-22',
|
||||||
'narration': 'CRÉDIT GROUPÉ BVR TRAITEMENT DU 22.03.2017 NUMÉRO CLIENT 01-70884-3 PAQUET ID: 123456CHCAFEBABE',
|
'narration': 'CRÉDIT GROUPÉ BVR TRAITEMENT DU 22.03.2017 NUMÉRO CLIENT 01-70884-3 PAQUET ID: 123456CHCAFEBABE',
|
||||||
'partner_name': 'Banque Cantonale Vaudoise',
|
'partner_name': 'Banque Cantonale Vaudoise',
|
||||||
'payment_ref': '/',
|
'payment_ref': '/',
|
||||||
'ref': '302388292000022222222222222',
|
'ref': '302388292000022222222222222'}]}])
|
||||||
'sequence': 2}]}])
|
|
||||||
|
|||||||
@@ -9,26 +9,22 @@
|
|||||||
'date': '2014-01-05',
|
'date': '2014-01-05',
|
||||||
'partner_name': 'INSURANCE COMPANY TESTX',
|
'partner_name': 'INSURANCE COMPANY TESTX',
|
||||||
'payment_ref': 'MKB Insurance 859239PERIOD 01.01.2014 - 31.12.2014',
|
'payment_ref': 'MKB Insurance 859239PERIOD 01.01.2014 - 31.12.2014',
|
||||||
'ref': '435005714488-ABNO33052620',
|
'ref': '435005714488-ABNO33052620'},
|
||||||
'sequence': 1},
|
|
||||||
{'account_number': 'NL46ABNA0499998748',
|
{'account_number': 'NL46ABNA0499998748',
|
||||||
'amount': -564.05,
|
'amount': -564.05,
|
||||||
'date': '2014-01-05',
|
'date': '2014-01-05',
|
||||||
'partner_name': 'Test Customer',
|
'partner_name': 'Test Customer',
|
||||||
'payment_ref': 'Direct debit S14 0410 AC07 Rek.nummer blokkade TESTBANK/NL/20141229/01206408',
|
'payment_ref': 'Direct debit S14 0410 AC07 Rek.nummer blokkade TESTBANK/NL/20141229/01206408',
|
||||||
'ref': 'TESTBANK/NL/20141229/01206408',
|
'ref': 'TESTBANK/NL/20141229/01206408'},
|
||||||
'sequence': 2},
|
|
||||||
{'account_number': 'NL46ABNA0499998748',
|
{'account_number': 'NL46ABNA0499998748',
|
||||||
'amount': -100.0,
|
'amount': -100.0,
|
||||||
'date': '2014-01-05',
|
'date': '2014-01-05',
|
||||||
'partner_name': 'Test Customer',
|
'partner_name': 'Test Customer',
|
||||||
'payment_ref': 'Direct debit S14 0410 AC07 Rek.nummer blokkade TESTBANK/NL/20141229/01206408',
|
'payment_ref': 'Direct debit S14 0410 AC07 Rek.nummer blokkade TESTBANK/NL/20141229/01206408',
|
||||||
'ref': 'TESTBANK/NL/20141229/01206407',
|
'ref': 'TESTBANK/NL/20141229/01206407'},
|
||||||
'sequence': 3},
|
|
||||||
{'account_number': 'NL69ABNA0522123643',
|
{'account_number': 'NL69ABNA0522123643',
|
||||||
'amount': 1405.31,
|
'amount': 1405.31,
|
||||||
'date': '2014-01-05',
|
'date': '2014-01-05',
|
||||||
'partner_name': '3rd party Media',
|
'partner_name': '3rd party Media',
|
||||||
'payment_ref': '#RD PARTY MEDIA CUSNO 90782 4210773',
|
'payment_ref': '#RD PARTY MEDIA CUSNO 90782 4210773',
|
||||||
'ref': '115',
|
'ref': '115'}]}])
|
||||||
'sequence': 4}]}])
|
|
||||||
|
|||||||
@@ -118,6 +118,7 @@ class TestImport(TransactionCase):
|
|||||||
)
|
)
|
||||||
with open(testfile, "rb") as datafile:
|
with open(testfile, "rb") as datafile:
|
||||||
camt_file = base64.b64encode(datafile.read())
|
camt_file = base64.b64encode(datafile.read())
|
||||||
|
|
||||||
self.env["account.statement.import"].create(
|
self.env["account.statement.import"].create(
|
||||||
{
|
{
|
||||||
"statement_filename": "test import",
|
"statement_filename": "test import",
|
||||||
@@ -157,3 +158,4 @@ class TestImport(TransactionCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
self.assertTrue(all([st.line_ids for st in bank_st_record]))
|
self.assertTrue(all([st.line_ids for st in bank_st_record]))
|
||||||
|
self.assertEqual(bank_st_record[0].line_ids.mapped("sequence"), [1, 2, 3])
|
||||||
|
|||||||
@@ -25,11 +25,10 @@ class AccountStatementImport(models.TransientModel):
|
|||||||
amount = -amount
|
amount = -amount
|
||||||
statement.line_ids.create(
|
statement.line_ids.create(
|
||||||
{
|
{
|
||||||
"name": statement.name,
|
|
||||||
"amount": amount,
|
"amount": amount,
|
||||||
"statement_id": statement.id,
|
"statement_id": statement.id,
|
||||||
"date": statement.date,
|
"date": statement.date,
|
||||||
"payment_ref": "/",
|
"payment_ref": statement.name,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
statement.balance_end_real = statement.balance_start
|
statement.balance_end_real = statement.balance_start
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ class CamtParser(models.AbstractModel):
|
|||||||
"./ns:RmtInf/ns:Strd/ns:CdtrRefInf/ns:Ref", namespaces={"ns": ns}
|
"./ns:RmtInf/ns:Strd/ns:CdtrRefInf/ns:Ref", namespaces={"ns": ns}
|
||||||
)
|
)
|
||||||
if len(isr_number):
|
if len(isr_number):
|
||||||
transaction["name"] = isr_number[0].text
|
transaction["payment_ref"] = isr_number[0].text
|
||||||
partner_ref = self._get_partner_ref(isr_number[0].text)
|
partner_ref = self._get_partner_ref(isr_number[0].text)
|
||||||
if partner_ref:
|
if partner_ref:
|
||||||
transaction["partner_ref"] = partner_ref
|
transaction["partner_ref"] = partner_ref
|
||||||
@@ -68,11 +68,11 @@ class CamtParser(models.AbstractModel):
|
|||||||
"./ns:AddtlNtryInf",
|
"./ns:AddtlNtryInf",
|
||||||
"/ns:Refs/ns:InstrId",
|
"/ns:Refs/ns:InstrId",
|
||||||
]
|
]
|
||||||
name = transaction["name"]
|
payment_ref = transaction["payment_ref"]
|
||||||
for xpath_expr in xpath_exprs:
|
for xpath_expr in xpath_exprs:
|
||||||
found_node = node.xpath(xpath_expr, namespaces={"ns": ns})
|
found_node = node.xpath(xpath_expr, namespaces={"ns": ns})
|
||||||
if found_node:
|
if found_node:
|
||||||
name = found_node[0].text
|
payment_ref = found_node[0].text
|
||||||
break
|
break
|
||||||
trans_id_node = (
|
trans_id_node = (
|
||||||
node.getparent()
|
node.getparent()
|
||||||
@@ -80,9 +80,9 @@ class CamtParser(models.AbstractModel):
|
|||||||
.xpath("./ns:AcctSvcrRef", namespaces={"ns": ns})
|
.xpath("./ns:AcctSvcrRef", namespaces={"ns": ns})
|
||||||
)
|
)
|
||||||
if trans_id_node:
|
if trans_id_node:
|
||||||
name = "{} ({})".format(name, trans_id_node[0].text)
|
payment_ref = "{} ({})".format(payment_ref, trans_id_node[0].text)
|
||||||
if name:
|
if payment_ref:
|
||||||
transaction["name"] = name
|
transaction["payment_ref"] = payment_ref
|
||||||
# End add esr to the label.
|
# End add esr to the label.
|
||||||
|
|
||||||
# add transaction id to ref
|
# add transaction id to ref
|
||||||
|
|||||||
@@ -27,21 +27,21 @@ class TestGetPartnerRef(common.TransactionCase):
|
|||||||
self.ICP.set_param("isr_partner_ref", "12")
|
self.ICP.set_param("isr_partner_ref", "12")
|
||||||
ref = "11 11111 11112 34567 11111 11111".replace(" ", "")
|
ref = "11 11111 11112 34567 11111 11111".replace(" ", "")
|
||||||
partner_ref = self.Parser._get_partner_ref(ref)
|
partner_ref = self.Parser._get_partner_ref(ref)
|
||||||
self.assertEquals(partner_ref, "234567")
|
self.assertEqual(partner_ref, "234567")
|
||||||
|
|
||||||
def test_ICP_full(self):
|
def test_ICP_full(self):
|
||||||
"""Test full format of partner ref definition"""
|
"""Test full format of partner ref definition"""
|
||||||
self.ICP.set_param("isr_partner_ref", "12,6")
|
self.ICP.set_param("isr_partner_ref", "12,6")
|
||||||
ref = "11 11111 11112 34567 11111 11111".replace(" ", "")
|
ref = "11 11111 11112 34567 11111 11111".replace(" ", "")
|
||||||
partner_ref = self.Parser._get_partner_ref(ref)
|
partner_ref = self.Parser._get_partner_ref(ref)
|
||||||
self.assertEquals(partner_ref, "234567")
|
self.assertEqual(partner_ref, "234567")
|
||||||
|
|
||||||
def test_zero_stripped(self):
|
def test_zero_stripped(self):
|
||||||
"""Test full format of partner ref definition"""
|
"""Test full format of partner ref definition"""
|
||||||
self.ICP.set_param("isr_partner_ref", "12,6")
|
self.ICP.set_param("isr_partner_ref", "12,6")
|
||||||
ref = "11 11111 11110 00560 11111 11111".replace(" ", "")
|
ref = "11 11111 11110 00560 11111 11111".replace(" ", "")
|
||||||
partner_ref = self.Parser._get_partner_ref(ref)
|
partner_ref = self.Parser._get_partner_ref(ref)
|
||||||
self.assertEquals(partner_ref, "560")
|
self.assertEqual(partner_ref, "560")
|
||||||
|
|
||||||
def test_bad_ICP(self):
|
def test_bad_ICP(self):
|
||||||
"""Test ir config parameter validation"""
|
"""Test ir config parameter validation"""
|
||||||
|
|||||||
@@ -3,8 +3,6 @@
|
|||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
import base64
|
import base64
|
||||||
|
|
||||||
import mock
|
|
||||||
|
|
||||||
from odoo.modules.module import get_module_resource
|
from odoo.modules.module import get_module_resource
|
||||||
from odoo.tests.common import SavepointCase
|
from odoo.tests.common import SavepointCase
|
||||||
|
|
||||||
@@ -39,12 +37,7 @@ class TestGenerateBankStatement(SavepointCase):
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@mock.patch(
|
def _load_statement(self):
|
||||||
"odoo.addons.account.models.sequence_mixin."
|
|
||||||
"SequenceMixin._constrains_date_sequence",
|
|
||||||
side_effect=False,
|
|
||||||
)
|
|
||||||
def _load_statement(self, constraint):
|
|
||||||
testfile = get_module_resource(
|
testfile = get_module_resource(
|
||||||
"account_statement_import_camt", "test_files", "test-camt053"
|
"account_statement_import_camt", "test_files", "test-camt053"
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user