Preventative Maintenance or PM

 * A PM is simply a task where:
  * Task type = "Preventative Maintenance"
  * As with any task a PM may have a recurring schedule, procedure and entries etc.

The following information can be automatically returned from the system.

 * PM frequency = Task.taskRecurringSchedule

 * PM KPI's:
  * Total PM's = Task.findAllByTaskType("Preventative Maintenance")
  * Complete PM's = Total.findAllByTaskStatus("Complete")
  * PM completetion rate = Complete/Total
  * Missed PM's = Total - Complete

 * Find all Recurring PM tasks = context{TaskRecShed.task.taskType("Preventative Maintenance") and Date in range}
