Overview
Schedule blocking enables date and time ranges on schedules to be marked as unavailable.
This can be used to prevent appointments being made outside business hours or public holidays for example.
Currently OpenVPMS supports limited schedule blocking by defining a start and end time between which appointments can be created. There is no support to prevent scheduling between these times or on particular days.
Users currently work around this by creating dummy appointments.
This project will enable users to create blocks on a schedule, such that:
- a warning is displayed if an attempt is made to schedule an appointment where there is a block e.g. if the appointment is scheduled outside hours, or on a public holiday.
- schedules can be reserved so that appointments can only be created for customers with specific classifications e.g. it could be used to reserve boarding cages during holidays for valued customers
Block Creation
Schedule blocks will be created within the Workflow - Scheduling screen, via a new Block button.
A block:
- may optionally be named (e.g. Public Holiday, Team Meeting etc)
- must have have start and end dates
- may be recurring. It has the same recurrence options as appointments
- may have a Block Type. This provides
- a default name for the Block
- customer classifications that the Block is restricted to (e.g. Puppy Class, Valued Customer, Health Club Member)
- a colour for the Block when it is displayed
- may not be created if it overlaps an existing appointment
- may not be created if it overlaps an existing block
Block Display
Blocks are displayed as contiguous regions, with a name, if one has been specified, and the colour of the Block Type, if any.
If an appointment overlaps a block, it hides the portion of the block it overlaps.
Saving Appointments
When an appointment is saved, an additional check will be made to determine if it overlaps a block. If so, and the block has no Block Type with customer classifications, a warning will be displayed e.g.:
This appointment overlaps a schedule block (Public Holiday). Do you want to save it?
If the block has a Block Type with customer classifications, and the appointment is for a customer with one of those classifications, then no message is displayed.
If the block has a Block Type with customer classifications, and the appointment customer doesn't have any of those classifications, then an error message will be displayed e.g.:
This appointment overlaps a schedule block (Reserved for Puppy Class) and cannot be saved.
JIRA: OVPMS-1763