protected function _processSetVisit($closed = null, $void = null)
 {
     $visitParams = $this->_getParam('visit');
     $visitParams['lastChangeUserId'] = (int) Zend_Auth::getInstance()->getIdentity()->personId;
     //$visitParams['timestamp'] = date('Y-m-d h:i:s');
     if ($closed !== null) {
         $visitParams['closed'] = (int) $closed;
     }
     $visit = new Visit();
     $visit->visitId = (int) $visitParams['visitId'];
     $data = 'Visit ID ' . $visit->visitId . ' is invalid';
     if ($visit->populate()) {
         if ($void !== null) {
             $visit->void = (int) $void;
             if ($visit->void && $visit->hasPayments()) {
                 $error = 'Cannot void visit with payments';
             }
         } else {
             $visit->populateWithArray($visitParams);
         }
         if (isset($error)) {
             $data = $error;
         } else {
             $visit->persist();
             $data = $this->_generateVisitRowData($visit);
         }
     }
     $json = Zend_Controller_Action_HelperBroker::getStaticHelper('json');
     $json->suppressExit = true;
     $json->direct($data);
 }