db.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <?php
  2. require('config.inc.php');
  3. $dbh = null;
  4. try
  5. {
  6. $dbh = new PDO('mysql:host=localhost;dbname=sdpickup', DB_USER, DB_PASS);
  7. $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  8. }
  9. catch(Exception $e)
  10. {
  11. error_log(print_r($e, true));
  12. http_response_code(500);
  13. echo "unable to connect to DB\n";
  14. die;
  15. }
  16. function getCompanies()
  17. {
  18. global $dbh;
  19. $stmt = $dbh->prepare(
  20. "SELECT id_company, name, ftp_directory, description
  21. FROM company");
  22. $stmt->execute();
  23. $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
  24. return $rows;
  25. }
  26. function getCompany($id_company)
  27. {
  28. global $dbh;
  29. $stmt = $dbh->prepare(
  30. "SELECT id_company, name, ftp_directory, description
  31. FROM company
  32. WHERE id_company = :id_company");
  33. $stmt->bindValue(':id_company', $id_company);
  34. $stmt->execute();
  35. $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
  36. return $rows;
  37. }
  38. function getCompanyDirectories()
  39. {
  40. global $dbh;
  41. $stmt = $dbh->prepare("SELECT id_company, name, ftp_directory FROM company");
  42. $stmt->execute();
  43. $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
  44. return $rows;
  45. }
  46. function getRowsByCompany($id_company, $week_number = null)
  47. {
  48. global $dbh;
  49. $sql = "SELECT
  50. id_file_row, row_number,
  51. division, consignee,
  52. DATE_FORMAT(date_called_in, '%m/%d/%Y') date_called_in,
  53. dispatch_number, shipper,
  54. DATE_FORMAT(date_ready, '%m/%d/%Y') date_ready,
  55. address_1, address_2, city, state, zip, phone,
  56. TIME_FORMAT(time_ready, '%h:%i %p') time_ready,
  57. TIME_FORMAT(time_close, '%h:%i %p') time_close,
  58. (SELECT DATE_FORMAT(IFNULL(time_pickup, file_row.time_pickup), '%m/%d/%Y %h:%i %p')
  59. FROM file_row_update
  60. WHERE id_file_row = file_row.id_file_row
  61. AND time_pickup IS NOT NULL
  62. ORDER BY date_modified DESC
  63. LIMIT 1) time_pickup,
  64. (SELECT DATE_FORMAT(IFNULL(time_depart, file_row.time_depart), '%m/%d/%Y %h:%i %p')
  65. FROM file_row_update
  66. WHERE id_file_row = file_row.id_file_row
  67. AND time_depart IS NOT NULL
  68. ORDER BY date_modified DESC
  69. LIMIT 1) time_depart,
  70. (SELECT DATE_FORMAT(IFNULL(bol_delivered, file_row.bol_delivered), '%m/%d/%Y %h:%i %p')
  71. FROM file_row_update
  72. WHERE id_file_row = file_row.id_file_row
  73. AND bol_delivered IS NOT NULL
  74. ORDER BY date_modified DESC
  75. LIMIT 1) bol_delivered,
  76. dispatch_reference,
  77. ctns, weight, cube,
  78. DATE_FORMAT(file_row.date_processed, '%m/%d/%Y') date_processed
  79. FROM file_row
  80. INNER JOIN file USING(id_file)
  81. WHERE id_company = :id_company
  82. " . ($week_number ?
  83. " AND id_file_row IN
  84. (
  85. SELECT id_file_row
  86. FROM file_row_update
  87. WHERE WEEK(date_modified) = :week_number
  88. ) " : "") .
  89. "LIMIT 5000";
  90. $stmt = $dbh->prepare($sql);
  91. if($week_number)
  92. $stmt->bindValue(':week_number', $week_number);
  93. $stmt->bindValue(':id_company', $id_company);
  94. $stmt->execute();
  95. $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
  96. return $rows;
  97. }
  98. function getRowUpdatesByCompany($id_company)
  99. {
  100. global $dbh;
  101. $stmt = $dbh->prepare(
  102. "SELECT DATE_FORMAT(fru.date_modified, '%m/%d/%Y %h:%i %p') date_modified,
  103. user.id_user id_user, user.name user_name, id_file_row,
  104. fr.dispatch_number dispatch_number,
  105. fr.dispatch_reference dispatch_reference,
  106. DATE_FORMAT(fru.time_pickup, '%m/%d/%Y %h:%i %p') time_pickup,
  107. DATE_FORMAT(fru.time_depart, '%m/%d/%Y %h:%i %p') time_depart,
  108. DATE_FORMAT(fru.bol_delivered, '%m/%d/%Y %h:%i %p') bol_delivered
  109. FROM file_row_update fru
  110. INNER JOIN file_row fr USING(id_file_row)
  111. INNER JOIN file USING(id_file)
  112. INNER JOIN user USING(id_user)
  113. WHERE file.id_company = :id_company
  114. ORDER BY date_created DESC
  115. LIMIT 200");
  116. $stmt->execute(array(':id_company' => $id_company));
  117. $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
  118. return $rows;
  119. }
  120. function getRowsByCompanyCSV($id_company, $f, $week_number = null)
  121. {
  122. $file_rows = getRowsByCompany($id_company, $week_number);
  123. $headers = array('Division', 'Consignee', 'Called In', 'Dispatch #', 'Shipper', 'Ready', 'Address 1', 'Address 2', 'City', 'ST', 'Zip', 'Phone',
  124. '',
  125. 'Acknowledgement', 'Ready Time', 'Close Time', 'Pickup Time', 'Depart Time', 'BOL Delivered',
  126. '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
  127. 'Dispatch Refere',
  128. '', '', '', '', '', '', '', '',
  129. 'Ctns', 'Weight', 'Cube');
  130. fputcsv($f, $headers);
  131. foreach($file_rows as $row)
  132. {
  133. fputcsv($f,
  134. array($row['division'], $row['consignee'], $row['date_called_in'], $row['dispatch_number'], $row['shipper'], $row['date_ready'], $row['address_1'], $row['address_2'], $row['city'], $row['state'], $row['zip'], $row['phone'],
  135. '',
  136. $row['date_processed'], $row['time_ready'], $row['time_close'], $row['time_pickup'], $row['time_depart'], $row['bol_delivered'],
  137. '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
  138. $row['dispatch_reference'],
  139. '', '', '', '', '', '', '', '',
  140. $row['ctns'], $row['weight'], $row['cube']));
  141. }
  142. }
  143. ?>