5 using System.Collections;
\r
8 using Dominio.Autorizaciones;
\r
9 using Dominio.Afiliados;
\r
16 namespace Controlador
\r
19 /// Clase controlador que lleva a cabo los CU de "Pedir autorizacion automatica",
\r
20 /// "Pedir autorizacion manual" y actualizar "autorizacion manual"
\r
22 public class AutorizacionController : Controller
\r
24 #region Constructores
\r
26 public AutorizacionController(DateTime fechaSolicitud): base()
\r
31 #endregion Constructores
\r
33 #region Campos Privados
\r
35 private Autorizacion _currentAutorizacion = null ;
\r
37 #endregion Campos Privados
\r
39 #region Propiedades privadas
\r
41 public Autorizacion CurrentAutorizacion
\r
43 get { return _currentAutorizacion; }
45 #endregion Propiedades privadas
\r
47 #region Métodos Públicos
\r
50 /// Guarda un pedido de autorizacion manual.
\r
52 public bool guardarAutorizacionManual(String codPrestacion, String cuitPrestador
\r
53 , int codAfiliado, String observaciones)
\r
55 bool codigosOk = true;
\r
57 AutorizacionManual aut = new AutorizacionManual(DateTime.Now);
\r
62 Prestacion prestacion = new Prestacion();
\r
63 prestacion.Codigo=codPrestacion;
\r
64 if (null==(aut.Prestacion = (Prestacion)this.ObjectSetToArrayList( this.Db.get(prestacion) )[0]))
\r
68 Prestador prestador = new Prestador();
\r
69 prestador.Cuit=cuitPrestador;
\r
70 if (null==(aut.Prestador = (Prestador)this.ObjectSetToArrayList( this.Db.get(prestador) )[0]))
\r
75 Afiliado afiliado = new Afiliado(codAfiliado);
\r
76 if (null==(aut.Afiliado = ((Afiliado)this.ObjectSetToArrayList( this.Db.get(afiliado) )[0])))
\r
79 //Seteo fecha de vencimiento como dentro de 60 días
\r
80 aut.FechaVencimiento = DateTime.Now.AddDays(60);
\r
83 aut.Observaciones = observaciones;
\r
85 #warning Grabar en autorizacionController:ver manejo de codigos!!!!
\r
87 if (codigosOk) this.Db.set(aut);
\r
92 public float evaluarAutorizacionAutomatica(String cuitPrestador, String codPrestacion, int codAfiliado, out int codAutorizacion)
95 bool codigosOk = true;
\r
96 float porcentajeDeCobertura = 0;
\r
97 string fundamentosResolucion = "Todo ok";
\r
99 AutorizacionAutomatica aut = new AutorizacionAutomatica(DateTime.Now);
\r
102 #region Se insancia prestador, prestacion y afiliado, y se asocia a aut
\r
104 Prestacion prestacion = new Prestacion();
\r
105 prestacion.Codigo=codPrestacion;
\r
106 if (null==(aut.Prestacion = (Prestacion)this.ObjectSetToArrayList( this.Db.get(prestacion) )[0]))
\r
110 Prestador prestador = new Prestador();
\r
111 prestador.Cuit=cuitPrestador;
\r
112 if (null==(aut.Prestador = (Prestador)this.ObjectSetToArrayList( this.Db.get(prestador) )[0]))
\r
117 Afiliado afiliado = new Afiliado(codAfiliado);
\r
118 if (null==(aut.Afiliado = ((Afiliado)this.ObjectSetToArrayList( this.Db.get(afiliado) )[0])))
\r
120 #endregion Se insancia prestador, prestacion y afiliado, y se asocia a aut
\r
122 //Seteo fecha de vencimiento como dentro de 60 días
\r
123 aut.FechaVencimiento = DateTime.Now.AddDays(60);
\r
127 porcentajeDeCobertura = afiliado.VerificarCobertura(codPrestacion);
131 #warning verificar cobertura deberia tirar excepcion si explota, o se rechaza
132 //TODO Asignar motivo de rechazo a fundamentosResolucion
136 //Si porcentaje es 0, se registra rechazada
137 aut.setResolucion(fundamentosResolucion, porcentajeDeCobertura);
141 this._currentAutorizacion=aut;
\r
143 #warning deberia obtener codigo de autorizacion ACA y devolverlo
\r
144 codAutorizacion = 131313; //TODO SETEAR CODIGO BIEN!!
\r
148 return porcentajeDeCobertura;
151 public ArrayList obtenerAutorizacionesPendientes()
\r
153 Query query = Db.query();
154 query.constrain(typeof(AutorizacionManual));
155 query.descend("_fechaRealizacion").constrain(DateTime.MinValue);
157 ObjectSet result = query.execute ();
159 return ObjectSetToArrayList (result);
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