From b51bf640c558c27dc28581ffe7a4b47345485b40 Mon Sep 17 00:00:00 2001 From: Sebastian Lavena Date: Wed, 6 Jul 2005 08:19:50 +0000 Subject: [PATCH] ahi va la 1era version de AUtorizacion controller... le falta bastanton :P Agregue ctores vacios en Auotizacion para permitir consultas de db4, sin datos sucios en la instancia. --- .../src/Controlador/AutorizacionController.cs | 178 ++++++++++++++++++ demo/src/Dominio/Autorizacion.cs | 11 ++ 2 files changed, 189 insertions(+) create mode 100644 demo/src/Controlador/AutorizacionController.cs diff --git a/demo/src/Controlador/AutorizacionController.cs b/demo/src/Controlador/AutorizacionController.cs new file mode 100644 index 0000000..25b6714 --- /dev/null +++ b/demo/src/Controlador/AutorizacionController.cs @@ -0,0 +1,178 @@ + +#region Usings + +using System; +using System.Collections; + +using Dominio; +using Dominio.Autorizaciones; +using Dominio.Afiliados; + + +#endregion Usings + +namespace Controlador +{ + /// + /// Clase controlador que lleva a cabo los CU de "Pedir autorizacion automatica", + /// "Pedir autorizacion manual" y actualizar "autorizacion manual" + /// + 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; } + } + #endregion Propiedades privadas + + #region Métodos Públicos + + /// + /// Guarda un pedido de autorizacion manual. + /// + public bool guardarAutorizacionManual(String codPrestacion, String cuitPrestador + , int codAfiliado, String observaciones) + { + bool codigosOk = true; + + AutorizacionManual aut = new AutorizacionManual(DateTime.Now); + + + + //Seteo prestacion + Prestacion prestacion = new Prestacion(); + prestacion.Codigo=codPrestacion; + if (null==(aut.Prestacion = (Prestacion)this.ObjectSetToArrayList( this.Db.get(prestacion) )[0])) + codigosOk = false; + + //Seteo prestador + Prestador prestador = new Prestador(); + prestador.Cuit=cuitPrestador; + if (null==(aut.Prestador = (Prestador)this.ObjectSetToArrayList( this.Db.get(prestador) )[0])) + codigosOk=false; + + + //Seteo afiliado + Afiliado afiliado = new Afiliado(codAfiliado); + if (null==(aut.Afiliado = ((Afiliado)this.ObjectSetToArrayList( this.Db.get(afiliado) )[0]))) + codigosOk=false; + + //Seteo fecha de vencimiento como dentro de 60 días + aut.FechaVencimiento = DateTime.Now.AddDays(60); + + + aut.Observaciones = observaciones; + + #warning Grabar en autorizacionController:ver manejo de codigos!!!! + + if (codigosOk) this.Db.set(aut); + + return codigosOk; + } + + public float evaluarAutorizacionAutomatica(String cuitPrestador, String codPrestacion, int codAfiliado, out int codAutorizacion) + { + + 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 + Prestacion prestacion = new Prestacion(); + prestacion.Codigo=codPrestacion; + if (null==(aut.Prestacion = (Prestacion)this.ObjectSetToArrayList( this.Db.get(prestacion) )[0])) + codigosOk = false; + + //Seteo prestador + Prestador prestador = new Prestador(); + prestador.Cuit=cuitPrestador; + if (null==(aut.Prestador = (Prestador)this.ObjectSetToArrayList( this.Db.get(prestador) )[0])) + codigosOk=false; + + + //Seteo afiliado + Afiliado afiliado = new Afiliado(codAfiliado); + if (null==(aut.Afiliado = ((Afiliado)this.ObjectSetToArrayList( this.Db.get(afiliado) )[0]))) + 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); + + try + { + porcentajeDeCobertura = afiliado.VerificarCobertura(codPrestacion); + } + catch + { + #warning verificar cobertura deberia tirar excepcion si explota, o se rechaza + //TODO Asignar motivo de rechazo a fundamentosResolucion + } + finally + { + //Si porcentaje es 0, se registra rechazada + aut.setResolucion(fundamentosResolucion, porcentajeDeCobertura); + 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; + } + + public ArrayList obtenerAutorizacionesPendientes() + { + + Autorizacion autorizacion = new AutorizacionManual(); + // autorizacion.fe seleccionar nulls + //aut.Autorizacion = (Autorizacion)this.ObjectSetToArrayList( this.Db.get(autorizacion) )[0]) + + return null; + + + } + + + + + #endregion Métodos Públicos + + #region Métodos Privados + + /// + /// 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. + /// + /// Reporte del cual se porcesarán las lineas + + #endregion Métodos Privados + + } +} diff --git a/demo/src/Dominio/Autorizacion.cs b/demo/src/Dominio/Autorizacion.cs index d974b7c..e6ee120 100644 --- a/demo/src/Dominio/Autorizacion.cs +++ b/demo/src/Dominio/Autorizacion.cs @@ -97,6 +97,11 @@ namespace Dominio #warning Ver cómo manejar los códigos con DB4O this.FechaSolicitud = fechaSolicitud; } + + //Se necesita alguno vacio por tema de consultas en db4. + public Autorizacion() + { + } #endregion Constructores @@ -191,6 +196,9 @@ namespace Dominio : base( fechaSolicitud ) { } + public AutorizacionManual() + { + } #endregion Constructores @@ -269,6 +277,9 @@ namespace Dominio : base( fechaSolicitud ) { } + public AutorizacionAutomatica() + { + } #endregion Constructores -- 2.43.0