Beispiel #1
0
 /**
  * Run manual commands on timeclocks
  * @param string $command command name
  * @param array $data station IDs
  * @return array
  */
 function runManualCommand($command, $data)
 {
     if (is_numeric($data)) {
         $data = array($data);
     }
     if (!is_array($data)) {
         return $this->returnHandler(FALSE);
     }
     Debug::Text('Time Clock Command: ' . $command, __FILE__, __LINE__, __METHOD__, 10);
     Debug::Text('Received data for: ' . count($data) . ' Stations', __FILE__, __LINE__, __METHOD__, 10);
     Debug::Arr($data, 'Data: ', __FILE__, __LINE__, __METHOD__, 10);
     $src_rows = $this->stripReturnHandler($this->getStation(array('filter_data' => array('id' => $data)), TRUE));
     if (is_array($src_rows) and count($src_rows) > 0) {
         Debug::Arr($src_rows, 'SRC Rows: ', __FILE__, __LINE__, __METHOD__, 10);
         foreach ($src_rows as $key => $row) {
             //Skip any non-timeclock types.
             if ($row['type_id'] < 100) {
                 continue;
             }
             Debug::Text(' Type: ' . $row['type_id'] . ' Source: ' . $row['source'] . ' Port: ' . $row['port'] . ' Password: '******'password'], __FILE__, __LINE__, __METHOD__, 10);
             $tc = new TimeClock($row['type_id']);
             $tc->setIPAddress($row['source']);
             $tc->setPort($row['port']);
             //$tc->setUsername( $row['user_name'] );
             $tc->setPassword($row['password']);
             $slf = TTnew('StationListFactory');
             $slf->getByIdAndCompanyId($row['id'], $this->getCurrentCompanyObject()->getId());
             if ($slf->getRecordCount() == 1) {
                 $s_obj = $slf->getCurrent();
             }
             $s_obj->setLastPunchTimeStamp($s_obj->getLastPunchTimeStamp());
             if ($s_obj->getTimeZone() != '' and !is_numeric($s_obj->getTimeZone())) {
                 Debug::text('Setting Station TimeZone To: ' . $s_obj->getTimeZone(), __FILE__, __LINE__, __METHOD__, 10);
                 TTDate::setTimeZone($s_obj->getTimeZone());
             }
             $result_str = NULL;
             switch ($command) {
                 case 'test_connection':
                     if ($tc->testConnection() == TRUE) {
                         $result_str = TTi18n::gettext('Connection Succeeded!');
                     } else {
                         $result_str = TTi18n::gettext('Connection Failed!');
                     }
                     break;
                 case 'set_date':
                     TTDate::setTimeZone($row['time_zone_id'], $s_obj->getTimeZone());
                     if ($tc->setDate(time()) == TRUE) {
                         $result_str = TTi18n::gettext('Date Successfully Set To: ') . TTDate::getDate('DATE+TIME', time());
                     } else {
                         $result_str = TTi18n::gettext('Setting Date Failed!');
                     }
                     break;
                 case 'download':
                     if (isset($s_obj) and $tc->Poll($this->getCurrentCompanyObject(), $s_obj) == TRUE) {
                         $result_str = TTi18n::gettext('Download Data Succeeded!');
                         if ($s_obj->isValid()) {
                             $s_obj->Save(FALSE);
                         }
                     } else {
                         $result_str = TTi18n::gettext('Download Data Failed!');
                     }
                     break;
                 case 'upload':
                     if (isset($s_obj) and $tc->Push($this->getCurrentCompanyObject(), $s_obj) == TRUE) {
                         $result_str = TTi18n::gettext('Upload Data Succeeded!');
                         if ($s_obj->isValid()) {
                             $s_obj->Save(FALSE);
                         }
                     } else {
                         $result_str = TTi18n::gettext('Upload Data Failed!');
                     }
                     break;
                 case 'update_config':
                     if (isset($s_obj) and $tc->setModeFlag($s_obj->getModeFlag()) == TRUE) {
                         $result_str = TTi18n::gettext('Update Configuration Succeeded');
                     } else {
                         $result_str = TTi18n::gettext('Update Configuration Failed');
                     }
                     break;
                 case 'delete_data':
                     if (isset($s_obj) and $tc->DeleteAllData($s_obj) == TRUE) {
                         $result_str = TTi18n::gettext('Delete Data Succeeded!');
                         if ($s_obj->isValid()) {
                             $s_obj->Save(FALSE);
                         }
                     } else {
                         $result_str = TTi18n::gettext('Delete Data Failed!');
                     }
                     break;
                 case 'reset_last_punch_time_stamp':
                     $s_obj->setLastPunchTimeStamp(time());
                     if ($s_obj->isValid()) {
                         $s_obj->Save(FALSE);
                     }
                     $result_str = TTi18n::gettext('Reset Last Punch Time Succeeded!');
                     break;
                 case 'clear_last_punch_time_stamp':
                     $s_obj->setLastPunchTimeStamp(1);
                     if ($s_obj->isValid()) {
                         $s_obj->Save(FALSE);
                     }
                     $result_str = TTi18n::gettext('Clear Last Punch Time Succeeded!');
                     break;
                 case 'restart':
                     $tc->restart();
                     $result_str = TTi18n::gettext('Restart Succeeded!');
                     break;
                 case 'firmware':
                     if ($tc->setFirmware() == TRUE) {
                         $result_str = TTi18n::gettext('Firmware Update Succeeded!');
                     } else {
                         $result_str = TTi18n::gettext('Firmware Update Failed!');
                     }
                     break;
                 default:
                     $result_str = TTi18n::gettext('Invalid manual command!');
                     break;
             }
             TTLog::addEntry($s_obj->getId(), 500, TTi18n::getText('TimeClock Manual Command') . ': ' . ucwords(str_replace('_', ' ', $command)) . ' ' . TTi18n::getText('Result') . ': ' . $result_str, NULL, $s_obj->getTable());
             if (isset($s_obj)) {
                 $row['last_poll_date'] = $s_obj->getLastPollDate();
                 $row['last_push_date'] = $s_obj->getLastPushDate();
             }
             unset($s_obj, $slf);
         }
         return $this->returnHandler($result_str);
     }
     return $this->returnHandler(FALSE);
 }
Beispiel #2
0
             $sf->setExcludeUser(array());
         }
         if ($sf->isValid()) {
             $sf->Save(TRUE);
             //$sf->FailTransaction();
             $sf->CommitTransaction();
             Redirect::Page(URLBuilder::getURL(NULL, 'StationList.php'));
             break;
         }
     }
     $sf->FailTransaction();
 case 'time_clock_command':
     if (getTTProductEdition() >= 15 and $action != 'submit') {
         //Debug::setVerbosity(11);
         Debug::Text('Time Clock Command: ' . $data['time_clock_command'], __FILE__, __LINE__, __METHOD__, 10);
         $tc = new TimeClock($data['type']);
         $tc->setIPAddress($data['source']);
         $tc->setPort($data['port']);
         //$tc->setUsername( $data['user_name'] );
         $tc->setPassword($data['password']);
         $slf = new StationListFactory();
         $slf->getByIdAndCompanyId($data['id'], $current_company->getId());
         if ($slf->getRecordCount() == 1) {
             $s_obj = $slf->getCurrent();
         }
         $s_obj->setLastPunchTimeStamp($s_obj->getLastPunchTimeStamp());
         if ($s_obj->getTimeZone() != '' and !is_numeric($s_obj->getTimeZone())) {
             Debug::text('Setting Station TimeZone To: ' . $s_obj->getTimeZone(), __FILE__, __LINE__, __METHOD__, 10);
             TTDate::setTimeZone($s_obj->getTimeZone());
         }
         $result_str = NULL;