This commit is contained in:
Ladebeze66 2025-03-18 17:11:25 +01:00
parent 2538c63b9d
commit 563e388240
3 changed files with 21 additions and 15 deletions

View File

@ -0,0 +1,3 @@
[
10908
]

View File

@ -69,20 +69,22 @@ class TicketManager:
print(f"Données brutes du ticket sauvegardées dans : {file_path}") print(f"Données brutes du ticket sauvegardées dans : {file_path}")
def get_ticket_by_id(self, ticket_id): def get_ticket_by_id(self, ticket_id):
""" Récupère les détails d'un ticket par son ID et applique le filtre """ """Récupère les détails d'un ticket par son ID et exclut dynamiquement les champs invalides"""
fields_to_read = self.get_model_fields(self.model_name) #Récupère tous les champs disponibles pour le modèle fields_to_read = self.get_model_fields(self.model_name) # Récupère tous les champs disponibles
excluded_fields = set() # Liste des champs à exlure excluded_fields = set() # Liste des champs à exclure
while True: while True:
try: try:
#Récupérer les données du ticket avec les champs filtrés # Mise à jour de fields_to_read en supprimant les champs exclus
valid_fields = [field for field in fields_to_read if field not in excluded_fields] fields_to_read = [field for field in fields_to_read if field not in excluded_fields]
ticket_data = self._safe_execute(self.model_name, 'read', [ticket_id], valid_fields)
# Récupérer les données du ticket avec les champs filtrés
ticket_data = self._safe_execute(self.model_name, 'read', [ticket_id], fields_to_read)
if not ticket_data: if not ticket_data:
print_error(f"Aucun ticket trouvé avec l'ID {ticket_id}") print_error(f"Aucun ticket trouvé avec l'ID {ticket_id}")
return None return None
# Sauvegarde des données brutes pour analyse # Sauvegarde des données brutes pour analyse
self.save_raw_ticket_data(ticket_data, f"ticket_{ticket_id}_raw.json") self.save_raw_ticket_data(ticket_data, f"ticket_{ticket_id}_raw.json")
return ticket_data[0] return ticket_data[0]
@ -90,15 +92,16 @@ class TicketManager:
except odoorpc.error.RPCError as e: except odoorpc.error.RPCError as e:
error_message = str(e) error_message = str(e)
print_error(f"Erreur RPC détectée : {error_message}") print_error(f"Erreur RPC détectée : {error_message}")
#identifier le champ problématique # Identifier le champ problématique
invalid_field = self.extract_invalid_field(error_message) invalid_field = self.extract_invalid_field(error_message)
if invalid_field: if invalid_field:
print(f"Exclusion du champ invalide : {invalid_field}") print(f"Exclusion du champ invalide : {invalid_field}")
excluded_fields.add(invalid_field) excluded_fields.add(invalid_field)
else: else:
print_error(f"Impossible d'identifier le champ problématique. Arrêt de la récupération des données.") print_error("Impossible d'identifier le champ problématique.")
return None return None
def get_ticket_by_code(self, ticket_code): def get_ticket_by_code(self, ticket_code):
"""Récupérer un ticket via son code""" """Récupérer un ticket via son code"""