public ActionResult Edit(PositionQuestionViewModel Pq)
        {
            userType          = Convert.ToInt32(Request.RequestContext.HttpContext.Session["TipoUsuario"]);
            ViewBag.Cargos    = new SelectList(Tools.LeerCargos(userType), "Codigo_Cargo", "Nombre_Cargo", "");
            ViewBag.Section   = new SelectList(Tools.LeerSecciones(), "Codigo_Seccion", "Nombre_Seccion", "");
            ViewBag.State     = new SelectList(Tools.LeerEstados(), "IdState", "StateDescription", "");
            ViewBag.RQuestion = new SelectList(Tools.LeerPreguntasAleatorias(Pq.Codigo_seccion, Pq.Numero_Pregunta), "Numero_Pregunta", "Texto_Pregunta", "");

            try
            {
                if (ModelState.IsValid)
                {
                    #region Graba Datos
                    using BD_EvaluacionEntities Db = new BD_EvaluacionEntities();
                    Preguntas_Cargos oPq = Db.Preguntas_Cargos.Where(i => i.Codigo_Cargo == Pq.Codigo_Cargo && i.Cod_Cargo_Evaluado == Pq.Cod_Cargo_Evaluado && i.Codigo_seccion == Pq.Codigo_seccion && i.Numero_Pregunta == Pq.Numero_Pregunta).SingleOrDefault();
                    if (oPq != null)
                    {
                        oPq.Numero_Pregunta = Pq.Numero_Pregunta;
                        oPq.IdState         = Pq.IdState;
                        Db.Entry(oPq).State = System.Data.Entity.EntityState.Modified;
                        Db.SaveChanges();
                        mensaje = "Ok";
                    }
                    else
                    {
                        mensaje = "El registro no se modificó";
                    }
                    #endregion
                }
                else
                {
                    #region Errores de Modelo
                    string errors = string.Empty;
                    foreach (var item in ModelState.Values)
                    {
                        if (item.Errors.Count > 0)
                        {
                            mensaje += string.Format("{0} \n", item.Errors[0].ErrorMessage);
                        }
                    }
                    mensaje += " Contacte al Administrador";
                    #endregion
                }
                return(View(new { mensaje }));
            }
            catch (Exception ex)
            {
                mensaje = ex.InnerException.InnerException.Message + "Contactar al administrador";
                return(RedirectToAction("Edit", "PositionQuestion", new { codCargo = Pq.Codigo_Cargo, codCargoEval = Pq.Cod_Cargo_Evaluado, codSection = Pq.Codigo_seccion, questionNo = Pq.Numero_Pregunta, mensaje }));
            }
        }
        public JsonResult Create(List <PositionQuestionViewModel> ListJson)
        {
            try
            {
                #region Graba Datos
                using var bd = new BD_EvaluacionEntities();

                foreach (var item in ListJson)
                {
                    var existe = bd.Cargos_Evaluadores.Where(x => x.Codigo_Cargo == item.Codigo_Cargo && x.Cod_Cargo_Evaluado == item.Cod_Cargo_Evaluado);
                    if (existe.Count() != 0)
                    {
                        var oPQ = new Preguntas_Cargos
                        {
                            Codigo_Cargo       = item.Codigo_Cargo,
                            Cod_Cargo_Evaluado = item.Cod_Cargo_Evaluado,
                            Codigo_seccion     = item.Codigo_seccion,
                            Numero_Pregunta    = item.Numero_Pregunta,
                            IdState            = item.IdState
                        };
                        bd.Preguntas_Cargos.Add(oPQ);
                    }
                    else
                    {
                        mensaje = "Usuarios Evaluador y Evaluado no existen en Cargos Evaluadores Valide la información e intente nuevamente";
                        return(Json(mensaje));
                    }
                }
                bd.SaveChanges();
                mensaje = "Ok";
                #endregion
            }
            catch (Exception ex)
            {
                mensaje = ex.InnerException.InnerException.Message + "Contactar al administrador";
            }
            return(Json(mensaje));
        }
Esempio n. 3
0
        public List <EPExcelModel> SaveEPExcel(string FilePath)
        {
            List <EPExcelModel> excelData = new List <EPExcelModel>();

            try
            {
                FileInfo existingFile = new FileInfo(FilePath);
                using ExcelPackage package = new ExcelPackage(existingFile);
                ExcelWorksheet wrkSheet = package.Workbook.Worksheets[1];
                int            rowCount = wrkSheet.Dimension.End.Row;

                BD_EvaluacionEntities db = new BD_EvaluacionEntities();
                var Proceso = db.Procesos_Evaluacion.Where(x => x.Estado_PE == "A").FirstOrDefault();
                var EvalNo  = db.Auto_Evaluaciones.Where(ae => ae.Codigo_Proceso == Proceso.Codigo_Proceso).FirstOrDefault();
                try
                {
                    var NumEval = EvalNo.Numero_Evaluacion;
                    for (int row = 2; row <= rowCount; row++)
                    {
                        if (wrkSheet.Cells[row, 1].Value != null)
                        {
                            NumEval += 1;

                            var CodCargo = wrkSheet.Cells[row, 1].Value.ToString().Trim().ToUpper();
                            var CodSec   = wrkSheet.Cells[row, 2].Value.ToString().Trim().ToUpper();
                            var Pctje    = wrkSheet.Cells[row, 3].Value.ToString().Trim().ToUpper();


                            var CodUsuario = db.Usuarios.Where(u => u.Codigo_Cargo == CodCargo).Select(usu => usu.Codigo_Usuario).FirstOrDefault();

                            int res = Tools.ValidaDominios(CodSec);
                            if (res == 1)
                            {
                                int total = 0;
                                IEnumerable <int> Preguntas;
                                if (Pctje == "S")
                                {
                                    var Preg = db.Preguntas_Aleatorias.Where(x => x.Codigo_Seccion == CodSec && x.Ponderacion_P > 0)
                                               .Select(a => a.Numero_Pregunta);
                                    Preguntas = Preg.ToList();
                                }
                                else
                                {
                                    var Preg = db.Preguntas_Aleatorias.Where(xx => xx.Codigo_Seccion == CodSec && xx.Ponderacion_P == 0)
                                               .Select(a => a.Numero_Pregunta);
                                    Preguntas = Preg.ToList();
                                }

                                foreach (var QuestNo in Preguntas)
                                {
                                    var existe = db.Preguntas_Cargos.Find(CodCargo, CodCargo, CodSec, QuestNo);
                                    if (existe == null)
                                    {
                                        total += 1;
                                        var oEpc = new Preguntas_Cargos
                                        {
                                            Codigo_Cargo       = CodCargo,
                                            Cod_Cargo_Evaluado = CodCargo,
                                            Codigo_seccion     = CodSec,
                                            Numero_Pregunta    = QuestNo,
                                            IdState            = 1
                                        };
                                        db.Preguntas_Cargos.Add(oEpc);

                                        excelData.Add(new EPExcelModel()
                                        {
                                            Codigo_Cargo       = CodCargo,
                                            Cod_Cargo_Evaluado = CodCargo,
                                            Codigo_Seccion     = CodSec,
                                            Numero_Pregunta    = QuestNo,
                                            IdState            = 1
                                        });
                                    }

                                    var EvCargos = db.Cargos_Evaluadores.Where(x => x.Cod_Cargo_Evaluado == CodCargo && x.Codigo_Cargo != CodCargo).Select(ev => ev.Codigo_Cargo).ToList();
                                    foreach (var cargo in EvCargos)
                                    {
                                        var existePC = db.Preguntas_Cargos.Find(cargo, CodCargo, CodSec, QuestNo);
                                        if (existePC == null)
                                        {
                                            var oEvc = new Preguntas_Cargos
                                            {
                                                Codigo_Cargo       = cargo,
                                                Cod_Cargo_Evaluado = CodCargo,
                                                Codigo_seccion     = CodSec,
                                                Numero_Pregunta    = QuestNo,
                                                IdState            = 1
                                            };
                                            db.Preguntas_Cargos.Add(oEvc);
                                            excelData.Add(new EPExcelModel()
                                            {
                                                Codigo_Cargo       = cargo,
                                                Cod_Cargo_Evaluado = CodCargo,
                                                Codigo_Seccion     = CodSec,
                                                Numero_Pregunta    = QuestNo,
                                                IdState            = 1
                                            });
                                        }
                                    }
                                    db.SaveChanges();

                                    if (total == 0)
                                    {
                                        excelData.Clear();
                                        excelData.Add(new EPExcelModel()
                                        {
                                            Codigo_Seccion  = "Error",
                                            Mensaje         = "Los registros ya existen, valide la información",
                                            Numero_Pregunta = 0
                                        });
                                    }
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    string mensaje = ex.InnerException.InnerException.Message;
                    excelData.Clear();
                    excelData.Add(new EPExcelModel()
                    {
                        Codigo_Seccion  = "Error",
                        Mensaje         = mensaje,
                        Numero_Pregunta = 0
                    });
                }

                return(excelData);
            }
            catch (Exception ex)
            {
                string mensaje = ex.Message;

                excelData.Clear();
                excelData.Add(new EPExcelModel()
                {
                    Codigo_Seccion  = "Error",
                    Mensaje         = mensaje,
                    Numero_Pregunta = 0
                });

                return(excelData);
            }
        }