From 96c548067d0d061d4aacb421b9adeebbb1530fd0 Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Thu, 7 Jul 2005 05:30:54 +0000 Subject: [PATCH 1/1] * ya casi estaria todo para la demo. Faltan - Revisar un par de bugfs - Ajustar un par de listas para que se borren elementos desactualizados - Agregar unos sort a algunos treeview como chiche - que dios nos ayude :) --- .../actualizar_autorizacion_manual.glade | 137 +++++++++++++--- demo/glade/buscar_plan.glade | 150 ++++++++++++++++++ .../AfiliadoSolicitanteController.cs | 7 +- .../src/Controlador/AutorizacionController.cs | 1 + demo/src/Dominio/Plan.cs | 26 +++ demo/src/Dominio/Prestacion.cs | 13 +- demo/src/Main.cs | 11 +- demo/src/Vistas/AgregarAfiliado.cs | 6 +- demo/src/Vistas/BuscarPlan.cs | 69 ++++++++ demo/src/Vistas/RevisarAutorizacionManual.cs | 51 +++++- 10 files changed, 444 insertions(+), 27 deletions(-) create mode 100644 demo/glade/buscar_plan.glade create mode 100644 demo/src/Vistas/BuscarPlan.cs diff --git a/demo/glade/actualizar_autorizacion_manual.glade b/demo/glade/actualizar_autorizacion_manual.glade index dc99f42..6687334 100644 --- a/demo/glade/actualizar_autorizacion_manual.glade +++ b/demo/glade/actualizar_autorizacion_manual.glade @@ -527,9 +527,9 @@ - + True - + Observaciones : False False GTK_JUSTIFY_LEFT @@ -555,22 +555,33 @@ - + True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 + True + GTK_POLICY_ALWAYS + GTK_POLICY_ALWAYS + GTK_SHADOW_IN + GTK_CORNER_TOP_LEFT + + + + True + True + True + False + True + GTK_JUSTIFY_LEFT + GTK_WRAP_NONE + True + 0 + 0 + 0 + 0 + 0 + 0 + + + 1 @@ -578,7 +589,7 @@ 2 3 fill - + fill @@ -1666,4 +1677,94 @@ + + 250 + 250 + True + Motivo Resolucion + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_NONE + False + True + False + True + False + False + GDK_WINDOW_TYPE_HINT_DIALOG + GDK_GRAVITY_NORTH_WEST + True + True + + + + True + False + 0 + + + + True + GTK_BUTTONBOX_END + + + + True + True + True + gtk-ok + True + GTK_RELIEF_NORMAL + True + -5 + + + + + 0 + False + True + GTK_PACK_END + + + + + + 12 + True + True + GTK_POLICY_ALWAYS + GTK_POLICY_ALWAYS + GTK_SHADOW_IN + GTK_CORNER_TOP_LEFT + + + + True + True + True + False + True + GTK_JUSTIFY_LEFT + GTK_WRAP_NONE + True + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + 0 + True + True + + + + + + diff --git a/demo/glade/buscar_plan.glade b/demo/glade/buscar_plan.glade new file mode 100644 index 0000000..267bdff --- /dev/null +++ b/demo/glade/buscar_plan.glade @@ -0,0 +1,150 @@ + + + + + + + 400 + 500 + True + Seleccionar Plan + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_NONE + False + True + False + True + False + False + GDK_WINDOW_TYPE_HINT_DIALOG + GDK_GRAVITY_NORTH_WEST + True + True + + + + + True + False + 0 + + + + True + GTK_BUTTONBOX_END + + + + True + True + True + Seleccionar + True + GTK_RELIEF_NORMAL + True + 0 + + + + + 0 + False + True + GTK_PACK_END + + + + + + True + False + 0 + + + + True + 0 + 0.5 + GTK_SHADOW_NONE + + + + True + 0.5 + 0.5 + 1 + 1 + 0 + 0 + 12 + 0 + + + + 12 + True + True + GTK_POLICY_ALWAYS + GTK_POLICY_ALWAYS + GTK_SHADOW_IN + GTK_CORNER_TOP_LEFT + + + + True + True + True + False + False + True + False + False + False + + + + + + + + + + True + <b>Planes</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + label_item + + + + + 0 + True + True + + + + + 0 + True + True + + + + + + + diff --git a/demo/src/Controlador/AfiliadoSolicitanteController.cs b/demo/src/Controlador/AfiliadoSolicitanteController.cs index 51a28ab..86c3e36 100644 --- a/demo/src/Controlador/AfiliadoSolicitanteController.cs +++ b/demo/src/Controlador/AfiliadoSolicitanteController.cs @@ -78,7 +78,7 @@ public class AfiliadoSolicitanteController : Controller return salida; } - public Afiliado AfiliarTitular (ETipoDocumento tipoDoc, int nroDoc, Plan plan) + public Afiliado AfiliarTitular (ETipoDocumento tipoDoc, int nroDoc, int codplan) { /* Obtengo el Solicitante asi luego lo borro */ Solicitante s = new Solicitante (tipoDoc, nroDoc, null, null); @@ -90,6 +90,11 @@ public class AfiliadoSolicitanteController : Controller if (s == null) Console.WriteLine ("ERROR"); + Plan c = new Plan (); + c.Codigo = codplan; + ObjectSet r = Db.get (c); + Plan plan = r.next () as Plan; + /* Creo el afiliado */ Afiliado afil = new Afiliado (s, plan, DateTime.Now); AutoIncrementable i = new AutoIncrementable (); diff --git a/demo/src/Controlador/AutorizacionController.cs b/demo/src/Controlador/AutorizacionController.cs index 23cfe74..654ca0b 100644 --- a/demo/src/Controlador/AutorizacionController.cs +++ b/demo/src/Controlador/AutorizacionController.cs @@ -212,6 +212,7 @@ namespace Controlador private void InsertarDatosNecesarios() { + return; //PRESTADOR Prestador pre = new Prestador(); pre.Cuit = "11-11111111-1"; diff --git a/demo/src/Dominio/Plan.cs b/demo/src/Dominio/Plan.cs index 98fe572..d2dee10 100644 --- a/demo/src/Dominio/Plan.cs +++ b/demo/src/Dominio/Plan.cs @@ -3,6 +3,8 @@ namespace Planes { using System; using System.Collections; +using Dominio.Autorizaciones; +using Dominio.Planes; public class Plan { @@ -39,6 +41,7 @@ public class Plan public Plan () { + _coberturas = new ArrayList (); } public Plan (float categoria) @@ -74,6 +77,29 @@ public class Plan { return String.Format ("Plan : {0} {1} {2}", _codigo, _categoria, _descripcion); } + + public Cobertura BuscarCobertura (Prestador p, Prestacion pe) + { + if ((p == null) || (pe == null)) { + Console.WriteLine ("Prestador o Prestacion es null!!"); + return null; + } + if (pe.ExistePrestador (p) == false) { + Console.WriteLine ("La prestacion no esta dada por este prestador."); + return null; + } + + if (_coberturas == null) return null; + + Cobertura ret = null; + foreach (Cobertura c in _coberturas) { + if (pe.Codigo.Equals(c.Prestacion.Codigo) == true) { + ret = c; + break; + } + } + return ret; + } } } diff --git a/demo/src/Dominio/Prestacion.cs b/demo/src/Dominio/Prestacion.cs index 58e4447..03fb51d 100644 --- a/demo/src/Dominio/Prestacion.cs +++ b/demo/src/Dominio/Prestacion.cs @@ -23,6 +23,7 @@ namespace Dominio public Prestacion() { + _prestadores = new ArrayList (); } public Prestacion( string codigo ) @@ -43,7 +44,17 @@ namespace Dominio _prestadores.Add (p); return true; } - + + public bool ExistePrestador (Prestador p) + { + if (_prestadores == null) return false; + + foreach (Prestador p1 in _prestadores) { + if (p1.Cuit.Equals (p.Cuit)) + return true; + } + return false; + } } } diff --git a/demo/src/Main.cs b/demo/src/Main.cs index 8b5f7e7..e3085af 100644 --- a/demo/src/Main.cs +++ b/demo/src/Main.cs @@ -55,7 +55,7 @@ public class App #warning Descomentar para inicializar la base de datos con algunos valores de prueba ! logo.FromFile = "logo.png"; - /* InitDemo (); */ + /*InitDemo ();*/ Application.Run(); } @@ -90,6 +90,15 @@ public class App p4.Nombre = "Aplique clavos fractura multiple"; p4.Categoria = c2; + Prestador prestador = new Prestador ("30-11223366-0"); + prestador.Nombre = "DePrueba"; + prestador.Email = "DePrueba"; + + p1.AgregarPrestador (prestador); + p2.AgregarPrestador (prestador); + p3.AgregarPrestador (prestador); + p4.AgregarPrestador (prestador); + ObjectContainer db; db = Db4o.openFile("os.yap"); db.set (p1); diff --git a/demo/src/Vistas/AgregarAfiliado.cs b/demo/src/Vistas/AgregarAfiliado.cs index 866a334..e0276fa 100644 --- a/demo/src/Vistas/AgregarAfiliado.cs +++ b/demo/src/Vistas/AgregarAfiliado.cs @@ -85,8 +85,12 @@ public class VAgregarAfiliado 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, null); + 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 */ diff --git a/demo/src/Vistas/BuscarPlan.cs b/demo/src/Vistas/BuscarPlan.cs new file mode 100644 index 0000000..ef691d1 --- /dev/null +++ b/demo/src/Vistas/BuscarPlan.cs @@ -0,0 +1,69 @@ + +using System; +using System.Collections; +using Gtk; +using Glade; + +using Controlador.Afiliacion; +using Dominio.Autorizaciones; +using Dominio.Planes; +using Dominio.Afiliados; +using Dominio; + +public class VBuscarPlan +{ + Glade.XML xml; + string retorno = null; + + [Widget] TreeView lista; + + public VBuscarPlan () + { + xml = new Glade.XML (null, "buscar_plan.glade", "buscar_plan", null); + xml.Autoconnect (this); + + ListStore store; + lista.Model = store = new ListStore (typeof(int), typeof(float), typeof (string)); + + /* Columnas */ + lista.HeadersVisible = true; + lista.AppendColumn ("Codigo", new CellRendererText (), "text", 0); + lista.AppendColumn ("Categoria", new CellRendererText (), "text", 1); + lista.AppendColumn ("Descripcion", new CellRendererText (), "text", 2); + + PlanesController c = new PlanesController (); + ArrayList lst = c.ObtenerPlanesVigentes (); + foreach (Plan p in lst) { + TreeIter iter = store.Append (); + store.SetValue (iter, 0, p.Codigo); + store.SetValue (iter, 1, p.Categoria); + store.SetValue (iter, 2, p.Descripcion); + } + } + + public void OnDialogResponse (object o, ResponseArgs args) + { + if (args.ResponseId == ResponseType.Cancel) + return; + + /* Todo el seleccionado. TODO : abortar si no hay nada seleccionado! :) */ + + TreeSelection fromSel = lista.Selection; + TreeIter iter; + TreeModel model; + + if (fromSel.GetSelected (out model, out iter)) { + retorno = String.Format ("{0}", (int)model.GetValue (iter, 0)); + } + } + + public string Run () + { + Dialog w = (Dialog)xml.GetWidget ("buscar_plan"); + w.Run (); + w.Destroy (); + + return retorno; + } +} + diff --git a/demo/src/Vistas/RevisarAutorizacionManual.cs b/demo/src/Vistas/RevisarAutorizacionManual.cs index 029cef9..939eaed 100644 --- a/demo/src/Vistas/RevisarAutorizacionManual.cs +++ b/demo/src/Vistas/RevisarAutorizacionManual.cs @@ -9,6 +9,7 @@ using Controlador; using Controlador.Afiliacion; using Dominio.Afiliados; using Dominio.Autorizaciones; +using Dominio.Planes; using Dominio; public class VRevisarAutorizacionManual @@ -34,6 +35,9 @@ public class VRevisarAutorizacionManual [Widget] Label cobertura; [Widget] Entry consumo_actual; [Widget] Entry consumo_limite; + [Widget] TextView observaciones; + + float percent_cobertura; public VRevisarAutorizacionManual () { @@ -70,6 +74,7 @@ public class VRevisarAutorizacionManual codigo.Text = String.Format ("{0}", a.Codigo); fechaSolicitud.Text = a.FechaSolicitud.ToString (); + observaciones.Buffer.Text = a.Observaciones; prestacion_nombre.Text = a.Prestacion.Nombre; prestacion_codigo.Text = a.Prestacion.Codigo; prestador_nombre.Text = a.Prestador.Nombre; @@ -83,15 +88,31 @@ public class VRevisarAutorizacionManual estado_cuenta.Text = "No se registra deuda del Afiliado"; else estado_cuenta.Text = String.Format ("El afiliado debe {0} meses.", a.Afiliado.Moroso); - - cobertura.Text = "La prestacion esta cubierta"; + + Cobertura cob; + if (a.Afiliado.PlanActual != null) { + cob = a.Afiliado.PlanActual.BuscarCobertura (a.Prestador, a.Prestacion); + } else { + cob = null; + } + + if (cob == null) + cobertura.Markup = "La prestacion no esta cubierta"; + else + cobertura.Text = "La prestacion esta cubierta"; + /* Necesitariamos un query que cuente este dato */ consumo_actual.Text = "1"; /* Necesitariamos un metodo que busque la Cobertura para este Prestador y esta Prestacion * del Plan del cliente */ - consumo_limite.Text = "2"; + if (cob != null) + consumo_limite.Text = String.Format ("{0}", cob.LimiteAnual); + if (cob == null) + percent_cobertura = 1.0f; + else + percent_cobertura = cob.Porcentaje; Dialog v = (Dialog)xml_revisar.GetWidget ("revisar_autorizacion"); v.Run (); v.Destroy (); @@ -105,12 +126,32 @@ public class VRevisarAutorizacionManual Console.WriteLine ("Cerrando"); return; } + + Glade.XML resolucion = new Glade.XML (null, "actualizar_autorizacion_manual.glade", "resolucion", null); + resolucion.Autoconnect (this); + + Dialog v = (Dialog)resolucion.GetWidget ("resolucion"); + v.Run (); + + TextView texto = (TextView)resolucion.GetWidget ("motivo"); + + string r = texto.Buffer.Text; + + v.Destroy (); + + float percent = 0.0f; if (((int)args.ResponseId) == 0) { - Console.WriteLine ("Aprobado"); + percent = percent_cobertura; } if (((int)args.ResponseId) == 1) { - Console.WriteLine ("Rechazado"); + percent = 0.0f; } + + int cod = Int32.Parse (codigo.Text); + + AutorizacionController c = new AutorizacionController (DateTime.Now); + c.setResolucionAutorizacionManual (cod, r, percent); + c.Dispose (); } private void CargarAutorizaciones () -- 2.43.0