]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blob - demo/src/Controlador/AfiliadoSolicitanteController.cs
Para guille :)
[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 Afiliado ExisteAfiliado (int codigo)
61         {
62                 Afiliado afil = new Afiliado (ETipoDocumento.NONE, 0);
63                 afil.Codigo = codigo;
64                 ObjectSet result = Db.get (afil);
65                 afil = (Afiliado)result.next ();
66
67                 return afil;
68         }
69
70         public ArrayList ObtenerFamiliares (ETipoDocumento tipoDoc, int nroDoc)
71         {
72                 ArrayList salida = new ArrayList ();
73                 /* Afiliado a = GETAFILIADO(tipoDoc, nroDoc
74                  * foreach(Solicitante s in _solicitantes) 
75                  *      if (s.Titular == a)
76                  *              salida.Add (s)
77                  **/
78                 return salida;
79         }
80
81         public Afiliado AfiliarTitular (ETipoDocumento tipoDoc, int nroDoc, int codplan) 
82         {
83                 /* Obtengo el Solicitante asi luego lo borro */
84                 Solicitante s = new Solicitante (tipoDoc, nroDoc, null, null);
85                 s.Pendiente = false;
86                 s.Promotor = null;
87                 ArrayList a = GetSolicitantes (s);
88                 s = (Solicitante)a[0];
89
90                 if (s == null)
91                         Console.WriteLine ("ERROR");
92
93                 Plan c = new Plan ();
94                 c.Codigo = codplan;
95                 ObjectSet r = Db.get (c);
96                 Plan plan = r.next () as Plan;
97
98                 /* Creo el afiliado */
99                 Afiliado afil = new Afiliado (s, plan, DateTime.Now);
100                 AutoIncrementable i = new AutoIncrementable ();
101                 afil.Codigo = i.NextAfiliado ();
102                 i.Dispose ();
103
104                 /* Agrego el afiliado */
105                 Db.set (afil);
106                 /* Saco el solicitante */
107                 Db.delete (s);
108                 return afil;
109         }
110
111         
112         public Afiliado AfiliarFamiliar (Afiliado AfiTi, ETipoDocumento tipoDoc, int nroDoc, Plan plan) 
113         {
114                 /* Obtengo el Solicitante asi luego lo borro */
115                 Solicitante s = new Solicitante (tipoDoc, nroDoc, null, null);
116                 s.Pendiente = false;
117                 s.Promotor = null;
118                 ArrayList a = GetSolicitantes (s);
119                 s = (Solicitante)a[0];
120
121                 if (s == null)
122                         Console.WriteLine ("ERROR");
123
124                 /* Creo el afiliado */
125                 Afiliado afil = new Afiliado (s, plan, DateTime.Now);
126                 afil.Titular = AfiTi;
127                 AutoIncrementable i = new AutoIncrementable ();
128                 afil.Codigo = i.NextAfiliado ();
129                 i.Dispose ();
130
131                 /* Agrego el afiliado */
132                 Db.set (afil);
133                 /* Saco el solicitante */
134                 Db.delete (s);
135                 return afil;
136         }
137
138         public ArrayList Buscar (ETipoDocumento tipoDoc, int nroDoc)
139         {
140                 ArrayList salida = new ArrayList ();
141                 /* Hacer busqueda */
142                 return salida;
143         }
144
145         public void EstablecerPendiente() {}
146         public void Visitado () {}
147         public void EliminarSolicitante () {}
148
149         public bool ExisteSolicitante (ETipoDocumento tipoDoc, int nroDoc)
150         {
151                 Solicitante c = new Solicitante (tipoDoc, nroDoc, null, null);
152                 
153                 bool existe = false;
154                 try {
155                         //do something with Db4o
156                         ObjectSet result = Db.get(c);
157             if (result.next() != null)
158                                 existe = true;
159                 }
160                 catch (Exception e) {
161                         Console.WriteLine (e);
162                 }
163                 return existe;
164         }
165
166         public void AgregarSolicitante (
167                 ETipoDocumento tipoDoc, int nroDoc, string nombre, string apellido, string email,
168                 DateTime fechaNac, string calle, int numero, int piso, string dpto, string telefono,
169                 ESexo sexo, string disponibilidad, int cantidadfamiliares, string observaciones
170                 )
171         {
172                 Solicitante s = new Solicitante (tipoDoc, nroDoc, nombre, apellido);
173                 s.EMail = email;
174                 s.FechaNacimiento = fechaNac;
175                 s.Sexo = sexo;
176                 s.Disponibilidad = disponibilidad;
177                 s.Familiares = cantidadfamiliares;
178                 s.Observaciones = observaciones;
179                 s.Pendiente = true;
180                 s.Promotor = null;
181
182                 /* La direccion */
183                 SDireccion d = new SDireccion ();
184                 d.Calle = calle;
185                 d.Numero = numero;
186                 d.Piso = piso;
187                 d.Departamento = dpto;
188                 d.CodigoPostal = "";
189                 d.Provincia = EProvincia.RIO_NEGRO;
190                 d.Telefono = telefono;
191
192                 s.Direccion = d;
193
194                 SaveSolicitante (s);
195         }
196
197         public void EliminarAfiliado () {}
198         public void ModificarAfiliado () {}
199                 
200         private bool SaveAfiliado (Afiliado a)
201         {
202                 /* Salva en la DB */
203                 return true;
204         }
205
206         public bool SaveSolicitante (Solicitante s)
207         {
208                 try {
209                         //do something with db4o
210                         Db.set (s);
211                 }
212                 catch (Exception e) {
213                         Console.WriteLine (e);
214                 }
215                 return true;
216         }
217
218         public Solicitante GetSolicitante (ETipoDocumento tipoDoc, int nroDoc)
219         {
220                 Solicitante s = new Solicitante (tipoDoc, nroDoc, null, null);
221
222                 ArrayList lst = GetSolicitantes (s);
223
224                 if (lst.Count == 0)
225                         return null;
226
227                 return (Solicitante)lst[0];
228         }
229
230         public ArrayList GetSolicitantes (Solicitante s)
231         {
232                 ArrayList lst = new ArrayList ();
233                 try {
234                         ObjectSet result = Db.get(s);
235                         if (result == null)
236                                 return lst;
237         
238                         while ((s = (Solicitante)result.next ()) != null)       {
239                                 lst.Add (s);
240                         }
241                 }
242                 catch (Exception e) {
243                         Console.WriteLine (e);
244                 }
245                 return lst;
246         }
247         
248         public void AsociarPromotor (ETipoDocumento tipoDoc, int nroDoc, int promotor)
249         {
250                 try {
251                         Solicitante s = GetSolicitante (tipoDoc, nroDoc);
252
253                         Promotor p = new Promotor (ETipoDocumento.DNI, 12345678, "123", "123");
254                         s.Promotor = p;
255                         s.Pendiente = false;
256                         SaveSolicitante (s);
257                 }
258                 catch (Exception e) {
259                         Console.WriteLine (e);
260                 }
261         }
262
263         public ArrayList BuscarAfiliados (ETipoDocumento tipoDoc, int nroDoc, int codigo, string apellido)
264         {
265                 Afiliado a = new Afiliado (codigo);
266                 a.TipoDocumento = tipoDoc;
267                 a.NroDocumento = nroDoc;
268                 a.Apellido = apellido;
269
270                 Query query = Db.query();
271                 query.constrain(typeof(Afiliado));
272                 if (codigo != 0)
273                         query.descend("_codigo").constrain(codigo);
274                 if (tipoDoc != ETipoDocumento.NONE)
275                         query.descend("_tipoDocumento").constrain(tipoDoc);
276                 if (nroDoc != 0)
277                         query.descend("_nroDocumento").constrain(nroDoc);
278                 if (apellido != null)
279                         query.descend("_apellido").constrain(apellido);
280
281                 ObjectSet result = query.execute ();
282                 return ObjectSetToArrayList (result);           
283         }
284         
285 }
286
287 }
288 }
289