diff --git a/models/acc_account.py b/models/acc_account.py index 68788c9c4a6cf9b689af1978ffe9e96190af1be6..c7418bff1bd38f87063a13c9fc59714abe1426e4 100644 --- a/models/acc_account.py +++ b/models/acc_account.py @@ -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 diff --git a/models/acc_counter.py b/models/acc_counter.py index 810395bd2639207dece4e173dc6168a4d10c2252..6c89514342d3c0afbb48b1ff604f72cff0591b7c 100644 --- a/models/acc_counter.py +++ b/models/acc_counter.py @@ -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" diff --git a/models/acc_operation.py b/models/acc_operation.py index 92c2217e3386636c99bfdfdf79c7325f5a5ac460..2c2845d90737fd5454360e6c75d8729a9e3462ed 100644 --- a/models/acc_operation.py +++ b/models/acc_operation.py @@ -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") # ------------------------------------------------------ diff --git a/models/acc_price_conf.py b/models/acc_price_conf.py index 8441ace40e527d205cbf083ede0cac74cb9155d6..b8c9b2b3d038a44d2f9c2c38699f49156666a6fc 100644 --- a/models/acc_price_conf.py +++ b/models/acc_price_conf.py @@ -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: