/// <summary> /// metodo que obtiene el porcentaje de asistencia para la actividad /// </summary> /// <param name="item">objeto grupo</param> /// <param name="idGrupo">id grupo seleccionado</param> /// <param name="SelectedParticipante">imputado seleccionado</param> /// <returns>porcentaje de asistencia</returns> private string ObtenerAsistencia(object item, short idGrupo, MaestroEmpalme SelectedParticipante) { try { var TotalHoras = 0.0; var AsistenciaHoras = 0.0; if (item is GRUPO) { TotalHoras = ((GRUPO)item).GRUPO_HORARIO.Where(w => w.ID_GRUPO == idGrupo && w.ESTATUS == 1).Count(); } else { TotalHoras = Convert.ToDouble(item); } AsistenciaHoras = SelectedParticipante.Entity.GRUPO_PARTICIPANTE.Where(w => w.ID_GRUPO == idGrupo).FirstOrDefault().GRUPO_ASISTENCIA.Where(w => w.GRUPO_HORARIO.ESTATUS == 1 && (w.ESTATUS == 1 || w.ESTATUS == 3) && SelectedParticipante.Entity.GRUPO_PARTICIPANTE.Where(wh => wh.GRUPO != null && wh.GRUPO.GRUPO_HORARIO.Where(whe => whe.ESTATUS == 1).Any()).Contains(w.GRUPO_PARTICIPANTE) && w.ASISTENCIA == 1).Count(); if (double.IsNaN((AsistenciaHoras / TotalHoras))) { return(string.Empty); } return(string.Format("{0:P2}", (AsistenciaHoras / TotalHoras))); } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al cargar la asistencia del participante.", ex); return(string.Empty); } }
/// <summary> /// metodo que obtiene las horas asignadas a la actividad /// </summary> /// <param name="item">grupo</param> /// <param name="SelectedParticipante">imputado seleccionado</param> /// <returns>cantidad de horas asignadas</returns> private string ObtenerHorasAsignadas(GRUPO item, MaestroEmpalme SelectedParticipante) { try { return(SelectedParticipante.Entity.GRUPO_PARTICIPANTE.Where(w => w.ID_GRUPO == item.ID_GRUPO).FirstOrDefault().GRUPO_ASISTENCIA.Where(w => w.EMPALME == 0 && w.ESTATUS == 1).Count().ToString()); } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al calcular horas asignadas del participante.", ex); return(string.Empty); } }
/// <summary> /// metodo que obtiene el calculo en porcentaje para el porcentaje de empalmes /// </summary> /// <param name="SelectedParticipante">imputado seleccionado</param> private void ObtenerEmpalmes(MaestroEmpalme SelectedParticipante) { try { var TotalHoras = 0.0; var AsistenciaHoras = 0.0; foreach (var item3 in SelectedParticipante.PorHora.GroupBy(g => g.Entity.GRUPO_PARTICIPANTE.GRUPO).Select(s => s.Key).OrderBy(o => o.ACTIVIDAD.PRIORIDAD).ToList()) { TotalHoras = SelectedParticipante.Entity.GRUPO_PARTICIPANTE.Where(w => w.ID_GRUPO == item3.ID_GRUPO).FirstOrDefault().GRUPO_ASISTENCIA.Where(w => w.ESTATUS == 1).Count(); AsistenciaHoras = SelectedParticipante.Entity.GRUPO_PARTICIPANTE.Where(w => w.ID_GRUPO == item3.ID_GRUPO).FirstOrDefault().GRUPO_ASISTENCIA.Where(w => w.ESTATUS == 1).Count() - Convert.ToDouble((Convert.ToInt32(DynamicGrid.Children.Cast <UIElement>().Where(w => w is TextBox).Cast <TextBox>().Where(w => w.Name.Equals("TB_" + item3.ID_GRUPO + "_3")).FirstOrDefault().Text))); if (double.IsNaN((AsistenciaHoras / TotalHoras))) { DynamicGrid.Children.Cast <UIElement>().Where(w => w is TextBox).Cast <TextBox>().Where(w => w.Name.Equals("TB_" + item3.ID_GRUPO + "_4")).FirstOrDefault().Text = string.Empty; continue; } DynamicGrid.Children.Cast <UIElement>().Where(w => w is TextBox).Cast <TextBox>().Where(w => w.Name.Equals("TB_" + item3.ID_GRUPO + "_4")).FirstOrDefault().Text = String.Format("{0:P2}", (AsistenciaHoras / TotalHoras)); } } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al calcular el porcentaje de horas empalmadas del participante.", ex); } }