]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blobdiff - demo/src/Controlador/AutorizacionController.cs
- Recibir y Cotejar afilidito
[z.facultad/75.10/miklolife.git] / demo / src / Controlador / AutorizacionController.cs
index 23cfe7402d252998bd5560b2cded822de03bead3..6bc263a229739bb4f223c04add36a1cb7d977120 100644 (file)
-\r
-#region Usings\r
-\r
-using System;\r
-using System.Collections;\r
-\r
-using Dominio;\r
-using Dominio.Autorizaciones;\r
-using Dominio.Afiliados;\r
-\r
+
+#region Usings
+
+using System;
+using System.Collections;
+
+using Dominio;
+using Dominio.Autorizaciones;
+using Dominio.Afiliados;
+
 
 using com.db4o;
 using com.db4o.query;
 
-#endregion Usings\r
-\r
-namespace Controlador\r
-{\r
-       /// <summary>\r
-       /// Clase controlador que lleva a cabo los CU de "Pedir autorizacion automatica",\r
-       /// "Pedir autorizacion manual" y actualizar "autorizacion manual"\r
-       /// </summary>\r
-       public class AutorizacionController : Controller\r
-       {\r
-               #region Constructores\r
-               \r
-               public AutorizacionController(DateTime fechaSolicitud): base()\r
-               {\r
-\r
-               }\r
-\r
-               #endregion Constructores\r
-\r
-               #region Campos Privados \r
-\r
-               private Autorizacion _currentAutorizacion = null ;              \r
-               \r
-               #endregion Campos Privados\r
-\r
-               #region Propiedades privadas\r
-\r
-               public Autorizacion CurrentAutorizacion\r
+#endregion Usings
+
+namespace Controlador
+{
+       /// <summary>
+       /// Clase controlador que lleva a cabo los CU de "Pedir autorizacion automatica",
+       /// "Pedir autorizacion manual" y actualizar "autorizacion manual"
+       /// </summary>
+       public class AutorizacionController : Controller
+       {
+               #region Constructores
+               
+               public AutorizacionController(DateTime fechaSolicitud): base()
+               {
+
+               }
+
+               #endregion Constructores
+
+               #region Campos Privados 
+
+               private Autorizacion _currentAutorizacion = null ;              
+               
+               #endregion Campos Privados
+
+               #region Propiedades privadas
+
+               public Autorizacion CurrentAutorizacion
                {
                        get { return _currentAutorizacion; }                    
-               }\r
-               #endregion Propiedades privadas\r
-\r
-               #region Métodos Públicos\r
-               \r
-               /// <summary>\r
-               /// Guarda un pedido de autorizacion manual.\r
-               /// </summary>\r
-               public bool guardarAutorizacionManual(String codPrestacion, String cuitPrestador\r
-                       , int codAfiliado, String observaciones)\r
-               {\r
-                       bool codigosOk = true;\r
-                               \r
-                       AutorizacionManual aut = new AutorizacionManual(DateTime.Now);\r
-                       \r
-                       #region Se insancia prestador, prestacion y afiliado, y se asocia a aut\r
-                       //Seteo prestacion\r
-                       \r
-                       ArrayList al = this.ObjectSetToArrayList( this.Db.get( new Prestacion(codPrestacion) ) );\r
-                       if (null==(aut.Prestacion = ( (al.Count == 0)? null : al[0] ) as Prestacion))\r
-                               codigosOk=false;\r
-\r
-                       //Seteo prestador\r
-                       al = this.ObjectSetToArrayList( this.Db.get( new Prestador(cuitPrestador) ) );\r
-                       if (null==(aut.Prestador = ( (al.Count == 0)? null : al[0] ) as Prestador))\r
-                               codigosOk=false;\r
-\r
-                               \r
-\r
-                       //Seteo afiliado\r
-                       al = this.ObjectSetToArrayList( this.Db.get( new Afiliado(codAfiliado) ) );\r
-                       if (null==(aut.Afiliado = ( (al.Count == 0)? null : al[0] ) as Afiliado))\r
-                               codigosOk=false;\r
-       \r
-                       #endregion Se insancia prestador, prestacion y afiliado, y se asocia a aut\r
-                       //Seteo fecha de vencimiento como dentro de 60 días\r
-                       aut.FechaVencimiento = DateTime.Now.AddDays(60);\r
-\r
-\r
-                       aut.Observaciones = observaciones;                      \r
-\r
-                       //Signo prox codigo para autorizacion\r
-                       AutoIncrementable c = new AutoIncrementable ();\r
-                       using (c)\r
-                       {\r
-                               aut.Codigo = c.NextAutorizacion();\r
-                       }\r
-\r
-                       if (codigosOk) this.Db.set(aut);\r
-\r
-                       return codigosOk;                       \r
-               \r
-               }\r
-\r
-               //PRE: No hay autorizaciones manuales y automaticas con mismo codigo!!\r
-               public Autorizacion obtener(int codigo)\r
-               {                       \r
-                       //Busco manual\r
-                       ArrayList al = this.ObjectSetToArrayList( this.Db.get( new AutorizacionManual(codigo) ) );\r
-                       Autorizacion a = ((al.Count == 0)? null : al[0] ) as Autorizacion;\r
-                       \r
-                       if (null==a)\r
-                       //Busco automatica, si no hay manual para ese codigo\r
-                       {\r
-                               al = this.ObjectSetToArrayList( this.Db.get( new AutorizacionAutomatica(codigo) ) );\r
-                               a = ((al.Count == 0)? null : al[0] ) as Autorizacion;\r
-                       }\r
-                       return a;\r
-               }\r
-\r
+               }
+               #endregion Propiedades privadas
+
+               #region Métodos Públicos
+               
+               /// <summary>
+               /// Guarda un pedido de autorizacion manual.
+               /// </summary>
+               public bool guardarAutorizacionManual(String codPrestacion, String cuitPrestador
+                       , int codAfiliado, String observaciones)
+               {
+                       bool codigosOk = true;
+                               
+                       AutorizacionManual aut = new AutorizacionManual(DateTime.Now);
+                       
+                       #region Se insancia prestador, prestacion y afiliado, y se asocia a aut
+                       //Seteo prestacion
+                       
+                       ArrayList al = this.ObjectSetToArrayList( this.Db.get( new Prestacion(codPrestacion) ) );
+                       if (null==(aut.Prestacion = ( (al.Count == 0)? null : al[0] ) as Prestacion))
+                               codigosOk=false;
+
+                       //Seteo prestador
+                       al = this.ObjectSetToArrayList( this.Db.get( new Prestador(cuitPrestador) ) );
+                       if (null==(aut.Prestador = ( (al.Count == 0)? null : al[0] ) as Prestador))
+                               codigosOk=false;
+
+                               
+
+                       //Seteo afiliado
+                       al = this.ObjectSetToArrayList( this.Db.get( new Afiliado(codAfiliado) ) );
+                       if (null==(aut.Afiliado = ( (al.Count == 0)? null : al[0] ) as Afiliado))
+                               codigosOk=false;
+       
+                       #endregion Se insancia prestador, prestacion y afiliado, y se asocia a aut
+                       //Seteo fecha de vencimiento como dentro de 60 días
+                       aut.FechaVencimiento = DateTime.Now.AddDays(60);
+
+
+                       aut.Observaciones = observaciones;                      
+
+                       //Signo prox codigo para autorizacion
+                       AutoIncrementable c = new AutoIncrementable ();
+                       using (c)
+                       {
+                               aut.Codigo = c.NextAutorizacion();
+                       }
+
+                       if (codigosOk) this.Db.set(aut);
+
+                       return codigosOk;                       
+               
+               }
+
+               //PRE: No hay autorizaciones manuales y automaticas con mismo codigo!!
+               public Autorizacion obtener(int codigo)
+               {                       
+                       //Busco manual
+                       /*ArrayList al = this.ObjectSetToArrayList( this.Db.get( new AutorizacionManual(codigo) ) );
+                       Autorizacion a = ((al.Count == 0)? null : al[0] ) as Autorizacion;*/
+                       Query query = Db.query();
+                       query.constrain(typeof(AutorizacionManual));
+                       query.descend("_codigo").constrain(codigo);
+                       ObjectSet result = query.execute ();
+                       
+                       ArrayList al = ObjectSetToArrayList (result);
+
+                       Autorizacion a = null;
+                       try     {
+                               a = ((al.Count == 0)? null : al[0] ) as Autorizacion;
+                       } catch (Exception e) {
+                               Console.WriteLine ("Bad");
+                       }
+                       Console.WriteLine (a);
+                       
+                       if (null==a) {
+                               Console.WriteLine ("NO EXISTE AUTORIZACION MANUAL DE CODIGO {0}", codigo);
+                               //Busco automatica, si no hay manual para ese codigo
+                               al = this.ObjectSetToArrayList( this.Db.get( new AutorizacionAutomatica(codigo) ) );
+                               a = ((al.Count == 0)? null : al[0] ) as Autorizacion;
+                       }
+                       return a;
+               }
+
                public float evaluarAutorizacionAutomatica(String cuitPrestador, String codPrestacion, int codAfiliado, out int codAutorizacion)
                {
 
-                       bool codigosOk = true;\r
-                       float porcentajeDeCobertura = 0;\r
-                       string fundamentosResolucion = "Todo ok";\r
-                       \r
-                       AutorizacionAutomatica aut = new AutorizacionAutomatica(DateTime.Now);\r
-                       \r
-                       #region Se insancia prestador, prestacion y afiliado, y se asocia a aut\r
-                       //Seteo prestacion\r
-                       \r
-                       ArrayList al = this.ObjectSetToArrayList( this.Db.get( new Prestacion(codPrestacion) ) );\r
-                       if (null==(aut.Prestacion = ( (al.Count == 0)? null : al[0] ) as Prestacion))\r
-                               codigosOk=false;\r
-\r
-                       //Seteo prestador\r
-                       al = this.ObjectSetToArrayList( this.Db.get( new Prestador(cuitPrestador) ) );\r
-                       if (null==(aut.Prestador = ( (al.Count == 0)? null : al[0] ) as Prestador))\r
-                               codigosOk=false;\r
-\r
-                               \r
-\r
-                       //Seteo afiliado\r
-                       al = this.ObjectSetToArrayList( this.Db.get( new Afiliado(codAfiliado) ) );\r
-                       if (null==(aut.Afiliado = ( (al.Count == 0)? null : al[0] ) as Afiliado))\r
-                               codigosOk=false;\r
-       \r
-                       #endregion Se insancia prestador, prestacion y afiliado, y se asocia a aut\r
-                       //Seteo fecha de vencimiento como dentro de 60 días\r
-                       \r
-\r
-                       //Seteo fecha de vencimiento como dentro de 60 días\r
-                       aut.FechaVencimiento = DateTime.Now.AddDays(60);\r
-\r
-                       try\r
+                       bool codigosOk = true;
+                       float porcentajeDeCobertura = 0;
+                       string fundamentosResolucion = "Todo ok";
+                       
+                       AutorizacionAutomatica aut = new AutorizacionAutomatica(DateTime.Now);
+                       
+                       #region Se insancia prestador, prestacion y afiliado, y se asocia a aut
+                       //Seteo prestacion
+                       
+                       ArrayList al = this.ObjectSetToArrayList( this.Db.get( new Prestacion(codPrestacion) ) );
+                       if (null==(aut.Prestacion = ( (al.Count == 0)? null : al[0] ) as Prestacion))
+                               codigosOk=false;
+
+                       //Seteo prestador
+                       al = this.ObjectSetToArrayList( this.Db.get( new Prestador(cuitPrestador) ) );
+                       if (null==(aut.Prestador = ( (al.Count == 0)? null : al[0] ) as Prestador))
+                               codigosOk=false;
+
+                               
+
+                       //Seteo afiliado
+                       al = this.ObjectSetToArrayList( this.Db.get( new Afiliado(codAfiliado) ) );
+                       if (null==(aut.Afiliado = ( (al.Count == 0)? null : al[0] ) as Afiliado))
+                               codigosOk=false;
+       
+                       #endregion Se insancia prestador, prestacion y afiliado, y se asocia a aut
+                       //Seteo fecha de vencimiento como dentro de 60 días
+                       
+
+                       //Seteo fecha de vencimiento como dentro de 60 días
+                       aut.FechaVencimiento = DateTime.Now.AddDays(60);
+
+                       try
                        {
                                porcentajeDeCobertura = aut.Afiliado.VerificarCobertura(codPrestacion);
-                       }\r
-                       catch\r
+                       }
+                       catch
                        {
                                #warning verificar cobertura deberia tirar excepcion si explota, o se rechaza
                                //TODO Asignar motivo de rechazo a fundamentosResolucion
                        }
-                       finally\r
+                       finally
                        {
                                //Si porcentaje es 0, se registra rechazada
                                aut.setResolucion(fundamentosResolucion, porcentajeDeCobertura);
-                               if (codigosOk) \r
-                               {\r
-                                       this.Db.set(aut);\r
-                                       this._currentAutorizacion=aut;\r
-                               }\r
-                               #warning deberia obtener codigo de autorizacion ACA y devolverlo\r
-                               codAutorizacion = 131313; //TODO SETEAR CODIGO BIEN!!\r
-                               \r
+                               if (codigosOk) 
+                               {
+                                       this.Db.set(aut);
+                                       this._currentAutorizacion=aut;
+                               }
+                               #warning deberia obtener codigo de autorizacion ACA y devolverlo
+                               codAutorizacion = 131313; //TODO SETEAR CODIGO BIEN!!
+                               
                                                
                        }
                        return porcentajeDeCobertura;
                }
-\r
-               public ArrayList obtenerAutorizacionesPendientes()\r
+
+               public ArrayList obtenerAutorizacionesPendientes()
                {                               
                        Query query = Db.query();
                        query.constrain(typeof(AutorizacionManual));
@@ -183,91 +197,105 @@ namespace Controlador
 
                        return ObjectSetToArrayList (result);
                }
-\r
-               //PRE: El codigo solicitado tiene que ser de una autorizacion manual.\r
-               public bool  setResolucionAutorizacionManual(int codAutorizacion, \r
-                       String fundamentosResolucion, float porcentaje)\r
-               {\r
-                       AutorizacionManual a = this.obtener(codAutorizacion) as AutorizacionManual;\r
-                       if (null==a) return false;\r
-                       a.Aprobada = (porcentaje==0)?false:true;\r
-                       a.PorcentajeCobertura = porcentaje;\r
-                       a.FundamentosResolucion = fundamentosResolucion;\r
-                       this.Db.set(a);\r
-\r
-                       return true;\r
-               }\r
-\r
-\r
-               #endregion Métodos Públicos\r
-\r
-               #region Métodos Privados\r
-\r
-               /// <summary>\r
-               /// Procesa las lineas del reporte una vez que el mismo ha sido validado:\r
-               /// Si está aprobada, la registra en el sistema y la agrega al reporte de Consumo de los Afiliados. \r
-               /// 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
-               \r
-               private void InsertarDatosNecesarios()\r
-               {\r
-                       //PRESTADOR\r
-                       Prestador pre = new Prestador();\r
-                       pre.Cuit = "11-11111111-1";\r
-                       ObjectSet os = this.Db.get( pre );\r
-                       if ( (os == null) || (os.size() == 0) )\r
-                       {\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
-                               dir.Telefono = "5056-4567";\r
-                               pre.Direccion = dir;\r
-                               pre.Email = @"roberto@sancamilo.com";\r
-                               pre.FechaBaja = DateTime.MinValue;\r
-                               pre.Nombre = "Clinica San Camilo";\r
-                               pre.Password = "camilo";\r
-                               pre.Zona = new SZona( "Caballito", "Zona de Caballito" );\r
-                               this.Db.set( pre );\r
-                       }\r
-\r
-                       Prestacion p = new Prestacion();\r
-                       p.Codigo = "mierda" ;\r
-\r
-                       Categoria c = new Categoria();\r
-                       c.Codigo=10;\r
-                       c.Nombre="categoria 1";\r
-               \r
-                       p.Categoria = c;\r
-                       p.Nombre= "hospital de clinicas";\r
-                       this.Db.set(p);\r
-\r
-                       Afiliado a = new Afiliado(69);\r
-                       a.Apellido = "apellido";\r
-                       a.EMail = "afiliado@aaa.com";\r
-\r
-                       this.Db.set(a);\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 Métodos Privados\r
-\r
-       }\r
-}\r
+
+               public ArrayList obtenerAutorizacionesPorAfiliado (int codafiliado)
+               {       
+                       Afiliado a = new Afiliado (codafiliado);
+       
+                       Query query = Db.query();
+                       query.constrain(typeof(Autorizacion));
+                       query.descend("_afiliado").constrain(a);
+
+                       ObjectSet result = query.execute ();
+
+                       return ObjectSetToArrayList (result);
+               }
+               //PRE: El codigo solicitado tiene que ser de una autorizacion manual.
+               public bool  setResolucionAutorizacionManual(int codAutorizacion, 
+                       String fundamentosResolucion, float porcentaje)
+               {
+                       AutorizacionManual a = this.obtener(codAutorizacion) as AutorizacionManual;
+                       if (null==a) return false;
+                       a.Aprobada = (porcentaje==0)?false:true;
+                       a.PorcentajeCobertura = porcentaje;
+                       a.FundamentosResolucion = fundamentosResolucion;
+                       a.FechaResolucion = DateTime.Now;
+                       this.Db.set(a);
+
+                       return true;
+               }
+
+
+               #endregion Métodos Públicos
+
+               #region Métodos Privados
+
+               /// <summary>
+               /// Procesa las lineas del reporte una vez que el mismo ha sido validado:
+               /// Si está aprobada, la registra en el sistema y la agrega al reporte de Consumo de los Afiliados. 
+               /// A todas las lineas las agrega al Informe de Aprobaciones/rechazos de Prestaciones Realizadas.
+               /// </summary>
+               /// <param name="ip">Reporte del cual se porcesarán las lineas</param>
+               
+               private void InsertarDatosNecesarios()
+               {
+                       return;
+                       //PRESTADOR
+                       Prestador pre = new Prestador();
+                       pre.Cuit = "11-11111111-1";
+                       ObjectSet os = this.Db.get( pre );
+                       if ( (os == null) || (os.size() == 0) )
+                       {
+                               Dominio.SDireccion dir;
+                               dir.Calle = "Gaona"; dir.CodigoPostal = "AB1504"; dir.Departamento = "";
+                               dir.Numero = 1234; dir.Piso = 0;  dir.Provincia = Dominio.EProvincia.CAPITAL_FEDERAL;
+                               dir.Telefono = "5056-4567";
+                               pre.Direccion = dir;
+                               pre.Email = @"roberto@sancamilo.com";
+                               pre.FechaBaja = DateTime.MinValue;
+                               pre.Nombre = "Clinica San Camilo";
+                               pre.Password = "camilo";
+                               pre.Zona = new SZona( "Caballito", "Zona de Caballito" );
+                               this.Db.set( pre );
+                       }
+
+                       Prestacion p = new Prestacion();
+                       p.Codigo = "mierda" ;
+
+                       Categoria c = new Categoria();
+                       c.Codigo=10;
+                       c.Nombre="categoria 1";
+               
+                       p.Categoria = c;
+                       p.Nombre= "hospital de clinicas";
+                       this.Db.set(p);
+
+                       Afiliado a = new Afiliado(69);
+                       a.Apellido = "apellido";
+                       a.EMail = "afiliado@aaa.com";
+
+                       this.Db.set(a);
+                       
+
+                       //AUTORIZACIONES
+                       /*AutorizacionAutomatica a = new AutorizacionAutomatica();
+                       a.Codigo = 123;
+                       os = this.Db.get( a );
+                       if ( (os == null) || (os.size() == 0) )
+                       {
+                               a.Afiliado = new Dominio.Afiliados.Afiliado( 987 );
+                               a.Prestacion = new Prestacion( "B01AC06" );
+                               a.Prestador = pre;
+                               a.FechaSolicitud = new DateTime( 2005, 5, 20 ); // 20 de mayo
+                               a.FechaRealizacion = DateTime.MinValue;
+                               a.FechaVencimiento = a.FechaSolicitud.AddMonths( 2 ); // 20 de julio, aprox
+                               a.Aprobada = true;
+                               a.PorcentajeCobertura = 12.5F;
+                               this.Db.set( a );
+                       }*/
+               }
+
+               #endregion Métodos Privados
+
+       }
+}