2
0

[IMP] account_loan: Show lended loans from partner

This commit is contained in:
Enric Tobella 2023-09-15 11:57:33 +02:00
parent bf6075876f
commit 7781a19940
6 changed files with 86 additions and 0 deletions

View File

@ -17,6 +17,7 @@
"wizards/account_loan_post_view.xml",
"views/account_loan_view.xml",
"views/account_move_view.xml",
"views/res_partner.xml",
],
"installable": True,
"maintainers": ["etobella"],

View File

@ -4,3 +4,4 @@
from . import account_loan
from . import account_loan_line
from . import account_move
from . import res_partner

View File

@ -0,0 +1,32 @@
# Copyright 2023 Dixmit
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import api, fields, models
class ResPartner(models.Model):
_inherit = "res.partner"
lended_loan_ids = fields.One2many("account.loan", inverse_name="partner_id")
lended_loan_count = fields.Integer(
compute="_compute_lended_loan_count",
help="How many Loans this partner lended to us ?",
)
@api.depends("lended_loan_ids")
def _compute_lended_loan_count(self):
for record in self:
record.lended_loan_count = len(record.lended_loan_ids)
def action_view_partner_lended_loans(self):
self.ensure_one()
action = self.env["ir.actions.actions"]._for_xml_id(
"account_loan.account_loan_action"
)
all_child = self.with_context(active_test=False).search(
[("id", "child_of", self.ids)]
)
action["domain"] = [("partner_id", "in", all_child.ids)]
return action

View File

@ -77,6 +77,13 @@ class TestLoan(TransactionCase):
loan._onchange_company()
self.assertFalse(loan.interest_expenses_account_id)
def test_partner_loans(self):
self.assertFalse(self.partner.lended_loan_count)
loan = self.create_loan("fixed-annuity", 500000, 1, 60)
self.assertEqual(1, self.partner.lended_loan_count)
action = self.partner.action_view_partner_lended_loans()
self.assertEqual(loan, self.env[action["res_model"]].search(action["domain"]))
def test_round_on_end(self):
loan = self.create_loan("fixed-annuity", 500000, 1, 60)
loan.round_on_end = True

View File

@ -3,6 +3,17 @@
Copyright 2016 Antonio Espinosa <antonio.espinosa@tecnativa.com>
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo>
<record id="account_loan_search" model="ir.ui.view">
<field name="name">account.loan.tree</field>
<field name="model">account.loan</field>
<field name="arch" type="xml">
<search>
<field name="partner_id" />
<field name="company_id" groups="base.group_multi_company" />
</search>
</field>
</record>
<record id="account_loan_tree" model="ir.ui.view">
<field name="name">account.loan.tree</field>
<field name="model">account.loan</field>

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2023 Dixmit
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<record model="ir.ui.view" id="res_partner_form_view">
<field name="name">res.partner.form (in account_loan)</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form" />
<field name="arch" type="xml">
<div name="button_box" position="inside">
<button
type="object"
class="oe_stat_button"
icon="fa-money"
name="action_view_partner_lended_loans"
groups="account.group_account_user"
context="{'default_partner_id': active_id}"
attrs="{'invisible': [('lended_loan_count','=', 0)]}"
>
<div class="o_form_field o_stat_info">
<span class="o_stat_value">
<field name="lended_loan_count" />
</span>
<span class="o_stat_text">Loans</span>
</div>
</button>
</div>
</field>
</record>
</odoo>