X-Git-Url: https://git.llucax.com/z.facultad/75.10/miklolife.git/blobdiff_plain/4763f9f35aed5629241308415a4fca4794b3dadf..f6a9d59815a6148640f80b50888aeff9d59de21e:/demo/src/Reportes/InfoPrestacionesReport.cs diff --git a/demo/src/Reportes/InfoPrestacionesReport.cs b/demo/src/Reportes/InfoPrestacionesReport.cs index aa95492..f454c70 100644 --- a/demo/src/Reportes/InfoPrestacionesReport.cs +++ b/demo/src/Reportes/InfoPrestacionesReport.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Xml; +using System.Globalization; namespace Reportes { @@ -15,7 +16,6 @@ namespace Reportes public InfoPrestacionesReport( string pathNombreArchivo ) { this._pathArchivo = pathNombreArchivo; - this.CargarXml( pathNombreArchivo ); } #endregion Constructores @@ -28,7 +28,7 @@ namespace Reportes private string _cuitPrestador; private DateTime _fechaEnvio; - private ArrayList _lineas = null; + private LineaInfoPrestacionesReport[] _lineas = null; #endregion Campos Privados @@ -52,7 +52,7 @@ namespace Reportes set { this._fechaEnvio = value; } } - public ArrayList Lineas + public LineaInfoPrestacionesReport[] Lineas { get { return this._lineas; } set { this._lineas = value; } @@ -64,18 +64,28 @@ namespace Reportes public bool ValidarFormato() { - bool valido = false; - - if ( ! this._esBienFormado ) + XmlDocument xmlDoc = new System.Xml.XmlDocument(); + try + { + xmlDoc.Load( this._pathArchivo ); + } + catch ( XmlException xmlEx ) + { + #warning Ver como mostrar los errores + return false; + } + + if ( this.ValidarContraSchema( xmlDoc ) ) { - valido = false; + this.CargarXml( xmlDoc ); } else { - //Validar contra el schema + //Mostrar error y retornar + return false; } - return valido; + return true; } public void ValidarLineas( Dominio.Autorizaciones.Prestador prestador ) @@ -90,25 +100,53 @@ namespace Reportes #region Métodos privados - private void CargarXml( string pathNombreArchivo ) + private bool ValidarContraSchema( XmlDocument xmlDoc ) { - XmlDocument xmlDoc = new System.Xml.XmlDocument(); + #warning Seguir acá + return true; + } - try - { - xmlDoc.Load( pathNombreArchivo ); - this._esBienFormado = true; - } - catch ( XmlException xmlEx ) + /// + /// Toma un xmlDoc valido contra el schema + /// + /// + private void CargarXml( XmlDocument xmlDoc ) + { + XmlNode root = xmlDoc["infoPrestaciones"]; + + this.FechaEnvio = DateTime.Parse( root.Attributes["fechaEnvio"].InnerText ); + + XmlElement prestador = root["prestador"]; + this.CuitPrestador = prestador["CUIT"].InnerText; + + XmlElement lineasXml = root["lineas"]; + if ( lineasXml.HasChildNodes ) { - this._esBienFormado = false; - return; + this._lineas = new LineaInfoPrestacionesReport[ lineasXml.ChildNodes.Count ]; + + XmlNode node; int cod; string tipoAut; int codAfiliado; string codPrestacion; + DateTime fechaRealizacion; float porcentajeCobertura; + + NumberFormatInfo nfi = new NumberFormatInfo(); + nfi.NumberDecimalDigits = 2; + nfi.NumberDecimalSeparator = "."; + nfi.NumberGroupSeparator = ","; + + for ( int i = 0; i < lineasXml.ChildNodes.Count; i++ ) + { + node = lineasXml.ChildNodes[i]; + cod = int.Parse( node.Attributes["codigoAutorizacion"].InnerText ); + tipoAut = node["tipoAutorizacion"].InnerText; + codAfiliado = int.Parse( node["codigoAfiliado"].InnerText ); + codPrestacion = node["codigoPrestacion"].InnerText; + fechaRealizacion = DateTime.Parse( node["fechaRealizacion"].InnerText ); + + porcentajeCobertura = float.Parse( node["porcentajeCobertura"].InnerText.Trim(), nfi ); + + this._lineas[i] = new LineaInfoPrestacionesReport( cod, tipoAut, codAfiliado, codPrestacion, + fechaRealizacion, porcentajeCobertura ); + } } - - XmlNode root = xmlDoc.FirstChild; - XmlElement prestador = root["prestador"]; - this.CuitPrestador = prestador["CUIT"].Value; - } #endregion Métodos privados