]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blob - demo/src/Vistas/MantenerPlanes.cs
272424d97055b90908b6298eb5401d5954622fae
[z.facultad/75.10/miklolife.git] / demo / src / Vistas / MantenerPlanes.cs
1
2 using System;
3 using System.Collections;
4 using Gtk;
5 using Glade;
6
7 using Controlador.Afiliacion;
8 using Dominio.Afiliados;
9 using Dominio.Autorizaciones;
10 using Dominio.Planes;
11 using Dominio;
12
13 public class VMantenerPlanes
14 {
15         Dialog wIngresarSolicitud;
16         Glade.XML xml;
17         Glade.XML alta_plan_xml;
18
19         [Widget] TreeView lista;
20
21         /* Alta Plan Window */
22         [Widget] Entry descripcion;
23         [Widget] SpinButton categoria;
24         [Widget] SpinButton permanencia_minima;
25         [Widget] TreeView coberturas;
26
27         /* Alta Cobertura */
28         [Widget] Entry codigo_prestacion;
29         [Widget] Entry carencia;
30         [Widget] SpinButton cobertura;
31         [Widget] SpinButton limite_anual;
32         [Widget] RadioButton tipo_auth;
33
34         PlanesController planc;
35
36         public VMantenerPlanes ()
37         {
38                 xml = new Glade.XML (null, "mantener_planes.glade", "mantener_planes", null);
39                 xml.Autoconnect (this);
40
41                 ListStore m = new ListStore (typeof(int), typeof(string), typeof(float), typeof(float));
42                 lista.Model = m;
43                 lista.HeadersVisible = true;
44                 lista.AppendColumn ("Código", new CellRendererText (), "text", 0);
45                 lista.AppendColumn ("Descripción", new CellRendererText (), "text", 1);
46                 lista.AppendColumn ("Categoría", new CellRendererText (), "text", 2);
47                 lista.AppendColumn ("Permanencia Mínima", new CellRendererText (), "text", 3);
48
49                 CargarPlanes ();
50         }
51
52         private void CargarPlanes ()
53         {
54                 ListStore store = (ListStore)lista.Model;
55                 store.Clear ();
56
57                 planc = new PlanesController ();
58                 ArrayList lst = planc.ObtenerPlanesVigentes ();
59                 foreach (Plan p in lst) {
60                         TreeIter iter = store.Append ();
61                         store.SetValue (iter, 0, p.Codigo);
62                         store.SetValue (iter, 1, p.Descripcion);
63                         store.SetValue (iter, 2, p.Categoria);
64                         store.SetValue (iter, 3, p.PermanenciaMinima);
65                 }
66
67                 planc.Dispose ();
68         }
69
70         public void OnDialogResponse (object o, ResponseArgs args)
71         {
72         }
73
74         public void OnAdd (object o, EventArgs args)
75         {
76                 alta_plan_xml = new Glade.XML (null, "mantener_planes.glade", "alta_plan", null);
77                 alta_plan_xml.Autoconnect (this);
78         
79                 coberturas.Model = new ListStore (typeof(int), typeof(float), typeof (float), typeof (int), typeof(string));
80                 coberturas.HeadersVisible = true;
81                 coberturas.AppendColumn ("Prestacion", new CellRendererText (), "text", 0);
82                 coberturas.AppendColumn ("Carencia", new CellRendererText (), "text", 1);
83                 coberturas.AppendColumn ("Cobertura", new CellRendererText (), "text", 2);
84                 coberturas.AppendColumn ("Limite Anual", new CellRendererText (), "text", 3);
85                 coberturas.AppendColumn ("Tipo", new CellRendererText (), "text", 4);
86                         
87                 Dialog w = (Dialog)alta_plan_xml.GetWidget ("alta_plan");
88                 w.Run ();
89                 w.Destroy ();
90
91                 CargarPlanes ();
92         }
93
94         private void CargarCoberturas (int codplan)
95         {
96                 ListStore store = (ListStore)coberturas.Model;
97                 store.Clear ();
98
99                 planc = new PlanesController ();
100                 ArrayList lst = planc.ObtenerCoberturas (codplan);
101
102                 foreach (Cobertura c in lst) {
103                         TreeIter iter = store.Append ();
104                         store.SetValue (iter, 0, c.Prestacion.Codigo);
105                         store.SetValue (iter, 1, c.Carencia);
106                         store.SetValue (iter, 2, c.Porcentaje);
107                         store.SetValue (iter, 3, c.LimiteAnual);
108                         if (c.TipoAutorizacion == ETipoAutorizacion.MANUAL)
109                                 store.SetValue (iter, 4, "Manual");
110                         else
111                                 store.SetValue (iter, 4, "Automatica");
112                 }
113
114                 planc.Dispose ();
115         }
116
117         public void OnAltaPlan (object o, ResponseArgs args)
118         {
119                 if (args.ResponseId == ResponseType.Cancel)
120                         return; 
121         
122                 
123                 string desc = descripcion.Text;
124                 float cat = (float)categoria.Value;
125                 int perma = permanencia_minima.ValueAsInt;
126
127                 planc = new PlanesController ();
128                 planc.CrearPlan (desc, cat, perma);
129                 TreeModel model = coberturas.Model;
130
131                 model.Foreach (AgregarCoberturaAlPlan);
132
133                 planc.CommitPlan ();
134                 planc.Dispose ();
135         }
136         
137         bool AgregarCoberturaAlPlan (TreeModel model, TreePath path, TreeIter iter)
138         {
139                 int codprestador = (int)model.GetValue (iter, 0);
140                 float carencia = (float)model.GetValue (iter, 1);
141                 float percent = (float)model.GetValue (iter, 2);
142                 int limite = (int)model.GetValue (iter, 3);
143                 string t = (string)model.GetValue (iter, 4);
144                 ETipoAutorizacion tipo;
145                 if (t.Equals ("Manual"))
146                         tipo = ETipoAutorizacion.MANUAL;
147                 else
148                         tipo = ETipoAutorizacion.AUTOMATICA;
149
150                 planc.AgregarCobertura (codprestador, carencia, percent, limite, tipo);
151                 Console.WriteLine ("Agrege una cobertura");
152                 return false;
153         }
154
155         public void OnProperties (object o, EventArgs args)
156         {
157                 alta_plan_xml = new Glade.XML (null, "mantener_planes.glade", "alta_plan", null);
158                 alta_plan_xml.Autoconnect (this);
159         
160                 coberturas.Model = new ListStore (typeof(int), typeof(float), typeof (float), typeof (int), typeof(string));
161                 coberturas.HeadersVisible = true;
162                 coberturas.AppendColumn ("Prestacion", new CellRendererText (), "text", 0);
163                 coberturas.AppendColumn ("Carencia", new CellRendererText (), "text", 1);
164                 coberturas.AppendColumn ("Cobertura", new CellRendererText (), "text", 2);
165                 coberturas.AppendColumn ("Limite Anual", new CellRendererText (), "text", 3);
166                 coberturas.AppendColumn ("Tipo", new CellRendererText (), "text", 4);
167                 
168                 TreeSelection sel = lista.Selection;
169                 TreeModel model;
170                 TreeIter iter;
171
172                 sel.GetSelected (out model, out iter);
173                 int codplan = (int)model.GetValue (iter, 0);
174
175                 CargarCoberturas (codplan);     
176                 Dialog w = (Dialog)alta_plan_xml.GetWidget ("alta_plan");
177                 w.Run ();
178                 w.Destroy ();
179
180                 CargarPlanes ();
181         }
182         
183         public void OnDelete (object o, EventArgs args)
184         {
185         }
186
187         public void OnAddCobertura (object o, EventArgs args)
188         {
189                 alta_plan_xml = new Glade.XML (null, "mantener_planes.glade", "alta_cobertura", null);
190                 alta_plan_xml.Autoconnect (this);
191         
192                 Dialog w = (Dialog)alta_plan_xml.GetWidget ("alta_cobertura");
193                 if (w.Run () != -6) {
194                         ListStore store = (ListStore)coberturas.Model;
195                         TreeIter nuevo = store.Append ();
196         
197                         store.SetValue (nuevo, 0, Int32.Parse (codigo_prestacion.Text));
198                         store.SetValue (nuevo, 1, (float)Double.Parse (carencia.Text));
199                         store.SetValue (nuevo, 2, (float)cobertura.Value);
200                         store.SetValue (nuevo, 3, limite_anual.ValueAsInt);
201                         if (tipo_auth.Active == true)
202                                 store.SetValue (nuevo, 4, "Manual");
203                         else
204                                 store.SetValue (nuevo, 4, "Automatica");
205                 }
206                 w.Destroy ();
207         }
208
209         public void OnBuscarPrestacion (object o, EventArgs args)
210         {
211                 VBuscarPrestacion v = new VBuscarPrestacion ();
212                 string r = v.Run ();
213
214                 if (r != null) {
215                         codigo_prestacion.Text = r;
216                 }
217         }
218
219         public void Run ()
220         {
221                 Dialog w = (Dialog)xml.GetWidget ("mantener_planes");
222                 w.Run ();
223                 w.Destroy ();
224         }
225 }
226