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