PageRenderTime 40ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/SERVER/reports/avgDetailedDay.php

https://github.com/joelbrock/is4c_nofc
PHP | 224 lines | 199 code | 25 blank | 0 comment | 29 complexity | 3a9b295760bb13fb28fcd051255c89c0 MD5 | raw file
  1. <?php # avgDetailedDay.php - For getting average info about one day of the week over a period of time.
  2. if (isset($_POST['submitted'])) {
  3. require_once ('../define.conf');
  4. $errors = array();
  5. $days = array('Pick One', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
  6. if ($_POST['day'] == 0) {
  7. $errors[] = "You forgot to select a day.";
  8. } else {
  9. $day = $_POST['day'];
  10. }
  11. if (empty($_POST['date1'])) {
  12. $errors[] = "You didn't enter a start date.";
  13. } else {
  14. $date1 = escape_data($_POST['date1']);
  15. }
  16. if (empty($_POST['date2'])) {
  17. $errors[] = "You didn't enter an end date.";
  18. } else {
  19. $date2 = escape_data($_POST['date2']);
  20. }
  21. if (empty($errors)) {
  22. $numdaysQ = "SELECT COUNT(date) FROM is4c_log.dates WHERE date BETWEEN '$date1' and '$date2' and DAYOFWEEK(date)=$day";
  23. $numdaysR = mysql_query($numdaysQ);
  24. $numdays = mysql_result($numdaysR, 0);
  25. echo "<p>Detailed Daily Report For {$days[$day]} From: " . date('l F jS, Y', strtotime($date1)) . " to " . date('l F jS, Y', strtotime($date2)) . "</p>";
  26. for ($i = 8; $i <= 23; $i++) {
  27. $SalesByHour[$i] = '0.00';
  28. $memSalesByHour[$i] = '0.00';
  29. $CountByHour[$i] = 0;
  30. $memCountByHour[$i] = 0;
  31. }
  32. $memCountQ = "SELECT COUNT(upc) FROM is4c_log.transarchive
  33. WHERE DATE(datetime) BETWEEN '$date1' and '$date2' and DAYOFWEEK(datetime)=$day
  34. AND upc = 'DISCOUNT'
  35. AND emp_no <> 9999
  36. AND memtype IN (1,2)
  37. AND staff NOT IN (1,2,5)
  38. AND trans_status <> 'X'
  39. AND trans_subtype <> 'LN'";
  40. $memCountR = mysql_query($memCountQ);
  41. $memCount = mysql_result($memCountR, 0);
  42. $CountQ = "SELECT COUNT(upc) FROM is4c_log.transarchive
  43. WHERE DATE(datetime) BETWEEN '$date1' and '$date2' and DAYOFWEEK(datetime)=$day
  44. AND upc = 'DISCOUNT'
  45. AND emp_no <> 9999
  46. AND trans_status <> 'X'
  47. AND trans_subtype <> 'LN'";
  48. $CountR = mysql_query($CountQ);
  49. $Count = mysql_result($CountR, 0);
  50. $memSalesQ = "SELECT ROUND(SUM(total),2) FROM is4c_log.transarchive
  51. WHERE DATE(datetime) BETWEEN '$date1' and '$date2' and DAYOFWEEK(datetime)=$day
  52. AND department <> 0
  53. AND trans_status <> 'X'
  54. AND emp_no <> 9999
  55. AND memtype IN (1,2)
  56. AND staff NOT IN (1,2,5)";
  57. $memSalesR = mysql_query($memSalesQ);
  58. $memSales = mysql_result($memSalesR, 0);
  59. $SalesQ = "SELECT ROUND(SUM(total),2) FROM is4c_log.transarchive
  60. WHERE DATE(datetime) BETWEEN '$date1' and '$date2' and DAYOFWEEK(datetime)=$day
  61. AND department <> 0
  62. AND trans_status <> 'X'
  63. AND emp_no <> 9999";
  64. $SalesR = mysql_query($SalesQ);
  65. $Sales = mysql_result($SalesR, 0);
  66. $memSalesByHourQ = "SELECT ROUND(SUM(total),2), HOUR(datetime) FROM is4c_log.transarchive
  67. WHERE DATE(datetime) BETWEEN '$date1' and '$date2' and DAYOFWEEK(datetime)=$day
  68. AND department <> 0
  69. AND trans_status <> 'X'
  70. AND emp_no <> 9999
  71. AND memtype IN (1,2)
  72. AND staff NOT IN (1,2,5)
  73. GROUP BY HOUR(datetime)";
  74. $memSalesByHourR = mysql_query($memSalesByHourQ);
  75. while ($row = mysql_fetch_array($memSalesByHourR)) {
  76. $memSalesByHour[$row[1]] = $row[0];
  77. }
  78. $SalesByHourQ = "SELECT ROUND(SUM(total),2), HOUR(datetime) FROM is4c_log.transarchive
  79. WHERE DATE(datetime) BETWEEN '$date1' and '$date2' and DAYOFWEEK(datetime)=$day
  80. AND department <> 0
  81. AND trans_status <> 'X'
  82. AND emp_no <> 9999
  83. GROUP BY HOUR(datetime)";
  84. $SalesByHourR = mysql_query($SalesByHourQ);
  85. while ($row = mysql_fetch_array($SalesByHourR)) {
  86. $SalesByHour[$row[1]] = $row[0];
  87. }
  88. $memCountByHourQ = "SELECT COUNT(upc), HOUR(datetime) FROM is4c_log.transarchive
  89. WHERE DATE(datetime) BETWEEN '$date1' and '$date2' and DAYOFWEEK(datetime)=$day
  90. AND upc = 'DISCOUNT'
  91. AND trans_status <> 'X'
  92. AND emp_no <> 9999
  93. AND memtype IN (1,2)
  94. AND staff NOT IN (1,2,5)
  95. GROUP BY HOUR(datetime)";
  96. $memCountByHourR = mysql_query($memCountByHourQ);
  97. while ($row = mysql_fetch_array($memCountByHourR)) {
  98. $memCountByHour[$row[1]] = $row[0];
  99. }
  100. $CountByHourQ = "SELECT COUNT(upc), HOUR(datetime) FROM is4c_log.transarchive
  101. WHERE DATE(datetime) BETWEEN '$date1' and '$date2' and DAYOFWEEK(datetime)=$day
  102. AND upc = 'DISCOUNT'
  103. AND trans_status <> 'X'
  104. AND emp_no <> 9999
  105. GROUP BY HOUR(datetime)";
  106. $CountByHourR = mysql_query($CountByHourQ);
  107. while ($row = mysql_fetch_array($CountByHourR)) {
  108. $CountByHour[$row[1]] = $row[0];
  109. }
  110. echo '<table border="2"><tr>
  111. <th align="center">Hour</th>
  112. <th align="center">Total Sales</th>
  113. <th align="center">Member Sales</th>
  114. <th align="center">Customer Count</th>
  115. <th align="center">Member Count</th>
  116. <th align="center">% of Total Customers</th>
  117. <th align="center">% of Gross Sales</th>
  118. <th align="center">Average Bag</th>
  119. <th align="center">% of Member Customers</th>
  120. <th align="center">% of Member Gross Sales</th>
  121. <th align="center">Member Average Bag</th></tr>';
  122. for ($i = 8; $i <= 23; $i++) {
  123. if ($i <= 11) {$suffix = 'AM'; $curi = $i; $nexti = $i + 1;}
  124. elseif ($i == 12) {$suffix = 'PM'; $curi = 'Noon'; $nexti = 1;}
  125. elseif ($i == 23) {$suffix = NULL; $curi = $i -12; $nexti = 'Midnight';}
  126. else {$suffix = 'PM'; $curi = $i - 12; $nexti = $curi + 1;}
  127. if ($nexti == 12 && $i != 23) {$nexti = 'Noon'; $suffix = NULL;}
  128. echo "<tr>
  129. <td align='center'>$curi-$nexti$suffix</t>
  130. <td align='center'>\$" . number_format($SalesByHour[$i] / $numdays, 2) . "</td>
  131. <td align='center'>\$" . number_format($memSalesByHour[$i] / $numdays, 2) . "</td>
  132. <td align='center'>" . round($CountByHour[$i] / $numdays) . "</td>
  133. <td align='center'>" . round($memCountByHour[$i] / $numdays) . "</td>
  134. <td align='center'>" . number_format(($CountByHour[$i] / $Count) * 100, 2) . "%</td>
  135. <td align='center'>" . number_format(($SalesByHour[$i] / $Sales) * 100, 2) . "%</td>
  136. <td align='center'>";
  137. if ($CountByHour[$i] == 0) {
  138. echo 'N/A';
  139. } else {
  140. echo "$" . number_format($SalesByHour[$i] / $CountByHour[$i], 2) . "</td>";
  141. }
  142. echo "<td align='center'>" . number_format(($memCountByHour[$i] / $memCount) * 100, 2) . "%</td>
  143. <td align='center'>" . number_format(($memSalesByHour[$i] / $memSales) * 100, 2) . "%</td>
  144. <td align='center'>";
  145. if ($memCountByHour[$i] == 0) {
  146. echo 'N/A';
  147. } else {
  148. echo "$" . number_format($memSalesByHour[$i] / $memCountByHour[$i], 2) . "</td>";
  149. }
  150. echo "</tr>";
  151. }
  152. echo "</table><p>$numdays</p>";
  153. echo "<br /><br />
  154. <table cellpadding='5' cellspacing='2'><tr>
  155. <th align = 'left'><b>Total Sales: </b>$$Sales</th>
  156. <th align = 'left'><b>Average Sales: </b>$" . number_format($Sales / $numdays, 2) . "</th>
  157. <th align = 'left'><b>Customer Count: </b>" . round($Count / $numdays) . "</th>
  158. <th align = 'left'><b>Average Bag: </b>$" . number_format($Sales / $Count, 2) . "</th>
  159. <th align = 'left'><b>Member Representation: </b>" . number_format(($memCount / $Count) * 100, 2) . "%</th></tr>
  160. <tr>
  161. <th align = 'left'><b>Total Member Sales: </b>$$memSales</th>
  162. <th align = 'left'><b>Average Member Sales: </b>$" . number_format($memSales / $numdays, 2) . "</th>
  163. <th align = 'left'><b>Member Count: </b>" . round($memCount / $numdays) . "</th>
  164. <th align = 'left'><b>Member Average Bag: </b>$" . number_format($memSales / $memCount, 2) . "</th>
  165. <th align = 'left'><b>% Sales to Members: </b>" . number_format(($memSales / $Sales) * 100, 2) . "%</th>
  166. </tr></table>";
  167. } else {
  168. $header = "Average Detailed Daily Report";
  169. $page_title = "Fannie - Reports Module";
  170. include ('../src/header.php');
  171. echo '<p>The following errors were noted: </p><ul>';
  172. foreach ($errors as $msg) {
  173. echo "<li>$msg</li>";
  174. }
  175. echo '</ul><br /><br />';
  176. include ('../src/footer.php');
  177. }
  178. } else {
  179. $header = "Average Detailed Daily Report";
  180. $page_title = "Fannie - Reports Module";
  181. include ('../src/header.php');
  182. $days = array('Pick One', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
  183. echo '<script src="../src/CalendarControl.js" language="javascript"></script>
  184. <form method="post" action="avgDetailedDay.php" target="_blank">
  185. <p>Which day would you like the report for? <select name="day">';
  186. foreach ($days as $key => $value) {
  187. echo "<option value='$key'>$value</option>";
  188. }
  189. echo '</select></p>
  190. <p>And which date range?</p>
  191. <p>Start Date: <input type="text" size="10" name="date1" onfocus="showCalendarControl(this);"></p>
  192. <p>End Date: <input type="text" size="10" name="date2" onfocus="showCalendarControl(this);"></p>
  193. <input type="hidden" name="submitted" value="TRUE" /><br />
  194. <button name="submit" type="submit">Submit</button>
  195. </form>';
  196. include ('../src/footer.php');
  197. }
  198. ?>