]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blobdiff - demo/src/Vistas/MantenerPlanes.cs
* Buscar Afiliado y Buscar Prestaciones integrados en la ventana de pedido
[z.facultad/75.10/miklolife.git] / demo / src / Vistas / MantenerPlanes.cs
index d0c63b237ef44fea17e68c1c55ec9fdef837e650..2405cb8ce6de9f430a1e63a82fed8a1af5f27e25 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,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(int), typeof(string), typeof(float), typeof(float));
+               lista.Model = m;
+               lista.HeadersVisible = true;
+               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)
@@ -55,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)
@@ -62,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;
+
+#warning               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)
@@ -95,6 +206,16 @@ public class VMantenerPlanes
                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");