PageRenderTime 39ms CodeModel.GetById 14ms app.highlight 19ms RepoModel.GetById 2ms app.codeStats 0ms

/Docs/07-Implementacion/Source/trunk/EDUAR_Regular/EDUAR/EDUAR_UI/Private/Agenda/ManageExcursiones.aspx.cs

http://blpm.googlecode.com/
C# | 502 lines | 357 code | 39 blank | 106 comment | 28 complexity | 47f9c8979bb7a27ae82d678f1ce1a035 MD5 | raw file
  1using System;
  2using System.Collections.Generic;
  3using System.Web.UI;
  4using System.Web.UI.WebControls;
  5using EDUAR_BusinessLogic.Common;
  6using EDUAR_Entities;
  7using EDUAR_UI.Utilidades;
  8using EDUAR_Utility.Constantes;
  9using EDUAR_Utility.Enumeraciones;
 10using EDUAR_UI.Shared;
 11
 12namespace EDUAR_UI
 13{
 14    public partial class ManageExcursiones : EDUARBasePage
 15    {
 16
 17        #region --[Atributos]--
 18        private BLAgendaActividades objBLAgenda;
 19        #endregion
 20
 21        #region --[Propiedades]--
 22        /// <summary>
 23        /// Mantiene la agenda seleccionada en la grilla.
 24        /// Se utiliza para el manejo de eventos de agenda (evaluación, excursión, reunión).
 25        /// En las pantallas hijas no permito la edición.
 26        /// </summary>
 27        /// <value>
 28        /// The prop agenda.
 29        /// </value>
 30        public AgendaActividades propAgenda
 31        {
 32            get
 33            { return (AgendaActividades)Session["propAgenda"]; }
 34        }
 35
 36        /// <summary>
 37        /// Gets or sets the prop evento.
 38        /// </summary>
 39        /// <value>
 40        /// The prop evento.
 41        /// </value>
 42        public Excursion propFiltroEvento
 43        {
 44            get
 45            {
 46                if (ViewState["propFiltroEvento"] == null)
 47                    propFiltroEvento = new Excursion();
 48
 49                return (Excursion)ViewState["propFiltroEvento"];
 50            }
 51            set { ViewState["propFiltroEvento"] = value; }
 52        }
 53
 54        /// <summary>
 55        /// Gets or sets the lista evento.
 56        /// </summary>
 57        /// <value>
 58        /// The lista evento.
 59        /// </value>
 60        public List<Excursion> listaEventos
 61        {
 62            get
 63            {
 64                if (ViewState["listaEventos"] == null)
 65                    listaEventos = new List<Excursion>();
 66
 67                return (List<Excursion>)ViewState["listaEventos"];
 68            }
 69            set { ViewState["listaEventos"] = value; }
 70        }
 71
 72        /// <summary>
 73        /// Gets or sets the prop evento.
 74        /// </summary>
 75        /// <value>
 76        /// The prop evento.
 77        /// </value>
 78        public Excursion propEvento
 79        {
 80            get
 81            {
 82                if (ViewState["propEvento"] == null)
 83                    propEvento = new Excursion();
 84
 85                return (Excursion)ViewState["propEvento"];
 86            }
 87            set { ViewState["propEvento"] = value; }
 88        }
 89        #endregion
 90        
 91        #region --[Eventos]--
 92        /// <summary>
 93        /// Método que se ejecuta al dibujar los controles de la página.
 94        /// Se utiliza para gestionar las excepciones del método Page_Load().
 95        /// </summary>
 96        /// <param name="e"></param>
 97        protected override void OnPreRender(EventArgs e)
 98        {
 99            base.OnPreRender(e);
100            if (AvisoMostrar)
101            {
102                AvisoMostrar = false;
103
104                try
105                {
106                    Master.ManageExceptions(AvisoExcepcion);
107                }
108                catch (Exception ex) { Master.ManageExceptions(ex); }
109            }
110        }
111
112        /// <summary>
113        /// Handles the Load event of the Page control.
114        /// </summary>
115        /// <param name="sender">The source of the event.</param>
116        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
117        protected void Page_Load(object sender, EventArgs e)
118        {
119            try
120            {
121                Master.BotonAvisoAceptar += (VentanaAceptar);
122                if (!Page.IsPostBack)
123                {
124                    CargarPresentacion();
125                    //Siempre que se acceda a la página debiera existir una agenda
126                    propEvento.idAgendaActividad = propAgenda.idAgendaActividad;
127                    if (propEvento.idAgendaActividad > 0)
128                    {
129                        BuscarAgenda(propEvento);
130                    }
131                }
132				calfechas.startDate = cicloLectivoActual.fechaInicio;
133				calfechas.endDate = cicloLectivoActual.fechaFin;
134				calFechaEvento.startDate = cicloLectivoActual.fechaInicio;
135				calFechaEvento.endDate = cicloLectivoActual.fechaFin;
136                this.txtDescripcionEdit.Attributes.Add("onkeyup", " ValidarCaracteres(this, 4000);");
137            }
138            catch (Exception ex)
139            {
140                AvisoMostrar = true;
141                AvisoExcepcion = ex;
142            }
143        }
144
145        /// <summary>
146        /// Ventanas the aceptar.
147        /// </summary>
148        /// <param name="sender">The sender.</param>
149        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
150        void VentanaAceptar(object sender, EventArgs e)
151        {
152            try
153            {
154                switch (AccionPagina)
155                {
156                    case enumAcciones.Buscar:
157                        break;
158                    case enumAcciones.Nuevo:
159                        break;
160                    case enumAcciones.Modificar:
161                        break;
162                    case enumAcciones.Eliminar:
163                        break;
164                    case enumAcciones.Seleccionar:
165                        break;
166                    case enumAcciones.Limpiar:
167                        CargarPresentacion();
168                        //BuscarAgenda(propEvento);
169                        BuscarFiltrando();
170                        break;
171                    case enumAcciones.Aceptar:
172                        break;
173                    case enumAcciones.Salir:
174                        break;
175                    case enumAcciones.Redirect:
176                        break;
177                    case enumAcciones.Guardar:
178                        AccionPagina = enumAcciones.Limpiar;
179                        GuardarEvento(ObtenerValoresDePantalla());
180                        Master.MostrarMensaje(enumTipoVentanaInformacion.Satisfactorio.ToString(), UIConstantesGenerales.MensajeGuardadoOk, enumTipoVentanaInformacion.Satisfactorio);
181                        break;
182                    case enumAcciones.Ingresar:
183                        break;
184                    case enumAcciones.Desbloquear:
185                        break;
186                    default:
187                        break;
188                }
189            }
190            catch (Exception ex)
191            {
192                Master.ManageExceptions(ex);
193            }
194        }
195
196        /// <summary>
197        /// Handles the Click event of the btnBuscar control.
198        /// </summary>
199        /// <param name="sender">The source of the event.</param>
200        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
201        protected void btnBuscar_Click(object sender, EventArgs e)
202        {
203            try
204            {
205                BuscarFiltrando();
206            }
207            catch (Exception ex)
208            {
209                Master.ManageExceptions(ex);
210            }
211        }
212
213        /// <summary>
214        /// DESACTIVADO!!!!!!
215        /// Handles the Click event of the btnNuevo control.
216        /// </summary>
217        /// <param name="sender">The source of the event.</param>
218        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
219        protected void btnNuevo_Click(object sender, EventArgs e)
220        {
221            try
222            {
223                AccionPagina = enumAcciones.Nuevo;
224                LimpiarCampos();
225                esNuevo = true;
226                btnGuardar.Visible = true;
227                btnBuscar.Visible = false;
228                btnVolver.Visible = true;
229                btnNuevo.Visible = false;
230                gvwReporte.Visible = false;
231                litEditar.Visible = false;
232                litNuevo.Visible = true;
233                udpEdit.Visible = true;
234                udpFiltrosBusqueda.Visible = false;
235                udpFiltros.Update();
236                udpGrilla.Update();
237            }
238            catch (Exception ex)
239            {
240                Master.ManageExceptions(ex);
241            }
242        }
243
244        /// <summary>
245        /// Handles the Click event of the btnAsignarRol control.
246        /// </summary>
247        /// <param name="sender">The source of the event.</param>
248        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
249        protected void btnGuardar_Click(object sender, EventArgs e)
250        {
251            try
252            {
253                string mensaje = ValidarPagina();
254                if (mensaje == string.Empty)
255                {
256                    if (Page.IsValid)
257                    {
258                        AccionPagina = enumAcciones.Guardar;
259                        Master.MostrarMensaje(enumTipoVentanaInformacion.Confirmación.ToString(), UIConstantesGenerales.MensajeConfirmarCambios, enumTipoVentanaInformacion.Confirmación);
260                    }
261                }
262                else
263                {
264                    Master.MostrarMensaje(enumTipoVentanaInformacion.Advertencia.ToString(), UIConstantesGenerales.MensajeDatosFaltantes + mensaje, enumTipoVentanaInformacion.Advertencia);
265                }
266            }
267            catch (Exception ex)
268            {
269                Master.ManageExceptions(ex);
270            }
271        }
272
273        /// <summary>
274        /// Handles the Click event of the btnVolver control.
275        /// </summary>
276        /// <param name="sender">The source of the event.</param>
277        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
278        protected void btnVolver_Click(object sender, EventArgs e)
279        {
280            try
281            {
282                Response.Redirect("ManageAgendaActividades.aspx", false);
283            }
284            catch (Exception ex)
285            {
286                Master.ManageExceptions(ex);
287            }
288        }
289
290        /// <summary>
291        /// Método que se llama al hacer click sobre las acciones de la grilla
292        /// </summary>
293        /// <param name="sender">The source of the event.</param>
294        /// <param name="e">The <see cref="System.Web.UI.WebControls.GridViewCommandEventArgs"/> instance containing the event data.</param>
295        protected void gvwReporte_RowCommand(object sender, GridViewCommandEventArgs e)
296        {
297            try
298            {
299                switch (e.CommandName)
300                {
301                    case "Editar":
302                        propEvento.idEventoAgenda = Convert.ToInt32(e.CommandArgument.ToString());
303                        CargarEvento();
304                        break;
305                }
306            }
307            catch (Exception ex)
308            {
309                Master.ManageExceptions(ex);
310            }
311        }
312        #endregion
313
314        #region --[Métodos Privados]--
315        /// <summary>
316        /// Cargars the grilla.
317        /// </summary>
318        /// <typeparam name="T"></typeparam>
319        /// <param name="lista">The lista.</param>
320        private void CargarGrilla()
321        {
322            gvwReporte.DataSource = UIUtilidades.BuildDataTable<Excursion>(listaEventos).DefaultView;
323            gvwReporte.DataBind();
324            udpEdit.Visible = false;
325            udpGrilla.Update();
326        }
327
328        /// <summary>
329        /// Cargars the presentacion.
330        /// </summary>
331        private void CargarPresentacion()
332        {
333            lblTitulo.Text = propAgenda.cursoCicloLectivo.curso.nombre + " - " + propAgenda.cursoCicloLectivo.cicloLectivo.nombre;
334            LimpiarCampos();
335            //CargarCombos();
336            udpEdit.Visible = false;
337            btnVolver.Visible = true;
338            btnGuardar.Visible = false;
339            udpFiltrosBusqueda.Visible = true;
340            btnNuevo.Visible = true;
341            btnBuscar.Visible = true;
342            gvwReporte.Visible = true;
343            udpFiltros.Update();
344            udpGrilla.Update();
345        }
346
347        /// <summary>
348        /// Limpiars the campos.
349        /// </summary>
350        private void LimpiarCampos()
351        {
352            txtHoraDesdeEdit.Text = string.Empty;
353            txtHoraHastaEdit.Text = string.Empty;
354            chkActivo.Checked = true;
355            chkActivoEdit.Checked = false;
356            calFechaEvento.LimpiarControles();
357            calfechas.LimpiarControles();
358            txtDescripcionEdit.Text = string.Empty;
359            txtDestinoEdit.Text = string.Empty;
360        }
361
362        /// <summary>
363        /// Buscars the filtrando.
364        /// </summary>
365        private void BuscarFiltrando()
366        {
367            calfechas.ValidarRangoDesdeHasta(false);
368            Excursion evento = new Excursion();
369
370            evento.activo = chkActivo.Checked;
371            evento.fechaEventoDesde = Convert.ToDateTime(calfechas.ValorFechaDesde);
372            evento.fechaEventoHasta = Convert.ToDateTime(calfechas.ValorFechaHasta);
373
374            if (txtHoraDesdeEdit.Text.Trim().Length > 1)
375                evento.horaDesde = Convert.ToDateTime(txtHoraDesdeEdit.Text);
376
377            if (txtHoraHastaEdit.Text.Trim().Length > 1)
378                evento.horaHasta = Convert.ToDateTime(txtHoraHastaEdit.Text);
379
380            propFiltroEvento = evento;
381            BuscarAgenda(evento);
382        }
383
384        /// <summary>
385        /// Buscars the eventos.
386        /// </summary>
387        /// <param name="evento">The evento.</param>
388        private void BuscarAgenda(Excursion evento)
389        {
390            CargarLista(evento);
391            CargarGrilla();
392        }
393
394        /// <summary>
395        /// Cargars the lista.
396        /// </summary>
397        /// <param name="evento">The evento.</param>
398        private void CargarLista(Excursion evento)
399        {
400            objBLAgenda = new BLAgendaActividades();
401            evento.idAgendaActividad = propAgenda.idAgendaActividad;
402            listaEventos = objBLAgenda.GetExcursionesAgenda(evento);
403        }
404
405        /// <summary>
406        /// Obteners the valores pantalla.
407        /// </summary>
408        /// <returns></returns>
409        private Excursion ObtenerValoresDePantalla()
410        {
411            Excursion evento = new Excursion();
412            evento = propEvento;
413
414            if (!esNuevo)
415            {
416                evento.idAgendaActividad = propAgenda.idAgendaActividad;
417                evento.idEventoAgenda = propEvento.idEventoAgenda;
418            }
419
420            evento.fechaEvento = Convert.ToDateTime(calFechaEvento.ValorFecha);
421            evento.horaDesde = Convert.ToDateTime(txtHoraDesdeEdit.Text.Trim());
422            evento.horaHasta = Convert.ToDateTime(txtHoraHastaEdit.Text.Trim());
423            evento.destino = txtDestinoEdit.Text.Trim();
424            evento.descripcion = txtDescripcionEdit.Text.Trim();
425            evento.activo = chkActivoEdit.Checked;
426            evento.usuario.username = ObjSessionDataUI.ObjDTUsuario.Nombre;
427            evento.fechaAlta = DateTime.Now;
428
429            return evento;
430        }
431
432        /// <summary>
433        /// Registrar el evento.
434        /// </summary>
435        /// <param name="evento">The evento.</param>
436        private void GuardarEvento(EventoAgenda evento)
437        {
438            objBLAgenda = new BLAgendaActividades(propAgenda);
439            objBLAgenda.GetById();
440            evento.tipoEventoAgenda.idTipoEventoAgenda = (int)enumEventoAgendaType.Excursion;
441            if (objBLAgenda.VerificarAgendaExcursion(evento) && objBLAgenda.VerificarAgendaEvaluacion(evento,0))
442            {
443                objBLAgenda.Data.listaExcursiones.Add((Excursion)evento);
444                objBLAgenda.Save();
445            }
446        }
447
448        /// <summary>
449        /// Cargars the evento.
450        /// </summary>
451        private void CargarValoresEnPantalla(int idEventoAgenda)
452        {
453            propEvento = listaEventos.Find(c => c.idEventoAgenda == idEventoAgenda);
454
455            txtDescripcionEdit.Text = propEvento.descripcion;
456            txtDestinoEdit.Text = propEvento.destino;
457            txtHoraDesdeEdit.Text = Convert.ToDateTime(propEvento.horaDesde).ToShortTimeString();
458            txtHoraHastaEdit.Text = Convert.ToDateTime(propEvento.horaHasta).ToShortTimeString();
459            calFechaEvento.Fecha.Text = Convert.ToDateTime(propEvento.fechaEvento).ToShortDateString();
460            chkActivoEdit.Checked = propEvento.activo;
461        }
462
463        private string ValidarPagina()
464        {
465            calFechaEvento.ValidarRangoDesde(true);
466            string mensaje = string.Empty;
467            if (txtDescripcionEdit.Text.Trim().Length == 0)
468                mensaje = "- Descripcion<br />";
469            if (txtHoraDesdeEdit.Text.Trim().Length == 0)
470                mensaje += "- Hora Desde<br />";
471            if (txtHoraHastaEdit.Text.Trim().Length == 0)
472                mensaje += "- Hora Hasta<br />";
473            if (calFechaEvento.Fecha.Text.Trim().Length == 0)
474                mensaje += "- Fecha<br />";
475
476            return mensaje;
477        }
478
479        /// <summary>
480        /// Cargars the evento.
481        /// </summary>
482        private void CargarEvento()
483        {
484            AccionPagina = enumAcciones.Modificar;
485            esNuevo = false;
486            CargarValoresEnPantalla(propEvento.idEventoAgenda);
487            litEditar.Visible = true;
488            litNuevo.Visible = false;
489            btnBuscar.Visible = false;
490            btnNuevo.Visible = false;
491            btnVolver.Visible = true;
492            btnGuardar.Visible = true;
493            gvwReporte.Visible = false;
494            udpFiltrosBusqueda.Visible = false;
495            udpEdit.Visible = true;
496            udpFiltros.Update();
497            udpEdit.Update();
498        }
499
500        #endregion
501    }
502}