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