From 0aa28b439495cf7cd10a3bea4b0b7986b1ba3bb8 Mon Sep 17 00:00:00 2001 From: Kevin Rosales Date: Sat, 4 Oct 2025 00:36:26 -0600 Subject: [PATCH] bug --- api/customs/tasks/microservice_v2.py | 61 +++++++++++++++------------- 1 file changed, 32 insertions(+), 29 deletions(-) diff --git a/api/customs/tasks/microservice_v2.py b/api/customs/tasks/microservice_v2.py index cec2bf9..65f0679 100644 --- a/api/customs/tasks/microservice_v2.py +++ b/api/customs/tasks/microservice_v2.py @@ -1,33 +1,5 @@ from celery import group -@shared_task -def procesar_pedimento_completo_individual(pedimento_id): - pedimento = Pedimento.objects.get(id=pedimento_id) - if not pedimento.documents.filter(document_type=2).exists(): # Tipo 2: Pedimento Completo - pedimento_dict = pedimento_to_dict(pedimento) - credenciales = Vucem.objects.filter( - id=CredencialesImportador.objects.filter(rfc=pedimento.contribuyente).first().vucem.id - ).first() - credenciales_dict = credenciales_to_dict(credenciales) - payload = { - "pedimento": pedimento_dict, - "credencial": credenciales_dict - } - response = requests.post( - f"{SERVICE_API_URL_V2}/services/pedimento_completo", - data=json.dumps(payload), - headers={"Content-Type": "application/json"} - ) - print(f"Servicio enviado para pedimento {pedimento.pedimento}") -def procesar_pedimentos_completos_en_lotes(organizacion_id, batch_size=20): - pedimentos = Pedimento.objects.filter(organizacion_id=organizacion_id) - ids = list(pedimentos.values_list('id', flat=True)) - for i in range(0, len(ids), batch_size): - batch = ids[i:i+batch_size] - job = group( - procesar_pedimento_completo_individual.s(ped_id) - for ped_id in batch - ) - job.apply_async() + from celery import shared_task, group from api.customs.models import * @@ -83,6 +55,37 @@ def partida_to_dict(partida): "numero": partida.numero_partida, } +@shared_task +def procesar_pedimento_completo_individual(pedimento_id): + pedimento = Pedimento.objects.get(id=pedimento_id) + if not pedimento.documents.filter(document_type=2).exists(): # Tipo 2: Pedimento Completo + pedimento_dict = pedimento_to_dict(pedimento) + credenciales = Vucem.objects.filter( + id=CredencialesImportador.objects.filter(rfc=pedimento.contribuyente).first().vucem.id + ).first() + credenciales_dict = credenciales_to_dict(credenciales) + payload = { + "pedimento": pedimento_dict, + "credencial": credenciales_dict + } + response = requests.post( + f"{SERVICE_API_URL_V2}/services/pedimento_completo", + data=json.dumps(payload), + headers={"Content-Type": "application/json"} + ) + print(f"Servicio enviado para pedimento {pedimento.pedimento}") + +def procesar_pedimentos_completos_en_lotes(organizacion_id, batch_size=20): + pedimentos = Pedimento.objects.filter(organizacion_id=organizacion_id) + ids = list(pedimentos.values_list('id', flat=True)) + for i in range(0, len(ids), batch_size): + batch = ids[i:i+batch_size] + job = group( + procesar_pedimento_completo_individual.s(ped_id) + for ped_id in batch + ) + job.apply_async() + @shared_task def procesar_pedimentos_completos(organizacion_id): pedimentos = Pedimento.objects.filter(organizacion_id=organizacion_id)