none
Obtener datos de reloj de marcacion RRS feed

  • Pregunta

  • Buenas Tardes, 

    Tengo un reloj Iclock 360 con el software zkteko en el que envío las marcaciones de una base de datos llamada Att.

    Con un query obtengo la primera y la última marcación y lo inserto en otra tabla (asistencia). Ahora en la empresa se esta marcando 4 veces:

    1. hora de entrada

    2. hora de inicio de almuerzo

    3. hora de fin de almuerzo 

    4 hora de salida.

    Como puedo obtener esas marcaciones de almuerzo para insertarlo a la tabla asistencia. Ya modificamos la tabla de asistencia y le agregue los campos 2 campos adicionales.

    Espero que alguien me pueda ayudar

    Saludos

    viernes, 18 de noviembre de 2016 20:32

Respuestas

  • Zkteco o zksoftware tiene un sdk que podrías utilizar para conectarte con el biometricas y por así prescindir del software que descargas de la página del fabricante.

    Así en lugar de ir a buscar a la base de datos del software, las marcas las almacenas directamente en tu base de datos.

    Revisa en la página del fabricante sobre el sdk.

    Salu2


    Marvin E. Pineda

      ComboBoxMultiColumns

     NetBarControl

      TextEditor

    sábado, 19 de noviembre de 2016 0:07
    Moderador

Todas las respuestas

  • Se me Olvido agregar el query actual

    delete from [Att].[dbo].ASISTENCIA

    -----------------
    declare @FechaIni datetime, @FechaFin datetime
    --*************************************
    --PARAMETROS DE BUSQUEDA
    set @FechaIni = '2016-09-20 00:00'
    set @FechaFin = '2016-10-04 23:59'
    --*************************************
    INSERT INTO [Att].[dbo].[asistencia](cedula,fecha,entrada,salida)
    SELECT usr.NAME as 'CEDULA',convert(date, chk.CHECKTIME,103) as 'FECHA',
    convert(time,min(chk.CHECKTIME)) as 'ENTRADA',
    convert(time,max(chk.CHECKTIME)) as 'SALIDA'
      FROM att.dbo.CHECKINOUT chk
      inner join att.dbo.USERINFO usr on usr.USERID=chk.USERID
      where chk.CHECKTIME>=@FechaIni and chk.CHECKTIME<=@FechaFin
      group by usr.NAME,usr.BADGENUMBER,convert(date, chk.CHECKTIME, 103)
      
    SELECT *
    FROM Att.dbo.asistencia

    viernes, 18 de noviembre de 2016 20:33
  • Fgonzalez07,

    Puedes iniciar con la siguiente consulta (asumiendo que el registro de horas se da en los cuatro eventos que mencionas):

    WITH T AS
    (
        SELECT 
    	   usr.NAME, chk.CHECKTIME,
    	   ROW_NUMBER() OVER(PARTITION BY usr.NAME, CONVERT(date, chk.CHECKTIME) 
    					   ORDER BY chk.CHECKTIME) AS 'r'	   
        FROM 
    	   att.dbo.CHECKINOUT chk
    	   INNER JOIN att.dbo.USERINFO usr on (usr.USERID = chk.USERID)
        WHERE 
    	   chk.CHECKTIME BETWEEN @FechaIni AND @FechaFin
        GROUP BY 
    	   usr.NAME, chk.CHECKTIME
    )
    SELECT
        t1.NAME AS 'CEDULA',
        CONVERT(date, t1.CHECKTIME) AS 'FECHA',
        MAX(CASE WHEN (t1.r = 1) THEN t1.CHECKTIME END) AS 'HORA ENTRADA',
        MAX(CASE WHEN (t1.r = 2) THEN t1.CHECKTIME END) AS 'INICIO ALMUERZO',
        MAX(CASE WHEN (t1.r = 3) THEN t1.CHECKTIME END) AS 'FIN ALMUERZO',
        MAX(CASE WHEN (t1.r = 4) THEN t1.CHECKTIME END) AS 'HORA SALIDA'
    FROM
        T t1
    GROUP BY
        t1.NAME,
        CONVERT(date, t1.CHECKTIME);


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    viernes, 18 de noviembre de 2016 20:58
  • Muchas Gracias por su pronta respuesta.

    Voy a estar realizando las pruebas.

    Saludos,

    viernes, 18 de noviembre de 2016 21:09
  • Zkteco o zksoftware tiene un sdk que podrías utilizar para conectarte con el biometricas y por así prescindir del software que descargas de la página del fabricante.

    Así en lugar de ir a buscar a la base de datos del software, las marcas las almacenas directamente en tu base de datos.

    Revisa en la página del fabricante sobre el sdk.

    Salu2


    Marvin E. Pineda

      ComboBoxMultiColumns

     NetBarControl

      TextEditor

    sábado, 19 de noviembre de 2016 0:07
    Moderador
  • Ah Perfecto también voy a verificar esa parte.

    Muchas Gracias

    Saludos,

    sábado, 19 de noviembre de 2016 16:32