X-Git-Url: https://git.llucax.com/z.facultad/75.10/miklolife.git/blobdiff_plain/1e3b9ee07ec8ed4dd72263248a08772a4e793e81..e3ef49aebf88034b0185f8c8a67b5e1fe7b1241c:/demo/src/Controlador/AutorizacionController.cs diff --git a/demo/src/Controlador/AutorizacionController.cs b/demo/src/Controlador/AutorizacionController.cs index c43e71f..4265fb0 100644 --- a/demo/src/Controlador/AutorizacionController.cs +++ b/demo/src/Controlador/AutorizacionController.cs @@ -7,6 +7,7 @@ using System.Collections; using Dominio; using Dominio.Autorizaciones; using Dominio.Afiliados; + using com.db4o; using com.db4o.query; @@ -53,40 +54,62 @@ namespace Controlador , 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 - Prestacion prestacion = new Prestacion(); - prestacion.Codigo=codPrestacion; - if (null==(aut.Prestacion = (Prestacion)this.ObjectSetToArrayList( this.Db.get(prestacion) )[0])) - codigosOk = false; + + 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 - Prestador prestador = new Prestador(); - prestador.Cuit=cuitPrestador; - if (null==(aut.Prestador = (Prestador)this.ObjectSetToArrayList( this.Db.get(prestador) )[0])) + 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 - Afiliado afiliado = new Afiliado(codAfiliado); - if (null==(aut.Afiliado = ((Afiliado)this.ObjectSetToArrayList( this.Db.get(afiliado) )[0]))) + 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; + aut.Observaciones = observaciones; - #warning Grabar en autorizacionController:ver manejo de codigos!!!! + //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; + + if (null==a) + //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) @@ -98,33 +121,35 @@ namespace Controlador AutorizacionAutomatica aut = new AutorizacionAutomatica(DateTime.Now); - - #region Se insancia prestador, prestacion y afiliado, y se asocia a aut + #region Se insancia prestador, prestacion y afiliado, y se asocia a aut //Seteo prestacion - Prestacion prestacion = new Prestacion(); - prestacion.Codigo=codPrestacion; - if (null==(aut.Prestacion = (Prestacion)this.ObjectSetToArrayList( this.Db.get(prestacion) )[0])) - codigosOk = false; + + 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 - Prestador prestador = new Prestador(); - prestador.Cuit=cuitPrestador; - if (null==(aut.Prestador = (Prestador)this.ObjectSetToArrayList( this.Db.get(prestador) )[0])) + 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 - Afiliado afiliado = new Afiliado(codAfiliado); - if (null==(aut.Afiliado = ((Afiliado)this.ObjectSetToArrayList( this.Db.get(afiliado) )[0]))) + 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 + + #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 = afiliado.VerificarCobertura(codPrestacion); + porcentajeDeCobertura = aut.Afiliado.VerificarCobertura(codPrestacion); } catch { @@ -158,7 +183,32 @@ namespace Controlador return ObjectSetToArrayList (result); } - + + 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; + this.Db.set(a); + + return true; + } #endregion Métodos Públicos @@ -172,6 +222,64 @@ namespace Controlador /// /// Reporte del cual se porcesarán las lineas + 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 }