From 72a558eaee63b5285a283c16fbf6ee2c6b4a0764 Mon Sep 17 00:00:00 2001 From: houssine Date: Wed, 6 Nov 2019 10:45:33 +0100 Subject: [PATCH 1/5] [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, } } From 8b66c48d2d39bf4cb605cfd9a5a606b6fa957daf Mon Sep 17 00:00:00 2001 From: houssine Date: Wed, 6 Nov 2019 15:37:51 +0100 Subject: [PATCH 2/5] [CHG] remove is_loan and related code --- easy_my_coop_loan/models/loan.py | 21 +-------------------- easy_my_coop_loan/views/loan_view.xml | 1 - 2 files changed, 1 insertion(+), 21 deletions(-) diff --git a/easy_my_coop_loan/models/loan.py b/easy_my_coop_loan/models/loan.py index 54d8bc1..36bd54c 100644 --- a/easy_my_coop_loan/models/loan.py +++ b/easy_my_coop_loan/models/loan.py @@ -21,7 +21,6 @@ class LoanIssue(models.Model): name = fields.Char(string="Name", translate=True) is_bond = fields.Boolean(string="Is a bond issue?") - is_loan = fields.Boolean(string="Is a subordinated loan issue?") default_issue = fields.Boolean(string="Default issue") subscription_start_date = fields.Date(string="Start date") subscription_end_date = fields.Date(string="End date") @@ -94,19 +93,7 @@ class LoanIssue(models.Model): loan_issue.display_on_website = not loan_issue.display_on_website @api.multi - def get_web_loan_issues(self, is_company): - loan_issues = self.search([ - ('is_loan', '=', True), - ('display_on_website', '=', True), - ('state', '=', 'ongoing') - ]) - if is_company is True: - return loan_issues.filtered('by_company') - else: - return loan_issues.filtered('by_individual') - - @api.multi - def get_web_bond_issues(self, is_company): + def get_web_issues(self, is_company): bond_issues = self.search([ ('is_bond', '=', True), ('display_on_website', '=', True), @@ -117,12 +104,6 @@ class LoanIssue(models.Model): else: return bond_issues.filtered('by_company') - @api.multi - def get_web_issues(self, is_company): - issues = self.get_web_loan_issues(is_company) - issues = issues + self.get_web_bond_issues(is_company) - return issues - @api.multi def action_confirm(self): self.ensure_one() diff --git a/easy_my_coop_loan/views/loan_view.xml b/easy_my_coop_loan/views/loan_view.xml index 7ca7a8e..334d555 100644 --- a/easy_my_coop_loan/views/loan_view.xml +++ b/easy_my_coop_loan/views/loan_view.xml @@ -55,7 +55,6 @@ - From 03ed1f45f31d6c9d581291998b308a250f27b49d Mon Sep 17 00:00:00 2001 From: houssine Date: Wed, 6 Nov 2019 19:11:22 +0100 Subject: [PATCH 3/5] [CHG] several modification made in batch --- easy_my_coop_loan/models/loan.py | 10 +++++----- easy_my_coop_loan/views/loan_view.xml | 14 ++++++++++++-- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/easy_my_coop_loan/models/loan.py b/easy_my_coop_loan/models/loan.py index 36bd54c..60aa1d0 100644 --- a/easy_my_coop_loan/models/loan.py +++ b/easy_my_coop_loan/models/loan.py @@ -22,19 +22,19 @@ class LoanIssue(models.Model): translate=True) is_bond = fields.Boolean(string="Is a bond issue?") default_issue = fields.Boolean(string="Default issue") - subscription_start_date = fields.Date(string="Start date") - subscription_end_date = fields.Date(string="End date") + subscription_start_date = fields.Date(string="Start date subscription period") + subscription_end_date = fields.Date(string="End date subscription period") user_id = fields.Many2one('res.users', string="Responsible") term_date = fields.Date(string="Term date") - loan_term = fields.Float(string="term of the loan") + loan_term = fields.Float(string="Duration of the loan") rate = fields.Float(string="Interest rate") face_value = fields.Monetary(string="Facial value", currency_field='company_currency_id', required=True) - minimum_amount = fields.Monetary(string="Minimum amount", + minimum_amount = fields.Monetary(string="Minimum amount of issue", currency_field='company_currency_id') - maximum_amount = fields.Monetary(string="Maximum amount", + maximum_amount = fields.Monetary(string="Maximum amount of issue", currency_field='company_currency_id') min_amount_company = fields.Monetary(string="Minimum amount for a company", currency_field='company_currency_id') diff --git a/easy_my_coop_loan/views/loan_view.xml b/easy_my_coop_loan/views/loan_view.xml index 334d555..5defce2 100644 --- a/easy_my_coop_loan/views/loan_view.xml +++ b/easy_my_coop_loan/views/loan_view.xml @@ -67,11 +67,20 @@ + - - +