odoo-addon-account-reconcile-oca 16.0.1.2.12.2__py3-none-any.whl → 17.0.1.0.0.20__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.
- odoo/addons/account_reconcile_oca/README.rst +19 -18
- odoo/addons/account_reconcile_oca/__manifest__.py +4 -1
- odoo/addons/account_reconcile_oca/hooks.py +2 -2
- odoo/addons/account_reconcile_oca/i18n/account_reconcile_oca.pot +89 -8
- odoo/addons/account_reconcile_oca/i18n/ca.po +0 -5
- odoo/addons/account_reconcile_oca/i18n/es.po +2 -7
- odoo/addons/account_reconcile_oca/i18n/fr.po +0 -5
- odoo/addons/account_reconcile_oca/i18n/hr.po +0 -5
- odoo/addons/account_reconcile_oca/i18n/nl.po +0 -5
- odoo/addons/account_reconcile_oca/i18n/pt_BR.po +0 -5
- odoo/addons/account_reconcile_oca/i18n/sv.po +34 -39
- odoo/addons/account_reconcile_oca/i18n/tr.po +0 -5
- odoo/addons/account_reconcile_oca/models/__init__.py +3 -0
- odoo/addons/account_reconcile_oca/models/account_account_reconcile.py +2 -2
- odoo/addons/account_reconcile_oca/models/account_bank_statement.py +15 -0
- odoo/addons/account_reconcile_oca/models/account_bank_statement_line.py +98 -19
- odoo/addons/account_reconcile_oca/models/account_journal.py +15 -1
- odoo/addons/account_reconcile_oca/models/account_move_line.py +0 -1
- odoo/addons/account_reconcile_oca/models/account_reconcile_abstract.py +4 -2
- odoo/addons/account_reconcile_oca/models/res_company.py +14 -0
- odoo/addons/account_reconcile_oca/models/res_config_settings.py +12 -0
- odoo/addons/account_reconcile_oca/readme/CONTRIBUTORS.md +1 -0
- odoo/addons/account_reconcile_oca/readme/{DESCRIPTION.rst → DESCRIPTION.md} +2 -1
- odoo/addons/account_reconcile_oca/readme/ROADMAP.md +3 -0
- odoo/addons/account_reconcile_oca/readme/USAGE.md +10 -0
- odoo/addons/account_reconcile_oca/static/description/index.html +10 -9
- odoo/addons/account_reconcile_oca/static/src/js/reconcile/reconcile_controller.esm.js +44 -4
- odoo/addons/account_reconcile_oca/static/src/js/reconcile/reconcile_renderer.esm.js +52 -1
- odoo/addons/account_reconcile_oca/static/src/js/reconcile_form/reconcile_form_controller.esm.js +3 -0
- odoo/addons/account_reconcile_oca/static/src/js/reconcile_manual/reconcile_manual_controller.esm.js +3 -0
- odoo/addons/account_reconcile_oca/static/src/js/reconcile_move_line/reconcile_move_line_renderer.esm.js +1 -1
- odoo/addons/account_reconcile_oca/static/src/js/widgets/reconcile_chatter_field.esm.js +11 -4
- odoo/addons/account_reconcile_oca/static/src/js/widgets/reconcile_data_widget.esm.js +22 -33
- odoo/addons/account_reconcile_oca/static/src/js/widgets/reconcile_move_line_widget.esm.js +62 -6
- odoo/addons/account_reconcile_oca/static/src/js/widgets/selection_badge_uncheck.esm.js +10 -1
- odoo/addons/account_reconcile_oca/static/src/scss/reconcile.scss +16 -15
- odoo/addons/account_reconcile_oca/static/src/xml/reconcile.xml +44 -10
- odoo/addons/account_reconcile_oca/tests/test_account_reconcile.py +15 -9
- odoo/addons/account_reconcile_oca/tests/test_bank_account_reconcile.py +28 -21
- odoo/addons/account_reconcile_oca/views/account_account.xml +3 -3
- odoo/addons/account_reconcile_oca/views/account_account_reconcile.xml +7 -7
- odoo/addons/account_reconcile_oca/views/account_bank_statement.xml +46 -0
- odoo/addons/account_reconcile_oca/views/account_bank_statement_line.xml +71 -37
- odoo/addons/account_reconcile_oca/views/account_journal.xml +10 -4
- odoo/addons/account_reconcile_oca/views/account_move.xml +1 -1
- odoo/addons/account_reconcile_oca/views/account_move_line.xml +8 -3
- odoo/addons/account_reconcile_oca/views/res_config_settings.xml +24 -0
- {odoo_addon_account_reconcile_oca-16.0.1.2.12.2.dist-info → odoo_addon_account_reconcile_oca-17.0.1.0.0.20.dist-info}/METADATA +27 -28
- odoo_addon_account_reconcile_oca-17.0.1.0.0.20.dist-info/RECORD +64 -0
- {odoo_addon_account_reconcile_oca-16.0.1.2.12.2.dist-info → odoo_addon_account_reconcile_oca-17.0.1.0.0.20.dist-info}/WHEEL +1 -1
- odoo_addon_account_reconcile_oca-17.0.1.0.0.20.dist-info/top_level.txt +1 -0
- odoo/addons/account_reconcile_oca/i18n/it.po +0 -598
- odoo/addons/account_reconcile_oca/migrations/16.0.1.2.0/pre-migration.py +0 -23
- odoo/addons/account_reconcile_oca/readme/CONTRIBUTORS.rst +0 -1
- odoo/addons/account_reconcile_oca/readme/ROADMAP.rst +0 -3
- odoo/addons/account_reconcile_oca/readme/USAGE.rst +0 -12
- odoo_addon_account_reconcile_oca-16.0.1.2.12.2.dist-info/RECORD +0 -61
- odoo_addon_account_reconcile_oca-16.0.1.2.12.2.dist-info/top_level.txt +0 -1
@@ -1,28 +1,34 @@
|
|
1
1
|
from odoo.tests import Form, tagged
|
2
2
|
|
3
|
-
from odoo.addons.
|
3
|
+
from odoo.addons.account_reconcile_model_oca.tests.common import (
|
4
|
+
TestAccountReconciliationCommon,
|
5
|
+
)
|
4
6
|
|
5
7
|
|
6
8
|
@tagged("post_install", "-at_install")
|
7
9
|
class TestReconciliationWidget(TestAccountReconciliationCommon):
|
10
|
+
@classmethod
|
11
|
+
def _setup_context(cls):
|
12
|
+
return {**cls.env.context, "_test_account_reconcile_oca": True}
|
13
|
+
|
8
14
|
@classmethod
|
9
15
|
def setUpClass(cls, chart_template_ref=None):
|
10
16
|
super().setUpClass(chart_template_ref=chart_template_ref)
|
11
|
-
|
17
|
+
cls.env = cls.env(context=cls._setup_context())
|
12
18
|
cls.acc_bank_stmt_model = cls.env["account.bank.statement"]
|
13
19
|
cls.acc_bank_stmt_line_model = cls.env["account.bank.statement.line"]
|
14
20
|
cls.bank_journal_usd.suspense_account_id = (
|
15
|
-
cls.company.account_journal_suspense_account_id
|
21
|
+
cls.env.company.account_journal_suspense_account_id
|
16
22
|
)
|
17
23
|
cls.bank_journal_euro.suspense_account_id = (
|
18
|
-
cls.company.account_journal_suspense_account_id
|
24
|
+
cls.env.company.account_journal_suspense_account_id
|
19
25
|
)
|
20
26
|
cls.current_assets_account = (
|
21
27
|
cls.env["account.account"]
|
22
28
|
.search(
|
23
29
|
[
|
24
30
|
("account_type", "=", "asset_current"),
|
25
|
-
("company_id", "=", cls.company.id),
|
31
|
+
("company_id", "=", cls.env.company.id),
|
26
32
|
],
|
27
33
|
limit=1,
|
28
34
|
)
|
@@ -34,7 +40,7 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
|
34
40
|
.search(
|
35
41
|
[
|
36
42
|
("account_type", "=", "asset_receivable"),
|
37
|
-
("company_id", "=", cls.company.id),
|
43
|
+
("company_id", "=", cls.env.company.id),
|
38
44
|
],
|
39
45
|
limit=1,
|
40
46
|
)
|
@@ -46,7 +52,7 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
|
46
52
|
.search(
|
47
53
|
[
|
48
54
|
("account_type", "=", "equity"),
|
49
|
-
("company_id", "=", cls.company.id),
|
55
|
+
("company_id", "=", cls.env.company.id),
|
50
56
|
],
|
51
57
|
limit=1,
|
52
58
|
)
|
@@ -57,7 +63,7 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
|
57
63
|
.search(
|
58
64
|
[
|
59
65
|
("account_type", "=", "asset_non_current"),
|
60
|
-
("company_id", "=", cls.company.id),
|
66
|
+
("company_id", "=", cls.env.company.id),
|
61
67
|
],
|
62
68
|
limit=1,
|
63
69
|
)
|
@@ -251,7 +257,7 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
|
251
257
|
0,
|
252
258
|
{
|
253
259
|
"account_id": self.asset_receivable_account.id,
|
254
|
-
"partner_id": self.company.partner_id.id,
|
260
|
+
"partner_id": self.env.company.partner_id.id,
|
255
261
|
"name": "DEMO",
|
256
262
|
"credit": 100,
|
257
263
|
},
|
@@ -3,27 +3,34 @@ import time
|
|
3
3
|
from odoo.exceptions import UserError
|
4
4
|
from odoo.tests import Form, tagged
|
5
5
|
|
6
|
-
from odoo.addons.
|
6
|
+
from odoo.addons.account_reconcile_model_oca.tests.common import (
|
7
|
+
TestAccountReconciliationCommon,
|
8
|
+
)
|
7
9
|
|
8
10
|
|
9
11
|
@tagged("post_install", "-at_install")
|
10
12
|
class TestReconciliationWidget(TestAccountReconciliationCommon):
|
13
|
+
@classmethod
|
14
|
+
def _setup_context(cls):
|
15
|
+
return {**cls.env.context, "_test_account_reconcile_oca": True}
|
16
|
+
|
11
17
|
@classmethod
|
12
18
|
def setUpClass(cls, chart_template_ref=None):
|
13
19
|
super().setUpClass(chart_template_ref=chart_template_ref)
|
20
|
+
cls.env = cls.env(context=cls._setup_context())
|
14
21
|
|
15
22
|
cls.acc_bank_stmt_model = cls.env["account.bank.statement"]
|
16
23
|
cls.acc_bank_stmt_line_model = cls.env["account.bank.statement.line"]
|
17
24
|
cls.bank_journal_usd.suspense_account_id = (
|
18
|
-
cls.company.account_journal_suspense_account_id
|
25
|
+
cls.env.company.account_journal_suspense_account_id
|
19
26
|
)
|
20
27
|
cls.bank_journal_euro.suspense_account_id = (
|
21
|
-
cls.company.account_journal_suspense_account_id
|
28
|
+
cls.env.company.account_journal_suspense_account_id
|
22
29
|
)
|
23
30
|
cls.current_assets_account = cls.env["account.account"].search(
|
24
31
|
[
|
25
32
|
("account_type", "=", "asset_current"),
|
26
|
-
("company_id", "=", cls.company.id),
|
33
|
+
("company_id", "=", cls.env.company.id),
|
27
34
|
],
|
28
35
|
limit=1,
|
29
36
|
)
|
@@ -98,7 +105,7 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
|
98
105
|
) as f:
|
99
106
|
self.assertFalse(f.can_reconcile)
|
100
107
|
f.add_account_move_line_id = inv1.line_ids.filtered(
|
101
|
-
lambda
|
108
|
+
lambda line: line.account_id.account_type == "asset_receivable"
|
102
109
|
)
|
103
110
|
self.assertFalse(f.add_account_move_line_id)
|
104
111
|
self.assertTrue(f.can_reconcile)
|
@@ -130,7 +137,7 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
|
130
137
|
}
|
131
138
|
)
|
132
139
|
receivable1 = inv1.line_ids.filtered(
|
133
|
-
lambda
|
140
|
+
lambda line: line.account_id.account_type == "asset_receivable"
|
134
141
|
)
|
135
142
|
with Form(
|
136
143
|
bank_stmt_line,
|
@@ -184,7 +191,7 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
|
184
191
|
) as f:
|
185
192
|
self.assertFalse(f.can_reconcile)
|
186
193
|
f.add_account_move_line_id = inv1.line_ids.filtered(
|
187
|
-
lambda
|
194
|
+
lambda line: line.account_id.account_type == "asset_receivable"
|
188
195
|
)
|
189
196
|
self.assertFalse(f.add_account_move_line_id)
|
190
197
|
self.assertTrue(f.can_reconcile)
|
@@ -238,10 +245,10 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
|
238
245
|
}
|
239
246
|
)
|
240
247
|
receivable1 = inv1.line_ids.filtered(
|
241
|
-
lambda
|
248
|
+
lambda line: line.account_id.account_type == "asset_receivable"
|
242
249
|
)
|
243
250
|
receivable2 = inv2.line_ids.filtered(
|
244
|
-
lambda
|
251
|
+
lambda line: line.account_id.account_type == "asset_receivable"
|
245
252
|
)
|
246
253
|
with Form(
|
247
254
|
bank_stmt_line,
|
@@ -298,10 +305,10 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
|
298
305
|
}
|
299
306
|
)
|
300
307
|
receivable1 = inv1.line_ids.filtered(
|
301
|
-
lambda
|
308
|
+
lambda line: line.account_id.account_type == "liability_payable"
|
302
309
|
)
|
303
310
|
receivable2 = inv2.line_ids.filtered(
|
304
|
-
lambda
|
311
|
+
lambda line: line.account_id.account_type == "liability_payable"
|
305
312
|
)
|
306
313
|
with Form(
|
307
314
|
bank_stmt_line,
|
@@ -419,7 +426,7 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
|
419
426
|
inv1 = self.create_invoice(currency_id=self.currency_euro_id)
|
420
427
|
|
421
428
|
receivable1 = inv1.line_ids.filtered(
|
422
|
-
lambda
|
429
|
+
lambda line: line.account_id.account_type == "asset_receivable"
|
423
430
|
)
|
424
431
|
bank_stmt = self.acc_bank_stmt_model.create(
|
425
432
|
{
|
@@ -525,7 +532,7 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
|
525
532
|
}
|
526
533
|
)
|
527
534
|
receivable1 = inv1.line_ids.filtered(
|
528
|
-
lambda
|
535
|
+
lambda line: line.account_id.account_type == "asset_receivable"
|
529
536
|
)
|
530
537
|
with Form(
|
531
538
|
bank_stmt_line,
|
@@ -572,7 +579,7 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
|
572
579
|
}
|
573
580
|
)
|
574
581
|
receivable1 = inv1.line_ids.filtered(
|
575
|
-
lambda
|
582
|
+
lambda line: line.account_id.account_type == "asset_receivable"
|
576
583
|
)
|
577
584
|
with Form(
|
578
585
|
bank_stmt_line,
|
@@ -649,7 +656,7 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
|
649
656
|
}
|
650
657
|
)
|
651
658
|
receivable1 = inv1.line_ids.filtered(
|
652
|
-
lambda
|
659
|
+
lambda line: line.account_id.account_type == "asset_receivable"
|
653
660
|
)
|
654
661
|
with Form(
|
655
662
|
bank_stmt_line,
|
@@ -687,7 +694,7 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
|
687
694
|
}
|
688
695
|
)
|
689
696
|
receivable1 = inv1.line_ids.filtered(
|
690
|
-
lambda
|
697
|
+
lambda line: line.account_id.account_type == "asset_receivable"
|
691
698
|
)
|
692
699
|
with Form(
|
693
700
|
bank_stmt_line,
|
@@ -733,12 +740,12 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
|
733
740
|
) as f:
|
734
741
|
self.assertFalse(f.can_reconcile)
|
735
742
|
f.add_account_move_line_id = inv1.line_ids.filtered(
|
736
|
-
lambda
|
743
|
+
lambda line: line.account_id.account_type == "asset_receivable"
|
737
744
|
)
|
738
745
|
self.assertFalse(f.add_account_move_line_id)
|
739
746
|
self.assertTrue(f.can_reconcile)
|
740
747
|
f.add_account_move_line_id = inv1.line_ids.filtered(
|
741
|
-
lambda
|
748
|
+
lambda line: line.account_id.account_type == "asset_receivable"
|
742
749
|
)
|
743
750
|
self.assertFalse(f.add_account_move_line_id)
|
744
751
|
self.assertFalse(f.can_reconcile)
|
@@ -873,11 +880,11 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
|
873
880
|
partner = inv1.partner_id
|
874
881
|
|
875
882
|
receivable1 = inv1.line_ids.filtered(
|
876
|
-
lambda
|
883
|
+
lambda line: line.account_id.account_type == "asset_receivable"
|
877
884
|
)
|
878
885
|
self.assertTrue(receivable1)
|
879
886
|
receivable2 = inv2.line_ids.filtered(
|
880
|
-
lambda
|
887
|
+
lambda line: line.account_id.account_type == "asset_receivable"
|
881
888
|
)
|
882
889
|
self.assertTrue(receivable2)
|
883
890
|
|
@@ -1000,7 +1007,7 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
|
1000
1007
|
) as f:
|
1001
1008
|
self.assertFalse(f.can_reconcile)
|
1002
1009
|
f.add_account_move_line_id = inv1.line_ids.filtered(
|
1003
|
-
lambda
|
1010
|
+
lambda line: line.account_id.account_type == "asset_receivable"
|
1004
1011
|
)
|
1005
1012
|
self.assertFalse(f.add_account_move_line_id)
|
1006
1013
|
self.assertTrue(f.can_reconcile)
|
@@ -8,15 +8,15 @@
|
|
8
8
|
<field name="model">account.account</field>
|
9
9
|
<field name="inherit_id" ref="account.view_account_list" />
|
10
10
|
<field name="arch" type="xml">
|
11
|
-
<
|
11
|
+
<tree position="inside">
|
12
12
|
<button
|
13
13
|
type="action"
|
14
14
|
name="%(account_reconcile_oca.account_account_account_account_reconcile_act_window)s"
|
15
15
|
string="Reconcile"
|
16
16
|
class="float-end btn-secondary"
|
17
|
-
|
17
|
+
invisible="reconcile == False"
|
18
18
|
/>
|
19
|
-
</
|
19
|
+
</tree>
|
20
20
|
</field>
|
21
21
|
</record>
|
22
22
|
|
@@ -21,15 +21,15 @@
|
|
21
21
|
name="reconcile"
|
22
22
|
type="object"
|
23
23
|
string="Reconcile"
|
24
|
-
class="btn btn-primary"
|
25
|
-
|
24
|
+
class="btn btn-primary mx-1"
|
25
|
+
invisible="is_reconciled == True"
|
26
26
|
/>
|
27
27
|
<button
|
28
28
|
name="clean_reconcile"
|
29
29
|
type="object"
|
30
30
|
string="Clean"
|
31
|
-
class="btn btn-secondary"
|
32
|
-
|
31
|
+
class="btn btn-secondary mx-1"
|
32
|
+
invisible="is_reconciled == True"
|
33
33
|
/>
|
34
34
|
</div>
|
35
35
|
</div>
|
@@ -52,7 +52,7 @@
|
|
52
52
|
<page
|
53
53
|
name="reconcile_line"
|
54
54
|
string="Reconcile"
|
55
|
-
|
55
|
+
invisible="is_reconciled == True"
|
56
56
|
>
|
57
57
|
<field
|
58
58
|
name="add_account_move_line_id"
|
@@ -135,7 +135,7 @@
|
|
135
135
|
<field name="name">Reconcile</field>
|
136
136
|
<field name="res_model">account.account.reconcile</field>
|
137
137
|
<field name="view_mode">kanban</field>
|
138
|
-
<field name="domain">[("partner_id", "=",
|
138
|
+
<field name="domain">[("partner_id", "=", id)]</field>
|
139
139
|
<field
|
140
140
|
name="context"
|
141
141
|
>{'view_ref': 'account_reconcile_oca.account_account_reconcile_form_view'}</field>
|
@@ -150,7 +150,7 @@
|
|
150
150
|
<field name="name">Reconcile</field>
|
151
151
|
<field name="res_model">account.account.reconcile</field>
|
152
152
|
<field name="view_mode">kanban</field>
|
153
|
-
<field name="domain">[("account_id", "=",
|
153
|
+
<field name="domain">[("account_id", "=", id)]</field>
|
154
154
|
<field
|
155
155
|
name="context"
|
156
156
|
>{'view_ref': 'account_reconcile_oca.account_account_reconcile_form_view'}</field>
|
@@ -0,0 +1,46 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
2
|
+
<!-- Copyright 2023 Dixmit
|
3
|
+
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
|
4
|
+
<odoo>
|
5
|
+
|
6
|
+
<record id="account_bank_statement_form_edit" model="ir.ui.view">
|
7
|
+
<field name="name">Edit Bank statement</field>
|
8
|
+
<field name="model">account.bank.statement</field>
|
9
|
+
<field name="priority">99</field>
|
10
|
+
<field name="arch" type="xml">
|
11
|
+
<form string="Bank Statement">
|
12
|
+
<div
|
13
|
+
class="alert alert-warning text-center"
|
14
|
+
role="alert"
|
15
|
+
invisible="is_valid and is_complete"
|
16
|
+
>
|
17
|
+
<field name="problem_description" />
|
18
|
+
<field name="is_valid" invisible="1" />
|
19
|
+
<field name="is_complete" invisible="1" />
|
20
|
+
</div>
|
21
|
+
<sheet>
|
22
|
+
<group>
|
23
|
+
<field name="name" required="1" />
|
24
|
+
<field name="balance_start" />
|
25
|
+
<field name="balance_end_real" />
|
26
|
+
<field name="attachment_ids" widget="many2many_binary" />
|
27
|
+
<field name="line_ids" invisible="1" />
|
28
|
+
</group>
|
29
|
+
</sheet>
|
30
|
+
|
31
|
+
</form>
|
32
|
+
</field>
|
33
|
+
</record>
|
34
|
+
|
35
|
+
<record id="account_bank_statement_action_edit" model="ir.actions.act_window">
|
36
|
+
<field name="name">Edit Bank Statement</field>
|
37
|
+
<field name="res_model">account.bank.statement</field>
|
38
|
+
<field name="view_mode">form</field>
|
39
|
+
<field
|
40
|
+
name="view_ids"
|
41
|
+
eval="[(5, 0, 0),
|
42
|
+
(0, 0, {'view_mode': 'form', 'view_id': ref('account_bank_statement_form_edit')})]"
|
43
|
+
/>
|
44
|
+
<field name="target">new</field>
|
45
|
+
</record>
|
46
|
+
</odoo>
|
@@ -11,9 +11,28 @@
|
|
11
11
|
<field name="is_reconciled" />
|
12
12
|
<field name="currency_id" />
|
13
13
|
<field name="foreign_currency_id" />
|
14
|
+
<field name="statement_id" />
|
15
|
+
<field name="statement_balance_end_real" />
|
14
16
|
<field name="to_check" />
|
17
|
+
<field name="reconcile_aggregate" />
|
18
|
+
<field name="aggregate_id" />
|
19
|
+
<field name="aggregate_name" />
|
15
20
|
<templates>
|
16
21
|
<t t-name="kanban-box">
|
22
|
+
<div
|
23
|
+
t-if="record.reconcile_aggregate.raw_value == 'statement' and !record.statement_id.raw_value"
|
24
|
+
class="o_reconcile_create_statement text-center"
|
25
|
+
>
|
26
|
+
<a
|
27
|
+
role="button"
|
28
|
+
class="btn btn-secondary btn-sm"
|
29
|
+
tabindex="-1"
|
30
|
+
type="object"
|
31
|
+
name="add_statement"
|
32
|
+
>
|
33
|
+
Statement
|
34
|
+
</a>
|
35
|
+
</div>
|
17
36
|
<div
|
18
37
|
t-attf-class="oe_kanban_card oe_kanban_global_click"
|
19
38
|
style="width:100%"
|
@@ -117,6 +136,19 @@
|
|
117
136
|
</field>
|
118
137
|
</record>
|
119
138
|
|
139
|
+
<record id="account_bank_statement_line_search" model="ir.ui.view">
|
140
|
+
<field name="name">account.bank.statement.line.search</field>
|
141
|
+
<field name="model">account.bank.statement.line</field>
|
142
|
+
<field
|
143
|
+
name="inherit_id"
|
144
|
+
ref="account_statement_base.account_bank_statement_line_search"
|
145
|
+
/>
|
146
|
+
<field name="arch" type="xml">
|
147
|
+
<field name="journal_id" position="after">
|
148
|
+
<field name="move_id" />
|
149
|
+
</field>
|
150
|
+
</field>
|
151
|
+
</record>
|
120
152
|
<record id="bank_statement_line_form_reconcile_view" model="ir.ui.view">
|
121
153
|
<field name="name">account.bank.statement.line.reconcile</field>
|
122
154
|
<field name="model">account.bank.statement.line</field>
|
@@ -130,53 +162,54 @@
|
|
130
162
|
type="object"
|
131
163
|
string="Validate"
|
132
164
|
accesskey="v"
|
133
|
-
class="btn btn-primary"
|
134
|
-
|
165
|
+
class="btn btn-primary mx-1"
|
166
|
+
invisible="is_reconciled == True or can_reconcile == False"
|
135
167
|
/>
|
136
168
|
<button
|
137
169
|
name="reconcile_bank_line"
|
138
170
|
type="object"
|
139
171
|
string="Reconcile"
|
140
|
-
class="btn btn-primary disabled"
|
141
|
-
|
172
|
+
class="btn btn-primary disabled mx-1"
|
173
|
+
invisible="is_reconciled == True or can_reconcile == True"
|
142
174
|
/>
|
143
175
|
<button
|
144
176
|
name="unreconcile_bank_line"
|
145
177
|
type="object"
|
146
178
|
string="Unreconcile"
|
147
179
|
accesskey="r"
|
148
|
-
class="btn btn-warning"
|
149
|
-
|
180
|
+
class="btn btn-warning mx-1"
|
181
|
+
invisible="is_reconciled == False"
|
150
182
|
confirm="Are you sure that the move should be unreconciled?"
|
151
183
|
/>
|
152
184
|
<button
|
153
185
|
name="clean_reconcile"
|
154
186
|
type="object"
|
155
187
|
string="Reset reconciliation"
|
156
|
-
class="btn btn-secondary"
|
157
|
-
|
188
|
+
class="btn btn-secondary mx-1"
|
189
|
+
invisible="is_reconciled == True"
|
158
190
|
/>
|
159
191
|
<button
|
160
192
|
name="action_to_check"
|
161
193
|
string="To Check"
|
162
|
-
class="btn btn-secondary"
|
194
|
+
class="btn btn-secondary mx-1"
|
163
195
|
accesskey="c"
|
164
196
|
type="object"
|
165
|
-
|
197
|
+
invisible="to_check == True"
|
166
198
|
/>
|
167
|
-
|
199
|
+
<button
|
168
200
|
name="action_checked"
|
169
201
|
string="Set as Checked"
|
202
|
+
class="btn btn-secondary mx-1"
|
170
203
|
accesskey="c"
|
171
204
|
type="object"
|
172
|
-
|
205
|
+
invisible="to_check == False"
|
173
206
|
/>
|
174
207
|
<button
|
175
208
|
name="action_show_move"
|
176
209
|
type="object"
|
177
210
|
accesskey="m"
|
178
211
|
string="View move"
|
179
|
-
class="btn btn-info"
|
212
|
+
class="btn btn-info mx-1"
|
180
213
|
/>
|
181
214
|
</div>
|
182
215
|
</div>
|
@@ -205,14 +238,14 @@
|
|
205
238
|
name="manual_model_id"
|
206
239
|
widget="selection_badge_uncheck"
|
207
240
|
nolabel="1"
|
208
|
-
|
241
|
+
invisible="is_reconciled == True"
|
209
242
|
/>
|
210
243
|
</div>
|
211
244
|
<notebook>
|
212
245
|
<page
|
213
246
|
name="reconcile_line"
|
214
247
|
string="Reconcile"
|
215
|
-
|
248
|
+
invisible="is_reconciled == True"
|
216
249
|
>
|
217
250
|
<field
|
218
251
|
name="add_account_move_line_id"
|
@@ -229,31 +262,32 @@
|
|
229
262
|
<field
|
230
263
|
name="manual_account_id"
|
231
264
|
string="Account"
|
232
|
-
|
265
|
+
readonly="manual_reference == False or is_reconciled == True or manual_line_id != False"
|
233
266
|
/>
|
234
267
|
<field
|
235
268
|
name="manual_partner_id"
|
236
269
|
string="Partner"
|
237
|
-
|
270
|
+
readonly="manual_reference == False or is_reconciled == True or (manual_line_id != False and manual_kind != 'liquidity')"
|
238
271
|
/>
|
239
272
|
<field
|
240
273
|
name="analytic_distribution"
|
241
274
|
widget="analytic_distribution"
|
242
275
|
groups="analytic.group_analytic_accounting"
|
243
276
|
options="{'account_field': 'manual_account_id', 'business_domain': 'general'}"
|
244
|
-
|
277
|
+
invisible="manual_kind == 'liquidity' or manual_reference == False"
|
278
|
+
readonly="is_reconciled == True"
|
245
279
|
/>
|
246
280
|
</group>
|
247
281
|
<group>
|
248
282
|
<field
|
249
283
|
name="manual_name"
|
250
284
|
string="Name"
|
251
|
-
|
285
|
+
readonly="manual_reference == False or is_reconciled == True or (manual_line_id != False and manual_kind != 'liquidity')"
|
252
286
|
/>
|
253
287
|
<field
|
254
288
|
name="manual_amount"
|
255
289
|
string="Amount"
|
256
|
-
|
290
|
+
readonly="manual_reference == False or is_reconciled == True"
|
257
291
|
/>
|
258
292
|
<field name="manual_currency_id" invisible="1" />
|
259
293
|
<field name="manual_original_amount" invisible="1" />
|
@@ -261,10 +295,10 @@
|
|
261
295
|
<label
|
262
296
|
for="manual_move_id"
|
263
297
|
string=""
|
264
|
-
|
298
|
+
insible="manual_move_type not in ['in_invoice', 'in_refund', 'out_invoice', 'out_refund'] or manual_original_amount == 0"
|
265
299
|
/>
|
266
300
|
<div
|
267
|
-
|
301
|
+
insible="manual_move_type not in ['in_invoice', 'in_refund', 'out_invoice', 'out_refund'] or manual_original_amount == 0"
|
268
302
|
>
|
269
303
|
Invoice <field
|
270
304
|
class="oe_inline"
|
@@ -293,19 +327,19 @@
|
|
293
327
|
<field name="narration" />
|
294
328
|
</page>
|
295
329
|
<page name="chatter" string="Chatter">
|
296
|
-
|
330
|
+
<field name="move_id" widget="account_reconcile_oca_chatter" />
|
297
331
|
</page>
|
298
332
|
</notebook>
|
299
333
|
</form>
|
300
334
|
</field>
|
301
335
|
</record>
|
302
336
|
<record id="action_bank_statement_line_reconcile" model="ir.actions.act_window">
|
303
|
-
<field name="name">
|
337
|
+
<field name="name">Statement lines</field>
|
304
338
|
<field name="res_model">account.bank.statement.line</field>
|
305
339
|
<field name="domain">[('journal_id', '=', active_id)]</field>
|
306
|
-
<field
|
307
|
-
|
308
|
-
|
340
|
+
<field name="context">
|
341
|
+
{'default_journal_id': active_id, 'search_default_not_reconciled': True, 'view_ref': 'account_reconcile_oca.bank_statement_line_form_reconcile_view'}
|
342
|
+
</field>
|
309
343
|
<field name="view_mode">kanban,tree</field>
|
310
344
|
<field
|
311
345
|
name="view_ids"
|
@@ -326,12 +360,12 @@
|
|
326
360
|
<field
|
327
361
|
name="context"
|
328
362
|
>{'default_journal_id': active_id, 'view_ref': 'account_reconcile_oca.bank_statement_line_form_reconcile_view'}</field>
|
329
|
-
<field name="view_mode">tree
|
363
|
+
<field name="view_mode">kanban,tree</field>
|
330
364
|
<field
|
331
365
|
name="view_ids"
|
332
366
|
eval="[(5, 0, 0),
|
333
|
-
(0, 0, {'view_mode': '
|
334
|
-
(0, 0, {'view_mode': '
|
367
|
+
(0, 0, {'view_mode': 'kanban', 'view_id': ref('bank_statement_line_reconcile_view')}),
|
368
|
+
(0, 0, {'view_mode': 'tree', 'view_id': ref('account_statement_base.account_bank_statement_line_tree')})]"
|
335
369
|
/>
|
336
370
|
<field name="help" type="html">
|
337
371
|
<p class="o_view_nocontent_smiling_face">
|
@@ -346,14 +380,14 @@
|
|
346
380
|
<field name="name">Reconcile bank statement lines</field>
|
347
381
|
<field name="res_model">account.bank.statement.line</field>
|
348
382
|
<field name="domain">[('journal_id', '=', active_id)]</field>
|
349
|
-
<field
|
350
|
-
|
351
|
-
|
352
|
-
<field name="view_mode">
|
383
|
+
<field name="context">
|
384
|
+
{'default_journal_id': active_id, 'search_default_to_check': True, 'view_ref': 'account_reconcile_oca.bank_statement_line_form_reconcile_view'}
|
385
|
+
</field>
|
386
|
+
<field name="view_mode">kanban</field>
|
353
387
|
<field
|
354
388
|
name="view_ids"
|
355
389
|
eval="[(5, 0, 0),
|
356
|
-
(0, 0, {'view_mode': '
|
390
|
+
(0, 0, {'view_mode': 'kanban', 'view_id': ref('bank_statement_line_reconcile_view')})]"
|
357
391
|
/>
|
358
392
|
<field name="help" type="html">
|
359
393
|
<p class="o_view_nocontent_smiling_face">
|
@@ -369,11 +403,11 @@
|
|
369
403
|
<field name="name">Reconcile bank statement lines</field>
|
370
404
|
<field name="res_model">account.bank.statement.line</field>
|
371
405
|
<field name="context">{'search_default_move_id': active_id}</field>
|
372
|
-
<field name="view_mode">
|
406
|
+
<field name="view_mode">kanban</field>
|
373
407
|
<field
|
374
408
|
name="view_ids"
|
375
409
|
eval="[(5, 0, 0),
|
376
|
-
(0, 0, {'view_mode': '
|
410
|
+
(0, 0, {'view_mode': 'kanban', 'view_id': ref('bank_statement_line_reconcile_view')})]"
|
377
411
|
/>
|
378
412
|
<field name="help" type="html">
|
379
413
|
<p class="o_view_nocontent_smiling_face">
|