X-Git-Url: https://git.llucax.com/z.facultad/75.10/miklolife.git/blobdiff_plain/b09a1b5d2559dd4da2f8460ddd4fe459fedba79e..c6d44985c6ec93b86d3453ce7ac0b09cafab9d1d:/demo/src/Vistas/AgregarAfiliado.cs?ds=sidebyside diff --git a/demo/src/Vistas/AgregarAfiliado.cs b/demo/src/Vistas/AgregarAfiliado.cs index b607752..866a334 100644 --- a/demo/src/Vistas/AgregarAfiliado.cs +++ b/demo/src/Vistas/AgregarAfiliado.cs @@ -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,82 @@ 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 (); 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 (); + } + } + + 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); + + /* Afilio el titular */ + Afiliado AfiTitular = c.AfiliarTitular (tipoDoc, nroDoc, null); + 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 ()