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