fix: Ajuste en micorservicios para guardar las peticiones a VU

This commit is contained in:
2026-01-02 08:37:59 -07:00
parent 4ce3f9b2c6
commit b879e5c24d
2 changed files with 99 additions and 1 deletions

View File

@@ -1,3 +1,4 @@
# microservice\api\api_v2\modules\pedimentos\services.py
"""Servicios para el manejo de pedimentos completos."""
import logging
@@ -58,6 +59,21 @@ async def consume_ws_get_pedimento_completo(**kwargs) -> Dict[str, Any]:
pedimento=pedimento_data.get('pedimento')
)
# Enviar documento
try:
file_name_request = f"VU_PC_{pedimento_data.get('pedimento_app', 'unknown')}_REQUEST.xml"
document_response = await pedimento_rest_controller.post_document(
soap_response=soap_xml,
organizacion=pedimento_data.get('organizacion'),
pedimento=pedimento_data.get('id'),
file_name=file_name_request,
document_type=13,
)
except Exception as e:
logger.error(f"Error al enviar documento request: {e}")
soap_headers = {
'Content-Type': 'text/xml; charset=utf-8'
}
@@ -100,7 +116,7 @@ async def consume_ws_get_pedimento_completo(**kwargs) -> Dict[str, Any]:
organizacion=pedimento_data.get('organizacion'),
pedimento=pedimento_data.get('id'),
file_name=file_name,
document_type=2,
document_type=2,
)
except Exception as e:
logger.error(f"Error al enviar documento: {e}")
@@ -191,6 +207,44 @@ async def put_pedimento_data(**kwargs) -> Dict[str, Any]:
logger.info("Procesamiento de pedimento completo finalizado")
return result
async def put_pedimento_data_vu(**kwargs) -> Dict[str, Any]:
"""
Actualiza la información del pedimento en el sistema REST.
Args:
**kwargs: Datos de credencial y pedimento
Returns:
Dict con resultados del procesamiento
Raises:
HTTPException: Si hay errores críticos en el procesamiento
"""
# Inicializar variables de respuesta
result = {
"documento": None,
"xml_content": None
}
# Obtener datos del servicio web
try:
ws_data = await consume_ws_get_pedimento_completo(**kwargs)
result["documento"] = ws_data.get("documento", None)
xml_content = ws_data.get('xml_content', {})
result["xml_content"] = xml_content
if not xml_content:
logger.warning("No se obtuvo contenido XML del servicio web")
return result
except HTTPException:
raise # Re-lanzar HTTPExceptions
except Exception as e:
logger.error(f"Error inesperado al consumir servicio web: {e}")
raise HTTPException(status_code=500, detail=f"Error al obtener datos del pedimento: {str(e)}")
return result
async def _update_pedimento_info(kwargs: Dict[str, Any], xml_content: Dict[str, Any]) -> Optional[Dict[str, Any]]:
"""