TrackCtrl.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  1. <?php
  2. require_once 'trdLibrary/PHPExcel/PHPExcel.php';
  3. require_once 'library/mdb.php';
  4. require_once 'library/common.php';
  5. class TrackCtrl{
  6. public function __construct(){
  7. $this->db = new MdbLib();
  8. $this->common = new CommonLib();
  9. }
  10. public function getOrders(){
  11. if(!isset($_GET['now'])){
  12. return false;
  13. }else{
  14. $now = $this->common->my_filter_input($_GET['now']);
  15. $pnsn = isset($_GET['pnsn'])?$this->common->my_filter_input($_GET['pnsn']):15;
  16. }
  17. $offset = ($now-1)*$pnsn;
  18. $sql = 'SELECT `oid`,`order_barcode`,`order_status`,`out_time`,`in_time`,`print_times`,`print_date`';
  19. $sql .= " FROM `app_track` ORDER BY `oid` DESC LIMIT {$offset},$pnsn;";
  20. $query = $this->db->querySql($sql);
  21. $line = "";
  22. while($item = $this->db->queryRs($query)) {
  23. if($item['order_status'] == '2'){
  24. $order_status = "已入库";
  25. $in_time = $item['in_time'];
  26. $out_time = '暂无';
  27. $class = 'ok1';
  28. }elseif($item['order_status'] == '5'){
  29. $order_status = "未入库";
  30. $in_time = '暂无';
  31. $out_time = '暂无';
  32. $class = 'no';
  33. }elseif($item['order_status'] == '3'){
  34. $order_status = "已出库";
  35. $in_time = $item['in_time'];
  36. $out_time = $item['out_time'];
  37. $class = 'ok2';
  38. }
  39. if($item['print_times'] == 0){
  40. $print_status = "未打印";
  41. $print_clazz = 'no';
  42. }else{
  43. $print_status = "已打印";
  44. $print_clazz = 'ok2';
  45. }
  46. $line .= '<div class="list_block">';
  47. $line .= "<span class=\"order_id\">{$item['oid']}</span>";
  48. $line .= "<span class=\"order_barcode\" title=\"{$item['order_barcode']}\">{$item['order_barcode']}</span>";
  49. $line .= "<span class=\"order_status {$class}\">{$order_status}</span>";
  50. $line .= "<span class=\"in_time\">{$in_time}</span>";
  51. $line .= "<span class=\"out_time\">{$out_time}</span>";
  52. $line .= "<span class=\"print_status {$print_clazz}\" title=\"{$print_status}\">{$print_status}</span>";
  53. $line .= "<span class=\"print_date\">{$item['print_date']}</span>";
  54. $line .= '<span class="options">';
  55. $line .= "<input type=\"button\" class=\"print_bc\" data-id=\"{$item['oid']}\" value=\"打印\">";
  56. $line .= '</span></div>';
  57. }
  58. return $line;
  59. }
  60. public function searchOrders(){
  61. $sql = 'SELECT `oid`,`order_barcode`,`order_status`,`out_time`,`in_time`,`print_times`,`print_date` ';
  62. $sql .= 'FROM `app_track` ';
  63. if(isset($_GET['code'])){
  64. $code = $this->common->my_filter_input($_GET['code']);
  65. $sql .= "WHERE `order_barcode`='{$code}';";
  66. }
  67. $query = $this->db->querySql($sql);
  68. $line = "";
  69. while($item = $this->db->queryRs($query)) {
  70. if($item['order_status'] == '2'){
  71. $order_status = "已入库";
  72. $in_time = $item['in_time'];
  73. $out_time = '暂无';
  74. $class = 'ok1';
  75. }elseif($item['order_status'] == '5'){
  76. $order_status = "未入库";
  77. $in_time = '暂无';
  78. $out_time = '暂无';
  79. $class = 'no';
  80. }elseif($item['order_status'] == '3'){
  81. $order_status = "已出库";
  82. $in_time = $item['in_time'];
  83. $out_time = $item['out_time'];
  84. $class = 'ok2';
  85. }
  86. if($item['print_times'] == 0){
  87. $print_status = "未打印";
  88. $print_clazz = 'no';
  89. }else{
  90. $print_status = "已打印";
  91. $print_clazz = 'ok2';
  92. }
  93. $line .= '<div class="list_block">';
  94. $line .= "<span class=\"order_id\">{$item['oid']}</span>";
  95. $line .= "<span class=\"order_barcode\" title=\"{$item['order_barcode']}\">{$item['order_barcode']}</span>";
  96. $line .= "<span class=\"order_status {$class}\">{$order_status}</span>";
  97. $line .= "<span class=\"in_time\">{$in_time}</span>";
  98. $line .= "<span class=\"out_time\">{$out_time}</span>";
  99. $line .= "<span class=\"print_status {$print_clazz}\" title=\"{$print_status}\">{$print_status}</span>";
  100. $line .= "<span class=\"print_date\">{$item['print_date']}</span>";
  101. $line .= '<span class="options">';
  102. $line .= "<input type=\"button\" class=\"print_bc\" data-id=\"{$item['oid']}\" value=\"打印\">";
  103. $line .= '</span></div>';
  104. }
  105. if(!empty($line)){
  106. return $line;
  107. }else{
  108. return -1;
  109. }
  110. }
  111. public function updateOrder(){
  112. if(isset($_GET['code']) && !empty($_GET['code']) && isset($_GET['status']) && !empty($_GET['status'])){
  113. $code = $this->common->my_filter_input($_GET['code']);
  114. $order_status = $this->common->my_filter_input($_GET['status']);
  115. }else{
  116. return false;
  117. }
  118. $sql_status = "SELECT `order_status`,`out_time`,`in_time`,`update_time` FROM `app_track` WHERE `order_barcode`='{$code}' ORDER BY `oid` DESC;";
  119. $query = $this->db->querySql($sql_status);
  120. $arr_status = $this->db->queryRsAll($query);
  121. if(empty($arr_status)){
  122. return json_encode(array(
  123. 'no' => '-10'
  124. ));
  125. }
  126. $now = date("Y-m-d H:i:s", time());
  127. $sql = "UPDATE `app_track` SET `order_status`='{$order_status}',`in_time`='{$now}',`out_time`='{$now}' WHERE `order_barcode`='{$code}';";
  128. if($arr_status[0]['order_status'] == 5 && $order_status == 2){
  129. $this->db->querySql($sql);
  130. if($this->db->queryAR() == 1){
  131. return json_encode(array(
  132. 'no' => '1'
  133. ));
  134. }else{
  135. return json_encode(array(
  136. 'no' => '-1'
  137. ));
  138. }
  139. }elseif($arr_status[0]['order_status'] == 2 && $order_status == 3){
  140. $this->db->querySql($sql);
  141. if($this->db->queryAR() == 1){
  142. return json_encode(array(
  143. 'no' => '2'
  144. ));
  145. }else{
  146. return json_encode(array(
  147. 'no' => '-2'
  148. ));
  149. }
  150. }elseif($arr_status[0]['order_status'] == 5 && $order_status == 3){
  151. return json_encode(array(
  152. 'no' => '-4'
  153. ));
  154. }elseif($arr_status[0]['order_status'] == 2 && $order_status == 2){
  155. return json_encode(array(
  156. 'no' => '-5',
  157. 'time' => $arr_status[0]['in_time'],
  158. ));
  159. }elseif($arr_status[0]['order_status'] == 3 && $order_status == 2){
  160. return json_encode(array(
  161. 'no' => '-6',
  162. 'time' => $arr_status[0]['out_time'],
  163. ));
  164. }elseif($arr_status[0]['order_status'] == 3 && $order_status == 3){
  165. return json_encode(array(
  166. 'no' => '-7',
  167. 'time' => $arr_status[0]['out_time'],
  168. ));
  169. }else{
  170. return json_encode(array(
  171. 'no' => '-11'
  172. ));
  173. }
  174. }
  175. public function pagination(){
  176. if(!isset($_GET['wh'])){
  177. return false;
  178. }else{
  179. $wh = $this->common->my_filter_input($_GET['wh']);
  180. $pnsn = isset($_GET['pnsn'])?$this->common->my_filter_input($_GET['pnsn']):15;
  181. }
  182. $sql = "SELECT `oid` FROM `app_track`;";
  183. $query = $this->db->querySql($sql);
  184. $total = $this->db->queryNum($query);
  185. if($total == 0){
  186. $num = '0';
  187. }else{
  188. $num = ceil($total/$pnsn);
  189. $wh_max = ceil($num/10);
  190. }
  191. $direction = substr($wh, 0, 1);
  192. $wh = substr($wh, 1);
  193. if($direction == 'h'){
  194. $whh = ($wh==0)?'0':$wh-1;
  195. $wht = ($wh==0)?'1':$wh;
  196. }elseif($direction == 't'){
  197. $whh = ($wh==$wh_max)?($wh-1):$wh;
  198. $wht = ($wh==$wh_max)?$wh:($wh+1);
  199. }else{
  200. $whh = '0';
  201. $wht = '1';
  202. }
  203. $pagination = '<span class="total_page" data-ttpg="'.$num.'">共&nbsp;'.$num.'&nbsp;页</span>';
  204. if($num > 1){
  205. $pagination .= ($num>10)?"<span class=\"gtlt head\" data-wh=\"h{$whh}\">&lt;&lt;</span>":'';
  206. $clazz = '';
  207. for($i=1+$whh*10; $i<=10+$whh*10; $i++){
  208. if($i > $num){
  209. break;
  210. }else{
  211. if($i != 1+$whh*10){
  212. $clazz = 'page';
  213. }else{
  214. $clazz = 'page pn';
  215. }
  216. $param = "&now={$i}&pnsn={$pnsn}";
  217. $pagination .= "<span class=\"{$clazz}\" onclick=\"getOFP('{$param}')\">".$i."</span>";
  218. }
  219. }
  220. $pagination .= ($num>10)?"<span class=\"gtlt tail\" data-wh=\"t{$wht}\">&gt;&gt;</span>":'';
  221. }
  222. $pagination .= "<span>展示 <select class=\"pnsn\">";
  223. $pns = array('15', '50', '100', '250', '500');
  224. for($i=0; $i<5; $i++){
  225. if($pnsn == $pns[$i]){
  226. $s = 'selected="selected"';
  227. }else{
  228. $s = '';
  229. }
  230. $pagination .= "<option value=\"{$pns[$i]}\" {$s}>{$pns[$i]}条</option>";
  231. }
  232. $pagination .= "</select> 记录</span>";
  233. return $pagination;
  234. }
  235. public function updatePrint(){
  236. if(isset($_POST['oid']) && !empty($_POST['oid'])){
  237. $oid = $this->common->my_filter_input($_POST['oid']);
  238. }else{
  239. return false;
  240. }
  241. $time_now = date("Y-m-d H:i:s", time());
  242. $sql = "UPDATE `app_track` SET `print_times`=`print_times`+1,`print_date`='{$time_now}' WHERE `oid`='{$oid}';";
  243. if($this->db->querySql($sql)){
  244. return 1;
  245. }else{
  246. return -1;
  247. }
  248. }
  249. public function printAll(){
  250. $sql = 'SELECT `order_barcode` FROM `app_track` WHERE `print_times`=0 ORDER BY `in_time`;';
  251. $query = $this->db->querySql($sql);
  252. $rs = $this->db->queryRsAll($query);
  253. if(empty($rs)){
  254. return -1;
  255. }else{
  256. $time_now = date("Y-m-d H:i:s", time());
  257. $sql_update = "UPDATE `app_track` SET `print_times`=`print_times`+1,`print_date`='{$time_now}',`order_status`=2 AND `print_times`=0;";
  258. $query_update = $this->db->querySql($sql_update);
  259. $arr = array();
  260. foreach($rs as $val){
  261. $arr[] = array(
  262. 'barcode' => $val['order_barcode']
  263. );
  264. }
  265. return json_encode($arr);
  266. }
  267. }
  268. public function createNew(){
  269. $now = time();
  270. $order_barcode = strtoupper('GSN-'.date('ymd', $now).substr(hash('md5', $now), rand(0, 28), 4));
  271. $sql = "INSERT INTO `app_track` (`order_barcode`) VALUES ('{$order_barcode}');";
  272. $query = $this->db->querySql($sql);
  273. if($this->db->queryErrno() == 0){
  274. return 1;
  275. }else{
  276. return -1;
  277. }
  278. }
  279. public function __destruct(){
  280. //TODO
  281. }
  282. }