Ejemplo n.º 1
0
        /// <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));
        }
Ejemplo n.º 2
0
    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);
    }