Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.61 KB | None | 0 0
  1. <?php
  2.  
  3. require_once(__DIR__.'/../../../config.php');
  4. require_once(CFG_LIBDIR.'/exceptions.php');
  5. require_once(CFG_DIRROOT.'/apconnectdb.php');
  6. require_once(CFG_LIBDIR.'/stdlib.php');
  7. require_once(CFG_LIBDIR.'/mainlib.php');
  8. require_once(CFG_LIBDIR.'/libtranslate.php');
  9. require_once(CFG_LIBDIR.'/constants.php');
  10. require_once(CFG_LIBDIR.'/liblogfile.php');
  11. require_once(CFG_LIBDIR.'/liberror.php');
  12. require_once(CFG_LIBDIR.'/libhistory.php');
  13. require_once(CFG_LIBDIR.'/libarchivefile.php');
  14. require_once(CFG_LIBDIR.'/libsetting.php');
  15.  
  16. try{
  17. global $db;
  18. $semaphore = new Semaphore(basename(__FILE__));
  19. $logFilename = CFG_TMPDIR."/ExportRecords_".date("YmdHis").".log" ;
  20. Administration::set('GetUsers', 'Start', date(MSSQL_DATE_FORMAT));
  21. $logFile = new LogFile($logFilename);
  22. $logFile->msgStarDecoration("START");
  23. $logFile->msgStarDecoration(date("Y-m-d H:i:s"));
  24. $hiId = hist_log(HIST_EVENT_CUSTOM_START,HIST_LEVEL_INFO,'Custom');
  25. $semaphore->acquire();
  26. $idx = 0;
  27. $saved = 0;
  28. $count = 1;
  29. $lastFileName = "";
  30. $sql = "SELECT COUNT(r_recflg) FROM reclist where r_recflg != ".RecFlg::COPIED;
  31. $total = dbGetField($sql);
  32. $loops = ceil($total /100);
  33. while ($loops > 0) {
  34. $sql = "SELECT TOP 100 r_id, r_userdata, r_datetimebeg, r_datetimeend, r_u_id, r_called, r_recflg
  35. FROM reclist where r_recflg != ".RecFlg::COPIED." ORDER BY r_datetimebeg,r_datetimeend";
  36. $rs = dbExecute($sql);
  37. while (!$rs->EOF){
  38. $logFile->msg_nl("Record $count/$total: ");
  39. $fileName = getFileName($rs->fields, $logFile);
  40. if($lastFileName!=$fileName){
  41. $idx = 0;
  42. } else{
  43. $idx++;
  44. $fileName .= "($idx)";
  45. }
  46. $saved += saveCopied($rs->fields['r_id'],$rs->fields,$fileName, $logFile);
  47. $lastFileName = $fileName;
  48. $count++;
  49. $rs->MoveNext();
  50. }
  51. $loops--;
  52. }
  53. $hiId = hist_log(HIST_EVENT_CUSTOM_START, HIST_LEVEL_ACTION, "Custom","Počet zkopírovaných souborů $saved/$total ");
  54. if($saved == $total){
  55. $hiId = hist_log_ref(LNG_HIST_EVENT_CUSTOM_ERROR, HIST_LEVEL_ERROR, "Custom","Nenastaly žádné chyby");
  56. } else {
  57. $errors = $total-$saved;
  58. $hiId = hist_log_ref(LNG_HIST_EVENT_CUSTOM_ERROR, HIST_LEVEL_ERROR, "Custom","Nastalo $errors chyb");
  59. }
  60. $logFile->msg_nl("**************** END ******************");
  61. $logFile->msg_nl("**********".date("Y-m-d H:i:s")."**********");
  62. $logFile->msg_nl("Počet zkopírovaných souborů $saved/$total");
  63. $hiId = hist_log_ref(HIST_EVENT_CUSTOM_START, HIST_LEVEL_ACTION, "Custom","End ");
  64. $semaphore->release();
  65. }catch (SemaphoreException $e) {
  66. $logFile->msg_nl("Another task already running ".$e->getMessage());
  67. api_error("Already running - ".$e->getMessage());
  68. }catch(Exception $e){
  69. hist_log_ref($hiId,HIST_LEVEL_ERROR,$e->getCode(),$e->getMessage());
  70. exception_error_log($e);
  71. $db->RollbackTrans();
  72. $semaphore->release();
  73. api_error($e->getMessage());
  74. }
  75. /**
  76. * Složí název souboru podle časů, názvu agenta a telefonního čísla
  77. */
  78. function getFileName($data, $logFile = null){
  79. $fileName = str_replace([' ','-',':'],['_','',''],$data['r_datetimebeg']. "_"); // Datum a čas počátku
  80. $dateTimeEnd = explode(" ", $data['r_datetimeend']); //Čas konce
  81. if(!isset($data['r_u_id'])){
  82. $fileName .= "_";
  83. $logFile->msg_nl("Agent missing!");
  84. } else {
  85. $sql = "SELECT u_firstname + u_lastname as u_name FROM users WHERE u_id = ".$data['r_u_id'];
  86. $rs = dbGetField($sql, '');
  87. $fileName .= strtolower($rs."_");
  88. }
  89. if(!isset($data['r_called'])){
  90. $fileName .= "_";
  91. $logFile->msg_nl("Phone number missing!");
  92. }
  93. $fileName .= $data['r_called'];
  94. error_log($data['r_datetimeend']);
  95. log_array($dateTimeEnd);
  96. $fileName .= str_replace(":","",$dateTimeEnd[1]); // Čas konce
  97. return $fileName;
  98. }
  99. /**
  100. * Vrací 1/0 podle Vytvoření souboru
  101. */
  102. function saveCopied($id, $arrData, $fileName, $logFile = null){
  103. $file = new ArchiveFile($id, $arrData);
  104. $extension = ($file->getExtension());
  105. $path = st_get_param('o2etoll_path');
  106. if ($file->copy($extension,$path.$fileName.".".$extension) === false) {
  107. $logFile->msg_nl("Nedostupná cesta ke kopírování: ". $file->getFullName());
  108. $logFile->msg_nl("$fileName.$extension neuložen");
  109. return 0;
  110. }
  111. global $db;
  112. $data = [];
  113. $data['r_recflg'] = RecFlg::COPIED;
  114. $sql = "SELECT r_id, r_recflg, r_userdata FROM reclist WHERE r_id = ".$id;
  115. $rs = dbExecute($sql);
  116. if(!isset($rs->fields['r_userdata'])){
  117. $data['r_userdata'] = "COPIED=$path";
  118. } else {
  119. $data['r_userdata'] = $rs->fields['r_userdata']."|COPIED=$path'";
  120. }
  121. $sql = $db->GetUpdateSQL($rs,$data);
  122. $logFile->msg_nl("$fileName.$extension uložen");
  123. dbExecute($sql);
  124. return 1;
  125. //}
  126. }
  127. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement