diff --git a/api/customs/management/commands/microservicios.py b/api/customs/management/commands/microservicios.py index 801b419..f700b94 100644 --- a/api/customs/management/commands/microservicios.py +++ b/api/customs/management/commands/microservicios.py @@ -36,7 +36,8 @@ class Command(BaseCommand): if organizacion_id: if procesamiento: - microservice_v2.ejecutar_procesamiento_por_organizacion(organizacion_id, procesamiento) + # microservice_v2.ejecutar_procesamiento_por_organizacion(organizacion_id, procesamiento) + microservice_v2.ejecutar_por_organizacion_y_procesamiento(organizacion_id, procesamiento) self.stdout.write(self.style.SUCCESS(f'Se ejecutó el procesamiento {procesamiento} para la organización {organizacion_id}.')) else: microservice_v2.ejecutar_todos_por_organizacion(organizacion_id) diff --git a/api/customs/tasks/microservice_v2.py b/api/customs/tasks/microservice_v2.py index e2a72c1..fda2461 100644 --- a/api/customs/tasks/microservice_v2.py +++ b/api/customs/tasks/microservice_v2.py @@ -222,14 +222,15 @@ def procesar_pedimentos_completos(organizacion_id): pedimento_dict = pedimento_to_dict(pedimento) credenciales = Vucem.objects.filter(id=CredencialesImportador.objects.filter(rfc=pedimento.contribuyente).first().vucem.id).first() + if not credenciales: + print(f"No se encontraron credenciales para el pedimento {pedimento.pedimento_app}") + continue + 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), @@ -428,7 +429,35 @@ def documentos_con_errores(organizacion_id): # Aquí puedes agregar lógica adicional para manejar documentos con errores # como enviar notificaciones, registrar en un log, etc. +@shared_task +def procesar_procesamiento_pedimento(organizacion_id): + print("Creando procesamientos de pedimentos para organización:", organizacion_id) + + pedimentos = Pedimento.objects.filter(organizacion_id=organizacion_id) + # pedimentos = Pedimento.objects.filter(id='1c061182-ac68-45b0-b3d7-35bf2264982b') + if not pedimentos.exists(): + print("No se encontraron pedimentos para la organización:", organizacion_id) + return + for pedimento in pedimentos: + if not pedimento.documents.filter(document_type=2).exists(): # Tipo 2: Pedimento Completo + procesamiento_pedimento = ProcesamientoPedimento.objects.filter( + pedimento_id=pedimento.id, + servicio_id=3, # servicio 3: Pedimento Completo + ) + + if not procesamiento_pedimento.exists(): + ProcesamientoPedimento.objects.create( + pedimento_id=pedimento.id + , organizacion_id=pedimento.organizacion_id + , estado_id =1 + , servicio_id=3 + , tipo_procesamiento_id=2) # servicio 3: Pedimento Completo + + print("Procesamiento creado para pedimento:", pedimento.pedimento_app) + + procesar_pedimentos_completos.delay(organizacion_id) + def ejecutar_por_organizacion_y_procesamiento(organizacion_id, procesamiento): if procesamiento == 'coves': procesar_coves.delay(organizacion_id) @@ -444,10 +473,12 @@ def ejecutar_por_organizacion_y_procesamiento(organizacion_id, procesamiento): procesar_pedimentos_completos.delay(organizacion_id) elif procesamiento == 'remesas': procesar_remesas.delay(organizacion_id) - + elif procesamiento == 'procesamiento_pedimento': + procesar_procesamiento_pedimento.delay(organizacion_id) else: # Procesamiento no reconocido - pass + print(f"Procesamiento no reconocido: {procesamiento}") + # pass def ejecutar_todos_por_organizacion(organizacion_id): procesar_coves.delay(organizacion_id) @@ -459,3 +490,5 @@ def ejecutar_todos_por_organizacion(organizacion_id): procesar_remesas.delay(organizacion_id) + +