odoo-addon-account-loan 17.0.1.0.0.5__py3-none-any.whl → 17.0.1.1.0__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_loan/README.rst +16 -13
- odoo/addons/account_loan/__manifest__.py +1 -1
- odoo/addons/account_loan/i18n/account_loan.pot +12 -5
- odoo/addons/account_loan/models/account_loan.py +18 -1
- odoo/addons/account_loan/models/account_loan_line.py +36 -12
- odoo/addons/account_loan/readme/CONTRIBUTORS.md +2 -0
- odoo/addons/account_loan/static/description/index.html +5 -1
- odoo/addons/account_loan/tests/test_loan.py +9 -0
- odoo/addons/account_loan/views/account_loan_lines_view.xml +12 -5
- odoo/addons/account_loan/views/account_loan_view.xml +1 -0
- odoo/addons/account_loan/wizards/account_loan_post.py +12 -0
- {odoo_addon_account_loan-17.0.1.0.0.5.dist-info → odoo_addon_account_loan-17.0.1.1.0.dist-info}/METADATA +17 -14
- {odoo_addon_account_loan-17.0.1.0.0.5.dist-info → odoo_addon_account_loan-17.0.1.1.0.dist-info}/RECORD +15 -15
- {odoo_addon_account_loan-17.0.1.0.0.5.dist-info → odoo_addon_account_loan-17.0.1.1.0.dist-info}/WHEEL +0 -0
- {odoo_addon_account_loan-17.0.1.0.0.5.dist-info → odoo_addon_account_loan-17.0.1.1.0.dist-info}/top_level.txt +0 -0
|
@@ -7,7 +7,7 @@ Account Loan management
|
|
|
7
7
|
!! This file is generated by oca-gen-addon-readme !!
|
|
8
8
|
!! changes will be overwritten. !!
|
|
9
9
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
10
|
-
!! source digest: sha256:
|
|
10
|
+
!! source digest: sha256:4a188413bf067ed53fb13091f81fe22f5f6f45def339e4c3a49595c345173e6d
|
|
11
11
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
12
12
|
|
|
13
13
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
|
@@ -34,13 +34,13 @@ check the pending amount to be paid and reduce the debt.
|
|
|
34
34
|
|
|
35
35
|
It currently supports two kinds of debts:
|
|
36
36
|
|
|
37
|
-
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
- | Loans: a standard debt with banks, that only creates account moves.
|
|
38
|
+
| Loan types info:
|
|
39
|
+
`APR <https://en.wikipedia.org/wiki/Annual_percentage_rate>`__,
|
|
40
|
+
`EAR <https://en.wikipedia.org/wiki/Effective_interest_rate>`__,
|
|
41
|
+
`Real Rate <https://en.wikipedia.org/wiki/Real_interest_rate>`__.
|
|
42
42
|
|
|
43
|
-
-
|
|
43
|
+
- Leases: a debt with a bank where purchase invoices are necessary
|
|
44
44
|
|
|
45
45
|
**Table of contents**
|
|
46
46
|
|
|
@@ -62,9 +62,9 @@ To use this module, you need to:
|
|
|
62
62
|
|
|
63
63
|
On a posted loan you can:
|
|
64
64
|
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
65
|
+
- Create moves or invoices (according to the configuration)
|
|
66
|
+
- Modify rates when needed (only unposted lines will be modified)
|
|
67
|
+
- Reduce or cancel the debt of a loan / lease
|
|
68
68
|
|
|
69
69
|
|Try me on Runbot|
|
|
70
70
|
|
|
@@ -101,9 +101,12 @@ Authors
|
|
|
101
101
|
Contributors
|
|
102
102
|
------------
|
|
103
103
|
|
|
104
|
-
-
|
|
105
|
-
-
|
|
106
|
-
-
|
|
104
|
+
- Enric Tobella <etobella@creublanca.es>
|
|
105
|
+
- Bhavesh Odedra <bodedra@opensourceintegrators.com>
|
|
106
|
+
- Alberto Martín Cortada <alberto.martin@guadaltech.es>
|
|
107
|
+
- `Tecnativa <https://www.tecnativa.com>`__:
|
|
108
|
+
|
|
109
|
+
- Juan Carlos Oñate
|
|
107
110
|
|
|
108
111
|
Maintainers
|
|
109
112
|
-----------
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
|
3
3
|
{
|
|
4
4
|
"name": "Account Loan management",
|
|
5
|
-
"version": "17.0.1.
|
|
5
|
+
"version": "17.0.1.1.0",
|
|
6
6
|
"author": "Creu Blanca,Odoo Community Association (OCA)",
|
|
7
7
|
"website": "https://github.com/OCA/account-financial-tools",
|
|
8
8
|
"license": "AGPL-3",
|
|
@@ -858,11 +858,6 @@ msgstr ""
|
|
|
858
858
|
msgid "Sequence"
|
|
859
859
|
msgstr ""
|
|
860
860
|
|
|
861
|
-
#. module: account_loan
|
|
862
|
-
#: model:ir.model.constraint,message:account_loan.constraint_account_loan_line_sequence_loan
|
|
863
|
-
msgid "Sequence must be unique in a loan"
|
|
864
|
-
msgstr ""
|
|
865
|
-
|
|
866
861
|
#. module: account_loan
|
|
867
862
|
#: model:ir.model.fields,field_description:account_loan.field_account_loan__short_term_loan_account_id
|
|
868
863
|
#: model:ir.model.fields,field_description:account_loan.field_account_loan_line__short_term_loan_account_id
|
|
@@ -945,6 +940,13 @@ msgid ""
|
|
|
945
940
|
"Planned: Future activities."
|
|
946
941
|
msgstr ""
|
|
947
942
|
|
|
943
|
+
#. module: account_loan
|
|
944
|
+
#. odoo-python
|
|
945
|
+
#: code:addons/account_loan/wizards/account_loan_post.py:0
|
|
946
|
+
#, python-format
|
|
947
|
+
msgid "The total principal amount does not match the loan amount."
|
|
948
|
+
msgstr ""
|
|
949
|
+
|
|
948
950
|
#. module: account_loan
|
|
949
951
|
#: model:ir.model.fields,help:account_loan.field_account_loan_line__payment_amount
|
|
950
952
|
msgid "Total amount that will be payed (Annuity)"
|
|
@@ -1001,3 +1003,8 @@ msgstr ""
|
|
|
1001
1003
|
#: model:ir.model.fields,help:account_loan.field_account_loan__payment_on_first_period
|
|
1002
1004
|
msgid "When checked, the first payment will be on start date"
|
|
1003
1005
|
msgstr ""
|
|
1006
|
+
|
|
1007
|
+
#. module: account_loan
|
|
1008
|
+
#: model_terms:ir.ui.view,arch_db:account_loan.account_loan_line_tree
|
|
1009
|
+
msgid "principal_amount"
|
|
1010
|
+
msgstr ""
|
|
@@ -205,6 +205,22 @@ class AccountLoan(models.Model):
|
|
|
205
205
|
("name_uniq", "unique(name, company_id)", "Loan name must be unique"),
|
|
206
206
|
]
|
|
207
207
|
|
|
208
|
+
@api.onchange("line_ids")
|
|
209
|
+
def _onchange_line_ids_draft_manual(self):
|
|
210
|
+
if self.state == "draft":
|
|
211
|
+
self.line_ids = self.line_ids.sorted(key=lambda line: line.sequence)
|
|
212
|
+
previous_pending_principal = 0
|
|
213
|
+
previous_principal_amount = 0
|
|
214
|
+
for line in self.line_ids:
|
|
215
|
+
if line.sequence == 1:
|
|
216
|
+
line.pending_principal_amount = line.loan_id.loan_amount
|
|
217
|
+
else:
|
|
218
|
+
line.pending_principal_amount = (
|
|
219
|
+
previous_pending_principal - previous_principal_amount
|
|
220
|
+
)
|
|
221
|
+
previous_pending_principal = line.pending_principal_amount
|
|
222
|
+
previous_principal_amount = line.principal_amount
|
|
223
|
+
|
|
208
224
|
@api.depends("line_ids", "currency_id", "loan_amount")
|
|
209
225
|
def _compute_total_amounts(self):
|
|
210
226
|
for record in self:
|
|
@@ -319,7 +335,8 @@ class AccountLoan(models.Model):
|
|
|
319
335
|
self.ensure_one()
|
|
320
336
|
if not self.start_date:
|
|
321
337
|
self.start_date = fields.Date.today()
|
|
322
|
-
self.
|
|
338
|
+
if not self.line_ids:
|
|
339
|
+
self._compute_draft_lines()
|
|
323
340
|
self.write({"state": "posted"})
|
|
324
341
|
|
|
325
342
|
def close(self):
|
|
@@ -70,12 +70,14 @@ class AccountLoanLine(models.Model):
|
|
|
70
70
|
)
|
|
71
71
|
rate = fields.Float(
|
|
72
72
|
required=True,
|
|
73
|
-
readonly=
|
|
73
|
+
readonly=False,
|
|
74
|
+
store=True,
|
|
74
75
|
digits=(8, 6),
|
|
76
|
+
compute="_compute_rate",
|
|
75
77
|
)
|
|
76
78
|
pending_principal_amount = fields.Monetary(
|
|
77
79
|
currency_field="currency_id",
|
|
78
|
-
readonly=
|
|
80
|
+
readonly=False,
|
|
79
81
|
help="Pending amount of the loan before the payment",
|
|
80
82
|
)
|
|
81
83
|
long_term_pending_principal_amount = fields.Monetary(
|
|
@@ -86,17 +88,22 @@ class AccountLoanLine(models.Model):
|
|
|
86
88
|
)
|
|
87
89
|
payment_amount = fields.Monetary(
|
|
88
90
|
currency_field="currency_id",
|
|
89
|
-
readonly=
|
|
91
|
+
readonly=False,
|
|
92
|
+
store=True,
|
|
93
|
+
compute="_compute_payment_amount",
|
|
90
94
|
help="Total amount that will be payed (Annuity)",
|
|
91
95
|
)
|
|
92
96
|
interests_amount = fields.Monetary(
|
|
93
97
|
currency_field="currency_id",
|
|
94
|
-
readonly=
|
|
98
|
+
readonly=False,
|
|
99
|
+
store=True,
|
|
100
|
+
compute="_compute_interests_amount",
|
|
95
101
|
help="Amount of the payment that will be assigned to interests",
|
|
96
102
|
)
|
|
97
103
|
principal_amount = fields.Monetary(
|
|
98
104
|
currency_field="currency_id",
|
|
99
|
-
compute="
|
|
105
|
+
compute="_compute_principal_amount",
|
|
106
|
+
store=True,
|
|
100
107
|
help="Amount of the payment that will reduce the pending loan amount",
|
|
101
108
|
)
|
|
102
109
|
long_term_principal_amount = fields.Monetary(
|
|
@@ -107,6 +114,7 @@ class AccountLoanLine(models.Model):
|
|
|
107
114
|
final_pending_principal_amount = fields.Monetary(
|
|
108
115
|
currency_field="currency_id",
|
|
109
116
|
compute="_compute_amounts",
|
|
117
|
+
store=True,
|
|
110
118
|
help="Pending amount of the loan after the payment",
|
|
111
119
|
)
|
|
112
120
|
move_ids = fields.One2many(
|
|
@@ -115,13 +123,20 @@ class AccountLoanLine(models.Model):
|
|
|
115
123
|
)
|
|
116
124
|
has_moves = fields.Boolean(compute="_compute_has_moves")
|
|
117
125
|
has_invoices = fields.Boolean(compute="_compute_has_invoices")
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
126
|
+
|
|
127
|
+
@api.depends("interests_amount")
|
|
128
|
+
def _compute_rate(self):
|
|
129
|
+
for record in self:
|
|
130
|
+
record.rate = (
|
|
131
|
+
record.interests_amount * 100
|
|
132
|
+
) / record.pending_principal_amount
|
|
133
|
+
|
|
134
|
+
@api.depends("rate")
|
|
135
|
+
def _compute_interests_amount(self):
|
|
136
|
+
for record in self:
|
|
137
|
+
record.interests_amount = (
|
|
138
|
+
record.pending_principal_amount * record.rate
|
|
139
|
+
) / 100
|
|
125
140
|
|
|
126
141
|
@api.depends("move_ids")
|
|
127
142
|
def _compute_has_moves(self):
|
|
@@ -138,12 +153,21 @@ class AccountLoanLine(models.Model):
|
|
|
138
153
|
for record in self:
|
|
139
154
|
record.name = "%s-%d" % (record.loan_id.name, record.sequence)
|
|
140
155
|
|
|
156
|
+
@api.depends("principal_amount", "interests_amount")
|
|
157
|
+
def _compute_payment_amount(self):
|
|
158
|
+
for rec in self:
|
|
159
|
+
rec.payment_amount = rec.principal_amount + rec.interests_amount
|
|
160
|
+
|
|
141
161
|
@api.depends("payment_amount", "interests_amount", "pending_principal_amount")
|
|
142
162
|
def _compute_amounts(self):
|
|
143
163
|
for rec in self:
|
|
144
164
|
rec.final_pending_principal_amount = (
|
|
145
165
|
rec.pending_principal_amount - rec.payment_amount + rec.interests_amount
|
|
146
166
|
)
|
|
167
|
+
|
|
168
|
+
@api.depends("pending_principal_amount")
|
|
169
|
+
def _compute_principal_amount(self):
|
|
170
|
+
for rec in self:
|
|
147
171
|
rec.principal_amount = rec.payment_amount - rec.interests_amount
|
|
148
172
|
|
|
149
173
|
def _compute_amount(self):
|
|
@@ -367,7 +367,7 @@ ul.auto-toc {
|
|
|
367
367
|
!! This file is generated by oca-gen-addon-readme !!
|
|
368
368
|
!! changes will be overwritten. !!
|
|
369
369
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
370
|
-
!! source digest: sha256:
|
|
370
|
+
!! source digest: sha256:4a188413bf067ed53fb13091f81fe22f5f6f45def339e4c3a49595c345173e6d
|
|
371
371
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
|
372
372
|
<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/account-financial-tools/tree/17.0/account_loan"><img alt="OCA/account-financial-tools" src="https://img.shields.io/badge/github-OCA%2Faccount--financial--tools-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/account-financial-tools-17-0/account-financial-tools-17-0-account_loan"><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/account-financial-tools&target_branch=17.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
|
373
373
|
<p>This module extends the functionality of accounting to support loans. It
|
|
@@ -453,6 +453,10 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
|
|
|
453
453
|
<li>Enric Tobella <<a class="reference external" href="mailto:etobella@creublanca.es">etobella@creublanca.es</a>></li>
|
|
454
454
|
<li>Bhavesh Odedra <<a class="reference external" href="mailto:bodedra@opensourceintegrators.com">bodedra@opensourceintegrators.com</a>></li>
|
|
455
455
|
<li>Alberto Martín Cortada <<a class="reference external" href="mailto:alberto.martin@guadaltech.es">alberto.martin@guadaltech.es</a>></li>
|
|
456
|
+
<li><a class="reference external" href="https://www.tecnativa.com">Tecnativa</a>:<ul>
|
|
457
|
+
<li>Juan Carlos Oñate</li>
|
|
458
|
+
</ul>
|
|
459
|
+
</li>
|
|
456
460
|
</ul>
|
|
457
461
|
</div>
|
|
458
462
|
<div class="section" id="maintainers">
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import logging
|
|
5
5
|
|
|
6
6
|
from dateutil.relativedelta import relativedelta
|
|
7
|
+
from freezegun import freeze_time
|
|
7
8
|
|
|
8
9
|
from odoo import fields
|
|
9
10
|
from odoo.exceptions import UserError
|
|
@@ -106,6 +107,7 @@ class TestLoan(BaseCommon):
|
|
|
106
107
|
self.assertEqual(line_end.principal_amount, 500000)
|
|
107
108
|
|
|
108
109
|
@mute_logger("odoo.models.unlink")
|
|
110
|
+
@freeze_time("2025-01-01")
|
|
109
111
|
def test_increase_amount_validation(self):
|
|
110
112
|
amount = 10000
|
|
111
113
|
periods = 24
|
|
@@ -153,6 +155,7 @@ class TestLoan(BaseCommon):
|
|
|
153
155
|
).create({"amount": -100, "date": line.date}).run()
|
|
154
156
|
|
|
155
157
|
@mute_logger("odoo.models.unlink")
|
|
158
|
+
@freeze_time("2025-01-01")
|
|
156
159
|
def test_pay_amount_validation(self):
|
|
157
160
|
amount = 10000
|
|
158
161
|
periods = 24
|
|
@@ -205,6 +208,7 @@ class TestLoan(BaseCommon):
|
|
|
205
208
|
).create({"amount": -100, "fees": 100, "date": line.date}).run()
|
|
206
209
|
|
|
207
210
|
@mute_logger("odoo.models.unlink")
|
|
211
|
+
@freeze_time("2025-01-01")
|
|
208
212
|
def test_increase_amount_loan(self):
|
|
209
213
|
amount = 10000
|
|
210
214
|
periods = 24
|
|
@@ -252,6 +256,7 @@ class TestLoan(BaseCommon):
|
|
|
252
256
|
self.assertEqual(loan.pending_principal_amount, pending_principal_amount + 1000)
|
|
253
257
|
|
|
254
258
|
@mute_logger("odoo.models.unlink")
|
|
259
|
+
@freeze_time("2025-01-01")
|
|
255
260
|
def test_increase_amount_leasing(self):
|
|
256
261
|
amount = 10000
|
|
257
262
|
periods = 24
|
|
@@ -305,6 +310,7 @@ class TestLoan(BaseCommon):
|
|
|
305
310
|
self.assertEqual(loan.pending_principal_amount, pending_principal_amount + 1000)
|
|
306
311
|
|
|
307
312
|
@mute_logger("odoo.models.unlink")
|
|
313
|
+
@freeze_time("2025-01-01")
|
|
308
314
|
def test_fixed_annuity_begin_loan(self):
|
|
309
315
|
amount = 10000
|
|
310
316
|
periods = 24
|
|
@@ -356,6 +362,7 @@ class TestLoan(BaseCommon):
|
|
|
356
362
|
line.view_process_values()
|
|
357
363
|
|
|
358
364
|
@mute_logger("odoo.models.unlink")
|
|
365
|
+
@freeze_time("2025-01-01")
|
|
359
366
|
def test_fixed_annuity_loan(self):
|
|
360
367
|
amount = 10000
|
|
361
368
|
periods = 24
|
|
@@ -403,6 +410,7 @@ class TestLoan(BaseCommon):
|
|
|
403
410
|
line.view_process_values()
|
|
404
411
|
|
|
405
412
|
@mute_logger("odoo.models.unlink")
|
|
413
|
+
@freeze_time("2025-01-01")
|
|
406
414
|
def test_fixed_principal_loan_leasing(self):
|
|
407
415
|
amount = 24000
|
|
408
416
|
periods = 24
|
|
@@ -508,6 +516,7 @@ class TestLoan(BaseCommon):
|
|
|
508
516
|
line.view_process_values()
|
|
509
517
|
|
|
510
518
|
@mute_logger("odoo.models.unlink")
|
|
519
|
+
@freeze_time("2025-01-01")
|
|
511
520
|
def test_fixed_principal_loan_auto_post_leasing(self):
|
|
512
521
|
amount = 24000
|
|
513
522
|
periods = 24
|
|
@@ -6,21 +6,28 @@
|
|
|
6
6
|
<field name="model">account.loan.line</field>
|
|
7
7
|
<field name="priority">99</field>
|
|
8
8
|
<field name="arch" type="xml">
|
|
9
|
-
<tree
|
|
10
|
-
<field name="sequence" />
|
|
11
|
-
<field name="
|
|
9
|
+
<tree editable="bottom">
|
|
10
|
+
<field name="sequence" readonly="false" widget="handle" />
|
|
11
|
+
<field name="sequence" readonly="false" />
|
|
12
|
+
<field name="date" readonly="false" />
|
|
12
13
|
<field name="rate" />
|
|
13
|
-
<field name="pending_principal_amount" />
|
|
14
|
+
<field name="pending_principal_amount" readonly="True" force_save="1" />
|
|
14
15
|
<field name="payment_amount" sum="Total payments" />
|
|
15
|
-
<field
|
|
16
|
+
<field
|
|
17
|
+
name="principal_amount"
|
|
18
|
+
sum="principal_amount"
|
|
19
|
+
readonly="false"
|
|
20
|
+
/>
|
|
16
21
|
<field name="interests_amount" sum="Total interests" />
|
|
17
22
|
<field
|
|
18
23
|
name="long_term_pending_principal_amount"
|
|
19
24
|
column_invisible="not parent.long_term_loan_account_id"
|
|
25
|
+
readonly="false"
|
|
20
26
|
/>
|
|
21
27
|
<field
|
|
22
28
|
name="long_term_principal_amount"
|
|
23
29
|
column_invisible="not parent.long_term_loan_account_id"
|
|
30
|
+
readonly="false"
|
|
24
31
|
/>
|
|
25
32
|
<field name="long_term_loan_account_id" column_invisible="True" />
|
|
26
33
|
<field name="loan_state" column_invisible="True" />
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from odoo import Command, _, api, fields, models
|
|
4
4
|
from odoo.exceptions import UserError
|
|
5
|
+
from odoo.tools import float_compare
|
|
5
6
|
|
|
6
7
|
|
|
7
8
|
class AccountLoanPost(models.TransientModel):
|
|
@@ -87,6 +88,17 @@ class AccountLoanPost(models.TransientModel):
|
|
|
87
88
|
|
|
88
89
|
def run(self):
|
|
89
90
|
self.ensure_one()
|
|
91
|
+
if self.loan_id.line_ids:
|
|
92
|
+
total_principal = sum(self.loan_id.line_ids.mapped("principal_amount"))
|
|
93
|
+
if (
|
|
94
|
+
float_compare(
|
|
95
|
+
self.loan_id.loan_amount, total_principal, precision_digits=2
|
|
96
|
+
)
|
|
97
|
+
!= 0
|
|
98
|
+
):
|
|
99
|
+
raise UserError(
|
|
100
|
+
_("The total principal amount does not match the loan amount.")
|
|
101
|
+
)
|
|
90
102
|
if self.loan_id.state != "draft":
|
|
91
103
|
raise UserError(_("Only loans in draft state can be posted"))
|
|
92
104
|
self.loan_id.post()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: odoo-addon-account_loan
|
|
3
|
-
Version: 17.0.1.
|
|
3
|
+
Version: 17.0.1.1.0
|
|
4
4
|
Requires-Python: >=3.10
|
|
5
5
|
Requires-Dist: numpy-financial<=1.0.0
|
|
6
6
|
Requires-Dist: numpy>=1.15
|
|
@@ -24,7 +24,7 @@ Account Loan management
|
|
|
24
24
|
!! This file is generated by oca-gen-addon-readme !!
|
|
25
25
|
!! changes will be overwritten. !!
|
|
26
26
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
27
|
-
!! source digest: sha256:
|
|
27
|
+
!! source digest: sha256:4a188413bf067ed53fb13091f81fe22f5f6f45def339e4c3a49595c345173e6d
|
|
28
28
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
29
29
|
|
|
30
30
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
|
@@ -51,13 +51,13 @@ check the pending amount to be paid and reduce the debt.
|
|
|
51
51
|
|
|
52
52
|
It currently supports two kinds of debts:
|
|
53
53
|
|
|
54
|
-
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
- | Loans: a standard debt with banks, that only creates account moves.
|
|
55
|
+
| Loan types info:
|
|
56
|
+
`APR <https://en.wikipedia.org/wiki/Annual_percentage_rate>`__,
|
|
57
|
+
`EAR <https://en.wikipedia.org/wiki/Effective_interest_rate>`__,
|
|
58
|
+
`Real Rate <https://en.wikipedia.org/wiki/Real_interest_rate>`__.
|
|
59
59
|
|
|
60
|
-
-
|
|
60
|
+
- Leases: a debt with a bank where purchase invoices are necessary
|
|
61
61
|
|
|
62
62
|
**Table of contents**
|
|
63
63
|
|
|
@@ -79,9 +79,9 @@ To use this module, you need to:
|
|
|
79
79
|
|
|
80
80
|
On a posted loan you can:
|
|
81
81
|
|
|
82
|
-
-
|
|
83
|
-
-
|
|
84
|
-
-
|
|
82
|
+
- Create moves or invoices (according to the configuration)
|
|
83
|
+
- Modify rates when needed (only unposted lines will be modified)
|
|
84
|
+
- Reduce or cancel the debt of a loan / lease
|
|
85
85
|
|
|
86
86
|
|Try me on Runbot|
|
|
87
87
|
|
|
@@ -118,9 +118,12 @@ Authors
|
|
|
118
118
|
Contributors
|
|
119
119
|
------------
|
|
120
120
|
|
|
121
|
-
-
|
|
122
|
-
-
|
|
123
|
-
-
|
|
121
|
+
- Enric Tobella <etobella@creublanca.es>
|
|
122
|
+
- Bhavesh Odedra <bodedra@opensourceintegrators.com>
|
|
123
|
+
- Alberto Martín Cortada <alberto.martin@guadaltech.es>
|
|
124
|
+
- `Tecnativa <https://www.tecnativa.com>`__:
|
|
125
|
+
|
|
126
|
+
- Juan Carlos Oñate
|
|
124
127
|
|
|
125
128
|
Maintainers
|
|
126
129
|
-----------
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
odoo/addons/account_loan/README.rst,sha256=
|
|
1
|
+
odoo/addons/account_loan/README.rst,sha256=AcLkgkCMzRqk6TIX57_IJrxGpFrE6KOaGAGVKGnx6UU,4864
|
|
2
2
|
odoo/addons/account_loan/__init__.py,sha256=o9EnCAU5AKoGmP2X6ytOhQFxVqIh5Y1itLUOmzxSUJY,113
|
|
3
|
-
odoo/addons/account_loan/__manifest__.py,sha256=
|
|
3
|
+
odoo/addons/account_loan/__manifest__.py,sha256=GIUHrGNa10vB7iNAPCZDKBE8XpQK49HYOC7LUmKW2-g,1083
|
|
4
4
|
odoo/addons/account_loan/data/ir_sequence_data.xml,sha256=bLydnK8X-0QWzFoBms4UpGYYle25C2DmbpVECEG4PMc,540
|
|
5
|
-
odoo/addons/account_loan/i18n/account_loan.pot,sha256=
|
|
5
|
+
odoo/addons/account_loan/i18n/account_loan.pot,sha256=_7MOi8QU---Hmul8GCK4W1hvYWG8vjjaNaeu3OHwc5s,35253
|
|
6
6
|
odoo/addons/account_loan/i18n/am.po,sha256=ZSXzCJk6zn0OdKWFMpJyuzbqgzXjWd2dczKa-tH3wZk,35510
|
|
7
7
|
odoo/addons/account_loan/i18n/ar.po,sha256=sGElGW-m_DxL5BpIK-A-kMgQQPwX2N_ieo7t7WdGkCI,35786
|
|
8
8
|
odoo/addons/account_loan/i18n/bg.po,sha256=TCVCF60f6-TJBfkQhI8TaLpHmyE1Jyiu1cCLkaTg-Po,35717
|
|
@@ -81,22 +81,22 @@ odoo/addons/account_loan/i18n/zh_TW.po,sha256=deX7_HmFGnn1Ok2b8nzxBZ9-Qo1NxWV3nG
|
|
|
81
81
|
odoo/addons/account_loan/migrations/17.0.1.0.0/noupdate_changes.xml,sha256=bZbGut6mOAMZsniduY1yY2QA8W31LLNcBJFGjt1EFeE,398
|
|
82
82
|
odoo/addons/account_loan/migrations/17.0.1.0.0/post-migration.py,sha256=0XUOqdMYcrw_CbdeWHc5BgWUEhEG_Rxed6I1bdq9H3c,314
|
|
83
83
|
odoo/addons/account_loan/models/__init__.py,sha256=jwLlr4SgTaxqvv5CCJkgGwhwNus45E4E4e3pijuROJY,211
|
|
84
|
-
odoo/addons/account_loan/models/account_loan.py,sha256=
|
|
85
|
-
odoo/addons/account_loan/models/account_loan_line.py,sha256=
|
|
84
|
+
odoo/addons/account_loan/models/account_loan.py,sha256=LZzGb2WufmjFLQ76-Er0SlzpkZGB5817ZvO9xbmzH60,15753
|
|
85
|
+
odoo/addons/account_loan/models/account_loan_line.py,sha256=qd_vhO-ZujsmrwEVg9N7THxScx5LEmEYQkhkW9Grh9U,17959
|
|
86
86
|
odoo/addons/account_loan/models/account_move.py,sha256=8p2V854_J060o_yupWrGyVa5Ps44d8GpkY4azcAUz3k,937
|
|
87
87
|
odoo/addons/account_loan/models/res_partner.py,sha256=6NgoxHUstcHftmDGj9NWzxfb9MBDG6XATj_1OwMao84,995
|
|
88
|
-
odoo/addons/account_loan/readme/CONTRIBUTORS.md,sha256=
|
|
88
|
+
odoo/addons/account_loan/readme/CONTRIBUTORS.md,sha256=w4frkcHOfPes7QOWbCyGpnNbYcxJhFM0A9x0qCxxQd4,227
|
|
89
89
|
odoo/addons/account_loan/readme/DESCRIPTION.md,sha256=tgKIF8E4LJiqio5knhWzXzUeop9VUvNXwc3fDV1bIz8,598
|
|
90
90
|
odoo/addons/account_loan/readme/HISTORY.md,sha256=JSQtr1egUJ0sGZB8KBTv4ksGWDVDoGf8c8b9VDlD8hE,158
|
|
91
91
|
odoo/addons/account_loan/readme/USAGE.md,sha256=pQ7Eb0xRbAdguo8JAxUQ-irEFkOdIeor3uxe-uX0rZo,726
|
|
92
92
|
odoo/addons/account_loan/security/account_loan_security.xml,sha256=je25Lct1hJDX_5Qz9vhmXWF9n3s47WSzN9Ic8l8mr2k,752
|
|
93
93
|
odoo/addons/account_loan/security/ir.model.access.csv,sha256=3RwBdFKlfSzAJCUWYxDBGUw0t0ZLuBphkZWYtNHGmlI,1009
|
|
94
94
|
odoo/addons/account_loan/static/description/icon.png,sha256=6xBPJauaFOF0KDHfHgQopSc28kKvxMaeoQFQWZtfZDo,9455
|
|
95
|
-
odoo/addons/account_loan/static/description/index.html,sha256=
|
|
95
|
+
odoo/addons/account_loan/static/description/index.html,sha256=6pYxyp5vGSNYLXZZ2UbTpV6S6A31PCg-al1dqfMSRjE,15392
|
|
96
96
|
odoo/addons/account_loan/tests/__init__.py,sha256=I1GwELsBL3FTRS0pVrE5q-qEk537mMnSOXpWkPVcBnY,94
|
|
97
|
-
odoo/addons/account_loan/tests/test_loan.py,sha256=
|
|
98
|
-
odoo/addons/account_loan/views/account_loan_lines_view.xml,sha256=
|
|
99
|
-
odoo/addons/account_loan/views/account_loan_view.xml,sha256=
|
|
97
|
+
odoo/addons/account_loan/tests/test_loan.py,sha256=TBzakrNL97WwV5-FaPf7SaaIMq9E9ia7UlbDPF0lNQM,26432
|
|
98
|
+
odoo/addons/account_loan/views/account_loan_lines_view.xml,sha256=BNt633HUe9J-rpSi-VbJ8fp4IagJNf-LS46A9g6sVoc,6224
|
|
99
|
+
odoo/addons/account_loan/views/account_loan_view.xml,sha256=CWZiAzZtF0sD5a7R1uyVQhju3q5CMjhcN5EQ7IgJxCE,10536
|
|
100
100
|
odoo/addons/account_loan/views/account_move_view.xml,sha256=-dFzRj3e84NTkLCoaAzneAPlwxVtzbjBZyAt6eK_NfM,814
|
|
101
101
|
odoo/addons/account_loan/views/res_partner.xml,sha256=rneFt7lW3cUoI8UVaLQc9mkiSCii2Os1T3TTYCEB_s0,1248
|
|
102
102
|
odoo/addons/account_loan/wizards/__init__.py,sha256=mq87kRH_mXzIn76cBCeuzptRiIOdQWjImjmZ_HNGUVU,227
|
|
@@ -106,9 +106,9 @@ odoo/addons/account_loan/wizards/account_loan_increase_amount.py,sha256=rR_xp2lM
|
|
|
106
106
|
odoo/addons/account_loan/wizards/account_loan_increase_amount.xml,sha256=0g90b8YuFL8DalKXc2482c4WfO-Txbv46T0StIVinfI,1454
|
|
107
107
|
odoo/addons/account_loan/wizards/account_loan_pay_amount.py,sha256=-kG1q8Ueh0Fl_glZIr3pRVW-7GnPTPhKbVXm_pfOm1Y,4135
|
|
108
108
|
odoo/addons/account_loan/wizards/account_loan_pay_amount_view.xml,sha256=9rCkG5kL3u2vc4Mmz9zo5Sqfp6raGnPz3ZGv2AlLIN4,1596
|
|
109
|
-
odoo/addons/account_loan/wizards/account_loan_post.py,sha256=
|
|
109
|
+
odoo/addons/account_loan/wizards/account_loan_post.py,sha256=9aRQaqPGdV5NSUJ6oiTV8kaUhT5TzuqJ3oFJKefL3Tw,3667
|
|
110
110
|
odoo/addons/account_loan/wizards/account_loan_post_view.xml,sha256=s-teTEY9HCEA2CHD3_tQZJIGOHJMZNAlR1pSN5Dpdn8,1440
|
|
111
|
-
odoo_addon_account_loan-17.0.1.
|
|
112
|
-
odoo_addon_account_loan-17.0.1.
|
|
113
|
-
odoo_addon_account_loan-17.0.1.
|
|
114
|
-
odoo_addon_account_loan-17.0.1.
|
|
111
|
+
odoo_addon_account_loan-17.0.1.1.0.dist-info/METADATA,sha256=Tr_s2nujihHOpmii9hi9ncyoOi0LiQQfPE9JrTH4Yeg,5450
|
|
112
|
+
odoo_addon_account_loan-17.0.1.1.0.dist-info/WHEEL,sha256=9fEMia4zL7ZuZbnCOrcYogUhmn4XFIVaJ8G4YGI31xc,81
|
|
113
|
+
odoo_addon_account_loan-17.0.1.1.0.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
|
|
114
|
+
odoo_addon_account_loan-17.0.1.1.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|