/app/Controller/WorksController.php
PHP | 710 lines | 652 code | 33 blank | 25 comment | 211 complexity | fac5ebc2e67fe5af17badd78b275e90a MD5 | raw file
Possible License(s): LGPL-3.0, GPL-3.0, LGPL-2.1
- <?php
- class WorksController extends AppController{
- public $paginate = array(
- 'limit' => 25,
- 'order' => array(
- 'Complain.reg_date' => 'desc'
- ),
- 'recursive' => 2,
- );
- public $name = 'Works';
- public function index(){
- $this->loadModel('Board');
- $this->loadModel('Life');
- $this->loadmodel('User');
- $this->loadmodel('UserInfo');
- $this->loadmodel('Complex');
- $this->loadmodel('Complain');
- $this->loadModel('TopCategory');
- $this->loadModel('MidCategory');
- $this->loadModel('BottomCategory');
- $this->set('tops', $this->TopCategory->find('all'));
- $this->set('mids', $this->TopCategory->MidCategory->find('all'));
- $data = null;
- $conditions = array();
- $conditions['not'] = array('Complain.status' => 0);
- if($this->request->query){
- $data = $this->request->query['data'];
- $type = $data['Search']['type'];
- $input = $data['Search']['keyword'];
- if($type == "name"){
- $complex = array_keys($this->Complex->find('list', array('conditions' => array('Complex.name LIKE' => "%$input%"))));
- $conditions = array('or'=> array('Board.complex_id' => $complex,
- 'Life.complex_id' => $complex));
- }
- else if($type == "serial" || $type == "mac") {
- $conditions = array("or" => array("Board.$type LIKE" => "%$input%",
- "Life.$type LIKE" => "%$input%"));
- }
- else if($type == "engineer") {
- $userinfo = array_keys($this->UserInfo->find('list', array('conditions' => array('UserInfo.name LIKE' => "%$input%"))));
- $conditions = array("Complain.engineer_id" => $userinfo);
- }
- else {
- $conditions = array("Complain.$type LIKE" => "%$input%");
- }
- if(!isset($data['Filter'])){
- $data['Filter'] = array('midcategory' => 'default', 'topcategory' => 'default', 'status' => 'default', 'method' => 'default', 'region_name' => 'default', 'media' => 'default');
- }
- foreach ( array_keys($data['Filter']) as $key) {
- if($data['Filter'][$key] != "default"){
- // need a special process for foreignKeys
- if($key == 'method'){
- $conditions['or'] = array('Board.method' => $data['Filter'][$key],
- 'Life.method' => $data['Filter'][$key]);
- }
- else if($key == 'region_name'){
- $ids = array_keys($this->Complex->find('list', array('conditions'=>array('region_name'=>$data['Filter']['region_name']))));
- $conditions['or']['Board.complex_id'] = $ids;
- $conditions['or']['Life.complex_id'] = $ids;
- }
- else if($key == 'topcategory' || $key == 'midcategory'){
- $tmp_cond = null;
- if($data['Filter']['topcategory'] != 'default' and $data['Filter']['midcategory'] != 'default'){
- $top_ids = array_keys($this->BottomCategory->TopCategory->find('list', array('conditions' => array('category' => $data['Filter']['topcategory']))));
- $mid_ids = array_keys($this->BottomCategory->MidCategory->find('list', array('conditions' => array('category' => $data['Filter']['midcategory']))));
- $tmp_cond = array('top_category_id' => $top_ids,
- 'mid_category_id' => $mid_ids);
- }
- else if($data['Filter']['topcategory'] != 'default'){
- $top_ids = array_keys($this->BottomCategory->TopCategory->find('list', array('conditions' => array('category' => $data['Filter']['topcategory']))));
- $tmp_cond = array('top_category_id' => $top_ids);
- }
- else if($data['Filter']['midcategory'] != 'default'){
- $mid_ids = array_keys($this->BottomCategory->MidCategory->find('list', array('conditions' => array('category' => $data['Filter']['midcategory']))));
- $tmp_cond = array('mid_category_id' => $mid_ids);
- }
- $bottoms = array_keys($this->BottomCategory->find('list', array('conditions'=>$tmp_cond)));
- $conditions['Complain.cs_bottom_category_id'] = $bottoms;
- }
- else if($key == 'media'){
- if($data['Filter']['media'] == '보드'){
- $conditions['Complain.board_id <>'] = NULL;
- }
- else if ($data['Filter']['media'] == '라이프'){
- $conditions['Complain.life_id <>'] = NULL;
- }
- }
- else if($key == 'status'){
- if($data['Filter']['status'] == '0'){
- $conditions['Complain.status'] = 0;
- }
- else if ($data['Filter']['status'] == '1'){
- $conditions['Complain.status'] = 1;
- }
- else if ($data['Filter']['status'] == '2'){
- $conditions['Complain.status'] = 2;
- }
- else if ($data['Filter']['status'] == '3'){
- $conditions['Complain.status'] = 3;
- }
- }
- else if($key == 'start_date'){
- if($data['Filter'][$key]){
- $date = date('Y-m-d', strtotime($data['Filter'][$key]));
- $conditions['Complain.end_date >='] = $date;
- }
- }
- else if($key == 'end_date'){
- if($data['Filter'][$key]){
- $date = date('Y-m-d', strtotime($data['Filter'][$key]) + 86400);
- $conditions['Complain.end_date <='] = $date;
- }
- }
- }
- }
- // 검색 혹은 필터 내용 있으면 검색 처리
- }
- $conditions['not'] = array('Complain.status' => 0);
- $this->paginate['conditions'] = $conditions;
- /* paginate 때문에 붙인거 */
- $this->Complain->unbindModel(array('hasMany' => array('Cs')));
- $this->Complain->EngineerInfo->unbindModel(array('hasOne'=> array('User'), 'hasMany' => array('Complex', 'Complain')));
- $this->Complain->ReceiverInfo->unbindModel(array('hasOne'=> array('User'), 'hasMany' => array('Complex', 'Complain')));
- $this->Board->unbindModel(array('hasMany' => array('Complain')));
- $this->Life->unbindModel(array('hasMany' => array('Complain')));
- $this->set('complains', $this->paginate('Complain'));
- $this->set('medias', array('보드', '라이프'));
- $this->set('methods', Set::extract('/boards/method', $this->Board->query('select distinct method from boards')));
- $this->set('regions' , Set::extract('/complexes/region_name', $this->Complex->query('select distinct region_name from complexes')));
- $this->set('topcategories' , Set::extract('/top_categories/category', $this->TopCategory->query('select distinct category from top_categories')));
-
- $this->set('midcategories', Set::extract('/mid_categories/category', $this->MidCategory->query('select distinct category from mid_categories')));
- /* $this->set('methods', array_unique( */
- /* array_merge(Set::extract('/Board/method', $complains), */
- /* Set::extract('/Life/method', $complains)) */
- /* ) */
- /* ); */
- /* $this->set('regions', array_unique( */
- /* array_merge(Set::extract('/Board/Complex/region_name', $complains), */
- /* Set::extract('/Life/Complex/region_name', $complains)) */
- /* )); */
- /* $this->set('topcategories', array_unique(Set::extract('/CsBottomCategory/TopCategory/category', $complains))); */
- /* $this->set('midcategories', array_unique(Set::extract('/CsBottomCategory/MidCategory/category', $complains))); */
- $this->set('searchinfo', $data);
- }
- public function add($media, $media_id, $complain_id){
- $this->loadModel('Cs');
- $this->loadModel('Life');
- $this->loadModel('Board');
- $this->loadModel('TopCategory');
- $this->loadModel('Complain');
- $this->set('tops', $this->TopCategory->find('all'));
- $this->set('mids', $this->TopCategory->MidCategory->find('all'));
- $this->set('bottoms', $this->TopCategory->MidCategory->BottomCategory->find('all'));
- $this->set('media', $media);
- $this->set('media_id', $media_id);
- if($media == 'life'){
- $life = $this->Life->findById($media_id);
- $complex_id = $life['Life']['complex_id'];
- }
- else if($media == 'board'){
- $board = $this->Board->findById($media_id);
- $complex_id = $board['Board']['complex_id'];
- }
- $this->set('complex_id', $complex_id);
- $this->set('complain', $this->Complain->findById($complain_id, array('recursive' => 0)));
- $this->set('complain_id', $complain_id);
- }
- public function edit($media, $media_id, $complain_id, $cs_id){
- $this->loadModel('Cs');
- $this->loadModel('Life');
- $this->loadModel('Board');
- $this->loadModel('TopCategory');
- $this->loadModel('CsMaterial');
- $this->loadModel('CsAdditionalInfo');
- $this->loadModel('Complain');
- $this->loadModel('User');
- $this->set('users', $this->User->find('all'));
- $this->set('media', $media);
- $this->set('media_id', $media_id);
- if($media == 'life'){
- $life = $this->Life->findById($media_id);
- $complex_id = $life['Life']['complex_id'];
- }
- else if($media == 'board'){
- $board = $this->Board->findById($media_id);
- $complex_id = $board['Board']['complex_id'];
- }
- $this->set('complex_id', $complex_id);
- $cs = $this->Cs->findById($cs_id);
- $this->set('complain_id', $cs['Complain']['id']);
- $this->set('tops', $this->TopCategory->find('all' , array('conditions' => array('TopCategory.deleted' => 0))));
- $this->set('mids', $this->TopCategory->MidCategory->find('all', array('conditions' => array('MidCategory.deleted' => 0))));
- $this->set('bottoms', $this->TopCategory->MidCategory->BottomCategory->find('all', array('conditions' => array('BottomCategory.deleted' => 0))));
- $this->set('cs', $cs);
- $this->set('cs_id', $cs_id);
- $this->set('csMaterials', $this->CsMaterial->find('all', array('conditions' =>array('CsMaterial.cs_id' => $cs_id) )));
- $this->set('csAdditions', $this->CsAdditionalInfo->find('all', array('conditions' =>array('CsAdditionalInfo.cs_id' => $cs_id))));
- if($this->request->is('post')){
- $this->Cs->id = $cs_id;
- $cs['Cs']['comment'] = parent::eucconv($cs['Cs']['comment']);
- if($cs['Cs']['bottom_category_id'] == "default"){
- $cs['Cs']['bottom_category_id'] = 1;
- }
- if($this->Cs->save($this->request->data['Cs'])){
- if(!parent::array_empty($this->request->data['CsMaterial'])){
- foreach( $this->request->data['CsMaterial'] as $csMaterial):
- if(!parent::array_empty($csMaterial)){
- if($csMaterial['cs_id'] == null){
- $csMaterial['cs_id'] = $cs_id;
- }
- $this->CsMaterial->saveAll($csMaterial);
- }
- endforeach;
- }
- if(!parent::array_empty($this->request->data['CsAdditionalInfo'])){
- foreach( $this->request->data['CsAdditionalInfo'] as $csAddition):
- if(!parent::array_empty($csAddition)){
- if($csAddition['cs_id'] == null){
- $csAddition['cs_id'] = $cs_id;
- }
- $this->CsAdditionalInfo->saveAll($csAddition);
- }
- endforeach;
- }
- $thisComplain = $this->Complain->findById($this->request->data['Complain']['id']);
- $thisComplain['Complain']['cs_bottom_category_id'] = $this->request->data['Cs']['bottom_category_id'];
- if($this->request->data['Complain']['status'] == 2){
- $thisComplain['Complain']['status'] = $complain['status'];
- $thisComplain['Complain']['engineer_id'] = $this->request->data['Complain']['engineer_id'];
- }
- $this->Complain->save($thisComplain);
- $this->redirect('/complains/view/'.$media.'/'.$media_id.'/'.$complain_id);
- }
- }
- }
- public function ajaxMod($complain_id){
- $this->loadModel('Compain');
- $this->loadModel('Cs');
- $this->loadModel('CsMaterial');
- $this->loadModel('CsAdditionalInfo');
- if($this->request->is('post')){
- $deleted_materials = $this->request->data['deleted_material_id'];
- $deleted_additions = $this->request->data['deleted_addition_id'];
- if($deleted_materials){
- $materials = split(',', $deleted_materials);
- for($i = 0; $i < count($materials) - 1; $i++){
- $this->CsMaterial->delete($materials[$i]);
- }
- }
- if($deleted_additions){
- $additions = split(',', $deleted_additions);
- for($i = 0; $i < count($additions) - 1; $i++){
- $this->CsAdditionalInfo->delete($additions[$i]);
- }
- }
- $cs = $this->request->data['Cs'];
- $thisCs = $this->Cs->findById($cs['id']);
- $thisCs['Cs']['comment'] = parent::eucconv($cs['comment']);
- $thisCs['Cs']['oil'] = $cs['oil'];
- $thisCs['Cs']['time'] = $cs['time'];
- $thisCs['Cs']['bottom_category_id'] = $cs['bottom_category_id'];
- if($cs['bottom_category_id'] == "default"){
- $thisCs['Cs']['bottom_category_id'] = 1;
- }
- if($this->Cs->save($thisCs)){
- if(!parent::array_empty($this->request->data['CsMaterial'])){
- foreach( $this->request->data['CsMaterial'] as $csMaterial):
- if(!parent::array_empty($csMaterial)){
- $csMaterial['cs_id'] = $cs['id'];
- $this->CsMaterial->saveAll($csMaterial);
- }
- endforeach;
- }
- if(!parent::array_empty($this->request->data['CsAdditionalInfo'])){
- foreach( $this->request->data['CsAdditionalInfo'] as $csAddition):
- if(!parent::array_empty($csAddition)){
- $csAddition['cs_id'] = $cs['id'];
- $csAddition['name'] = parent::eucconv($csAddition['name']);
- $this->CsAdditionalInfo->saveAll($csAddition);
- }
- endforeach;
- }
- $complain = $this->request->data['Complain'];
- if($this->request->data['Cs']['bottom_category_id'] == 'default'){
- $this->request->data['Cs']['bottom_category_id'] = 1;
- }
- $thisComplain = $this->Complain->findById($complain_id);
- if($complain['status'] == 2){
- $thisComplain['Complain']['engineer_id'] = $complain['0']['engineer_id'];
- }
- else if($complain['status'] == 3){
- $thisComplain['Complain']['end_date'] = date('Y-m-d H:i', strtotime('now'));
- }
- $thisComplain['Complain']['status'] = $complain['status'];
- $thisComplain['Complain']['cs_bottom_category_id'] = $thisCs['Cs']['bottom_category_id'];
- $this->Complain->save($thisComplain);
- echo 'good';
- }
- else{
- echo 'bad';
- }
- }
- $this->render('/works/ajaxMod', 'ajax');
- }
- public function ajaxAdd($complain_id){
- $this->loadModel('Compain');
- $this->loadModel('Cs');
- $this->loadModel('CsMaterial');
- $this->loadModel('CsAdditionalInfo');
- if($this->request->is('post')){
- foreach($this->request->data['Complain'] as $complain){
- $thisComplain = $this->Complain->findById($complain_id);
- $thisComplain['Complain']['status'] = $complain['status'];
- if($this->request->data['Cs']['0']['bottom_category_id'] == 'default'){
- $this->request->data['Cs']['0']['bottom_category_id'] = 1;
- }
- $thisComplain['Complain']['cs_bottom_category_id'] = $this->request->data['Cs']['0']['bottom_category_id'];
- if($complain['status'] == 2){
- $thisComplain['Complain']['engineer_id'] = $complain['engineer_id'];
- }
- else if($complain['status'] == 3){
- $thisComplain['Complain']['end_date'] = date('Y-m-d H:i', strtotime('now'));
- }
- $this->Complain->save($thisComplain);
- }
- foreach( $this->request->data['Cs'] as $cs) :
- $cs['comment'] = parent::eucconv($cs['comment']);
- if($cs['bottom_category_id'] == "default"){
- $cs['bottom_category_id'] = 1;
- }
- if($this->Cs->save($cs)){
- if(!parent::array_empty($this->request->data['CsMaterial'])){
- foreach( $this->request->data['CsMaterial'] as $csMaterial):
- if(!parent::array_empty($csMaterial)){
- $csMaterial['cs_id'] = $this->Cs->getLastInsertId();
- $this->CsMaterial->saveAll($csMaterial);
- }
- endforeach;
- }
- if(!parent::array_empty($this->request->data['CsAdditionalInfo'])){
- foreach( $this->request->data['CsAdditionalInfo'] as $csAddition):
- if(!parent::array_empty($csAddition)){
- $csAddition['cs_id'] = $this->Cs->getLastInsertId();
- $csAddition['name'] = parent::eucconv($csAddition['name']);
- $this->CsAdditionalInfo->saveAll($csAddition);
- }
- endforeach;
- }
- echo 'good';
- }
- else{
- echo 'bad';
- }
- endforeach;
- }
- $this->render('/works/ajaxAdd', 'ajax');
- }
- public function delete($cs_id ){
- $this->loadModel('Complain');
- $this->loadModel('Cs');
- $this->loadModel('Life');
- $this->loadModel('Board');
- $cs = $this->Cs->findById($cs_id);
- $complain = $this->Complain->findById($cs['Cs']['complain_id']);
- if(!parent::array_empty($complain['Life'])){
- $boardlife = $this->Life->findById($complain['Complain']['life_id']);
- $boardlife['style'] = 'life';
- $boardlife_id = $boardlife['Life']['id'];
- }
- else if(!parent::array_empty($complain['Board'])){
- $boardlife = $this->Board->findById($complain['Complain']['board_id']);
- $boardlife['style'] = 'board';
- $boardlife_id = $boardlife['Board']['id'];
- }
- $this->Cs->id = $cs['Cs']['id'];
- if($this->Cs->delete()){
- $this->redirect('/complains/view/'.$boardlife['style'].'/'.$boardlife_id.'/'.$complain['Complain']['id']);
- }
- }
- public function ajaxAdd2(){
- $this->loadModel('Complain');
- $this->loadModel('Cs');
- $this->loadModel('CsMaterial');
- $this->loadModel('CsAdditionalInfo');
- if($this->request->is('post')){
- foreach( $this->request->data['Complain'] as $complain):
- if($complain['media'] == 'board'){
- $complain['board_id'] = $complain['device_id'];
- }
- else if($complain['media'] == 'life'){
- $complain['life_id'] = $complain['device_id'];
- }
- $complain['title'] = parent::eucconv($complain['title']);
- $complain['name'] = parent::eucconv($complain['name']);
- $complain['comment'] = parent::eucconv($complain['comment']);
- $complain['bottom_category_id'] = 1;
- if($complain['status'] == 3)
- $complain['end_date'] = date('Y-m-d H:i:s');
- if($this->Complain->save($complain)){
- foreach($this->request->data['Cs'] as $cs):
- if($cs['bottom_category_id'] == 'default'){
- $cs['bottom_category_id'] = 1;
- }
- $cs['complain_id'] = $this->Complain->getLastInsertId();
- $cs['user_info_id'] = $complain['engineer_id'];
- $cs['created'] = $complain['reg_date'];
- $cs['comment'] = $complain['comment'];
- $nComplain = $this->Complain->findById($this->Complain->getLastInsertId());
- $nComplain['Complain']['cs_bottom_category_id'] = $cs['bottom_category_id'];
- $this->Complain->save($nComplain);
- if($this->Cs->save($cs)){
- if(!parent::array_empty($this->request->data['CsMaterial'])){
- foreach( $this->request->data['CsMaterial'] as $csMaterial):
- $csMaterial['cs_id'] = $this->Cs->getLastInsertId();
- $this->CsMaterial->saveAll($csMaterial);
- endforeach;
- }
- if(!parent::array_empty($this->request->data['CsAdditionalInfo'])){
- foreach( $this->request->data['CsAdditionalInfo'] as $csAddition):
- $csAddition['cs_id'] = $this->Cs->getLastInsertId();
- $csAddition['name'] = parent::eucconv($csAddition['name']);
- $this->CsAdditionalInfo->saveAll($csAddition);
- endforeach;
- }
- echo 'good';
- }
- else{
- echo 'bad';
- }
- endforeach;
- }
- endforeach;
- }
- $this->render('/works/ajaxAdd2', 'ajax');
- }
- public function removeMaterial(){
- $this->loadModel('CsMaterial');
- if($this->request->is('post')){
- foreach($this->request->data['CsMaterial'] as $csMaterial):
- $this->CsMaterial->id = $csMaterial['id'];
- if($this->CsMaterial->delete()){
- echo 'good';
- }
- else{
- echo 'bad';
- }
- endforeach;
- }
- $this->render('/works/removeMaterial', 'ajax');
- }
- public function removeAddition(){
- $this->loadModel('CsAdditionalInfo');
- if($this->request->is('post')){
- foreach($this->request->data['CsAdditionalInfo'] as $csAddition):
- $this->CsAdditionalInfo->id = $csAddition['id'];
- if($this->CsAdditionalInfo->delete()){
- echo 'good';
- }
- else{
- echo 'bad';
- }
- endforeach;
- }
- $this->render('/works/removeAddition', 'ajax');
- }
- public function excelOut(){
- $this->loadModel('Complex');
- $this->loadModel('Board');
- $this->loadModel('BottomCategory');
- $this->loadModel('CsBottomCategory');
- $this->loadModel('EngineerInfo');
- $this->loadModel('ReceiverInfo');
- $this->loadModel('Life');
- $this->loadModel('UserInfo');
- $currentTime = date("Y-m-d H:i:s");
- date_default_timezone_set('Asia/Seoul');
-
- $users = $this->UserInfo->find('list', array('fields'=> array('UserInfo.name')));
- $conditions = array();
- $conditions['not'] = array('Complain.status' => 0);
- if($this->request->query){
- $data = $this->request->query['data'];
- $type = $data['Search']['type'];
- $input = $data['Search']['keyword'];
- if($type == "name"){
- $complex = array_keys($this->Complex->find('list', array('conditions' => array('Complex.name LIKE' => "%$input%"))));
- $conditions = array('or'=> array('Board.complex_id' => $complex,
- 'Life.complex_id' => $complex));
- }
- else if($type == "serial" || $type == "mac") {
- $conditions = array("or" => array("Board.$type LIKE" => "%$input%",
- "Life.$type LIKE" => "%$input%"));
- }
- else if($type == "engineer") {
- $userinfo = array_keys($this->UserInfo->find('list', array('conditions' => array('UserInfo.name LIKE' => "%$input%"))));
- $conditions = array("Complain.engineer_id" => $userinfo);
- }
- else {
- $conditions = array("Complain.$type LIKE" => "%$input%");
- }
- if(!isset($data['Filter'])){
- $data['Filter'] = array('midcategory' => 'default', 'topcategory' => 'default', 'status' => 'default', 'method' => 'default', 'region_name' => 'default', 'media' => 'default');
- }
- foreach ( array_keys($data['Filter']) as $key) {
- if($data['Filter'][$key] != "default"){
- // need a special process for foreignKeys
- if($key == 'method'){
- $conditions['or'] = array('Board.method' => $data['Filter'][$key],
- 'Life.method' => $data['Filter'][$key]);
- }
- else if($key == 'region_name'){
- $ids = array_keys($this->Complex->find('list', array('conditions'=>array('region_name'=>$data['Filter']['region_name']))));
- $conditions['or']['Board.complex_id'] = $ids;
- $conditions['or']['Life.complex_id'] = $ids;
- }
- else if($key == 'topcategory' || $key == 'midcategory'){
- $tmp_cond = null;
- if($data['Filter']['topcategory'] != 'default' and $data['Filter']['midcategory'] != 'default'){
- $top_ids = array_keys($this->BottomCategory->TopCategory->find('list', array('conditions' => array('category' => $data['Filter']['topcategory']))));
- $mid_ids = array_keys($this->BottomCategory->MidCategory->find('list', array('conditions' => array('category' => $data['Filter']['midcategory']))));
- $tmp_cond = array('top_category_id' => $top_ids,
- 'mid_category_id' => $mid_ids);
- }
- else if($data['Filter']['topcategory'] != 'default'){
- $top_ids = array_keys($this->BottomCategory->TopCategory->find('list', array('conditions' => array('category' => $data['Filter']['topcategory']))));
- $tmp_cond = array('top_category_id' => $top_ids);
- }
- else if($data['Filter']['midcategory'] != 'default'){
- $mid_ids = array_keys($this->BottomCategory->MidCategory->find('list', array('conditions' => array('category' => $data['Filter']['midcategory']))));
- $tmp_cond = array('mid_category_id' => $mid_ids);
- }
- $bottoms = array_keys($this->BottomCategory->find('list', array('conditions'=>$tmp_cond)));
- $conditions['Complain.cs_bottom_category_id'] = $bottoms;
- }
- else if($key == 'media'){
- if($data['Filter']['media'] == '보드'){
- $conditions['Complain.board_id <>'] = NULL;
- }
- else if ($data['Filter']['media'] == '라이프'){
- $conditions['Complain.life_id <>'] = NULL;
- }
- }
- else if($key == 'status'){
- if($data['Filter']['status'] == '0'){
- $conditions['Complain.status'] = 0;
- }
- else if ($data['Filter']['status'] == '1'){
- $conditions['Complain.status'] = 1;
- }
- else if ($data['Filter']['status'] == '2'){
- $conditions['Complain.status'] = 2;
- }
- else if ($data['Filter']['status'] == '3'){
- $conditions['Complain.status'] = 3;
- }
- }
- else if($key == 'start_date'){
- if($data['Filter'][$key]){
- $date = date('Y-m-d', strtotime($data['Filter'][$key]));
- $conditions['Complain.end_date >='] = $date;
- }
- }
- else if($key == 'end_date'){
- if($data['Filter'][$key]){
- $date = date('Y-m-d', strtotime($data['Filter'][$key]) + 86400);
- $conditions['Complain.end_date <='] = $date;
- }
- }
- }
- }
- // 검색 혹은 필터 내용 있으면 검색 처리
- }
- $conditions['not'] = array('Complain.status' => 0);
- ///////////////////////////////
- $this->Complain->unbindModel(array('hasMany' => array('Cs'), 'belongsTo' => array('BottomCategory')));
- $this->Board->unbindModel(array('hasMany' => array('Complain')));
- $this->Life->unbindModel(array('hasMany' => array('Complain')));
- $this->EngineerInfo->unbindModel(array('hasOne' => array('User'), 'hasMany' => array('Complex', 'Complain')));
- $this->ReceiverInfo->unbindModel(array('hasOne' => array('User'), 'hasMany' => array('Complex', 'Complain')));
- $complainInfos = $this->Complain->find('all', array('recursive' => 2,'conditions' => $conditions));
- error_reporting(E_ALL);
- date_default_timezone_set('Europe/London');
- /** PHPExcel */
- require_once './Classes/PHPExcel.php';
- // Create new PHPExcel object
- $objPHPExcel = new PHPExcel();
- // Set properties
- $objPHPExcel->getProperties()->setCreator("CRM System")
- ->setLastModifiedBy("CRM System")
- ->setTitle("CRM System Complain report")
- ->setSubject("CRM System Complain report")
- ->setDescription("CRM System Complain report on {$currentTime}")
- ->setKeywords("Complain")
- ->setCategory("Complain result");
-
- // Add header
- $objPHPExcel->setActiveSheetIndex(0)
- ->setCellValue('A1', parent::utf8conv('등록일자'))
- ->setCellValue('B1', parent::utf8conv('대분류'))
- ->setCellValue('C1', parent::utf8conv('중분류'))
- ->setCellValue('D1', parent::utf8conv('소분류'))
- ->setCellValue('E1', parent::utf8conv('서버정보'))
- ->setCellValue('F1', parent::utf8conv('통신방식'))
- ->setCellValue('G1', parent::utf8conv('주소'))
- ->setCellValue('H1', parent::utf8conv('단지명'))
- ->setCellValue('I1', parent::utf8conv('위치정보'))
- ->setCellValue('J1', parent::utf8conv('매체'))
- ->setCellValue('K1', parent::utf8conv('시리얼'))
- ->setCellValue('L1', parent::utf8conv('제목'))
- ->setCellValue('M1', parent::utf8conv('내용'))
- ->setCellValue('N1', parent::utf8conv('요청자'))
- ->setCellValue('O1', parent::utf8conv('요청자 연락처'))
- ->setCellValue('P1', parent::utf8conv('접수자'))
- ->setCellValue('Q1', parent::utf8conv('처리자'))
- ->setCellValue('R1', parent::utf8conv('처리일자'));
- // Add some data
- $index = 2;
- foreach($complainInfos as $complainInfo){
- $objPHPExcel->setActiveSheetIndex(0)
- ->setCellValue("A{$index}", parent::utf8conv($complainInfo['Complain']['reg_date']))
- ->setCellValue("B{$index}", parent::utf8conv($complainInfo['CsBottomCategory']['TopCategory']['category']))
- ->setCellValue("C{$index}", parent::utf8conv($complainInfo['CsBottomCategory']['MidCategory']['category']))
- ->setCellValue("D{$index}", parent::utf8conv($complainInfo['CsBottomCategory']['category']));
-
- $serverInfo = NULL;
- $method = NULL;
- $addr = NULL;
- $complex_name = NULL;
- $location = NULL;
- $media = NULL;
- $serial = NULL;
- if(!parent::array_empty($complainInfo['Board'])){
- $serverInfo = $complainInfo['Board']['server_name'];
- $method = $complainInfo['Board']['method'];
- $addr = $complainInfo['Board']['Complex']['first_addr'].' '.$complainInfo['Board']['Complex']['mid_addr'].' '.$complainInfo['Board']['Complex']['last_addr'].' '.$complainInfo['Board']['Complex']['addr'];
- $complex_name = $complainInfo['Board']['Complex']['name'];
- $location = $complainInfo['Board']['location'];
- $media = '보드';
- $serial = $complainInfo['Board']['serial'];
- }
- else if(!parent::array_empty($complainInfo['Life'])){
- $serverInfo = $complainInfo['Life']['aed_name'];
- $method = $complainInfo['Life']['method'];
- $addr = $complainInfo['Life']['Complex']['first_addr'].' '.$complainInfo['Life']['Complex']['mid_addr'].' '.$complainInfo['Life']['Complex']['last_addr'].' '.$complainInfo['Life']['Complex']['addr'];
- $complex_name = $complainInfo['Life']['Complex']['name'];
- $location = $complainInfo['Life']['location'];
- $media = '라이프';
- $serial = $complainInfo['Life']['serial'];
- }
-
- $objPHPExcel->setActiveSheetIndex(0)
- ->setCellValue("E{$index}", parent::utf8conv($serverInfo))
- ->setCellValue("F{$index}", parent::utf8conv($method))
- ->setCellValue("G{$index}", parent::utf8conv($addr))
- ->setCellValue("H{$index}", parent::utf8conv($complex_name))
- ->setCellValue("I{$index}", parent::utf8conv($location))
- ->setCellValue("J{$index}", parent::utf8conv($media))
- ->setCellValue("K{$index}", parent::utf8conv($serial))
- ->setCellValue("L{$index}", parent::utf8conv($complainInfo['Complain']['title']))
- ->setCellValue("M{$index}", parent::utf8conv($complainInfo['Complain']['comment']))
- ->setCellValue("N{$index}", parent::utf8conv($complainInfo['Complain']['name']))
- ->setCellValue("O{$index}", parent::utf8conv($complainInfo['Complain']['phone']))
- ->setCellValue("P{$index}", parent::utf8conv($users[$complainInfo['Complain']['receiver_id']]))
- ->setCellValue("Q{$index}", parent::utf8conv($users[$complainInfo['Complain']['engineer_id']]))
- ->setCellValue("R{$index}", parent::utf8conv($complainInfo['Complain']['end_date']));
- $index++;
- }
- // Rename sheet
- $objPHPExcel->getActiveSheet()->setTitle(parent::utf8conv('처리정보'));
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
- $objPHPExcel->setActiveSheetIndex(0);
- // Redirect output to a client’s web browser (Excel2007)
- header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
- header('Content-Disposition: attachment;filename="처리정보'.$currentTime.'.xlsx"');
- header('Cache-Control: max-age=0');
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
- $objWriter->save('php://output');
- exit;
- }
- }
- ?>