]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blobdiff - demo/src/Vistas/MantenerPlanes.cs
Tuve que agregar ctor sin parametros en persona.
[z.facultad/75.10/miklolife.git] / demo / src / Vistas / MantenerPlanes.cs
index e7c139c4a6354460622ab25274cf43775a94c110..272424d97055b90908b6298eb5401d5954622fae 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,40 @@ 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(int), 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);
+               lista.AppendColumn ("Código", new CellRendererText (), "text", 0);
+               lista.AppendColumn ("Descripción", new CellRendererText (), "text", 1);
+               lista.AppendColumn ("Categoría", new CellRendererText (), "text", 2);
+               lista.AppendColumn ("Permanencia Mínima", new CellRendererText (), "text", 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.Codigo);
+                       store.SetValue (iter, 1, p.Descripcion);
+                       store.SetValue (iter, 2, p.Categoria);
+                       store.SetValue (iter, 3, p.PermanenciaMinima);
+               }
+
+               planc.Dispose ();
        }
 
        public void OnDialogResponse (object o, ResponseArgs args)
@@ -83,6 +87,31 @@ public class VMantenerPlanes
                Dialog w = (Dialog)alta_plan_xml.GetWidget ("alta_plan");
                w.Run ();
                w.Destroy ();
+
+               CargarPlanes ();
+       }
+
+       private void CargarCoberturas (int codplan)
+       {
+               ListStore store = (ListStore)coberturas.Model;
+               store.Clear ();
+
+               planc = new PlanesController ();
+               ArrayList lst = planc.ObtenerCoberturas (codplan);
+
+               foreach (Cobertura c in lst) {
+                       TreeIter iter = store.Append ();
+                       store.SetValue (iter, 0, c.Prestacion.Codigo);
+                       store.SetValue (iter, 1, c.Carencia);
+                       store.SetValue (iter, 2, c.Porcentaje);
+                       store.SetValue (iter, 3, c.LimiteAnual);
+                       if (c.TipoAutorizacion == ETipoAutorizacion.MANUAL)
+                               store.SetValue (iter, 4, "Manual");
+                       else
+                               store.SetValue (iter, 4, "Automatica");
+               }
+
+               planc.Dispose ();
        }
 
        public void OnAltaPlan (object o, ResponseArgs args)
@@ -90,11 +119,65 @@ 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);
+               Console.WriteLine ("Agrege una cobertura");
+               return false;
        }
 
        public void OnProperties (object o, EventArgs args)
        {
+               alta_plan_xml = new Glade.XML (null, "mantener_planes.glade", "alta_plan", null);
+               alta_plan_xml.Autoconnect (this);
+       
+               coberturas.Model = new ListStore (typeof(int), typeof(float), typeof (float), typeof (int), typeof(string));
+               coberturas.HeadersVisible = true;
+               coberturas.AppendColumn ("Prestacion", new CellRendererText (), "text", 0);
+               coberturas.AppendColumn ("Carencia", new CellRendererText (), "text", 1);
+               coberturas.AppendColumn ("Cobertura", new CellRendererText (), "text", 2);
+               coberturas.AppendColumn ("Limite Anual", new CellRendererText (), "text", 3);
+               coberturas.AppendColumn ("Tipo", new CellRendererText (), "text", 4);
+               
+               TreeSelection sel = lista.Selection;
+               TreeModel model;
+               TreeIter iter;
+
+               sel.GetSelected (out model, out iter);
+               int codplan = (int)model.GetValue (iter, 0);
+
+               CargarCoberturas (codplan);     
+               Dialog w = (Dialog)alta_plan_xml.GetWidget ("alta_plan");
+               w.Run ();
+               w.Destroy ();
+
+               CargarPlanes ();
        }
        
        public void OnDelete (object o, EventArgs args)