[IMP] account_loan: Show lended loans from partner
This commit is contained in:
parent
bf6075876f
commit
7781a19940
@ -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"],
|
||||
|
@ -4,3 +4,4 @@
|
||||
from . import account_loan
|
||||
from . import account_loan_line
|
||||
from . import account_move
|
||||
from . import res_partner
|
||||
|
32
account_loan/models/res_partner.py
Normal file
32
account_loan/models/res_partner.py
Normal 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
|
@ -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
|
||||
|
@ -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>
|
||||
|
34
account_loan/views/res_partner.xml
Normal file
34
account_loan/views/res_partner.xml
Normal 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>
|
Loading…
x
Reference in New Issue
Block a user