PageRenderTime 40ms CodeModel.GetById 17ms RepoModel.GetById 1ms app.codeStats 0ms

/plugins/payoutsubmission/index.php

https://github.com/oozcitak/eve-corp-portal
PHP | 231 lines | 202 code | 24 blank | 5 comment | 34 complexity | f4fae71e3c030b80cd04469da7341d65 MD5 | raw file
  1. <?php
  2. require_once('../../core/core.class.php');
  3. $core = new Core();
  4. //Access control
  5. if($core->CurrentUser()->AccessRight() < 2) $core->Goto('../../php/access.php');
  6. $action = @$_GET["action"];
  7. if(empty($action)) $action = "home";
  8. $names = $core->GetAllUserNames();
  9. $core->assign("names", $names);
  10. if($action == "times" || (@$_POST["submit"] == "Add Player") || (substr(@$_POST["submit"], 0, 13) == "Remove Player"))
  11. {
  12. $result = $core->SQL("SELECT Distinct `GroupID` FROM `operations_items` Order By `GroupID`");
  13. while($row = mysql_fetch_assoc($result))
  14. {
  15. $var = "group".$row['GroupID'];
  16. $core->assign($var, @$_POST[$var]);
  17. $groupnumber[$row['GroupID']] = @$_POST["group".$row['GroupID']];
  18. }
  19. $core->assign("groupnumber", $groupnumber);
  20. $opdate = @$_POST["opdate"];
  21. if(empty($opdate)) $opdate = gmdate("Y-m-d");
  22. $core->assign("opdate", $opdate);
  23. $count = @$_POST["count"];
  24. $players = array();
  25. if(empty($count)) $count = 0;
  26. for($i = 1; $i <= $count; $i++)
  27. $players[] = array($_POST["playerid".$i], $names[$_POST["playerid".$i]], $_POST["timein".$i], $_POST["timeout".$i]);
  28. if(@$_POST["submit"] == "Add Player")
  29. {
  30. $id = $_POST["names"];
  31. $players[] = array($id, $names[$id], "09:00", "10:00");
  32. $count = $count + 1;
  33. }
  34. if(substr(@$_POST["submit"], 0, 13) == "Remove Player")
  35. {
  36. $i = substr(@$_POST["submit"], 14);
  37. unset($players[$i - 1]);
  38. $count = $count - 1;
  39. }
  40. $action = "times";
  41. $core->assign("count", $count);
  42. $core->assign("players", $players);
  43. }
  44. elseif($action == "items")
  45. {
  46. $result = $core->SQL("SELECT Distinct `GroupID` FROM `operations_items` Order By `GroupID`");
  47. while($row = mysql_fetch_assoc($result))
  48. {
  49. $var = "group".$row['GroupID'];
  50. $core->assign($var, @$_POST[$var]);
  51. $groupnumber[$row['GroupID']] = @$_POST[$var];
  52. }
  53. $core->assign("groupnumber", $groupnumber);
  54. $opdate = $_POST["opdate"];
  55. $core->assign("opdate", $opdate);
  56. $count = $_POST["count"];
  57. $players = array();
  58. if(empty($count))
  59. {
  60. $count = 1;
  61. $players[] = array($core->CurrentUser()->ID, $core->CurrentUser()->Name, "09:00", "10:00");
  62. }
  63. else
  64. {
  65. for($i = 1; $i <= $count; $i++)
  66. $players[] = array($_POST["playerid".$i], $names[$_POST["playerid".$i]], $_POST["timein".$i], $_POST["timeout".$i]);
  67. }
  68. $core->assign("count", $count);
  69. $core->assign("players", $players);
  70. // Check times.
  71. $check = true;
  72. if(strtotime($opdate) === FALSE)
  73. {
  74. $check = false;
  75. $_GET["result"] = 1;
  76. }
  77. foreach($players as $player)
  78. {
  79. if((preg_match("/^(\d?)(\d)(:)(\d)(\d)$/", $player[2]) == 0) || (preg_match("/^(\d?)(\d)(:)(\d)(\d)$/", $player[3]) == 0))
  80. {
  81. $check = false;
  82. $_GET["result"] = 2;
  83. break;
  84. }
  85. }
  86. if($check)
  87. {
  88. $groups = array();
  89. $result = $core->SQL("SELECT Distinct `GroupID` FROM `operations_items` Order By `GroupID`");
  90. while($row = mysql_fetch_assoc($result))
  91. {
  92. $var = "group".$row['GroupID'];
  93. if(@$_POST[$var] == "on") $groups[] = $row['GroupID'];
  94. }
  95. $result = $core->SQL("SELECT `id`, `Name`, `GroupID` FROM operations_items WHERE FIND_IN_SET(`GroupID`, '".implode(",", $groups)."') ORDER BY `GroupID` ASC, `DisplayOrder` ASC, `Name` ASC");
  96. $items = array();
  97. while($row = mysql_fetch_assoc($result))
  98. {
  99. $items[] = array($row["id"], $row["GroupID"], $core->SQLUnEscape($row["Name"]));
  100. }
  101. $core->assign("items", $items);
  102. }
  103. else
  104. {
  105. $action = "times";
  106. }
  107. }
  108. elseif($action == "done")
  109. {
  110. $names = $core->GetAllUserNames();
  111. $result = $core->SQL("SELECT `id`, `Name`, `GroupID` FROM operations_items ORDER BY `GroupID` ASC, `DisplayOrder` ASC, `Name` ASC");
  112. $allitems = array();
  113. while($row = mysql_fetch_assoc($result))
  114. {
  115. $allitems[$row["id"]] = array($core->SQLUnEscape($row["Name"]), $row["GroupID"]);
  116. }
  117. $opdate = $_POST["opdate"];
  118. $count = $_POST["count"];
  119. $players = array();
  120. if(empty($count))
  121. {
  122. $count = 1;
  123. $players[] = array($core->CurrentUser()->ID, $core->CurrentUser()->Name, "09:00", "10:00");
  124. }
  125. else
  126. {
  127. for($i = 1; $i <= $count; $i++)
  128. $players[] = array($_POST["playerid".$i], $names[$_POST["playerid".$i]], $_POST["timein".$i], $_POST["timeout".$i]);
  129. }
  130. $items = array();
  131. foreach($_POST as $key => $value)
  132. {
  133. if((substr($key, 0, 4) == "item") && !empty($value) && (intval($value) > 0))
  134. $items[substr($key, 4)] = intval($value);
  135. }
  136. ksort($items);
  137. $itemsdb = array();
  138. foreach($items as $key => $value)
  139. $itemsdb[] = $key."=".$value;
  140. $playersdb = array();
  141. $timeinsdb = array();
  142. $timeoutsdb = array();
  143. foreach($players as $player)
  144. {
  145. $playersdb[] = $player[0];
  146. $timeinsdb[] = $player[0]."=".$player[2];
  147. $timeoutsdb[] = $player[0]."=".$player[3];
  148. }
  149. $itemsdisplay = array();
  150. foreach($allitems as $key => $value)
  151. {
  152. if(isset($items[$key]))
  153. $itemsdisplay[] = array($value[0], $value[1], $items[$key]);
  154. }
  155. $notes = $_POST["notes"];
  156. // Insert into DB
  157. $query = "INSERT INTO operations_submissions (Date,OpDate,Leader,Players,TimeIns,TimeOuts,Items,Notes) VALUES (";
  158. $query .= "'".$core->GMTTime()."',";
  159. $query .= "'".$opdate."',";
  160. $query .= $core->CurrentUser()->ID.",";
  161. $query .= "'".implode(",", $playersdb)."',";
  162. $query .= "'".implode(",", $timeinsdb)."',";
  163. $query .= "'".implode(",", $timeoutsdb)."',";
  164. $query .= "'".implode(",", $itemsdb)."',";
  165. $query .= "'".$core->SQLEscape($notes)."')";
  166. $core->SQL($query);
  167. // Estimated op value
  168. $result = $core->SQL("SELECT `id`, `Price` FROM operations_items");
  169. $allitems = array();
  170. while($row = mysql_fetch_assoc($result))
  171. {
  172. $allitems[$row["id"]] = $row["Price"];
  173. }
  174. $opvalue = 0;
  175. foreach($itemsdb as $item)
  176. {
  177. $val = explode("=", $item);
  178. $opvalue += $allitems[$val[0]] * $val[1];
  179. }
  180. $opvalue = number_format($opvalue, 0);
  181. // Display to the user
  182. $core->assign("opdate", $opdate);
  183. $core->assign("players", $players);
  184. $core->assign("items", $itemsdisplay);
  185. $core->assign("notes", $notes);
  186. $core->assign("opvalue", $opvalue);
  187. }
  188. $result = $core->SQL("SELECT * FROM `operations_groups` WHERE Active = 1 ORDER BY `DisplayOrder`, `GroupID`");
  189. while($row = mysql_fetch_assoc($result))
  190. {
  191. $ogroupid[$row['id']] = $row['id'];
  192. $ogroupName[$row['id']] = $core->SQLUnEscape($row['Name']);
  193. $ogroupSubtext[$row['id']] = $core->SQLUnEscape($row['Subtext']);
  194. $ogroupGroupID[$row['id']] = $row['GroupID'];
  195. $ogroupDisplayOrder[$row['id']] = $row['DisplayOrder'];
  196. $ogroupCheckbox[$row['id']] = $row['Checkbox'];
  197. }
  198. $core->assign("ogroupid", $ogroupid);
  199. $core->assign("ogroupName", $ogroupName);
  200. $core->assign("ogroupSubtext", $ogroupSubtext);
  201. $core->assign("ogroupGroupID", $ogroupGroupID);
  202. $core->assign("ogroupDisplayOrder", $ogroupDisplayOrder);
  203. $core->assign("ogroupCheckbox", $ogroupCheckbox);
  204. $core->assign("action", $action);
  205. $core->assign("result", @$_GET["result"]);
  206. $core->display($core->PlugInPath."payoutsubmission/payoutsubmission.tpl");
  207. ?>