Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        public DeviceEmployeer ConsultaEmpleadoEnReloj(int idEmpleado, int Dispositivo)
        {
            DeviceEmployeer      Empleado   = new DeviceEmployeer();
            AttendanceController Controller = new AttendanceController();

            Empleado = Controller.ConsultaEmpleadoEnDispositivo(idEmpleado, Dispositivo);
            return(Empleado);
        }
Esempio n. 4
0
        /// <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);
        }
Esempio n. 5
0
        /// <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);
        }
Esempio n. 6
0
        public bool AltaEmpleadoReloj(DeviceEmployeer Empleado)
        {
            AttendanceController Controller = new AttendanceController();

            return(Controller.AltaEmpleadoDispositivo(Empleado));
        }
Esempio n. 7
0
        /// <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);
        }