public ActionResult DeleteConfirmed(int id)
        {
            tbDeduccionInstitucionFinanciera tbDeduccionInstitucionFinanciera = db.tbDeduccionInstitucionFinanciera.Find(id);

            db.tbDeduccionInstitucionFinanciera.Remove(tbDeduccionInstitucionFinanciera);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        // GET: DeduccionInstitucionFinanciera/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            tbDeduccionInstitucionFinanciera tbDeduccionInstitucionFinanciera = db.tbDeduccionInstitucionFinanciera.Find(id);

            if (tbDeduccionInstitucionFinanciera == null)
            {
                return(HttpNotFound());
            }
            return(View(tbDeduccionInstitucionFinanciera));
        }
        public ActionResult Edit([Bind(Include = "deif_IdDeduccionInstFinanciera,emp_Id,insf_Id,deif_Monto,deif_Comentarios,deif_UsuarioCrea,deif_FechaCrea,deif_UsuarioModifica,deif_FechaModifica,deif_Activo")] tbDeduccionInstitucionFinanciera tbDeduccionInstitucionFinanciera)
        {
            string UserName = "";

            try
            {
                ViewBag.emp_Id   = new SelectList(db.tbEmpleado, "emp_Id", "emp_Nombres", tbDeduccionInstitucionFinanciera.emp_Id);
                ViewBag.insf_Id  = new SelectList(db.tbInstitucionFinanciera, "insf_Id", "insf_Nombre", tbDeduccionInstitucionFinanciera.insf_Id);
                ViewBag.Empleado = db.tbEmpleado.Where(x => x.est_Id == 5).ToList();
                int EmployeeID = Function.GetUser(out UserName);
                if (ModelState.IsValid)
                {
                    if (db.tbDeduccionInstitucionFinanciera.Any(a => a.insf_Id == tbDeduccionInstitucionFinanciera.insf_Id && a.insf_Id != tbDeduccionInstitucionFinanciera.insf_Id))
                    {
                    }
                }

                IEnumerable <Object> List = null;
                string Msj = "";
                List = db.UDP_Plani_tbDeduccionInstitucionFinanciera_Update(tbDeduccionInstitucionFinanciera.deif_IdDeduccionInstFinanciera,
                                                                            tbDeduccionInstitucionFinanciera.insf_Id,
                                                                            tbDeduccionInstitucionFinanciera.emp_Id,
                                                                            tbDeduccionInstitucionFinanciera.deif_Monto,
                                                                            tbDeduccionInstitucionFinanciera.deif_Comentarios,
                                                                            EmployeeID,
                                                                            Function.DatetimeNow(),
                                                                            tbDeduccionInstitucionFinanciera.deif_Activo);
                foreach (UDP_Plani_tbDeduccionInstitucionFinanciera_Update_Result inst in List)
                {
                    Msj = inst.MensajeError;
                }
                if (Msj.StartsWith("-1"))
                {
                    Function.BitacoraErrores("InstitucionFinanciera", "EditPost", UserName, Msj);
                    return(View(tbDeduccionInstitucionFinanciera));
                }
                else
                {
                    return(RedirectToAction("Index"));
                }
            }
            catch (Exception Ex)
            {
                Function.BitacoraErrores("InstitucionFinanciera", "EditPost", UserName, Ex.Message.ToString());
                ModelState.AddModelError("", "No se pudo insertar el registro, favor contacte al administrador.");
                return(View());
            }
        }
        // GET: DeduccionInstitucionFinanciera/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            tbDeduccionInstitucionFinanciera tbDeduccionInstitucionFinanciera = db.tbDeduccionInstitucionFinanciera.Find(id);

            if (tbDeduccionInstitucionFinanciera == null)
            {
                return(HttpNotFound());
            }

            ViewBag.emp_Id   = new SelectList(db.tbEmpleado, "emp_Id", "emp_Nombres", tbDeduccionInstitucionFinanciera.emp_Id);
            ViewBag.insf_Id  = new SelectList(db.tbInstitucionFinanciera, "insf_Id", "insf_Nombre", tbDeduccionInstitucionFinanciera.insf_Id);
            ViewBag.Empleado = db.tbEmpleado.Where(x => x.est_Id == 5).ToList();
            return(View(tbDeduccionInstitucionFinanciera));
        }
        public ActionResult Create([Bind(Include = "deif_IdDeduccionInstFinanciera,emp_Id,insf_Id,deif_Monto,deif_Comentarios,deif_UsuarioCrea,deif_FechaCrea,deif_UsuarioModifica,deif_FechaModifica,deif_Activo")] tbDeduccionInstitucionFinanciera tbDeduccionInstitucionFinanciera)
        {
            string UserName = "";

            try
            {
                ViewBag.insf_Id  = new SelectList(db.tbInstitucionFinanciera, "insf_Id", "insf_Nombre");
                ViewBag.Empleado = db.tbEmpleado.Where(x => x.est_Id == 5).ToList();
                int EmployeeID = Function.GetUser(out UserName);
                if (ModelState.IsValid)
                {
                    IEnumerable <object> _List = null;
                    string ErrorMessage        = "";
                    _List = db.UDP_Plani_tbDeduccionInstitucionFinanciera_Insert(tbDeduccionInstitucionFinanciera.insf_Id, tbDeduccionInstitucionFinanciera.emp_Id, tbDeduccionInstitucionFinanciera.deif_Monto, tbDeduccionInstitucionFinanciera.deif_Comentarios, EmployeeID, Function.DatetimeNow(), GeneralFunctions.Activo);
                    foreach (UDP_Plani_tbDeduccionInstitucionFinanciera_Insert_Result Area in _List)
                    {
                        ErrorMessage = Area.MensajeError;
                    }
                    if (ErrorMessage.StartsWith("-1"))
                    {
                        Function.BitacoraErrores("DeduccionFinanciera", "CreatePost", UserName, ErrorMessage);
                        ModelState.AddModelError("", "No se pudo insertar el registro, favor contacte al administrador.");
                        return(View(tbDeduccionInstitucionFinanciera));
                    }

                    else
                    {
                        TempData["swalfunction"] = "true";

                        return(RedirectToAction("Index"));
                    }
                }
                return(View(tbDeduccionInstitucionFinanciera));
            }
            catch (Exception Ex)
            {
                Function.BitacoraErrores("DeduccionFinanciera", "CreatePost", UserName, Ex.Message.ToString());
                ModelState.AddModelError("", "No se pudo insertar el registro, favor contacte al administrador.");
                return(View(tbDeduccionInstitucionFinanciera));
            }
        }
        public JsonResult InactivarInstitucionFinanciera(int insf_Id)
        {
            string UserName           = "";
            IEnumerable <Object> list = null;

            try
            {
                int EmployeeID = Function.GetUser(out UserName);
                tbDeduccionInstitucionFinanciera tbDeduccionInstitucionFinanciera = db.tbDeduccionInstitucionFinanciera.Find(insf_Id);
                list = db.UDP_Plani_tbDeduccionInstitucionFinanciera_Update(tbDeduccionInstitucionFinanciera.deif_IdDeduccionInstFinanciera,
                                                                            tbDeduccionInstitucionFinanciera.insf_Id,
                                                                            tbDeduccionInstitucionFinanciera.emp_Id,
                                                                            tbDeduccionInstitucionFinanciera.deif_Monto,
                                                                            tbDeduccionInstitucionFinanciera.deif_Comentarios,
                                                                            EmployeeID,
                                                                            Function.DatetimeNow(),
                                                                            GeneralFunctions.instfinDenegar);
            }
            catch (Exception Ex)
            {
            }
            return(Json(list, JsonRequestBehavior.AllowGet));
        }
        public ActionResult _CargaDocumento(HttpPostedFileBase archivoexcel, string cboINFS, string cboIdDeduccion)
        {
            string response     = String.Empty;
            string MensajeError = "";

            //Verificacion del objetto recibido (archivo excel), si esta vacio retornara un error, de lo contrario continuara con el proceso.
            if (archivoexcel != null && archivoexcel.ContentLength > 0)
            {
                //Guardado del archivo en el servidor
                string path = Path.Combine(Server.MapPath("~/Content/PlanillasInstitucionesFinancieras"),
                                           Path.GetFileName(archivoexcel.FileName));
                archivoexcel.SaveAs(path);

                try
                {
                    List <int> idsDeducciones = db.tbCatalogoDeDeducciones.Where(x => x.cde_Activo == true).Select(x => x.cde_IdDeducciones).ToList();
                    List <int> idsINFS        = db.tbInstitucionesFinancieras.Where(x => x.insf_Activo == true).Select(x => x.insf_IdInstitucionFinanciera).ToList();

                    int idCatDeduc = Convert.ToInt16(cboIdDeduccion);
                    int IdInsF     = Convert.ToInt16(cboINFS);

                    if (!idsDeducciones.Contains(idCatDeduc))
                    {
                        response = "error";
                    }
                    else if (!idsDeducciones.Contains(IdInsF))
                    {
                        response = "error";
                    }
                    else
                    {
                        //Deserealizacion del archivo excel cargado al sistema.
                        SLDocument sl = new SLDocument(path);

                        //Recorremos el archivo para obtener la informaicon.
                        using (var db = new ERP_GMEDINAEntities())
                        {
                            int iRow = 2;
                            while (!string.IsNullOrEmpty(sl.GetCellValueAsString(iRow, 1)))
                            {
                                string  identidad  = sl.GetCellValueAsString(iRow, 1);
                                decimal monto      = sl.GetCellValueAsDecimal(iRow, 2);
                                string  comentario = sl.GetCellValueAsString(iRow, 3);


                                var oMiExcel = new tbDeduccionInstitucionFinanciera();

                                var IdEmpleado = (from P in db.tbPersonas
                                                  join E in db.tbEmpleados on P.per_Id equals E.per_Id
                                                  where
                                                  P.per_Identidad == identidad
                                                  select new
                                {
                                    empleadoID = E.emp_Id,
                                }).FirstOrDefault();
                                var sql        = (from infs in db.tbDeduccionInstitucionFinanciera select infs.deif_IdDeduccionInstFinanciera).Max();
                                var iddeducfin = sql + 1;

                                //Validamos si encontro empleados que correspondan a los numeros de identidad proporcionados, de lo contrario mostrara error.
                                if (IdEmpleado != null)
                                {
                                    var IdEmple = IdEmpleado.empleadoID;
                                    oMiExcel.deif_IdDeduccionInstFinanciera = iddeducfin;
                                    oMiExcel.emp_Id = IdEmple;
                                    oMiExcel.insf_IdInstitucionFinanciera = IdInsF;
                                    oMiExcel.deif_Monto           = monto;
                                    oMiExcel.deif_Comentarios     = comentario;
                                    oMiExcel.cde_IdDeducciones    = idCatDeduc;
                                    oMiExcel.deif_UsuarioCrea     = 1;
                                    oMiExcel.deif_FechaCrea       = DateTime.Now;
                                    oMiExcel.deif_UsuarioModifica = null;
                                    oMiExcel.deif_FechaModifica   = null;
                                    oMiExcel.deif_Activo          = true;
                                    oMiExcel.deif_Pagado          = false;
                                    db.tbDeduccionInstitucionFinanciera.Add(oMiExcel);
                                    db.SaveChanges();
                                }
                                else
                                {
                                    return(RedirectToAction("CargaDocumento"));
                                }
                                iRow++;
                            }
                        }
                        response = "bien";
                    }
                }
                catch (Exception)
                {
                    response = "error";
                }
            }
            else
            {
                MensajeError = "Error: Debe seleccionar un archivo para poder cargarlo al sistema.";
            }

            List <tbCatalogoDeDeducciones> OCatalogoDeducciones = db.tbCatalogoDeDeducciones.Where(x => x.cde_Activo == true).ToList();

            ViewBag.Deducciones = OCatalogoDeducciones;
            var listaINFS = from INFS in db.tbInstitucionesFinancieras
                            select new
            {
                idinfs   = INFS.insf_IdInstitucionFinanciera,
                descinfs = INFS.insf_DescInstitucionFinanc
            };
            var list = new SelectList(listaINFS, "idinfs", "descinfs");

            ViewData["INFS"] = list;

            if (response == "error")
            {
                ViewBag.MensajeError = "error";
            }
            else
            {
                ViewBag.MensajeError = "bien";
            }

            return(View("CargaDocumento"));
        }