Skip to content
Extraits de code Groupes Projets
Valider 1f2c3937 rédigé par Juliana's avatar Juliana
Parcourir les fichiers

[ADD]Add comment

parent 32d25acf
Branches
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -126,6 +126,10 @@ class AccAccount(models.Model):
@api.model_create_multi
def create(self, vals_list):
res = super(AccAccount, self).create(vals_list)
"""
Construction de la séquence et du nom de la facture
en fonction du type (Achat/Vente)
"""
for rec in res:
if res.is_account_buyer:
seq = str(rec.acc_injection_id.acc_account_surplus_count).zfill(3)
......@@ -151,10 +155,16 @@ class AccAccount(models.Model):
def _compute_access_url(self):
super(AccAccount, self)._compute_access_url()
"""
Nouvelle déclaration du chemin pour accès aux factures via l'app
"""
for move in self:
move.access_url = "/invoice/%s" % (move.id)
def _get_report_base_filename(self):
"""
Définition du nom du fichier du Report
"""
self.ensure_one()
return "Facture %s" % (self.name,)
......@@ -165,6 +175,10 @@ class AccAccount(models.Model):
"line_ids.quantity",
)
def _compute_amount(self):
"""
Calcul des totaux (taxes, montants, quantités)
en fonction des lignes de facture
"""
for move in self:
total_tax = 0.0
total = 0.0
......@@ -190,6 +204,9 @@ class AccAccount(models.Model):
move.amount_without_tcfe = tot_tcfe_off
def _compute_url(self):
"""
Définition de l'url pour accès sur l'APP
"""
for account in self:
account.url = account.get_portal_url(report_type="pdf", download=True)
......@@ -243,6 +260,10 @@ class AccAccountLine(models.Model):
@api.depends("quantity", "price_unit")
def _compute_amount(self):
"""
Fonction pour calculer le montant total
de la ligne de facture (quantité * prix unitaire)
"""
for line in self:
line.price_total = line.quantity * line.price_unit
......
......@@ -57,6 +57,12 @@ class AccCounter(models.Model):
# ------------------------------------------------------
@api.depends("acc_account_delivery_ids", "acc_account_delivery_ids")
def _compute_acc_account_count(self):
"""
Fonction permettant de calculer:
- le nombre de factures de vente par point d'injection,
- le nombre de factures de vente par point de soutirage,
- le nombre de factures Achat par point d'injection
"""
for res in self:
res.acc_account_delivery_count = self.env["acc.account"].search_count(
[("acc_delivery_id", "=", res.id)]
......@@ -78,6 +84,10 @@ class AccCounter(models.Model):
@api.model_create_multi
def create(self, vals_list):
res = super(AccCounter, self).create(vals_list)
"""
Si un point de livraison possède une opération, passage des valeurs
du prix de de vente par défaut et du tarif ACCISE par défaut
"""
if res.acc_operation_id and res.is_delivery:
res.sale_price = res.acc_operation_id.sale_price
res.price_accise = res.acc_operation_id.price_accise
......@@ -87,6 +97,9 @@ class AccCounter(models.Model):
# Actions
# ------------------------------------------------------
def action_view_acc_injection_accounts(self):
"""
Action permettant d'accéder auc factures de vente du point d'injection
"""
self.ensure_one()
action = self.env["ir.actions.actions"]._for_xml_id(
"acc_account.action_acc_account"
......@@ -95,6 +108,9 @@ class AccCounter(models.Model):
return action
def action_view_acc_delivery_accounts(self):
"""
Action permettant d'accéder auc factures de vente du point de soutirage
"""
self.ensure_one()
action = self.env["ir.actions.actions"]._for_xml_id(
"acc_account.action_acc_account"
......
......@@ -78,16 +78,28 @@ class AccOperation(models.Model):
# ------------------------------------------------------
@api.depends("acc_account_ids")
def _compute_acc_account_count(self):
"""
Fonction de calculer le nombre de factures de vente liées à une opération
"""
for res in self:
res.acc_account_count = len(res.acc_account_ids)
@api.depends("acc_account_surplus_ids")
def _compute_acc_account_surplus_count(self):
"""
Fonction de calculer le nombre de factures d'Achat liées à une opération
"""
for res in self:
res.acc_account_surplus_count = len(res.acc_account_surplus_ids)
@api.depends("acc_injection_ids", "acc_injection_ids.is_account_auto_activate")
def _compute_is_account_active(self):
"""
Fonction permettant de vérifier si une opération possède la facturation
de vente activée. L'info est récupérée de chaque point d'injection.
Si un point d'injection a la facturation de vente activée,
alors l'opération aussi.
"""
for res in self:
count_ids = res.acc_injection_ids.filtered(
lambda r: r.is_account_auto_activate is True
......@@ -99,6 +111,12 @@ class AccOperation(models.Model):
@api.depends("acc_injection_ids", "acc_injection_ids.is_account_surplus_activate")
def _compute_is_surplus_active(self):
"""
Fonction permettant de vérifier si une opération possède la facturation
d'achat activée. L'info est récupérée de chaque point d'injection.
Si un point d'injection a la facturation d'achat activée,
alors l'opération aussi.
"""
for res in self:
count_ids = res.acc_injection_ids.filtered(
lambda r: r.is_account_surplus_activate is True
......@@ -120,6 +138,9 @@ class AccOperation(models.Model):
# Actions
# ------------------------------------------------------
def action_view_acc_accounts(self):
"""
Action pour accéder aux factures de vente liées à l'opération
"""
self.ensure_one()
action = self.env["ir.actions.actions"]._for_xml_id(
"acc_account.action_acc_account"
......@@ -131,6 +152,9 @@ class AccOperation(models.Model):
return action
def action_view_acc_accounts_surplus(self):
"""
Action pour accéder aux factures d'achat liées à l'opération
"""
self.ensure_one()
action = self.env["ir.actions.actions"]._for_xml_id(
"acc_account.action_acc_account"
......@@ -196,6 +220,16 @@ class AccOperation(models.Model):
def process_create_account(
self, acc_injection_id, acc_delivery_id, date_start, date_end, power_total
):
"""
Fonction permettant la création des factures de vente,
ainsi que ces lignes de facture entre un producteur et un consommateur
pour une période donnée.
:param acc_injection_id: un producteur
acc_delivery_id: un consommateur
date_start: date début
date_end: date de fin
power_total: puissance totale sur la période
"""
account_list = []
Account = self.env["acc.account"]
......@@ -457,6 +491,16 @@ class AccOperation(models.Model):
def process_create_account_surplus(
self, injection_id, date_start, date_end, power_surplus
):
"""
Fonction permettant la création des factures d'achat,
ainsi que ces lignes de facture entre un producteur et un acheteur surplus
pour une période donnée.
:param acc_injection_id: un producteur
acc_delivery_id: un consommateur
date_start: date début
date_end: date de fin
power_total: puissance totale sur la période
"""
account_list = []
Account = self.env["acc.account"]
......@@ -613,6 +657,9 @@ class AccOperation(models.Model):
}
def open_x2m_matrix(self):
"""
Appelle la vue permettant l'affichage de la matrice
"""
return self._open_x2m_matrix("x2many_2d_matrix_sale")
# ------------------------------------------------------
......
......@@ -51,6 +51,18 @@ class AccPriceConf(models.Model):
@api.model_create_multi
def create(self, vals_list):
"""
A la définition d'un nouveau tarif pour une période donnée,
plusieurs contôles et fonctionnement:
- Distinction entre prix de vente, prix d'achat et tarif ACCISE. Si prix
de vente ou tarif ACCISE, création du prix pour le couple point d'injection
point de soutirage. Si création d'un tarif achat, création du prix pour le
couple point d'injection acheteur surplus
- Si pas de période existante, création d'une période de début de l'existance
du point d'injection à la date renseignée, puis création d'une période
à partir de la date donnée, sans date de fin
- Si période existe déjà sur les dates données, pas de création
"""
new_vals = []
for vals in vals_list:
if "acc_operation_id" in vals:
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter