From c27e0207e5f08b9bbe8d15ed4eb655fe2ac6239a Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Tue, 14 Jun 2005 06:28:40 +0000 Subject: [PATCH] me fui a dormir ... --- .../AfiliadoSolicitanteController.cs | 37 ++++- .../src/Dominio/Solicitante.cs | 11 +- .../src/Vistas/EmitirHojeDeRuta.cs | 145 ++++++++++++++++++ 3 files changed, 185 insertions(+), 8 deletions(-) create mode 100644 carpeta/disenio_grafico/src/Vistas/EmitirHojeDeRuta.cs diff --git a/carpeta/disenio_grafico/src/Controlador/AfiliadoSolicitanteController.cs b/carpeta/disenio_grafico/src/Controlador/AfiliadoSolicitanteController.cs index bceaec5..8cf6b97 100644 --- a/carpeta/disenio_grafico/src/Controlador/AfiliadoSolicitanteController.cs +++ b/carpeta/disenio_grafico/src/Controlador/AfiliadoSolicitanteController.cs @@ -147,6 +147,18 @@ public class AfiliadoSolicitanteController return true; } + private Solicitante GetSolicitante (ETipoDocumento tipoDoc, int nroDoc) + { + Solicitante s = new Solicitante (tipoDoc, nroDoc, null, null); + + ArrayList lst = GetSolicitantes (s); + + if (lst.Count == 0) + return null; + + return (Solicitante)lst[0]; + } + private ArrayList GetSolicitantes (Solicitante s) { ObjectContainer db=Db4o.openFile("os.yap"); @@ -174,10 +186,31 @@ public class AfiliadoSolicitanteController public ArrayList ObtenerSolicitantesPendientes () { Solicitante s = new Solicitante (0, 0, null, null); - - Console.WriteLine ("Obtengo los pendientes ..."); + Promotor p = null; // new Promotor (0, 0, null, null); + s.Promotor = p; return GetSolicitantes (s); } + + public void AsociarPromotor (ETipoDocumento tipoDoc, int nroDoc, int promotor) + { + ObjectContainer db=Db4o.openFile("os.yap"); + try { + Solicitante s = new Solicitante (tipoDoc, nroDoc, null, null); + ObjectSet result = db.get(s); + + s = (Solicitante)result.next (); + Promotor p = new Promotor (ETipoDocumento.DNI, 12345678, "123", "123"); + s.Promotor = p; + db.set(s); + } + catch (Exception e) { + Console.WriteLine (e); + } + finally { + db.close(); + } + } + } } diff --git a/carpeta/disenio_grafico/src/Dominio/Solicitante.cs b/carpeta/disenio_grafico/src/Dominio/Solicitante.cs index c0550b7..98c0ace 100644 --- a/carpeta/disenio_grafico/src/Dominio/Solicitante.cs +++ b/carpeta/disenio_grafico/src/Dominio/Solicitante.cs @@ -9,7 +9,7 @@ public class Solicitante : Persona private string _observaciones; private bool _pendiente; private Afiliado _titular; - private int _codigoPromotor; + private Promotor _promotor = null; public string Disponibilidad { get { return _disponibilidad; } @@ -31,16 +31,15 @@ public class Solicitante : Persona get { return _titular; } set { _titular = value; } } + public Promotor Promotor { + get { return _promotor; } + set { _promotor = value; } + } public Solicitante (ETipoDocumento tD, int nroD, string nombre, string apellido):base(tD,nroD,nombre) { Apellido = apellido; } - - public void setIdPromotor (int c) - { - _codigoPromotor = c; - } } } diff --git a/carpeta/disenio_grafico/src/Vistas/EmitirHojeDeRuta.cs b/carpeta/disenio_grafico/src/Vistas/EmitirHojeDeRuta.cs new file mode 100644 index 0000000..e7efa28 --- /dev/null +++ b/carpeta/disenio_grafico/src/Vistas/EmitirHojeDeRuta.cs @@ -0,0 +1,145 @@ + + +using System; +using System.Collections; +using Gtk; +using Glade; + +using Controlador.Afiliacion; +using Dominio.Afiliados; +using Dominio; + +public class VEmitirHojaDeRuta +{ + Dialog wIngresarSolicitud; + Glade.XML xml; + + [Widget] ComboBox promotores; + [Widget] TreeView disponibles; + [Widget] TreeView hojaderuta; + + public VEmitirHojaDeRuta () + { + xml = new Glade.XML (null, "emitir_hoja_de_ruta.glade", "emitir_hoja_de_ruta", null); + xml.Autoconnect (this); + + /* Creo los modelos para los TreeView y el ComboBox + Tipo Doc NroDoc Apellido Nombre */ + disponibles.Model = new ListStore (typeof(string), typeof(int), typeof (string), typeof (string)); + hojaderuta.Model = new ListStore (typeof(string), typeof(int), typeof (string), typeof (string)); + + /* Columnas */ + disponibles.HeadersVisible = true; + disponibles.AppendColumn ("Tipo Doc.", new CellRendererText (), "text", 0); + disponibles.AppendColumn ("Nro Doc.", new CellRendererText (), "text", 1); + disponibles.AppendColumn ("Apellido", new CellRendererText (), "text", 2); + disponibles.AppendColumn ("Nombre", new CellRendererText (), "text", 3); + hojaderuta.HeadersVisible = true; + hojaderuta.AppendColumn ("Tipo Doc.", new CellRendererText (), "text", 0); + hojaderuta.AppendColumn ("Nro Doc.", new CellRendererText (), "text", 1); + hojaderuta.AppendColumn ("Apellido", new CellRendererText (), "text", 2); + hojaderuta.AppendColumn ("Nombre", new CellRendererText (), "text", 3); + + xml.GetWidget ("emitir_hoja_de_ruta").SetSizeRequest (500, 420); + + /* Cargo promotores */ + ListStore l = (ListStore)promotores.Model; + l.Clear (); + for(int i=0; i<10; i++) + l.AppendValues (String.Format ("Promotor {0}", i)); + } + + public void OnDialogResponse (object o, ResponseArgs args) + { + if (args.ResponseId == ResponseType.Cancel) + return; + + /* Armo la hoja de ruta */ + /* TODO : No tengo de donde sacarlo, creo uno pedorro para test */ + int promotor = 0; + + /* Veo si hay items en la hoja de ruta */ + ListStore store = (ListStore)hojaderuta.Model; + TreeIter iter; + if (store.GetIterFirst (out iter) == false) { + /* Lista vacia! .. Alarm! Alarm! :) */ + MessageDialog md = new MessageDialog (null, DialogFlags.DestroyWithParent, + MessageType.Error, ButtonsType.Close, "La hoja de ruta está vacía."); + + md.Run (); + md.Destroy (); + return; + } + + AfiliadoSolicitanteController c = new AfiliadoSolicitanteController (); + + ETipoDocumento tipoDoc; + int nroDoc; + tipoDoc = (ETipoDocumento)Enum.Parse (typeof (ETipoDocumento), (string)store.GetValue (iter, 0), true); + nroDoc = (int)store.GetValue (iter, 1); + c.AsociarPromotor (tipoDoc, nroDoc, promotor); + + while (store.IterNext (ref iter) == true) { + tipoDoc = (ETipoDocumento)Enum.Parse (typeof (ETipoDocumento), (string)store.GetValue (iter, 0), true); + nroDoc = Int32.Parse ((string)store.GetValue (iter, 1)); + c.AsociarPromotor (tipoDoc, nroDoc, promotor); + } + } + + public void OnAgregarClicked (object o, EventArgs args) + { + /* Obtengo el TreeIter seleccionado de disponibles */ + TreeSelection fromSel = disponibles.Selection; + TreeIter iter; + TreeModel model; + + if (fromSel.GetSelected (out model, out iter)) { + ListStore store1 = (ListStore)disponibles.Model; + ListStore store2 = (ListStore)hojaderuta.Model; + TreeIter nuevo = store2.Append (); + + for(int i=0; i<4; i++) + store2.SetValue (nuevo, i, store1.GetValue (iter, i)); + store1.Remove (ref iter); + } + } + + public void OnBorrarClicked (object o, EventArgs args) + { + /* Obtengo el TreeIter seleccionado de disponibles */ + TreeSelection fromSel = hojaderuta.Selection; + TreeIter iter; + TreeModel model; + + if (fromSel.GetSelected (out model, out iter)) { + ListStore store1 = (ListStore)hojaderuta.Model; + ListStore store2 = (ListStore)disponibles.Model; + TreeIter nuevo = store2.Append (); + + for(int i=0; i<4; i++) + store2.SetValue (nuevo, i, store1.GetValue (iter, i)); + store1.Remove (ref iter); + } + } + + public void OnPromotorSelected (object o, EventArgs args) + { + AfiliadoSolicitanteController c = new AfiliadoSolicitanteController (); + + ArrayList sols = c.ObtenerSolicitantesPendientes (); + ListStore store = (ListStore)disponibles.Model; + + foreach (Solicitante s in sols) { + TreeIter iter = store.AppendValues (s.TipoDocumento.ToString (), s.NroDocumento, s.Nombre, s.Apellido); + Console.WriteLine ("-- {0}", s.Promotor); + } + } + + public void Run () + { + Dialog w = (Dialog)xml.GetWidget ("emitir_hoja_de_ruta"); + w.Run (); + w.Destroy (); + } +} + -- 2.43.0