]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blobdiff - demo/src/Reportes/ConsumoAfiliadosReport.cs
- Valida contra el schema
[z.facultad/75.10/miklolife.git] / demo / src / Reportes / ConsumoAfiliadosReport.cs
index ddf781ca121c6328ad072ce6653a6e4dbd8c07e6..945a246b59eec19d648253bd1ecd66b46a95c3b5 100644 (file)
@@ -1,9 +1,11 @@
 using System;\r
 using System.Collections;\r
+using System.Configuration;\r
 using System.Xml;\r
 using Dominio.Autorizaciones;\r
 using Dominio.Afiliados;\r
 using com.db4o;\r
+using System.IO;\r
 \r
 \r
 namespace Reportes\r
@@ -31,18 +33,147 @@ namespace Reportes
                #endregion Constructores\r
 \r
                private XmlDocument xmlDoc = new XmlDocument(); \r
+               private ArrayList _listaCodigosAfiliado = new ArrayList();\r
 \r
                #region Metodos Publicos\r
 \r
                public void AgregarInfo( Prestador p, LineaInfoPrestacionesReport lineaIp )\r
                {\r
+                       XmlElement lineas = xmlDoc.DocumentElement["lineas"];\r
+                       XmlElement elemLinea = null;\r
+\r
+                       #region Datos propios de Afiliado\r
+                       if ( this._listaCodigosAfiliado.Contains(lineaIp.CodigoAfiliado) )\r
+                       { //Ya está el afiliado en el xml\r
+                               elemLinea = lineas.SelectSingleNode( @"//linea[@codigoAfiliado='" + lineaIp.CodigoAfiliado.ToString().Trim() + "']" ) as XmlElement;\r
+                       }\r
+                       else\r
+                       {\r
+                               Afiliado a = this.getAfiliado( lineaIp.CodigoAfiliado );\r
+\r
+                               //El nodo afiliado todavía no está en el xml\r
+                               elemLinea = this.xmlDoc.CreateElement("linea");\r
+                               elemLinea.SetAttribute( "codigoAfiliado", lineaIp.CodigoAfiliado.ToString().Trim() );\r
+                               lineas.AppendChild( elemLinea );\r
+\r
+                               //nombreAfiliado\r
+                               XmlElement elemNombreAfiliado = this.xmlDoc.CreateElement("nombreAfiliado");\r
+                               elemNombreAfiliado.InnerText = ( (a.Nombre == null)? string.Empty : a.Nombre.Trim() );\r
+                               elemLinea.AppendChild( elemNombreAfiliado );\r
+\r
+                               //apellidoAfiliado\r
+                               XmlElement elemApellidoAfiliado = this.xmlDoc.CreateElement("apellidoAfiliado");\r
+                               elemApellidoAfiliado.InnerText = ( (a.Apellido == null)? string.Empty : a.Apellido.Trim() );\r
+                               elemLinea.AppendChild( elemApellidoAfiliado );\r
+                               \r
+                               //codigoPlanAfiliado\r
+                               XmlElement elemCodigoPlanAfiliado = this.xmlDoc.CreateElement("codigoPlanAfiliado");\r
+                               elemCodigoPlanAfiliado.InnerText = ( (a.PlanActual == null)? string.Empty : a.PlanActual.Codigo.ToString().Trim() );\r
+                               elemLinea.AppendChild( elemCodigoPlanAfiliado );\r
+                               \r
+                               this._listaCodigosAfiliado.Add(lineaIp.CodigoAfiliado);\r
+                       }\r
+                       #endregion Datos propios de Afiliado\r
+\r
+                       #region Autorizacion Realizada\r
+\r
+                       //autorizacionRealizada\r
+                       XmlElement elemAutorizacion = this.xmlDoc.CreateElement( "autorizacionRealizada" );\r
+                       elemAutorizacion.SetAttribute( "codigo", lineaIp.CodigoAutorizacion.ToString().Trim() );\r
+\r
+                       //prestador\r
+                       XmlElement elemPrestador = this.xmlDoc.CreateElement( "prestador" );\r
+                       XmlElement elemCuit = this.xmlDoc.CreateElement( "CUIT" );\r
+                       elemCuit.InnerText = p.Cuit.ToString().Trim();\r
+                       elemPrestador.AppendChild( elemCuit );\r
+                       XmlElement elemNombrePrestador = this.xmlDoc.CreateElement( "nombre" );\r
+                       elemNombrePrestador.InnerText = ((p.Nombre == null)? string.Empty : p.Nombre.ToString().Trim());\r
+                       elemPrestador.AppendChild( elemNombrePrestador );\r
+                       elemAutorizacion.AppendChild( elemPrestador );\r
+\r
+                       //codigoPrestacion\r
+                       XmlElement elemCodPrestacion = this.xmlDoc.CreateElement( "codigoPrestacion" );\r
+                       elemCodPrestacion.InnerText = lineaIp.CodigoPrestacion.Trim();\r
+                       elemAutorizacion.AppendChild( elemCodPrestacion );\r
+\r
+                       //nombrePrestacion\r
+                       Prestacion prestacion = this.getPrestacion( lineaIp.CodigoPrestacion );\r
+                       XmlElement elemNombrePrestacion = this.xmlDoc.CreateElement( "nombrePrestacion" );\r
+                       elemNombrePrestacion.InnerText = ( (prestacion.Nombre == null)? string.Empty : prestacion.Nombre.Trim() );\r
+                       elemAutorizacion.AppendChild( elemNombrePrestacion );\r
+\r
+                       //fechaRealizacion\r
+                       XmlElement elemFechaRealizacion = this.xmlDoc.CreateElement( "fechaRealizacion" );\r
+                       elemFechaRealizacion.InnerText = lineaIp.FechaRealizacion.ToString( "yyyy-MM-dd" );\r
+                       elemAutorizacion.AppendChild( elemFechaRealizacion );\r
+       \r
+                       //porcentajeCobertura\r
+                       XmlElement elemPorcentaje = this.xmlDoc.CreateElement( "porcentajeCobertura" );\r
+                       elemPorcentaje.InnerText = lineaIp.PorcentajeCobertura.ToString().Trim();\r
+                       elemAutorizacion.AppendChild( elemPorcentaje );\r
+\r
+                       elemLinea.AppendChild( elemAutorizacion );\r
+\r
+                       #endregion Autorizacion Realizada\r
+               }\r
+\r
+               public override string ToString()\r
+               {\r
+                       return xmlDoc.OuterXml;\r
+               }\r
+\r
+               public void Serializar()\r
+               {\r
+                       string currentDir = Directory.GetCurrentDirectory();\r
+                       string dirPagos = Path.Combine( currentDir, ConfigurationSettings.AppSettings["DirectorioPagos"] );\r
+                       if ( ! Directory.Exists(dirPagos) )\r
+                       {\r
+                               Directory.CreateDirectory( dirPagos );\r
+                       }\r
+                       \r
+                       int secuencia = 0;\r
                        \r
+                       string baseFileName = "rc_" + DateTime.Now.ToString("yyyy-MM-dd") + "_"; \r
+                       string pathName = Path.Combine( dirPagos, baseFileName + secuencia.ToString("00") + ".xml" );\r
+                       \r
+                       while ( File.Exists(pathName) )\r
+                       {\r
+                               secuencia += 1;\r
+                               pathName = Path.Combine( dirPagos, baseFileName + secuencia.ToString("00") + ".xml");\r
+                       }\r
+\r
+                       XmlTextWriter writer = new XmlTextWriter( pathName, null );\r
+                       writer.Formatting = Formatting.Indented;\r
+                       this.xmlDoc.Save(writer);\r
                }\r
 \r
                #endregion Metodos Publicos\r
 \r
+               #region Métodos Privados\r
 \r
-               #region Metodos privados\r
+               private Afiliado getAfiliado( int codigo )\r
+               {\r
+                       this.db = com.db4o.Db4o.openFile("os.yap");\r
+                       ArrayList al = this.ObjectSetToArrayList( db.get( new Afiliado( codigo ) ) );\r
+\r
+                       Afiliado a = ( (al.Count == 0)? null : al[0] ) as Afiliado;\r
+                       this.db.close();\r
+                       this.db = null;\r
+\r
+                       return a;\r
+               }\r
+\r
+               private Prestacion getPrestacion( string codigo )\r
+               {\r
+                       this.db = com.db4o.Db4o.openFile("os.yap");\r
+                       ArrayList al = this.ObjectSetToArrayList( db.get( new Prestacion( codigo ) ) );\r
+\r
+                       Prestacion p = ( (al.Count == 0)? null : al[0] ) as Prestacion;\r
+                       this.db.close();\r
+                       this.db = null;\r
+\r
+                       return p;\r
+               }\r
 \r
                private Autorizacion getAutorizacion( int codigo )\r
                {\r
@@ -65,7 +196,7 @@ namespace Reportes
                        return a;\r
                }\r
 \r
-               #endregion Metodos privados\r
+               #endregion Métodos Privados\r
 \r
                #region DB\r
                private com.db4o.ObjectContainer db = null;