/// <summary> /// metodo para abrir el popup de edicion de fecha /// </summary> /// <param name="obj">un objeto tipo grupo_horario o un objeto tipo datetime</param> private async void AbrirAgenda(object obj) { try { StaticSourcesViewModel.ShowMensajeProgreso("Abriendo Modal"); ListArea = ListArea ?? await StaticSourcesViewModel.CargarDatosAsync <ObservableCollection <AREA> >(() => new ObservableCollection <AREA>(new cArea().GetData().Where(w => w.ID_TIPO_AREA != 5))); ListEstatusGrupo = ListEstatusGrupo ?? await StaticSourcesViewModel.CargarDatosAsync <ObservableCollection <GRUPO_HORARIO_ESTATUS> >(() => new ObservableCollection <GRUPO_HORARIO_ESTATUS>(new cGrupoHorarioEstatus().GetData())); SelectedArea = null; SelectedEstatusGrupo = 1; EditFechaInicio = null; EditFechaFin = null; SelectedFecha = null; await TaskEx.Delay(1); EntityUpdate = null; AgregarFecha = Visibility.Collapsed; PopUpsViewModels.ShowPopUp(this, PopUpsViewModels.TipoPopUp.EDITAR_FECHA); if (obj == null) { return; } // se valida de que tipo es el objeto if (obj is GRUPO_HORARIO) { EntityUpdate = (GRUPO_HORARIO)obj; SelectedArea = EntityUpdate.ID_AREA; SelectedEstatusGrupo = EntityUpdate.ESTATUS; EditFechaInicio = EntityUpdate.HORA_INICIO; EditFechaFin = EntityUpdate.HORA_TERMINO; SelectedFecha = EntityUpdate.HORA_INICIO.Value.Date; } else { SelectedFecha = (DateTime)obj; } await TaskEx.Delay(1); if (ListInternosDia == null) { await TaskEx.Delay(1); } DatagridHorario.ItemsSource = ListInternosDia.Where(w => w.ListHorario.Any()); StaticSourcesViewModel.CloseMensajeProgreso(); } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al abrir agenda", ex); } }
/// <summary> /// metodo que tiene todas la funcionalidad de los clicks /// </summary> /// <param name="obj">parametro del evento click</param> private async void clickSwitch(Object obj) { try { var respuesta = false; switch (obj.ToString()) { case "menu_guardar": break; case "menu_agregar": if (!SelectedPrograma.HasValue || !SelectedActividad.HasValue || SelectedGrupo == null) { return; } ListArea = ListArea ?? await StaticSourcesViewModel.CargarDatosAsync <ObservableCollection <AREA> >(() => new ObservableCollection <AREA>(new cArea().GetData().Where(w => w.ID_TIPO_AREA != 5))); ListEstatusGrupo = ListEstatusGrupo ?? await StaticSourcesViewModel.CargarDatosAsync <ObservableCollection <GRUPO_HORARIO_ESTATUS> >(() => new ObservableCollection <GRUPO_HORARIO_ESTATUS>(new cGrupoHorarioEstatus().GetData())); SelectedEstatusGrupo = 1; SelectedArea = null; EditFechaInicio = null; EditFechaFin = null; SelectedFecha = FechaServer.Date; EntityUpdate = null; AgregarFecha = Visibility.Visible; PopUpsViewModels.ShowPopUp(this, PopUpsViewModels.TipoPopUp.EDITAR_FECHA); break; case "menu_eliminar": break; case "menu_editar": if (SelectedGrupo == null) { return; } ListEstatus = ListEstatus ?? new ObservableCollection <GRUPO_PARTICIPANTE_ESTATUS>(new cGrupoParticipanteEstatus().GetData().Where(w => w.ID_ESTATUS == 2 || w.ID_ESTATUS == 3 || w.ID_ESTATUS == 4)); ListInternosGrupo = new ObservableCollection <ListaManejoInternos>(new cGrupoParticipante().GetData().Where(w => w.ID_GRUPO == SelectedGrupo.ID_GRUPO && (w.GRUPO_PARTICIPANTE_CANCELADO.Where(wh => (wh.ID_CENTRO == w.ID_CENTRO && wh.ID_TIPO_PROGRAMA == w.ID_TIPO_PROGRAMA && wh.ID_ACTIVIDAD == w.ID_ACTIVIDAD && wh.ID_CONSEC == w.ID_CONSEC && wh.ID_GRUPO == w.ID_GRUPO)).Any() ? w.GRUPO_PARTICIPANTE_CANCELADO.Where(wh => (wh.ID_CENTRO == w.ID_CENTRO && wh.ID_TIPO_PROGRAMA == w.ID_TIPO_PROGRAMA && wh.ID_ACTIVIDAD == w.ID_ACTIVIDAD && wh.ID_CONSEC == w.ID_CONSEC) && (wh.RESPUESTA_FEC == null ? (wh.RESPUESTA_FEC == null && wh.ESTATUS == 0) : (w.GRUPO_PARTICIPANTE_CANCELADO.Where(whe => (whe.ID_CENTRO == w.ID_CENTRO && whe.ID_TIPO_PROGRAMA == w.ID_TIPO_PROGRAMA && whe.ID_ACTIVIDAD == w.ID_ACTIVIDAD && whe.ID_CONSEC == w.ID_CONSEC) && whe.RESPUESTA_FEC != null && (whe.ESTATUS == 0 || whe.ESTATUS == 2)).Count() == w.GRUPO_PARTICIPANTE_CANCELADO.Where(whe => (whe.ID_CENTRO == w.ID_CENTRO && whe.ID_TIPO_PROGRAMA == w.ID_TIPO_PROGRAMA && whe.ID_ACTIVIDAD == w.ID_ACTIVIDAD && whe.ID_CONSEC == w.ID_CONSEC)).Count()))).Any() : true)).OrderBy(o => o.ING_ID_ANIO).ThenBy(t => t.ING_ID_IMPUTADO).AsEnumerable().Select(s => new ListaManejoInternos() { Entity = s, FOLIO = s.INGRESO.IMPUTADO.ID_ANIO + "\\" + s.INGRESO.IMPUTADO.ID_IMPUTADO, PATERNO = s.INGRESO.IMPUTADO.PATERNO.Trim(), MATERNO = s.INGRESO.IMPUTADO.MATERNO.Trim(), NOMBRE = s.INGRESO.IMPUTADO.NOMBRE.Trim(), ListEstatusGrupoParticipante = ListEstatus, SelectEstatus = s.ESTATUS })); PopUpsViewModels.ShowPopUp(this, PopUpsViewModels.TipoPopUp.EDITAR_INTEGRANTES_GRUPO); break; case "menu_cancelar": ((System.Windows.Controls.ContentControl)PopUpsViewModels.MainWindow.FindName("contentControl")).Content = new ManejoGruposView(); ((System.Windows.Controls.ContentControl)PopUpsViewModels.MainWindow.FindName("contentControl")).DataContext = new ManejoGruposViewModel(); break; case "menu_ayuda": break; case "menu_salir": PrincipalViewModel.SalirMenu(); break; case "guardar_EdicionFecha": if (SelectedArea == null || SelectedEstatusGrupo == null || EditFechaInicio == null || EditFechaFin == null || FechaValidateEditHasError || !SelectedFecha.HasValue) { if (await new Dialogos().ConfirmacionDialogoReturn("Manejo de Grupo", "Faltan Campos Por Capturar") == 1) { return; } } if (AgregarFecha == Visibility.Visible) { EntityUpdate = new cGrupoHorario().GetData().Where(w => w.ID_GRUPO == SelectedGrupo.ID_GRUPO && (w.HORA_INICIO.Value.Year == SelectedFecha.Value.Year && w.HORA_INICIO.Value.Month == SelectedFecha.Value.Month && w.HORA_INICIO.Value.Day == SelectedFecha.Value.Day)).FirstOrDefault(); } if (EntityUpdate != null) { respuesta = await StaticSourcesViewModel.OperacionesAsync <bool>("Actualizando Fecha Del Grupo", () => { try { new cGrupoHorario().Update(new GRUPO_HORARIO() { ESTATUS = SelectedEstatusGrupo, HORA_INICIO = new DateTime(EntityUpdate.HORA_INICIO.Value.Year, EntityUpdate.HORA_INICIO.Value.Month, EntityUpdate.HORA_INICIO.Value.Day, EditFechaInicio.Value.Hour, EditFechaInicio.Value.Minute, 0), HORA_TERMINO = new DateTime(EntityUpdate.HORA_TERMINO.Value.Year, EntityUpdate.HORA_TERMINO.Value.Month, EntityUpdate.HORA_TERMINO.Value.Day, EditFechaFin.Value.Hour, EditFechaFin.Value.Minute, 0), ID_ACTIVIDAD = EntityUpdate.ID_ACTIVIDAD, ID_AREA = SelectedArea, ID_CENTRO = EntityUpdate.ID_CENTRO, ID_GRUPO = EntityUpdate.ID_GRUPO, ID_GRUPO_HORARIO = EntityUpdate.ID_GRUPO_HORARIO, ID_TIPO_PROGRAMA = EntityUpdate.ID_TIPO_PROGRAMA }); EditFechaInicio = EditFechaInicio.Value.AddSeconds(1); foreach (var item in ListInternosDia) { var update = new cGrupoAsistencia().GetData().Where(w => w.ID_CENTRO == item.Entity.ID_CENTRO && w.ID_TIPO_PROGRAMA == item.Entity.ID_TIPO_PROGRAMA && w.ID_ACTIVIDAD == item.Entity.ID_ACTIVIDAD && w.ID_GRUPO == item.Entity.ID_GRUPO.Value && w.ID_GRUPO_HORARIO == EntityUpdate.ID_GRUPO_HORARIO && w.ID_CONSEC == item.Entity.ID_CONSEC).FirstOrDefault(); if (update == null) { continue; } var updateempalme = ListInternosDia.Where(w => w.Entity.ID_CENTRO == item.Entity.ID_CENTRO && w.Entity.ID_TIPO_PROGRAMA == item.Entity.ID_TIPO_PROGRAMA && w.Entity.ID_ACTIVIDAD == item.Entity.ID_ACTIVIDAD && w.Entity.ID_GRUPO == item.Entity.ID_GRUPO.Value && w.Entity.GRUPO.GRUPO_HORARIO.Where(wh => wh.ID_CENTRO == item.Entity.ID_CENTRO && wh.ID_TIPO_PROGRAMA == item.Entity.ID_TIPO_PROGRAMA && wh.ID_ACTIVIDAD == item.Entity.ID_ACTIVIDAD && wh.ID_GRUPO == item.Entity.ID_GRUPO.Value && wh.ID_GRUPO_HORARIO == EntityUpdate.ID_GRUPO_HORARIO).Any() && w.Entity.ID_CONSEC == item.Entity.ID_CONSEC).FirstOrDefault().State == "Empalme"; new cGrupoAsistencia().Update(new GRUPO_ASISTENCIA() { ID_CENTRO = update.ID_CENTRO, ID_TIPO_PROGRAMA = update.ID_TIPO_PROGRAMA, ID_ACTIVIDAD = update.ID_ACTIVIDAD, ID_GRUPO = update.ID_GRUPO, ID_GRUPO_HORARIO = update.ID_GRUPO_HORARIO, ID_CONSEC = update.ID_CONSEC, FEC_REGISTRO = update.FEC_REGISTRO, ASISTENCIA = update.ASISTENCIA, EMPALME = updateempalme ? update.EMPALME : 0, EMP_COORDINACION = updateempalme ? update.EMP_COORDINACION : 0, EMP_APROBADO = updateempalme ? update.EMP_APROBADO : null, EMP_FECHA = updateempalme ? update.EMP_FECHA : null, ESTATUS = update.ESTATUS }); } if (ListInternosDia.Where(w => w.Revision && w.ListHorario != null && w.ListHorario.Where(wh => wh.State.Equals("Empalme")).Any()).Any()) { var listGA = new List <ListaEmpalmesInterno>(); var entitylistGH = new List <GRUPO_HORARIO>(); foreach (var item in ListInternosDia.Where(w => w.Revision && w.ListHorario != null && w.ListHorario.Where(wh => wh.State.Equals("Empalme")).Any())) { foreach (var itemLisAct in item.ListHorario.Where(w => w.State.Equals("Empalme"))) { entitylistGH.Add(itemLisAct.GrupoHorarioEntity); } listGA.Add(new ListaEmpalmesInterno() { EntityGrupoParticipante = item.Entity, ListGrupoHorario = entitylistGH }); } new cGrupoAsistencia().GenerarEmpalmes(listGA); } return(true); } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al modificar el estatus de los integrantes del grupo", ex); return(false); } }); if (respuesta) { await new Dialogos().ConfirmacionDialogoReturn("Manejo de Grupos", "El horario se modifico exitosamente"); } } else { respuesta = await StaticSourcesViewModel.OperacionesAsync <bool>("Insertando Nueva Fecha Para El Grupo", () => { try { var idGH = new cGrupoHorario().Insertar(new GRUPO_HORARIO() { ESTATUS = SelectedEstatusGrupo, HORA_INICIO = new DateTime(SelectedFecha.Value.Year, SelectedFecha.Value.Month, SelectedFecha.Value.Day, EditFechaInicio.Value.Hour, EditFechaInicio.Value.Minute, 0), HORA_TERMINO = new DateTime(SelectedFecha.Value.Year, SelectedFecha.Value.Month, SelectedFecha.Value.Day, EditFechaFin.Value.Hour, EditFechaFin.Value.Minute, 0), ID_ACTIVIDAD = SelectedActividad.Value, ID_AREA = SelectedArea, ID_CENTRO = GlobalVar.gCentro, ID_GRUPO = SelectedGrupo.ID_GRUPO, ID_TIPO_PROGRAMA = SelectedPrograma.Value }); foreach (var item in ListInternosDia) { if (item.State != "Empalme" || item.Revision) { new cGrupoAsistencia().Insert(new GRUPO_ASISTENCIA() { ID_CENTRO = GlobalVar.gCentro, ID_TIPO_PROGRAMA = item.Entity.ID_TIPO_PROGRAMA, ID_ACTIVIDAD = item.Entity.ID_ACTIVIDAD, ID_GRUPO = item.Entity.ID_GRUPO.Value, ID_GRUPO_HORARIO = idGH.ID_GRUPO_HORARIO, ID_CONSEC = item.Entity.ID_CONSEC, FEC_REGISTRO = Fechas.GetFechaDateServer, ASISTENCIA = null, EMPALME = 0, EMP_COORDINACION = 0, EMP_APROBADO = null, EMP_FECHA = null, ESTATUS = 1 }); } } if (ListInternosDia.Where(w => w.Revision && w.ListHorario != null && w.ListHorario.Where(wh => wh.State.Equals("Empalme")).Any()).Any()) { var listGA = new List <ListaEmpalmesInterno>(); var entitylistGH = new List <GRUPO_HORARIO>(); foreach (var item in ListInternosDia.Where(w => w.Revision && w.ListHorario != null && w.ListHorario.Where(wh => wh.State.Equals("Empalme")).Any())) { foreach (var itemLisAct in item.ListHorario.Where(w => w.State.Equals("Empalme"))) { entitylistGH.Add(itemLisAct.GrupoHorarioEntity); } listGA.Add(new ListaEmpalmesInterno() { EntityGrupoParticipante = item.Entity, ListGrupoHorario = entitylistGH }); } new cGrupoAsistencia().GenerarEmpalmes(listGA); } return(true); } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al modificar el estatus de los integrantes del grupo", ex); return(false); } }); if (respuesta) { await new Dialogos().ConfirmacionDialogoReturn("Manejo de Grupos", "El nuevo horario se agrego exitosamente"); } } CargarCalendarioGrupo(new cGrupo().GetData().Where(w => w.ID_GRUPO == SelectedGrupo.ID_GRUPO).FirstOrDefault()); TextError = null; PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.EDITAR_FECHA); break; case "cancelar_EdicionFecha": PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.EDITAR_FECHA); break; case "guardar_EdicionIntegrantesGrupo": respuesta = await StaticSourcesViewModel.OperacionesAsync <bool>("Actualizando estatus a los internos", () => { try { var dal = new cGrupoParticipanteCancelado(); foreach (var item in ListInternosGrupo.Where(w => w.SelectEstatus != 2)) { dal.InsertarParticipanteCancelado(new GRUPO_PARTICIPANTE_CANCELADO() { ID_CENTRO = item.Entity.ID_CENTRO, ID_ACTIVIDAD = item.Entity.ID_ACTIVIDAD, ID_TIPO_PROGRAMA = item.Entity.ID_TIPO_PROGRAMA, ID_CONSEC = item.Entity.ID_CONSEC, ID_GRUPO = item.Entity.ID_GRUPO.Value, ID_USUARIO = GlobalVar.gUsr, SOLICITUD_FEC = Fechas.GetFechaDateServer, RESPUESTA_FEC = null, MOTIVO = item.MOTIVO, ID_ESTATUS = item.SelectEstatus }); } return(true); } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al modificar el estatus de los integrantes del grupo", ex); return(false); } }); if (respuesta) { PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.EDITAR_INTEGRANTES_GRUPO); await new Dialogos().ConfirmacionDialogoReturn("Manejo de Grupo", "El cambio de estatus se actualizo exitosamente"); } break; case "cancelar_EdicionIntegranteGrupo": PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.EDITAR_INTEGRANTES_GRUPO); break; } } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error en la modificacion de la agenda", ex); } }