Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Ayuda con Codigo Foxpro

1 view
Skip to first unread message

Jorge Eduardo

unread,
Oct 14, 2008, 3:57:48 PM10/14/08
to
Cordial Saludo,

Bueno necesita pedir una ayuda con un codigo ya que a veces varias
cabezas piensan mejor que una, este es el problema.

Tengo un archivo de marcaciones de Entrada y Salida de Empleados por
huella Dactilar, donde se encuantre la marcacion cuando entran y salen
del trabajo, yo debo asignar dichas marcaciones a un turno de trabajo
para efectos de nomina, dichos turnos son los siguientes:

1. 6:00 a 14:00
2. 14:00 a 22:00
3. 22:00 a 6:00
4. 8:00 a 17:00
5. 6:00 a 18:00
6 18:00 a 6:00

Debo verificar donde existe mas interseccion de horas en un turno,
entonces si por ejemplo la marcacion de entrada fue a las 7 y la de
salida fue a las 20, debo asignar el turno que mas horas esten
contenidas o intersectadas, no puedo asignar el de 6 a 14 por que solo
hay 7 horas intersectadas, tampoco el de 8 a 17 por que solo hay 9
horas intersectadas, entonces el que mas horas intersectadas tiene es
el turno de 6 a 18 que tiene 11 horas intersectadas.

Yo estaba pensado en poner unos limites por ejemplo el siguiente
codigo:

IF (HENTRADA=6 .AND. HSALIDA=14)
*ASIGNO A TURNO 6 A 14
ENDIF

Pero cuando la marcacion no es la del turno si no que hizo una
marcacion diferente es donde tengo los problemas como la marcacion del
ejemplo de 7 a 20.

Bueno espero que cualquiera de Ustede me pueda dar una ayudita para
ver este problema de una forma diferente.

Gracias de antemano por su pronta ayuda.

Jorge Eduardo.
Colombia

msnews.microsoft.com

unread,
Oct 15, 2008, 1:12:55 PM10/15/08
to
Hola
A ver si esto te sirve, creo que funciona en todos los casos,pero pruebalo.
************************************************************
** CALCULA LA INTERSECCION DE UN TURO TRABAJADO CON
** LOS HORARIOS ESTABLECIDOS
* HORARIO1->6-14
* HORARIO2->14-20
* HORARIO3->22-30 SE SUMAN 24 HORAS SI LA SALIDA ES AL DIA SIGUIENTE
* HORARIO4->8-17
* HORARIO5->6-18
* HORARIO6->16-30

ent1=6
sal1=14

ent2=14
sal2=20

ent3=22
sal3=30

ent4=8
sal4=17

ent5=6
sal5=18

ent6=16
sal6=30

reg_ent=7 &&HORA DE ENTRADA DEL TRABAJADOR
reg_sal=20 &&HORA DE SALIDA DEL TRABAJADOR

horario=0 && VARIABLE PADA SELECCIONAR EL HORARIO APLICABLE
interseccion=0 && VARIABLE PARA CONTROLAR LAS HORAS DE INTERSECCION

** INICIA PROCESO
For i=1 To 6 && HAY 6 HORARIOS
xent='ENT'+Alltrim(Str(i))
xsal='SAL'+Alltrim(Str(i))

principia=Iif(reg_ent >= &xent, reg_ent, &xent)
termina=Iif(reg_sal >= &xsal, &xsal, reg_sal)
duracion=Termina-principia
If duracion>interseccion
interseccion=duracion
horario=i
Endif
Endfor

? horario
? interseccion
*************************************************************


"Jorge Eduardo" <blas...@gmail.com> escribió en el mensaje
news:60dae289-5de4-412a...@1g2000prd.googlegroups.com...

msnews.microsoft.com

unread,
Oct 15, 2008, 1:18:29 PM10/15/08
to
Perdon, se me olvido "firmar" la respuesta anterior.

Saludos
David


"msnews.microsoft.com" <d_ala...@yahoo.com.mx> escribió en el mensaje
news:eitDlDuL...@TK2MSFTNGP04.phx.gbl...

0 new messages