]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blob - demo/src/Vistas/RevisarAutorizacionManual.cs
Para guille :)
[z.facultad/75.10/miklolife.git] / demo / src / Vistas / RevisarAutorizacionManual.cs
1
2
3 using System;
4 using System.Collections;
5 using Gtk;
6 using Glade;
7
8 using Controlador;
9 using Controlador.Afiliacion;
10 using Dominio.Afiliados;
11 using Dominio.Autorizaciones;
12 using Dominio.Planes;
13 using Dominio;
14
15 public class VRevisarAutorizacionManual
16 {
17         Glade.XML xml;
18         Glade.XML xml_revisar;
19
20         [Widget] TreeView lista;
21
22         /* Revisar Widgets */
23         [Widget] Entry codigo;
24         [Widget] Entry fechaSolicitud;
25         [Widget] Entry prestacion_nombre;
26         [Widget] Entry prestacion_codigo;
27         [Widget] Entry prestador_nombre;
28         [Widget] Entry prestador_cuit;
29         [Widget] Entry prestador_email;
30         [Widget] Entry afiliado_nombre;
31         [Widget] Entry afiliado_apellido;
32         [Widget] Entry afiliado_documento;
33         [Widget] Entry afiliado_codigo;
34         [Widget] Label estado_cuenta;
35         [Widget] Label cobertura;
36         [Widget] Entry consumo_actual;
37         [Widget] Entry consumo_limite;
38         [Widget] TextView observaciones;
39
40         float percent_cobertura;
41
42         public VRevisarAutorizacionManual ()
43         {
44                 xml = new Glade.XML (null, "actualizar_autorizacion_manual.glade", "autorizaciones_pendientes", null);
45                 xml.Autoconnect (this);
46
47                 lista.Model = new ListStore (typeof(int), typeof(string), typeof (string), typeof (string), typeof(string));
48
49                 /* Columnas */
50                 lista.HeadersVisible = true;
51                 lista.AppendColumn ("Codigo", new CellRendererText (), "text", 0);
52                 lista.AppendColumn ("Fecha Solicitud", new CellRendererText (), "text", 1);
53                 lista.AppendColumn ("Prestacion", new CellRendererText (), "text", 2);
54                 lista.AppendColumn ("Afiliado", new CellRendererText (), "text", 3);
55                 lista.AppendColumn ("Prestador", new CellRendererText (), "text", 4);
56         
57                 CargarAutorizaciones ();
58         }
59
60         public void OnRevisar (object o, EventArgs args)
61         {
62                 /* Muestro la ventana */
63                 xml_revisar = new Glade.XML (null, "actualizar_autorizacion_manual.glade", "revisar_autorizacion", null);
64                 xml_revisar.Autoconnect (this);
65         
66                 TreeSelection sel = lista.Selection;
67                 TreeModel model;
68                 TreeIter iter;
69
70                 sel.GetSelected (out model, out iter);
71                 int cod = (int)model.GetValue (iter, 0);
72         
73                 AutorizacionController c = new AutorizacionController (DateTime.MinValue);
74         
75                 AutorizacionManual a;
76                 try {
77                         a = (AutorizacionManual)c.obtener (cod);
78                 } catch (Exception e) {
79                         Console.WriteLine ("No se pudo obtener Autorizacion");
80                         c.Dispose ();
81                         return;
82                 }
83                 
84                 if (a == null) {
85                         Console.WriteLine ("Error al buscar autorizacion!!");
86                         c.Dispose ();
87                         return;
88                 }
89         
90                 codigo.Text = String.Format ("{0}", a.Codigo);
91                 fechaSolicitud.Text = a.FechaSolicitud.ToString ();
92                 observaciones.Buffer.Text = a.Observaciones;
93                 prestacion_nombre.Text = a.Prestacion.Nombre;
94                 prestacion_codigo.Text = a.Prestacion.Codigo;
95                 prestador_nombre.Text = a.Prestador.Nombre;
96                 prestador_cuit.Text = a.Prestador.Cuit;
97                 prestador_email.Text = a.Prestador.Email;
98                 afiliado_nombre.Text = a.Afiliado.Nombre;
99                 afiliado_apellido.Text = a.Afiliado.Apellido;
100                 afiliado_documento.Text = String.Format ("{0} {1}", a.Afiliado.TipoDocumento, a.Afiliado.NroDocumento);
101                 afiliado_codigo.Text = String.Format ("{0}", a.Afiliado.Codigo);
102                 if (a.Afiliado.Moroso == 0)
103                         estado_cuenta.Text = "No se registra deuda del Afiliado";
104                 else
105                         estado_cuenta.Text = String.Format ("El afiliado debe {0} meses.", a.Afiliado.Moroso);
106
107                 Cobertura cob;
108                 if (a.Afiliado.PlanActual != null) {    
109                         cob = a.Afiliado.PlanActual.BuscarCobertura (a.Prestador, a.Prestacion);
110                 } else {
111                         cob = null;
112                 }
113
114                 if (cob == null)
115                         cobertura.Markup = "<b>La prestacion no esta cubierta</b>";
116                 else
117                         cobertura.Text = "La prestacion esta cubierta";
118
119                 /* Necesitariamos un query que cuente este dato */
120                 consumo_actual.Text = "1";
121                 /* Necesitariamos un metodo que busque la Cobertura para este Prestador y esta Prestacion 
122                  * del Plan del cliente
123                  */
124                 if (cob != null)
125                         consumo_limite.Text = String.Format ("{0}", cob.LimiteAnual); 
126
127                 if (cob == null)
128                         percent_cobertura = 1.0f;
129                 else
130                         percent_cobertura = cob.Porcentaje;     
131
132                 Dialog v = (Dialog)xml_revisar.GetWidget ("revisar_autorizacion");
133                 v.Run ();
134                 v.Destroy ();
135
136                 c.Dispose ();
137         }
138
139         public void OnRevisarResponse (object o, ResponseArgs args)
140         {
141                 if (args.ResponseId == ResponseType.Close) {
142                         Console.WriteLine ("Cerrando");
143                         return; 
144                 }
145
146                 Glade.XML resolucion = new Glade.XML (null, "actualizar_autorizacion_manual.glade", "resolucion", null);
147                 resolucion.Autoconnect (this);
148
149                 Dialog v = (Dialog)resolucion.GetWidget ("resolucion");
150                 v.Run ();
151
152                 TextView texto = (TextView)resolucion.GetWidget ("motivo");
153                 
154                 string r = texto.Buffer.Text;
155
156                 v.Destroy ();
157
158                 float percent = 0.0f;
159                 if (((int)args.ResponseId) == 0) {
160                         percent = percent_cobertura;
161                 }
162                 if (((int)args.ResponseId) == 1) {
163                         percent = 0.0f;
164                 }
165                 
166                 int cod = Int32.Parse (codigo.Text);
167
168                 AutorizacionController c = new AutorizacionController (DateTime.Now);
169                 c.setResolucionAutorizacionManual (cod, r, percent);
170                 c.Dispose ();
171         }
172
173         private void CargarAutorizaciones ()
174         {
175                 ListStore store = (ListStore)lista.Model;
176
177                 store.Clear ();
178
179                 AutorizacionController c = new AutorizacionController (DateTime.Now);
180                 ArrayList lst = c.obtenerAutorizacionesPendientes ();
181
182                 foreach(AutorizacionManual a in lst) {
183                         TreeIter iter = store.Append ();
184                         store.SetValue (iter, 0, a.Codigo);
185                         store.SetValue (iter, 1, a.FechaSolicitud.ToString ());
186                         store.SetValue (iter, 2, String.Format ("({0}) {1}", a.Prestacion.Codigo, a.Prestacion.Nombre));
187                         store.SetValue (iter, 3, String.Format ("({0}) {1} {2}", a.Afiliado.Codigo, a.Afiliado.Nombre, a.Afiliado.Apellido));
188                         store.SetValue (iter, 4, String.Format ("({0}) {1}", a.Prestador.Cuit, a.Prestador.Nombre));
189                 }
190
191                 c.Dispose ();
192         }
193
194
195         public void Run ()
196         {
197                 Dialog w = (Dialog)xml.GetWidget ("autorizaciones_pendientes");
198                 w.Run ();
199                 w.Destroy ();
200         }
201 }
202