Retreatlog.php 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3. class Retreatlog extends Start_Controller {
  4. public function __construct(){
  5. parent::__construct();
  6. $this->load->library('session');
  7. $this->load->model('Model_retreatlogs','retreatlogs');
  8. $this->load->model("Model_logic_u9tools","logic_u9tools");
  9. }
  10. //定义方法的调用规则 获取URI第二段值
  11. public function _remap($arg,$arg_array)
  12. {
  13. if($arg == 'exceljs')//添加
  14. {
  15. $this->_exceljs();
  16. }
  17. else{
  18. $this->_index();
  19. }
  20. }
  21. private function _index(){
  22. if($this->input->method() == 'post'){
  23. $page = $this->input->post('page',true);
  24. $perpage = $this->input->post('perpage',true);
  25. $number = $this->input->post('number',true);
  26. $timetk = $this->input->post('timetk',true);
  27. $timetj = $this->input->post('timetj',true);
  28. $timetk = strtotime($timetk);
  29. $timetj = strtotime($timetj);
  30. $where = " tk_time >= {$timetk} and tk_time <= {$timetj} ";
  31. if($number){
  32. $where .= " and number = '{$number}' ";
  33. }
  34. //数据排序
  35. $order_str = "id desc";
  36. if(empty($page))
  37. {
  38. $start = 0;
  39. $perpage = 1;
  40. }
  41. else
  42. {
  43. $start = ($page - 1)*$perpage;
  44. }
  45. $classid = $this->logic_u9tools->getClass();
  46. $typeclass = $this->logic_u9tools->getTypeClass();
  47. $info_list = $this->retreatlogs->find_all($where,'id,number,ck_time,tk_time,cz_time,ck_goods',$order_str,$start,$perpage);
  48. foreach($info_list as $k => $v){
  49. $json_arr = json_decode($v['ck_goods'],true);
  50. $fpdata = $this->logic_u9tools->transferFpdata($json_arr['fpdata']);
  51. $jm_str = '';
  52. $zh_str = '';
  53. foreach($fpdata as $key => $value){
  54. $sku = $value[0];
  55. $u9_info = $this->logic_u9tools->getOneU9bmHasGift($sku,$classid,$typeclass);
  56. $jm_str .= $u9_info['jm']."<br/>";
  57. $zh_str .= $u9_info['zh']." * " .$value[2]."<br/>";
  58. }
  59. $info_list[$k]['ck_time'] = empty($v['ck_time'])? '' : date('Y-m-d H:i:s',$v['ck_time']);
  60. $info_list[$k]['tk_time'] = empty($v['tk_time'])? '' : date('Y-m-d H:i:s',$v['tk_time']);
  61. $info_list[$k]['cz_time'] = empty($v['cz_time'])? '' : date('Y-m-d H:i:s',$v['cz_time']);
  62. $info_list[$k]['ck_goods'] = trim($jm_str,"<br/>");
  63. $info_list[$k]['zh'] = trim($zh_str,"<br/>");
  64. }
  65. $total = $this->retreatlogs->find_count($where);
  66. $pagenum = ceil($total/$perpage);
  67. $over = $total-($start+$perpage);
  68. $rows = array('total'=>$total,'over'=>$over,'pagenum'=>$pagenum,'rows'=>($info_list));
  69. echo json_encode($rows);exit;
  70. }else{
  71. $this->_Template('retreatlog',$this->data);
  72. }
  73. }
  74. private function _exceljs(){
  75. $number = $this->input->get('number',true);
  76. $timetk = $this->input->get('timetk',true);
  77. $timetj = $this->input->get('timetj',true);
  78. $timetk = strtotime($timetk);
  79. $timetj = strtotime($timetj);
  80. $where = "tk_time >= {$timetk} and tk_time <= {$timetj}";
  81. if($number){
  82. $where .= " and number = '{$number}' ";
  83. }
  84. $order_str = "id desc";
  85. $classid = $this->logic_u9tools->getClass();
  86. $typeclass = $this->logic_u9tools->getTypeClass();
  87. $info_list = $this->retreatlogs->find_all($where,'id,number,ck_time,tk_time,cz_time,ck_goods',$order_str);
  88. foreach($info_list as $k => $v){
  89. $json_arr = json_decode($v['ck_goods'],true);
  90. $fpdata = $this->logic_u9tools->transferFpdata($json_arr['fpdata']);
  91. $jm_str = '';
  92. $zh_str = '';
  93. foreach($fpdata as $key => $value){
  94. $sku = $value[0];
  95. $u9_info = $this->logic_u9tools->getOneU9bmHasGift($sku,$classid,$typeclass);
  96. $jm_str .= $u9_info['jm']."<br/>";
  97. $zh_str .= $u9_info['zh']." * " .$value[2]."<br/>";
  98. }
  99. $info_list[$k]['ck_time'] = empty($v['ck_time'])? '' : date('Y-m-d H:i:s',$v['ck_time']);
  100. $info_list[$k]['tk_time'] = empty($v['tk_time'])? '' : date('Y-m-d H:i:s',$v['tk_time']);
  101. $info_list[$k]['cz_time'] = empty($v['cz_time'])? '' : date('Y-m-d H:i:s',$v['cz_time']);
  102. $info_list[$k]['ck_goods'] = trim($jm_str,"<br/>");
  103. $info_list[$k]['zh'] = trim($zh_str,"<br/>");
  104. }
  105. //生成excel
  106. $filename = date("Y-m-d")."退库日志记录.xls";
  107. $str = "<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\">
  108. <head>
  109. <!--[if gte mso 9]><xml>
  110. <x:ExcelWorkbook>
  111. <x:ExcelWorksheets>
  112. <x:ExcelWorksheet>
  113. <x:Name>EXCEL</x:Name>
  114. <x:WorksheetOptions>
  115. <x:Print>
  116. <x:ValidPrinterInfo />
  117. </x:Print>
  118. </x:WorksheetOptions>
  119. </x:ExcelWorksheet>
  120. </x:ExcelWorksheets>
  121. </x:ExcelWorkbook>
  122. </xml>
  123. <![endif]-->
  124. </head><body>";
  125. $str .= "<table border=1 style='font-family: Microsoft Yahei;font-size: 13px;'>";
  126. $str .= "<tr><td>订单编号</td><td>出库时间</td><td>退库时间</td><td>重置时间</td><td>u9料号</td><td>中文品名</td></tr>";
  127. foreach ($info_list as $key=>$value)
  128. {
  129. $str .= "<tr>";
  130. $str .= "<td>". $value['number']. "</td>";
  131. $str .= "<td>". $value['ck_time']. "</td>";
  132. $str .= "<td>". $value['tk_time']. "</td>";
  133. $str .= "<td>". $value['cz_time']. "</td>";
  134. $str .= "<td>". $value['ck_goods']. "</td>";
  135. $str .= "<td>". $value['zh']. "</td>";
  136. $str .= "</tr>";
  137. }
  138. $str .= "</table></body></html>";
  139. header( "Content-Type: application/vnd.ms-excel; name='excel'" );
  140. header( "Content-type: application/octet-stream" );
  141. header( "Content-Disposition: attachment; filename=".$filename );
  142. header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
  143. header( "Pragma: no-cache" );
  144. header( "Expires: 0" );
  145. exit($str);
  146. }
  147. }