]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blob - carpeta/disenio_grafico/src/Vistas/EmitirHojeDeRuta.cs
me fui a dormir ...
[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
89         public void OnAgregarClicked (object o, EventArgs args)
90         {
91                 /* Obtengo el TreeIter seleccionado de disponibles */
92                 TreeSelection fromSel = disponibles.Selection;
93                 TreeIter iter;
94                 TreeModel model;
95
96                 if (fromSel.GetSelected (out model, out iter)) {
97                         ListStore store1 = (ListStore)disponibles.Model;
98                         ListStore store2 = (ListStore)hojaderuta.Model;
99                         TreeIter nuevo = store2.Append ();
100         
101                         for(int i=0; i<4; i++)
102                                 store2.SetValue (nuevo, i, store1.GetValue (iter, i));
103                         store1.Remove (ref iter);
104                 }
105         }
106
107         public void OnBorrarClicked (object o, EventArgs args)
108         {
109                 /* Obtengo el TreeIter seleccionado de disponibles */
110                 TreeSelection fromSel = hojaderuta.Selection;
111                 TreeIter iter;
112                 TreeModel model;
113
114                 if (fromSel.GetSelected (out model, out iter)) {
115                         ListStore store1 = (ListStore)hojaderuta.Model;
116                         ListStore store2 = (ListStore)disponibles.Model;
117                         TreeIter nuevo = store2.Append ();
118         
119                         for(int i=0; i<4; i++)
120                                 store2.SetValue (nuevo, i, store1.GetValue (iter, i));
121                         store1.Remove (ref iter);
122                 }
123         }
124
125         public void OnPromotorSelected (object o, EventArgs args)
126         {
127                 AfiliadoSolicitanteController c = new AfiliadoSolicitanteController ();
128
129                 ArrayList sols = c.ObtenerSolicitantesPendientes ();
130                 ListStore store = (ListStore)disponibles.Model;
131
132                 foreach (Solicitante s in sols) {
133                         TreeIter iter = store.AppendValues (s.TipoDocumento.ToString (), s.NroDocumento, s.Nombre, s.Apellido);
134                         Console.WriteLine ("-- {0}", s.Promotor);
135                 }
136         }
137
138         public void Run ()
139         {
140                 Dialog w = (Dialog)xml.GetWidget ("emitir_hoja_de_ruta");
141                 w.Run ();
142                 w.Destroy ();
143         }
144 }
145