]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blob - demo/src/Controlador/AfiliadoSolicitanteController.cs
* Ya se pueden agregar prestadores a la base de datos (solo alta y no con todos...
[z.facultad/75.10/miklolife.git] / demo / src / Controlador / AfiliadoSolicitanteController.cs
1 namespace Controlador {
2 namespace Afiliacion {
3
4 using Dominio.Afiliados;
5 using Dominio.Planes;
6 using Dominio;
7 using com.db4o;
8 using com.db4o.query;
9
10 using System;
11 using System.Collections;
12
13 public class AfiliadoSolicitanteController : Controller 
14 {
15         private ArrayList _afiliados;
16         private ArrayList _solicitantes;
17
18         public AfiliadoSolicitanteController ():base()
19         {
20         }
21
22
23         public ArrayList ObtenerSolicitantesAfiliar ()
24         {
25                 Query query = Db.query();
26                 query.constrain(typeof(Solicitante));
27                 query.descend("_promotor").constrain(null);
28                 query.descend("_pendiente").constrain(false);
29                 query.descend("_titular").constrain(null);
30
31                 ObjectSet result = query.execute();
32                 ArrayList lst = ObjectSetToArrayList (result);
33
34                 return lst;
35         }
36
37         public ArrayList ObtenerFamiliaresAfiliar (Solicitante s)
38         {
39                 Query query = Db.query();
40                 query.constrain(typeof(Solicitante));
41                 query.descend("_promotor").constrain(null);
42                 query.descend("_pendiente").constrain(false);
43                 query.descend("_titular").constrain(s);
44
45                 ObjectSet result = query.execute();
46                 ArrayList lst = ObjectSetToArrayList (result);
47
48                 return lst;
49         }
50
51         public Afiliado ExisteAfiliado (ETipoDocumento tipoDoc, int nroDoc)
52         {
53                 Afiliado afil = new Afiliado (tipoDoc, nroDoc);
54                 ObjectSet result = Db.get (afil);
55                 afil = (Afiliado)result.next ();
56
57                 return afil;
58         }
59
60         public bool ExisteAfiliado (int codigo)
61         {
62                 foreach (Afiliado afil in _afiliados) {
63                         if (afil.Codigo == codigo)
64                                 return true;
65                 }
66                 return false;
67         }
68
69         public ArrayList ObtenerFamiliares (ETipoDocumento tipoDoc, int nroDoc)
70         {
71                 ArrayList salida = new ArrayList ();
72                 /* Afiliado a = GETAFILIADO(tipoDoc, nroDoc
73                  * foreach(Solicitante s in _solicitantes) 
74                  *      if (s.Titular == a)
75                  *              salida.Add (s)
76                  **/
77                 return salida;
78         }
79
80         public Afiliado AfiliarTitular (ETipoDocumento tipoDoc, int nroDoc, Plan plan) 
81         {
82                 /* Obtengo el Solicitante asi luego lo borro */
83                 Solicitante s = new Solicitante (tipoDoc, nroDoc, null, null);
84                 s.Pendiente = false;
85                 s.Promotor = null;
86                 ArrayList a = GetSolicitantes (s);
87                 s = (Solicitante)a[0];
88
89                 if (s == null)
90                         Console.WriteLine ("ERROR");
91
92                 /* Creo el afiliado */
93                 Afiliado afil = new Afiliado (s, plan, DateTime.Now);
94
95                 /* Agrego el afiliado */
96                 Db.set (afil);
97                 /* Saco el solicitante */
98                 Db.delete (s);
99                 return afil;
100         }
101
102         
103         public Afiliado AfiliarFamiliar (Afiliado AfiTi, ETipoDocumento tipoDoc, int nroDoc, Plan plan) 
104         {
105                 /* Obtengo el Solicitante asi luego lo borro */
106                 Solicitante s = new Solicitante (tipoDoc, nroDoc, null, null);
107                 s.Pendiente = false;
108                 s.Promotor = null;
109                 ArrayList a = GetSolicitantes (s);
110                 s = (Solicitante)a[0];
111
112                 if (s == null)
113                         Console.WriteLine ("ERROR");
114
115                 /* Creo el afiliado */
116                 Afiliado afil = new Afiliado (s, plan, DateTime.Now);
117                 afil.Titular = AfiTi;
118
119                 /* Agrego el afiliado */
120                 Db.set (afil);
121                 /* Saco el solicitante */
122                 Db.delete (s);
123                 return afil;
124         }
125
126         public ArrayList Buscar (ETipoDocumento tipoDoc, int nroDoc)
127         {
128                 ArrayList salida = new ArrayList ();
129                 /* Hacer busqueda */
130                 return salida;
131         }
132
133         public void EstablecerPendiente() {}
134         public void Visitado () {}
135         public void EliminarSolicitante () {}
136
137         public bool ExisteSolicitante (ETipoDocumento tipoDoc, int nroDoc)
138         {
139                 Solicitante c = new Solicitante (tipoDoc, nroDoc, null, null);
140                 
141                 bool existe = false;
142                 try {
143                         //do something with Db4o
144                         ObjectSet result = Db.get(c);
145             if (result.next() != null)
146                                 existe = true;
147                 }
148                 catch (Exception e) {
149                         Console.WriteLine (e);
150                 }
151                 return existe;
152         }
153
154         public void AgregarSolicitante (
155                 ETipoDocumento tipoDoc, int nroDoc, string nombre, string apellido, string email,
156                 DateTime fechaNac, string calle, int numero, int piso, string dpto, string telefono,
157                 ESexo sexo, string disponibilidad, int cantidadfamiliares, string observaciones
158                 )
159         {
160                 Solicitante s = new Solicitante (tipoDoc, nroDoc, nombre, apellido);
161                 s.EMail = email;
162                 s.FechaNacimiento = fechaNac;
163                 s.Sexo = sexo;
164                 s.Disponibilidad = disponibilidad;
165                 s.Familiares = cantidadfamiliares;
166                 s.Observaciones = observaciones;
167                 s.Pendiente = true;
168                 s.Promotor = null;
169
170                 /* La direccion */
171                 SDireccion d = new SDireccion ();
172                 d.Calle = calle;
173                 d.Numero = numero;
174                 d.Piso = piso;
175                 d.Departamento = dpto;
176                 d.CodigoPostal = "";
177                 d.Provincia = EProvincia.RIO_NEGRO;
178                 d.Telefono = telefono;
179
180                 s.Direccion = d;
181
182                 SaveSolicitante (s);
183         }
184
185         public void EliminarAfiliado () {}
186         public void ModificarAfiliado () {}
187                 
188         private bool SaveAfiliado (Afiliado a)
189         {
190                 /* Salva en la DB */
191                 return true;
192         }
193
194         public bool SaveSolicitante (Solicitante s)
195         {
196                 try {
197                         //do something with db4o
198                         Db.set (s);
199                 }
200                 catch (Exception e) {
201                         Console.WriteLine (e);
202                 }
203                 return true;
204         }
205
206         public Solicitante GetSolicitante (ETipoDocumento tipoDoc, int nroDoc)
207         {
208                 Solicitante s = new Solicitante (tipoDoc, nroDoc, null, null);
209
210                 ArrayList lst = GetSolicitantes (s);
211
212                 if (lst.Count == 0)
213                         return null;
214
215                 return (Solicitante)lst[0];
216         }
217
218         public ArrayList GetSolicitantes (Solicitante s)
219         {
220                 ArrayList lst = new ArrayList ();
221                 try {
222                         ObjectSet result = Db.get(s);
223                         if (result == null)
224                                 return lst;
225         
226                         while ((s = (Solicitante)result.next ()) != null)       {
227                                 lst.Add (s);
228                         }
229                 }
230                 catch (Exception e) {
231                         Console.WriteLine (e);
232                 }
233                 return lst;
234         }
235         
236         public void AsociarPromotor (ETipoDocumento tipoDoc, int nroDoc, int promotor)
237         {
238                 try {
239                         Solicitante s = GetSolicitante (tipoDoc, nroDoc);
240
241                         Promotor p = new Promotor (ETipoDocumento.DNI, 12345678, "123", "123");
242                         s.Promotor = p;
243                         s.Pendiente = false;
244                         SaveSolicitante (s);
245                 }
246                 catch (Exception e) {
247                         Console.WriteLine (e);
248                 }
249         }
250
251 }
252
253 }
254 }
255