]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blob - demo/src/Vistas/RegistrarVisitas.cs
Se especifica a mayor nivel de detalle.
[z.facultad/75.10/miklolife.git] / demo / src / Vistas / RegistrarVisitas.cs
1
2
3 using System;
4 using System.Collections;
5 using Gtk;
6 using Glade;
7
8 using Controlador;
9 using Controlador.Afiliacion;
10 using Dominio.Afiliados;
11 using Dominio;
12
13 public class VRegistrarVisitas
14 {
15         Glade.XML xml;
16
17         [Widget] TreeView visitas;
18         [Widget] Entry fechaNac;
19
20         public VRegistrarVisitas ()
21         {
22                 xml = new Glade.XML (null, "registrar_visitas.glade", "registrar_visitas", null);
23                 xml.Autoconnect (this);
24         
25                 RegistrarVisitasController c = new RegistrarVisitasController (null);
26         
27                 ArrayList l = c.ObtenerSolicitantesAsignados ();
28                 
29                 visitas.Model = new ListStore (typeof(string), typeof(int), typeof (string), typeof (string));
30                 
31                 visitas.HeadersVisible = true;
32                 visitas.AppendColumn ("Tipo Doc.", new CellRendererText (), "text", 0);
33                 visitas.AppendColumn ("Nro Doc.", new CellRendererText (), "text", 1);
34                 visitas.AppendColumn ("Apellido", new CellRendererText (), "text", 2);
35                 visitas.AppendColumn ("Nombre", new CellRendererText (), "text", 3);
36
37                 ListStore store = (ListStore)visitas.Model;
38                 foreach (Solicitante s in l) {
39                         TreeIter iter = store.AppendValues (s.TipoDocumento.ToString (), s.NroDocumento, s.Nombre, s.Apellido);
40                         Console.WriteLine ("Agregando {0}", s.Nombre);
41                 }
42                 c.Dispose ();
43         }
44
45         public void OnEstablecerPendiente (object o, EventArgs args)
46         {
47                 TreeSelection fromSel = visitas.Selection;
48                 TreeIter iter;
49                 TreeModel model;
50                 ListStore store = (ListStore)visitas.Model;
51
52                 if (fromSel.GetSelected (out model, out iter) == false) {
53                         /* Nada seleccionado */
54                         return;
55                 }
56                 ETipoDocumento tipoDoc;
57                 int nroDoc;
58                 tipoDoc = (ETipoDocumento)Enum.Parse (typeof (ETipoDocumento), (string)store.GetValue (iter, 0), true);
59                 nroDoc = (int)store.GetValue (iter, 1);
60
61                 RegistrarVisitasController c = new RegistrarVisitasController (null);
62                 c.EstablecerPendiente (tipoDoc, nroDoc);
63                 c.Dispose ();
64                 store.Remove (ref iter);
65         }
66         
67         public void OnEliminarSolicitante (object o, EventArgs args)
68         {
69                 TreeSelection fromSel = visitas.Selection;
70                 TreeIter iter;
71                 TreeModel model;
72                 ListStore store = (ListStore)visitas.Model;
73
74                 if (fromSel.GetSelected (out model, out iter) == false) {
75                         /* Nada seleccionado */
76                         return;
77                 }
78
79                 /* Confirmo la operacion */
80                 MessageDialog md = new MessageDialog (
81                         null, 
82                         DialogFlags.DestroyWithParent,
83                         MessageType.Question, 
84                         ButtonsType.YesNo, "Esta seguro de quere eliminar el solicitante?"
85                 );
86                      
87                 ResponseType result = (ResponseType)md.Run ();
88
89                 if (result == ResponseType.No) {
90                         md.Destroy ();
91                         return;
92                 }
93                 md.Destroy ();
94
95                 ETipoDocumento tipoDoc;
96                 int nroDoc;
97                 tipoDoc = (ETipoDocumento)Enum.Parse (typeof (ETipoDocumento), (string)store.GetValue (iter, 0), true);
98                 nroDoc = (int)store.GetValue (iter, 1);
99
100                 RegistrarVisitasController c = new RegistrarVisitasController (null);
101                 c.EliminarSolicitante (tipoDoc, nroDoc);
102                 c.Dispose ();
103
104                 store.Remove (ref iter);
105         }
106
107         public void OnAfiliar (object o, EventArgs args)
108         {
109                 TreeSelection fromSel = visitas.Selection;
110                 TreeIter iter;
111                 TreeModel model;
112                 ListStore store = (ListStore)visitas.Model;
113
114                 if (fromSel.GetSelected (out model, out iter) == false) {
115                         /* Nada seleccionado */
116                         return;
117                 }
118                 ETipoDocumento tipoDoc;
119                 int nroDoc;
120                 tipoDoc = (ETipoDocumento)Enum.Parse (typeof (ETipoDocumento), (string)store.GetValue (iter, 0), true);
121                 nroDoc = (int)store.GetValue (iter, 1);
122
123                 RegistrarVisitasController c = new RegistrarVisitasController (null);
124                 /* Obtengo la cantidad de familiares */
125                 int familiares = c.ObtenerCantidadFamiliares (tipoDoc, nroDoc);
126
127                 if (familiares > 0) {
128                         for (int i=0; i<familiares; i++) {
129                                 AgregarFamiliar (i+1, familiares);
130                         }
131                 }
132
133                 c.Dispose ();
134                 store.Remove (ref iter);
135         }
136
137         private void AgregarFamiliar (int n, int total)
138         {
139                 VAgregarFamiliar w = new VAgregarFamiliar (n, total);
140                 w.Run ();
141         }
142
143         public void OnSeleccionarFechaClicked (object o, EventArgs args)
144         {
145                 CalendarDialog d;
146                 if (fechaNac.Text.Equals (""))
147                         d = new CalendarDialog ();
148                 else
149                         d = new CalendarDialog (fechaNac.Text);
150                 
151                 int response;
152                 
153                 response = d.Run();
154                 if (response == -3)
155                         fechaNac.Text = d.Date.ToLongDateString ();
156                 d.Destroy ();
157         }
158
159         public void Run ()
160         {
161                 Dialog w = (Dialog)xml.GetWidget ("registrar_visitas");
162                 w.Run ();
163                 w.Destroy ();
164         }
165 }
166