2 using System.Collections;
\r
4 using Dominio.Autorizaciones;
\r
5 using Dominio.Afiliados;
\r
12 /// Summary description for ConsumoAfiliadosReport.
\r
14 public class ConsumoAfiliadosReport
\r
16 #region Constructores
\r
18 public ConsumoAfiliadosReport()
\r
20 XmlDeclaration xmlDeclaration = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);
\r
21 xmlDoc.AppendChild(xmlDeclaration);
\r
23 XmlElement root = this.xmlDoc.CreateElement( "reporteConsumo" );
\r
24 root.SetAttribute( "fechaGeneracion", DateTime.Now.ToString( "yyyy-MM-dd" ) );
\r
26 root.AppendChild( xmlDoc.CreateElement( "lineas" ) );
\r
28 xmlDoc.AppendChild( root );
\r
31 #endregion Constructores
\r
33 private XmlDocument xmlDoc = new XmlDocument();
\r
34 private ArrayList _listaCodigosAfiliado = new ArrayList();
\r
36 #region Metodos Publicos
\r
38 public void AgregarInfo( Prestador p, LineaInfoPrestacionesReport lineaIp )
\r
40 XmlElement lineas = xmlDoc.DocumentElement["lineas"];
\r
41 XmlElement elemLinea = null;
\r
43 #region Datos propios de Afiliado
\r
44 if ( this._listaCodigosAfiliado.Contains(lineaIp.CodigoAfiliado) )
\r
45 { //Ya está el afiliado en el xml
\r
46 elemLinea = lineas.SelectSingleNode( @"//linea[@codigoAfiliado='" + lineaIp.CodigoAfiliado.ToString().Trim() + "']" ) as XmlElement;
\r
50 Afiliado a = this.getAfiliado( lineaIp.CodigoAfiliado );
\r
52 //El nodo afiliado todavía no está en el xml
\r
53 elemLinea = this.xmlDoc.CreateElement("linea");
\r
54 elemLinea.SetAttribute( "codigoAfiliado", lineaIp.CodigoAfiliado.ToString().Trim() );
\r
55 lineas.AppendChild( elemLinea );
\r
58 XmlElement elemNombreAfiliado = this.xmlDoc.CreateElement("nombreAfiliado");
\r
59 elemNombreAfiliado.InnerText = ( (a.Nombre == null)? string.Empty : a.Nombre.Trim() );
\r
60 elemLinea.AppendChild( elemNombreAfiliado );
\r
63 XmlElement elemApellidoAfiliado = this.xmlDoc.CreateElement("apellidoAfiliado");
\r
64 elemApellidoAfiliado.InnerText = ( (a.Apellido == null)? string.Empty : a.Apellido.Trim() );
\r
65 elemLinea.AppendChild( elemApellidoAfiliado );
\r
67 //codigoPlanAfiliado
\r
68 XmlElement elemCodigoPlanAfiliado = this.xmlDoc.CreateElement("codigoPlanAfiliado");
\r
69 elemCodigoPlanAfiliado.InnerText = ( (a.PlanActual == null)? string.Empty : a.PlanActual.Codigo.ToString().Trim() );
\r
70 elemLinea.AppendChild( elemCodigoPlanAfiliado );
\r
72 this._listaCodigosAfiliado.Add(lineaIp.CodigoAfiliado);
\r
74 #endregion Datos propios de Afiliado
\r
76 #region Autorizacion Realizada
\r
78 //autorizacionRealizada
\r
79 XmlElement elemAutorizacion = this.xmlDoc.CreateElement( "autorizacionRealizada" );
\r
80 elemAutorizacion.SetAttribute( "codigo", lineaIp.CodigoAutorizacion.ToString().Trim() );
\r
83 XmlElement elemPrestador = this.xmlDoc.CreateElement( "prestador" );
\r
84 XmlElement elemCuit = this.xmlDoc.CreateElement( "CUIT" );
\r
85 elemCuit.InnerText = p.Cuit.ToString().Trim();
\r
86 elemPrestador.AppendChild( elemCuit );
\r
87 XmlElement elemNombrePrestador = this.xmlDoc.CreateElement( "nombre" );
\r
88 elemNombrePrestador.InnerText = ((p.Nombre == null)? string.Empty : p.Nombre.ToString().Trim());
\r
89 elemPrestador.AppendChild( elemNombrePrestador );
\r
90 elemAutorizacion.AppendChild( elemPrestador );
\r
93 XmlElement elemCodPrestacion = this.xmlDoc.CreateElement( "codigoPrestacion" );
\r
94 elemCodPrestacion.InnerText = lineaIp.CodigoPrestacion.Trim();
\r
95 elemAutorizacion.AppendChild( elemCodPrestacion );
\r
98 Prestacion prestacion = this.getPrestacion( lineaIp.CodigoPrestacion );
\r
99 XmlElement elemNombrePrestacion = this.xmlDoc.CreateElement( "nombrePrestacion" );
\r
100 elemNombrePrestacion.InnerText = ( (prestacion.Nombre == null)? string.Empty : prestacion.Nombre.Trim() );
\r
101 elemAutorizacion.AppendChild( elemNombrePrestacion );
\r
104 XmlElement elemFechaRealizacion = this.xmlDoc.CreateElement( "fechaRealizacion" );
\r
105 elemFechaRealizacion.InnerText = lineaIp.FechaRealizacion.ToString( "yyyy-MM-dd" );
\r
106 elemAutorizacion.AppendChild( elemFechaRealizacion );
\r
108 //porcentajeCobertura
\r
109 XmlElement elemPorcentaje = this.xmlDoc.CreateElement( "porcentajeCobertura" );
\r
110 elemPorcentaje.InnerText = lineaIp.PorcentajeCobertura.ToString().Trim();
\r
111 elemAutorizacion.AppendChild( elemPorcentaje );
\r
113 elemLinea.AppendChild( elemAutorizacion );
\r
115 #endregion Autorizacion Realizada
\r
118 public override string ToString()
\r
120 return xmlDoc.OuterXml;
\r
123 public void Serializar()
\r
125 XmlTextWriter writer = new XmlTextWriter("c:\\rc_borrame.xml",null);
\r
126 writer.Formatting = Formatting.Indented;
\r
127 this.xmlDoc.Save(writer);
\r
130 #endregion Metodos Publicos
\r
132 #region Métodos Privados
\r
134 private Afiliado getAfiliado( int codigo )
\r
136 this.db = com.db4o.Db4o.openFile("os.yap");
\r
137 ArrayList al = this.ObjectSetToArrayList( db.get( new Afiliado( codigo ) ) );
\r
139 Afiliado a = ( (al.Count == 0)? null : al[0] ) as Afiliado;
\r
146 private Prestacion getPrestacion( string codigo )
\r
148 this.db = com.db4o.Db4o.openFile("os.yap");
\r
149 ArrayList al = this.ObjectSetToArrayList( db.get( new Prestacion( codigo ) ) );
\r
151 Prestacion p = ( (al.Count == 0)? null : al[0] ) as Prestacion;
\r
158 private Autorizacion getAutorizacion( int codigo )
\r
160 this.db = com.db4o.Db4o.openFile("os.yap");
\r
162 ArrayList al = new ArrayList();
\r
164 al = this.ObjectSetToArrayList( db.get( new AutorizacionManual(codigo) ) );
\r
165 Autorizacion a = ( (al.Count == 0)? null : al[0] ) as AutorizacionManual;
\r
169 al = this.ObjectSetToArrayList( db.get( new AutorizacionAutomatica(codigo) ) );
\r
170 a = ( (al.Count == 0)? null : al[0] ) as AutorizacionAutomatica;
\r
179 #endregion Métodos Privados
\r
182 private com.db4o.ObjectContainer db = null;
184 private ArrayList ObjectSetToArrayList (ObjectSet result)
186 ArrayList lst = new ArrayList ();
191 while ((s = result.next ()) != null)
\r