]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blob - demo/src/Vistas/RegistrarVisitas.cs
* Pedido de autorizacion manual completo con todos sus cuadros de busqueda.
[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                 bool error = false;
128                 if (familiares > 0) {
129                         for (int i=0; i<familiares; i++) {
130                                 error = AgregarFamiliar (i+1, familiares, tipoDoc, nroDoc, c);
131                         }
132                 }
133
134                 if (!error) {
135                         c.Visitado (tipoDoc, nroDoc);
136                         store.Remove (ref iter);
137                 }
138
139                 c.Dispose ();
140         }
141
142         private bool AgregarFamiliar (int n, int total, ETipoDocumento tipo, int nro, RegistrarVisitasController c)
143         {
144                 VAgregarFamiliar w = new VAgregarFamiliar (n, total, tipo, nro, c);
145                 if (w.Run () == true) {
146                         MessageDialog md = new MessageDialog (null, 
147                                 DialogFlags.DestroyWithParent,
148                                 MessageType.Error, 
149                                 ButtonsType.Close, "No se pudo agregar el familiar!.");
150
151                         md.Run ();
152                         md.Destroy();
153                         return true;
154                 }
155                 return false;
156         }
157
158         public void OnSeleccionarFechaClicked (object o, EventArgs args)
159         {
160                 CalendarDialog d;
161                 if (fechaNac.Text.Equals (""))
162                         d = new CalendarDialog ();
163                 else
164                         d = new CalendarDialog (fechaNac.Text);
165                 
166                 int response;
167                 
168                 response = d.Run();
169                 if (response == -3)
170                         fechaNac.Text = d.Date.ToLongDateString ();
171                 d.Destroy ();
172         }
173
174         public void Run ()
175         {
176                 Dialog w = (Dialog)xml.GetWidget ("registrar_visitas");
177                 w.Run ();
178                 w.Destroy ();
179         }
180 }
181