using System; using System.Collections; using Gtk; using Glade; using Controlador.Afiliacion; using Controlador; using Dominio.Autorizaciones; using Dominio.Planes; using Dominio.Afiliados; using Dominio; public class VConsultarAutorizaciones { Glade.XML xml; /* Campos de datos */ [Widget] Entry afiliado_documento; [Widget] Entry afiliado_apellido; [Widget] Entry afiliado_nombre; [Widget] Entry afiliado_codigo; [Widget] Entry auth_codigo; [Widget] Entry auth_fecha; [Widget] TextView auth_obs; [Widget] Entry prestacion_nombre; [Widget] Entry prestacion_codigo; [Widget] Entry prestador_cuit; [Widget] Entry prestador_nombre; [Widget] Entry prestador_email; [Widget] Label tipo_auth; [Widget] Label auditor; [Widget] Label estado; [Widget] Entry fecha_res; [Widget] TextView fundamento_res; /* Botones */ [Widget] Button primero; [Widget] Button anterior; [Widget] Button siguiente; [Widget] Button ultimo; ArrayList autorizaciones; int actualpos = 0; public VConsultarAutorizaciones () { xml = new Glade.XML (null, "consultar_autorizacion.glade", "consultar_autorizacion", null); xml.Autoconnect (this); } public void BuscarPorAfiliado (object o, EventArgs args) { AutorizacionController c = new AutorizacionController (DateTime.Now); VBuscarAfiliado v = new VBuscarAfiliado (); string r = v.Run (); if (r == null) return; autorizaciones = c.obtenerAutorizacionesPorAfiliado (Int32.Parse (r)); c.Dispose (); actualpos = 0; Mostrar (); } public void BuscarPorCodigo (object o, EventArgs args) { } public void BuscarPorAuditor (object o, EventArgs args) { } public void BuscarPorFecha (object o, EventArgs args) { } private void SetButton (bool p, bool a, bool s, bool u) { primero.Sensitive = p; anterior.Sensitive = a; siguiente.Sensitive = s; ultimo.Sensitive = u; } private void UpdateButtons () { if (autorizaciones == null) { SetButton (false, false, false, false); return; } if (autorizaciones.Count == 1) { SetButton (false, false, false, false); return; } if (actualpos == 0) { SetButton (false, false, true, true); return; } if (actualpos == (autorizaciones.Count - 1)) { SetButton (true, true, false, false); return; } SetButton (true, true, true, true); } public void OnMove (object o, EventArgs args) { if (autorizaciones == null) { UpdateButtons (); return; } if (o == primero) actualpos = 0; if (o == anterior) actualpos--; if (o == siguiente) actualpos++; if (o == ultimo) actualpos = autorizaciones.Count - 1; if (actualpos < 0) actualpos = 0; if (actualpos >= autorizaciones.Count) actualpos = autorizaciones.Count - 1; Mostrar (); } private void Mostrar () { if (autorizaciones == null) return; Autorizacion auth; try { auth = autorizaciones[actualpos] as Autorizacion; } catch (Exception e) { UpdateButtons (); return; } afiliado_documento.Text = String.Format ("{0} {1}", auth.Afiliado.TipoDocumento, auth.Afiliado.NroDocumento); afiliado_apellido.Text = auth.Afiliado.Apellido; afiliado_nombre.Text = auth.Afiliado.Nombre; afiliado_codigo.Text = String.Format ("{0}", auth.Afiliado.Codigo); auth_codigo.Text = String.Format ("{0}", auth.Codigo); auth_fecha.Text = auth.FechaSolicitud.ToString (); if (auth is AutorizacionManual) auth_obs.Buffer.Text = (auth as AutorizacionManual).Observaciones; prestacion_nombre.Text = auth.Prestacion.Nombre; prestacion_codigo.Text = auth.Prestacion.Codigo; prestador_cuit.Text = auth.Prestador.Cuit; prestador_nombre.Text = auth.Prestador.Nombre; prestador_email.Text = auth.Prestador.Email; if (auth is AutorizacionManual) tipo_auth.Text = "Manual"; else tipo_auth.Text = "Automatica"; auditor.Text = "Auditor Medico"; estado.Text = auth.getEstado (DateTime.Now).ToString (); if (auth is AutorizacionManual) { DateTime t = (auth as AutorizacionManual).FechaResolucion; if (t != DateTime.MinValue) fecha_res.Text = t.ToString (); } /* [Widget] TextView fundamento_res;*/ UpdateButtons (); } public void Run () { Dialog w = (Dialog)xml.GetWidget ("consultar_autorizacion"); w.Run (); w.Destroy (); } }