Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- require_once(__DIR__.'/../../../config.php');
- require_once(CFG_LIBDIR.'/exceptions.php');
- require_once(CFG_DIRROOT.'/apconnectdb.php');
- require_once(CFG_LIBDIR.'/stdlib.php');
- require_once(CFG_LIBDIR.'/mainlib.php');
- require_once(CFG_LIBDIR.'/libtranslate.php');
- require_once(CFG_LIBDIR.'/constants.php');
- require_once(CFG_LIBDIR.'/liblogfile.php');
- require_once(CFG_LIBDIR.'/liberror.php');
- require_once(CFG_LIBDIR.'/libhistory.php');
- require_once(CFG_LIBDIR.'/libarchivefile.php');
- require_once(CFG_LIBDIR.'/libsetting.php');
- try{
- global $db;
- $semaphore = new Semaphore(basename(__FILE__));
- $logFilename = CFG_TMPDIR."/ExportRecords_".date("YmdHis").".log" ;
- Administration::set('GetUsers', 'Start', date(MSSQL_DATE_FORMAT));
- $logFile = new LogFile($logFilename);
- $logFile->msgStarDecoration("START");
- $logFile->msgStarDecoration(date("Y-m-d H:i:s"));
- $hiId = hist_log(HIST_EVENT_CUSTOM_START,HIST_LEVEL_INFO,'Custom');
- $semaphore->acquire();
- $idx = 0;
- $saved = 0;
- $count = 1;
- $lastFileName = "";
- $sql = "SELECT COUNT(r_recflg) FROM reclist where r_recflg != ".RecFlg::COPIED;
- $total = dbGetField($sql);
- $loops = ceil($total /100);
- while ($loops > 0) {
- $sql = "SELECT TOP 100 r_id, r_userdata, r_datetimebeg, r_datetimeend, r_u_id, r_called, r_recflg
- FROM reclist where r_recflg != ".RecFlg::COPIED." ORDER BY r_datetimebeg,r_datetimeend";
- $rs = dbExecute($sql);
- while (!$rs->EOF){
- $logFile->msg_nl("Record $count/$total: ");
- $fileName = getFileName($rs->fields, $logFile);
- if($lastFileName!=$fileName){
- $idx = 0;
- } else{
- $idx++;
- $fileName .= "($idx)";
- }
- $saved += saveCopied($rs->fields['r_id'],$rs->fields,$fileName, $logFile);
- $lastFileName = $fileName;
- $count++;
- $rs->MoveNext();
- }
- $loops--;
- }
- $hiId = hist_log(HIST_EVENT_CUSTOM_START, HIST_LEVEL_ACTION, "Custom","Počet zkopírovaných souborů $saved/$total ");
- if($saved == $total){
- $hiId = hist_log_ref(LNG_HIST_EVENT_CUSTOM_ERROR, HIST_LEVEL_ERROR, "Custom","Nenastaly žádné chyby");
- } else {
- $errors = $total-$saved;
- $hiId = hist_log_ref(LNG_HIST_EVENT_CUSTOM_ERROR, HIST_LEVEL_ERROR, "Custom","Nastalo $errors chyb");
- }
- $logFile->msg_nl("**************** END ******************");
- $logFile->msg_nl("**********".date("Y-m-d H:i:s")."**********");
- $logFile->msg_nl("Počet zkopírovaných souborů $saved/$total");
- $hiId = hist_log_ref(HIST_EVENT_CUSTOM_START, HIST_LEVEL_ACTION, "Custom","End ");
- $semaphore->release();
- }catch (SemaphoreException $e) {
- $logFile->msg_nl("Another task already running ".$e->getMessage());
- api_error("Already running - ".$e->getMessage());
- }catch(Exception $e){
- hist_log_ref($hiId,HIST_LEVEL_ERROR,$e->getCode(),$e->getMessage());
- exception_error_log($e);
- $db->RollbackTrans();
- $semaphore->release();
- api_error($e->getMessage());
- }
- /**
- * Složí název souboru podle časů, názvu agenta a telefonního čísla
- */
- function getFileName($data, $logFile = null){
- $fileName = str_replace([' ','-',':'],['_','',''],$data['r_datetimebeg']. "_"); // Datum a čas počátku
- $dateTimeEnd = explode(" ", $data['r_datetimeend']); //Čas konce
- if(!isset($data['r_u_id'])){
- $fileName .= "_";
- $logFile->msg_nl("Agent missing!");
- } else {
- $sql = "SELECT u_firstname + u_lastname as u_name FROM users WHERE u_id = ".$data['r_u_id'];
- $rs = dbGetField($sql, '');
- $fileName .= strtolower($rs."_");
- }
- if(!isset($data['r_called'])){
- $fileName .= "_";
- $logFile->msg_nl("Phone number missing!");
- }
- $fileName .= $data['r_called'];
- error_log($data['r_datetimeend']);
- log_array($dateTimeEnd);
- $fileName .= str_replace(":","",$dateTimeEnd[1]); // Čas konce
- return $fileName;
- }
- /**
- * Vrací 1/0 podle Vytvoření souboru
- */
- function saveCopied($id, $arrData, $fileName, $logFile = null){
- $file = new ArchiveFile($id, $arrData);
- $extension = ($file->getExtension());
- $path = st_get_param('o2etoll_path');
- if ($file->copy($extension,$path.$fileName.".".$extension) === false) {
- $logFile->msg_nl("Nedostupná cesta ke kopírování: ". $file->getFullName());
- $logFile->msg_nl("$fileName.$extension neuložen");
- return 0;
- }
- global $db;
- $data = [];
- $data['r_recflg'] = RecFlg::COPIED;
- $sql = "SELECT r_id, r_recflg, r_userdata FROM reclist WHERE r_id = ".$id;
- $rs = dbExecute($sql);
- if(!isset($rs->fields['r_userdata'])){
- $data['r_userdata'] = "COPIED=$path";
- } else {
- $data['r_userdata'] = $rs->fields['r_userdata']."|COPIED=$path'";
- }
- $sql = $db->GetUpdateSQL($rs,$data);
- $logFile->msg_nl("$fileName.$extension uložen");
- dbExecute($sql);
- return 1;
- //}
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement