Se modifico la tarea para que haga el update del pedimento
Al parecer no se estaba mandando la fuente en el endpoint y eso fue lo que causaba el error
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -8,6 +8,9 @@ __pycache__/
|
|||||||
# C extensions
|
# C extensions
|
||||||
*.so
|
*.so
|
||||||
|
|
||||||
|
main2.py
|
||||||
|
sample.xml
|
||||||
|
|
||||||
# Distribution / packaging
|
# Distribution / packaging
|
||||||
.Python
|
.Python
|
||||||
build/
|
build/
|
||||||
|
|||||||
45
tasks.py
45
tasks.py
@@ -90,7 +90,40 @@ def pedimento_completo_task(self, request_data: Dict[str, Any]):
|
|||||||
if not soap_response:
|
if not soap_response:
|
||||||
raise Exception("Error en la petición SOAP para pedimento completo")
|
raise Exception("Error en la petición SOAP para pedimento completo")
|
||||||
|
|
||||||
|
|
||||||
logger.info("[TASK] Petición SOAP para pedimento completo completada exitosamente")
|
logger.info("[TASK] Petición SOAP para pedimento completo completada exitosamente")
|
||||||
|
|
||||||
|
# Actualizar datos del pedimento con información del XML (igual que en el endpoint)
|
||||||
|
try:
|
||||||
|
xml_content = soap_response.get('xml_content', {})
|
||||||
|
if xml_content:
|
||||||
|
update_content = {k: v for k, v in xml_content.items() if k != 'identificadores_ed'}
|
||||||
|
update_content['existe_expediente'] = True
|
||||||
|
pedimento_response = await rest_controller.put_pedimento(
|
||||||
|
service_data['pedimento']['id'],
|
||||||
|
update_content
|
||||||
|
)
|
||||||
|
logger.info("Pedimento actualizado exitosamente (TASK)")
|
||||||
|
else:
|
||||||
|
logger.warning("No se recibió contenido XML para actualizar el pedimento (TASK)")
|
||||||
|
except Exception as e:
|
||||||
|
logger.warning(f"No se pudo actualizar el pedimento (TASK, continuando proceso): {e}")
|
||||||
|
|
||||||
|
|
||||||
|
# Procesar y guardar COVEs (igual que en el endpoint)
|
||||||
|
try:
|
||||||
|
coves = xml_content.get('coves', []) if 'xml_content' in locals() else []
|
||||||
|
logger.warning(f"COVEs encontrados: {coves}")
|
||||||
|
for cove in coves:
|
||||||
|
logger.warning(f"Procesando COVE: {cove}")
|
||||||
|
cove_result = await _post_coves(
|
||||||
|
response_service=service_data,
|
||||||
|
coves=coves
|
||||||
|
)
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"Error al procesar COVEs: {e}")
|
||||||
|
cove_result = None
|
||||||
|
|
||||||
# Subir documento de pedimento completo si la petición fue exitosa
|
# Subir documento de pedimento completo si la petición fue exitosa
|
||||||
try:
|
try:
|
||||||
upload_result = await _post_edocuments(
|
upload_result = await _post_edocuments(
|
||||||
@@ -100,11 +133,11 @@ def pedimento_completo_task(self, request_data: Dict[str, Any]):
|
|||||||
logger.info(f"Documento de pedimento completo subido exitosamente: {upload_result}")
|
logger.info(f"Documento de pedimento completo subido exitosamente: {upload_result}")
|
||||||
except Exception as upload_err:
|
except Exception as upload_err:
|
||||||
logger.error(f"Error al subir documento de pedimento completo: {upload_err}")
|
logger.error(f"Error al subir documento de pedimento completo: {upload_err}")
|
||||||
|
|
||||||
self.update_state(state='PROGRESS', meta={'status': 'Finalizando proceso'})
|
self.update_state(state='PROGRESS', meta={'status': 'Finalizando proceso'})
|
||||||
|
|
||||||
await _update_service_status(service_data['id'], ESTADO_FINALIZADO, service_data, operation_name)
|
await _update_service_status(service_data['id'], ESTADO_FINALIZADO, service_data, operation_name)
|
||||||
|
|
||||||
response_data = await _create_response(
|
response_data = await _create_response(
|
||||||
service_data=service_data,
|
service_data=service_data,
|
||||||
additional_data={
|
additional_data={
|
||||||
@@ -114,7 +147,7 @@ def pedimento_completo_task(self, request_data: Dict[str, Any]):
|
|||||||
},
|
},
|
||||||
success_message="Pedimento completo obtenido exitosamente"
|
success_message="Pedimento completo obtenido exitosamente"
|
||||||
)
|
)
|
||||||
|
|
||||||
logger.info(f"[TASK] Consulta de pedimento completo completada exitosamente - Servicio: {service_data['id']}")
|
logger.info(f"[TASK] Consulta de pedimento completo completada exitosamente - Servicio: {service_data['id']}")
|
||||||
return response_data
|
return response_data
|
||||||
|
|
||||||
@@ -742,7 +775,6 @@ def coves_task(self, **kwargs):
|
|||||||
|
|
||||||
return run_async_task(_execute_coves)
|
return run_async_task(_execute_coves)
|
||||||
|
|
||||||
|
|
||||||
@celery_app.task(bind=True)
|
@celery_app.task(bind=True)
|
||||||
def acuse_cove_task(self, **kwargs):
|
def acuse_cove_task(self, **kwargs):
|
||||||
"""Tarea asíncrona para obtener acuse de COVE"""
|
"""Tarea asíncrona para obtener acuse de COVE"""
|
||||||
@@ -890,4 +922,5 @@ def acuse_cove_task(self, **kwargs):
|
|||||||
await _update_service_status(service_data['id'], ESTADO_ERROR, service_data, operation_name)
|
await _update_service_status(service_data['id'], ESTADO_ERROR, service_data, operation_name)
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
return run_async_task(_execute_acuse_cove)
|
return run_async_task(_execute_acuse_cove)
|
||||||
|
|
||||||
|
|||||||
@@ -315,6 +315,7 @@ async def get_soap_pedimento_completo(credenciales, response_service, soap_contr
|
|||||||
|
|
||||||
data['organizacion'] = response_service['organizacion']
|
data['organizacion'] = response_service['organizacion']
|
||||||
data['id'] = response_service['pedimento']['id']
|
data['id'] = response_service['pedimento']['id']
|
||||||
|
data['fuente'] = 2
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"servicio": response_service,
|
"servicio": response_service,
|
||||||
|
|||||||
Reference in New Issue
Block a user