db.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  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. FROM file_row
  79. INNER JOIN file USING(id_file)
  80. WHERE id_company = :id_company
  81. " . ($week_number ?
  82. " AND id_file_row IN
  83. (
  84. SELECT id_file_row
  85. FROM file_row_update
  86. WHERE WEEK(date_modified) = :week_number
  87. ) " : "") .
  88. "LIMIT 5000";
  89. $stmt = $dbh->prepare($sql);
  90. if($week_number)
  91. $stmt->bindValue(':week_number', $week_number);
  92. $stmt->bindValue(':id_company', $id_company);
  93. $stmt->execute();
  94. $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
  95. return $rows;
  96. }
  97. function getRowUpdatesByCompany($id_company)
  98. {
  99. global $dbh;
  100. $stmt = $dbh->prepare(
  101. "SELECT DATE_FORMAT(fru.date_modified, '%m/%d/%Y %h:%i %p') date_modified,
  102. user.id_user id_user, user.name user_name, id_file_row,
  103. fr.dispatch_number dispatch_number,
  104. fr.dispatch_reference dispatch_reference,
  105. DATE_FORMAT(fru.time_pickup, '%m/%d/%Y %h:%i %p') time_pickup,
  106. DATE_FORMAT(fru.time_depart, '%m/%d/%Y %h:%i %p') time_depart,
  107. DATE_FORMAT(fru.bol_delivered, '%m/%d/%Y %h:%i %p') bol_delivered
  108. FROM file_row_update fru
  109. INNER JOIN user USING(id_user)
  110. INNER JOIN file_row fr USING(id_file_row)
  111. WHERE id_company = :id_company
  112. ORDER BY date_created DESC
  113. LIMIT 200");
  114. $stmt->execute(array(':id_company' => $id_company));
  115. $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
  116. return $rows;
  117. }
  118. function getRowsByCompanyCSV($id_company, $f, $week_number = null)
  119. {
  120. $file_rows = getRowsByCompany($id_company, $week_number);
  121. $headers = array('Division', 'Consignee', 'Called In', 'Dispatch #', 'Shipper', 'Ready', 'Address 1', 'Address 2', 'City', 'ST', 'Zip', 'Phone',
  122. '', '',
  123. 'Ready Time', 'Close Time', 'Pickup Time', 'Depart Time', 'BOL Delivered',
  124. '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
  125. 'Dispatch Refere',
  126. '', '', '', '', '', '', '', '',
  127. 'Ctns', 'Weight', 'Cube');
  128. fputcsv($f, $headers);
  129. foreach($file_rows as $row)
  130. {
  131. fputcsv($f,
  132. 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'],
  133. '', '',
  134. $row['time_ready'], $row['time_close'], $row['time_pickup'], $row['time_depart'], $row['bol_delivered'],
  135. '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
  136. $row['dispatch_reference'],
  137. '', '', '', '', '', '', '', '',
  138. $row['ctns'], $row['weight'], $row['cube']
  139. ));
  140. }
  141. }
  142. ?>