function pdf_info()
 {
     //checklist subject
     $format = 'f m l';
     $info['person_name'] = parent::get_name($this->user, $format);
     //checklist categories
     $info['categories'] = HRChecklist::categories($this->checklist_type);
     //category items
     foreach ($info['categories'] as &$category) {
         $category['items'] = HRChecklist::get_items($category);
     }
     //checklist info .... date created, id, user, type. the latter two should already be defined before this point.
     $info['checklist_info'] = HRChecklist::get($this->user, $this->type);
     $info['checklist_info']['title'] = self::format_type_slug($info['checklist_info']['type']) . ' Checklist';
     //checklist status
     $info['is_complete'] = HRChecklist::is_complete($this->type, $info['checklist_info']['id']);
     //if a closed date exists
     if (HRChecklist::get_meta($info['checklist_info']['id'], 'closed', 'activity_date')) {
         $info['checklist_info']['closed_date'] = HRChecklist::get_meta($info['checklist_info']['id'], 'closed', 'activity_date');
         $info['closed_date'] = new DateTime($info['checklist_info']['closed_date']['activity_date']);
         $info['closed_date'] = $info['closed_date']->format('l F j, Y');
     }
     return $info;
 }
$checklist_id = HRChecklist::get($person->pidm, $list, 'id');
$closed = HRChecklist::meta_exists($checklist_id, 'closed', 1);
if (IDMObject::authZ('permission', 'ape_checklist_employee_exit_hr')) {
    if ($_POST['checklist_closed'] && !$closed) {
        HRChecklist::add_meta($checklist_id, 'closed', 1);
        HRChecklist::toggle_checklist($checklist_id, $_REQUEST['identifier'], true);
        HRChecklist::add_meta($checklist_id, 'closed_marked_by', $_SESSION['pidm']);
    } elseif (!$_POST['checklist_closed'] && $closed) {
        HRChecklist::add_meta($checklist_id, 'closed', 0);
        HRChecklist::toggle_checklist($checklist_id, $_REQUEST['identifier'], false);
        HRChecklist::add_meta($checklist_id, 'closed_marked_by', $_SESSION['pidm']);
    }
    //end elseif
}
//end if
$closed_person = HRChecklist::get_meta($checklist['id'], 'closed_marked_by', 1);
$closed_person = $closed_person['meta_value'];
if ($closed_person) {
    $pdf->SetFont('Arial', 'B', 13);
    $pdf->setTextColor(120, 7, 41);
    $closed_person = new PSUPerson($closed_person);
    $pdf->Cell(190, 5, 'This Employee Clearance Form has been closed by ' . $closed_person->formatName('f m l') . '.', 0, 1, 'L');
    $pdf->setTextColor(0, 0, 0);
    $pdf->SetFont('Arial', '', 10);
    $pdf->ln(5);
}
//end if
foreach ($categories as $category) {
    $checklist_items[$category['name']] = HRChecklist::checklist_items($category['id']);
}
//end foreach
 /**
  * retrieves all of the checklists and associated meta data selected in the contructor args or the defaults 
  */
 public function populate_checklists()
 {
     $this->get_all_checklists();
     $this->categories = HRChecklist::categories($this->type);
     if ($this->checklists['pending']) {
         foreach ($this->checklists['pending'] as &$checklist) {
             $checklist['closed'] = HRChecklist::is_complete($this->type, $checklist['id']);
             $checklist['person_name'] = self::get_name($checklist['pidm']);
             $checklist['meta']['end_date'] = HRChecklist::get_meta($checklist['id'], 'end_date', 1);
             foreach ($this->categories as $category) {
                 $category['is_complete'] = self::is_category_complete($category['id'], $checklist['id']);
                 $category['updated'] = self::last_updated_by($category['id'], $checklist['id']);
                 $category['reminder'] = HRChecklist::get_meta($checklist['id'], 'reminder_' . $category['slug'], 1);
                 $items = HRChecklist::get_items(array('category' => $category['id']));
                 $category['items'] = array();
                 foreach ($items as $item) {
                     $item['response'] = HRChecklist::item_response($item['id'], $checklist['id'], '*', 'GetRow');
                     $category['items'][$item['slug']] = $item;
                 }
                 //end foreach
                 $checklist['category'][] = $category;
             }
             //end foreach
         }
         //end foreach
     }
     //end if
     $checklist_temp = array();
     if ($this->checklists['closed']) {
         while ($c = $this->checklists['closed']->fetchrow()) {
             $c['closed'] = HRChecklist::is_complete($this->type, $c['id']);
             $c['person_name'] = self::get_name($c['pidm']);
             $c['meta']['closed'] = HRChecklist::get_meta($c['id'], 'closed', 1);
             $c['meta']['end_date'] = HRChecklist::get_meta($c['id'], 'end_date', 1);
             foreach ($this->categories as $category) {
                 $category['is_complete'] = self::is_category_complete($category['id'], $c['id']);
                 $category['updated'] = self::last_updated_by($category['id'], $c['id']);
                 $category['reminder'] = HRChecklist::get_meta($c['id'], 'reminder_' . $category['slug'], 1);
                 $c['category'][] = $category;
             }
             //end foreach
             $checklist_temp[] = $c;
         }
         //end foreach
         $this->checklists['closed'] = $checklist_temp;
     }
     //end if
 }