odoo-addon-account-loan 17.0.2.0.0.3__py3-none-any.whl → 17.0.2.2.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.
@@ -11,7 +11,7 @@ Account Loan management
11
11
  !! This file is generated by oca-gen-addon-readme !!
12
12
  !! changes will be overwritten. !!
13
13
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
14
- !! source digest: sha256:59c6924d56b9f3bf84420edd2b401de3a4e1d2482abc2e71939ef510d4938492
14
+ !! source digest: sha256:cf116fbc449f4763c68b322ad6d401b4199e1f9652dca73ec333c69c896a2d38
15
15
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
16
16
 
17
17
  .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -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.2.0.0",
5
+ "version": "17.0.2.2.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",
@@ -596,6 +596,11 @@ msgstr ""
596
596
  msgid "Loans"
597
597
  msgstr ""
598
598
 
599
+ #. module: account_loan
600
+ #: model_terms:ir.ui.view,arch_db:account_loan.account_loan_pivot
601
+ msgid "Loans pivot"
602
+ msgstr ""
603
+
599
604
  #. module: account_loan
600
605
  #: model:ir.model.fields,field_description:account_loan.field_account_loan_line__long_term_pending_principal_amount
601
606
  msgid "Long Term Pending Principal Amount"
@@ -973,6 +978,11 @@ msgstr ""
973
978
  msgid "The total principal amount does not match the loan amount."
974
979
  msgstr ""
975
980
 
981
+ #. module: account_loan
982
+ #: model_terms:ir.ui.view,arch_db:account_loan.account_loan_tree
983
+ msgid "Total"
984
+ msgstr ""
985
+
976
986
  #. module: account_loan
977
987
  #: model:ir.model.fields,help:account_loan.field_account_loan_line__payment_amount
978
988
  msgid "Total amount that will be payed (Annuity)"
@@ -295,43 +295,52 @@ class AccountLoanLine(models.Model):
295
295
  def _move_line_vals(self, account=False):
296
296
  vals = []
297
297
  partner = self.loan_id.partner_id.with_company(self.loan_id.company_id)
298
+ # Amounts are evaled if > 0 for allowing negative loans to be able to be the
299
+ # donors of the loan
300
+ partner_account = (
301
+ partner.property_account_payable_id
302
+ if self.payment_amount > 0
303
+ else partner.property_account_receivable_id
304
+ )
298
305
  vals.append(
299
306
  {
300
- "account_id": (account and account.id)
301
- or partner.property_account_payable_id.id,
307
+ "account_id": (account and account.id) or partner_account.id,
302
308
  "partner_id": partner.id,
303
- "credit": self.payment_amount,
304
- "debit": 0,
309
+ "credit": self.payment_amount if self.payment_amount > 0 else 0,
310
+ "debit": -self.payment_amount if self.payment_amount < 0 else 0,
305
311
  }
306
312
  )
307
313
  if self.interests_amount:
314
+ amount = self.interests_amount
308
315
  vals.append(
309
316
  {
310
317
  "account_id": self.loan_id.interest_expenses_account_id.id,
311
- "credit": 0,
312
- "debit": self.interests_amount,
318
+ "credit": -amount if amount < 0 else 0,
319
+ "debit": amount if amount > 0 else 0,
313
320
  }
314
321
  )
322
+ diff_amount = self.payment_amount - self.interests_amount
315
323
  vals.append(
316
324
  {
317
325
  "account_id": self.loan_id.short_term_loan_account_id.id,
318
- "credit": 0,
319
- "debit": self.payment_amount - self.interests_amount,
326
+ "credit": -diff_amount if diff_amount < 0 else 0,
327
+ "debit": diff_amount if diff_amount > 0 else 0,
320
328
  }
321
329
  )
322
330
  if self.long_term_loan_account_id and self.long_term_principal_amount:
331
+ amount = self.long_term_principal_amount
323
332
  vals.append(
324
333
  {
325
334
  "account_id": self.loan_id.short_term_loan_account_id.id,
326
- "credit": self.long_term_principal_amount,
327
- "debit": 0,
335
+ "credit": amount if amount > 0 else 0,
336
+ "debit": -amount if amount < 0 else 0,
328
337
  }
329
338
  )
330
339
  vals.append(
331
340
  {
332
341
  "account_id": self.long_term_loan_account_id.id,
333
- "credit": 0,
334
- "debit": self.long_term_principal_amount,
342
+ "credit": -amount if amount < 0 else 0,
343
+ "debit": amount if amount > 0 else 0,
335
344
  }
336
345
  )
337
346
  return vals
@@ -372,7 +372,7 @@ ul.auto-toc {
372
372
  !! This file is generated by oca-gen-addon-readme !!
373
373
  !! changes will be overwritten. !!
374
374
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
375
- !! source digest: sha256:59c6924d56b9f3bf84420edd2b401de3a4e1d2482abc2e71939ef510d4938492
375
+ !! source digest: sha256:cf116fbc449f4763c68b322ad6d401b4199e1f9652dca73ec333c69c896a2d38
376
376
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
377
377
  <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/license-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&amp;target_branch=17.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
378
378
  <p>This module extends the functionality of accounting to support loans. It
@@ -642,6 +642,12 @@ class TestLoan(BaseCommon):
642
642
  self.assertEqual(loan.payment_amount - loan.interests_amount, amount)
643
643
  self.assertEqual(loan.pending_principal_amount, 0)
644
644
 
645
+ def test_negative_loan(self):
646
+ # Check that negatives amounts don't give an error
647
+ loan = self.create_loan("fixed-annuity", -4000, 1, 10)
648
+ self.post(loan)
649
+ loan.line_ids[0].view_process_values()
650
+
645
651
  @mute_logger("odoo.models.unlink")
646
652
  def test_cancel_loan(self):
647
653
  amount = 10000
@@ -26,12 +26,22 @@
26
26
  <field name="state" />
27
27
  <field name="rate" optional="hide" />
28
28
  <field name="loan_amount" optional="hide" />
29
- <field name="pending_principal_amount" optional="hide" />
29
+ <field name="pending_principal_amount" optional="hide" sum="Total" />
30
30
  <field name="periods" optional="hide" />
31
31
  <field name="start_date" optional="hide" />
32
32
  </tree>
33
33
  </field>
34
34
  </record>
35
+ <record id="account_loan_pivot" model="ir.ui.view">
36
+ <field name="name">account.loan.pivot</field>
37
+ <field name="model">account.loan</field>
38
+ <field name="arch" type="xml">
39
+ <pivot string="Loans pivot">
40
+ <field name="name" type="row" />
41
+ <field name="loan_amount" type="measure" />
42
+ </pivot>
43
+ </field>
44
+ </record>
35
45
  <record id="account_loan_form" model="ir.ui.view">
36
46
  <field name="name">account.loan.form</field>
37
47
  <field name="model">account.loan</field>
@@ -217,6 +227,7 @@
217
227
  <record id="account_loan_action" model="ir.actions.act_window">
218
228
  <field name="name">Loans</field>
219
229
  <field name="res_model">account.loan</field>
230
+ <field name="view_mode">tree,form,pivot</field>
220
231
  </record>
221
232
 
222
233
  <menuitem
@@ -43,38 +43,38 @@ class AccountLoanPost(models.TransientModel):
43
43
  res = list()
44
44
  partner = self.loan_id.partner_id.with_company(self.loan_id.company_id)
45
45
  line = self.loan_id.line_ids.filtered(lambda r: r.sequence == 1)
46
+ # Amounts are evaled if > 0 for allowing negative loans to be able to be the
47
+ # donors of the loan
48
+ amount = line.pending_principal_amount
46
49
  res.append(
47
50
  {
48
51
  "account_id": self.account_id.id,
49
52
  "name": self.loan_id.name,
50
53
  "partner_id": partner.id,
51
- "credit": 0,
52
- "debit": line.pending_principal_amount,
54
+ "credit": -amount if amount < 0 else 0,
55
+ "debit": amount if amount > 0 else 0,
53
56
  }
54
57
  )
55
- if line.pending_principal_amount - line.long_term_pending_principal_amount > 0:
58
+ diff_amount = abs(line.pending_principal_amount) - abs(
59
+ line.long_term_pending_principal_amount
60
+ )
61
+ if diff_amount > 0:
56
62
  res.append(
57
63
  {
58
64
  "account_id": self.loan_id.short_term_loan_account_id.id,
59
- "credit": (
60
- line.pending_principal_amount
61
- - line.long_term_pending_principal_amount
62
- ),
63
- "debit": 0,
65
+ "credit": diff_amount if amount > 0 else 0,
66
+ "debit": diff_amount if amount < 0 else 0,
64
67
  }
65
68
  )
66
- if (
67
- line.long_term_pending_principal_amount > 0
68
- and self.loan_id.long_term_loan_account_id
69
- ):
69
+ diff_amount = abs(line.long_term_pending_principal_amount)
70
+ if diff_amount > 0 and self.loan_id.long_term_loan_account_id:
70
71
  res.append(
71
72
  {
72
73
  "account_id": self.loan_id.long_term_loan_account_id.id,
73
- "credit": line.long_term_pending_principal_amount,
74
- "debit": 0,
74
+ "credit": diff_amount if amount > 0 else 0,
75
+ "debit": diff_amount if amount < 0 else 0,
75
76
  }
76
77
  )
77
-
78
78
  return res
79
79
 
80
80
  def move_vals(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-account_loan
3
- Version: 17.0.2.0.0.3
3
+ Version: 17.0.2.2.0
4
4
  Requires-Python: >=3.10
5
5
  Requires-Dist: numpy-financial<=1.0.0
6
6
  Requires-Dist: numpy>=1.15
@@ -14,6 +14,7 @@ Classifier: Programming Language :: Python
14
14
  Classifier: Framework :: Odoo
15
15
  Classifier: Framework :: Odoo :: 17.0
16
16
  Classifier: License :: OSI Approved :: GNU Affero General Public License v3
17
+ Description-Content-Type: text/x-rst
17
18
 
18
19
  .. image:: https://odoo-community.org/readme-banner-image
19
20
  :target: https://odoo-community.org/get-involved?utm_source=readme
@@ -28,7 +29,7 @@ Account Loan management
28
29
  !! This file is generated by oca-gen-addon-readme !!
29
30
  !! changes will be overwritten. !!
30
31
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
31
- !! source digest: sha256:59c6924d56b9f3bf84420edd2b401de3a4e1d2482abc2e71939ef510d4938492
32
+ !! source digest: sha256:cf116fbc449f4763c68b322ad6d401b4199e1f9652dca73ec333c69c896a2d38
32
33
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
33
34
 
34
35
  .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -1,8 +1,8 @@
1
- odoo/addons/account_loan/README.rst,sha256=TV2SbkPwU7inSBxCrQrxTEZwEMFURcCO85fAfFhnHZI,5029
1
+ odoo/addons/account_loan/README.rst,sha256=WggSobHvtn4-iq2AFStLvlbGjud4IT-WwVIZ3hX1Om4,5029
2
2
  odoo/addons/account_loan/__init__.py,sha256=o9EnCAU5AKoGmP2X6ytOhQFxVqIh5Y1itLUOmzxSUJY,113
3
- odoo/addons/account_loan/__manifest__.py,sha256=wClttprjv7bs-EENaKcu_7wt--ov-fZEcw7I_yLtSWc,1083
3
+ odoo/addons/account_loan/__manifest__.py,sha256=6HuTrbyqWsh4n1wwCulILrjTUyfP9c6TeDO7clDFePc,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=6asNGESGEUYsTPQQ0YLa_wNrAJbl4EUUoWf6EfYmMJU,36228
5
+ odoo/addons/account_loan/i18n/account_loan.pot,sha256=waUySljdY7G6nVl_FmadYbbSB2WhL9tfr_A4AFd_o-w,36463
6
6
  odoo/addons/account_loan/i18n/am.po,sha256=Rn10i6Wvs5TCUVx0rMoFYm3g-dhbySHsuqJLYht5wlE,36638
7
7
  odoo/addons/account_loan/i18n/ar.po,sha256=mjW7AERtAZLpH4W-KAIbANShtT4mN-K74Em2BI2K4dE,36914
8
8
  odoo/addons/account_loan/i18n/bg.po,sha256=MtpP4qrra6MAkXurqK_qUzwfjquJHAg5bP8xxRYBQRE,36845
@@ -82,7 +82,7 @@ odoo/addons/account_loan/migrations/17.0.1.0.0/noupdate_changes.xml,sha256=bZbGu
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
84
  odoo/addons/account_loan/models/account_loan.py,sha256=Dxz5apL4uD9YdZkGJkFuNMtNW2vL0G-cIPPNMFP1FhI,16936
85
- odoo/addons/account_loan/models/account_loan_line.py,sha256=GaNlg2ZERnjf2uH_SIBfEUigA0qDmQxb7wKOwM-uCE0,18190
85
+ odoo/addons/account_loan/models/account_loan_line.py,sha256=eL638G70AudYQwdNVUMVcPr6vR7IjcDGOzDA_Hu17jU,18808
86
86
  odoo/addons/account_loan/models/account_move.py,sha256=cL0Z4bvK77L7eEulSNBmI4zhw5CSpIbHSJcgoCHGwfs,869
87
87
  odoo/addons/account_loan/models/res_partner.py,sha256=6NgoxHUstcHftmDGj9NWzxfb9MBDG6XATj_1OwMao84,995
88
88
  odoo/addons/account_loan/readme/CONTRIBUTORS.md,sha256=w4frkcHOfPes7QOWbCyGpnNbYcxJhFM0A9x0qCxxQd4,227
@@ -92,11 +92,11 @@ odoo/addons/account_loan/readme/USAGE.md,sha256=pQ7Eb0xRbAdguo8JAxUQ-irEFkOdIeor
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=SxJ00-P9-kCIaa2sD0k-n8Ugmom2GEjz_3i3B_M4Eew,15606
95
+ odoo/addons/account_loan/static/description/index.html,sha256=jLRh8ppsxFBZ_NEiF2i9PQ6pHHyovJVa6PpocdmUEio,15606
96
96
  odoo/addons/account_loan/tests/__init__.py,sha256=I1GwELsBL3FTRS0pVrE5q-qEk537mMnSOXpWkPVcBnY,94
97
- odoo/addons/account_loan/tests/test_loan.py,sha256=sCnOT9RdiIsrDJUSgIQpIDAt0SdZLUhBbNHZ1MGS55I,31061
97
+ odoo/addons/account_loan/tests/test_loan.py,sha256=2uUFsBx8yF9LVIWL-dFHrXAUXsnKRpxYF_7bjlIfAPw,31289
98
98
  odoo/addons/account_loan/views/account_loan_lines_view.xml,sha256=wBhtozQ_gfyRFklFNsvuvWk9-vgFereQtSghBA931ik,6571
99
- odoo/addons/account_loan/views/account_loan_view.xml,sha256=F0XtI0RTRCXXqxpdewHIEtOAmJacnGiZu4nGCLQekio,11013
99
+ odoo/addons/account_loan/views/account_loan_view.xml,sha256=AufFsGbQu0fXkM0AznbGW5fYiqs5A4xUcicWa8Hlqq4,11481
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=9aRQaqPGdV5NSUJ6oiTV8kaUhT5TzuqJ3oFJKefL3Tw,3667
109
+ odoo/addons/account_loan/wizards/account_loan_post.py,sha256=giy-_9ln5eSKjhF8u9o0muGGuGiUeeIQfZA0tIIEAkU,3865
110
110
  odoo/addons/account_loan/wizards/account_loan_post_view.xml,sha256=s-teTEY9HCEA2CHD3_tQZJIGOHJMZNAlR1pSN5Dpdn8,1440
111
- odoo_addon_account_loan-17.0.2.0.0.3.dist-info/METADATA,sha256=tc6AM2ncteaVx_yaSNh-gDDnMCZKwy0zeuRW5prSHoY,5617
112
- odoo_addon_account_loan-17.0.2.0.0.3.dist-info/WHEEL,sha256=9fEMia4zL7ZuZbnCOrcYogUhmn4XFIVaJ8G4YGI31xc,81
113
- odoo_addon_account_loan-17.0.2.0.0.3.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
114
- odoo_addon_account_loan-17.0.2.0.0.3.dist-info/RECORD,,
111
+ odoo_addon_account_loan-17.0.2.2.0.dist-info/METADATA,sha256=FJwvP6KI-9ydOFAcOJi_RTBj8adLul7FLLKU3dW4U_0,5652
112
+ odoo_addon_account_loan-17.0.2.2.0.dist-info/WHEEL,sha256=ZhOvUsYhy81Dx67gN3TV0RchQWBIIzutDZaJODDg2Vo,81
113
+ odoo_addon_account_loan-17.0.2.2.0.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
114
+ odoo_addon_account_loan-17.0.2.2.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: Whool 1.2
2
+ Generator: Whool 1.3
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5