/// <summary> /// Obtiene las sucursales a las que tiene acceso el usuario /// </summary> /// <returns></returns> public List <SucursalDatos> GetSucursalesByUser() { var user = ControlAcceso.GetUsuarioEnSession(); if (user == null) { return(null); } //Validamos el campo sucursal no este vacio if (user.Sucursales.Trim() == "") { return(null); } var list = new List <SucursalDatos>(); list = Sucursales.GetSucursales(); if (user.IdPerfil == 1 || user.Sucursales.Trim() == "*") { return(list); } var sucursales = user.Sucursales.Split(','); list = list.Where(x => sucursales.Contains(x.IdSucursal.ToString())).ToList(); return(list); }
public NotificacionDatos GetNotificationDetails(int id) { var user = ControlAcceso.GetUsuarioEnSession(); return((from n in ctx.Notificaciones join t in ctx.C_NotificacionTipo on n.IdTipo equals t.IdTipo join su in ctx.SYA_Usuarios on n.UsuarioReg equals su.IdUsuario join cli in ctx.Cliente on n.IdCliente equals cli.IdCliente let f = ctx.Notificaciones_Favoritas.Where(x => x.IdNotificacion == n.IdNotificacion).FirstOrDefault() let ns = ctx.Notificacion_Status.Where(x => x.IdNotificacion == n.IdNotificacion && x.IdUsuario == user.IdUsuario).OrderByDescending(x => x.Id).FirstOrDefault() where n.IdNotificacion == id select new NotificacionDatos { IdNotificacion = n.IdNotificacion, Usuario = su.Nombres + " " + su.ApPaterno, Titulo = n.Titulo, Contenido = n.Cuerpo, Fecha = n.Fecha, Cliente = cli.Nombre, TipoDescripcion = t.Descripcion, Favorita = f != null ? true : false, Status = ns == null ? 1 : ns.Status } ).FirstOrDefault()); }
public ActionResult Index() { var user = ControlAcceso.GetUsuarioEnSession(); var model = emp.GetEmpleadosFiscales(user); return(View(model)); }
public List <MovimientosViewModel> MovimientosRecientes(DateTime fecha) { ControlUsuario cu = new ControlUsuario(); int[] sucursales = cu.GetSucursalesUsuario(ControlAcceso.GetUsuarioEnSession()); using (var context = new RHEntities()) { return((from k in context.Kardex join emp in context.Empleado on k.IdEmpleado equals emp.IdEmpleado join con in context.Empleado_Contrato on emp.IdEmpleado equals con.IdEmpleado join s in context.Sucursal on emp.IdSucursal equals s.IdSucursal join c in context.Cliente on s.IdCliente equals c.IdCliente join e in context.Empresa on con.IdEmpresaFiscal equals e.IdEmpresa where k.Fecha >= fecha && k.Tipo != 5 && k.Tipo != 6 && k.Tipo != 4 && sucursales.Contains(s.IdSucursal) select new MovimientosViewModel { IdEmpleado = emp.IdEmpleado, Nombres = emp.Nombres, Paterno = emp.APaterno, Materno = emp.AMaterno, Fecha = k.Fecha, Cliente = c.Nombre, Empresa = e.RazonSocial, IdTipoMovimiento = k.Tipo, } ).ToList()); } }
private bool IsValid() { var user = ControlAcceso.GetUsuarioEnSession(); //Si el perfil del usuario es SU se le concede acceso inmediato if (user.IdPerfil == 1) { return(true); } return(ControlAcceso.AccesoAccionModulo(Modulo, Accion, user.IdUsuario)); }
public ActionResult SucursalesPaginador(int pagina) { var usuario = ControlAcceso.GetUsuarioEnSession(); var total = 0; var model = bll.ObtenerSucursalPaginado(10, pagina, out total, usuario.Sucursales); ViewBag.paginas = total; ViewBag.PaginaActiva = pagina; return(PartialView("_HomeIndexSucursales", model)); }
public bool DeleteFavorite(int id) { var user = ControlAcceso.GetUsuarioEnSession(); var fav = ctx.Notificaciones_Favoritas.Where(x => x.IdNotificacion == id && x.IdUsuario == user.IdUsuario).FirstOrDefault(); if (fav != null) { ctx.Notificaciones_Favoritas.Remove(fav); var status = ctx.SaveChanges(); return(status > 0 ? true : false); } return(false); }
public JsonResult GetLatest(DateTime date) { var userSession = Session["usuario"] as SYA_Usuarios; var user = ControlAcceso.GetUsuarioEnSession(); Notificaciones bd = new Notificaciones(); var list = bd.getNuevas(user).Where(x => x.Fecha >= date); foreach (var item in list) { item.image = ControlUsuario.GetProfilePictureOfUser(item.IdUsuario); } return(Json(list, JsonRequestBehavior.AllowGet)); }
public List <SucursalDatos> SearchSucursales(string keyword) { var user = ControlAcceso.GetUsuarioEnSession(); if (user != null) { using (var context = new RHEntities()) { if (user.IdPerfil == 1 || user.Sucursales == "*") { return((from s in context.Sucursal join e in context.Cliente on s.IdCliente equals e.IdCliente orderby s.IdSucursal where s.Ciudad.Contains(keyword) || e.Nombre.Contains(keyword) || s.IdSucursal.ToString().Equals(keyword) select new SucursalDatos { IdSucursal = s.IdSucursal, Nombre = e.Nombre, Ciudad = s.Ciudad } ).ToList()); } else { var sucursales = user.Sucursales.Trim(','); return((from s in context.Sucursal join e in context.Cliente on s.IdCliente equals e.IdCliente orderby s.IdSucursal where sucursales.Contains(s.IdSucursal.ToString()) && (s.Ciudad.Contains(keyword) || e.Nombre.Contains(keyword) || e.IdCliente.ToString().Equals(keyword)) select new SucursalDatos { IdSucursal = s.IdSucursal, Nombre = e.Nombre, Ciudad = s.Ciudad } ).ToList()); } } } else { return(null); } }
//Obtiene el número de sucursales a las que tiene acceso el usuario para el paginador //Según el númeroq que tenga lo divide entre 10 para el paginador public int ObtenerNumeroSucursalesPaginador() { var usuario = ControlAcceso.GetUsuarioEnSession(); double totalSucursales = 0; if (usuario.Sucursales.Trim() == "*") { totalSucursales = ObtenerSucursalDatos().Count(); } else { totalSucursales = (usuario.Sucursales).Split(',').Count(); } double paginas = totalSucursales / 10; paginas = paginas > 0 ? Math.Ceiling(paginas) : 0; return(Convert.ToInt32(paginas)); }
public bool IsValid() { var user = ControlAcceso.GetUsuarioEnSession(); //Si el perfil del usuario es SU se le concede acceso inmediato if (user.IdPerfil == 0) { return(true); } var reg = HttpContext.Current.Session["Sucursal"] as Sucursal; if (reg == null) { return(false); } return(ControlAcceso.AccesoSucursal(reg.IdSucursal)); }
public bool AddFavorite(int id) { var user = ControlAcceso.GetUsuarioEnSession(); //comprueba que no exista ya una notificación favorita var old = ctx.Notificaciones_Favoritas.Where(x => x.IdNotificacion == id && x.IdUsuario == user.IdUsuario).FirstOrDefault(); if (old != null) { return(false); } Notificaciones_Favoritas fav = new Notificaciones_Favoritas(); fav.IdNotificacion = id; fav.IdUsuario = SessionHelpers.GetIdUsuario(); ctx.Notificaciones_Favoritas.Add(fav); var status = ctx.SaveChanges(); return(status > 0 ? true : false); }
public bool IsValid() { //Obtenemos lo datos del usuario que esta en session // para acceder a su lista de aplicaciones configurada var us = ControlAcceso.GetUsuarioEnSession(); if (us == null) { return(false); } //Si el usuario es SU se le concede acceso inmediato if (us.IdPerfil == 1) { return(true); } //validamos que tenga acceso a la aplicacion actual y pasamos el tipo de aplicacion var acceso = ControlAcceso.AccesoAplicacion(App, us); return(acceso); }
/// <summary> /// Retorna las sucursales que estan en la cadena ids = "10,11,12,13". /// Puede ser usado para obtener las sucursales que tiene asignado los usuarios. /// </summary> /// <param name="ids"></param> /// <returns></returns> public List <SucursalDatos> ObtenerSucursalByIds() { List <SucursalDatos> lista; var user = ControlAcceso.GetUsuarioEnSession(); if (user.IdPerfil == 1) { lista = ObtenerSucursalDatos(); } else if (user.Sucursales.Trim() == "*") { lista = ObtenerSucursalDatos(); } else { var array = user.Sucursales.Split(','); using (var context = new RHEntities()) { var datos = (from s in context.Sucursal join e in context.Cliente on s.IdCliente equals e.IdCliente where array.Contains(s.IdSucursal.ToString()) orderby s.IdSucursal select new SucursalDatos { IdSucursal = s.IdSucursal, Nombre = e.Nombre, Ciudad = s.Ciudad }); lista = !datos.Any() ? null : datos.ToList(); } } lista = lista?.OrderBy(x => x.Nombre).ToList(); return(lista); }
public PartialViewResult GetListaNotificaciones(int[] filtros, int bandeja = 1, int numPage = 0, string keyword = "") { Notificaciones ctx = new Notificaciones(); List <NotificacionDatos> model = null; var records = numPage * 20; var userSession = Session["usuario"] as SYA_Usuarios; var user = ControlAcceso.GetUsuarioEnSession(); switch (bandeja) { case 1: //Entrada model = ctx.GetBandejaEntrada(user); break; case 2: //Favoritas model = ctx.GetFavoritas(user); break; case 3: //Nuevas model = ctx.getNuevas(user); break; case 4: //Archivadas model = ctx.GetNotificationsArchivadas(user); break; } double paginas = 0; int totalRecors = 0; int firstRecord = 0; int lastRecord = 0; if (model != null) { if (keyword != "") { keyword = keyword.ToUpper(); model = model.Where(x => x.Titulo.ToUpper().Contains(keyword) || x.Usuario.ToUpper().Contains(keyword) || x.Cliente.ToUpper().Contains(keyword)).ToList(); } if (filtros != null) { model = model.Where(x => filtros.Contains(x.Tipo)).ToList(); } paginas = (double)model.Count / (double)20; totalRecors = model.Count; model = model.OrderByDescending(x => x.Fecha).ToList(); model = model.Skip(records).Take(20).ToList(); firstRecord = model.Count == 0 ? 0 : records + 1; lastRecord = records + model.Count; } ViewBag.NumPaginas = Math.Ceiling(paginas); ViewBag.PaginaActiva = numPage; ViewBag.TotalRecords = totalRecors; ViewBag.FirstRecord = firstRecord; ViewBag.LastRecord = lastRecord; return(PartialView(model)); }
//IDSE public static string IdseGenerarLayout(int idUsuario, int tipoMovimiento, int empresa, DateTime FechaI, DateTime FechaF, string path, string pathDescarga) { List <Empresa> listaEmpresas = new List <Empresa>(); List <Cliente> listaClientes = new List <Cliente>(); List <Empleado> listaEmpleados = new List <Empleado>(); List <Empleado_Contrato> listaContratos = new List <Empleado_Contrato>(); List <Kardex> listaKardex = new List <Kardex>(); var nombreArchivo = "REINGRESO.txt"; Empresa itemEmpresa; ControlUsuario cu = new ControlUsuario(); var sucursales = cu.GetSucursalesUsuario(ControlAcceso.GetUsuarioEnSession()); //var FechaI = new DateTime(fecI.Year, fecI.Month, fecI.Day, 05, 00, 0); //var FechaF = new DateTime(fecF.Year, fecF.Month, fecF.Day, 23, 50, 0); using (var context = new RHEntities()) { itemEmpresa = context.Empresa.FirstOrDefault(x => x.IdEmpresa == empresa); //ALTA-REINGRESO switch (tipoMovimiento) { case 1: nombreArchivo = "REINGRESO " + itemEmpresa.RazonSocial.Substring(0, 5) + ".txt"; //Buscamos los contratos con fecha de Alta imss en el rango de fecha listaContratos = (from c in context.Empleado_Contrato where c.FechaIMSS >= FechaI && c.FechaIMSS <= FechaF // && c.Status == true && c.BajaIMSS == null //querian que laas altas o bajas aparezcan en ambos reportes // && c.IdEmpresaFiscal != null && c.IdEmpresaFiscal == empresa select c).ToList(); break; case 2: nombreArchivo = " BAJA " + itemEmpresa.RazonSocial.Substring(0, 5) + ".txt"; //Buscamos los contratos con fecha de Alta imss en el rango de fecha listaContratos = (from c in context.Empleado_Contrato where c.BajaIMSS >= FechaI && c.BajaIMSS <= FechaF && c.Status == false && c.BajaIMSS != null // && c.IdEmpresaFiscal != null && c.IdEmpresaFiscal == empresa select c).ToList(); break; case 3: //Cambio Salsario nombreArchivo = "MODIFICACION " + itemEmpresa.RazonSocial.Substring(0, 5) + ".txt"; //Buscamos en Kardex los cambios de salario listaKardex = (from k in context.Kardex where k.Fecha >= FechaI && k.Fecha <= FechaF && k.Tipo == (int)TipoKardex.SDI select k).ToList(); //Obtener los idEMpleados var arrayIdEmp = listaKardex.Select(x => x.IdEmpleado).ToList(); //Buscamos los cumple imss //var listaCumpleImss = (from ci in context.CumpleIMSS // where ci.FechaIMSS >= FechaI && ci.FechaIMSS <= FechaF // select ci).ToList(); //Buscamos los contratos activos de los empleados listaContratos = (from c in context.Empleado_Contrato where arrayIdEmp.Contains(c.IdEmpleado) && c.Status == true select c).ToList(); break; } //Obtenemos el array de Id empleados listaContratos = listaContratos.Where(x => sucursales.Contains(x.IdSucursal)).ToList(); var arrayIdEmpleados = listaContratos.Select(x => x.IdEmpleado).ToArray(); listaEmpleados = (from e in context.Empleado where arrayIdEmpleados.Contains(e.IdEmpleado) select e).ToList(); //listaEmpresas = context.Empresa.ToList(); } string[] lineasArchivo = new string[listaContratos.Count]; int linea = 0; foreach (var itemContrato in listaContratos) { //var itemEmpresa = listaEmpresas.FirstOrDefault(x => x.IdEmpresa == itemContrato.IdEmpresaFiscal.Value); var itemEmpleado = listaEmpleados.FirstOrDefault(x => x.IdEmpleado == itemContrato.IdEmpleado); string strReg = ""; switch (tipoMovimiento) { case 1: strReg = IdseRegistroAltaReingreso(itemEmpresa, itemEmpleado, itemContrato); break; case 2: strReg = IdseRegistroBaja(itemEmpresa, itemEmpleado, itemContrato); break; case 3: var itemKardex = listaKardex.FirstOrDefault(x => x.IdEmpleado == itemContrato.IdEmpleado); strReg = IdseRegistroCambioSalario(itemEmpresa, itemEmpleado, itemContrato, itemKardex); break; } lineasArchivo[linea] = strReg; linea++; } //Creamos el folder para guardar el archivo var pathUsuario = Utils.ValidarFolderUsuario(idUsuario, path); var archivoIdse = pathUsuario + nombreArchivo; File.WriteAllLines(archivoIdse, lineasArchivo); return(pathDescarga + "\\" + idUsuario + "\\" + nombreArchivo); }
//SUA public static string SuaGenerarLayout(int idUsuario, int tipoMovimiento, int empresa, DateTime FechaI, DateTime FechaF, string path, string pathDescarga) { List <Empresa> listaEmpresas = new List <Empresa>(); List <Cliente> listaClientes = new List <Cliente>(); List <Empleado> listaEmpleados = new List <Empleado>(); List <Empleado_Contrato> listaContratos = new List <Empleado_Contrato>(); List <Kardex> listaKardex = new List <Kardex>(); var nombreArchivo = "Aseg.txt"; Empresa itemEmpresa; var itemAbrev = new List <Sucursal_Empresa>(); ControlUsuario cu = new ControlUsuario(); var sucursales = cu.GetSucursalesUsuario(ControlAcceso.GetUsuarioEnSession()); //var FechaI = new DateTime(fecI.Year, fecI.Month, fecI.Day, 05, 00, 0); //var FechaF = new DateTime(fecF.Year, fecF.Month, fecF.Day, 23, 50, 0); using (var context = new RHEntities()) { itemEmpresa = context.Empresa.FirstOrDefault(x => x.IdEmpresa == empresa); itemAbrev = context.Sucursal_Empresa.Where(x => x.IdEmpresa == itemEmpresa.IdEmpresa && x.IdEsquema == 1).ToList(); //ALTA-REINGRESO switch (tipoMovimiento) { case 1: nombreArchivo = "Aseg " + itemEmpresa.RazonSocial.Substring(0, 5) + ".txt"; //Buscamos los contratos con fecha de Alta imss en el rango de fecha listaContratos = (from c in context.Empleado_Contrato where c.FechaIMSS >= FechaI && c.FechaIMSS <= FechaF && c.Status == true && c.BajaIMSS == null // && c.IdEmpresaFiscal != null && c.IdEmpresaFiscal == empresa && c.IsReingreso == false select c).ToList(); break; case 2: //Baja - Reingreso nombreArchivo = "Movt " + itemEmpresa.RazonSocial.Substring(0, 5) + ".txt"; //Buscamos los contratos con fecha de Alta imss en el rango de fecha listaContratos = (from c in context.Empleado_Contrato where c.BajaIMSS >= FechaI && c.BajaIMSS <= FechaF && c.Status == false && c.BajaIMSS != null // && c.IdEmpresaFiscal != null && c.IdEmpresaFiscal == empresa select c).ToList(); break; } //Obtenemos el array de Id empleados listaContratos = listaContratos.Where(x => sucursales.Contains(x.IdSucursal)).ToList(); var arrayIdEmpleados = listaContratos.Select(x => x.IdEmpleado).ToArray(); listaEmpleados = (from e in context.Empleado where arrayIdEmpleados.Contains(e.IdEmpleado) select e).ToList(); //listaEmpresas = context.Empresa.ToList(); } //string[] lineasArchivo = new string[listaContratos.Count]; //int linea = 0; //foreach (var itemContrato in listaContratos) //{ //var itemEmpresa = listaEmpresas.FirstOrDefault(x => x.IdEmpresa == itemContrato.IdEmpresaFiscal.Value); //var itemEmpleado = listaEmpleados.FirstOrDefault(x => x.IdEmpleado == itemContrato.IdEmpleado); //string clave = itemAbrev.Where(x => x.IdEmpresa == itemContrato.IdEmpresaFiscal && x.IdSucursal == itemContrato.IdSucursal).Select(x => x.Clave_Imss).FirstOrDefault(); //string strReg = ""; List <string> strReg = new List <string>(); switch (tipoMovimiento) { case 1: strReg = SuaAseg(itemEmpresa, listaEmpleados, listaContratos, itemAbrev); var pathUsuario = Utils.ValidarFolderUsuario(idUsuario, path); var archivoIdse = pathUsuario + nombreArchivo; File.WriteAllLines(archivoIdse, strReg); break; case 2: strReg = SuaMovt(itemEmpresa, listaEmpleados, listaContratos, itemAbrev); var pathUsuario2 = Utils.ValidarFolderUsuario(idUsuario, path); var archivoSuaMovBaja = pathUsuario2 + nombreArchivo; File.WriteAllLines(archivoSuaMovBaja, strReg); break; } return(pathDescarga + "\\" + idUsuario + "\\" + nombreArchivo); }