]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blob - demo/src/Reportes/PrestacionesRealizadasReport.cs
(no commit message)
[z.facultad/75.10/miklolife.git] / demo / src / Reportes / PrestacionesRealizadasReport.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 using System.Configuration;\r
8 using System.IO;\r
9 \r
10 \r
11 namespace Reportes\r
12 {\r
13         /// <summary>\r
14         /// \r
15         /// </summary>\r
16         public class PrestacionesRealizadasReport\r
17         {\r
18                 #region Constructores\r
19                 \r
20                 public PrestacionesRealizadasReport()\r
21                 {\r
22                         XmlDeclaration xmlDeclaration = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);\r
23                         xmlDoc.AppendChild(xmlDeclaration);\r
24 \r
25                         XmlElement root = this.xmlDoc.CreateElement( "informeAprRechazos" );\r
26                         root.SetAttribute( "fechaGeneracion", DateTime.Now.ToString( "yyyy-MM-dd" ) );\r
27                         \r
28                         root.AppendChild( xmlDoc.CreateElement( "lineas" ) );\r
29 \r
30                         xmlDoc.AppendChild( root );\r
31                 }\r
32 \r
33                 #endregion Constructores\r
34 \r
35                 private XmlDocument xmlDoc = new XmlDocument(); \r
36 \r
37                 #region Metodos publicos\r
38 \r
39                 public void AgregarInfo( Prestador p, DateTime fechaRecepcionInfo, LineaInfoPrestacionesReport lineaIp )\r
40                 {\r
41                         //LINEA\r
42                         XmlElement elemLinea = this.xmlDoc.CreateElement( "linea" );\r
43                         elemLinea.SetAttribute( "codigoAutorizacion", lineaIp.CodigoAutorizacion.ToString() );\r
44                         elemLinea.SetAttribute( "aprobada", lineaIp.Aprobada.ToString().ToLower() );\r
45 \r
46                         //tipoAutorizacion\r
47                         XmlElement elemTipoAut = this.xmlDoc.CreateElement( "tipoAutorizacion" );\r
48                         elemTipoAut.InnerText = lineaIp.TipoAutorizacion;\r
49                         elemLinea.AppendChild( elemTipoAut );\r
50 \r
51                         //prestador\r
52                         XmlElement elemPrestador = this.xmlDoc.CreateElement( "prestador" );\r
53                         XmlElement elemCuit = this.xmlDoc.CreateElement( "CUIT" );\r
54                         elemCuit.InnerText = p.Cuit.ToString().Trim();\r
55                         elemPrestador.AppendChild( elemCuit );\r
56                         XmlElement elemNombrePrestador = this.xmlDoc.CreateElement( "nombre" );\r
57                         elemNombrePrestador.InnerText = p.Nombre.ToString().Trim();\r
58                         elemPrestador.AppendChild( elemNombrePrestador );\r
59                         \r
60                         elemLinea.AppendChild( elemPrestador );\r
61 \r
62                         //codigoPrestacion\r
63                         XmlElement elemCodPrestacion = this.xmlDoc.CreateElement( "codigoPrestacion" );\r
64                         elemCodPrestacion.InnerText = lineaIp.CodigoPrestacion.Trim();\r
65                         elemLinea.AppendChild( elemCodPrestacion );\r
66 \r
67                         //codigoAfiliado\r
68                         XmlElement elemCodAfiliado = this.xmlDoc.CreateElement( "codigoAfiliado" );\r
69                         elemCodAfiliado.InnerText = lineaIp.CodigoAfiliado.ToString().Trim();\r
70                         elemLinea.AppendChild( elemCodAfiliado );\r
71 \r
72                         //porcentajeCoberturaReclamado\r
73                         XmlElement elemPorcentajeReclamado = this.xmlDoc.CreateElement( "porcentajeCoberturaReclamado" );\r
74                         elemPorcentajeReclamado.InnerText = lineaIp.PorcentajeCobertura.ToString().Trim();\r
75                         elemLinea.AppendChild( elemPorcentajeReclamado );\r
76 \r
77                         //Campos a completar si es que la autorizacion existe en el sistema\r
78                         if ( lineaIp.ExisteAutorizacion )\r
79                         {\r
80                                 Autorizacion a = this.getAutorizacion( lineaIp.CodigoAutorizacion );\r
81 \r
82                                 //porcentajeCoberturaReal\r
83                                 XmlElement elemPorcentajeReal = this.xmlDoc.CreateElement( "porcentajeCoberturaReal" );\r
84                                 elemPorcentajeReal.InnerText = a.PorcentajeCobertura.ToString().Trim();\r
85                                 elemLinea.AppendChild( elemPorcentajeReal );\r
86 \r
87                                 //fechaAprobacion\r
88                                 XmlElement elemFechaAprobacion = this.xmlDoc.CreateElement( "fechaAprobacion" );\r
89                                 elemFechaAprobacion.InnerText = a.FechaSolicitud.ToString( "yyyy-MM-dd" );\r
90                                 elemLinea.AppendChild( elemFechaAprobacion );\r
91 \r
92                                 //fechaVencimiento\r
93                                 XmlElement elemFechaVencimiento = this.xmlDoc.CreateElement( "fechaVencimiento" );\r
94                                 elemFechaVencimiento.InnerText = a.FechaVencimiento.ToString( "yyyy-MM-dd" );\r
95                                 elemLinea.AppendChild( elemFechaVencimiento );\r
96                         }\r
97 \r
98                         //fechaRealizacion\r
99                         XmlElement elemFechaRealizacion = this.xmlDoc.CreateElement( "fechaRealizacion" );\r
100                         elemFechaRealizacion.InnerText = lineaIp.FechaRealizacion.ToString( "yyyy-MM-dd" );\r
101                         elemLinea.AppendChild( elemFechaRealizacion );\r
102 \r
103                         //fechaRecepcionInfo\r
104                         XmlElement elemFechaRecepcionInfo = this.xmlDoc.CreateElement( "fechaRecepcionInfo" );\r
105                         elemFechaRecepcionInfo.InnerText = fechaRecepcionInfo.ToString( "yyyy-MM-dd" );\r
106                         elemLinea.AppendChild( elemFechaRecepcionInfo );\r
107 \r
108                         if ( ! lineaIp.Aprobada )\r
109                         {\r
110                                 //motivoRechazo\r
111                                 XmlElement elemMotivoRechazo = this.xmlDoc.CreateElement( "motivoRechazo" );\r
112                                 elemMotivoRechazo.InnerText = lineaIp.MotivoRechazo.Trim();\r
113                                 elemLinea.AppendChild( elemMotivoRechazo );\r
114                         }\r
115 \r
116                         //AgregoLINEA\r
117                         XmlElement lineas = xmlDoc.DocumentElement["lineas"];\r
118                         lineas.AppendChild( elemLinea );\r
119                 }\r
120 \r
121                 public override string ToString()\r
122                 {\r
123                         return xmlDoc.OuterXml;\r
124                 }\r
125 \r
126                 public void Serializar()\r
127                 {\r
128                         string currentDir = Directory.GetCurrentDirectory();\r
129                         string dirPagos = Path.Combine( currentDir, ConfigurationSettings.AppSettings["DirectorioPagos"] );\r
130                         if ( ! Directory.Exists(dirPagos) )\r
131                         {\r
132                                 Directory.CreateDirectory( dirPagos );\r
133                         }\r
134                         \r
135                         int secuencia = 0;\r
136                         \r
137                         string baseFileName = "rp_" + DateTime.Now.ToString("yyyy-MM-dd") + "_"; \r
138                         string pathName = Path.Combine( dirPagos, baseFileName + secuencia.ToString("00") + ".xml" );\r
139                         \r
140                         while ( File.Exists(pathName) )\r
141                         {\r
142                                 secuencia += 1;\r
143                                 pathName = Path.Combine( dirPagos, baseFileName + secuencia.ToString("00") + ".xml");\r
144                         }\r
145 \r
146                         XmlTextWriter writer = new XmlTextWriter( pathName, null );\r
147                         writer.Formatting = Formatting.Indented;\r
148                         this.xmlDoc.Save(writer);\r
149                 }\r
150 \r
151                 #endregion Metodos publicos\r
152 \r
153                 #region Metodos privados\r
154 \r
155                 private Autorizacion getAutorizacion( int codigo )\r
156                 {\r
157                         this.db = com.db4o.Db4o.openFile("os.yap");\r
158                         \r
159                         ArrayList al = new ArrayList();\r
160 \r
161                         al = this.ObjectSetToArrayList( db.get( new AutorizacionManual(codigo) ) );\r
162                         Autorizacion a = ( (al.Count == 0)? null : al[0] ) as AutorizacionManual;\r
163 \r
164                         if ( a == null )\r
165                         {\r
166                                 al = this.ObjectSetToArrayList( db.get( new AutorizacionAutomatica(codigo) ) );\r
167                                 a = ( (al.Count == 0)? null : al[0] ) as AutorizacionAutomatica;\r
168                         }\r
169 \r
170                         this.db.close();\r
171                         this.db = null;\r
172 \r
173                         return a;\r
174                 }\r
175 \r
176                 #endregion Metodos privados\r
177 \r
178                 #region DB\r
179                 private com.db4o.ObjectContainer db = null;
180
181                 private ArrayList ObjectSetToArrayList (ObjectSet result)
182                 {
183                         ArrayList lst = new ArrayList ();
184                         Object s;
185                         if (result == null)
186                                 return lst;
187         
188                         while ((s = result.next ()) != null)    \r
189                         {
190                                 lst.Add (s);
191                         }
192                         return lst;
193                 }
194
195                 #endregion DB\r
196         }\r
197 }\r