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