Gracias Charlie, si basicamente para el registro de asistencia de los empleados
---- una recomendación es importante que agregues fechas (por que si se trabajan de un día para otro no solo necesitas las horas también los días para que te de correctamente el tiempo laborado) ---- Habiamos tomado en cuenta este aspecto, como una clase LimiteDia, si el empleado entra a trabajar un dia y resulta que su ultima salida fue al siguiente dia, aqui el dia empieza Lunes por ejemplo a las 00:00 y finaliza el Martes a las 07:00 -------- -Tal vez te vendría manejar un concepto como Turno que tenga una lista relacionada de datos referentes a las entradas y salidas durante el mismo claro referentes a la persona ------- Lo analizamos, y por ahora esta clase se llama Asistencia Con el ultimo punto que comentas, que ingrese y nunca salga (se olvido registrar su salida final), se pensaba en hacer alguna pantalla que permita de forma manual corregir estos casos, pero todavia seguimos analizando Agradezco mucho tu aporte Saludos Edgar El 19 de octubre de 2010 17:35, Charlie <drevil.co...@gmail.com> escribió: > Disculpen si meto mi cuchara > > Estas haciendo esto para un Reloj checador? > > Una vez me tope con eso de los horarios: > > - una recomendación es importante que agregues fechas (por que si se > trabajan de un día para otro no solo necesitas las > horas también los días para que te de correctamente el tiempo laborado) > > -si puede haber solo entrada sin salida. Operativamente la gente > extrañamente no siempre checa su salida (eso lo tendrías que considerar no > digo que crees tu modelo considerando errores solo que los consideres ) > > -Tal vez te vendría manejar un concepto como Turno que tenga una lista > relacionada de datos referentes a las entradas y salidas durante el mismo > claro referentes a la persona. > > > > > > El 19 de octubre de 2010 17:27, Edgar Ramos <eramose...@gmail.com>escribió: > > No le atino una el dia de hoy... >> >> Gracias nuevamente Fabio por tu tiempo, ya tengo material para analizar >> >> Saludos >> >> Edgar >> >> El 19 de octubre de 2010 17:19, Fabio Maulo <fabioma...@gmail.com>escribió: >> >> justo agarraste un ejemplo donde no encapsulo el Add/Remove... bah... por >>> lo general en los ejemplo de mappings no uso encapsular nada ya que solo se >>> habla de mappings. >>> >>> >>> 2010/10/19 Edgar Ramos <eramose...@gmail.com> >>> >>>> Lo andaba pensado y repensando y es totalmente logico, siempre tiene que >>>> haber 2 (Un Ingreso y una Salida), me he reido con el ejemplo de la carcel, >>>> pero como lo expuse pudiera haber sido el caso. >>>> >>>> Me di cuenta de los Add y Remove viendo algunos ejemplos interesantes, >>>> como este >>>> >>>> http://fabiomaulo.blogspot.com/2010/03/conform-mapping-many-to-many.html >>>> >>>> Sigo aprendiendo >>>> >>>> Saludos >>>> >>>> Edgar >>>> >>>> >>>> >>>> El 19 de octubre de 2010 17:08, Fabio Maulo <fabioma...@gmail.com>escribió: >>>> >>>> Si queres... la base está en el hecho que Entrada-Salida tienen que >>>>> estar juntos no pueden simplemente ser dos entradas distintas en una >>>>> collecction... bueno a menos que no se trate de los horarios de una >>>>> carcel y >>>>> tu app. admite que los reclusos con cadena perpetua entran y nunca mas >>>>> van a >>>>> salir ;) >>>>> >>>>> Los Add and Remove de cada collection están como metodos separados >>>>> porque van a tener logica de negocio (el tuyo es un lindo caso para >>>>> demostrarlo). >>>>> En un mismo dia no se pueden agregar dos lapsos en overlaps o sea... >>>>> Lunes >>>>> 09:00 a 13:00 false >>>>> 12:00 a 14:00 true >>>>> 13:45 a 17:00 false >>>>> >>>>> Lo mismo pasa con los dias laborales. >>>>> >>>>> Digamos que las clases de negocio si bien tienen que ser POCO no >>>>> significa que no tengan que tener un minimo de logica. >>>>> >>>>> >>>>> 2010/10/19 Edgar Ramos <eramose...@gmail.com> >>>>> >>>>>> Fabio muchas gracias, estoy analizando tus observaciones >>>>>> >>>>>> Saludos >>>>>> >>>>>> Edgar >>>>>> >>>>>> El 19 de octubre de 2010 16:28, Fabio Maulo >>>>>> <fabioma...@gmail.com>escribió: >>>>>> >>>>>> mmmm no me parece... >>>>>>> WorkDay >>>>>>> { >>>>>>> int DayOfWeek >>>>>>> IEnumerable<WorkTimeDef> Lapses >>>>>>> Add(WorkTimeDef timeDef) >>>>>>> Remove(WorkTimeDef timeDef) >>>>>>> } >>>>>>> >>>>>>> TimeRange (seguro no es una entidad; no tiene ID) >>>>>>> { >>>>>>> TimeSpan Begin >>>>>>> TimeSpan End >>>>>>> bool IsValid >>>>>>> bool Overlaps(TimeRange other) >>>>>>> etc. etc. >>>>>>> } >>>>>>> >>>>>>> WorkTimeDef >>>>>>> { >>>>>>> TimeRange Lapse; >>>>>>> bool IsLunchTime; >>>>>>> } >>>>>>> >>>>>>> FixedWorkWeek >>>>>>> { >>>>>>> IEnumerable<WorkDay> WorkDays >>>>>>> Add(WorkDay day) >>>>>>> Remove(WorkDay day) >>>>>>> } >>>>>>> >>>>>>> veo solo FixedWorkWeek como entidad pero podria ser >>>>>>> tambien WorkDay... no estoy tan seguro. >>>>>>> >>>>>>> 2010/10/19 Edgar Ramos <eramose...@gmail.com> >>>>>>> >>>>>>>> Gracias Fabio >>>>>>>> >>>>>>>> Estoy empezando por el analisis de mi dominio, >>>>>>>> >>>>>>>> public class HorarioFijo : IHorario >>>>>>>> { >>>>>>>> .... >>>>>>>> private readonly IDictionary<DiaDeLaSemana, >>>>>>>> List<HoraLaboral>> mapeoHorasDia; >>>>>>>> ... >>>>>>>> } >>>>>>>> >>>>>>>> y se me olvidaba la parte de la bdd, aqui pongo un bosquejo de las >>>>>>>> tablas >>>>>>>> >>>>>>>> Las tablas podrian verse como lo siguiente >>>>>>>> >>>>>>>> Tabla Horarios (aplicaría la herencia table-per-class hierarchy) >>>>>>>> Campos >>>>>>>> HorarioID: 1 PK >>>>>>>> Descriminador: Pueden Ser Horarios Fijos o Variables >>>>>>>> Descripcion: De 08:30 A: 13:00 y De 14:00, A: 18:30 >>>>>>>> >>>>>>>> Tabla HorasDiarias Ejemplo1 >>>>>>>> HorasDiariasID HorarioID DiaSemana Ingreso1 Salida1 Ingreso2 >>>>>>>> Salida2 >>>>>>>> 1 1 Lunes >>>>>>>> 08:00 13:00 14:00 18:00 >>>>>>>> 2 1 Martes >>>>>>>> 08:00 13:00 14:00 18:00 >>>>>>>> 3 1 Miercoles 08:00 >>>>>>>> 14:00 00:00 00:00 >>>>>>>> >>>>>>>> >>>>>>>> Tabla HorasDiarias Ejemplo2 >>>>>>>> HorasDiariasID HorarioID DiaSemana HoraLaboralID >>>>>>>> 1 1 Lunes 1 >>>>>>>> 2 1 Martes 1 >>>>>>>> 3 1 Miercoles 2 >>>>>>>> >>>>>>>> Tabla HoraLaboral >>>>>>>> HoraLaboralID HorasDiariasID HorarioID EsHoraComida >>>>>>>> Tipo Hora >>>>>>>> 1 1 1 False >>>>>>>> Ingreso 08:00 >>>>>>>> 2 1 1 False >>>>>>>> Salida 18:00 >>>>>>>> 3 1 1 True >>>>>>>> Salida 13:00 >>>>>>>> 4 1 1 True >>>>>>>> Ingreso 14:00 >>>>>>>> >>>>>>>> >>>>>>>> Podria ser algo asi, pero desde luego como se esta en etapa de >>>>>>>> analisis, nada se encuentra creado en la bdd, lo vamos a generar con >>>>>>>> nh3 >>>>>>>> Cualquier comentario es bienvenido >>>>>>>> >>>>>>>> >>>>>>>> Saludos >>>>>>>> >>>>>>>> Edgar >>>>>>>> >>>>>>>> El 19 de octubre de 2010 14:35, Fabio Maulo >>>>>>>> <fabioma...@gmail.com>escribió: >>>>>>>> >>>>>>>> cual es la representacción en tablas ? >>>>>>>>> >>>>>>>>> 2010/10/19 Edgar Ramos <eramose...@gmail.com> >>>>>>>>> >>>>>>>>>> Gente un saludo, en mi contexto tengo algo como lo siguiente >>>>>>>>>> >>>>>>>>>> public class HorarioFijo : IHorario >>>>>>>>>> { >>>>>>>>>> .... >>>>>>>>>> private readonly IDictionary<string, List<HoraLaboral>> >>>>>>>>>> HorasDia; >>>>>>>>>> ..... >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> Esto es posible mapearlo con nh3 ? >>>>>>>>>> >>>>>>>>>> Muchas gracias a todos >>>>>>>>>> >>>>>>>>>> Saludos >>>>>>>>>> >>>>>>>>>> Edgar >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>>>>>>> NHibernate-Hispano@googlegroups.com >>>>>>>>>> Para más, visite: >>>>>>>>>> http://groups.google.com/group/NHibernate-Hispano >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Fabio Maulo >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>>>>>> NHibernate-Hispano@googlegroups.com >>>>>>>>> Para más, visite: >>>>>>>>> http://groups.google.com/group/NHibernate-Hispano >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>>>>> NHibernate-Hispano@googlegroups.com >>>>>>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Fabio Maulo >>>>>>> >>>>>>> -- >>>>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>>>> NHibernate-Hispano@googlegroups.com >>>>>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>>>>>> >>>>>> >>>>>> -- >>>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>>> NHibernate-Hispano@googlegroups.com >>>>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Fabio Maulo >>>>> >>>>> -- >>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>> NHibernate-Hispano@googlegroups.com >>>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>>>> >>>> >>>> -- >>>> Para escribir al Grupo, hágalo a esta dirección: >>>> NHibernate-Hispano@googlegroups.com >>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>>> >>> >>> >>> >>> -- >>> Fabio Maulo >>> >>> -- >>> Para escribir al Grupo, hágalo a esta dirección: >>> NHibernate-Hispano@googlegroups.com >>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>> >> >> -- >> Para escribir al Grupo, hágalo a esta dirección: >> NHibernate-Hispano@googlegroups.com >> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >> > > -- > Para escribir al Grupo, hágalo a esta dirección: > NHibernate-Hispano@googlegroups.com > Para más, visite: http://groups.google.com/group/NHibernate-Hispano > -- Para escribir al Grupo, hágalo a esta dirección: NHibernate-Hispano@googlegroups.com Para más, visite: http://groups.google.com/group/NHibernate-Hispano