Sorry Scott. After I saved the comment, Jira reformatted the text - making it hard to read. So, I had to edit it to get the formatting back.
-Adrian --- On Fri, 9/12/08, Scott Gray <[EMAIL PROTECTED]> wrote: > From: Scott Gray <[EMAIL PROTECTED]> > Subject: Re: [jira] Issue Comment Edited: (OFBIZ-1956) Improved Recurring > Events > To: dev@ofbiz.apache.org > Date: Friday, September 12, 2008, 5:32 PM > As I've mentioned before, edited comments are a PITA. I > took the time > to read Adrian's initial comment only to find the next > email in my > inbox was the one below but I have no way of knowing what > was changed. > > Everyone, whenever possible please avoid editing comments > and just > post a new correcting comment instead. > > Thanks > Scott > > 2008/9/13 Adrian Crum (JIRA) <[EMAIL PROTECTED]>: > > > > [ > https://issues.apache.org/jira/browse/OFBIZ-1956?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12630717#action_12630717 > ] > > > > [EMAIL PROTECTED] edited comment on OFBIZ-1956 at > 9/12/08 5:19 PM: > > > ------------------------------------------------------------- > > > > As was discussed on the dev mailing list... > > > > The proposed recurrence system is based > > on a design proposed by Martin Fowler - > > http://martinfowler.com/apsupp/recurring.pdf. His > design is quite old, > > so I updated it to support internationalization and I > expanded it. > > > > The design is extremely flexible and it allows for > arbitrarily complex > > recurring events. The design is based on temporal > expressions. Each > > temporal expression could be considered a rule - like > "every Monday" or > > "the 15th of the month." > > > > Temporal expressions can used alone or they can be > combined in any of > > three "collection" expressions - Union, > Intersection, and Difference. A > > date will match a Union collection if any of its > expressions match > > (logical OR). A date will match an Intersection > collection if all of its > > expressions match (logical AND). A date will match a > Difference > > collection if it matches the "included" > expression and doesn't match the > > "excluded" expression. > > > > Using Bilgin's Happy Hour promotion as an example: > > > > Intersection > > ..DayOfWeekRange(Monday, Friday) > > ..TimeOfDayRange(15:00, 17:00) > > > > Let's say we want to exclude St. Patrick's Day > from the Happy Hour > > promotion: > > > > Difference > > ..Include > > ....Intersection > > ......DayOfWeekRange(Monday, Friday) > > ......TimeOfDayRange(15:00, 17:00) > > ....Exclude > > ......Intersection > > ........MonthRange(March, March) > > ........DayOfMonthRange(17, 17) > > > > A semi-monthly payday: > > > > Union > > ..DayOfMonthRange(1, 1) > > ..DayOfMonthRange(15, 15) > > > > Labor Day (US): > > > > Intersection > > ..MonthRange(September, September) > > ..DayInMonth(Monday, 1) > > > > A schedule is made up of schedule items. Each schedule > item "points to" > > a temporal expression. It also has duration > information, and an item > > type ID (meeting, appointment, etc). > > > > Schedules can be linked to parties/facilities/fixed > assets through > > relationship entities. > > > > The implementation requires four new entities. I > picture this being introduced in the framework and we can > gradually migrate the existing recurrence code over to it. > In addition, I > > could write a conversion routine to convert the > existing Recurrence* > > entities over to the new ones. > > > > > > was (Author: [EMAIL PROTECTED]): > > As was discussed on the dev mailing list... > > > > The proposed recurrence system is based > > on a design proposed by Martin Fowler - > > http://martinfowler.com/apsupp/recurring.pdf. His > design is quite old, > > so I updated it to support internationalization and I > expanded it. > > > > The design is extremely flexible and it allows for > arbitrarily complex > > recurring events. The design is based on temporal > expressions. Each > > temporal expression could be considered a rule - like > "every Monday" or > > "the 15th of the month." > > > > Temporal expressions can used alone or they can be > combined in any of > > three "collection" expressions - Union, > Intersection, and Difference. A > > date will match a Union collection if any of its > expressions match > > (logical OR). A date will match an Intersection > collection if all of its > > expressions match (logical AND). A date will match a > Difference > > collection if it matches the "included" > expression and doesn't match the > > "excluded" expression. > > > > Using Bilgin's Happy Hour promotion as an example: > > > > Intersection > > DayOfWeekRange(Monday, Friday) > > TimeOfDayRange(15:00, 17:00) > > > > Let's say we want to exclude St. Patrick's Day > from the Happy Hour > > promotion: > > > > Difference > > Include > > Intersection > > DayOfWeekRange(Monday, Friday) > > TimeOfDayRange(15:00, 17:00) > > Exclude > > Intersection > > MonthRange(March, March) > > DayOfMonthRange(17, 17) > > > > A semi-monthly payday: > > > > Union > > DayOfMonthRange(1, 1) > > DayOfMonthRange(15, 15) > > > > Labor Day (US): > > > > Intersection > > MonthRange(September, September) > > DayInMonth(Monday, 1) > > > > A schedule is made up of schedule items. Each schedule > item "points to" > > a temporal expression. It also has duration > information, and an item > > type ID (meeting, appointment, etc). > > > > Schedules can be linked to parties/facilities/fixed > assets through > > relationship entities. > > > > The implementation requires four new entities. I > picture this being introduced in the framework and we can > gradually migrate the existing recurrence code over to it. > In addition, I > > could write a conversion routine to convert the > existing Recurrence* > > entities over to the new ones. > > > > > >> Improved Recurring Events > >> ------------------------- > >> > >> Key: OFBIZ-1956 > >> URL: > https://issues.apache.org/jira/browse/OFBIZ-1956 > >> Project: OFBiz > >> Issue Type: Improvement > >> Components: framework > >> Affects Versions: SVN trunk > >> Reporter: Adrian Crum > >> Priority: Minor > >> > >> Come up with an improved recurring event > implementation. Details in comments. > > > > -- > > This message is automatically generated by JIRA. > > - > > You can reply to this email to add a comment to the > issue online. > > > >