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 */
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 ()