Ir al contenido


Foto

Ayuda con lógica sistema de Horarios [RRHH]


  • Por favor identifícate para responder
34 respuestas en este tema

#1 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 28 septiembre 2010 - 10:20

Pues eso tengo una tabla que contiene los diferentes tipos de horarios para un personal, la estructura es la siguiente:



sql
  1. CREATE TABLE HORARIOS (
  2.     HORA_ID    INTEGER NOT NULL,
  3.     HORA_NAME  VARCHAR(30) NOT NULL COLLATE ES_ES_CI_AI,  //Nombre del Horario
  4.     HORA_ENT  TIME NOT NULL,  //Hora de Entrada
  5.     HORA_SAL  TIME NOT NULL  //Hora de Salida
  6. );



Hasta ahora perfecto, pero ahora necesito implementar los días hábiles de un horario específico,por ejemplo, Tengo un horario que se llama MATUTINO I que corresponde a los días Lunes..Viernes, y tengo otro Horario llamado MATUTINO II que sólo le corresponde a los días Lunes, Martes y Jueves, se entiende?, pues seguiré, lo que quiero es que me ayuden en la implementación de este campo(s), sólo se me ocurre de dos formas:

a) Un sólo campo dividido de esta forma [Lun,Mar,Mie,Jue,vi,sab.dom] o [0,1,2,3,4,5,6] o puede ser con punto y coma.
b) Un campo por día. (Aunque en este caso lo veo como chapuza :p).

Qué me recomiendan?.

Saludos.

  • 0

#2 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 28 septiembre 2010 - 10:29

Hola
No entiendo, si tienes:
HORA_ID
y
HORA_NAME
No es cuestion de jugar con como te muestra los datos nada mas?.
Saludos
  • 0

#3 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 28 septiembre 2010 - 10:30

¿La idea es crear este campo en esta tabla?


Saludos!
  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 28 septiembre 2010 - 10:32

¿La idea es crear este campo en esta tabla?


Saludos!


Pues no necesariamente..

Hola
No entiendo, si tienes:
HORA_ID
y
HORA_NAME
No es cuestion de jugar con como te muestra los datos nada mas?.
Saludos


El asunto es más complejo, no es solamente mostrar nombre, en este caso no los utilizo, sino para hacer el cálculo de las ausencias, tardanzas, horas extras, etc. etc.
  • 0

#5 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 28 septiembre 2010 - 10:34

Yo optaría por el b). No me parece ninguna chapuza, todas las semanas tienen lunes, martes, miércoles, jueves, viernes, sábado y domingo. Eso no va a variar, por lo tanto no veo ningún inconveniente que vaya fijo como campos de la tabla.

Personalmente me parece bastante más chapuza la primera opción.

Naturalmente tienes una tercera opción, que es añadir una tabla relacionada que representa los días de un horario. Por ejemplo, el horario MATUTINO I tendrá 5 registros relacionados en la tabla de días, y el horario MATUTINO II solo tendrá 3.

Aunque es elegante y perfectamente válido no veo la necesidad de complicarse la vida, seguiría optando por la opción b).

Saludos.
  • 0

#6 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 28 septiembre 2010 - 10:39

Hola
Yo me hice un programa de asistencia para los empleados.
Este les toma una foto (para que no hagan trampa)  y genera la hora de entrada y salida.
Ademas me da reporte de esto.
Si lo quieres lo pongo aqui.
Saludos
  • 0

#7 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 28 septiembre 2010 - 10:44

Por un momento pensé en la opción de Marc al sugerir otra tabla, pienso aunque no se si sea el caso que te permitiría tener más control e independencia.

¿Que pasa si un día de esos es feriado?


Saludos!
  • 0

#8 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 28 septiembre 2010 - 10:47

Hola
Yo me hice un programa de asistencia para los empleados.
Este les toma una foto (para que no hagan trampa)  y genera la hora de entrada y salida.
Ademas me da reporte de esto.
Si lo quieres lo pongo aqui.
Saludos


Interesante concepto amigo, pero en mi caso trabajo con lectores biométricos. El caso es que tengo todo funcional y trabajando perfectamente con varios clientes encantados, el asunto es más actualizando, agregando y/o afinando detalles más complejos tales como horarios rotativos y entre otras complejidades. (y)
  • 0

#9 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 28 septiembre 2010 - 10:48

¿Que pasa si un día de esos es feriado?


El asunto de los feriados ya tengo un algoritmo al rspecto, así que no tengo que preocuparme por eso. :)

Saludos.
  • 0

#10 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 28 septiembre 2010 - 10:50


¿Que pasa si un día de esos es feriado?


El asunto de los feriados ya tengo un algoritmo al rspecto, así que no tengo que preocuparme por eso. :)

Saludos.


Ah bien...

¿Entonces con que opción te quedas?


Saludos!
  • 0

#11 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 28 septiembre 2010 - 10:51

Pues tendría que analizar la opción de Marc, porque no lo había pensado de esa manera, y ver si me conviene o aplica en mi caso.

Saludos.
  • 0

#12 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 28 septiembre 2010 - 11:01

Hola
Me imagino que un empleado no puede trabajar en matutino 1 y dos a la vez.
Me imagino que hay ligado empleado y horario.
Por que no hacer un campo adicional TIPO, a o b. ??
Lo veo mas sencillo.
Ademas de que se tendria que pensar en:
Horas extras, horas trabajadas en dias feriados que se paga doble, etc. etc...
Saludos
  • 0

#13 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 28 septiembre 2010 - 11:16

Hola
Me imagino que un empleado no puede trabajar en matutino 1 y dos a la vez.


Efectivamente.

Me imagino que hay ligado empleado y horario.


Sí, se liga un empleado con alguno de esos horarios.

Por que no hacer un campo adicional TIPO, a o b. ??


Pues no, ya que no son sólo dos tipos de horarios, sino, todos los horarios posibles, pueden haber hasta 100 horarios diferentes.

Saludos.
  • 0

#14 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 28 septiembre 2010 - 11:24

Hola

......Pues no, ya que no son sólo dos tipos de horarios, sino, todos los horarios posibles, pueden haber hasta 100 horarios diferentes.

Debe ser muy barata la mano de obra en RD.. :p
Quien trabaja asi????, normalmente hay tres horarios ya que son jornadas de 8 horas.
Saludos
  • 0

#15 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 28 septiembre 2010 - 11:40

Debe ser muy barata la mano de obra en RD.. :p
Quien trabaja asi????, normalmente hay tres horarios ya que son jornadas de 8 horas.
Saludos


Jajaja no amigo :D :D, fíjate, aquí en mi empresa existen más de 5,000 empleados, y no todos tienen un mismo horario de trabajo, por ejemplo:

Pueden haber 100 empleados que trabajen de lunes a viernes de 8:00 Am a 2:30 pm
Pueden haber otros 100 empleados que trabajen de lunes a viernes de 8:00 Am a 12:00 pm
Pueden haber 50 empleados que trabajen de Lunes a Viernes pero de 10:00 Am a 4:00 pm
Pueden haber 15 empleados que trabajen un sólo día de la semana de 8:00 Am a 5:00 pm
Pueden haber otros 100 empleados que trabajen solo tres dias a la semana (Lun, Mar, Mi) o (Lun, Mi, Vi) o (Lun, Jue, Vie)

Ya te imaginarás la cantidad de horarios que pueden haber, por eso he creado un sistema de horario personalizado que no sea limitado a un horario fijo, que sea dinámico, espero esto te saque de algunas dudas.

Saludos.
  • 0

#16 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 28 septiembre 2010 - 12:09

He estado analizando la opción de Marc, pero aún no logro entender, se referías a algo como esto:?

T_DIAS
-------
Lunes
Martes
Miercoles
Jueves
Viernes
Sabado
Domingo

O así

T_DIAS
----------
HORA_ID  DIA
======= ======
1            Lunes
1            Martes
1            Miercoles
1            Jueves
1            Viernes
2            Lunes
2            Miercoles
2            Viernes
3            Sabado
3            Domingo

???

Saludos. 
  • 0

#17 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 28 septiembre 2010 - 12:24

Hola,
Tengo la solución amigo.

Tabla: TIPO_HORARIO
---------------------
IDHorario: OK
Nombre: VARCHAR/CHAR
...

La tabla TIPO_HORARIO registrará los Matutino I, Matutino II, L, XXI, MCI... los que gustes.  :D

Tabla: DIAS
-----------
IDDia: PK
Nombre: VARCHAR/CHAR
....

No tiene demasiada ciencia... creería que se explica sola: lunes, martes,...

Tabla DETALLE_TIPO_HORARIO
-----------------------------
IDDetalle: OK
HorarioID: PK(TIPO_HORARIO.IDHorario)
DiaID: PK(DIAS.IDDia)
...

Esta tabla hace de intermiedia entre los diferentes tipos de horarios y los días. De ese modo se consigue armar diferentes horarios con diferentes días.

¿O será que yo no estoy comprendiendo el asunto?  ^o|

Saludos,

  • 0

#18 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 28 septiembre 2010 - 12:32

Gracias Delphius es algo más o menos, dejame aplicar el concepto a ver si me es factible. Gracias Delphius! (y).

Saludos.
  • 0

#19 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 28 septiembre 2010 - 01:11

No hay de qué amigo, aunque si quieres te paso la tarifa  :D

BROMA ON:
:D Veamos... $3000 al mes... a la semana son $750... al día $150... La jornada es de 8 hs... por tanto, la hora andamos en los $18,75.

La solución me costó 5 minutos, entonces:

Mano de obra: $1,56  + // ¡Joder! ¡Apenas para la tira de pan!
Conexión de internet: $2,5 +
Gasto de cerebro: $10 + //Mira que te hago precio porque eres mi amigo!
Saber que botón de "enviar" hay que apretar: $1000
Total: $1014,06 // ¡Y no te cobro intereses... que soy bueno.

Se acepta sólo en CONTADO.
BROMA OFF.

Saludos,
  • 0

#20 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 29 septiembre 2010 - 08:01

No hay de qué amigo, aunque si quieres te paso la tarifa  :D

BROMA ON:
:D Veamos... $3000 al mes... a la semana son $750... al día $150... La jornada es de 8 hs... por tanto, la hora andamos en los $18,75.

La solución me costó 5 minutos, entonces:

Mano de obra: $1,56  + // ¡Joder! ¡Apenas para la tira de pan!
Conexión de internet: $2,5 +
Gasto de cerebro: $10 + //Mira que te hago precio porque eres mi amigo!
Saber que botón de "enviar" hay que apretar: $1000
Total: $1014,06 // ¡Y no te cobro intereses... que soy bueno.

Se acepta sólo en CONTADO.
BROMA OFF.

Saludos,


no será $1,01406 ?? :D :D :D
  • 0




IP.Board spam blocked by CleanTalk.