@Override
  public Iterator<AssemblyTask> getAvailableTasks(User user) {
    IteratorConverter<WorkPost> converter = new IteratorConverter<>();
    HashMap<AssemblyTask, String> tasks = new HashMap<AssemblyTask, String>();

    for (AssemblyLine line : this.getOrderManager().getMainScheduler().getAssemblyLines())
      for (WorkPost post : converter.convert(line.getWorkPostsIterator()))
        for (AssemblyTask task : post.getResponsibleTasksClone())
          if (task.canBeOrdered())
            if (!tasks.containsValue(task.toString())) tasks.put(task, task.toString());

    return tasks.keySet().iterator();
  }
 @Override
 public Iterator<AssemblyTask> getFinishedTasks(User user, WorkPost wp)
     throws NoClearanceException {
   if (user.canPerfomAssemblyTask()) return wp.getFinishedTasks();
   else throw new NoClearanceException();
 }