feature/pedimento completo carga remesas, coves, edocs y acuses y aparte descarga sus documentos, se corrigieron las formulas de remesas, acuse y e documents para permitir la correcta descarga de susdocumentos y se aseguro que el status sea el correcto
This commit is contained in:
@@ -33,19 +33,20 @@ async def obtener_acuse(**kwargs):
|
||||
|
||||
file_name_request = f"vu_AC_{pedimento_app}_{idEdocument_efc}_REQUEST.xml"
|
||||
|
||||
document_response = await acuse_rest_controller.post_document(
|
||||
document_response = await acuse_rest_controller.post_or_update_document(
|
||||
soap_response=soap_xml,
|
||||
organizacion=organizacion_efc,
|
||||
pedimento=pedimento_id_efc,
|
||||
file_name=file_name_request,
|
||||
document_type=25, # Tipo de documento para request de acuse VU
|
||||
document_type=25,
|
||||
identifier=idEdocument_efc,
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Error al enviar solicitud SOAP: {e}")
|
||||
|
||||
response = await acuse_vu_controller.make_request_async(
|
||||
"ventanilla-acuses-HA/ConsultaAcusesServiceWS?wsdl",
|
||||
"ventanilla-acuses-HA/ConsultaAcusesServiceWS?wsdl",
|
||||
data=soap_xml,
|
||||
headers=soap_headers
|
||||
)
|
||||
@@ -72,11 +73,32 @@ async def obtener_acuse(**kwargs):
|
||||
|
||||
if soap_error(response):
|
||||
logger.error("Error SOAP detectado en la respuesta")
|
||||
pedimento_efc = kwargs.get('pedimento', {})
|
||||
organizacion_efc = pedimento_efc.get("organizacion", None)
|
||||
pedimento_id_efc = pedimento_efc.get("id", None)
|
||||
pedimento_app = pedimento_efc.get('pedimento_app', 'N/A')
|
||||
idEdocument_efc = kwargs['edoc'].get('numero_edocument', 'N/A')
|
||||
file_name_response = f"vu_AC_{pedimento_app}_{idEdocument_efc}_RESPONSE_ERROR.xml"
|
||||
|
||||
logger.info(f"Guardando RESPONSE_ERROR: file={file_name_response}, organizacion={organizacion_efc}, pedimento={pedimento_id_efc}")
|
||||
doc_result = await acuse_rest_controller.post_or_update_document(
|
||||
soap_response=response.text,
|
||||
organizacion=organizacion_efc,
|
||||
pedimento=pedimento_id_efc,
|
||||
file_name=file_name_response,
|
||||
document_type=26,
|
||||
identifier=idEdocument_efc,
|
||||
)
|
||||
if doc_result is None:
|
||||
logger.error(f"post_document retornó None para RESPONSE_ERROR — archivo físico guardado sin registro en BD")
|
||||
else:
|
||||
logger.info(f"RESPONSE_ERROR registrado en BD: id={doc_result.get('id')}, document_type={doc_result.get('document_type')}")
|
||||
|
||||
raise HTTPException(
|
||||
status_code=500,
|
||||
detail=create_error_response(
|
||||
message="Error en la respuesta del servicio SOAP",
|
||||
data={"soap_response": response.text[:500]}
|
||||
data={"soap_response": response.text[:3000]}
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import asyncio
|
||||
import logging
|
||||
from typing import Dict, Any
|
||||
from contextlib import asynccontextmanager
|
||||
from fastapi import HTTPException
|
||||
|
||||
from .services import obtener_acuse
|
||||
from api.api_v2.modules.tasks.services import register_task, update_task
|
||||
@@ -88,6 +89,6 @@ def process_acuse_request(self, acuse_request: Dict[str, Any]) -> Dict[str, Any]
|
||||
)
|
||||
except Exception as update_error:
|
||||
logging.error(f"Error al actualizar estado de tarea: {update_error}")
|
||||
raise
|
||||
return {"status": "failed", "message": error_message}
|
||||
finally:
|
||||
loop.close()
|
||||
Reference in New Issue
Block a user