]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blob - carpeta/disenio_grafico/src/Vistas/EmitirHojeDeRuta.cs
* Implemento IDisposable y arreglo el codigo
[z.facultad/75.10/miklolife.git] / carpeta / disenio_grafico / src / Vistas / EmitirHojeDeRuta.cs
1
2
3 using System;
4 using System.Collections;
5 using Gtk;
6 using Glade;
7
8 using Controlador.Afiliacion;
9 using Dominio.Afiliados;
10 using Dominio;
11
12 public class VEmitirHojaDeRuta 
13 {
14         Dialog wIngresarSolicitud;
15         Glade.XML xml;
16
17         [Widget] ComboBox promotores;
18         [Widget] TreeView disponibles;
19         [Widget] TreeView hojaderuta;
20
21         public VEmitirHojaDeRuta ()
22         {
23                 xml = new Glade.XML (null, "emitir_hoja_de_ruta.glade", "emitir_hoja_de_ruta", null);
24                 xml.Autoconnect (this);
25
26                 /* Creo los modelos para los TreeView y el ComboBox 
27                                                     Tipo Doc        NroDoc         Apellido       Nombre     */
28                 disponibles.Model = new ListStore (typeof(string), typeof(int), typeof (string), typeof (string));
29                 hojaderuta.Model = new ListStore (typeof(string), typeof(int), typeof (string), typeof (string));
30
31                 /* Columnas */
32                 disponibles.HeadersVisible = true;
33                 disponibles.AppendColumn ("Tipo Doc.", new CellRendererText (), "text", 0);
34                 disponibles.AppendColumn ("Nro Doc.", new CellRendererText (), "text", 1);
35                 disponibles.AppendColumn ("Apellido", new CellRendererText (), "text", 2);
36                 disponibles.AppendColumn ("Nombre", new CellRendererText (), "text", 3);
37                 hojaderuta.HeadersVisible = true;
38                 hojaderuta.AppendColumn ("Tipo Doc.", new CellRendererText (), "text", 0);
39                 hojaderuta.AppendColumn ("Nro Doc.", new CellRendererText (), "text", 1);
40                 hojaderuta.AppendColumn ("Apellido", new CellRendererText (), "text", 2);
41                 hojaderuta.AppendColumn ("Nombre", new CellRendererText (), "text", 3);
42                 
43                 xml.GetWidget ("emitir_hoja_de_ruta").SetSizeRequest (500, 420);
44
45                 /* Cargo promotores */
46                 ListStore l = (ListStore)promotores.Model;
47                 l.Clear ();
48                 for(int i=0; i<10; i++)
49                         l.AppendValues (String.Format ("Promotor {0}", i));
50         }
51
52         public void OnDialogResponse (object o, ResponseArgs args)
53         {
54                 if (args.ResponseId == ResponseType.Cancel)
55                         return; 
56
57                 /* Armo la hoja de ruta */
58                 /* TODO : No tengo de donde sacarlo, creo uno pedorro para test */
59                 int promotor = 0;
60         
61                 /* Veo si hay items en la hoja de ruta */
62                 ListStore store = (ListStore)hojaderuta.Model;
63                 TreeIter iter;
64                 if (store.GetIterFirst (out iter) == false) {
65                         /* Lista vacia! .. Alarm! Alarm! :) */
66                         MessageDialog md = new MessageDialog (null, DialogFlags.DestroyWithParent,
67                                 MessageType.Error, ButtonsType.Close, "La hoja de ruta está vacía.");
68
69                         md.Run ();
70                         md.Destroy ();
71                         return;
72                 }
73
74                 AfiliadoSolicitanteController c = new AfiliadoSolicitanteController ();
75                 
76                 ETipoDocumento tipoDoc;
77                 int nroDoc;
78                 tipoDoc = (ETipoDocumento)Enum.Parse (typeof (ETipoDocumento), (string)store.GetValue (iter, 0), true);
79                 nroDoc = (int)store.GetValue (iter, 1);
80                 c.AsociarPromotor (tipoDoc, nroDoc, promotor);
81
82                 while (store.IterNext (ref iter) == true) {
83                         tipoDoc = (ETipoDocumento)Enum.Parse (typeof (ETipoDocumento), (string)store.GetValue (iter, 0), true);
84                         nroDoc = Int32.Parse ((string)store.GetValue (iter, 1));
85                         c.AsociarPromotor (tipoDoc, nroDoc, promotor);
86                 }
87
88                 c.Dispose ();
89         }
90
91         public void OnAgregarClicked (object o, EventArgs args)
92         {
93                 /* Obtengo el TreeIter seleccionado de disponibles */
94                 TreeSelection fromSel = disponibles.Selection;
95                 TreeIter iter;
96                 TreeModel model;
97
98                 if (fromSel.GetSelected (out model, out iter)) {
99                         ListStore store1 = (ListStore)disponibles.Model;
100                         ListStore store2 = (ListStore)hojaderuta.Model;
101                         TreeIter nuevo = store2.Append ();
102         
103                         for(int i=0; i<4; i++)
104                                 store2.SetValue (nuevo, i, store1.GetValue (iter, i));
105                         store1.Remove (ref iter);
106                 }
107         }
108
109         public void OnBorrarClicked (object o, EventArgs args)
110         {
111                 /* Obtengo el TreeIter seleccionado de disponibles */
112                 TreeSelection fromSel = hojaderuta.Selection;
113                 TreeIter iter;
114                 TreeModel model;
115
116                 if (fromSel.GetSelected (out model, out iter)) {
117                         ListStore store1 = (ListStore)hojaderuta.Model;
118                         ListStore store2 = (ListStore)disponibles.Model;
119                         TreeIter nuevo = store2.Append ();
120         
121                         for(int i=0; i<4; i++)
122                                 store2.SetValue (nuevo, i, store1.GetValue (iter, i));
123                         store1.Remove (ref iter);
124                 }
125         }
126
127         public void OnPromotorSelected (object o, EventArgs args)
128         {
129                 AfiliadoSolicitanteController c = new AfiliadoSolicitanteController ();
130
131                 ArrayList sols = c.ObtenerSolicitantesPendientes ();
132                 ListStore store = (ListStore)disponibles.Model;
133
134                 foreach (Solicitante s in sols) {
135                         TreeIter iter = store.AppendValues (s.TipoDocumento.ToString (), s.NroDocumento, s.Nombre, s.Apellido);
136                         Console.WriteLine ("-- {0}", s.Promotor);
137                 }
138
139                 c.Dispose ();
140         }
141
142         public void Run ()
143         {
144                 Dialog w = (Dialog)xml.GetWidget ("emitir_hoja_de_ruta");
145                 w.Run ();
146                 w.Destroy ();
147         }
148 }
149