Se agregaron cambios de XMLController

This commit is contained in:
2025-09-12 15:30:03 -06:00
parent c58e9dd3b9
commit a3b3e73e37
2 changed files with 45 additions and 10 deletions

View File

@@ -1,5 +1,6 @@
import xml.etree.ElementTree as ET
from dataclasses import dataclass
from typing import List, Dict
# Pedimento Completo
@dataclass
@@ -247,9 +248,51 @@ class XMLScraper: # Clase me extrae datos de Pedimento
return extract_xml_data(xml_content)
class XMLControllerRemesas:
pass
"""
Controlador para scrapear XML de consultar remesas.
Extrae todos los comprobantesVE, junto con remesaAgente y remesaSA.
"""
namespaces = {
"S": "http://schemas.xmlsoap.org/soap/envelope/",
"ns2": "http://www.ventanillaunica.gob.mx/common/ws/oxml/respuesta",
"ns3": "http://www.ventanillaunica.gob.mx/pedimentos/ws/oxml/consultarremesas",
}
def extract_remesas(self, xml_content: str) -> List[Dict[str, str]]:
"""
Extrae todos los comprobanteVE de un XML de remesas.
Args:
xml_content: Contenido del XML en string.
Returns:
Lista de diccionarios con comprobanteVE, remesaAgente y remesaSA.
"""
try:
root = ET.fromstring(xml_content)
remesas = []
for remesa in root.findall(".//ns3:remesas", self.namespaces):
comprobante = remesa.find("ns3:comprobanteVE", self.namespaces)
agente = remesa.find("ns3:remesaAgente", self.namespaces)
sa = remesa.find("ns3:remesaSA", self.namespaces)
remesas.append({
"comprobanteVE": comprobante.text if comprobante is not None else None,
"remesaAgente": agente.text if agente is not None else None,
"remesaSA": sa.text if sa is not None else None
})
return remesas
except ET.ParseError as e:
print(f"Error al parsear XML: {e}")
return []
except Exception as e:
print(f"Error inesperado: {e}")
return []
class XMLControllerPartidas:
pass