/**
  * Moves all linked information from one person to another
  */
 public function merge()
 {
     try {
         $personA = new Person($_REQUEST['person_id_a']);
         $personB = new Person($_REQUEST['person_id_b']);
     } catch (\Exception $e) {
         $_SESSION['errorMessages'][] = $e;
         header('Location: ' . BASE_URL);
         exit;
     }
     // When the user chooses a target, merge the other ticket into the target
     if (isset($_POST['targetPerson'])) {
         try {
             if ($_POST['targetPerson'] == 'a') {
                 $personA->mergeFrom($personB);
                 $targetPerson = $personA;
             } else {
                 $personB->mergeFrom($personA);
                 $targetPerson = $personB;
             }
             header('Location: ' . $targetPerson->getURL());
             exit;
         } catch (\Exception $e) {
             $_SESSION['errorMessages'][] = $e;
         }
     }
     $this->template->setFilename('merging');
     $this->template->blocks[] = new Block('people/mergeForm.inc', array('personA' => $personA, 'personB' => $personB));
     $this->template->blocks['left'][] = new Block('people/personInfo.inc', array('person' => $personA, 'disableButtons' => true));
     $lists = array('reportedBy' => 'Reported Cases', 'assigned' => 'Assigned Cases', 'referred' => 'Referred Cases', 'enteredBy' => 'Entered Cases');
     foreach ($lists as $listType => $title) {
         $this->addTicketList('left', $listType, $title, $personA, true, true);
     }
     $this->template->blocks['right'][] = new Block('people/personInfo.inc', array('person' => $personB, 'disableButtons' => true));
     $lists = array('reportedBy' => 'Reported Cases', 'assigned' => 'Assigned Cases', 'referred' => 'Referred Cases', 'enteredBy' => 'Entered Cases');
     foreach ($lists as $listType => $title) {
         $this->addTicketList('right', $listType, $title, $personB, true, true);
     }
 }