]> git.llucax.com Git - z.facultad/75.10/miklolife.git/commitdiff
Bocha de cosas difíciles y largas de explicar :P
authorGuillermo Rugilo <guillerugilo@yahoo.com.ar>
Thu, 7 Jul 2005 01:22:21 +0000 (01:22 +0000)
committerGuillermo Rugilo <guillerugilo@yahoo.com.ar>
Thu, 7 Jul 2005 01:22:21 +0000 (01:22 +0000)
demo/src/Controlador/RecibirPrestacionesController.cs
demo/src/Reportes/ConsumoAfiliadosReport.cs
demo/src/Reportes/InfoPrestacionesAdmin.cs
demo/src/Reportes/InfoPrestacionesReport.cs
demo/src/Reportes/LineaInfoPrestacionesReport.cs
demo/src/Reportes/PrestacionesRealizadasReport.cs

index e068778bf3454a86feb99faba539ab353ff54bf0..838c82ed15bb895aef2a3a4297a6320b86c0b0a5 100644 (file)
@@ -7,6 +7,8 @@ using Dominio;
 using Dominio.Autorizaciones;\r
 using Reportes;\r
 \r
+using com.db4o;\r
+\r
 #endregion Usings\r
 \r
 namespace Controlador\r
@@ -27,24 +29,20 @@ namespace Controlador
 \r
                #region Campos Privados \r
                \r
-               private ConsumoAfiliadosReport _reporteConsumo = null;\r
-               private PrestacionesRealizadasReport _reporteAprobaciones = null;\r
+               private ConsumoAfiliadosReport _reporteConsumo = new ConsumoAfiliadosReport();\r
+               private PrestacionesRealizadasReport _reporteAprobaciones = new PrestacionesRealizadasReport();\r
                \r
                #endregion Campos Privados\r
 \r
-               #region Métodos Públicos\r
-               \r
-               /// <summary>\r
-               /// Dispara el proceso de recepción y procesamiento de la info recibida de los Presadores\r
-               /// </summary>\r
-               public void procesarInfoRecibida()\r
+               #region Creacion de Datos en la BD\r
+               public void InsertarDatosNecesarios()\r
                {\r
-                       try\r
+                       //PRESTADOR\r
+                       Prestador pre = new Prestador();\r
+                       pre.Cuit = "30-12345678-1";\r
+                       ObjectSet os = this.Db.get( pre );\r
+                       if ( (os == null) || (os.size() == 0) )\r
                        {\r
-                               #region Creacion de Prestador para test\r
-                               //Para test:\r
-                               /*Prestador pre = new Prestador();\r
-                               pre.Cuit = "30-12345678-1";\r
                                Dominio.SDireccion dir;\r
                                dir.Calle = "Gaona"; dir.CodigoPostal = "AB1504"; dir.Departamento = "";\r
                                dir.Numero = 1234; dir.Piso = 0;  dir.Provincia = Dominio.EProvincia.CAPITAL_FEDERAL;\r
@@ -55,10 +53,38 @@ namespace Controlador
                                pre.Nombre = "Clinica San Camilo";\r
                                pre.Password = "camilo";\r
                                pre.Zona = new SZona( "Caballito", "Zona de Caballito" );\r
-                               this.Db.set( pre );*/\r
-                               //Para test\r
-                               #endregion Creacion de Prestador para test  \r
+                               this.Db.set( pre );\r
+                       }\r
 \r
+                       //AUTORIZACIONES\r
+                       AutorizacionAutomatica a = new AutorizacionAutomatica();\r
+                       a.Codigo = 123;\r
+                       os = this.Db.get( a );\r
+                       if ( (os == null) || (os.size() == 0) )\r
+                       {\r
+                               a.Afiliado = new Dominio.Afiliados.Afiliado( 987 );\r
+                               a.Prestacion = new Prestacion( "B01AC06" );\r
+                               a.Prestador = pre;\r
+                               a.FechaSolicitud = new DateTime( 2005, 5, 20 ); // 20 de mayo\r
+                               a.FechaRealizacion = DateTime.MinValue;\r
+                               a.FechaVencimiento = a.FechaSolicitud.AddMonths( 2 ); // 20 de julio, aprox\r
+                               a.Aprobada = true;\r
+                               a.PorcentajeCobertura = 12.5F;\r
+                               this.Db.set( a );\r
+                       }\r
+               }\r
+\r
+               #endregion Creacion de Datos en la BD\r
+\r
+               #region Métodos Públicos\r
+               \r
+               /// <summary>\r
+               /// Dispara el proceso de recepción y procesamiento de la info recibida de los Presadores\r
+               /// </summary>\r
+               public void procesarInfoRecibida()\r
+               {\r
+                       try\r
+                       {\r
                                //1. Obtener todos los prestadores\r
                                ArrayList prestadores = this.ObjectSetToArrayList( this.Db.get(new Prestador()) );\r
 \r
@@ -83,7 +109,7 @@ namespace Controlador
                                                        if ( (ip.ValidarFormato()) && ( ip.CuitPrestador == p.Cuit ) )\r
                                                        {       //OK\r
                                                                ip.ValidarLineas( p ); //Las marca como aprobadas/rechazadas\r
-                                                               this.ProcesarLineas( ip );\r
+                                                               this.ProcesarLineas( p, ip );\r
                                                                ipAdmin.MoverArchivoAceptado( ip );\r
                                                                this.NotificarPrestador( NotificacionPrestador.Tipo.ProcesoExitoso, ip );\r
                                                        }\r
@@ -121,9 +147,23 @@ namespace Controlador
                /// A todas las lineas las agrega al Informe de Aprobaciones/rechazos de Prestaciones Realizadas.\r
                /// </summary>\r
                /// <param name="ip">Reporte del cual se porcesarán las lineas</param>\r
-               private void ProcesarLineas( InfoPrestacionesReport ip )\r
+               private void ProcesarLineas( Prestador p, InfoPrestacionesReport ip )\r
                {\r
-                       //this._reporteAprobaciones = new                       \r
+                       foreach ( LineaInfoPrestacionesReport linea in ip.Lineas )\r
+                       {\r
+                               this._reporteAprobaciones.AgregarInfo( p, ip.FechaEnvio, linea );\r
+\r
+                               if ( linea.Aprobada )\r
+                               {\r
+                                       //actualizo en el sistema\r
+                                       Autorizacion a = this.getAutorizacion( linea.CodigoAutorizacion );\r
+                                       a.FechaRealizacion = linea.FechaRealizacion;\r
+                                       this.Db.set( a );\r
+                                       \r
+                                       //agego info al reporte de consumo\r
+                                       this._reporteConsumo.AgregarInfo( p, linea );\r
+                               }\r
+                       }\r
                }\r
 \r
                private void NotificarPrestador( NotificacionPrestador.Tipo tipoNotif, InfoPrestacionesReport ip )\r
@@ -136,6 +176,23 @@ namespace Controlador
                        \r
                }\r
 \r
+\r
+               private Autorizacion getAutorizacion( int codigo )\r
+               {       \r
+                       ArrayList al = new ArrayList();\r
+\r
+                       al = this.ObjectSetToArrayList( this.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( this.Db.get( new AutorizacionAutomatica(codigo) ) );\r
+                               a = ( (al.Count == 0)? null : al[0] ) as AutorizacionAutomatica;\r
+                       }\r
+\r
+                       return a;\r
+               }\r
+\r
                #endregion Métodos Privados\r
 \r
        }\r
index 83e278b4113d8c0325a96e55d34601e3f98a3be5..ddf781ca121c6328ad072ce6653a6e4dbd8c07e6 100644 (file)
@@ -1,4 +1,10 @@
 using System;\r
+using System.Collections;\r
+using System.Xml;\r
+using Dominio.Autorizaciones;\r
+using Dominio.Afiliados;\r
+using com.db4o;\r
+\r
 \r
 namespace Reportes\r
 {\r
@@ -7,8 +13,79 @@ namespace Reportes
        /// </summary>\r
        public class ConsumoAfiliadosReport\r
        {\r
+               #region Constructores\r
+               \r
                public ConsumoAfiliadosReport()\r
                {\r
+                       XmlDeclaration xmlDeclaration = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);\r
+                       xmlDoc.AppendChild(xmlDeclaration);\r
+\r
+                       XmlElement root = this.xmlDoc.CreateElement( "reporteConsumo" );\r
+                       root.SetAttribute( "fechaGeneracion", DateTime.Now.ToString( "yyyy-MM-dd" ) );\r
+                       \r
+                       root.AppendChild( xmlDoc.CreateElement( "lineas" ) );\r
+\r
+                       xmlDoc.AppendChild( root );\r
+               }\r
+\r
+               #endregion Constructores\r
+\r
+               private XmlDocument xmlDoc = new XmlDocument(); \r
+\r
+               #region Metodos Publicos\r
+\r
+               public void AgregarInfo( Prestador p, LineaInfoPrestacionesReport lineaIp )\r
+               {\r
+                       \r
+               }\r
+\r
+               #endregion Metodos Publicos\r
+\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
+\r
+               \r
        }\r
 }\r
index 473490ee07b141b7b30f5ce65d2a11c49a01ad92..fb6ff2ee379aad52a804562a3345fe0f75f7bebc 100644 (file)
@@ -60,12 +60,17 @@ namespace Reportes
                {\r
                        if ( reporteConsumo == null )\r
                                return;\r
+                       else\r
+                               Console.WriteLine( reporteConsumo.ToString() );\r
                }\r
 \r
                public void EnviarReporte( PrestacionesRealizadasReport informeAprobaciones )\r
                {\r
                        if ( informeAprobaciones == null )\r
                                return;\r
+                       else\r
+                               informeAprobaciones.Serializar();\r
+\r
                }\r
 \r
                public void MoverArchivoAceptado( InfoPrestacionesReport ip )\r
index a127f1c34ea28d5295fb9b3f5d929163c688342d..6ca31d62f9a236f3e9bf08d2901fa68c35cd7fb7 100644 (file)
@@ -32,8 +32,6 @@ namespace Reportes
 \r
                #region Campos Privados\r
 \r
-               private bool _esBienFormado = true;\r
-\r
                private string _pathArchivo = string.Empty;\r
                private string _cuitPrestador;\r
                private DateTime _fechaEnvio;\r
index cb879044458ee553835cea4a73995cbc6df5f360..61e2533e09c6944fffc2cdbe258a9a7a27872177 100644 (file)
@@ -1,4 +1,9 @@
 using System;\r
+using System.Collections;\r
+using com.db4o;\r
+using Dominio.Afiliados;\r
+using Dominio.Autorizaciones;\r
+//using Dominio.Planes;\r
 \r
 namespace Reportes\r
 {\r
@@ -26,6 +31,7 @@ namespace Reportes
                #region Campos Privados\r
 \r
                private bool _aprobada = false;\r
+               private bool _existeAutorizacion = false;\r
                private string _motivoRechazo = string.Empty;\r
 \r
                private int _codigoAutorizacion;\r
@@ -48,6 +54,11 @@ namespace Reportes
                        get { return this._aprobada; }\r
                }\r
 \r
+               public bool ExisteAutorizacion\r
+               {\r
+                       get { return this._existeAutorizacion; }\r
+               }\r
+\r
                /// <summary>\r
                /// Motivo por el cual se rechazó la línea, si es que se rechazó.\r
                /// En caso de haberse aprobado, debe estar vacío\r
@@ -89,6 +100,25 @@ namespace Reportes
 \r
                #endregion Propiedades Públicas\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
+\r
                #region Métodos Públicos\r
 \r
                /// <summary>\r
@@ -97,11 +127,196 @@ namespace Reportes
                /// <returns>True si la linea es válida</returns>\r
                public bool Validar( Dominio.Autorizaciones.Prestador prestador )\r
                {       \r
-                       bool resultado = false;\r
+                       #region Chequeo de la autorización\r
+\r
+                       Autorizacion aut = this.getAutorizacion( this.CodigoAutorizacion );\r
+                       if ( aut == null )\r
+                       {\r
+                               this.MarcarRechazada( MensajeMotivoRechazo.AutorizacionInexistente );\r
+                               this._existeAutorizacion = false;\r
+                               return false;\r
+                       }\r
+                       else\r
+                       {\r
+                               this._existeAutorizacion = true;\r
+\r
+                               if ( (aut.Prestador == null) || (aut.Prestador.Cuit != prestador.Cuit) )\r
+                               {\r
+                                       this.MarcarRechazada( MensajeMotivoRechazo.AutorizacionPrestadorInvalido );\r
+                                       return false;\r
+                               }\r
+\r
+                               if ( (aut.Prestacion == null) || (aut.Prestacion.Codigo != this.CodigoPrestacion) )\r
+                               {\r
+                                       this.MarcarRechazada( MensajeMotivoRechazo.AutorizacionPrestacionInvalida );\r
+                                       return false;\r
+                               }\r
+\r
+                               if ( aut.FechaRealizacion != DateTime.MinValue )\r
+                               {\r
+                                       this.MarcarRechazada( MensajeMotivoRechazo.AutorizacionYaRealizada );\r
+                                       return false;\r
+                               }\r
+                               \r
+                               if ( aut.getEstado(this.FechaRealizacion) != Autorizacion.Estado.Aprobada )\r
+                               {\r
+                                       this.MarcarRechazada( MensajeMotivoRechazo.AutorizacionNoAprobada );\r
+                                       return false;\r
+                               }\r
+\r
+                               if ( this.TipoAutorizacion.Trim() == "Manual" )\r
+                               {\r
+                                       if ( aut.GetType() != typeof(AutorizacionManual) )\r
+                                       {\r
+                                               this.MarcarRechazada( MensajeMotivoRechazo.AutorizacionTipoInvalido );\r
+                                               return false;\r
+                                       }\r
+                               }\r
+                               else\r
+                               {\r
+                                       if ( aut.GetType() != typeof(AutorizacionAutomatica) )\r
+                                       {\r
+                                               this.MarcarRechazada( MensajeMotivoRechazo.AutorizacionTipoInvalido );\r
+                                               return false;\r
+                                       }\r
+                               }\r
+\r
+                               if ( aut.PorcentajeCobertura != this.PorcentajeCobertura )\r
+                               {\r
+                                       this.MarcarRechazada( MensajeMotivoRechazo.AutorizacionPorcentajeInvalido );\r
+                                       return false;\r
+                               }\r
+                       }\r
+\r
+                       #endregion Chequeo de la autorización\r
+\r
+                       #region Chequeo de Prestador\r
+                       if ( (prestador.FechaBaja != DateTime.MinValue) && (prestador.FechaBaja <= this.FechaRealizacion) )\r
+                       {\r
+                               this.MarcarRechazada( MensajeMotivoRechazo.PrestadorDadoDeBaja );\r
+                               return false;\r
+                       }\r
+                       #endregion Chequeo de Prestador\r
 \r
-                       return resultado;\r
+                       #region Chequeo del Afiliado\r
+                       Afiliado a = this.getAfiliado( this.CodigoAfiliado );\r
+                       if (a == null) \r
+                       {\r
+                               this.MarcarRechazada( MensajeMotivoRechazo.AfiliadoInexistente );\r
+                               return false;\r
+                       }\r
+                       else\r
+                               if ( (a.FechaBaja != DateTime.MinValue) && (a.FechaBaja <= this.FechaRealizacion) )\r
+                               {\r
+                                       this.MarcarRechazada( MensajeMotivoRechazo.AfiliadoDadoDeBaja );\r
+                                       return false;\r
+                               }\r
+                       #endregion Chequeo del Afiliado\r
+       \r
+                       #region Chequeo de la prestación\r
+\r
+                       Prestacion p = this.getPrestacion( this.CodigoPrestacion );\r
+                       if ( p == null )\r
+                       {\r
+                               this.MarcarRechazada( MensajeMotivoRechazo.PrestacionInexistente );\r
+                               return false;\r
+                       }\r
+                       else\r
+                       {\r
+                               if ( (p.FechaBaja != DateTime.MinValue) && (p.FechaBaja <= this.FechaRealizacion) )\r
+                               {\r
+                                       this.MarcarRechazada( MensajeMotivoRechazo.PrestacionDadaDeBaja );\r
+                                       return false;\r
+                               }\r
+                       }\r
+\r
+                       #endregion Chequeo de la prestación\r
+\r
+                       this._aprobada = true;\r
+                       return true;\r
                }\r
 \r
                #endregion Métodos Públicos\r
+\r
+               #region Métodos Privados\r
+\r
+               private Afiliado getAfiliado( int codigo )\r
+               {\r
+                       this.db = com.db4o.Db4o.openFile("os.yap");\r
+                       ArrayList al = this.ObjectSetToArrayList( db.get( new Afiliado(this.CodigoAfiliado) ) );\r
+\r
+                       Afiliado a = ( (al.Count == 0)? null : al[0] ) as Afiliado;\r
+                       this.db.close();\r
+                       this.db = null;\r
+\r
+                       return a;\r
+               }\r
+\r
+               private Prestacion getPrestacion( string codigo )\r
+               {\r
+                       this.db = com.db4o.Db4o.openFile("os.yap");\r
+                       ArrayList al = this.ObjectSetToArrayList( db.get( new Prestacion(this.CodigoPrestacion) ) );\r
+\r
+                       Prestacion p = ( (al.Count == 0)? null : al[0] ) as Prestacion;\r
+                       this.db.close();\r
+                       this.db = null;\r
+\r
+                       return p;\r
+               }\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
+               private void MarcarRechazada( string motivo )\r
+               {\r
+                       this._aprobada = false;\r
+                       this._motivoRechazo = motivo;\r
+               }\r
+\r
+               #endregion Métodos Privados\r
+\r
+       } //clase\r
+\r
+       #region Motivos de rechazo\r
+\r
+       public struct MensajeMotivoRechazo\r
+       {\r
+               public static string PrestadorDadoDeBaja = "El prestador estaba dado de baja en la fecha de realización de la prestación informada por el prestador";\r
+               public static string AfiliadoDadoDeBaja = "El afiliado estaba dado de baja en la fecha de realización de la prestación informada por el prestador";\r
+               public static string AfiliadoInexistente = "El afiliado informado por el prestador no existe en el Sistema";\r
+               public static string PrestacionDadaDeBaja = "La prestación estaba dada de baja en la fecha de realización de la prestación informada por el prestador";\r
+               public static string PrestacionInexistente = "La prestación informada por el prestador no existe en el Sistema";\r
+\r
+               public static string AutorizacionInexistente = "La autorizacion informada por el prestador no existe en el Sistema";\r
+               public static string AutorizacionPrestadorInvalido = "La autorizacion informada por el prestador no esta relacionada, en el Sistema, con dicho prestador";\r
+               public static string AutorizacionAfiliadoInvalido = "La autorizacion informada por el prestador no esta relacionada, en el Sistema, con el afiliado informado";\r
+               public static string AutorizacionPrestacionInvalida = "La autorizacion informada por el prestador no esta relacionada, en el Sistema, con la prestacion informada";\r
+               public static string AutorizacionYaRealizada = "La autorizacion informada por el prestador ya ha sido realizada, segun los datos del Sistema";\r
+               public static string AutorizacionNoAprobada = "La autorizacion no estaba aprobada, segun los datos del Sistema, en la fecha de realizacion informada por el prestador";\r
+               public static string AutorizacionTipoInvalido = "El tipo de autorizacion informado por el prestador, no coincide con el tipo de autorizacion en el Sistema";\r
+               public static string AutorizacionPorcentajeInvalido = "El porcentaje de cobertura informado por el prestador, es distinto al que se aplicaba al momento de la aprobación de la autorización, segun los datos del Sistema";\r
+\r
        }\r
+\r
+       #endregion Motivos de rechazo\r
+\r
+\r
 }\r
index 2f7cb0b0ed34e4e51df654bb51a3ae1f2e0c9dc2..96c2a46d01682ace5cc07e5f0b626a4aceacb293 100644 (file)
@@ -1,4 +1,9 @@
 using System;\r
+using System.Collections;\r
+using System.Xml;\r
+using Dominio.Autorizaciones;\r
+using Dominio.Afiliados;\r
+using com.db4o;\r
 \r
 namespace Reportes\r
 {\r
@@ -11,8 +16,162 @@ namespace Reportes
                \r
                public PrestacionesRealizadasReport()\r
                {\r
+                       XmlDeclaration xmlDeclaration = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);\r
+                       xmlDoc.AppendChild(xmlDeclaration);\r
+\r
+                       XmlElement root = this.xmlDoc.CreateElement( "informeAprRechazos" );\r
+                       root.SetAttribute( "fechaGeneracion", DateTime.Now.ToString( "yyyy-MM-dd" ) );\r
+                       \r
+                       root.AppendChild( xmlDoc.CreateElement( "lineas" ) );\r
+\r
+                       xmlDoc.AppendChild( root );\r
                }\r
 \r
                #endregion Constructores\r
+\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
+                       XmlTextWriter writer = new XmlTextWriter("c:\\borrame.xml",null);\r
+                       writer.Formatting = Formatting.Indented;\r
+                       this.xmlDoc.Save(writer);\r
+\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
        }\r
 }\r