houssine
5 years ago
committed by
robin.keunen
5 changed files with 104 additions and 95 deletions
-
9easy_my_coop_loan/models/__init__.py
-
124easy_my_coop_loan/models/interest_line.py
-
4easy_my_coop_loan/models/loan.py
-
3easy_my_coop_loan/models/loan_issue_line.py
-
59easy_my_coop_loan/models/partner.py
@ -1,5 +1,4 @@ |
|||
from . import loan |
|||
from . import loan_issue_line |
|||
from . import interest_line |
|||
from . import partner |
|||
from . import mail_template |
|||
from . import loan |
|||
from . import loan_issue_line |
|||
from . import interest_line |
|||
from . import partner |
@ -1,60 +1,64 @@ |
|||
from odoo import fields, models |
|||
|
|||
|
|||
class LoanInterestLine(models.Model): |
|||
_name = 'loan.interest.line' |
|||
_description = "Loan Interest Line" |
|||
|
|||
name = fields.Integer(string="Year", |
|||
required=True) |
|||
issue_line = fields.Many2one('loan.issue.line', |
|||
string="Subscribed loan", |
|||
required=True) |
|||
partner_id = fields.Many2one(related='issue_line.partner_id', |
|||
store=True, |
|||
readlonly=True) |
|||
amount = fields.Monetary(related='issue_line.amount', |
|||
string="Subscribed amount", |
|||
currency_field='company_currency_id', |
|||
readonly=True) |
|||
interest = fields.Monetary(string="Gross interest amount", |
|||
currency_field='company_currency_id', |
|||
readonly=True) |
|||
net_interest = fields.Monetary(string="Net interest amount", |
|||
currency_field='company_currency_id', |
|||
readonly=True) |
|||
taxes_rate = fields.Float(string="Taxes on interest", |
|||
required=True) |
|||
taxes_amount = fields.Monetary(string="Taxes amount", |
|||
currency_field='company_currency_id', |
|||
readonly=True) |
|||
accrued_amount = fields.Monetary(string="Accrued amount", |
|||
currency_field='company_currency_id', |
|||
readonly=True) |
|||
accrued_interest = fields.Monetary(string="Accrued gross interest", |
|||
currency_field='company_currency_id', |
|||
readonly=True) |
|||
accrued_net_interest = fields.Monetary( |
|||
string="Accrued net interest", |
|||
currency_field='company_currency_id', |
|||
readonly=True) |
|||
accrued_taxes = fields.Monetary(string="Accrued taxes to pay", |
|||
currency_field='company_currency_id', |
|||
readonly=True) |
|||
due_date = fields.Date(string="Due date") |
|||
company_currency_id = fields.Many2one('res.currency', |
|||
related='company_id.currency_id', |
|||
string="Company Currency", |
|||
readonly=True) |
|||
company_id = fields.Many2one('res.company', |
|||
related='issue_line.company_id', |
|||
string="Company", |
|||
readonly=True) |
|||
state = fields.Selection([('draft', 'Draft'), |
|||
('due', 'Due'), |
|||
('requested', 'Payment requested'), |
|||
('donation', 'Donation'), |
|||
('paid', 'Paid') |
|||
], |
|||
string="State", |
|||
default="draft") |
|||
# Copyright 2019 Coop IT Easy SCRL fs |
|||
# Houssine BAKKALI <houssine@coopiteasy.be> |
|||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). |
|||
|
|||
from odoo import fields, models |
|||
|
|||
|
|||
class LoanInterestLine(models.Model): |
|||
_name = 'loan.interest.line' |
|||
_description = "Loan Interest Line" |
|||
|
|||
name = fields.Integer(string="Year", |
|||
required=True) |
|||
issue_line = fields.Many2one('loan.issue.line', |
|||
string="Subscribed loan", |
|||
required=True) |
|||
partner_id = fields.Many2one(related='issue_line.partner_id', |
|||
store=True, |
|||
readlonly=True) |
|||
amount = fields.Monetary(related='issue_line.amount', |
|||
string="Subscribed amount", |
|||
currency_field='company_currency_id', |
|||
readonly=True) |
|||
interest = fields.Monetary(string="Gross interest amount", |
|||
currency_field='company_currency_id', |
|||
readonly=True) |
|||
net_interest = fields.Monetary(string="Net interest amount", |
|||
currency_field='company_currency_id', |
|||
readonly=True) |
|||
taxes_rate = fields.Float(string="Taxes on interest", |
|||
required=True) |
|||
taxes_amount = fields.Monetary(string="Taxes amount", |
|||
currency_field='company_currency_id', |
|||
readonly=True) |
|||
accrued_amount = fields.Monetary(string="Accrued amount", |
|||
currency_field='company_currency_id', |
|||
readonly=True) |
|||
accrued_interest = fields.Monetary(string="Accrued gross interest", |
|||
currency_field='company_currency_id', |
|||
readonly=True) |
|||
accrued_net_interest = fields.Monetary( |
|||
string="Accrued net interest", |
|||
currency_field='company_currency_id', |
|||
readonly=True) |
|||
accrued_taxes = fields.Monetary(string="Accrued taxes to pay", |
|||
currency_field='company_currency_id', |
|||
readonly=True) |
|||
due_date = fields.Date(string="Due date") |
|||
company_currency_id = fields.Many2one('res.currency', |
|||
related='company_id.currency_id', |
|||
string="Company Currency", |
|||
readonly=True) |
|||
company_id = fields.Many2one('res.company', |
|||
related='issue_line.company_id', |
|||
string="Company", |
|||
readonly=True) |
|||
state = fields.Selection([('draft', 'Draft'), |
|||
('due', 'Due'), |
|||
('requested', 'Payment requested'), |
|||
('donation', 'Donation'), |
|||
('paid', 'Paid') |
|||
], |
|||
string="State", |
|||
default="draft") |
@ -1,30 +1,29 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Copyright 2019 Coop IT Easy SCRL fs |
|||
# Robin Keunen <robin@coopiteasy.be> |
|||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). |
|||
|
|||
from odoo import fields, models, api |
|||
|
|||
|
|||
class ResPartner(models.Model): |
|||
_inherit = "res.partner" |
|||
|
|||
loan_line_ids = fields.One2many( |
|||
comodel_name="loan.issue.line", |
|||
inverse_name="partner_id", |
|||
string="Loans", |
|||
) |
|||
is_loaner = fields.Boolean( |
|||
string="Loaner", |
|||
compute="_compute_is_loaner", |
|||
store=True, |
|||
) |
|||
|
|||
@api.multi |
|||
@api.depends("loan_line_ids", "loan_line_ids.state") |
|||
def _compute_is_loaner(self): |
|||
for partner in self: |
|||
loans = partner.loan_line_ids.filtered( |
|||
lambda l: l.state in ["subscribed", "waiting", "paid"] |
|||
) |
|||
partner.is_loaner = bool(loans) |
|||
# Copyright 2019 Coop IT Easy SCRL fs |
|||
# Houssine BAKKALI <houssine@coopiteasy.be> |
|||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). |
|||
|
|||
from odoo import fields, models, api |
|||
|
|||
|
|||
class ResPartner(models.Model): |
|||
_inherit = "res.partner" |
|||
|
|||
loan_line_ids = fields.One2many( |
|||
comodel_name="loan.issue.line", |
|||
inverse_name="partner_id", |
|||
string="Loans", |
|||
) |
|||
is_loaner = fields.Boolean( |
|||
string="Loaner", |
|||
compute="_compute_is_loaner", |
|||
store=True, |
|||
) |
|||
|
|||
@api.multi |
|||
@api.depends("loan_line_ids", "loan_line_ids.state") |
|||
def _compute_is_loaner(self): |
|||
for partner in self: |
|||
loans = partner.loan_line_ids.filtered( |
|||
lambda l: l.state in ["subscribed", "waiting", "paid"] |
|||
) |
|||
partner.is_loaner = bool(loans) |
Write
Preview
Loading…
Cancel
Save
Reference in new issue