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()); } }
public ActionResult LogInAJAX(string user, string password) { ControlUsuario cu = new ControlUsuario(); int acceso = 0; var usuario = cu.GetUsuarioByCuenta(user, password); if (usuario != null) { var accesoApp = ControlAcceso.AccesoAplicacion(Aplicacion.Rh, usuario); if (accesoApp) { SessionHelpers.IniciarSession(usuario.Usuario, usuario.IdUsuario.ToString()); Session["usuario"] = usuario; acceso = 1; } else { acceso = 2; } } else { acceso = 3; } return(Json(acceso, JsonRequestBehavior.AllowGet)); }
protected void txtPlantilla_SelectedIndexChanged(object sender, EventArgs e) { // Limpiamos la lista de plantillas Repeticion.DataSource = new List <Plantilla>(); Repeticion.DataBind(); if (ValidarObjeto(txtPlantilla.SelectedValue)) { try { // Obtenemos el control seleccionado ControlAcceso ctrl = controlAccesoDao.GetById(Int32.Parse(txtPlantilla.SelectedValue)); if (ctrl != null) { // Obtenemos la lista de plantillas para el control seleccionado List <DbDominio.Plantilla> listaPlantilla = plantillaDao.GetListado(null, ctrl); Repeticion.DataSource = listaPlantilla; Repeticion.DataBind(); } } catch (Exception ex) { log.Error(String.Format("Error en el Proceso Obtener Plantillas para la Plaza [{0}], y el Control [{1}]. Mensaje: [{2}]", txtPlaza.SelectedValue, txtPlantilla.SelectedValue, ex.Message)); ManejarExcepcion(ex); } } }
/// <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 ActionResult Index() { var user = ControlAcceso.GetUsuarioEnSession(); var model = emp.GetEmpleadosFiscales(user); return(View(model)); }
public ActionResult LogInAjax(LogInViewModel model) { int acceso = 3; ControlUsuario cu = new ControlUsuario(); var usuario = cu.GetUsuarioByCuenta(model.User, model.Password); if (usuario != null) { var accesoApp = ControlAcceso.AccesoAplicacion(Aplicacion.SeguroSocial, usuario); if (accesoApp) { SessionHelpers.IniciarSession(usuario.Usuario, usuario.IdUsuario.ToString()); Session["usuario"] = usuario; acceso = 1; } else { acceso = 2; } } else { acceso = 3; } return(Json(acceso, JsonRequestBehavior.AllowGet)); }
public JsonResult LogIn(LogInViewModel model) { ControlUsuario cu = new ControlUsuario(); var user = cu.GetUsuarioByCuenta(model.User, model.Password); string[] array = new string[3]; if (user != null) { var accesoApp = ControlAcceso.AccesoAplicacion(Aplicacion.Notificaciones, user); if (accesoApp) { SessionHelpers.IniciarSession(user.Usuario, user.IdUsuario.ToString()); Session["usuario"] = user; array[0] = "1"; array[1] = user.Nombres; array[2] = user.ApPaterno; } else { array[0] = "2"; //no tiene acceso a la app } } else { array[0] = "3"; //las credenciales no están bien } return(Json(array, JsonRequestBehavior.AllowGet)); }
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()); }
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 Index(int id = 0) { //obtiene los datos principales de la sucursal y los asigna a una variable de sesión if (id > 0) { var suc = new SucursalDatos(); if (!ControlAcceso.AccesoSucursal(id)) { return(RedirectToAction("AccesoDenegadoSuc", "Home")); } //Si ya existe datos guardado en sesion //validamos si el idSucursal es distinto al de la session actual. if (Session["Sucursal"] != null) { suc = Session["Sucursal"] as SucursalDatos; //Si la variable idSucursal es distinto al IdSucursal de la session //entonces se selecciono una nueva sucursal if (suc != null && suc.IdSucursal != id) { suc = ctx.ObtenerSucursalDatosPorId(id); } } //Si la session actual es null else if (Session["Sucursal"] == null) { suc = ctx.ObtenerSucursalDatosPorId(id); } //Si no se encontró la sucursal if (suc == null) { return(RedirectToAction("Index", "Home")); } //Agregamos los nuevos datos a la session //y guardamos en la lista de mas recientes. if (suc.GuardadoEnReciente == false) { suc.GuardadoEnReciente = ctx.InsertarSucursalReciente(id); Session["Sucursal"] = suc; } return(View(suc)); } return(RedirectToAction("Index", "Home")); }
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 EmpleadoControlAcceso GetByControlAcceso(ControlAcceso control, Empleado empleado) { if (control == null || empleado == null) { return(null); } List <ICriterion> lista = new List <ICriterion>(); lista.Add(Restrictions.Eq("ControlAcceso", control)); lista.Add(Restrictions.Eq("Empleado", empleado)); return(GetUniqueByCriteria(lista.ToArray())); }
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 Plantilla GetByControlAccesoEnrollNumberFingerIndex(ControlAcceso control, String EnrollNumber, Int32 fingerindex) { if (string.IsNullOrEmpty(EnrollNumber) || control == null) { return(null); } List <ICriterion> lista = new List <ICriterion>(); lista.Add(Restrictions.Eq("ControlAcceso", control)); lista.Add(Restrictions.Eq("Enrollnumber", EnrollNumber)); lista.Add(Restrictions.Eq("Fingerindex", fingerindex)); return(GetUniqueByCriteria(lista.ToArray())); }
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); } }
public Incidencia GetByEmpleadoControlFechaInOutMode(Empleado empleado, ControlAcceso control, DateTime fecha, int inOutMode) { if (empleado == null || fecha == null || control == null) { return(null); } List <ICriterion> lista = new List <ICriterion>(); lista.Add(Restrictions.Eq("Empleado", empleado)); lista.Add(Restrictions.Eq("ControlAcceso", control)); lista.Add(Restrictions.Eq("FechaHoraIncidencia", fecha)); lista.Add(Restrictions.Eq("InOutMode", inOutMode)); return(GetUniqueByCriteria(lista.ToArray())); }
//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)); }
protected void CargarDatos() { // Cargar los datos de un solo control if (ValidarObjeto(txtControlAcceso.SelectedValue)) { try { ControlAcceso ctrl = controlAccesoDao.GetById(Int32.Parse(txtControlAcceso.SelectedValue)); if (ctrl != null) { Repeticion.DataSource = plantillaDao.GetListado(null, ctrl); Repeticion.DataBind(); } } catch (Exception ex) { log.Error(String.Format("Error en el Proceso Obtener Lista de Plantillas Para el Control de Acceso [{0}]. Mensaje: [{1}]", txtControlAcceso.SelectedValue, ex.Message)); ManejarExcepcion(ex); } } else { // Cargar los datos de varios controles if (ValidarObjeto(txtPlaza.SelectedValue)) { try { List <ControlAcceso> controles = controlAccesoDao.GetListado(true, plazaDao.GetById(Int32.Parse(txtPlaza.SelectedValue)), DbDao.ControlAccesoDao.Ordenamiento.Nombre); if (controles != null && controles.Count > 0) { Repeticion.DataSource = plantillaDao.GetListado(controles, null); Repeticion.DataBind(); } } catch (Exception ex) { log.Error(String.Format("Error en el Proceso Obtener Lista de Plantillas Para el Control de Acceso [{0}]. Mensaje: [{1}]", txtControlAcceso.SelectedValue, ex.Message)); ManejarExcepcion(ex); } } } }
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 List <Plantilla> GetListado(List <ControlAcceso> controles, ControlAcceso ctrl) { if (controles == null && ctrl == null) { return(new List <Plantilla>()); } List <ICriterion> lista = new List <ICriterion>(); if (controles != null && controles.Count > 0) { lista.Add(Restrictions.In("ControlAcceso", controles)); } if (ctrl != null) { lista.Add(Restrictions.Eq("ControlAcceso", ctrl)); } return(GetByCriteria(lista.ToArray())); }
public JsonResult AutenticarNombreUsuario(string username) { LogIn credentials = new LogIn(); ControlUsuario cu = new ControlUsuario(); try { var user = cu.UserNameExists(username); if (user != null) { var acceso = ControlAcceso.AccesoAplicacion(Aplicacion.Nominas, user); if (acceso) { credentials.Acceso = true; credentials.foto = cu.GetProfilePicture(user.IdUsuario); credentials.nombre = $"{user.Nombres} {user.ApPaterno}"; } else { credentials.Acceso = false; credentials.Error = 1; } } else { credentials.Acceso = false; credentials.Error = 2; } } catch (InvalidOperationException) //usado para capturar la excepcion cuando no se establece la conecion al servidor { credentials.Acceso = false; credentials.Error = 3; } return(Json(credentials, JsonRequestBehavior.AllowGet)); }
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); }
protected void BtnDescargar_Click(object sender, EventArgs e) { log.Info(String.Format("El usuario [{0}] presiono el boton para descargar la plantilla del Control de Acceso con ID: [{1}]", UsuarioActual.Nombre, txtControlAcceso.SelectedValue)); // Validar si se selecciono un control de acceso if (!ValidarObjeto(txtControlAcceso.SelectedValue)) { MostrarAdvertencia(Constantes.MENSAJE_CAMPO_REQUERIDO_TITULO, "Por favor seleccione un control del listado"); return; } ControlAcceso control = null; try { control = controlAccesoDao.GetById(Int32.Parse(txtControlAcceso.SelectedValue)); } catch (Exception ex) { log.Error(String.Format("Error en el Proceso de Conexion con el control. Mensaje: [{0}]", ex.Message)); ManejarExcepcion(ex); } if (control == null) { MostrarAdvertencia("Control de Acceso No Encontrado", String.Format("No fue Posible encontrar el Control de Acceso con identificador [0]", txtControlAcceso.SelectedValue)); return; } // Variables de cajon int iMachineNumber = 1; string sdwEnrollNumber = Constantes.TEXTO_BLANCO; string sName = Constantes.TEXTO_BLANCO; string sPassword = Constantes.TEXTO_BLANCO; int iPrivilege = 0; bool bEnabled = false; int idwErrorCode = 0; int idwFingerIndex; string sTmpData = Constantes.TEXTO_BLANCO; int iTmpLength = 0; int iFlag = 0; try { log.Info(String.Format("Se Intentará conectar con el control de acceso con ID: [{0}]. El control tiene la direccion ip: [{1}] y el puerto: [{2}]", txtControlAcceso.SelectedValue, control.DireccionIp, control.Puerto)); CZKEMClass _control = new CZKEMClass(); if (_control.Connect_Net(control.DireccionIp, Int32.Parse(control.Puerto.Value.ToString()))) { log.Info(String.Format("Se logro correctamente la conexion con el control con direccion ip: [{0}] y el puerto: [{1}]", control.DireccionIp, control.Puerto)); _control.EnableDevice(iMachineNumber, false); _control.ReadAllUserID(iMachineNumber); //read all the user information to the memory _control.ReadAllTemplate(iMachineNumber); //read all the users' fingerprint templates to the memory while (_control.SSR_GetAllUserInfo(iMachineNumber, out sdwEnrollNumber, out sName, out sPassword, out iPrivilege, out bEnabled))//get all the users' information from the memory { log.Info(String.Format("Se obtienen los datos iMachineNumber: [{0}], sdwEnrollNumber: [{1}], sName: [{2}], sPassword: [{3}], iPrivilege: [{4}], bEnabled: [{5}]", iMachineNumber, sdwEnrollNumber, sName, sPassword, iPrivilege, bEnabled)); for (idwFingerIndex = 0; idwFingerIndex < 10; idwFingerIndex++) { if (_control.GetUserTmpExStr(iMachineNumber, sdwEnrollNumber, idwFingerIndex, out iFlag, out sTmpData, out iTmpLength))//get the corresponding templates string and length from the memory { log.Info(String.Format("Se obtienen los datos idwFingerIndex: [{0}], iFlag: [{1}], sTmpData: [{2}], iTmpLength: [{3}]", idwFingerIndex, iFlag, sTmpData, iTmpLength)); try { DbDominio.Plantilla planti = plantillaDao.GetByControlAccesoEnrollNumberFingerIndex(control, sdwEnrollNumber, idwFingerIndex); if (planti == null) { planti = new DbDominio.Plantilla(); planti.ControlAcceso = control; planti.Usuario_creado_por = UsuarioActual; log.Info("Se creará una plantilla nueva a partir de estos datos"); } else { log.Info("Esta es una plantilla nueva que se insertara"); } planti.FechaModificacion = DateTime.Now; planti.Usuario_modificado_por = UsuarioActual; planti.Enabled = bEnabled; planti.Enrollnumber = sdwEnrollNumber; planti.Fingerindex = idwFingerIndex; planti.Flag = iFlag; planti.IpControlTemplate = control.DireccionIp; planti.Nombre = sName; planti.Password = sPassword; planti.Privilege = iPrivilege; planti.Status = true; planti.Tmpdata = sTmpData; plantillaDao.SaveOrUpdate(planti); try { Empleado empleado = empleadoDao.GetByNumeroEmpleado(Int32.Parse(sdwEnrollNumber)); if (empleado != null && control != null) { EmpleadoControlAcceso eca = empleadoControlAccesoDao.GetByControlAcceso(control, empleado); if (eca == null) { eca = new EmpleadoControlAcceso(); } eca.CveEmpleado = empleado.CveEmpleado; eca.CveControlAcceso = control.CveControlAcceso; eca.ControlAcceso = control; eca.Empleado = empleado; empleadoControlAccesoDao.SaveOrUpdate(eca); } } catch (Exception ex) { log.Error(String.Format("Error en el Proceso Guardar Empleado Control de Acceso en la base de Datos. Mensaje: [{0}]", ex.Message)); log.Error(ex); } } catch (Exception ex) { log.Error(String.Format("Error en el Proceso Guardar Plantilla en la base de Datos. Mensaje: [{0}]", ex.Message)); log.Error(ex); } } } } _control.Disconnect(); MostrarExito("Proceso Completo", "Se completo el proceso exitosamente"); } else { _control.GetLastError(ref idwErrorCode); log.Error(String.Format("Error en el Proceso de Conexion al control con ID [{0}], Direccion IP [{1}] y Puerto [{2}]. Codigo de Error [{3}]", control.IdControl, control.DireccionIp, control.Puerto, idwErrorCode)); MostrarExcepcion("Conexion Invalida", String.Format("Error en el Proceso de Conexion con el Control con Direccion IP: {0} y Puerto {1}", control.DireccionIp, control.Puerto)); } } catch (Exception ex) { log.Error(String.Format("Error en el Proceso de Conexion con el control. Mensaje: [{0}]", ex.Message)); ManejarExcepcion(ex); } }
//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); }
public static void iniciarColeccion() { // Variables de Cajon int iMachineNumber = 1; int idwErrorCode = 0; string sdwEnrollNumber = Constantes.TEXTO_BLANCO; int idwVerifyMode = 0; int idwInOutMode = 0; int idwYear = 0; int idwMonth = 0; int idwDay = 0; int idwHour = 0; int idwMinute = 0; int idwSecond = 0; int idwWorkcode = 0; // Variables de acceso a la base de datos IControlAccesoDao controlAccesoDao = daoFactory.GetControlAccesoDao(); IColectorMovimientoDao colectorMovimientoDao = daoFactory.GetColectorMovimientosDao(); IColectorMovimientoIncidenciaDao colectorMovimientoIncidenciaDao = daoFactory.GetColectorMovimientosIncidenciaDao(); IEmpleadoDao empleadoDao = daoFactory.GetEmpleadoDao(); IIncidenciaDao incidenciaDao = daoFactory.GetIncidenciaDao(); logger.Info("PROCESO COLECTOR: Ejecucion automatica de la tarea de coleccion"); List <ControlAcceso> lista = null; try { lista = controlAccesoDao.GetListado(true, null, DbDao.ControlAccesoDao.Ordenamiento.FechaUltimaConexion); } catch (Exception ex) { logger.Error(String.Format("Error al intentar obtener la lista de Controles de Acceso. Detalles: [{0}]", ex.Message), ex); } if (lista != null && lista.Count > 0) { foreach (ControlAcceso control in lista) { logger.Info(String.Format("Procesando control con Nombre: [{0}], Direccion IP: [{1}] y Puerto: [{2}]", control.Nombre, control.DireccionIp, control.Puerto)); try { CZKEMClass _control = new CZKEMClass(); if (_control.Connect_Net(control.DireccionIp, Int32.Parse(control.Puerto.Value.ToString()))) { // Deshabilitanos el control _control.EnableDevice(iMachineNumber, false); logger.Info(String.Format("Conectado al control con Nombre: [{0}], Direccion IP: [{1}] y Puerto: [{2}]", control.Nombre, control.DireccionIp, control.Puerto)); try { control.FechaUltimaConexion = DateTime.Now; controlAccesoDao.SaveOrUpdate(control); } catch (Exception ex) { logger.Warn(String.Format("Error al actualizar la Fecha de Ultima Conexionc del Control con Nombre: [{0}], Direccion IP: [{1}] y Puerto: [{2}]. Codigo de Error: [{3}]", control.Nombre, control.DireccionIp, control.Puerto, idwErrorCode)); logger.Warn(ex); } if (_control.ReadGeneralLogData(iMachineNumber)) { logger.Info(String.Format("Lectura de Datos Generales con EXITO control con Nombre: [{0}], Direccion IP: [{1}] y Puerto: [{2}]", control.Nombre, control.DireccionIp, control.Puerto)); while (_control.SSR_GetGeneralLogData(iMachineNumber, out sdwEnrollNumber, out idwVerifyMode, out idwInOutMode, out idwYear, out idwMonth, out idwDay, out idwHour, out idwMinute, out idwSecond, ref idwWorkcode)) { logger.Info(String.Format("Datos Obtenidos: CveControlAcceso: [{0}], sdwEnrollNumber: [{1}], idwVerifyMode: [{2}], idwInOutMode: [{3}], idwYear: [{4}], idwMonth: [{5}], idwDay: [{6}], idwHour: [{7}], idwMinute: [{8}], idwSecond: [{9}], idwWorkcode: [{10}]", control.CveControlAcceso, sdwEnrollNumber, idwVerifyMode, idwInOutMode, idwYear, idwMonth, idwDay, idwHour, idwMinute, idwSecond, idwWorkcode)); ColectorMovimiento colector = new ColectorMovimiento(control.IdControl, control.CveControlAcceso, sdwEnrollNumber, idwVerifyMode, idwInOutMode, idwYear, idwMonth, idwDay, idwHour, idwMinute, idwSecond, idwWorkcode); ColectorMovimiento up = colectorMovimientoDao.SaveOrUpdate(colector); colector = up; } } else { _control.GetLastError(ref idwErrorCode); if (idwErrorCode != 0) { String strError = String.Format("ERROR de conexion al control con Nombre: [{0}], Direccion IP: [{1}] y Puerto: [{2}]. Codigo de Error [{3}]", control.Nombre, control.DireccionIp, control.Puerto, idwErrorCode); logger.Error(strError); try { ColectorMovimientoIncidencia coleMovIncidencia = new ColectorMovimientoIncidencia(); coleMovIncidencia.ControlAcceso = control; coleMovIncidencia.Detalles = strError; colectorMovimientoIncidenciaDao.Save(coleMovIncidencia); } catch (Exception ex) { logger.Warn(String.Format("No se pudo guardar la incidencia de coleccion de movimientos. Mensaje: [{0}]", ex.Message)); } } else { logger.Info(String.Format("OK. El control Reporta que NO existen movimientos. Datos de conexion son Nombre: [{0}], Direccion IP: [{1}] y Puerto: [{2}]. Codigo de Mensaje: [{3}]", control.Nombre, control.DireccionIp, control.Puerto, idwErrorCode)); } } // Limpiamos el log if (_control.ClearGLog(iMachineNumber)) { _control.RefreshData(iMachineNumber); } else { _control.GetLastError(ref idwErrorCode); logger.Error(String.Format("Error en el Proceso de Limpiar el LOG del Control con Nombre: [{0}], Direccion IP: [{1}] y Puerto: [{2}]. Codigo de Error: [{3}]", control.Nombre, control.DireccionIp, control.Puerto, idwErrorCode)); } _control.EnableDevice(iMachineNumber, true); _control.Disconnect(); } else { _control.GetLastError(ref idwErrorCode); String strError = String.Format("Error en el Proceso de Conexion al control con Nombre: [{0}], Direccion IP: [{1}] y Puerto: [{2}]. Codigo de Error: [{3}]", control.Nombre, control.DireccionIp, control.Puerto, idwErrorCode); logger.Error(strError); try { ColectorMovimientoIncidencia coleMovIncidencia = new ColectorMovimientoIncidencia(); coleMovIncidencia.ControlAcceso = control; coleMovIncidencia.Detalles = strError; colectorMovimientoIncidenciaDao.Save(coleMovIncidencia); } catch (Exception ex) { logger.Warn(String.Format("No se pudo guardar la incidencia de coleccion de movimientos. Mensaje: [{0}]", ex.Message)); } } } catch (Exception ex) { String strError = String.Format("Error en el Proceso de Procesar Control con Nombre: [{0}], Direccion IP: [{1}] y Puerto: [{2}]. Codigo de Error: [{3}]", control.Nombre, control.DireccionIp, control.Puerto, idwErrorCode); logger.Error(strError); logger.Error(ex); try { ColectorMovimientoIncidencia coleMovIncidencia = new ColectorMovimientoIncidencia(); coleMovIncidencia.ControlAcceso = control; coleMovIncidencia.Detalles = strError; colectorMovimientoIncidenciaDao.Save(coleMovIncidencia); } catch (Exception except) { logger.Warn(String.Format("No se pudo guardar la incidencia de coleccion de movimientos. Mensaje: [{0}]", except.Message)); } } } // Se inicia el purrun de la tabla de inicidencias List <ColectorMovimiento> listaColector = colectorMovimientoDao.GetListado(); if (listaColector != null && listaColector.Count > 0) { foreach (ColectorMovimiento movimiento in listaColector) { try { Empleado empleado = empleadoDao.GetByNumeroEmpleado(Int32.Parse(movimiento.EnrollNumber)); ControlAcceso control = controlAccesoDao.GetById(movimiento.CveControlAcceso); DateTime fechaAlta = DateTime.Now; DateTime fechaIncidencia = new DateTime(movimiento.Year != null ? movimiento.Year.Value : fechaAlta.Year, movimiento.Month != null ? movimiento.Month.Value : fechaAlta.Month, movimiento.Day != null ? movimiento.Day.Value : fechaAlta.Day, movimiento.Hour != null ? movimiento.Hour.Value : fechaAlta.Hour, movimiento.Minute != null ? movimiento.Minute.Value : fechaAlta.Minute, movimiento.Second != null ? movimiento.Second.Value : fechaAlta.Second); if (empleado == null) { String strError = String.Format("ADVERTENCIA: El Empleado con clave [{0}] no fue encontrado en la base de datos. Esta incidencia no se guardara", movimiento.EnrollNumber); logger.Warn(strError); try { ColectorMovimientoIncidencia coleMovIncidencia = new ColectorMovimientoIncidencia(); coleMovIncidencia.ControlAcceso = control; coleMovIncidencia.Detalles = strError; coleMovIncidencia.CveEmpleado = movimiento.EnrollNumber; colectorMovimientoIncidenciaDao.Save(coleMovIncidencia); } catch (Exception except) { logger.Warn(String.Format("No se pudo guardar la incidencia de coleccion de movimientos. Mensaje: [{0}]", except.Message)); } } if (control == null) { logger.Warn(String.Format("ADVERTENCIA: El Control de Acceso con Clave: [{0}] no fue encontrado en la base de datos. Esta incidencia no se guardara", movimiento.CveControlAcceso)); } if (empleado != null && control != null) { try { Incidencia validacion = incidenciaDao.GetByEmpleadoControlFechaInOutMode(empleado, control, fechaIncidencia, movimiento.InOutMode.HasValue ? movimiento.InOutMode.Value : 0); if (empleado != null) { try { empleado.UltimaColeccion = String.Format("Fecha: [{0}] en el Control: [{1}]", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), control.Nombre); empleadoDao.SaveOrUpdate(empleado); } catch { } } if (validacion == null) { Incidencia incidencia = new Incidencia(); incidencia.ControlAcceso = control; incidencia.Empleado = empleado; incidencia.EnviadoWs = 0; incidencia.FechaAlta = fechaAlta; incidencia.FechaHoraIncidencia = fechaIncidencia; incidencia.InOutMode = movimiento.InOutMode; Incidencia up = incidenciaDao.SaveOrUpdate(incidencia); incidencia = up; } else { logger.Warn(String.Format("ADVERTENCIA: Esta incidencia ya estaba dada de alta con la clave [{0}]", validacion.CveIncidencia)); } } catch (Exception ex) { logger.Error(String.Format("Error: Al intentar guardar la incidencia con Control: [{0}], Empleado: [{1}], Fecha Hora [{2}]. Mensaje: [{3}]", control.Nombre, empleado.Nombre, fechaIncidencia, ex.Message)); logger.Error(ex); } } } catch (Exception ex) { logger.Error(String.Format("Error al momento de intentar procesar los colectores de movimiento. Mensaje: [{0}] ", ex.Message)); logger.Error(ex); } } } // Se borra la tabla del colector de movimientos if (listaColector != null && listaColector.Count > 0) { foreach (ColectorMovimiento movimiento in listaColector) { try { colectorMovimientoDao.Delete(movimiento); } catch (Exception ex) { logger.Error(String.Format("Error al momento de intentar limpiar los colectores de movimiento. Mensaje: [{0}] ", ex.Message)); logger.Error(ex); } } } } else { logger.Info("La lista de controles de acceso a procesar está vacia o nula de controles de acceso activos en la base de datos."); } }