db.php 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  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_pickup, file_row.time_pickup), '%m/%d/%Y')
  65. FROM file_row_update
  66. WHERE id_file_row = file_row.id_file_row
  67. AND time_pickup IS NOT NULL
  68. ORDER BY date_modified DESC
  69. LIMIT 1) time_pickup_date,
  70. (SELECT DATE_FORMAT(IFNULL(time_pickup, file_row.time_pickup), '%h:%i %p')
  71. FROM file_row_update
  72. WHERE id_file_row = file_row.id_file_row
  73. AND time_pickup IS NOT NULL
  74. ORDER BY date_modified DESC
  75. LIMIT 1) time_pickup_time,
  76. (SELECT DATE_FORMAT(IFNULL(time_depart, file_row.time_depart), '%m/%d/%Y %h:%i %p')
  77. FROM file_row_update
  78. WHERE id_file_row = file_row.id_file_row
  79. AND time_depart IS NOT NULL
  80. ORDER BY date_modified DESC
  81. LIMIT 1) time_depart,
  82. (SELECT DATE_FORMAT(IFNULL(time_depart, file_row.time_depart), '%m/%d/%Y')
  83. FROM file_row_update
  84. WHERE id_file_row = file_row.id_file_row
  85. AND time_depart IS NOT NULL
  86. ORDER BY date_modified DESC
  87. LIMIT 1) time_depart_date,
  88. (SELECT DATE_FORMAT(IFNULL(time_depart, file_row.time_depart), '%h:%i %p')
  89. FROM file_row_update
  90. WHERE id_file_row = file_row.id_file_row
  91. AND time_depart IS NOT NULL
  92. ORDER BY date_modified DESC
  93. LIMIT 1) time_depart_time,
  94. (SELECT DATE_FORMAT(IFNULL(bol_delivered, file_row.bol_delivered), '%m/%d/%Y %h:%i %p')
  95. FROM file_row_update
  96. WHERE id_file_row = file_row.id_file_row
  97. AND bol_delivered IS NOT NULL
  98. ORDER BY date_modified DESC
  99. LIMIT 1) bol_delivered,
  100. (SELECT DATE_FORMAT(IFNULL(bol_delivered, file_row.bol_delivered), '%m/%d/%Y')
  101. FROM file_row_update
  102. WHERE id_file_row = file_row.id_file_row
  103. AND bol_delivered IS NOT NULL
  104. ORDER BY date_modified DESC
  105. LIMIT 1) bol_delivered_date,
  106. (SELECT DATE_FORMAT(IFNULL(bol_delivered, file_row.bol_delivered), '%h:%i %p')
  107. FROM file_row_update
  108. WHERE id_file_row = file_row.id_file_row
  109. AND bol_delivered IS NOT NULL
  110. ORDER BY date_modified DESC
  111. LIMIT 1) bol_delivered_time,
  112. dispatch_reference,
  113. ctns, weight, cube,
  114. DATE_FORMAT(file_row.date_processed, '%m/%d/%Y') date_processed
  115. FROM file_row
  116. INNER JOIN file USING(id_file)
  117. WHERE id_company = :id_company
  118. " . ($week_number ?
  119. " AND
  120. (
  121. id_file_row IN
  122. (
  123. SELECT id_file_row
  124. FROM file_row_update
  125. WHERE WEEK(date_modified) = :week_number
  126. UNION
  127. SELECT id_file_row
  128. FROM file_row
  129. WHERE WEEK(date_processed) = :week_number
  130. )
  131. ) " : "") .
  132. "LIMIT 5000";
  133. $stmt = $dbh->prepare($sql);
  134. if($week_number)
  135. $stmt->bindValue(':week_number', $week_number);
  136. $stmt->bindValue(':id_company', $id_company);
  137. $stmt->execute();
  138. $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
  139. return $rows;
  140. }
  141. function getRowUpdatesByCompany($id_company)
  142. {
  143. global $dbh;
  144. $stmt = $dbh->prepare(
  145. "SELECT DATE_FORMAT(fru.date_modified, '%m/%d/%Y %h:%i %p') date_modified,
  146. user.id_user id_user, user.name user_name, id_file_row,
  147. fr.dispatch_number dispatch_number,
  148. fr.dispatch_reference dispatch_reference,
  149. DATE_FORMAT(fru.time_pickup, '%m/%d/%Y %h:%i %p') time_pickup,
  150. DATE_FORMAT(fru.time_depart, '%m/%d/%Y %h:%i %p') time_depart,
  151. DATE_FORMAT(fru.bol_delivered, '%m/%d/%Y %h:%i %p') bol_delivered
  152. FROM file_row_update fru
  153. INNER JOIN file_row fr USING(id_file_row)
  154. INNER JOIN file USING(id_file)
  155. INNER JOIN user USING(id_user)
  156. WHERE file.id_company = :id_company
  157. ORDER BY date_created DESC
  158. LIMIT 200");
  159. $stmt->execute(array(':id_company' => $id_company));
  160. $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
  161. return $rows;
  162. }
  163. function getRowsByCompanyCSV($id_company, $f, $week_number = null)
  164. {
  165. $file_rows = getRowsByCompany($id_company, $week_number);
  166. $headers = array('Division', 'Consignee', 'Called In', 'Dispatch #', 'Shipper', 'Ready', 'Address 1', 'Address 2', 'City', 'ST', 'Zip', 'Phone',
  167. '', '', '', '',
  168. 'Acknowledgement', 'Pickup Date', 'Pickup Time', 'Depart Date', 'Depart Time', 'BOL Delivered Date', 'BOL Delivered Time',
  169. '', '', '', '', '', '', '', '', '', '', '', '',
  170. 'Dispatch Reference',
  171. '', '', '', '', '', '', '', '',
  172. 'Ctns', 'Weight', 'Cube');
  173. fputcsv($f, $headers);
  174. foreach($file_rows as $row)
  175. {
  176. fputcsv($f,
  177. 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'],
  178. '', '', '', '',
  179. $row['date_processed'], $row['time_pickup_date'], $row['time_pickup_time'], $row['time_depart_date'], $row['time_depart_time'], $row['bol_delivered_date'], $row['bol_delivered_time'],
  180. '', '', '', '', '', '', '', '', '', '', '', '',
  181. $row['dispatch_reference'],
  182. '', '', '', '', '', '', '', '',
  183. $row['ctns'], $row['weight'], $row['cube']));
  184. }
  185. }
  186. ?>