]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blobdiff - demo/src/Vistas/AgregarAfiliado.cs
Agrego material de estudio.
[z.facultad/75.10/miklolife.git] / demo / src / Vistas / AgregarAfiliado.cs
index b60775265adc96ccc6473ff880356286330c5c98..2b55c9a28d1553bf8d47852e06bf32856279a305 100644 (file)
@@ -18,7 +18,7 @@ public class VAgregarAfiliado
                xml = new Glade.XML (null, "agregar_afiliado.glade", "agregar_afiliado", null);
                xml.Autoconnect (this);
 
-               ListStore store = new ListStore (typeof(string), typeof(int), typeof (string), typeof (string));
+               TreeStore store = new TreeStore (typeof(string), typeof(int), typeof (string), typeof (string));
                lista.Model = store;
 
                /* Columnas */
@@ -28,20 +28,88 @@ public class VAgregarAfiliado
                lista.AppendColumn ("Apellido", new CellRendererText (), "text", 2);
                lista.AppendColumn ("Nombre", new CellRendererText (), "text", 3);
 
+               CargarParaAfiliar ();
+       }
+
+       private void CargarParaAfiliar ()
+       {
+               TreeStore store = (TreeStore)lista.Model;
                ArrayList afiliados;
                AfiliadoSolicitanteController c = new AfiliadoSolicitanteController ();
                afiliados = c.ObtenerSolicitantesAfiliar ();
 
+               store.Clear ();
                foreach (Solicitante s in afiliados) {
                        TreeIter iter = store.AppendValues (s.TipoDocumento.ToString (), s.NroDocumento, s.Nombre, s.Apellido);
+                       CargarFamiliaresDe (s, iter, c);
                }
 
                c.Dispose ();
        }
 
+       private void CargarFamiliaresDe (Solicitante spadre, TreeIter padre, AfiliadoSolicitanteController c)
+       {
+               TreeStore store = (TreeStore)lista.Model;
+               ArrayList familiares = c.ObtenerFamiliaresAfiliar (spadre);
+
+               foreach (Solicitante s in familiares) {
+                       TreeIter iter = store.AppendValues (padre, s.TipoDocumento.ToString (), s.NroDocumento, s.Nombre, s.Apellido);
+               }
+       }
+
        public void OnAfiliar (object o, EventArgs args)
        {
+               TreeIter iter;
+               TreeModel model; 
+               TreeSelection sel = lista.Selection;
+
                
+               if (sel.GetSelected(out model, out iter) == true) {
+                       ETipoDocumento tipoDoc = (ETipoDocumento)Enum.Parse (typeof (ETipoDocumento), (string)model.GetValue (iter, 0), true);
+                       int nroDoc = (int)model.GetValue (iter, 1);
+
+                       AfiliadoSolicitanteController c = new AfiliadoSolicitanteController ();
+                       Afiliado a = c.ExisteAfiliado (tipoDoc, nroDoc);
+
+                       if (a == null) {
+                               Afiliar (model, iter, c);
+                       } else {
+                               Console.WriteLine ("Lo borro o lo reactivo!");
+                       }
+
+                       c.Dispose ();
+               }
+               CargarParaAfiliar ();
+       }
+
+       private void Afiliar (TreeModel model, TreeIter parent, AfiliadoSolicitanteController c)
+       {
+               ETipoDocumento tipoDoc = (ETipoDocumento)Enum.Parse (typeof (ETipoDocumento), (string)model.GetValue (parent, 0), true);
+               int nroDoc = (int)model.GetValue (parent, 1);
+
+               /* Selecciono plan */
+               VBuscarPlan v = new VBuscarPlan ();
+               string plan = v.Run ();
+
+               /* Afilio el titular */
+               Afiliado AfiTitular = c.AfiliarTitular (tipoDoc, nroDoc, Int32.Parse (plan));
+               Console.WriteLine ("Titular afiliado!! {0} {1}", tipoDoc, nroDoc);
+
+               /* Obtengo el primer familiar, si es que existe */
+               TreeIter iter;
+               if (model.IterChildren (out iter, parent) == true) {
+                       tipoDoc = (ETipoDocumento)Enum.Parse (typeof (ETipoDocumento), (string)model.GetValue (iter, 0), true);
+                       nroDoc = (int)model.GetValue (iter, 1);
+
+                       Console.WriteLine ("Titular familiar!! {0} {1}", tipoDoc, nroDoc);
+                       while (model.IterNext (ref iter) == true) {
+                               tipoDoc = (ETipoDocumento)Enum.Parse (typeof (ETipoDocumento), (string)model.GetValue (iter, 0), true);
+                               nroDoc = (int)model.GetValue (iter, 1);
+
+                               Console.WriteLine ("Titular familiar!! {0} {1}", tipoDoc, nroDoc);
+                               c.AfiliarFamiliar (AfiTitular, tipoDoc, nroDoc, null);
+                       }
+               }
        }
 
        public void Run ()