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);
- /* Creo los modelos para los TreeView y el ComboBox
- Tipo Doc NroDoc Apellido Nombre */
- lista.Model = new ListStore (typeof(string), typeof(int), typeof (string), typeof (string));
+ 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", 2);
- lista.AppendColumn ("Prestador", new CellRendererText (), "text", 3);
+ 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 = "<b>La prestacion no esta cubierta</b>";
+ 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 ()