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