Newer
Older
# Copyright 2021 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from dateutil.relativedelta import relativedelta
third_account_journal_ids = fields.Many2many(related="journal_id.third_account_ids")
comodel_name="account.account",
string="Compte de tiers",
string="Afficher le SIRET",
default=False,
help="Affiche le n° SIRET sur la facture client",
fee_start_date = fields.Date(
string="Date de début de redevance",
compute="inverse_date_deadline",
readonly=False,
store=True,
default=False
)
fee_deadline_date = fields.Date(
string="Date de fin de redevance",
compute="compute_date_deadline",
readonly=False,
store=True,
default=False
)
# ------------------------------------------------------
# Override Parent
# ------------------------------------------------------
def _onchange_journal_id(self):
"""
Affecte le compte de tiers défini sur le journal
"""
if self.journal_id.third_account_ids:
self.third_account_id = self.journal_id.third_account_ids[0].id
def _onchange_third_account_id(self):
"""
Affecte le compte de tiers défini sur le journal
"""
if self.third_account_id:
for line in self.line_ids:
if line.account_id.user_type_id.type in ("receivable", "payable"):
line.account_id = self.third_account_id
# ------------------------------------------------------
# Override Parent
# ------------------------------------------------------
def _onchange_partner_id(self):
"""
Affecte le compte de tiers défini sur le journal
"""
super(AccountMove, self)._onchange_partner_id()
if self.third_account_id:
for line in self.line_ids:
if line.account_id.user_type_id.type in ("receivable", "payable"):
line.account_id = self.third_account_id
@api.depends("fee_start_date")
def compute_date_deadline(self):
"""
Calcule la date de fin de redevance si la date de début de redevance est modifiée
"""
for invoice in self:
if invoice.fee_start_date:
invoice.fee_deadline_date = invoice.fee_start_date + relativedelta(days=365)
@api.depends("fee_deadline_date")
def inverse_date_deadline(self):
"""
Calcule la date de début de redevance si la date de fin de redevance est modifiée
"""
for invoice in self:
if invoice.fee_deadline_date:
invoice.fee_start_date = invoice.fee_deadline_date - relativedelta(days=365)