You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
# Copyright 2020 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 api, fields, models
from odoo.exceptions import UserError
class LoanEndOfYearOperation(models.TransientModel): _name = "loan.end.of.year.operation"
operation_type = fields.Selection( [("eoy_debt", "End of year debt operation"), ("eoy_interest", "End of year interest operation")], required=True, string="Operation type" ) ongoing_fy_id = fields.Many2one( comodel_name="account.fiscal.year", string="Ongoing fiscal year", required=True )
@api.multi def run(self): afy_obj = self.env["account.fiscal.year"] interest_line_obj = self.env["loan.interest.line"]
loan_issues = self.env["loan.issue"].browse( self._context.get("active_ids") )
last_fy_day = self.ongoing_fy_id.date_to next_fy = afy_obj.get_next_fiscal_year(last_fy_day)
if self.operation_type == "eoy_debt": if next_fy: interest_lines = interest_line_obj.search([ ('due_date', '>=', next_fy.date_from), ('due_date', '<=', next_fy.date_to), ('due_loan_amount', '>', 0), ("loan_issue_id", "in", loan_issues.ids) ])
if interest_lines: interest_lines.generate_loan_due_fy(last_fy_day) else: raise UserError("There is no account move lines to" " generate for the selected loan issue") elif self.operation_type == "eoy_interest": print()
|