]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blob - demo/src/Vistas/AgregarAfiliado.cs
Agrego material de estudio.
[z.facultad/75.10/miklolife.git] / demo / src / Vistas / AgregarAfiliado.cs
1
2 using System;
3 using System.Collections;
4 using Gtk;
5 using Glade;
6
7 using Controlador.Afiliacion;
8 using Dominio.Afiliados;
9 using Dominio;
10
11 public class VAgregarAfiliado
12 {
13         Glade.XML xml;
14         [Widget] TreeView lista;
15
16         public VAgregarAfiliado ()
17         {
18                 xml = new Glade.XML (null, "agregar_afiliado.glade", "agregar_afiliado", null);
19                 xml.Autoconnect (this);
20
21                 TreeStore store = new TreeStore (typeof(string), typeof(int), typeof (string), typeof (string));
22                 lista.Model = store;
23
24                 /* Columnas */
25                 lista.HeadersVisible = true;
26                 lista.AppendColumn ("Tipo Doc.", new CellRendererText (), "text", 0);
27                 lista.AppendColumn ("Nro Doc.", new CellRendererText (), "text", 1);
28                 lista.AppendColumn ("Apellido", new CellRendererText (), "text", 2);
29                 lista.AppendColumn ("Nombre", new CellRendererText (), "text", 3);
30
31                 CargarParaAfiliar ();
32         }
33
34         private void CargarParaAfiliar ()
35         {
36                 TreeStore store = (TreeStore)lista.Model;
37                 ArrayList afiliados;
38                 AfiliadoSolicitanteController c = new AfiliadoSolicitanteController ();
39                 afiliados = c.ObtenerSolicitantesAfiliar ();
40
41                 store.Clear ();
42                 foreach (Solicitante s in afiliados) {
43                         TreeIter iter = store.AppendValues (s.TipoDocumento.ToString (), s.NroDocumento, s.Nombre, s.Apellido);
44                         CargarFamiliaresDe (s, iter, c);
45                 }
46
47                 c.Dispose ();
48         }
49
50         private void CargarFamiliaresDe (Solicitante spadre, TreeIter padre, AfiliadoSolicitanteController c)
51         {
52                 TreeStore store = (TreeStore)lista.Model;
53                 ArrayList familiares = c.ObtenerFamiliaresAfiliar (spadre);
54
55                 foreach (Solicitante s in familiares) {
56                         TreeIter iter = store.AppendValues (padre, s.TipoDocumento.ToString (), s.NroDocumento, s.Nombre, s.Apellido);
57                 }
58         }
59
60         public void OnAfiliar (object o, EventArgs args)
61         {
62                 TreeIter iter;
63                 TreeModel model; 
64                 TreeSelection sel = lista.Selection;
65
66                 
67                 if (sel.GetSelected(out model, out iter) == true) {
68                         ETipoDocumento tipoDoc = (ETipoDocumento)Enum.Parse (typeof (ETipoDocumento), (string)model.GetValue (iter, 0), true);
69                         int nroDoc = (int)model.GetValue (iter, 1);
70
71                         AfiliadoSolicitanteController c = new AfiliadoSolicitanteController ();
72                         Afiliado a = c.ExisteAfiliado (tipoDoc, nroDoc);
73
74                         if (a == null) {
75                                 Afiliar (model, iter, c);
76                         } else {
77                                 Console.WriteLine ("Lo borro o lo reactivo!");
78                         }
79
80                         c.Dispose ();
81                 }
82                 CargarParaAfiliar ();
83         }
84
85         private void Afiliar (TreeModel model, TreeIter parent, AfiliadoSolicitanteController c)
86         {
87                 ETipoDocumento tipoDoc = (ETipoDocumento)Enum.Parse (typeof (ETipoDocumento), (string)model.GetValue (parent, 0), true);
88                 int nroDoc = (int)model.GetValue (parent, 1);
89
90                 /* Selecciono plan */
91                 VBuscarPlan v = new VBuscarPlan ();
92                 string plan = v.Run ();
93
94                 /* Afilio el titular */
95                 Afiliado AfiTitular = c.AfiliarTitular (tipoDoc, nroDoc, Int32.Parse (plan));
96                 Console.WriteLine ("Titular afiliado!! {0} {1}", tipoDoc, nroDoc);
97
98                 /* Obtengo el primer familiar, si es que existe */
99                 TreeIter iter;
100                 if (model.IterChildren (out iter, parent) == true) {
101                         tipoDoc = (ETipoDocumento)Enum.Parse (typeof (ETipoDocumento), (string)model.GetValue (iter, 0), true);
102                         nroDoc = (int)model.GetValue (iter, 1);
103
104                         Console.WriteLine ("Titular familiar!! {0} {1}", tipoDoc, nroDoc);
105                         while (model.IterNext (ref iter) == true) {
106                                 tipoDoc = (ETipoDocumento)Enum.Parse (typeof (ETipoDocumento), (string)model.GetValue (iter, 0), true);
107                                 nroDoc = (int)model.GetValue (iter, 1);
108
109                                 Console.WriteLine ("Titular familiar!! {0} {1}", tipoDoc, nroDoc);
110                                 c.AfiliarFamiliar (AfiTitular, tipoDoc, nroDoc, null);
111                         }
112                 }
113         }
114
115         public void Run ()
116         {
117                 Dialog w = (Dialog)xml.GetWidget ("agregar_afiliado");
118                 w.Run ();
119                 w.Destroy ();
120         }
121 }
122