Exemplo n.º 1
0
        public List <Propuesta_Response> BuscarPropuestas(Propuesta_Request entidad)
        {
            List <Propuesta_Response> retorno = null;
            Propuesta_Response        tmp     = null;

            try
            {
                using (SqlConnection conection = new SqlConnection(ConfigurationManager.ConnectionStrings["cnxIndra"].ConnectionString))
                {
                    conection.Open();

                    using (SqlCommand command = new SqlCommand("[pa_sps_propuestas]", conection))
                    {
                        command.CommandType = CommandType.StoredProcedure;
                        command.Parameters.AddWithValue("@vi_nid_balanceo", entidad.nid_balanceo);
                        command.Parameters.AddWithValue("@vi_nid_portafolio", entidad.nid_portafolio);
                        command.Parameters.AddWithValue("@vi_no_componente", entidad.no_componente);
                        command.Parameters.AddWithValue("@vi_nid_recurso", entidad.nid_recurso);

                        using (SqlDataReader dr = command.ExecuteReader())
                        {
                            retorno = new List <Propuesta_Response>();
                            if (dr.HasRows)
                            {
                                while (dr.Read())
                                {
                                    tmp = new Propuesta_Response();
                                    tmp.nid_balanceo         = dr.GetInt32(dr.GetOrdinal("nid_balanceo"));
                                    tmp.nid_detalle          = dr.GetInt32(dr.GetOrdinal("nid_detalle"));
                                    tmp.no_codigo            = dr.GetString(dr.GetOrdinal("no_codigo"));
                                    tmp.no_nombre_componente = dr.GetString(dr.GetOrdinal("no_nombre_componente"));
                                    tmp.no_nombre_recurso    = dr.GetString(dr.GetOrdinal("no_nombre_recurso"));
                                    tmp.fe_crea       = dr.GetString(dr.GetOrdinal("fe_crea"));
                                    tmp.nu_solicitado = dr.GetInt32(dr.GetOrdinal("nu_solicitado"));
                                    tmp.nu_balanceo   = dr.GetInt32(dr.GetOrdinal("nu_balanceo"));
                                    tmp.prioridad     = dr.GetString(dr.GetOrdinal("no_prioridad"));
                                    tmp.resp_correo   = dr.GetString(dr.GetOrdinal("resp_correo"));
                                    tmp.resp_nombre   = dr.GetString(dr.GetOrdinal("resp_nombre"));
                                    tmp.bala_correo   = dr.GetString(dr.GetOrdinal("bala_correo"));
                                    tmp.bala_nombre   = dr.GetString(dr.GetOrdinal("bala_nombre"));

                                    retorno.Add(tmp);
                                }
                            }
                            else
                            {
                                retorno = new List <Propuesta_Response>();
                            }
                        }
                    }
                    conection.Close();
                }
                return(retorno);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
        public Eval_Response EvaluarPropuesta(Eval_Request obj)
        {
            try
            {
                Eval_Response retorno = new Eval_Response();
                if (obj.no_comentario == null)
                {
                    obj.no_comentario = "";
                }
                Propuesta_Request pr_para = new Propuesta_Request();
                pr_para.nid_portafolio = obj.idportafolio;
                List <Propuesta_Response> propuestas_gen   = BuscarPropuestas(pr_para);
                List <Propuesta_Response> propuestas_dt    = new List <Propuesta_Response>();
                Propuesta_Response        propuesta_tmp    = new Propuesta_Response();
                List <Eval_Tmp>           evaluaciones_tmp = new List <Eval_Tmp>();
                Eval_Tmp evl_tmp = new Eval_Tmp();
                for (int x = 0; x < obj.lista_parametros.Count(); x++)
                {
                    evl_tmp               = new Eval_Tmp();
                    evl_tmp.nid_detalle   = int.Parse(obj.lista_parametros[x]);
                    evl_tmp.no_comentario = obj.no_comentario;
                    evl_tmp.accion        = obj.accion;
                    evaluaciones_tmp.Add(evl_tmp);
                }

                for (int x = 0; x < evaluaciones_tmp.Count(); x++)
                {
                    evaluacionDA.EvaluarPropuesta(evaluaciones_tmp[x]);
                    propuesta_tmp = propuestas_gen.Where(y => y.nid_detalle.Equals(evaluaciones_tmp[x].nid_detalle)).SingleOrDefault();
                    if (propuesta_tmp != null)
                    {
                        propuestas_dt.Add(propuesta_tmp);
                    }
                }

                if (obj.accion == 0)
                {
                    retorno.resultado = 1;
                    retorno.mensaje   = "Se desaprobó satisfactoriamente las propuestas marcadas";
                }
                else
                {
                    retorno.resultado = 1;
                    retorno.mensaje   = "Se aprobó satisfactoriamente las propuestas marcadas";
                    EnviarCorreos_Responsables(propuestas_dt);
                    EnviarCorreos_Balanceadores(propuestas_dt);
                }


                return(retorno);
            }
            catch (Exception)
            {
                throw;
            }
        }