From 72a558eaee63b5285a283c16fbf6ee2c6b4a0764 Mon Sep 17 00:00:00 2001 From: houssine Date: Wed, 6 Nov 2019 10:45:33 +0100 Subject: [PATCH] [CHG] change the computation of maximum amount subscriable --- easy_my_coop_loan/models/loan.py | 23 ++++++++++++++++--- easy_my_coop_loan/views/loan_view.xml | 5 +++- easy_my_coop_loan_website/controllers/main.py | 4 +++- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/easy_my_coop_loan/models/loan.py b/easy_my_coop_loan/models/loan.py index 0d305b8..54d8bc1 100644 --- a/easy_my_coop_loan/models/loan.py +++ b/easy_my_coop_loan/models/loan.py @@ -37,9 +37,14 @@ class LoanIssue(models.Model): currency_field='company_currency_id') maximum_amount = fields.Monetary(string="Maximum amount", currency_field='company_currency_id') - maximum_amount_per_sub = fields.Monetary( - string="Maximum amount per subscription", - currency_field='company_currency_id') + min_amount_company = fields.Monetary(string="Minimum amount for a company", + currency_field='company_currency_id') + max_amount_company = fields.Monetary(string="Maximum amount for a company", + currency_field='company_currency_id') + min_amount_person = fields.Monetary(string="Minimum amount for a person", + currency_field='company_currency_id') + max_amount_person = fields.Monetary(string="Maximum amount for a person", + currency_field='company_currency_id') subscribed_amount = fields.Monetary(string="Subscribed amount", compute="_compute_subscribed_amount", currency_field='company_currency_id') @@ -71,6 +76,18 @@ class LoanIssue(models.Model): taxes_rate = fields.Float(string="Taxes on interest", required=True) + @api.multi + def get_max_amount(self, partner): + max_amount = 0 + lines = self.loan_issue_lines.filtered( + lambda r: r.partner_id == partner and r.state != 'cancelled') + already_subscribed = sum(line.amount for line in lines) + if partner.is_company: + max_amount = self.max_amount_company - already_subscribed + else: + max_amount = self.max_amount_person - already_subscribed + return max_amount + @api.multi def toggle_display(self): for loan_issue in self: diff --git a/easy_my_coop_loan/views/loan_view.xml b/easy_my_coop_loan/views/loan_view.xml index d90f499..7ca7a8e 100644 --- a/easy_my_coop_loan/views/loan_view.xml +++ b/easy_my_coop_loan/views/loan_view.xml @@ -61,8 +61,11 @@ - + + + + diff --git a/easy_my_coop_loan_website/controllers/main.py b/easy_my_coop_loan_website/controllers/main.py index 92e0209..09f7379 100644 --- a/easy_my_coop_loan_website/controllers/main.py +++ b/easy_my_coop_loan_website/controllers/main.py @@ -12,11 +12,13 @@ class WebsiteLoanIssueSubscription(http.Controller): methods=['POST'], website=True) def get_loan_issue(self, loan_issue_id, **kw): loan_issue_obj = request.env['loan.issue'] + partner = request.env.user.partner_id if loan_issue_id: loan_issue = loan_issue_obj.sudo().browse(int(loan_issue_id)) + max_amount = loan_issue.get_max_amount(partner) return { loan_issue.id: { - 'max_amount': loan_issue.maximum_amount_per_sub, + 'max_amount': max_amount, 'face_value': loan_issue.face_value, } }