ftpwriter.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. include '../db.php';
  3. //connect
  4. $conn = ftp_connect(FTP_HOST, FTP_PORT);
  5. if(!ftp_login($conn, FTP_USER, FTP_PASS))
  6. {
  7. echo "Unable to login to FTP\n";
  8. return;
  9. }
  10. ftp_pasv($conn, true);
  11. ftp_chdir($conn, FTP_DIR);
  12. $stmt = $dbh->prepare(
  13. "SELECT DISTINCT id_company, name, ftp_directory
  14. FROM company
  15. WHERE id_company IN
  16. (
  17. SELECT DISTINCT(id_company)
  18. FROM file_row_update
  19. INNER JOIN file_row USING(id_file_row)
  20. INNER JOIN `file` USING(id_file)
  21. WHERE date_modified > DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 7 DAY)
  22. OR file.date_processed > DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 7 DAY)
  23. UNION
  24. SELECT DISTINCT(id_company)
  25. FROM `file`
  26. INNER JOIN file_row USING(id_file)
  27. WHERE id_file_row IN
  28. (
  29. SELECT id_file_row
  30. FROM file_row_update
  31. WHERE WEEKOFYEAR(date_modified) = WEEKOFYEAR(CURRENT_TIMESTAMP)
  32. AND YEAR(date_modified) = YEAR(CURRENT_TIMESTAMP)
  33. UNION
  34. SELECT id_file_row
  35. FROM file_row
  36. WHERE WEEKOFYEAR(date_processed) = WEEKOFYEAR(CURRENT_TIMESTAMP)
  37. AND YEAR(date_processed) = YEAR(CURRENT_TIMESTAMP)
  38. )
  39. )");
  40. $stmt->execute();
  41. $companies = $stmt->fetchAll(PDO::FETCH_ASSOC);
  42. $num_companies_processed = 0;
  43. foreach($companies as $company)
  44. {
  45. $num_companies_processed++;
  46. echo "processing company $company[name]...";
  47. $id_company = $company['id_company'];
  48. $year = date('Y');
  49. $week_number = date('W');
  50. //make the csv in memory
  51. $f = fopen('php://temp/maxmemory:1048576', 'w');
  52. getRowsByCompanyCSV($id_company, $f, $year, $week_number);
  53. rewind($f);
  54. $remote_filename = $company['ftp_directory'] . '-' . date('Y-W') . '.csv';
  55. if(!ftp_fput($conn, $remote_filename, $f, FTP_ASCII))
  56. {
  57. echo "ERROR uploading file to ftp.\n";
  58. return;
  59. }
  60. echo "SUCCESS\n";
  61. }
  62. ftp_close($conn);
  63. echo "DONE\n";
  64. ?>