ShiftSchedule is a simple procedure, combining random and greedy strategies with heuristics to maximize the minimal interval between consecutive shifts with multiple constraints on the workload distribution. In particular, the distribution of duties among the staff must be uniform when a number of roles and a variety of shift types are considered. The number of persons available for every shift type and role must be large compared to the number required in each case. The method also implements a strategy to deal with the suboptimal results of the simple approach when some infrequent and aperiodic day types, such as long weekends, are considered.
ExportSpreadsheets is a class that can be used to create an Excel spreadsheet from data in a MySQL table. It performs a query to a given MySQL table and creates an Excel spreadsheet file using the PEAR Spreadsheet_Excel_Writer package. The class can export multiple worksheets to a single Excel file. Several parameters may be used to configure details like which table fields map to which spreadsheet columns, field sorting, etc.