]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blobdiff - demo/src/Vistas/MantenerPlanes.cs
El sueño me gana... mañana sigo con RyC
[z.facultad/75.10/miklolife.git] / demo / src / Vistas / MantenerPlanes.cs
index e7c139c4a6354460622ab25274cf43775a94c110..1183a40c7d5202f8d1724230a18d453e381a9d9d 100644 (file)
@@ -6,6 +6,8 @@ using Glade;
 
 using Controlador.Afiliacion;
 using Dominio.Afiliados;
+using Dominio.Autorizaciones;
+using Dominio.Planes;
 using Dominio;
 
 public class VMantenerPlanes
@@ -29,38 +31,38 @@ public class VMantenerPlanes
        [Widget] SpinButton limite_anual;
        [Widget] RadioButton tipo_auth;
 
+       PlanesController planc;
+
        public VMantenerPlanes ()
        {
                xml = new Glade.XML (null, "mantener_planes.glade", "mantener_planes", null);
                xml.Autoconnect (this);
 
-               ListStore m = new ListStore (typeof(string), typeof(float), typeof(int));
+               ListStore m = new ListStore (typeof(string), typeof(float), typeof(float));
                lista.Model = m;
                lista.HeadersVisible = true;
                lista.AppendColumn ("Descripción", new CellRendererText (), "text", 0);
                lista.AppendColumn ("Categoría", new CellRendererText (), "text", 1);
                lista.AppendColumn ("Permanencia Mínima", new CellRendererText (), "text", 2);
-       
-               TreeIter nuevo = m.Append ();
-       
-               m.SetValue (nuevo, 0, "Neo 210");
-               m.SetValue (nuevo, 1, 1.0f);
-               m.SetValue (nuevo, 2, 1);
-       
-               nuevo = m.Append ();
-               m.SetValue (nuevo, 0, "Neo 310");
-               m.SetValue (nuevo, 1, 2.0f);
-               m.SetValue (nuevo, 2, 2);
-
-               nuevo = m.Append ();
-               m.SetValue (nuevo, 0, "Neo 410");
-               m.SetValue (nuevo, 1, 3.0f);
-               m.SetValue (nuevo, 2, 4);
-       
-               nuevo = m.Append ();
-               m.SetValue (nuevo, 0, "Ejecutive 510");
-               m.SetValue (nuevo, 1, 4.0f);
-               m.SetValue (nuevo, 2, 3);
+
+               CargarPlanes ();
+       }
+
+       private void CargarPlanes ()
+       {
+               ListStore store = (ListStore)lista.Model;
+               store.Clear ();
+
+               planc = new PlanesController ();
+               ArrayList lst = planc.ObtenerPlanesVigentes ();
+               foreach (Plan p in lst) {
+                       TreeIter iter = store.Append ();
+                       store.SetValue (iter, 0, p.Descripcion);
+                       store.SetValue (iter, 1, p.Categoria);
+                       store.SetValue (iter, 2, p.PermanenciaMinima);
+               }
+
+               planc.Dispose ();
        }
 
        public void OnDialogResponse (object o, ResponseArgs args)
@@ -83,6 +85,8 @@ public class VMantenerPlanes
                Dialog w = (Dialog)alta_plan_xml.GetWidget ("alta_plan");
                w.Run ();
                w.Destroy ();
+
+               CargarPlanes ();
        }
 
        public void OnAltaPlan (object o, ResponseArgs args)
@@ -90,7 +94,36 @@ public class VMantenerPlanes
                if (args.ResponseId == ResponseType.Cancel)
                        return; 
        
+               
+               string desc = descripcion.Text;
+               float cat = (float)categoria.Value;
+               int perma = permanencia_minima.ValueAsInt;
+
+               planc = new PlanesController ();
+               planc.CrearPlan (desc, cat, perma);
+               TreeModel model = coberturas.Model;
+
+               model.Foreach (AgregarCoberturaAlPlan);
+
+               planc.CommitPlan ();
+               planc.Dispose ();
+       }
        
+       bool AgregarCoberturaAlPlan (TreeModel model, TreePath path, TreeIter iter)
+       {
+               int codprestador = (int)model.GetValue (iter, 0);
+               float carencia = (float)model.GetValue (iter, 1);
+               float percent = (float)model.GetValue (iter, 2);
+               int limite = (int)model.GetValue (iter, 3);
+               string t = (string)model.GetValue (iter, 4);
+               ETipoAutorizacion tipo;
+               if (t.Equals ("Manual"))
+                       tipo = ETipoAutorizacion.MANUAL;
+               else
+                       tipo = ETipoAutorizacion.AUTOMATICA;
+
+               planc.AgregarCobertura (codprestador, carencia, percent, limite, tipo);
+               return true;
        }
 
        public void OnProperties (object o, EventArgs args)