5 using System.Collections;
\r
8 using Dominio.Autorizaciones;
\r
9 using Dominio.Afiliados;
\r
14 namespace Controlador
\r
17 /// Clase controlador que lleva a cabo los CU de "Pedir autorizacion automatica",
\r
18 /// "Pedir autorizacion manual" y actualizar "autorizacion manual"
\r
20 public class AutorizacionController : Controller
\r
22 #region Constructores
\r
24 public AutorizacionController(DateTime fechaSolicitud): base()
\r
29 #endregion Constructores
\r
31 #region Campos Privados
\r
33 private Autorizacion _currentAutorizacion = null ;
\r
35 #endregion Campos Privados
\r
37 #region Propiedades privadas
\r
39 public Autorizacion CurrentAutorizacion
\r
41 get { return _currentAutorizacion; }
43 #endregion Propiedades privadas
\r
45 #region Métodos Públicos
\r
48 /// Guarda un pedido de autorizacion manual.
\r
50 public bool guardarAutorizacionManual(String codPrestacion, String cuitPrestador
\r
51 , int codAfiliado, String observaciones)
\r
53 bool codigosOk = true;
\r
55 AutorizacionManual aut = new AutorizacionManual(DateTime.Now);
\r
60 Prestacion prestacion = new Prestacion();
\r
61 prestacion.Codigo=codPrestacion;
\r
62 if (null==(aut.Prestacion = (Prestacion)this.ObjectSetToArrayList( this.Db.get(prestacion) )[0]))
\r
66 Prestador prestador = new Prestador();
\r
67 prestador.Cuit=cuitPrestador;
\r
68 if (null==(aut.Prestador = (Prestador)this.ObjectSetToArrayList( this.Db.get(prestador) )[0]))
\r
73 Afiliado afiliado = new Afiliado(codAfiliado);
\r
74 if (null==(aut.Afiliado = ((Afiliado)this.ObjectSetToArrayList( this.Db.get(afiliado) )[0])))
\r
77 //Seteo fecha de vencimiento como dentro de 60 días
\r
78 aut.FechaVencimiento = DateTime.Now.AddDays(60);
\r
81 aut.Observaciones = observaciones;
\r
83 #warning Grabar en autorizacionController:ver manejo de codigos!!!!
\r
85 if (codigosOk) this.Db.set(aut);
\r
90 public float evaluarAutorizacionAutomatica(String cuitPrestador, String codPrestacion, int codAfiliado, out int codAutorizacion)
93 bool codigosOk = true;
\r
94 float porcentajeDeCobertura = 0;
\r
95 string fundamentosResolucion = "Todo ok";
\r
97 AutorizacionAutomatica aut = new AutorizacionAutomatica(DateTime.Now);
\r
100 #region Se insancia prestador, prestacion y afiliado, y se asocia a aut
\r
102 Prestacion prestacion = new Prestacion();
\r
103 prestacion.Codigo=codPrestacion;
\r
104 if (null==(aut.Prestacion = (Prestacion)this.ObjectSetToArrayList( this.Db.get(prestacion) )[0]))
\r
108 Prestador prestador = new Prestador();
\r
109 prestador.Cuit=cuitPrestador;
\r
110 if (null==(aut.Prestador = (Prestador)this.ObjectSetToArrayList( this.Db.get(prestador) )[0]))
\r
115 Afiliado afiliado = new Afiliado(codAfiliado);
\r
116 if (null==(aut.Afiliado = ((Afiliado)this.ObjectSetToArrayList( this.Db.get(afiliado) )[0])))
\r
118 #endregion Se insancia prestador, prestacion y afiliado, y se asocia a aut
\r
120 //Seteo fecha de vencimiento como dentro de 60 días
\r
121 aut.FechaVencimiento = DateTime.Now.AddDays(60);
\r
125 porcentajeDeCobertura = afiliado.VerificarCobertura(codPrestacion);
129 #warning verificar cobertura deberia tirar excepcion si explota, o se rechaza
130 //TODO Asignar motivo de rechazo a fundamentosResolucion
134 //Si porcentaje es 0, se registra rechazada
135 aut.setResolucion(fundamentosResolucion, porcentajeDeCobertura);
139 this._currentAutorizacion=aut;
\r
141 #warning deberia obtener codigo de autorizacion ACA y devolverlo
\r
142 codAutorizacion = 131313; //TODO SETEAR CODIGO BIEN!!
\r
146 return porcentajeDeCobertura;
149 public ArrayList obtenerAutorizacionesPendientes()
\r
152 Autorizacion autorizacion = new AutorizacionManual();
\r
153 // autorizacion.fe seleccionar nulls
\r
154 //aut.Autorizacion = (Autorizacion)this.ObjectSetToArrayList( this.Db.get(autorizacion) )[0])
\r
164 #endregion Métodos Públicos
\r
166 #region Métodos Privados
\r
169 /// Procesa las lineas del reporte una vez que el mismo ha sido validado:
\r
170 /// Si está aprobada, la registra en el sistema y la agrega al reporte de Consumo de los Afiliados.
\r
171 /// A todas las lineas las agrega al Informe de Aprobaciones/rechazos de Prestaciones Realizadas.
\r
173 /// <param name="ip">Reporte del cual se porcesarán las lineas</param>
\r
175 #endregion Métodos Privados
\r