Se agrego creacion automatica de tareas:
This commit is contained in:
@@ -38,6 +38,8 @@ from api.logger.mixins import LoggingMixin
|
||||
from mixins.filtrado_organizacion import OrganizacionFiltradaMixin, ProcesosPorOrganizacionMixin
|
||||
import requests
|
||||
|
||||
from .tasks.microservice_v2 import *
|
||||
from .tasks.auditoria import crear_partidas_por_pedimento
|
||||
|
||||
|
||||
class CustomPagination(PageNumberPagination):
|
||||
@@ -166,20 +168,10 @@ class ViewSetPedimento(LoggingMixin, viewsets.ModelViewSet, OrganizacionFiltrada
|
||||
if fecha_pago and aduana and patente and pedimento:
|
||||
pedimento_app = f"{str(fecha_pago.year)[-2:]}-{str(aduana).zfill(2)[-2:]}-{str(patente).zfill(4)[-4:]}-{str(pedimento).zfill(7)[-7:]}"
|
||||
serializer.save(organizacion=self.request.user.organizacion, pedimento_app=pedimento_app)
|
||||
return
|
||||
|
||||
try:
|
||||
# Usar el nombre del servicio de Docker Compose en lugar de localhost
|
||||
response = requests.request('POST', f'{SERVICE_API_URL}/services/pedimento', params={},
|
||||
json={
|
||||
'estado': 1,
|
||||
'servicio': 3,
|
||||
'tipo_procesamiento': 2,
|
||||
'pedimento': str(serializer.instance.id),
|
||||
'organizacion': str(self.request.user.organizacion.id),
|
||||
},
|
||||
timeout=10
|
||||
)
|
||||
response = procesar_pedimento_completo_individual(serializer.instance.id)
|
||||
|
||||
# Verificar si la respuesta fue exitosa
|
||||
if response.status_code == 200:
|
||||
@@ -201,6 +193,42 @@ class ViewSetPedimento(LoggingMixin, viewsets.ModelViewSet, OrganizacionFiltrada
|
||||
print(f"🚨 Error de request al servicio FastAPI: {e}")
|
||||
except Exception as e:
|
||||
print(f"💥 Error inesperado al llamar al servicio FastAPI: {e}")
|
||||
|
||||
def perform_update(self, serializer):
|
||||
"""
|
||||
Ejecuta acciones después de actualizar un pedimento basado en los campos modificados.
|
||||
"""
|
||||
# Obtener los campos que se están actualizando
|
||||
updated_fields = set(serializer.validated_data.keys())
|
||||
|
||||
# Guardar los cambios
|
||||
pedimento = serializer.save()
|
||||
|
||||
# Si se actualizó el campo existe_expediente, procesar el pedimento completo
|
||||
if 'existe_expediente' in updated_fields:
|
||||
# Iniciar todas las tareas
|
||||
procesar_remesas_pedimento(pedimento.id)
|
||||
crear_partidas_por_pedimento(pedimento.id)
|
||||
procesar_acuse_coves_pedimento(pedimento.id)
|
||||
procesar_edocs_pedimento(pedimento.id)
|
||||
procesar_acuses_pedimento(pedimento.id)
|
||||
procesar_partidas_pedimento(pedimento.id)
|
||||
procesar_coves_pedimento(pedimento.id)
|
||||
|
||||
# Agregar mensaje de tareas iniciadas al serializer
|
||||
serializer._data = {
|
||||
**serializer.data,
|
||||
"message": "Tareas de procesamiento iniciadas",
|
||||
"tasks": [
|
||||
"Procesamiento de remesas",
|
||||
"Creación de partidas",
|
||||
"Procesamiento de acuses de COVEs",
|
||||
"Procesamiento de E-documents",
|
||||
"Procesamiento de acuses",
|
||||
"Procesamiento de partidas",
|
||||
"Procesamiento de COVEs"
|
||||
]
|
||||
}
|
||||
|
||||
my_tags = ['Pedimentos']
|
||||
|
||||
|
||||
Reference in New Issue
Block a user