]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blob - demo/src/Controlador/AutorizacionController.cs
Bocha de cosas difíciles y largas de explicar :P
[z.facultad/75.10/miklolife.git] / demo / src / Controlador / AutorizacionController.cs
1 \r
2 #region Usings\r
3 \r
4 using System;\r
5 using System.Collections;\r
6 \r
7 using Dominio;\r
8 using Dominio.Autorizaciones;\r
9 using Dominio.Afiliados;\r
10 \r
11 \r
12 #endregion Usings\r
13 \r
14 namespace Controlador\r
15 {\r
16         /// <summary>\r
17         /// Clase controlador que lleva a cabo los CU de "Pedir autorizacion automatica",\r
18         /// "Pedir autorizacion manual" y actualizar "autorizacion manual"\r
19         /// </summary>\r
20         public class AutorizacionController : Controller\r
21         {\r
22                 #region Constructores\r
23                 \r
24                 public AutorizacionController(DateTime fechaSolicitud): base()\r
25                 {\r
26 \r
27                 }\r
28 \r
29                 #endregion Constructores\r
30 \r
31                 #region Campos Privados \r
32 \r
33                 private Autorizacion _currentAutorizacion = null ;              \r
34                 \r
35                 #endregion Campos Privados\r
36 \r
37                 #region Propiedades privadas\r
38 \r
39                 public Autorizacion CurrentAutorizacion\r
40                 {
41                         get { return _currentAutorizacion; }                    
42                 }\r
43                 #endregion Propiedades privadas\r
44 \r
45                 #region Métodos Públicos\r
46                 \r
47                 /// <summary>\r
48                 /// Guarda un pedido de autorizacion manual.\r
49                 /// </summary>\r
50                 public bool guardarAutorizacionManual(String codPrestacion, String cuitPrestador\r
51                         , int codAfiliado, String observaciones)\r
52                 {\r
53                         bool codigosOk = true;\r
54                         \r
55                         AutorizacionManual aut = new AutorizacionManual(DateTime.Now);\r
56                         \r
57 \r
58 \r
59                         //Seteo prestacion\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
63                                 codigosOk = false;\r
64 \r
65                         //Seteo prestador\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
69                                 codigosOk=false;\r
70                         \r
71 \r
72                         //Seteo afiliado\r
73                         Afiliado afiliado = new Afiliado(codAfiliado);                  \r
74                         if (null==(aut.Afiliado = ((Afiliado)this.ObjectSetToArrayList( this.Db.get(afiliado) )[0])))\r
75                                 codigosOk=false;\r
76                         \r
77                         //Seteo fecha de vencimiento como dentro de 60 días\r
78                         aut.FechaVencimiento = DateTime.Now.AddDays(60);\r
79 \r
80 \r
81                         aut.Observaciones = observaciones;\r
82 \r
83                         #warning Grabar en autorizacionController:ver manejo de codigos!!!!\r
84 \r
85                         if (codigosOk) this.Db.set(aut);\r
86 \r
87                         return codigosOk;                       \r
88                 }\r
89 \r
90                 public float evaluarAutorizacionAutomatica(String cuitPrestador, String codPrestacion, int codAfiliado, out int codAutorizacion)
91                 {
92
93                         bool codigosOk = true;\r
94                         float porcentajeDeCobertura = 0;\r
95                         string fundamentosResolucion = "Todo ok";\r
96                         \r
97                         AutorizacionAutomatica aut = new AutorizacionAutomatica(DateTime.Now);\r
98                         \r
99 \r
100                         #region Se insancia prestador, prestacion y afiliado, y se asocia a aut\r
101                         //Seteo prestacion\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
105                                 codigosOk = false;\r
106 \r
107                         //Seteo prestador\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
111                                 codigosOk=false;\r
112                         \r
113 \r
114                         //Seteo afiliado\r
115                         Afiliado afiliado = new Afiliado(codAfiliado);                  \r
116                         if (null==(aut.Afiliado = ((Afiliado)this.ObjectSetToArrayList( this.Db.get(afiliado) )[0])))\r
117                                 codigosOk=false;\r
118                         #endregion      Se insancia prestador, prestacion y afiliado, y se asocia a aut\r
119 \r
120                         //Seteo fecha de vencimiento como dentro de 60 días\r
121                         aut.FechaVencimiento = DateTime.Now.AddDays(60);\r
122 \r
123                         try\r
124                         {
125                                 porcentajeDeCobertura = afiliado.VerificarCobertura(codPrestacion);
126                         }\r
127                         catch\r
128                         {
129                                 #warning verificar cobertura deberia tirar excepcion si explota, o se rechaza
130                                 //TODO Asignar motivo de rechazo a fundamentosResolucion
131                         }
132                         finally\r
133                         {
134                                 //Si porcentaje es 0, se registra rechazada
135                                 aut.setResolucion(fundamentosResolucion, porcentajeDeCobertura);
136                                 if (codigosOk) \r
137                                 {\r
138                                         this.Db.set(aut);\r
139                                         this._currentAutorizacion=aut;\r
140                                 }\r
141                                 #warning deberia obtener codigo de autorizacion ACA y devolverlo\r
142                                 codAutorizacion = 131313; //TODO SETEAR CODIGO BIEN!!\r
143                                 \r
144                                                 
145                         }
146                         return porcentajeDeCobertura;
147                 }
148 \r
149                 public ArrayList obtenerAutorizacionesPendientes()\r
150                 {\r
151                         \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
155 \r
156                         return null;\r
157 \r
158 \r
159                 }\r
160                 \r
161 \r
162 \r
163 \r
164                 #endregion Métodos Públicos\r
165 \r
166                 #region Métodos Privados\r
167 \r
168                 /// <summary>\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
172                 /// </summary>\r
173                 /// <param name="ip">Reporte del cual se porcesarán las lineas</param>\r
174                 \r
175                 #endregion Métodos Privados\r
176 \r
177         }\r
178 }\r