/// <summary> /// </summary> /// <param name="usuario"></param> /// <param name="ModoVerificadorGDE">Existe un perfil de usuario que se encarga de verificar que los codigos de GDE esten bien cargados, para ese usuario, este param va en true</param> /// <param name="ModoComitesEvaluacion">Cuando el usuario es de un comite de evaluacion, puede ver todas las evaluaciones, con/sin codigo gde. Y de todas las personas (sin importar el evaluador)</param> /// <param name="IncludeTextosPreguntas">Para evitar transferir por el webservice responses demasiado grande, se quitan las respuestas de las evaluaciones</param> /// <returns></returns> protected RespuestaGetAgentesEvaluablesPor GetAgentesEvaluablesPor(int id_evaluacion, Usuario usuario, bool ModoVerificadorGDE, bool ModoComitesEvaluacion, bool IncludeTextosPreguntas) { var parametros = new Dictionary <string, object>(); var id_persona_usuario = usuario.Owner.Id; var es_agente_verificador = true; if (!ModoComitesEvaluacion) { if (!EsAgenteVerificador(usuario) || !ModoVerificadorGDE) { parametros.Add("@id_persona_evaluadora", id_persona_usuario); es_agente_verificador = false; } else { parametros.Add("@solo_con_codigo_gde", 1); } } if (id_evaluacion > 0) { parametros.Add("@id_evaluacion", id_evaluacion); } var sp = IncludeTextosPreguntas ? "dbo.EVAL_GET_Evaluados_Evaluador" : "dbo.EVAL_GET_Evaluados_Evaluador_Slim"; //var sp = "dbo.EVAL_GET_Evaluados_Evaluador"; var tablaDatos = _conexion.Ejecutar(sp, parametros); var asignaciones = new List <AsignacionEvaluadoAEvaluador> { }; var detalle_preguntas = new List <DetallePreguntas> { }; var cache_areas = new Dictionary <int, DescripcionAreaEvaluacion>(); var cache_evaluadores = new Dictionary <int, AgenteEvaluacionDesempenio>(); var primer_row = true; //var usuario_evaluador = GetAgenteEvaluadorEvaluacionDesempenio(id_persona_usuario, cache_evaluadores); AsignacionEvaluadoAEvaluador asignacion_evaluado_a_evaluador = new AsignacionEvaluadoAEvaluador(); if (tablaDatos.Rows.Count > 0) { var id_evaluacion_anterior = 0; var id_evaluado_anterior = 0; tablaDatos.Rows.ForEach(row => { var resp_primario_ue = GetAgenteEvaluadorEvaluacionDesempenio(row.GetSmallintAsInt("idResponsablePrimarioUe"), row.GetSmallintAsInt("id_Periodo"), cache_evaluadores); //usuario_evaluador.area = GetDescripcionAreaEvaluacion(row.GetInt("id_area_ue", 0), cache_areas, row.GetString("codigo_unidad_eval", "")); if (primer_row == true) { primer_row = false; id_evaluacion_anterior = row.GetSmallintAsInt("id_evaluacion", 0); id_evaluado_anterior = row.GetSmallintAsInt("id_evaluado", 0); var id_evaluado = row.GetSmallintAsInt("id_evaluado", 0); asignacion_evaluado_a_evaluador = newAsignacionEvaluadoAEvaluadorFromRow(row, detalle_preguntas, id_evaluado, cache_areas, resp_primario_ue); } if (row.GetSmallintAsInt("id_evaluado", 0) != id_evaluado_anterior || row.GetSmallintAsInt("id_evaluacion", 0) != id_evaluacion_anterior) { asignaciones.Add(asignacion_evaluado_a_evaluador); id_evaluacion_anterior = row.GetSmallintAsInt("id_evaluacion", 0); id_evaluado_anterior = row.GetSmallintAsInt("id_evaluado", 0); detalle_preguntas = new List <DetallePreguntas>(); var id_evaluado = row.GetSmallintAsInt("id_evaluado", 0); asignacion_evaluado_a_evaluador = newAsignacionEvaluadoAEvaluadorFromRow(row, detalle_preguntas, id_evaluado, cache_areas, resp_primario_ue); AddDetallePreguntasA(detalle_preguntas, row, IncludeTextosPreguntas); } else { AddDetallePreguntasA(detalle_preguntas, row, IncludeTextosPreguntas); } }); } if (tablaDatos.Rows.Count > 0) { asignaciones.Add(asignacion_evaluado_a_evaluador); } asignaciones = asignaciones.OrderBy(a => a.agente_evaluado.apellido).ThenBy(a => a.agente_evaluado.nombre).ToList(); return(new RespuestaGetAgentesEvaluablesPor(asignaciones, es_agente_verificador, usuario)); }
public override Dictionary <string, string> CrearMapa(List <object> modelo) { AsignacionEvaluadoAEvaluador asignacion = (AsignacionEvaluadoAEvaluador)modelo.First(); Usuario usr = (Usuario)modelo[1]; mapa.Add("Nivel_Form", asignacion.nivel.descripcion_corta); mapa.Add("Jurisdiccion", asignacion.agente_evaluado.area.jurisdiccion); mapa.Add("Secretaria", asignacion.agente_evaluado.area.secretaria); mapa.Add("Subsecretaria", asignacion.agente_evaluado.area.sub_secretaria); mapa.Add("Dir_nac_gral", asignacion.agente_evaluado.area.direccion); mapa.Add("Unidad_eval", asignacion.unidad_de_evaluacion.NombreArea); mapa.Add("Cod_unidad_eval", asignacion.unidad_de_evaluacion.Codigo); if (asignacion.periodo.descripcion_tipo_periodo.Equals("No Especifica")) { mapa.Add("Periodo_desde", asignacion.periodo.desde.ToString("dd/MM/yyyy") + " AL " + asignacion.periodo.hasta.ToString("dd/MM/yyyy")); //mapa.Add("Periodo_hasta", asignacion.periodo.hasta.ToString("dd/MM/yyyy")); } else { mapa.Add("Periodo_desde", asignacion.periodo.descripcion_tipo_periodo); //mapa.Add("Periodo_hasta", ""); } mapa.Add("Evaluador_nya", asignacion.agente_evaluador.apellido + ", " + asignacion.agente_evaluador.nombre); mapa.Add("Evaluador_dni", asignacion.agente_evaluador.nro_documento.ToString()); mapa.Add("Evaluador_escalaf", "SINEP"); mapa.Add("Evaluador_nivel", asignacion.agente_evaluador.nivel); mapa.Add("Evaluador_grado", asignacion.agente_evaluador.grado); mapa.Add("Evaluador_agrupamiento", asignacion.agente_evaluador.agrupamiento); mapa.Add("Evaluador_cargo", asignacion.agente_evaluador.puesto_o_cargo); mapa.Add("Evaluado_nya", asignacion.agente_evaluado.apellido + ", " + asignacion.agente_evaluado.nombre); mapa.Add("Evaluado_dni", asignacion.agente_evaluado.nro_documento.ToString()); mapa.Add("Evaluado_legajo", asignacion.agente_evaluado.legajo.ToString()); mapa.Add("Evaluado_nivel", asignacion.agente_evaluado.nivel); mapa.Add("Evaluado_grado", asignacion.agente_evaluado.grado); mapa.Add("Evaluado_agrupamiento", asignacion.agente_evaluado.agrupamiento); mapa.Add("Evaluado_nivel_educativo", asignacion.agente_evaluado.nivel_educativo); mapa.Add("Cod_unidad_eval.0", asignacion.unidad_de_evaluacion.Codigo); int i = 1; var subtotal_1a6 = 0; var subtotal_7a12 = 0; if (asignacion.evaluacion.detalle_preguntas.Count > 12) { throw new Exception("El formulario seleccionado no soporta mas de 12 preguntas"); } foreach (var pregunta in asignacion.evaluacion.detalle_preguntas) { mapa.Add("Factor_" + i.ToString("00"), pregunta.factor + ' ' + pregunta.enunciado); mapa.Add("Cualidad_" + i.ToString("00"), pregunta.RespuestaElegida()); mapa.Add("Puntos_" + i.ToString("00"), (5 - pregunta.opcion_elegida).ToString()); mapa.Add("Factor_" + i.ToString("00") + "_num", pregunta.factor); mapa.Add("Valor_" + i.ToString("00") + "_num", (5 - pregunta.opcion_elegida).ToString()); if (i < 7) { subtotal_1a6 += (5 - pregunta.opcion_elegida); } else { subtotal_7a12 += (5 - pregunta.opcion_elegida); } i++; } for (int j = asignacion.evaluacion.detalle_preguntas.Count + 1; j <= 12; j++) { mapa.Add("Factor_" + j.ToString("00"), "--"); mapa.Add("Cualidad_" + j.ToString("00"), "--"); mapa.Add("Puntos_" + j.ToString("00"), "--"); mapa.Add("Factor_" + j.ToString("00") + "_num", "--"); mapa.Add("Valor_" + j.ToString("00") + "_num", "--"); } mapa.Add("Subtotal_1_a_6", subtotal_1a6.ToString()); mapa.Add("Subtotal_7_a_12", subtotal_7a12.ToString()); var total = subtotal_1a6 + subtotal_7a12; mapa.Add("Total", total.ToString()); mapa.Add("Total_deficiente", "--"); mapa.Add("Total_regular", "--"); mapa.Add("Total_bueno", "--"); mapa.Add("Total_destacado", "--"); mapa["Total_" + asignacion.nivel.CalificacionPara(total).ToLower()] = total.ToString(); //mapa.Add("Nombre_usu", usr.Owner.Apellido + ", " + usr.Owner.Nombre + " (" + usr.Owner.Documento.ToString() + ")"); mapa.Add("Nombre_usu", asignacion.agente_evaluador.apellido + ", " + asignacion.agente_evaluador.nombre + " (" + asignacion.agente_evaluador.nro_documento.ToString() + ")"); mapa.Add("Fecha_hora", asignacion.evaluacion.fecha.ToString("dd/MM/yyyy")); mapa.Add("Identif_Formulario", asignacion.evaluacion.id_doc_electronico); return(mapa); }