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

[FIX]Add queue job for creation invoice surplus

parent 68e0e4ec
Branches
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -430,28 +430,10 @@ class AccOperation(models.Model):
)
return power_total
def create_account_surplus(self, date_month, account_periodicity):
"""
Fonction permettant de générer les factures se surplus à une date donnée.
Création des factures + Création des lignes de facture associées.
:param date_month: date à laquelle on lance la facture
account_periodicity: périodicité (1 pour mois, 3 pour trimestre,
6 pour semestre, 12 pour année)
:return:
"""
def process_create_account_surplus(
self, injection_id, date_start, date_end, power_surplus
):
account_list = []
date_end = date_utils.end_of(date_month, "month")
date_start = date_end - relativedelta(months=int(account_periodicity) - 1)
date_start = date_utils.start_of(date_start, "month")
for injection_id in self.acc_injection_ids:
if injection_id.is_account_surplus_activate:
power_surplus = self.get_power_by_prod(
injection_id, date_start, date_end
)
Account = self.env["acc.account"]
acc_account = Account.create(
......@@ -529,11 +511,55 @@ class AccOperation(models.Model):
}
)
account_list.append(acc_account)
return True
def create_account_surplus(self, date_month, account_periodicity):
"""
Fonction permettant de générer les factures se surplus à une date donnée.
Création des factures + Création des lignes de facture associées.
:param date_month: date à laquelle on lance la facture
account_periodicity: périodicité (1 pour mois, 3 pour trimestre,
6 pour semestre, 12 pour année)
:return:
"""
date_end = date_utils.end_of(date_month, "month")
date_start = date_end - relativedelta(months=int(account_periodicity) - 1)
date_start = date_utils.start_of(date_start, "month")
for injection_id in self.acc_injection_ids:
if injection_id.is_account_surplus_activate:
power_surplus = self.get_power_by_prod(
injection_id, date_start, date_end
)
# Création du lot
batch_name = (
"Facture surplus du "
+ str(date_start)
+ " au "
+ str(date_end)
+ " - Opération :"
+ str(self.name)
+ " - Prod :"
+ str(injection_id.name)
+ " - Acheteur :"
+ str(injection_id.buyer_id.name)
)
batch = self.env["queue.job.batch"].get_new_batch(batch_name)
self.with_context(
job_batch=batch
).with_delay().process_create_account_surplus(
injection_id, date_start, date_end, power_surplus
)
# lancement de la file d'attente
batch.enqueue()
action = self.env["ir.actions.actions"]._for_xml_id(
"acc_account.action_acc_account"
)
action["domain"] = [("id", "in", account_list)]
action["domain"] = [("acc_operation_id", "=", self.id)]
return action
def _open_x2m_matrix(self, view_xmlid):
......
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