Mudanza de repo
This commit is contained in:
0
api/customs/signals/__init__.py
Normal file
0
api/customs/signals/__init__.py
Normal file
59
api/customs/signals/procesamiento.py
Normal file
59
api/customs/signals/procesamiento.py
Normal file
@@ -0,0 +1,59 @@
|
||||
from django.db.models.signals import post_save
|
||||
from django.dispatch import receiver
|
||||
from django.db import transaction
|
||||
from time import sleep
|
||||
|
||||
from api.customs.models import Pedimento, ProcesamientoPedimento, Cove, EDocument
|
||||
from api.customs.tasks.internal_services import (
|
||||
crear_procesamiento_remesa,
|
||||
crear_procesamiento_partida,
|
||||
crear_procesamiento_cove,
|
||||
crear_procesamiento_acuse_cove,
|
||||
crear_procesamiento_acuse,
|
||||
crear_procesamiento_edocument
|
||||
)
|
||||
from api.customs.tasks.microservice import (
|
||||
ejecutar_pedimento_completo,
|
||||
procesar_pedimento_completo_individual
|
||||
|
||||
)
|
||||
|
||||
@receiver(post_save, sender=Pedimento)
|
||||
def trigger_celery_task_on_create(sender, instance, created, **kwargs):
|
||||
if created:
|
||||
procesar_pedimento_completo_individual.apply_async(args=[instance.id, instance.organizacion.id])
|
||||
|
||||
@receiver(post_save, sender=Pedimento)
|
||||
def trigger_celery_task_on_update(sender, instance, created,**kwargs):
|
||||
if not created:
|
||||
import logging
|
||||
logger = logging.getLogger('api.customs.async_operations')
|
||||
logger.info(f"Pedimento actualizado: {instance.id}, verificando servicios a crear...")
|
||||
sleep(4)
|
||||
def enqueue_tasks():
|
||||
if instance.remesas:
|
||||
logger.info(f"Creando proceso de remesas para pedimento {instance.id}")
|
||||
crear_procesamiento_remesa.apply_async(args=[str(instance.id)])
|
||||
if hasattr(instance, 'numero_partidas') and instance.numero_partidas and instance.numero_partidas > 0:
|
||||
logger.info(f"Creando proceso de partida para pedimento {instance.id}")
|
||||
crear_procesamiento_partida.apply_async(args=[str(instance.id)])
|
||||
|
||||
transaction.on_commit(enqueue_tasks)
|
||||
|
||||
@receiver(post_save, sender=Cove)
|
||||
def trigger_celery_task_on_cove_create(sender, instance, created, **kwargs):
|
||||
if created:
|
||||
import logging
|
||||
logger = logging.getLogger('api.customs.async_operations')
|
||||
logger.info(f"Cove creado: {instance.id}, creando procesamiento...")
|
||||
crear_procesamiento_cove.apply_async(args=[str(instance.pedimento.id)])
|
||||
crear_procesamiento_acuse_cove.apply_async(args=[str(instance.pedimento.id)])
|
||||
|
||||
@receiver(post_save, sender=EDocument)
|
||||
def trigger_celery_task_on_edocument_create(sender, instance, created, **kwargs):
|
||||
if created:
|
||||
import logging
|
||||
logger = logging.getLogger('api.customs.async_operations')
|
||||
logger.info(f"EDocument creado: {instance.id}, creando procesamiento...")
|
||||
crear_procesamiento_edocument.apply_async(args=[str(instance.pedimento.id)])
|
||||
crear_procesamiento_acuse.apply_async(args=[str(instance.pedimento.id)])
|
||||
Reference in New Issue
Block a user