diff --git a/models/financial_contract_guarantee.py b/models/financial_contract_guarantee.py index f30e447d977f82f220fa7a522fbc9cfdeb4cb31b..042ffb11aff0bccae7273fd9e970e22398f04583 100644 --- a/models/financial_contract_guarantee.py +++ b/models/financial_contract_guarantee.py @@ -71,6 +71,7 @@ class FinancialContractGuarantee(models.Model): string="En cours de garantie", store=True, tracking=1, + help="Calculé comme le produit du CRDU par la quotité garantie.", ) is_counter_guarantee = fields.Boolean("Contre Garantie", default=False) counter_guarantee_rate = fields.Float("Quotité contre garantie") @@ -82,6 +83,9 @@ class FinancialContractGuarantee(models.Model): compute="_compute_final_risk_guarantee", store=True, tracking=1, + help="Le risque final est l'encours de garantie moins les FMG " + "et les parts sociales. Dans le cas d'une co-garantie, " + "on retire également son montant.", ) # --- FMG --- @@ -89,11 +93,13 @@ class FinancialContractGuarantee(models.Model): string="FMG calculé", compute="_compute_fmg_amount", store=True, + help="Calculé à partir du montant garanti initial et du taux de FMG.", ) fmg_paid = fields.Monetary( string="FMG payé", compute="_compute_fmg_paid", store=True, + help="Calculé sur la somme des lignes de FMG.", ) fmg_ids = fields.One2many( comodel_name="mutual.guarantee.fund.line", @@ -103,7 +109,11 @@ class FinancialContractGuarantee(models.Model): # --- Social share --- social_share_number = fields.Integer( - string="Nbre parts sociales", compute="_compute_social_share_number", store=True + string="Nbre parts sociales", + compute="_compute_social_share_number", + store=True, + help="Nombre de parts sociales calculé à partir " + "du montant total et du prix unitaire.", ) social_share_amount = fields.Monetary( string="Montant parts sociales décidé", @@ -112,6 +122,8 @@ class FinancialContractGuarantee(models.Model): string="Montant parts sociales calculé", compute="_compute_social_share", store=True, + help="Montant des parts sociales calculé à partir du taux " + "et de la quantité maximale de parts sociales.", ) social_share_ids = fields.One2many( comodel_name="company.share.line", @@ -122,6 +134,7 @@ class FinancialContractGuarantee(models.Model): string="Montant parts sociales payé", compute="_compute_social_share_paid", store=True, + help="Montant calculé sur la somme des lignes de mouvements de parts sociales.", ) # --- Commission --- @@ -158,6 +171,7 @@ class FinancialContractGuarantee(models.Model): compute="_compute_amount_initial", store=True, readonly=False, + help="Montant du prêt." ) amount_received = fields.Monetary("Montant reçu") expiration_date_computed = fields.Date( @@ -217,31 +231,30 @@ class FinancialContractGuarantee(models.Model): commission_ids_count = fields.Integer( compute="_compute_commission_ids_count", store=True ) + @api.depends("commission_ids") def _compute_commission_ids_count(self): for g in self: g.commission_ids_count = len(g.commission_ids) - - line_ids_count = fields.Integer( - compute="_compute_line_ids_count", store=True - ) + line_ids_count = fields.Integer(compute="_compute_line_ids_count", store=True) + @api.depends("line_ids") def _compute_line_ids_count(self): for g in self: g.line_ids_count = len(g.line_ids) - - fmg_ids_count = fields.Integer( - compute="_compute_fmg_ids_count", store=True - ) + + fmg_ids_count = fields.Integer(compute="_compute_fmg_ids_count", store=True) + @api.depends("fmg_ids") def _compute_fmg_ids_count(self): for g in self: g.fmg_ids_count = len(g.fmg_ids) - + social_share_ids_count = fields.Integer( compute="_compute_social_share_ids_count", store=True ) + @api.depends("social_share_ids") def _compute_social_share_ids_count(self): for g in self: @@ -302,16 +315,24 @@ class FinancialContractGuarantee(models.Model): @api.depends("guarantee_amount", "is_counter_guarantee", "counter_guarantee_rate") def _compute_final_risk_guarantee(self): + """encours garanti - FMG - PS + si contre garantie, on retire également son montant + """ for guarantee in self: - if not guarantee.is_counter_guarantee: - guarantee.final_risk_guarantee = guarantee.guarantee_amount - else: - guarantee.final_risk_guarantee = ( - 1 - guarantee.counter_guarantee_rate - ) * guarantee.guarantee_amount + # FIXME doit-on vraiment retrancher le montant des parts sociales ? + frg = ( + guarantee.guarantee_amount + - guarantee.fmg_amount + - guarantee.social_share_amount + ) + # la contre garantie diminue d'autant le risque final + if guarantee.is_counter_guarantee: + frg *= 1 - guarantee.counter_guarantee_rate + guarantee.final_risk_guarantee = frg @api.depends("remaining_capital", "guarantee_rate") def _compute_guarantee_amount(self): + "CRDU × quotité" for guarantee in self: guarantee.guarantee_amount = ( guarantee.remaining_capital * guarantee.guarantee_rate