+\r
+ private XmlDocument xmlDoc = new XmlDocument(); \r
+\r
+ #region Metodos publicos\r
+\r
+ public void AgregarInfo( Prestador p, DateTime fechaRecepcionInfo, LineaInfoPrestacionesReport lineaIp )\r
+ {\r
+ //LINEA\r
+ XmlElement elemLinea = this.xmlDoc.CreateElement( "linea" );\r
+ elemLinea.SetAttribute( "codigoAutorizacion", lineaIp.CodigoAutorizacion.ToString() );\r
+ elemLinea.SetAttribute( "aprobada", lineaIp.Aprobada.ToString().ToLower() );\r
+\r
+ //tipoAutorizacion\r
+ XmlElement elemTipoAut = this.xmlDoc.CreateElement( "tipoAutorizacion" );\r
+ elemTipoAut.InnerText = lineaIp.TipoAutorizacion;\r
+ elemLinea.AppendChild( elemTipoAut );\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.ToString().Trim();\r
+ elemPrestador.AppendChild( elemNombrePrestador );\r
+ \r
+ elemLinea.AppendChild( elemPrestador );\r
+\r
+ //codigoPrestacion\r
+ XmlElement elemCodPrestacion = this.xmlDoc.CreateElement( "codigoPrestacion" );\r
+ elemCodPrestacion.InnerText = lineaIp.CodigoPrestacion.Trim();\r
+ elemLinea.AppendChild( elemCodPrestacion );\r
+\r
+ //codigoAfiliado\r
+ XmlElement elemCodAfiliado = this.xmlDoc.CreateElement( "codigoAfiliado" );\r
+ elemCodAfiliado.InnerText = lineaIp.CodigoAfiliado.ToString().Trim();\r
+ elemLinea.AppendChild( elemCodAfiliado );\r
+\r
+ //porcentajeCoberturaReclamado\r
+ XmlElement elemPorcentajeReclamado = this.xmlDoc.CreateElement( "porcentajeCoberturaReclamado" );\r
+ elemPorcentajeReclamado.InnerText = lineaIp.PorcentajeCobertura.ToString().Trim();\r
+ elemLinea.AppendChild( elemPorcentajeReclamado );\r
+\r
+ //Campos a completar si es que la autorizacion existe en el sistema\r
+ if ( lineaIp.ExisteAutorizacion )\r
+ {\r
+ Autorizacion a = this.getAutorizacion( lineaIp.CodigoAutorizacion );\r
+\r
+ //porcentajeCoberturaReal\r
+ XmlElement elemPorcentajeReal = this.xmlDoc.CreateElement( "porcentajeCoberturaReal" );\r
+ elemPorcentajeReal.InnerText = a.PorcentajeCobertura.ToString().Trim();\r
+ elemLinea.AppendChild( elemPorcentajeReal );\r
+\r
+ //fechaAprobacion\r
+ XmlElement elemFechaAprobacion = this.xmlDoc.CreateElement( "fechaAprobacion" );\r
+ elemFechaAprobacion.InnerText = a.FechaSolicitud.ToString( "yyyy-MM-dd" );\r
+ elemLinea.AppendChild( elemFechaAprobacion );\r
+\r
+ //fechaVencimiento\r
+ XmlElement elemFechaVencimiento = this.xmlDoc.CreateElement( "fechaVencimiento" );\r
+ elemFechaVencimiento.InnerText = a.FechaVencimiento.ToString( "yyyy-MM-dd" );\r
+ elemLinea.AppendChild( elemFechaVencimiento );\r
+ }\r
+\r
+ //fechaRealizacion\r
+ XmlElement elemFechaRealizacion = this.xmlDoc.CreateElement( "fechaRealizacion" );\r
+ elemFechaRealizacion.InnerText = lineaIp.FechaRealizacion.ToString( "yyyy-MM-dd" );\r
+ elemLinea.AppendChild( elemFechaRealizacion );\r
+\r
+ //fechaRecepcionInfo\r
+ XmlElement elemFechaRecepcionInfo = this.xmlDoc.CreateElement( "fechaRecepcionInfo" );\r
+ elemFechaRecepcionInfo.InnerText = fechaRecepcionInfo.ToString( "yyyy-MM-dd" );\r
+ elemLinea.AppendChild( elemFechaRecepcionInfo );\r
+\r
+ if ( ! lineaIp.Aprobada )\r
+ {\r
+ //motivoRechazo\r
+ XmlElement elemMotivoRechazo = this.xmlDoc.CreateElement( "motivoRechazo" );\r
+ elemMotivoRechazo.InnerText = lineaIp.MotivoRechazo.Trim();\r
+ elemLinea.AppendChild( elemMotivoRechazo );\r
+ }\r
+\r
+ //AgregoLINEA\r
+ XmlElement lineas = xmlDoc.DocumentElement["lineas"];\r
+ lineas.AppendChild( elemLinea );\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 = "rp_" + 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 Metodos privados\r
+\r
+ private Autorizacion getAutorizacion( int codigo )\r
+ {\r
+ this.db = com.db4o.Db4o.openFile("os.yap");\r
+ \r
+ ArrayList al = new ArrayList();\r
+\r
+ al = this.ObjectSetToArrayList( db.get( new AutorizacionManual(codigo) ) );\r
+ Autorizacion a = ( (al.Count == 0)? null : al[0] ) as AutorizacionManual;\r
+\r
+ if ( a == null )\r
+ {\r
+ al = this.ObjectSetToArrayList( db.get( new AutorizacionAutomatica(codigo) ) );\r
+ a = ( (al.Count == 0)? null : al[0] ) as AutorizacionAutomatica;\r
+ }\r
+\r
+ this.db.close();\r
+ this.db = null;\r
+\r
+ return a;\r
+ }\r
+\r
+ #endregion Metodos privados\r
+\r
+ #region DB\r
+ private com.db4o.ObjectContainer db = null;
+
+ private ArrayList ObjectSetToArrayList (ObjectSet result)
+ {
+ ArrayList lst = new ArrayList ();
+ Object s;
+ if (result == null)
+ return lst;
+
+ while ((s = result.next ()) != null) \r
+ {
+ lst.Add (s);
+ }
+ return lst;
+ }
+
+ #endregion DB\r