PageRenderTime 61ms CodeModel.GetById 29ms RepoModel.GetById 0ms app.codeStats 0ms

/app/Controller/ComplainsController.php

https://bitbucket.org/dosm123/crm
PHP | 492 lines | 442 code | 27 blank | 23 comment | 162 complexity | 45ea9376c7b8df6454517238f54ff777 MD5 | raw file
Possible License(s): LGPL-3.0, GPL-3.0, LGPL-2.1
  1. <?php
  2. class ComplainsController extends AppController{
  3. public $name = 'Complains';
  4. public $paginate = array(
  5. 'limit' => 25,
  6. 'order' => array(
  7. 'Complain.id' => 'desc'
  8. ),
  9. 'recursive' => 2,
  10. );
  11. public function index(){
  12. $this->loadModel('Board');
  13. $this->loadModel('Life');
  14. $this->loadmodel('User');
  15. $this->loadmodel('UserInfo');
  16. $this->loadmodel('Complex');
  17. $this->loadModel('BottomCategory');
  18. $this->loadModel('MidCategory');
  19. $this->loadModel('TopCategory');
  20. $data = null;
  21. $conditions = array();
  22. if($this->request->query){
  23. $data = $this->request->query['data'];
  24. $type = $data['Search']['type'];
  25. $input = $data['Search']['keyword'];
  26. if($type == "name"){
  27. $complex = array_keys($this->Complex->find('list', array('conditions' => array('Complex.name LIKE' => "%$input%"))));
  28. $conditions = array('or'=> array('Board.complex_id' => $complex,
  29. 'Life.complex_id' => $complex));
  30. }
  31. else if($type == "serial" || $type == "mac") {
  32. $conditions = array("or" => array("Board.$type LIKE" => "%$input%",
  33. "Life.$type LIKE" => "%$input%"));
  34. }
  35. else if($type == "engineer") {
  36. $userinfo = array_keys($this->UserInfo->find('list', array('conditions' => array('UserInfo.name LIKE' => "%$input%"))));
  37. $conditions = array("Complain.engineer_id" => $userinfo);
  38. }
  39. else {
  40. $conditions = array("Complain.$type LIKE" => "%$input%");
  41. }
  42. if(!isset($data['Filter'])){
  43. $data['Filter'] = array('midcategory' => 'default', 'topcategory' => 'default', 'status' => 'default', 'method' => 'default', 'region_name' => 'default', 'media' => 'default');
  44. }
  45. foreach ( array_keys($data['Filter']) as $key) {
  46. if($data['Filter'][$key] != "default"){
  47. // need a special process for foreignKeys
  48. if($key == 'method'){
  49. $conditions['or'] = array('Board.method' => $data['Filter'][$key],
  50. 'Life.method' => $data['Filter'][$key]);
  51. }
  52. else if($key == 'region_name'){
  53. $ids = array_keys($this->Complex->find('list', array('conditions'=>array('region_name'=>$data['Filter']['region_name']))));
  54. $conditions['or']['Board.complex_id'] = $ids;
  55. $conditions['or']['Life.complex_id'] = $ids;
  56. }
  57. else if($key == 'topcategory' || $key == 'midcategory'){
  58. $tmp_cond = null;
  59. if($data['Filter']['topcategory'] != 'default' and $data['Filter']['midcategory'] != 'default'){
  60. $top_ids = array_keys($this->BottomCategory->TopCategory->find('list', array('conditions' => array('category' => $data['Filter']['topcategory']))));
  61. $mid_ids = array_keys($this->BottomCategory->MidCategory->find('list', array('conditions' => array('category' => $data['Filter']['midcategory']))));
  62. $tmp_cond = array('top_category_id' => $top_ids,
  63. 'mid_category_id' => $mid_ids);
  64. }
  65. else if($data['Filter']['topcategory'] != 'default'){
  66. $top_ids = array_keys($this->BottomCategory->TopCategory->find('list', array('conditions' => array('category' => $data['Filter']['topcategory']))));
  67. $tmp_cond = array('top_category_id' => $top_ids);
  68. }
  69. else if($data['Filter']['midcategory'] != 'default'){
  70. $mid_ids = array_keys($this->BottomCategory->MidCategory->find('list', array('conditions' => array('category' => $data['Filter']['midcategory']))));
  71. $tmp_cond = array('mid_category_id' => $mid_ids);
  72. }
  73. $bottoms = array_keys($this->BottomCategory->find('list', array('fields' => array('BottomCategory.category'), 'conditions'=>$tmp_cond)));
  74. $conditions['Complain.bottom_category_id'] = $bottoms;
  75. }
  76. else if($key == 'media'){
  77. if($data['Filter']['media'] == '보드'){
  78. $conditions['not'] = array('Complain.board_id' => null);
  79. }
  80. else if ($data['Filter']['media'] == '라이프'){
  81. $conditions['not'] = array('Complain.life_id' => null);
  82. }
  83. }
  84. else if($key == 'status'){
  85. if($data['Filter']['status'] == '0'){
  86. $conditions['Complain.status'] = 0;
  87. }
  88. else if ($data['Filter']['status'] == '1'){
  89. $conditions['Complain.status'] = 1;
  90. }
  91. else if ($data['Filter']['status'] == '2'){
  92. $conditions['Complain.status'] = 2;
  93. }
  94. else if ($data['Filter']['status'] == '3'){
  95. $conditions['Complain.status'] = 3;
  96. }
  97. }
  98. else if($key == 'start_date'){
  99. if($data['Filter'][$key]){
  100. $date = date('Y-m-d', strtotime($data['Filter'][$key]));
  101. $conditions['Complain.reg_date >='] = $date;
  102. }
  103. }
  104. else if($key == 'end_date'){
  105. if($data['Filter'][$key]){
  106. $date = date('Y-m-d', strtotime($data['Filter'][$key]) + 86400);
  107. $conditions['Complain.reg_date <='] = $date;
  108. }
  109. }
  110. }
  111. }
  112. // 검색 혹은 필터 내용 있으면 검색 처리
  113. }
  114. $this->paginate['conditions'] = $conditions;
  115. /* paginate 때문에 붙인거 */
  116. $this->Complain->unbindModel(array('hasMany' => array('Cs'), 'belongsTo' => array('CsBottomCategory')));
  117. $this->Complain->EngineerInfo->unbindModel(array('hasOne'=> array('User'), 'hasMany' => array('Complex', 'Complain')));
  118. $this->Complain->ReceiverInfo->unbindModel(array('hasOne'=> array('User'), 'hasMany' => array('Complex', 'Complain')));
  119. $this->Board->unbindModel(array('hasMany' => array('Complain')));
  120. $this->Life->unbindModel(array('hasMany' => array('Complain')));
  121. $this->set('complains', $this->paginate('Complain'));
  122. $this->set('medias', array('보드', '라이프'));
  123. $this->set('methods', Set::extract('/boards/method', $this->Board->query('select distinct method from boards')));
  124. $this->set('regions' , Set::extract('/complexes/region_name', $this->Complex->query('select distinct region_name from complexes')));
  125. $this->set('topcategories' , Set::extract('/top_categories/category', $this->TopCategory->query('select distinct category from top_categories')));
  126. $this->set('midcategories', Set::extract('/mid_categories/category', $this->MidCategory->query('select distinct category from mid_categories')));
  127. /* $this->set('methods', array_unique( */
  128. /* array_merge(Set::extract('/Board/method', $complains), */
  129. /* Set::extract('/Life/method', $complains)) */
  130. /* ) */
  131. /* ); */
  132. /* $this->set('regions', array_unique( */
  133. /* array_merge(Set::extract('/Board/Complex/region_name', $complains), */
  134. /* Set::extract('/Life/Complex/region_name', $complains)) */
  135. /* )); */
  136. /* $this->set('topcategories', array_unique(Set::extract('/BottomCategory/TopCategory/category', $complains))); */
  137. /* $this->set('midcategories', array_unique(Set::extract('/BottomCategory/MidCategory/category', $complains))); */
  138. $this->set('searchinfo', $data);
  139. }
  140. public function add(){
  141. if($this->request->is('post')){
  142. foreach ( array_keys($this->request->data['Complain']) as $key ) {
  143. if($this->request->data['Complain'][$key]['media'] == 'board'){
  144. $this->request->data['Complain'][$key]['board_id'] = $this->request->data['Complain'][$key]['device_id'];
  145. }
  146. else if($this->request->data['Complain'][$key]['media'] == 'life'){
  147. $this->request->data['Complain'][$key]['life_id'] = $this->request->data['Complain'][$key]['device_id'];
  148. }
  149. else {
  150. $this->Session->setFlash('저장에 실패하였습니다');
  151. }
  152. }
  153. if($this->Complain->saveAll($this->request->data['Complain'])){
  154. $this->redirect('/complains');
  155. }
  156. else{
  157. $this->Session->setFlash('저장에 실패하였습니다');
  158. }
  159. }
  160. $this->loadModel('TopCategory');
  161. $this->set('tops', $this->TopCategory->find('all'));
  162. $this->set('mids', $this->TopCategory->MidCategory->find('all'));
  163. $this->set('bottoms', $this->TopCategory->MidCategory->BottomCategory->find('all'));
  164. }
  165. public function delete($complain_id){
  166. $complain = $this->Complain->findByid($complain_id);
  167. $this->Complain->id = $complain['Complain']['id'];
  168. if($this->Complain->delete()){
  169. $this->redirect('/complains');
  170. }
  171. }
  172. public function edit($boardlife , $boardlife_id , $complain_id){
  173. $this->loadModel('Complex');
  174. $this->loadModel('TopCategory');
  175. $this->set('tops', $this->TopCategory->find('all'));
  176. $this->set('mids', $this->TopCategory->MidCategory->find('all'));
  177. $this->set('bottoms', $this->TopCategory->MidCategory->BottomCategory->find('all', array('recursive' => 0)));
  178. $complain = $this->Complain->findById($complain_id);
  179. if(!parent::array_empty($complain['Board'])){
  180. $complex_id = $complain['Board']['complex_id'];
  181. $media = 'board';
  182. }
  183. else if(!parent::array_empty($complain['Life'])){
  184. $complex_id = $complain['Life']['complex_id'];
  185. $media = 'life';
  186. }
  187. $this->set('complain', $complain);
  188. $this->set('media', $media);
  189. $this->set('complex', $this->Complex->findById($complex_id));
  190. if($this->request->is('post')){
  191. if($this->request->data['Complain']['bottom_category_id'] == 'default'){
  192. $this->request->data['Complain']['bottom_category_id'] = 1;
  193. }
  194. $this->Complain->id = $complain_id;
  195. if($this->Complain->save($this->request->data['Complain'])){
  196. $this->redirect('/complains/view/'.$boardlife.'/'.$boardlife_id.'/'.$complain_id);
  197. }
  198. }
  199. }
  200. public function view($media, $media_id, $complain_id=NULL){
  201. $this->loadModel('Complex');
  202. if($media == 'board'){
  203. $this->loadModel('Board');
  204. $boardlife = $this->Board->findById($media_id);
  205. $complains = $this->Complain->find('all', array('conditions' => array('board_id' => $media_id)));
  206. }
  207. else if($media == 'life'){
  208. $this->loadModel('Life');
  209. $boardlife = $this->Life->findById($media_id);
  210. $complains = $this->Complain->find('all', array('conditions' => array('life_id' => $media_id)));
  211. }
  212. $complex_id = $boardlife['Complex']['id'];
  213. $this->loadModel('UserInfo');
  214. $this->loadModel('TopCategory');
  215. $this->loadModel('BottomCategory');
  216. $this->loadModel('CsMaterial');
  217. $this->loadModel('CsAdditionalInfo');
  218. $this->set('tops', $this->TopCategory->find('all'));
  219. $this->set('mids', $this->TopCategory->MidCategory->find('all'));
  220. $this->set('bottoms', $this->BottomCategory->find('all'));
  221. $complex = $this->Complex->findById($complex_id);
  222. $this->set('complex', $complex);
  223. $this->set('installer', $this->UserInfo->findById($complex['Complex']['installer_id']));
  224. $this->set('users', $this->UserInfo->find('all'));
  225. $this->set('complains', $complains);
  226. $this->set('materials', $this->CsMaterial->find('all'));
  227. $this->set('additions', $this->CsAdditionalInfo->find('all'));
  228. $this->set('media', $media);
  229. $this->set('media_id', $media_id);
  230. $this->set('boardlife', $boardlife);
  231. $this->set('complain_id', $complain_id);
  232. }
  233. public function ajaxAdd(){
  234. if($this->request->is('post')){
  235. if($this->request->data['media'] == 'board'){
  236. $this->request->data['board_id'] = $this->request->data['device_id'];
  237. }
  238. else if($this->request->data['media'] == 'life'){
  239. $this->request->data['life_id'] = $this->request->data['device_id'];
  240. }
  241. else {
  242. $this->Session->setFlash('저장에 실패하였습니다');
  243. }
  244. if($this->request->data['bottom_category_id'] == 'default'){
  245. $this->request->data['bottom_category_id'] = 1;
  246. }
  247. $this->request->data['name'] = parent::eucconv($this->request->data['name']);
  248. $this->request->data['phone'] = parent::eucconv($this->request->data['phone']);
  249. $this->request->data['title'] = parent::eucconv($this->request->data['title']);
  250. $this->request->data['comment'] = parent::eucconv($this->request->data['comment']);
  251. if($this->Complain->save($this->request->data)){
  252. echo 'good';
  253. }
  254. else{
  255. echo 'bad';
  256. }
  257. }
  258. $this->render('/complains/ajaxAdd', 'ajax');
  259. }
  260. public function excelOut(){
  261. $this->loadModel('Complex');
  262. $this->loadModel('Board');
  263. $this->loadModel('BottomCategory');
  264. $this->loadModel('CsBottomCategory');
  265. $this->loadModel('EngineerInfo');
  266. $this->loadModel('ReceiverInfo');
  267. $this->loadModel('Life');
  268. $this->loadModel('UserInfo');
  269. $currentTime = date("Y-m-d H:i:s");
  270. date_default_timezone_set('Asia/Seoul');
  271. $users = $this->UserInfo->find('list', array('fields'=> array('UserInfo.name')));
  272. $conditions = array();
  273. if($this->request->query){
  274. $data = $this->request->query['data'];
  275. $type = $data['Search']['type'];
  276. $input = $data['Search']['keyword'];
  277. if($type == "name"){
  278. $complex = array_keys($this->Complex->find('list', array('conditions' => array('Complex.name LIKE' => "%$input%"))));
  279. $conditions = array('or'=> array('Board.complex_id' => $complex,
  280. 'Life.complex_id' => $complex));
  281. }
  282. else if($type == "serial" || $type == "mac") {
  283. $conditions = array("or" => array("Board.$type LIKE" => "%$input%",
  284. "Life.$type LIKE" => "%$input%"));
  285. }
  286. else if($type == "engineer") {
  287. $userinfo = array_keys($this->UserInfo->find('list', array('conditions' => array('UserInfo.name LIKE' => "%$input%"))));
  288. $conditions = array("Complain.engineer_id" => $userinfo);
  289. }
  290. else {
  291. $conditions = array("Complain.$type LIKE" => "%$input%");
  292. }
  293. if(!isset($data['Filter'])){
  294. $data['Filter'] = array('midcategory' => 'default', 'topcategory' => 'default', 'status' => 'default', 'method' => 'default', 'region_name' => 'default', 'media' => 'default');
  295. }
  296. foreach ( array_keys($data['Filter']) as $key) {
  297. if($data['Filter'][$key] != "default"){
  298. // need a special process for foreignKeys
  299. if($key == 'method'){
  300. $conditions['or'] = array('Board.method' => $data['Filter'][$key],
  301. 'Life.method' => $data['Filter'][$key]);
  302. }
  303. else if($key == 'region_name'){
  304. $ids = array_keys($this->Complex->find('list', array('conditions'=>array('region_name'=>$data['Filter']['region_name']))));
  305. $conditions['or']['Board.complex_id'] = $ids;
  306. $conditions['or']['Life.complex_id'] = $ids;
  307. }
  308. else if($key == 'topcategory' || $key == 'midcategory'){
  309. $tmp_cond = null;
  310. if($data['Filter']['topcategory'] != 'default' and $data['Filter']['midcategory'] != 'default'){
  311. $top_ids = array_keys($this->BottomCategory->TopCategory->find('list', array('conditions' => array('category' => $data['Filter']['topcategory']))));
  312. $mid_ids = array_keys($this->BottomCategory->MidCategory->find('list', array('conditions' => array('category' => $data['Filter']['midcategory']))));
  313. $tmp_cond = array('top_category_id' => $top_ids,
  314. 'mid_category_id' => $mid_ids);
  315. }
  316. else if($data['Filter']['topcategory'] != 'default'){
  317. $top_ids = array_keys($this->BottomCategory->TopCategory->find('list', array('conditions' => array('category' => $data['Filter']['topcategory']))));
  318. $tmp_cond = array('top_category_id' => $top_ids);
  319. }
  320. else if($data['Filter']['midcategory'] != 'default'){
  321. $mid_ids = array_keys($this->BottomCategory->MidCategory->find('list', array('conditions' => array('category' => $data['Filter']['midcategory']))));
  322. $tmp_cond = array('mid_category_id' => $mid_ids);
  323. }
  324. $bottoms = array_keys($this->BottomCategory->find('list', array('fields' => array('BottomCategory.category'), 'conditions'=>$tmp_cond)));
  325. $conditions['Complain.bottom_category_id'] = $bottoms;
  326. }
  327. else if($key == 'media'){
  328. if($data['Filter']['media'] == '보드'){
  329. $conditions['not'] = array('Complain.board_id' => null);
  330. }
  331. else if ($data['Filter']['media'] == '라이프'){
  332. $conditions['not'] = array('Complain.life_id' => null);
  333. }
  334. }
  335. else if($key == 'status'){
  336. if($data['Filter']['status'] == '0'){
  337. $conditions['Complain.status'] = 0;
  338. }
  339. else if ($data['Filter']['status'] == '1'){
  340. $conditions['Complain.status'] = 1;
  341. }
  342. else if ($data['Filter']['status'] == '2'){
  343. $conditions['Complain.status'] = 2;
  344. }
  345. else if ($data['Filter']['status'] == '3'){
  346. $conditions['Complain.status'] = 3;
  347. }
  348. }
  349. else if($key == 'start_date'){
  350. if($data['Filter'][$key]){
  351. $date = date('Y-m-d', strtotime($data['Filter'][$key]));
  352. $conditions['Complain.reg_date >='] = $date;
  353. }
  354. }
  355. else if($key == 'end_date'){
  356. if($data['Filter'][$key]){
  357. $date = date('Y-m-d', strtotime($data['Filter'][$key]) + 86400);
  358. $conditions['Complain.reg_date <='] = $date;
  359. }
  360. }
  361. }
  362. }
  363. }
  364. $this->Complain->unbindModel(array('hasMany' => array('Cs'), 'belongsTo' => array('CsBottomCategory')));
  365. $this->Board->unbindModel(array('hasMany' => array('Complain')));
  366. $this->Life->unbindModel(array('hasMany' => array('Complain')));
  367. $this->EngineerInfo->unbindModel(array('hasOne' => array('User'), 'hasMany' => array('Complex', 'Complain')));
  368. $this->ReceiverInfo->unbindModel(array('hasOne' => array('User'), 'hasMany' => array('Complex', 'Complain')));
  369. $complainInfos = $this->Complain->find('all', array('recursive' => 2,'conditions' => $conditions));
  370. /** PHPExcel */
  371. require_once './Classes/PHPExcel.php';
  372. // Create new PHPExcel object
  373. $objPHPExcel = new PHPExcel();
  374. // Set properties
  375. $objPHPExcel->getProperties()->setCreator("CRM System")
  376. ->setLastModifiedBy("CRM System")
  377. ->setTitle("CRM System Complain report")
  378. ->setSubject("CRM System Complain report")
  379. ->setDescription("CRM System Complain report on {$currentTime}")
  380. ->setKeywords("Complain")
  381. ->setCategory("Complain result");
  382. // Add header
  383. $objPHPExcel->setActiveSheetIndex(0)
  384. ->setCellValue('A1', parent::utf8conv('등록일자'))
  385. ->setCellValue('B1', parent::utf8conv('대분류'))
  386. ->setCellValue('C1', parent::utf8conv('중분류'))
  387. ->setCellValue('D1', parent::utf8conv('소분류'))
  388. ->setCellValue('E1', parent::utf8conv('서버정보'))
  389. ->setCellValue('F1', parent::utf8conv('통신방식'))
  390. ->setCellValue('G1', parent::utf8conv('주소'))
  391. ->setCellValue('H1', parent::utf8conv('단지명'))
  392. ->setCellValue('I1', parent::utf8conv('위치정보'))
  393. ->setCellValue('J1', parent::utf8conv('매체'))
  394. ->setCellValue('K1', parent::utf8conv('시리얼'))
  395. ->setCellValue('L1', parent::utf8conv('제목'))
  396. ->setCellValue('M1', parent::utf8conv('내용'))
  397. ->setCellValue('N1', parent::utf8conv('요청자'))
  398. ->setCellValue('O1', parent::utf8conv('요청자 연락처'))
  399. ->setCellValue('P1', parent::utf8conv('접수자'))
  400. ->setCellValue('Q1', parent::utf8conv('처리자'))
  401. ->setCellValue('R1', parent::utf8conv('처리일자'));
  402. // Add some data
  403. $index = 2;
  404. foreach($complainInfos as $complainInfo){
  405. $objPHPExcel->setActiveSheetIndex(0)
  406. ->setCellValue("A{$index}", parent::utf8conv($complainInfo['Complain']['reg_date']))
  407. ->setCellValue("B{$index}", parent::utf8conv($complainInfo['BottomCategory']['TopCategory']['category']))
  408. ->setCellValue("C{$index}", parent::utf8conv($complainInfo['BottomCategory']['MidCategory']['category']))
  409. ->setCellValue("D{$index}", parent::utf8conv($complainInfo['BottomCategory']['category']));
  410. $serverInfo = NULL;
  411. $method = NULL;
  412. $addr = NULL;
  413. $complex_name = NULL;
  414. $location = NULL;
  415. $media = NULL;
  416. $serial = NULL;
  417. if(!parent::array_empty($complainInfo['Board'])){
  418. $serverInfo = $complainInfo['Board']['server_name'];
  419. $method = $complainInfo['Board']['method'];
  420. $addr = $complainInfo['Board']['Complex']['first_addr'].' '.$complainInfo['Board']['Complex']['mid_addr'].' '.$complainInfo['Board']['Complex']['last_addr'].' '.$complainInfo['Board']['Complex']['addr'];
  421. $complex_name = $complainInfo['Board']['Complex']['name'];
  422. $location = $complainInfo['Board']['location'];
  423. $media = '보드';
  424. $serial = $complainInfo['Board']['serial'];
  425. }
  426. else if(!parent::array_empty($complainInfo['Life'])){
  427. $serverInfo = $complainInfo['Life']['aed_name'];
  428. $method = $complainInfo['Life']['method'];
  429. $addr = $complainInfo['Life']['Complex']['first_addr'].' '.$complainInfo['Life']['Complex']['mid_addr'].' '.$complainInfo['Life']['Complex']['last_addr'].' '.$complainInfo['Life']['Complex']['addr'];
  430. $complex_name = $complainInfo['Life']['Complex']['name'];
  431. $location = $complainInfo['Life']['location'];
  432. $media = '라이프';
  433. $serial = $complainInfo['Life']['serial'];
  434. }
  435. $objPHPExcel->setActiveSheetIndex(0)
  436. ->setCellValue("E{$index}", parent::utf8conv($serverInfo))
  437. ->setCellValue("F{$index}", parent::utf8conv($method))
  438. ->setCellValue("G{$index}", parent::utf8conv($addr))
  439. ->setCellValue("H{$index}", parent::utf8conv($complex_name))
  440. ->setCellValue("I{$index}", parent::utf8conv($location))
  441. ->setCellValue("J{$index}", parent::utf8conv($media))
  442. ->setCellValue("K{$index}", parent::utf8conv($serial))
  443. ->setCellValue("L{$index}", parent::utf8conv($complainInfo['Complain']['title']))
  444. ->setCellValue("M{$index}", parent::utf8conv($complainInfo['Complain']['comment']))
  445. ->setCellValue("N{$index}", parent::utf8conv($complainInfo['Complain']['name']))
  446. ->setCellValue("O{$index}", parent::utf8conv($complainInfo['Complain']['phone']))
  447. ->setCellValue("P{$index}", parent::utf8conv($users[$complainInfo['Complain']['receiver_id']]))
  448. ->setCellValue("Q{$index}", parent::utf8conv($users[$complainInfo['Complain']['engineer_id']]))
  449. ->setCellValue("R{$index}", parent::utf8conv($complainInfo['Complain']['end_date']));
  450. $index++;
  451. }
  452. // Rename sheet
  453. $objPHPExcel->getActiveSheet()->setTitle(parent::utf8conv('민원정보'));
  454. // Set active sheet index to the first sheet, so Excel opens this as the first sheet
  455. $objPHPExcel->setActiveSheetIndex(0);
  456. // Redirect output to a client’s web browser (Excel2007)
  457. header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
  458. header('Content-Disposition: attachment;filename="민원정보'.$currentTime.'.xlsx"');
  459. header('Cache-Control: max-age=0');
  460. $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
  461. $objWriter->save('php://output');
  462. exit;
  463. }
  464. }
  465. ?>