/// <summary> /// Consulta la información del empleado desde el reloj checador ingresado como parámetro /// </summary> /// <param name="idEmpleado">Identificador del empleado que se desea consultar</param> /// <param name="Dispositivo">Dispositivo en el cual se desea hacer la consulta</param> /// <returns></returns> public DeviceEmployeer ConsultaEmpleado(string idEmpleado, Device Dispositivo) { DeviceEmployeer Empleado = new DeviceEmployeer(); try { if (Dispositivo.DeviceController.Connect_Net(Dispositivo.ip, 4370)) { Dispositivo.DeviceController.EnableDevice(Dispositivo.MachineNumber, false); if (Dispositivo.DeviceController.SSR_GetUserInfo(Dispositivo.MachineNumber, idEmpleado, out Empleado.NombreEmpleado, out Empleado.Password, out Empleado.Privilegio, out Empleado.Enabled)) { Dispositivo.DeviceController.GetStrCardNumber(out Empleado.NumeroTarjeta); Dispositivo.DeviceController.GetUserTmpExStr(Dispositivo.MachineNumber, idEmpleado, 0, out Empleado.FingerFlag, out Empleado.FingerPrint, out Empleado.FingerPrintLength); Empleado.NumeroEmpleado = idEmpleado; } Dispositivo.DeviceController.EnableDevice(Dispositivo.MachineNumber, true); Dispositivo.DeviceController.Disconnect(); } } catch (Exception exc) { BusinessLogic.Log.EscribeLog("[ERROR] : ExtraeEmpleados.ConsultaEmpleado: " + exc.Message); } return(Empleado); }
/// <summary> /// Extrae la lista de empleados dados de alta en el reloj checador seleccionado. /// </summary> /// <returns></returns> public List <DeviceEmployeer> ExtraeEmpleados(Device DispositivoOrigen) { List <DeviceEmployeer> Empleados = new List <DeviceEmployeer>(); try { DeviceEmployeer empleado = new DeviceEmployeer(); if (DispositivoOrigen.DeviceController.Connect_Net(DispositivoOrigen.ip, 4370)) { DispositivoOrigen.DeviceController.EnableDevice(DispositivoOrigen.MachineNumber, false); while (DispositivoOrigen.DeviceController.SSR_GetAllUserInfo(DispositivoOrigen.MachineNumber, out empleado.NumeroEmpleado, out empleado.NombreEmpleado, out empleado.Password, out empleado.Privilegio, out empleado.Enabled)) { DispositivoOrigen.DeviceController.GetStrCardNumber(out empleado.NumeroTarjeta); DispositivoOrigen.DeviceController.GetUserTmpExStr(DispositivoOrigen.MachineNumber, empleado.NumeroEmpleado, 0, out empleado.FingerFlag, out empleado.FingerPrint, out empleado.FingerPrintLength); Empleados.Add(empleado); empleado = new DeviceEmployeer(); } DispositivoOrigen.DeviceController.EnableDevice(DispositivoOrigen.MachineNumber, true); DispositivoOrigen.DeviceController.Disconnect(); } } catch (Exception exc) { BusinessLogic.Log.EscribeLog("[ERROR] : ExtraeEmpleados.ExtraeEmpleados: " + exc.Message); } return(Empleados); }
public DeviceEmployeer ConsultaEmpleadoEnReloj(int idEmpleado, int Dispositivo) { DeviceEmployeer Empleado = new DeviceEmployeer(); AttendanceController Controller = new AttendanceController(); Empleado = Controller.ConsultaEmpleadoEnDispositivo(idEmpleado, Dispositivo); return(Empleado); }
/// <summary> /// Método privado para actualizar la información de un empleado en el reloj checador seleccionad, este método es privador para su utilización dentro de los threads de un método público /// </summary> /// <param name="Dispositivo"></param> /// <param name="empleado"></param> /// <returns></returns> private bool ActualizaInformacionEmpleado(Device Dispositivo, DeviceEmployeer empleado) { bool response = false; if (EnableDeviceOperations) { if (Dispositivo.DeviceController.Connect_Net(Dispositivo.ip, 4370)) { int idwFingerIndex = 0; int iFlag = 1; Dispositivo.DeviceController.EnableDevice(Dispositivo.MachineNumber, false); //Actualización de la información del empleado en el dispositivo destino Dispositivo.DeviceController.set_STR_CardNumber(1, empleado.NumeroTarjeta); if ( Dispositivo.DeviceController.SSR_SetUserInfo(Dispositivo.MachineNumber, empleado.NumeroEmpleado, empleado.NombreEmpleado, empleado.Password, empleado.Privilegio, empleado.Enabled))//upload user information to the memory { if (empleado.FingerPrint != null && empleado.FingerPrint != string.Empty) { Dispositivo.DeviceController.SetUserTmpExStr(Dispositivo.MachineNumber, empleado.NumeroEmpleado, idwFingerIndex, iFlag, empleado.FingerPrint);//upload templates information to the memory } response = true; Dispositivo.DeviceController.RefreshData(Dispositivo.MachineNumber); } Dispositivo.DeviceController.EnableDevice(Dispositivo.MachineNumber, true); Dispositivo.DeviceController.Disconnect(); } if (!response) { BusinessLogic.Log.EscribeLog("[WARNING] : DeviceDriver.AltaEmpleado: No fue posible actualizar la información en el dispositivo [" + Dispositivo.MachineNumber + "]"); } } else { response = true; } return(response); }
/// <summary> /// Permite dar el alta de un empleado a los relojes checadores /// </summary> /// <param name="empleado"></param> /// <returns></returns> public bool AltaEmpleado(DeviceEmployeer empleado) { bool response = false; if (EnableDeviceOperations) { try { Thread A = new Thread(() => ActualizaInformacionEmpleado(EntradaCoorporativo, empleado)); A.Start(); Thread B = new Thread(() => ActualizaInformacionEmpleado(EntradaCEDIS, empleado)); B.Start(); Thread C = new Thread(() => ActualizaInformacionEmpleado(ComedorCoorporativo, empleado)); C.Start(); Thread D = new Thread(() => ActualizaInformacionEmpleado(ComedorCEDIS, empleado)); D.Start(); Thread E = new Thread(() => ActualizaInformacionEmpleado(EntradaCEDISNorte, empleado)); E.Start(); A.Join(); B.Join(); C.Join(); D.Join(); E.Join(); response = true; } catch (Exception exc) { BusinessLogic.Log.EscribeLog("[ERROR] : DeviceDriver.AltaEmpleado: " + exc.Message); } } else { response = true; } return(response); }
public bool AltaEmpleadoReloj(DeviceEmployeer Empleado) { AttendanceController Controller = new AttendanceController(); return(Controller.AltaEmpleadoDispositivo(Empleado)); }
/// <summary> /// Permite copiar un empleado dado de alta en el dispositivo maestro a todos los demás dispositivos /// </summary> /// <param name="NumeroEmpleado">Número del empleado que se requiere sincronizar</param> /// <returns>True, si la sincronización se efectuó con éxito</returns> public bool SyncEmpleado(string NumeroEmpleado) { bool response = false; if (EnableDeviceOperations) { try { List <Device> Dispositivos = new List <Device>(); if (MasterDevice != EntradaCoorporativo) { Dispositivos.Add(EntradaCoorporativo); } if (MasterDevice != EntradaCEDIS) { Dispositivos.Add(EntradaCEDIS); } if (MasterDevice != ComedorCoorporativo) { Dispositivos.Add(ComedorCoorporativo); } if (MasterDevice != ComedorCEDIS) { Dispositivos.Add(ComedorCEDIS); } if (MasterDevice != EntradaCEDISNorte) { Dispositivos.Add(EntradaCEDISNorte); } if (MasterDevice.DeviceController.Connect_Net(MasterDevice.ip, 4370)) { DeviceEmployeer EmpleadoOrigen = new DeviceEmployeer(); EmpleadoOrigen.NombreEmpleado = NumeroEmpleado; //Extracción de la información del empleado desde el dispositivo origen MasterDevice.DeviceController.SSR_GetUserInfo(MasterDevice.MachineNumber, EmpleadoOrigen.NumeroEmpleado, out EmpleadoOrigen.NombreEmpleado, out EmpleadoOrigen.Password, out EmpleadoOrigen.Privilegio, out EmpleadoOrigen.Enabled); while (MasterDevice.DeviceController.SSR_GetAllUserInfo(MasterDevice.MachineNumber, out EmpleadoOrigen.NumeroEmpleado, out EmpleadoOrigen.NombreEmpleado, out EmpleadoOrigen.Password, out EmpleadoOrigen.Privilegio, out EmpleadoOrigen.Enabled)) { if (EmpleadoOrigen.NumeroEmpleado == NumeroEmpleado) { MasterDevice.DeviceController.GetStrCardNumber(out EmpleadoOrigen.NumeroTarjeta); MasterDevice.DeviceController.GetUserTmpExStr(MasterDevice.MachineNumber, NumeroEmpleado, 0, out EmpleadoOrigen.FingerFlag, out EmpleadoOrigen.FingerPrint, out EmpleadoOrigen.FingerPrintLength); break; } } MasterDevice.DeviceController.Disconnect(); //--------------------------------------------------------------------- foreach (Device Dispositivo in Dispositivos) { if (Dispositivo.DeviceController.Connect_Net(Dispositivo.ip, 4370)) { int idwFingerIndex = 0; int iFlag = 1; Dispositivo.DeviceController.EnableDevice(Dispositivo.MachineNumber, false); //Actualización de la información del empleado en el dispositivo destino Dispositivo.DeviceController.set_STR_CardNumber(1, EmpleadoOrigen.NumeroTarjeta); if ( Dispositivo.DeviceController.SSR_SetUserInfo(Dispositivo.MachineNumber, EmpleadoOrigen.NumeroEmpleado, EmpleadoOrigen.NombreEmpleado, EmpleadoOrigen.Password, EmpleadoOrigen.Privilegio, EmpleadoOrigen.Enabled))//upload user information to the memory { if ( Dispositivo.DeviceController.SetUserTmpExStr(Dispositivo.MachineNumber, EmpleadoOrigen.NumeroEmpleado, idwFingerIndex, iFlag, EmpleadoOrigen.FingerPrint)) //upload templates information to the memory { response = true; //Los datos fueron escritos correctamente } Dispositivo.DeviceController.RefreshData(Dispositivo.MachineNumber); Dispositivo.DeviceController.EnableDevice(Dispositivo.MachineNumber, true); Dispositivo.DeviceController.Disconnect(); } } if (!response) { BusinessLogic.Log.EscribeLog("[WARNING] : DeviceDriver.SyncEmpleado: No fue posible actualizar la información en el dispositivo [" + Dispositivo.MachineNumber + "]"); } } } } catch (Exception exc) { BusinessLogic.Log.EscribeLog("[ERROR] : DeviceDriver.SyncEmpleado: " + exc.Message); } } else { response = true; } return(response); }