odoo-addon-account-statement-import-sheet-file 16.0.1.1.1.2__py3-none-any.whl → 16.0.1.1.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of odoo-addon-account-statement-import-sheet-file might be problematic. Click here for more details.

@@ -7,7 +7,7 @@ Bank Statement TXT/CSV/XLSX Import
7
7
  !! This file is generated by oca-gen-addon-readme !!
8
8
  !! changes will be overwritten. !!
9
9
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10
- !! source digest: sha256:622f4de81eaea0676a7c563933b1d1a0d0eae98e7e22d882526af7b611ba3d50
10
+ !! source digest: sha256:52fd7c31d7753fa4ea912b113bfc30c98f54839022ff9071e6b4604483f28f30
11
11
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12
12
 
13
13
  .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -5,7 +5,7 @@
5
5
  {
6
6
  "name": "Bank Statement TXT/CSV/XLSX Import",
7
7
  "summary": "Import TXT/CSV or XLSX files as Bank Statements in Odoo",
8
- "version": "16.0.1.1.1",
8
+ "version": "16.0.1.1.2",
9
9
  "category": "Accounting",
10
10
  "website": "https://github.com/OCA/bank-statement-import",
11
11
  "author": "ForgeFlow, CorporateHub, Odoo Community Association (OCA)",
@@ -7,8 +7,8 @@ msgstr ""
7
7
  "Project-Id-Version: Odoo Server 15.0\n"
8
8
  "Report-Msgid-Bugs-To: \n"
9
9
  "POT-Creation-Date: 2023-10-18 06:13+0000\n"
10
- "PO-Revision-Date: 2024-02-08 20:34+0000\n"
11
- "Last-Translator: Ivorra78 <informatica@totmaterial.es>\n"
10
+ "PO-Revision-Date: 2024-05-12 21:35+0000\n"
11
+ "Last-Translator: Sergio Ariel Ameghino <ariel.ameghino@gmail.com>\n"
12
12
  "Language-Team: none\n"
13
13
  "Language: es\n"
14
14
  "MIME-Version: 1.0\n"
@@ -606,7 +606,7 @@ msgstr "ninguno"
606
606
  #. module: account_statement_import_sheet_file
607
607
  #: model:ir.model.fields.selection,name:account_statement_import_sheet_file.selection__account_statement_import_sheet_mapping__float_thousands_sep__quote
608
608
  msgid "quote (')"
609
- msgstr ""
609
+ msgstr "cita (')"
610
610
 
611
611
  #. module: account_statement_import_sheet_file
612
612
  #: model:ir.model.fields.selection,name:account_statement_import_sheet_file.selection__account_statement_import_sheet_mapping__delimiter__semicolon
@@ -4,6 +4,8 @@
4
4
 
5
5
  import itertools
6
6
  import logging
7
+ import math
8
+ import re
7
9
  from collections.abc import Iterable
8
10
  from datetime import datetime
9
11
  from decimal import Decimal
@@ -83,8 +85,8 @@ class AccountStatementImportSheetParser(models.TransientModel):
83
85
  balance_end = last_line["balance"]
84
86
  data.update(
85
87
  {
86
- "balance_start": float(balance_start),
87
- "balance_end_real": float(balance_end),
88
+ "balance_start": balance_start,
89
+ "balance_end_real": balance_end,
88
90
  }
89
91
  )
90
92
  transactions = list(
@@ -336,14 +338,14 @@ class AccountStatementImportSheetParser(models.TransientModel):
336
338
  balance = None
337
339
 
338
340
  if debit_credit is not None:
339
- amount = amount.copy_abs()
341
+ amount = abs(amount)
340
342
  if debit_credit == mapping.debit_value:
341
343
  amount = -amount
342
344
 
343
345
  if original_amount:
344
- original_amount = self._parse_decimal(
345
- original_amount, mapping
346
- ).copy_sign(amount)
346
+ original_amount = math.copysign(
347
+ self._parse_decimal(original_amount, mapping), amount
348
+ )
347
349
  else:
348
350
  original_amount = 0.0
349
351
  if mapping.amount_inverse_sign:
@@ -457,11 +459,18 @@ class AccountStatementImportSheetParser(models.TransientModel):
457
459
  @api.model
458
460
  def _parse_decimal(self, value, mapping):
459
461
  if isinstance(value, Decimal):
460
- return value
462
+ return float(value)
461
463
  elif isinstance(value, float):
462
- return Decimal(value)
463
- value = value or "0"
464
+ return value
464
465
  thousands, decimal = mapping._get_float_separators()
466
+ # Remove all characters except digits, thousands separator,
467
+ # decimal separator, and signs
468
+ value = (
469
+ re.sub(
470
+ r"[^\d\-+" + re.escape(thousands) + re.escape(decimal) + "]+", "", value
471
+ )
472
+ or "0"
473
+ )
465
474
  value = value.replace(thousands, "")
466
475
  value = value.replace(decimal, ".")
467
- return Decimal(value)
476
+ return float(value)
@@ -366,7 +366,7 @@ ul.auto-toc {
366
366
  !! This file is generated by oca-gen-addon-readme !!
367
367
  !! changes will be overwritten. !!
368
368
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
369
- !! source digest: sha256:622f4de81eaea0676a7c563933b1d1a0d0eae98e7e22d882526af7b611ba3d50
369
+ !! source digest: sha256:52fd7c31d7753fa4ea912b113bfc30c98f54839022ff9071e6b4604483f28f30
370
370
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
371
371
  <p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/bank-statement-import/tree/16.0/account_statement_import_sheet_file"><img alt="OCA/bank-statement-import" src="https://img.shields.io/badge/github-OCA%2Fbank--statement--import-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/bank-statement-import-16-0/bank-statement-import-16-0-account_statement_import_sheet_file"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/bank-statement-import&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
372
372
  <p>This module allows you to import any TXT/CSV or XLSX file in Odoo as bank
@@ -3,7 +3,9 @@
3
3
  # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
4
4
 
5
5
  from base64 import b64encode
6
+ from decimal import Decimal
6
7
  from os import path
8
+ from unittest.mock import Mock
7
9
 
8
10
  from odoo import fields
9
11
  from odoo.exceptions import UserError
@@ -45,6 +47,12 @@ class TestAccountStatementImportSheetFile(common.TransactionCase):
45
47
  "account_type": "asset_current",
46
48
  }
47
49
  )
50
+ self.parser = self.env["account.statement.import.sheet.parser"]
51
+ # Mock the mapping object to return predefined separators
52
+ self.mock_mapping_comma_dot = Mock()
53
+ self.mock_mapping_comma_dot._get_float_separators.return_value = (",", ".")
54
+ self.mock_mapping_dot_comma = Mock()
55
+ self.mock_mapping_dot_comma._get_float_separators.return_value = (".", ",")
48
56
 
49
57
  def _data_file(self, filename, encoding=None):
50
58
  mode = "rt" if encoding else "rb"
@@ -538,3 +546,135 @@ class TestAccountStatementImportSheetFile(common.TransactionCase):
538
546
  line2 = statement.line_ids.filtered(lambda x: x.payment_ref == "LABEL 2")
539
547
  self.assertEqual(line2.amount, 1525.00)
540
548
  self.assertEqual(line2.amount_currency, 1000.00)
549
+
550
+ def test_import_xlsx_empty_values(self):
551
+ sample_statement_map_empty_values = (
552
+ self.AccountStatementImportSheetMapping.create(
553
+ {
554
+ "name": "Sample Statement with empty values",
555
+ "amount_type": "distinct_credit_debit",
556
+ "float_decimal_sep": "comma",
557
+ "delimiter": "n/a",
558
+ "no_header": 0,
559
+ "footer_lines_skip_count": 1,
560
+ "amount_inverse_sign": 0,
561
+ "header_lines_skip_count": 1,
562
+ "quotechar": '"',
563
+ "float_thousands_sep": "dot",
564
+ "reference_column": "REF",
565
+ "description_column": "DESCRIPTION",
566
+ "amount_credit_column": "DEBIT",
567
+ "amount_debit_column": "CREDIT",
568
+ "balance_column": "BALANCE",
569
+ "timestamp_format": "%d/%m/%Y",
570
+ "timestamp_column": "DATE",
571
+ }
572
+ )
573
+ )
574
+ journal = self.AccountJournal.create(
575
+ {
576
+ "name": "Bank 2",
577
+ "type": "bank",
578
+ "code": "BAN2",
579
+ "currency_id": self.currency_usd.id,
580
+ "suspense_account_id": self.suspense_account.id,
581
+ }
582
+ )
583
+ data = self._data_file("fixtures/sample_statement_en_empty_values.xlsx")
584
+ wizard = self.AccountStatementImport.with_context(journal_id=journal.id).create(
585
+ {
586
+ "statement_filename": "fixtures/sample_statement_en_empty_values.xlsx",
587
+ "statement_file": data,
588
+ "sheet_mapping_id": sample_statement_map_empty_values.id,
589
+ }
590
+ )
591
+ wizard.with_context(
592
+ account_statement_import_sheet_file_test=True
593
+ ).import_file_button()
594
+ statement = self.AccountBankStatement.search([("journal_id", "=", journal.id)])
595
+ self.assertEqual(len(statement), 1)
596
+ self.assertEqual(len(statement.line_ids), 3)
597
+
598
+ def test_parse_decimal(self):
599
+ # Define a series of test cases
600
+ test_cases = [
601
+ (
602
+ "1,234.56",
603
+ 1234.56,
604
+ self.mock_mapping_comma_dot,
605
+ ), # standard case with thousands separator
606
+ (
607
+ "1,234,567.89",
608
+ 1234567.89,
609
+ self.mock_mapping_comma_dot,
610
+ ), # multiple thousands separators
611
+ (
612
+ "-1,234.56",
613
+ -1234.56,
614
+ self.mock_mapping_comma_dot,
615
+ ), # negative value
616
+ (
617
+ "$1,234.56",
618
+ 1234.56,
619
+ self.mock_mapping_comma_dot,
620
+ ), # prefixed with currency symbol
621
+ (
622
+ "1,234.56 USD",
623
+ 1234.56,
624
+ self.mock_mapping_comma_dot,
625
+ ), # suffixed with currency code
626
+ (
627
+ " 1,234.56 ",
628
+ 1234.56,
629
+ self.mock_mapping_comma_dot,
630
+ ), # leading and trailing spaces
631
+ (
632
+ "not a number",
633
+ 0,
634
+ self.mock_mapping_comma_dot,
635
+ ), # non-numeric input
636
+ (" ", 0, self.mock_mapping_comma_dot), # empty string
637
+ ("", 0, self.mock_mapping_comma_dot), # empty space
638
+ ("USD", 0, self.mock_mapping_comma_dot), # empty dolar
639
+ (
640
+ "12,34.56",
641
+ 1234.56,
642
+ self.mock_mapping_comma_dot,
643
+ ), # unusual thousand separator placement
644
+ (
645
+ "1234,567.89",
646
+ 1234567.89,
647
+ self.mock_mapping_comma_dot,
648
+ ), # missing one separator
649
+ (
650
+ "1234.567,89",
651
+ 1234567.89,
652
+ self.mock_mapping_dot_comma,
653
+ ), # inverted separators
654
+ ]
655
+
656
+ for value, expected, mock_mapping in test_cases:
657
+ with self.subTest(value=value):
658
+ result = self.parser._parse_decimal(value, mock_mapping)
659
+ self.assertEqual(result, expected, f"Failed for value: {value}")
660
+
661
+ def test_decimal_and_float_inputs(self):
662
+ # Test direct Decimal and float inputs
663
+ self.assertEqual(
664
+ self.parser._parse_decimal(-1234.56, self.mock_mapping_comma_dot),
665
+ -1234.56,
666
+ )
667
+ self.assertEqual(
668
+ self.parser._parse_decimal(1234.56, self.mock_mapping_comma_dot),
669
+ 1234.56,
670
+ )
671
+ self.assertEqual(
672
+ self.parser._parse_decimal(
673
+ Decimal("-1234.56"), self.mock_mapping_comma_dot
674
+ ),
675
+ -1234.56,
676
+ )
677
+ self.assertEqual(
678
+ self.parser._parse_decimal(Decimal("1234.56"), self.mock_mapping_comma_dot),
679
+ 1234.56,
680
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-account-statement-import-sheet-file
3
- Version: 16.0.1.1.1.2
3
+ Version: 16.0.1.1.2
4
4
  Summary: Import TXT/CSV or XLSX files as Bank Statements in Odoo
5
5
  Home-page: https://github.com/OCA/bank-statement-import
6
6
  Author: ForgeFlow, CorporateHub, Odoo Community Association (OCA)
@@ -26,7 +26,7 @@ Bank Statement TXT/CSV/XLSX Import
26
26
  !! This file is generated by oca-gen-addon-readme !!
27
27
  !! changes will be overwritten. !!
28
28
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
29
- !! source digest: sha256:622f4de81eaea0676a7c563933b1d1a0d0eae98e7e22d882526af7b611ba3d50
29
+ !! source digest: sha256:52fd7c31d7753fa4ea912b113bfc30c98f54839022ff9071e6b4604483f28f30
30
30
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
31
31
 
32
32
  .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -1,9 +1,9 @@
1
- odoo/addons/account_statement_import_sheet_file/README.rst,sha256=yT4QE7ZzY9_sPFAqmU-cfNll6-QYZP7e3wdOmYFxNp8,4501
1
+ odoo/addons/account_statement_import_sheet_file/README.rst,sha256=bntJdQ0pEAidWrx3OViFse6jsvQ870b4PtaybKYEZnM,4501
2
2
  odoo/addons/account_statement_import_sheet_file/__init__.py,sha256=X9EJGOE2GtZbS0G82PtSXmWSZ_R8jEM0rlJTDliQjp4,21
3
- odoo/addons/account_statement_import_sheet_file/__manifest__.py,sha256=AmS3qfWQ2I9C43eLgkEZVqP4HDGLzGZv0u_ygTVyKfc,934
3
+ odoo/addons/account_statement_import_sheet_file/__manifest__.py,sha256=2rRWupnaApuJBz-mFe2Z-_7cEFx1IA4hqqEa4CpZ6EE,934
4
4
  odoo/addons/account_statement_import_sheet_file/data/map_data.xml,sha256=nz_4CchVMF9pb_SI4I6UZAt2IBPxWapX37lU6J6sTJ0,1225
5
5
  odoo/addons/account_statement_import_sheet_file/i18n/account_statement_import_sheet_file.pot,sha256=Xf56lTES-y5d_bliUsekQdwLRKZl6KhlilArFQXfziI,26423
6
- odoo/addons/account_statement_import_sheet_file/i18n/es.po,sha256=cPPNy1M24-extpf1qBavVkg_93eseH8RQN6-2osBsBw,31866
6
+ odoo/addons/account_statement_import_sheet_file/i18n/es.po,sha256=r0dB7FwIyf4CnqrrUUwIoscwqY1oFjtLDHb8yaUyisw,31885
7
7
  odoo/addons/account_statement_import_sheet_file/i18n/es_AR.po,sha256=M0scXwemt20iY_usFw1x38I315Na5Hsl4PI-R7Nch1M,30172
8
8
  odoo/addons/account_statement_import_sheet_file/i18n/it.po,sha256=GtD-H3cuavdvEu5qxvevsCADm54pNdYPkQUvZYtQFgw,30838
9
9
  odoo/addons/account_statement_import_sheet_file/i18n/nl.po,sha256=OIfIbKptYzCICzo4vUiTYgYSfcMdQu_SxBbFEMFewzk,27321
@@ -15,7 +15,7 @@ odoo/addons/account_statement_import_sheet_file/models/__init__.py,sha256=RsEvd8
15
15
  odoo/addons/account_statement_import_sheet_file/models/account_journal.py,sha256=F4_deAvNErZ6o1gkw9uhDrEnHyWXUKNvk09mzCVzTIw,562
16
16
  odoo/addons/account_statement_import_sheet_file/models/account_statement_import.py,sha256=KWDYgO9-C1ZAF7JO9Qlq2ghROcJIwKhGp1CueTnA368,1932
17
17
  odoo/addons/account_statement_import_sheet_file/models/account_statement_import_sheet_mapping.py,sha256=KYZYk796CeNZ-j9GH8JC7QIEv2Osbn5jcV5pX1XUm18,8830
18
- odoo/addons/account_statement_import_sheet_file/models/account_statement_import_sheet_parser.py,sha256=3kYbRDSMKETnAXOfwlv8NVFs1f5RePSLDkVryVoKlBI,17084
18
+ odoo/addons/account_statement_import_sheet_file/models/account_statement_import_sheet_parser.py,sha256=hxDQUv_CN9uXSWn4yvoj_iGsMQGMWQu1sbQcEq1y7sk,17335
19
19
  odoo/addons/account_statement_import_sheet_file/readme/CONFIGURE.rst,sha256=imX9sFGbzYnr4I07MZvHBZyyhBm8pLZ6AmpKNVY6zR4,213
20
20
  odoo/addons/account_statement_import_sheet_file/readme/CONTRIBUTORS.rst,sha256=IK3_tHCu2A5OhQq1TbYtOURyUOzywj7htdWpjbo07fw,469
21
21
  odoo/addons/account_statement_import_sheet_file/readme/DESCRIPTION.rst,sha256=lHrjCbQdpNU9QhA9vwxyRgJWJHk87YujRn6P8L2Ha3A,86
@@ -23,9 +23,9 @@ odoo/addons/account_statement_import_sheet_file/readme/HISTORY.rst,sha256=XHPod2
23
23
  odoo/addons/account_statement_import_sheet_file/readme/USAGE.rst,sha256=5wVe6CMUaGqAsE-yxAuc03YSxIFnRQ9mHeFkw-UBI68,184
24
24
  odoo/addons/account_statement_import_sheet_file/security/ir.model.access.csv,sha256=ofB5jVirJJ3FQ-uWfKFD-DIg8Lh9bYLaUDQWnb9MkgM,685
25
25
  odoo/addons/account_statement_import_sheet_file/static/description/icon.png,sha256=6xBPJauaFOF0KDHfHgQopSc28kKvxMaeoQFQWZtfZDo,9455
26
- odoo/addons/account_statement_import_sheet_file/static/description/index.html,sha256=6nZqmd006DVKW-MD4KGezPqw0PzoXJmgQv4jDBw3OEo,15285
26
+ odoo/addons/account_statement_import_sheet_file/static/description/index.html,sha256=aXNBtq1kttPAYjdPypuvon9Ub9MhK08WsSqxufP6A1g,15285
27
27
  odoo/addons/account_statement_import_sheet_file/tests/__init__.py,sha256=f7vTpmONnfbbcMp5wZ1p7muSkyLC2vcDONaw2VGyiBw,121
28
- odoo/addons/account_statement_import_sheet_file/tests/test_account_statement_import_sheet_file.py,sha256=6B5XWNNefvnd4baSAOf3dDgn226mghxl4gQ4e0xY5bM,22328
28
+ odoo/addons/account_statement_import_sheet_file/tests/test_account_statement_import_sheet_file.py,sha256=3V98ug6c9xjrSMMhUAk5bXWgBjjgmZzIkx0ttFju62g,27703
29
29
  odoo/addons/account_statement_import_sheet_file/tests/fixtures/balance.csv,sha256=-7VrGM_IbKhOJzbX-bUMIsnd99uDIBkalTytlj2jVtk,209
30
30
  odoo/addons/account_statement_import_sheet_file/tests/fixtures/debit_credit.csv,sha256=AaVQ9G5gqsLhxtAsYXCmFCTxpBPonKA1uxy7ue5gYYE,223
31
31
  odoo/addons/account_statement_import_sheet_file/tests/fixtures/debit_credit_amount.csv,sha256=y-VoBcF_7WaUZhnmOqSuCv7ElCKSHRbsqKWpCH49Ams,369
@@ -40,10 +40,11 @@ odoo/addons/account_statement_import_sheet_file/tests/fixtures/original_currency
40
40
  odoo/addons/account_statement_import_sheet_file/tests/fixtures/sample_statement_credit_card_inverse_sign_en.csv,sha256=19xKZlVxR6yqSGGC2WR6_YpBKfev6pMTMThENamE8DA,222
41
41
  odoo/addons/account_statement_import_sheet_file/tests/fixtures/sample_statement_en.csv,sha256=6WexRDEog728ur2DK7J_xI056FCrX5CkB-3xK6LixAM,265
42
42
  odoo/addons/account_statement_import_sheet_file/tests/fixtures/sample_statement_en.xlsx,sha256=eOpaIIiKh6hTE_ebGwCgIaJBpoehKEQAqrXjHiMklVQ,5101
43
+ odoo/addons/account_statement_import_sheet_file/tests/fixtures/sample_statement_en_empty_values.xlsx,sha256=hNsBB9zBQG11On56axs8nZRrzff9d6DFVyQGsyuRb_M,6501
43
44
  odoo/addons/account_statement_import_sheet_file/views/account_journal_views.xml,sha256=iROLliBEfXvtXNsyHg5Ycvx9Rw9uuNWaXxdJsk8V1V4,670
44
45
  odoo/addons/account_statement_import_sheet_file/views/account_statement_import.xml,sha256=KhgiMxHjI5tq1RlkmDYOhejqrxN4mXLc5nT9EM9gQ5s,842
45
46
  odoo/addons/account_statement_import_sheet_file/views/account_statement_import_sheet_mapping.xml,sha256=1MoNt2wsvb2qHaYzrh7iVMHMjBEfwq2caRJ5mLCeEBc,6999
46
- odoo_addon_account_statement_import_sheet_file-16.0.1.1.1.2.dist-info/METADATA,sha256=4CmcKubxAaAZAM74-uFjKu-9qwRenjHMyS-iOHkSeJM,5229
47
- odoo_addon_account_statement_import_sheet_file-16.0.1.1.1.2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
48
- odoo_addon_account_statement_import_sheet_file-16.0.1.1.1.2.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
49
- odoo_addon_account_statement_import_sheet_file-16.0.1.1.1.2.dist-info/RECORD,,
47
+ odoo_addon_account_statement_import_sheet_file-16.0.1.1.2.dist-info/METADATA,sha256=xiiaHZ2tQ9c2lQPBoMImKEaJghm0uejz4jyM9t6jsJ0,5227
48
+ odoo_addon_account_statement_import_sheet_file-16.0.1.1.2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
49
+ odoo_addon_account_statement_import_sheet_file-16.0.1.1.2.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
50
+ odoo_addon_account_statement_import_sheet_file-16.0.1.1.2.dist-info/RECORD,,