2 using System.Collections;
\r
3 using System.Configuration;
\r
5 using Dominio.Autorizaciones;
\r
6 using Dominio.Afiliados;
\r
14 /// Summary description for ConsumoAfiliadosReport.
\r
16 public class ConsumoAfiliadosReport
\r
18 #region Constructores
\r
20 public ConsumoAfiliadosReport()
\r
22 XmlDeclaration xmlDeclaration = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);
\r
23 xmlDoc.AppendChild(xmlDeclaration);
\r
25 XmlElement root = this.xmlDoc.CreateElement( "reporteConsumo" );
\r
26 root.SetAttribute( "fechaGeneracion", DateTime.Now.ToString( "yyyy-MM-dd" ) );
\r
28 root.AppendChild( xmlDoc.CreateElement( "lineas" ) );
\r
30 xmlDoc.AppendChild( root );
\r
33 #endregion Constructores
\r
35 private XmlDocument xmlDoc = new XmlDocument();
\r
36 private ArrayList _listaCodigosAfiliado = new ArrayList();
\r
38 #region Metodos Publicos
\r
40 public void AgregarInfo( Prestador p, LineaInfoPrestacionesReport lineaIp )
\r
42 XmlElement lineas = xmlDoc.DocumentElement["lineas"];
\r
43 XmlElement elemLinea = null;
\r
45 #region Datos propios de Afiliado
\r
46 if ( this._listaCodigosAfiliado.Contains(lineaIp.CodigoAfiliado) )
\r
47 { //Ya está el afiliado en el xml
\r
48 elemLinea = lineas.SelectSingleNode( @"//linea[@codigoAfiliado='" + lineaIp.CodigoAfiliado.ToString().Trim() + "']" ) as XmlElement;
\r
52 Afiliado a = this.getAfiliado( lineaIp.CodigoAfiliado );
\r
54 //El nodo afiliado todavía no está en el xml
\r
55 elemLinea = this.xmlDoc.CreateElement("linea");
\r
56 elemLinea.SetAttribute( "codigoAfiliado", lineaIp.CodigoAfiliado.ToString().Trim() );
\r
57 lineas.AppendChild( elemLinea );
\r
60 XmlElement elemNombreAfiliado = this.xmlDoc.CreateElement("nombreAfiliado");
\r
61 elemNombreAfiliado.InnerText = ( (a.Nombre == null)? string.Empty : a.Nombre.Trim() );
\r
62 elemLinea.AppendChild( elemNombreAfiliado );
\r
65 XmlElement elemApellidoAfiliado = this.xmlDoc.CreateElement("apellidoAfiliado");
\r
66 elemApellidoAfiliado.InnerText = ( (a.Apellido == null)? string.Empty : a.Apellido.Trim() );
\r
67 elemLinea.AppendChild( elemApellidoAfiliado );
\r
69 //codigoPlanAfiliado
\r
70 XmlElement elemCodigoPlanAfiliado = this.xmlDoc.CreateElement("codigoPlanAfiliado");
\r
71 elemCodigoPlanAfiliado.InnerText = ( (a.PlanActual == null)? string.Empty : a.PlanActual.Codigo.ToString().Trim() );
\r
72 elemLinea.AppendChild( elemCodigoPlanAfiliado );
\r
74 this._listaCodigosAfiliado.Add(lineaIp.CodigoAfiliado);
\r
76 #endregion Datos propios de Afiliado
\r
78 #region Autorizacion Realizada
\r
80 //autorizacionRealizada
\r
81 XmlElement elemAutorizacion = this.xmlDoc.CreateElement( "autorizacionRealizada" );
\r
82 elemAutorizacion.SetAttribute( "codigo", lineaIp.CodigoAutorizacion.ToString().Trim() );
\r
85 XmlElement elemPrestador = this.xmlDoc.CreateElement( "prestador" );
\r
86 XmlElement elemCuit = this.xmlDoc.CreateElement( "CUIT" );
\r
87 elemCuit.InnerText = p.Cuit.ToString().Trim();
\r
88 elemPrestador.AppendChild( elemCuit );
\r
89 XmlElement elemNombrePrestador = this.xmlDoc.CreateElement( "nombre" );
\r
90 elemNombrePrestador.InnerText = ((p.Nombre == null)? string.Empty : p.Nombre.ToString().Trim());
\r
91 elemPrestador.AppendChild( elemNombrePrestador );
\r
92 elemAutorizacion.AppendChild( elemPrestador );
\r
95 XmlElement elemCodPrestacion = this.xmlDoc.CreateElement( "codigoPrestacion" );
\r
96 elemCodPrestacion.InnerText = lineaIp.CodigoPrestacion.Trim();
\r
97 elemAutorizacion.AppendChild( elemCodPrestacion );
\r
100 Prestacion prestacion = this.getPrestacion( lineaIp.CodigoPrestacion );
\r
101 XmlElement elemNombrePrestacion = this.xmlDoc.CreateElement( "nombrePrestacion" );
\r
102 elemNombrePrestacion.InnerText = ( (prestacion.Nombre == null)? string.Empty : prestacion.Nombre.Trim() );
\r
103 elemAutorizacion.AppendChild( elemNombrePrestacion );
\r
106 XmlElement elemFechaRealizacion = this.xmlDoc.CreateElement( "fechaRealizacion" );
\r
107 elemFechaRealizacion.InnerText = lineaIp.FechaRealizacion.ToString( "yyyy-MM-dd" );
\r
108 elemAutorizacion.AppendChild( elemFechaRealizacion );
\r
110 //porcentajeCobertura
\r
111 XmlElement elemPorcentaje = this.xmlDoc.CreateElement( "porcentajeCobertura" );
\r
112 elemPorcentaje.InnerText = lineaIp.PorcentajeCobertura.ToString().Trim();
\r
113 elemAutorizacion.AppendChild( elemPorcentaje );
\r
115 elemLinea.AppendChild( elemAutorizacion );
\r
117 #endregion Autorizacion Realizada
\r
120 public override string ToString()
\r
122 return xmlDoc.OuterXml;
\r
125 public void Serializar()
\r
127 string currentDir = Directory.GetCurrentDirectory();
\r
128 string dirPagos = Path.Combine( currentDir, ConfigurationSettings.AppSettings["DirectorioPagos"] );
\r
129 if ( ! Directory.Exists(dirPagos) )
\r
131 Directory.CreateDirectory( dirPagos );
\r
136 string baseFileName = "rc_" + DateTime.Now.ToString("yyyy-MM-dd") + "_";
\r
137 string pathName = Path.Combine( dirPagos, baseFileName + secuencia.ToString("00") + ".xml" );
\r
139 while ( File.Exists(pathName) )
\r
142 pathName = Path.Combine( dirPagos, baseFileName + secuencia.ToString("00") + ".xml");
\r
145 XmlTextWriter writer = new XmlTextWriter( pathName, null );
\r
146 writer.Formatting = Formatting.Indented;
\r
147 this.xmlDoc.Save(writer);
\r
150 #endregion Metodos Publicos
\r
152 #region Métodos Privados
\r
154 private Afiliado getAfiliado( int codigo )
\r
156 this.db = com.db4o.Db4o.openFile("os.yap");
\r
157 ArrayList al = this.ObjectSetToArrayList( db.get( new Afiliado( codigo ) ) );
\r
159 Afiliado a = ( (al.Count == 0)? null : al[0] ) as Afiliado;
\r
166 private Prestacion getPrestacion( string codigo )
\r
168 this.db = com.db4o.Db4o.openFile("os.yap");
\r
169 ArrayList al = this.ObjectSetToArrayList( db.get( new Prestacion( codigo ) ) );
\r
171 Prestacion p = ( (al.Count == 0)? null : al[0] ) as Prestacion;
\r
178 private Autorizacion getAutorizacion( int codigo )
\r
180 this.db = com.db4o.Db4o.openFile("os.yap");
\r
182 ArrayList al = new ArrayList();
\r
184 al = this.ObjectSetToArrayList( db.get( new AutorizacionManual(codigo) ) );
\r
185 Autorizacion a = ( (al.Count == 0)? null : al[0] ) as AutorizacionManual;
\r
189 al = this.ObjectSetToArrayList( db.get( new AutorizacionAutomatica(codigo) ) );
\r
190 a = ( (al.Count == 0)? null : al[0] ) as AutorizacionAutomatica;
\r
199 #endregion Métodos Privados
\r
202 private com.db4o.ObjectContainer db = null;
204 private ArrayList ObjectSetToArrayList (ObjectSet result)
206 ArrayList lst = new ArrayList ();
211 while ((s = result.next ()) != null)
\r