]> 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 d0f5257381690b37ee42186a49b4bc923c27e886..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,10 +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(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);
+
+               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)
@@ -44,16 +74,19 @@ public class VMantenerPlanes
                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 (string), typeof (float));
+               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);
                        
                Dialog w = (Dialog)alta_plan_xml.GetWidget ("alta_plan");
                w.Run ();
                w.Destroy ();
+
+               CargarPlanes ();
        }
 
        public void OnAltaPlan (object o, ResponseArgs args)
@@ -61,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)
@@ -83,13 +145,27 @@ public class VMantenerPlanes
                        TreeIter nuevo = store.Append ();
        
                        store.SetValue (nuevo, 0, Int32.Parse (codigo_prestacion.Text));
-                       store.SetValue (nuevo, 1, (float)Double.Parse (categoria.Text));
-                       store.SetValue (nuevo, 2, descripcion.Text));
-                       store.SetValue (nuevo, 3, Int32.Parse (codigo_prestacion.Text));
+                       store.SetValue (nuevo, 1, (float)Double.Parse (carencia.Text));
+                       store.SetValue (nuevo, 2, (float)cobertura.Value);
+                       store.SetValue (nuevo, 3, limite_anual.ValueAsInt);
+                       if (tipo_auth.Active == true)
+                               store.SetValue (nuevo, 4, "Manual");
+                       else
+                               store.SetValue (nuevo, 4, "Automatica");
                }
                w.Destroy ();
        }
 
+       public void OnBuscarPrestacion (object o, EventArgs args)
+       {
+               VBuscarPrestacion v = new VBuscarPrestacion ();
+               string r = v.Run ();
+
+               if (r != null) {
+                       codigo_prestacion.Text = r;
+               }
+       }
+
        public void Run ()
        {
                Dialog w = (Dialog)xml.GetWidget ("mantener_planes");