]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blob - demo/src/Reportes/ConsumoAfiliadosReport.cs
Hermosa ventana de consultar autorizaciones. Descubri que no se estan aprobando :S
[z.facultad/75.10/miklolife.git] / demo / src / Reportes / ConsumoAfiliadosReport.cs
1 using System;\r
2 using System.Collections;\r
3 using System.Xml;\r
4 using Dominio.Autorizaciones;\r
5 using Dominio.Afiliados;\r
6 using com.db4o;\r
7 \r
8 \r
9 namespace Reportes\r
10 {\r
11         /// <summary>\r
12         /// Summary description for ConsumoAfiliadosReport.\r
13         /// </summary>\r
14         public class ConsumoAfiliadosReport\r
15         {\r
16                 #region Constructores\r
17                 \r
18                 public ConsumoAfiliadosReport()\r
19                 {\r
20                         XmlDeclaration xmlDeclaration = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);\r
21                         xmlDoc.AppendChild(xmlDeclaration);\r
22 \r
23                         XmlElement root = this.xmlDoc.CreateElement( "reporteConsumo" );\r
24                         root.SetAttribute( "fechaGeneracion", DateTime.Now.ToString( "yyyy-MM-dd" ) );\r
25                         \r
26                         root.AppendChild( xmlDoc.CreateElement( "lineas" ) );\r
27 \r
28                         xmlDoc.AppendChild( root );\r
29                 }\r
30 \r
31                 #endregion Constructores\r
32 \r
33                 private XmlDocument xmlDoc = new XmlDocument(); \r
34                 private ArrayList _listaCodigosAfiliado = new ArrayList();\r
35 \r
36                 #region Metodos Publicos\r
37 \r
38                 public void AgregarInfo( Prestador p, LineaInfoPrestacionesReport lineaIp )\r
39                 {\r
40                         XmlElement lineas = xmlDoc.DocumentElement["lineas"];\r
41                         XmlElement elemLinea = null;\r
42 \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
47                         }\r
48                         else\r
49                         {\r
50                                 Afiliado a = this.getAfiliado( lineaIp.CodigoAfiliado );\r
51 \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
56 \r
57                                 //nombreAfiliado\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
61 \r
62                                 //apellidoAfiliado\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
66                                 \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
71                                 \r
72                                 this._listaCodigosAfiliado.Add(lineaIp.CodigoAfiliado);\r
73                         }\r
74                         #endregion Datos propios de Afiliado\r
75 \r
76                         #region Autorizacion Realizada\r
77 \r
78                         //autorizacionRealizada\r
79                         XmlElement elemAutorizacion = this.xmlDoc.CreateElement( "autorizacionRealizada" );\r
80                         elemAutorizacion.SetAttribute( "codigo", lineaIp.CodigoAutorizacion.ToString().Trim() );\r
81 \r
82                         //prestador\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
91 \r
92                         //codigoPrestacion\r
93                         XmlElement elemCodPrestacion = this.xmlDoc.CreateElement( "codigoPrestacion" );\r
94                         elemCodPrestacion.InnerText = lineaIp.CodigoPrestacion.Trim();\r
95                         elemAutorizacion.AppendChild( elemCodPrestacion );\r
96 \r
97                         //nombrePrestacion\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
102 \r
103                         //fechaRealizacion\r
104                         XmlElement elemFechaRealizacion = this.xmlDoc.CreateElement( "fechaRealizacion" );\r
105                         elemFechaRealizacion.InnerText = lineaIp.FechaRealizacion.ToString( "yyyy-MM-dd" );\r
106                         elemAutorizacion.AppendChild( elemFechaRealizacion );\r
107         \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
112 \r
113                         elemLinea.AppendChild( elemAutorizacion );\r
114 \r
115                         #endregion Autorizacion Realizada\r
116                 }\r
117 \r
118                 public override string ToString()\r
119                 {\r
120                         return xmlDoc.OuterXml;\r
121                 }\r
122 \r
123                 public void Serializar()\r
124                 {\r
125                         XmlTextWriter writer = new XmlTextWriter("c:\\rc_borrame.xml",null);\r
126                         writer.Formatting = Formatting.Indented;\r
127                         this.xmlDoc.Save(writer);\r
128                 }\r
129 \r
130                 #endregion Metodos Publicos\r
131 \r
132                 #region Métodos Privados\r
133 \r
134                 private Afiliado getAfiliado( int codigo )\r
135                 {\r
136                         this.db = com.db4o.Db4o.openFile("os.yap");\r
137                         ArrayList al = this.ObjectSetToArrayList( db.get( new Afiliado( codigo ) ) );\r
138 \r
139                         Afiliado a = ( (al.Count == 0)? null : al[0] ) as Afiliado;\r
140                         this.db.close();\r
141                         this.db = null;\r
142 \r
143                         return a;\r
144                 }\r
145 \r
146                 private Prestacion getPrestacion( string codigo )\r
147                 {\r
148                         this.db = com.db4o.Db4o.openFile("os.yap");\r
149                         ArrayList al = this.ObjectSetToArrayList( db.get( new Prestacion( codigo ) ) );\r
150 \r
151                         Prestacion p = ( (al.Count == 0)? null : al[0] ) as Prestacion;\r
152                         this.db.close();\r
153                         this.db = null;\r
154 \r
155                         return p;\r
156                 }\r
157 \r
158                 private Autorizacion getAutorizacion( int codigo )\r
159                 {\r
160                         this.db = com.db4o.Db4o.openFile("os.yap");\r
161                         \r
162                         ArrayList al = new ArrayList();\r
163 \r
164                         al = this.ObjectSetToArrayList( db.get( new AutorizacionManual(codigo) ) );\r
165                         Autorizacion a = ( (al.Count == 0)? null : al[0] ) as AutorizacionManual;\r
166 \r
167                         if ( a == null )\r
168                         {\r
169                                 al = this.ObjectSetToArrayList( db.get( new AutorizacionAutomatica(codigo) ) );\r
170                                 a = ( (al.Count == 0)? null : al[0] ) as AutorizacionAutomatica;\r
171                         }\r
172 \r
173                         this.db.close();\r
174                         this.db = null;\r
175 \r
176                         return a;\r
177                 }\r
178 \r
179                 #endregion Métodos Privados\r
180 \r
181                 #region DB\r
182                 private com.db4o.ObjectContainer db = null;
183
184                 private ArrayList ObjectSetToArrayList (ObjectSet result)
185                 {
186                         ArrayList lst = new ArrayList ();
187                         Object s;
188                         if (result == null)
189                                 return lst;
190         
191                         while ((s = result.next ()) != null)    \r
192                         {
193                                 lst.Add (s);
194                         }
195                         return lst;
196                 }
197
198                 #endregion DB\r
199 \r
200                 \r
201         }\r
202 }\r