Forum Discussion
- QuickBaseCoachDQrew CaptainI assume that you are scheduling resources (people). Are they scheduled by date and time or just date or a range of dates .... how are they scheduled?
- HansHammQrew Assistant CaptainMark,
Long time, no talk to!
I do not know what happened... the post saved before I finished...
Need this functionality on the Travel Form:
On the save - check the following:
Employee ID (on form) - listed on Travel Table
Do the Start Date & End Dates (on form) - correspond to dates on the table
If these are "true", the record cannot be saved with a message like this "The associate is already scheduled on a project in this time frame"
If "false" the record can be saved.
I am just not sure where to start on this...
Thanks for your help! - QuickBaseCoachDQrew CaptainCan you explain your tables and their relationships and what an example of Double scheduling means to you.?
- HansHammQrew Assistant Captain1) Resets are recorded in the reset table, the ResetID is a text formula field and is used as the reference proxy to the travel table.
2) Associates are recorded in the associate table
What is happening a manager after scheduling the reset will schedule associates to work the project. Say at store 123, Joe is working 6/12 thru 6/24. Then the manager will schedule Joe again at store 456, from 6/19 thru 6/24. So, there is an overlap or double scheduling happening that I need to eliminate. - QuickBaseCoachDQrew CaptainThis is not easy to do natively. There are some somewhat brute force solutions I have implemented effectively for clients with similar resource scheduling clients, but that would take a one on one discussion and demo. Basically it involved setting up summary fields for each day out for say a 30 window to count the number of bookings that employee has for each of the next 30 days. Then I translated the numbers to pretty icons to highlight the double bookings.
- OscarHernandezQrew MemberI'm having a similar issue, trying to develop a scheduling application for clients to be able to schedule appointments but not allow a trainer to be double booked or have an appointment overlap another appointment.
------------------------------
Oscar Hernandez
------------------------------
- NealNealQrew MemberI developed custom app for resource booking in the past. It becomes necessary to compare timing of the proposed booking with the previous booked resources . Link for booking i.e. Book_It will not show up if there is any conflict with previous bookings.
Neal
NealPatil @ gmx.com - MCFNeilQrew CaptainIn all honesty, the best, cleanest, fastest way to accomplish this is with some script. You can even have a nice UI to select the available Resources.
If you try the native and multiple relationships without success, let me know.- OscarHernandezQrew MemberHi,
I was wondering if you had some time to explain how you accomplished this with a script?
------------------------------
Oscar Hernandez
------------------------------
- QuickBaseCoachDQrew CaptainThis is one case where I agree. The brute force native way is quite brutish.
- HansHammQrew Assistant CaptainUnder the gun to get some project reporting completed for the bosses... However, I am interested in your comment Matthew, but I am not familiar with script how to implement etc... can you point me in the right direction?
- _anomDiebolt_Qrew EliteThis is actually a very simple problem if you understand "Allen's Interval Algebra":
Allen's Interval Algebra
https://en.wikipedia.org/wiki/Allen%27s_interval_algebra
Years ago I posted a solution to this but it was about 3 forum versions ago and I don't know if my post survived into the current version of the forum.
Let's assume you have no overlaps in your existing table and you have a startand endfields (and that in all cases <). Now consider adding a new record and lets refer to the values sitting in the form as "new start" ns and "new end" ne (and of course ns < ne). Note that there are only two fields we are referring to here and. The values ns and ne are just the proposed values a user is trying to enter into a new record if there is no overlap with existing records.
You can't successfully submit the form with the new values ns and ne if there is an existing record for which following condition holds:
< ne AND ns <=
So all the script has to do is monitor changes in the form for ns and ne and perform an AJAX query to see if there is a conflict with an existing record using the above criteria. If there is a conflict your prevent the form from saving. If there is no conflict you save the form. It really is that simple.
The only real thing you have to address is that you probably want to have some discrete time interval for your start and end fields such as 15 minutes, a day, a week etc.