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