using System; using System.Collections; using Gtk; using Glade; using Controlador; using Controlador.Afiliacion; using Dominio.Afiliados; using Dominio.Autorizaciones; using Dominio.Planes; using Dominio; public class VRevisarAutorizacionManual { Glade.XML xml; Glade.XML xml_revisar; [Widget] TreeView lista; /* Revisar Widgets */ [Widget] Entry codigo; [Widget] Entry fechaSolicitud; [Widget] Entry prestacion_nombre; [Widget] Entry prestacion_codigo; [Widget] Entry prestador_nombre; [Widget] Entry prestador_cuit; [Widget] Entry prestador_email; [Widget] Entry afiliado_nombre; [Widget] Entry afiliado_apellido; [Widget] Entry afiliado_documento; [Widget] Entry afiliado_codigo; [Widget] Label estado_cuenta; [Widget] Label cobertura; [Widget] Entry consumo_actual; [Widget] Entry consumo_limite; [Widget] TextView observaciones; float percent_cobertura; public VRevisarAutorizacionManual () { xml = new Glade.XML (null, "actualizar_autorizacion_manual.glade", "autorizaciones_pendientes", null); xml.Autoconnect (this); lista.Model = new ListStore (typeof(int), typeof(string), typeof (string), typeof (string), typeof(string)); /* Columnas */ lista.HeadersVisible = true; lista.AppendColumn ("Codigo", new CellRendererText (), "text", 0); lista.AppendColumn ("Fecha Solicitud", new CellRendererText (), "text", 1); lista.AppendColumn ("Prestacion", new CellRendererText (), "text", 2); lista.AppendColumn ("Afiliado", new CellRendererText (), "text", 3); lista.AppendColumn ("Prestador", new CellRendererText (), "text", 4); CargarAutorizaciones (); } public void OnRevisar (object o, EventArgs args) { /* Muestro la ventana */ xml_revisar = new Glade.XML (null, "actualizar_autorizacion_manual.glade", "revisar_autorizacion", null); xml_revisar.Autoconnect (this); TreeSelection sel = lista.Selection; TreeModel model; TreeIter iter; sel.GetSelected (out model, out iter); int cod = (int)model.GetValue (iter, 0); AutorizacionController c = new AutorizacionController (DateTime.MinValue); AutorizacionManual a; try { a = (AutorizacionManual)c.obtener (cod); } catch (Exception e) { Console.WriteLine ("No se pudo obtener Autorizacion"); c.Dispose (); return; } if (a == null) { Console.WriteLine ("Error al buscar autorizacion!!"); c.Dispose (); return; } 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; prestador_cuit.Text = a.Prestador.Cuit; prestador_email.Text = a.Prestador.Email; afiliado_nombre.Text = a.Afiliado.Nombre; afiliado_apellido.Text = a.Afiliado.Apellido; afiliado_documento.Text = String.Format ("{0} {1}", a.Afiliado.TipoDocumento, a.Afiliado.NroDocumento); afiliado_codigo.Text = String.Format ("{0}", a.Afiliado.Codigo); if (a.Afiliado.Moroso == 0) estado_cuenta.Text = "No se registra deuda del Afiliado"; else estado_cuenta.Text = String.Format ("El afiliado debe {0} meses.", a.Afiliado.Moroso); 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 */ 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 (); c.Dispose (); } public void OnRevisarResponse (object o, ResponseArgs args) { if (args.ResponseId == ResponseType.Close) { 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) { percent = percent_cobertura; } if (((int)args.ResponseId) == 1) { 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 () { ListStore store = (ListStore)lista.Model; store.Clear (); AutorizacionController c = new AutorizacionController (DateTime.Now); ArrayList lst = c.obtenerAutorizacionesPendientes (); foreach(AutorizacionManual a in lst) { TreeIter iter = store.Append (); store.SetValue (iter, 0, a.Codigo); store.SetValue (iter, 1, a.FechaSolicitud.ToString ()); store.SetValue (iter, 2, String.Format ("({0}) {1}", a.Prestacion.Codigo, a.Prestacion.Nombre)); store.SetValue (iter, 3, String.Format ("({0}) {1} {2}", a.Afiliado.Codigo, a.Afiliado.Nombre, a.Afiliado.Apellido)); store.SetValue (iter, 4, String.Format ("({0}) {1}", a.Prestador.Cuit, a.Prestador.Nombre)); } c.Dispose (); } public void Run () { Dialog w = (Dialog)xml.GetWidget ("autorizaciones_pendientes"); w.Run (); w.Destroy (); } }