<?php /** * Created by PhpStorm. * User: Administrator * Date: 25/12/2015 * Time: 2:13 CH */ class CmsSetting extends CI_Controller { public function __construct() { parent::__construct(); date_default_timezone_set("Asia/Ho_Chi_Minh"); // $this->load->model('group_model'); $this->load->model('accesscontroller_model'); $this->load->model('accessaction_model'); $this->load->model('admin_model'); $this->load->model('groupaccesscontroller_model'); $this->load->model('adminaccessaction_model'); $this->load->model('actionlog_model'); $this->load->model('userlog_model'); // } //================================================================================================================== public function listAccessController() { /*// Cấu hình cho phân trang $config['total_rows'] = $this->maccesscontroller->countAll(); $config['base_url'] = base_url()."listAccessController"; $config['per_page'] = 10; $config['num_links'] = 2; $config['uri_segment'] = 3; $config['first_link'] = 'Trang đầu'; $config['last_link'] = 'Trang cuối'; $config['next_link'] = '>'; $config['prev_link'] = '<'; $this->load->library('pagination', $config); $start = $this->uri->segment(3); $this->_data['listAccessControllers'] = $this->maccesscontroller->getPagination($config['per_page'], $start); // Gửi DL sang view $this->_data['total_rows'] = $config['total_rows']; $this->_data['start'] = $start;*/ $this->_data['functionName'] = 'Danh sách chứng năng'; $this->_data['action'] = 'listAccessController'; $this->_data['titlePage'] = 'Danh sách chứng năng'; $this->_data['loadPage'] = 'backend/cms_setting/access_controller/access_controller_view'; $this->load->view('backend/admin_template_view', $this->_data); } public function listAccessControllerAjax() { $this->load->model('accesscontroller_model'); // $data = array(); $filterByName = $this->input->post('filterByName'); $pageId = $this->input->post('pageId'); // $pageId = ($pageId == 0) ? 1 : $pageId; // $limit = 20; $offset = ($pageId - 1)*$limit; $data['offset'] = ($pageId - 1)*$limit; $totalRecord = $this->accesscontroller_model->countAll($filterByName); $data['pagination'] = MyHelper::genPaginationLink($totalRecord, $limit, $pageId); $data['listData'] = $this->accesscontroller_model->getPagination($limit, $offset, $filterByName); // $this->load->view('backend/ajax/cms_setting/access_controller_view', $data); } //================================================================================================================== public function addAccessController() { // Thiết lập validate $this->form_validation->set_rules( "name", "Tên controller", "trim|required|xss_clean|min_length[3]|is_unique[access_controller.name]|callback_check_access_controller_name" ); $this->form_validation->set_rules( 'description', 'Mô tả controller', 'trim|required|xss_clean|min_length[3]|is_unique[access_controller.description]|callback_check_access_controller_description' ); $this->form_validation->set_message('required', '<li>Bắt buộc nhập, chọn.</li>'); $this->form_validation->set_message('is_unique', '<li>Đã tồn tại.</li>'); $this->form_validation->set_message('min_length', '<li>Tối thiểu 3 ký tự.</li>'); // Xử lý form đăng nhập if($this->form_validation->run($this) == false){ $this->_data['name'] = $this->input->post('name'); $this->_data['description'] = $this->input->post('description'); $this->_data['is_active'] = $this->input->post('is_active'); // $this->_data['functionName'] = 'Thêm mới chức năng'; $this->_data['action'] = 'addAccessController'; $this->_data['titlePage'] = 'Thêm mới chức năng'; $this->_data['loadPage'] = 'backend/cms_setting/access_controller/add_access_controller_view.php'; $this->load->view('backend/admin_template_view', $this->_data); }else{ $dataInsert = array( 'name' => trim($this->input->post('name')), 'description' => trim($this->input->post('description')), 'is_active' => ($this->input->post('is_active') == 'on') ? 1 : 0, 'created_at'=> date("Y-m-d H:i:s"), 'updated_at'=> date("Y-m-d H:i:s") ); $insert_id = $this->accesscontroller_model->add($dataInsert); $this->session->set_flashdata('success', 'Thêm mới thành công controller: '.$this->input->post('name').'.'); // Ghi log $this->actionlog_model->add('ADDED', 'Thêm mới access controller', 'accesscontroller_model', 'access_controller', ($insert_id)?$insert_id:''); // redirect(base_url().'backend/cmsSetting/listAccessController'); } } //================================================================================================================== public function editAccessController($id){ $this->_data['accessControllerById'] = $this->accesscontroller_model->getById($id); // Kiểm tra trùng giá trị nếu thay đổi ở form $original_name = $this->_data['accessControllerById'][0]['name']; if(strtolower(trim($this->input->post('name'))) != strtolower($original_name)) { $is_unique_name = '|is_unique[access_controller.name]'; } else { $is_unique_name = ''; } $original_description = $this->_data['accessControllerById'][0]['description']; if(strtolower(trim($this->input->post('description'))) != strtolower($original_description)) { $is_unique_description = '|is_unique[access_controller.description]'; } else { $is_unique_description = ''; } // Thiết lập validate $this->form_validation->set_rules( 'name', 'Tên controller', 'trim|required|xss_clean|min_length[3]|callback_check_access_controller_name'.$is_unique_name ); $this->form_validation->set_rules( 'description', 'Mô tả controller', 'trim|required|xss_clean|min_length[3]|callback_check_access_controller_description'.$is_unique_description ); $this->form_validation->set_message('required', '<li>Bắt buộc nhập, chọn.</li>'); $this->form_validation->set_message('is_unique', '<li>Đã tồn tại.</li>'); $this->form_validation->set_message('min_length', '<li>Tối thiểu 3 ký tự.</li>'); // Xử lý form đăng nhập if($this->form_validation->run($this) == false){ $this->_data['name'] = $this->input->post('name'); $this->_data['description'] = $this->input->post('description'); $this->_data['is_active'] = ($this->input->post('is_active') == 'on') ? 1 : 0; // $this->_data['functionName'] = 'Cập nhật chức năng'; $this->_data['action'] = 'editAccessController'; $this->_data['titlePage'] = 'Cập nhật chức năng'; $this->_data['loadPage'] = 'backend/cms_setting/access_controller/edit_access_controller_view.php'; $this->load->view('backend/admin_template_view', $this->_data); }else{ $dataUpdate = array( 'name' => trim($this->input->post('name')), 'description' => trim($this->input->post('description')), 'is_active' => ($this->input->post('is_active') == 'on') ? 1 : 0, 'updated_at'=> date("Y-m-d H:i:s") ); $this->accesscontroller_model->update($id, $dataUpdate); $this->session->set_flashdata('success', 'Cập nhật thành công controller: '.$this->input->post('name').'.'); // Ghi log $this->actionlog_model->add('UPDATED', 'Cập nhật access controller', 'accesscontroller_model', 'access_controller', $id); // redirect(base_url().'backend/cmsSetting/listAccessController'); } } //================================================================================================================== public function deleteAccessController($id){ /*if($this->accesscontroller_model->delete($id)){ $this->session->set_flashdata('success', 'Xóa thành công controller: .'); }else{ $this->session->set_flashdata('error', 'Xóa không thành công controller: .'); }*/ $this->session->set_flashdata('error', 'Bạn không có quyền xóa controller có ID= '.$id.'.'); redirect(base_url().'backend/cmsSetting/listAccessController'); } // Callback kiểm tra tên controller public function check_access_controller_name($name){ $pattern = '/^[a-zA-Z]{1}[a-zA-Z0-9_:]+$/'; if (!preg_match($pattern, $name)){ $this->form_validation->set_message('check_access_controller_name', '<li>Tên không hợp lệ: a-zA-Z0-9_ </li>'); return FALSE; }else{ return TRUE; } } // Callback kiểm tra mô tả controller public function check_access_controller_description($description){ $pattern = '/^[a-zA-Z0-9_ ]+$/'; $description = MyHelper::unsigned($description); if (!preg_match($pattern, $description)){ $this->form_validation->set_message('check_access_controller_description', '<li>Tên không hợp lệ: a-zA-Z0-9_ </li>'); return FALSE; }else{ return TRUE; } } //================================================================================================================== public function listAccessAction(){ /*$this->_data['controllerList'] = $this->accesscontroller_model->getListFoxSelectBox('-- Chọn tất cả controller --'); $controller_id = $this->input->post('controller_id'); if(!$this->session->userdata('controller_id')){ if($controller_id > 0){ $this->session->set_userdata('controller_id', $controller_id); } }else{ if($controller_id > 0){ $this->session->unset_userdata('controller_id'); $this->session->set_userdata('controller_id', $controller_id); }elseif($controller_id == ''){ $this->session->unset_userdata('controller_id'); } } // Cấu hình cho phân trang $totalResults = $this->maccessaction->countAll(); $config['total_rows'] = $totalResults[0]['totalResults']; $config['base_url'] = base_url()."backend/cmsSetting/listAccessAction"; $config['per_page'] = 10; $config['num_links'] = 2; $config['uri_segment'] = 3; $config['first_link'] = 'Trang đầu'; $config['last_link'] = 'Trang cuối'; $config['next_link'] = '>'; $config['prev_link'] = '<'; $this->load->library('pagination', $config); $start = $this->uri->segment(3); $this->_data['listAccessActions'] = $this->maccessaction->getPagination($config['per_page'], $start); $this->_data['controller_id'] = $this->session->userdata('controller_id') ? $this->session->userdata('controller_id') : $controller_id; // Gửi DL sang view $this->_data['total_rows'] = $config['total_rows']; $this->_data['start'] = $start;*/ $this->_data['functionName'] = 'Danh sách xử lý'; $this->_data['action'] = 'listAccessAction'; $this->_data['titlePage'] = 'Danh sách xử lý'; $this->_data['loadPage'] = 'backend/cms_setting/access_action/access_action_view'; $this->load->view('backend/admin_template_view', $this->_data); } public function listAccessActionAjax(){ $this->load->model('accessaction_model'); // $data = array(); $filterByName = $this->input->post('filterByName'); $pageId = $this->input->post('pageId'); // $pageId = ($pageId == 0) ? 1 : $pageId; // $limit = 20; $offset = ($pageId - 1)*$limit; $data['offset'] = ($pageId - 1)*$limit; $totalRecord = $this->maccessaction->countAll($filterByName); $data['pagination'] = MyHelper::genPaginationLink($totalRecord, $limit, $pageId); $data['listData'] = $this->maccessaction->getPagination($limit, $offset, $filterByName); // $this->load->view('backend/ajax/cms_setting/access_action_view', $data); } //================================================================================================================== public function addAccessAction(){ // Thiết lập validate $this->form_validation->set_rules( 'controller_id', 'Tên controller', 'trim|required|xss_clean|callback_check_access_action_controller_id' ); $this->form_validation->set_rules( 'name', 'Tên action', 'trim|required|xss_clean|min_length[3]|callback_check_access_action_name' ); $this->form_validation->set_rules( 'description', 'Mô tả action', 'trim|required|xss_clean|min_length[3]|callback_check_access_action_description' ); $this->form_validation->set_message('required', '<li>Bạn chưa nhập, chọn.</li>'); $this->form_validation->set_message('is_unique', '<li>Đã tồn tại.</li>'); $this->form_validation->set_message('min_length', '<li>Tối thiểu 3 ký tự.</li>'); //$this->form_validation->set_rules($config); // Xử lý form đăng nhập if($this->form_validation->run($this) == false){ $this->_data['controller_id'] = $this->input->post('controller_id'); $this->_data['name'] = $this->input->post('name'); $this->_data['description'] = $this->input->post('description'); $this->_data['is_active'] = $this->input->post('is_active'); // $this->_data['controllerList'] = $this->accesscontroller_model->getListFoxSelectBox('-- Chọn --'); $this->_data['functionName'] = 'Thêm mới xử lý'; $this->_data['action'] = 'addAccessAction'; $this->_data['titlePage'] = 'Thêm mới xử lý'; $this->_data['loadPage'] = 'backend/cms_setting/access_action/add_access_action_view.php'; $this->load->view('backend/admin_template_view', $this->_data); }else{ $dataInsert = array( 'controller_id' => trim($this->input->post('controller_id')), 'name' => trim($this->input->post('name')), 'description' => trim($this->input->post('description')), 'is_active' => ($this->input->post('is_active') == 'on') ? 1 : 0, 'created_at'=> date("Y-m-d H:i:s"), 'updated_at'=> date("Y-m-d H:i:s") ); $insert_id = $this->maccessaction->add($dataInsert); $this->session->set_flashdata('success', 'Thêm mới thành công action: '.$this->input->post('name').'.'); // Ghi log $this->actionlog_model->add('ADDED', 'Thêm mới access action', 'maccessaction', 'access_action', ($insert_id)?$insert_id:''); // redirect(base_url().'backend/cmsSetting/listAccessAction'); } } //================================================================================================================== public function editAccessAction($id){ $this->_data['accessActionById'] = $this->maccessaction->getById($id); $this->_data['controllerList'] = $this->accesscontroller_model->getListFoxSelectBox('-- Chọn --'); // Kiểm tra trùng giá trị nếu thay đổi ở form $original_name = $this->_data['accessActionById'][0]['name']; if(strtolower(trim($this->input->post('name'))) != strtolower($original_name)) { $callback_check_name = '|callback_check_access_action_name'; } else { $callback_check_name = ''; } $original_description = $this->_data['accessActionById'][0]['description']; if(strtolower(trim($this->input->post('description'))) != strtolower($original_description)) { $is_unique_description = '|is_unique[access_action.description]'; } else { $is_unique_description = ''; } // Thiết lập validate $this->form_validation->set_rules( 'controller_id', 'Tên controller', 'trim|required|xss_clean|callback_check_access_action_controller_id' ); $this->form_validation->set_rules( 'name', 'Tên action', 'trim|required|xss_clean|min_length[3]'.$callback_check_name ); $this->form_validation->set_rules( 'description', 'Mô tả action', 'trim|required|xss_clean|min_length[3]|callback_check_access_action_description'.$is_unique_description ); $this->form_validation->set_message('required', '<li>Bắt buộc nhập, chọn.</li>'); $this->form_validation->set_message('is_unique', '<li>Đã tồn tại.</li>'); $this->form_validation->set_message('min_length', '<li>Tối thiểu 3 ký tự.</li>'); // Xử lý form đăng nhập if($this->form_validation->run($this) == false){ $this->_data['name'] = $this->input->post('name'); $this->_data['controller_id_submit'] = $this->input->post('controller_id'); $this->_data['description'] = $this->input->post('description'); $this->_data['is_active'] = ($this->input->post('is_active') == 'on') ? 1 : 0; // $this->_data['functionName'] = 'Cập nhật xử lý'; $this->_data['action'] = 'editAccessAction'; $this->_data['titlePage'] = 'Cập nhật xử lý'; $this->_data['loadPage'] = 'backend/cms_setting/access_action/edit_access_action_view.php'; $this->load->view('backend/admin_template_view', $this->_data); }else{ $dataUpdate = array( 'name' => trim($this->input->post('name')), 'controller_id' => $this->input->post('controller_id'), 'description' => trim($this->input->post('description')), 'is_active' => ($this->input->post('is_active') == 'on') ? 1 : 0, 'updated_at'=> date("Y-m-d H:i:s") ); $this->maccessaction->update($id, $dataUpdate); $this->session->set_flashdata('success', 'Cập nhật thành công action: '.$this->input->post('name').'.'); // Ghi log $this->actionlog_model->add('UPDATED', 'Cập nhật access action', 'maccessaction', 'access_action', $id); // redirect(base_url().'backend/cmsSetting/listAccessAction'); } } //================================================================================================================== public function deleteAccessAction($id){ /*if($this->maccessaction->delete($id)){ $this->session->set_flashdata('success', 'Xóa thành công action: '.$this->input->post('name').'.'); }else{ $this->session->set_flashdata('error', 'Xóa không thành công action: '.$this->input->post('name').'.'); }*/ $this->session->set_flashdata('error', 'Bạn không có quyền xóa action có ID= '.$id.'.'); redirect(base_url().'backend/cmsSetting/listAccessAction'); } // Callback kiểm tra chọn kế thừa quyền truy cập public function check_access_action_controller_id($id){ if($id > 0){ $listController = $this->accesscontroller_model->getListFoxSelectBox(); if(!array_key_exists($id, $listController)){ $this->form_validation->set_message('check_access_action_controller_id', '<li>Chọn lại danh sách.</li>'); return FALSE; }else{ return TRUE; } }else{ return TRUE; } } // Callback kiểm tra tên action public function check_access_action_name($name){ $pattern = '/^[a-zA-Z]{1}[a-zA-Z0-9_]+$/'; if (!preg_match($pattern, $name)){ $this->form_validation->set_message('check_access_action_name', '<li>Tên không hợp lệ: a-zA-Z0-9_ </li>'); return FALSE; }else{ if($this->input->post('controller_id') > 0){ $controller_id = $this->input->post('controller_id'); $checkName = $this->maccessaction->getActionByControllerId($name, $controller_id); if($checkName){ $this->form_validation->set_message('check_access_action_name', '<li>Đã tồn tại trong controller này.</li>'); return FALSE; }else{ return TRUE; } }else{ return TRUE; } } } // Callback kiểm tra mô tả action public function check_access_action_description($name){ $pattern = '/^[a-zA-Z0-9_ ]+$/'; $name = MyHelper::unsigned($name); if (!preg_match($pattern, $name)){ $this->form_validation->set_message('check_access_action_description', '<li>Tên không hợp lệ: a-zA-Z0-9_ </li>'); return FALSE; }else{ return TRUE; } } //================================================================================================================== public function listGroup(){ // Cấu hình cho phân trang /*$config['total_rows'] = $this->group_model->countAll(); $config['base_url'] = base_url()."backend/cmsSetting/listGroup"; $config['per_page'] = 10; $config['num_links'] = 2; $config['uri_segment'] = 3; $config['first_link'] = 'Trang đầu'; $config['last_link'] = 'Trang cuối'; $config['next_link'] = '>'; $config['prev_link'] = '<'; $this->load->library('pagination', $config); $start = $this->uri->segment(3); $this->_data['listGroupUsers'] = $this->group_model->getPagination($config['per_page'], $start); // Gửi DL sang view $this->_data['total_rows'] = $config['total_rows']; $this->_data['start'] = $start;*/ $this->_data['functionName'] = 'Nhóm thành viên'; $this->_data['action'] = 'listGroup'; $this->_data['titlePage'] = 'Nhóm thành viên'; $this->_data['loadPage'] = 'backend/cms_setting//group/group_view'; $this->load->view('backend/admin_template_view', $this->_data); } public function listGroupAjax() { $this->load->model('group_model'); // $data = array(); $filterByName = $this->input->post('filterByName'); $pageId = $this->input->post('pageId'); // $pageId = ($pageId == 0) ? 1 : $pageId; // $limit = 20; $offset = ($pageId - 1)*$limit; $data['offset'] = ($pageId - 1)*$limit; $totalRecord = $this->group_model->countAll($filterByName); $data['pagination'] = MyHelper::genPaginationLink($totalRecord, $limit, $pageId); $data['listData'] = $this->group_model->getPagination($limit, $offset, $filterByName); // $this->load->view('backend/ajax/cms_setting/group_view', $data); } //================================================================================================================== public function addGroup(){ $this->_data['controllerList'] = $this->accesscontroller_model->getList(true); // Thiết lập validate $this->form_validation->set_rules( 'name', 'Tên controller', 'required|trim|min_length[3]|max_length[50]|xss_clean|is_unique[group.name]|callback_check_group_name' ); $this->form_validation->set_rules( 'description', 'Mô tả controller', 'required|trim|min_length[3]|max_length[50]|xss_clean|is_unique[group.description]' ); // Thiết lập message $this->form_validation->set_message('required', '<li>Bắt buộc nhập, chọn.</li>'); $this->form_validation->set_message('is_unique', '<li>Đã tồn tại.</li>'); $this->form_validation->set_message('min_length', '<li>Tối thiểu 3 ký tự.</li>'); $this->form_validation->set_message('max_length', '<li>Tối đa 50 ký tự.</li>'); // Xử lý form đăng nhập if($this->form_validation->run($this) == false){ $this->_data['name'] = $this->input->post('name'); $this->_data['description'] = $this->input->post('description'); $this->_data['is_super_group'] = $this->input->post('is_super_group'); $this->_data['is_active'] = $this->input->post('is_active'); $this->_data['group_access_controller'] = $this->input->post('group_access_controller'); // $this->_data['functionName'] = 'Nhóm thành viên'; $this->_data['action'] = 'addGroup'; $this->_data['titlePage'] = 'Nhóm thành viên'; $this->_data['loadPage'] = 'backend/cms_setting/group/add_group_view'; $this->load->view('backend/admin_template_view', $this->_data); }else{ // Insert Nhóm vào DB $dataInsert = array( 'name' => trim($this->input->post('name')), 'description' => trim($this->input->post('description')), 'is_active' => ($this->input->post('is_active') == 'on') ? 1 : 0, 'is_super_group' => ($this->input->post('is_super_group') == 'on') ? 1 : 0, 'created_at'=> date("Y-m-d H:i:s"), 'updated_at'=> date("Y-m-d H:i:s") ); $id_insert = $this->group_model->add($dataInsert); // Ghi log $this->actionlog_model->add('ADDED', 'Thêm mới nhóm người dùng', 'group_model', 'group', $id_insert); // // Insert quyền truy cập vào DB $group_access_controller = $this->input->post('group_access_controller'); if($id_insert > 0 && is_array($group_access_controller) && count($group_access_controller) > 0){ $dataGroupController = array(); foreach($group_access_controller as $val){ $dataGroupController[] = array( 'group_id' => $id_insert, 'access_controller_id' => $val ); } $this->mgroupaccesscontroller->addBatch($dataGroupController); // Ghi log $this->actionlog_model->add('ADDED', 'Gán quyền truy cập cho nhóm', 'mgroupaccesscontroller', 'group_access_controller', $id_insert); // } $this->session->set_flashdata('success', 'Thêm mới thành công nhóm: '.$this->input->post('name').'.'); redirect(base_url().'backend/cmsSetting/listGroup'); } } //================================================================================================================== public function editGroup($id){ $this->_data['group_access_controller'] = $this->mgroupaccesscontroller->getByGroupId($id); $this->_data['groupById'] = $this->group_model->getById($id); $this->_data['controllerList'] = $this->accesscontroller_model->getList(true); // Kiểm tra trùng giá trị nếu thay đổi ở form $original_name = $this->_data['groupById'][0]['name']; if($this->input->post('name') != $original_name) { $is_unique_name = '|is_unique[group.name]'; } else { $is_unique_name = ''; } $original_description = $this->_data['groupById'][0]['description']; if($this->input->post('description') != $original_description) { $is_unique_description = '|is_unique[group.description]'; } else { $is_unique_description = ''; } // Thiết lập validate $this->form_validation->set_rules( 'id', 'ID', 'callback_check_group_id' ); $this->form_validation->set_rules( 'name', 'Tên controller', 'trim|required|xss_clean|min_length[3]|max_length[50]|callback_check_group_name'.$is_unique_name ); $this->form_validation->set_rules( 'description', 'Mô tả controller', 'trim|required|xss_clean|min_length[3]|max_length[50]'.$is_unique_description ); $this->form_validation->set_message('required', '<li>Bắt buộc nhập, chọn.</li>'); $this->form_validation->set_message('is_unique', '<li>Đã tồn tại.</li>'); $this->form_validation->set_message('min_length', '<li>Tối thiểu 3 ký tự.</li>'); $this->form_validation->set_message('max_length', '<li>Tối đa 50 ký tự.</li>'); // Xử lý form đăng nhập if($this->form_validation->run($this) == false) { $this->_data['name'] = $this->input->post('name'); $this->_data['description'] = $this->input->post('description'); $this->_data['is_super_group'] = $this->input->post('is_super_group'); $this->_data['is_active'] = $this->input->post('is_active'); $this->_data['group_access_controller_submit'] = $this->input->post('group_access_controller'); $this->_data['functionName'] = 'Nhóm thành viên'; $this->_data['action'] = 'editGroup'; $this->_data['titlePage'] = 'Nhóm thành viên'; $this->_data['loadPage'] = 'backend/cms_setting/group/edit_group_view'; $this->load->view('backend/admin_template_view', $this->_data); }else{ $dataUpdate = array( 'name' => trim($this->input->post('name')), 'description' => trim($this->input->post('description')), 'is_active' => ($this->input->post('is_active') == 'on') ? 1 : 0, 'is_super_group' => ($this->input->post('is_super_group') == 'on') ? 1 : 0, 'updated_at'=> date("Y-m-d H:i:s") ); $this->group_model->update($id, $dataUpdate); // Ghi log $this->actionlog_model->add('UPDATED', 'Cập nhật nhóm người dùng', 'MGroup', 'group', $id); // // Insert quyền truy cập vào DB $group_access_controller = $this->_data['group_access_controller']; $group_access_controller_submit = $this->input->post('group_access_controller'); if(is_array($group_access_controller_submit) && is_array($group_access_controller)){ // Thêm mới quyền truy cập controller $dataInsert = array_diff($group_access_controller_submit, $group_access_controller); if(count($dataInsert) > 0){ $dataGroupController = array(); foreach($dataInsert as $val){ $dataGroupController[] = array( 'group_id' => $id, 'access_controller_id' => $val ); } $this->mgroupaccesscontroller->addBatch($dataGroupController); } // Xóa bớt quyền truy cập controller $dataDelete = array_diff($group_access_controller, $group_access_controller_submit); if(count($dataDelete) > 0){ foreach($dataDelete as $val){ $this->mgroupaccesscontroller->delete($id, $val); } } // Ghi log $this->actionlog_model->add('UPDATED', 'Cập nhật gán quyền truy cập cho nhóm', 'mgroupaccesscontroller', 'group_access_controller', $id); // }else{ if(count($group_access_controller) > 0 && !is_array($group_access_controller_submit)){ foreach($group_access_controller as $val){ $this->mgroupaccesscontroller->delete($id, $val); } // Ghi log $this->actionlog_model->add('UPDATED', 'Cập nhật gán quyền truy cập cho nhóm', 'mgroupaccesscontroller', 'group_access_controller', $id); // } } $this->session->set_flashdata('success', 'Cập nhật thành công nhóm: '.$this->input->post('name').'.'); redirect(base_url().'backend/cmsSetting/listGroup'); } } // Callback kiểm tra tên public function check_group_id($id){ $urlID = $this->uri->segment(4); if ($id != $urlID){ $this->form_validation->set_message('check_group_id', '<li>ID không hợp lệ.</li>'); return FALSE; }else{ return TRUE; } } public function check_group_name($name){ $name = strtolower($name); $pattern = '/^[a-zA-Z]{1}[a-zA-Z0-9_]+$/'; $pattern2 = '/.*(default).*/'; if (!preg_match($pattern, $name)){ $this->form_validation->set_message('check_group_name', '<li>Tên không hợp lệ: a-zA-Z0-9_ </li>'); return FALSE; }elseif(preg_match($pattern2, $name)){ $this->form_validation->set_message('check_group_name', '<li>Không được có từ: default.</li>'); return FALSE; }else{ return TRUE; } } //================================================================================================================== public function listUserAdmin(){ // Cấu hình cho phân trang $config['total_rows'] = $this->admin_model->countAll(); $config['base_url'] = base_url()."backend/cmsSetting/listUserAdmin"; $config['per_page'] = 8; $config['num_links'] = 2; $config['uri_segment'] = 3; $config['first_link'] = 'Trang đầu'; $config['last_link'] = 'Trang cuối'; $config['next_link'] = '>'; $config['prev_link'] = '<'; $this->load->library('pagination', $config); $start = $this->uri->segment(3); $this->_data['listUserAdmins'] = $this->admin_model->getPagination($config['per_page'], $start); // Gửi DL sang view $this->_data['total_rows'] = $config['total_rows']; $this->_data['start'] = $start; $this->_data['functionName'] = 'Quản trị viên'; $this->_data['action'] = 'listUserAdmin'; $this->_data['titlePage'] = 'Quản trị viên'; $this->_data['loadPage'] = 'backend/cms_setting/user_admin/user_admin_view'; $this->load->view('backend/admin_template_view', $this->_data); } public function listUserAdminAjax() { $this->load->model('admin_model'); // $data = array(); $filterByName = $this->input->post('filterByName'); $pageId = $this->input->post('pageId'); // $pageId = ($pageId == 0) ? 1 : $pageId; // $limit = 20; $offset = ($pageId - 1)*$limit; $data['offset'] = ($pageId - 1)*$limit; $totalRecord = $this->admin_model->countAll($filterByName); $data['pagination'] = MyHelper::genPaginationLink($totalRecord, $limit, $pageId); $data['listData'] = $this->admin_model->getPagination($limit, $offset, $filterByName); // $this->load->view('backend/ajax/cms_setting/admin_view', $data); } //================================================================================================================== public function addUserAdmin(){ $this->_data['groupList'] = $this->group_model->getListFoxSelectBox('-- Chọn --'); // Thiết lập validate $this->form_validation->set_rules("group_id", "Tên nhóm", "required|trim|xss_clean|callback_check_admin_group_id" ); $this->form_validation->set_rules('fullname', 'Họ và tên', 'required|trim|xss_clean|callback_check_admin_fullname' ); $this->form_validation->set_rules('username', 'Tên tài khoản', 'required|trim|min_length[8]|max_length[32]|xss_clean|is_unique[admin.username]|callback_check_admin_username' ); $this->form_validation->set_rules('password', 'Mật khẩu', 'required|trim|min_length[8]|max_length[32]|xss_clean' ); $this->form_validation->set_rules('password2', 'Nhập lại mật khẩu', 'required|trim|max_length[32]|xss_clean|matches[password]' ); $this->form_validation->set_rules('email', 'Email', 'required|trim|xss_clean|valid_email|is_unique[admin.email]' ); // Thiết lập message $this->form_validation->set_message('required', '<li>Bắt buộc nhập hoặc chọn.</li>'); $this->form_validation->set_message('is_unique', '<li>Đã tồn tại.</li>'); $this->form_validation->set_message('max_length', '<li>Tối đa 32 ký tự.</li>'); $this->form_validation->set_message('min_length', '<li>Tối thiểu 8 ký tự.</li>'); $this->form_validation->set_message('matches', '<li>Nhập lại mật khẩu không đúng.</li>'); $this->form_validation->set_message('valid_email', '<li>Email không hợp lệ.</li>'); // Xử lý form đăng nhập if($this->form_validation->run($this) == false){ $this->_data['group_id'] = $this->input->post('group_id'); $this->_data['fullname'] = $this->input->post('fullname'); $this->_data['username'] = $this->input->post('username'); $this->_data['password'] = $this->input->post('password'); $this->_data['password2'] = $this->input->post('password2'); $this->_data['email'] = $this->input->post('email'); $this->_data['is_active'] = $this->input->post('is_active'); // $this->_data['functionName'] = 'Người dùng hệ thống'; $this->_data['action'] = 'addUserAdmin'; $this->_data['titlePage'] = 'Người dùng hệ thống'; $this->_data['loadPage'] = 'backend/cms_setting/user_admin/add_user_admin_view'; $this->load->view('backend/admin_template_view', $this->_data); }else{ // Insert Nhóm vào DB $sms_code = ''; if(is_array($this->input->post('media_code_by_sms')) && count($this->input->post('media_code_by_sms')) > 0){ $sms_code = implode(',', $this->input->post('media_code_by_sms')); } $dataInsert = array( 'group_id' => ($this->input->post('group_id') > 0) ? $this->input->post('group_id'): 0, 'fullname' => trim($this->input->post('fullname')), 'username' => trim($this->input->post('username')), 'password' => MyHelper::genKeyCode(trim($this->input->post('password'))), 'email' => $this->input->post('email'), 'is_active' => ($this->input->post('is_active') == 'on') ? 1 : 0, 'created_at'=> date("Y-m-d H:i:s"), 'updated_at'=> date("Y-m-d H:i:s") ); $insert_id = $this->admin_model->add($dataInsert); $this->session->set_flashdata('success', 'Thêm mới thành công nhóm: '.$this->input->post('name').'.'); // Ghi log $this->actionlog_model->add('ADDED', 'Thêm mới người dùng hệ thống', 'AdminModel', 'admin', ($insert_id)?$insert_id:''); // redirect(base_url().'backend/cmsSetting/listUserAdmin'); } } //================================================================================================================== public function editUserAdmin($id){ $this->_data['groupList'] = $this->group_model->getListFoxSelectBox('-- Chọn --'); $adminById = $this->_data['adminById'] = $this->admin_model->getById($id); //$this->_data['sidList'] = $this->admin_model->getListSID(false); // Kiểm tra quyền sửa: nếu là dcv_super_admin thì chỉ người đó mới có quyền sửa if($adminById[0]['groupName'] == 'dcv_super_admin' && $this->session->userdata('id') != $id){ // Ghi log $this->actionlog_model->add('UPDATED', 'Cố ý cập nhật thông tin người khac', 'AdminModel', 'admin', $id); // $this->session->set_flashdata('error', 'Bạn không có quyền cập nhật thông tin của Super Admin khác.'); redirect(base_url().'backend/cmsSetting/listUserAdmin'); } // Kiểm tra trùng giá trị nếu thay đổi ở form $original_username = $this->_data['adminById'][0]['username']; if(strtolower($this->input->post('username')) != strtolower($original_username)) { $is_unique_username = '|is_unique[admin.username]'; } else { $is_unique_username = ''; } $original_email = $this->_data['adminById'][0]['email']; if($this->input->post('email') != $original_email) { $is_unique_email = '|is_unique[admin.email]'; } else { $is_unique_email = ''; } if($this->input->post('password') != ''){ $pwd_validate = '|required|min_length[8]'; $re_pwd_validate = '|required||min_length[8]|matches[password]'; } else{ $pwd_validate = ''; $re_pwd_validate = ''; } // Thiết lập validate $this->form_validation->set_rules("group_id", "Tên nhóm", "required|trim|xss_clean|callback_check_admin_group_id" ); $this->form_validation->set_rules('fullname', 'Họ và tên', 'required|trim|xss_clean|callback_check_admin_fullname' ); $this->form_validation->set_rules('username', 'Tên tài khoản', 'required|trim|min_length[8]|max_length[32]|xss_clean|callback_check_admin_username'.$is_unique_username ); $this->form_validation->set_rules('password', 'Mật khẩu', 'trim|max_length[32]|xss_clean'.$pwd_validate ); $this->form_validation->set_rules('password2', 'Nhập lại mật khẩu', 'trim|max_length[32]|xss_clean'.$re_pwd_validate ); $this->form_validation->set_rules('email', 'Email', 'required|trim|xss_clean|valid_email'.$is_unique_email ); // Thiết lập message $this->form_validation->set_message('required', '<li>Bắt buộc nhập hoặc chọn.</li>'); $this->form_validation->set_message('is_unique', '<li>Đã tồn tại.</li>'); $this->form_validation->set_message('max_length', '<li>Tối đa 32 ký tự.</li>'); $this->form_validation->set_message('min_length', '<li>Tối thiểu 8 ký tự.</li>'); $this->form_validation->set_message('matches', '<li>Nhập lại mật khẩu không đúng.</li>'); $this->form_validation->set_message('valid_email', '<li>Email không hợp lệ.</li>'); // Xử lý form đăng nhập if($this->form_validation->run($this) == false){ $this->_data['group_id'] = $this->input->post('group_id'); $this->_data['fullname'] = $this->input->post('fullname'); $this->_data['username'] = $this->input->post('username'); $this->_data['password'] = $this->input->post('password'); $this->_data['password2'] = $this->input->post('password2'); $this->_data['email'] = $this->input->post('email'); $this->_data['is_active'] = $this->input->post('is_active'); // $this->_data['functionName'] = 'Người dùng hệ thống'; $this->_data['action'] = 'editUserAdmin'; $this->_data['titlePage'] = 'Người dùng hệ thống'; $this->_data['loadPage'] = 'backend/cms_setting/user_admin/edit_user_admin_view'; $this->load->view('backend/admin_template_view', $this->_data); }else{ // Insert Nhóm vào DB $dataUpdate = array( 'group_id' => ($this->input->post('group_id') > 0) ? $this->input->post('group_id'): 0, 'fullname' => trim($this->input->post('fullname')), 'username' => trim($this->input->post('username')), 'email' => $this->input->post('email'), 'is_active' => ($this->input->post('is_active') == 'on') ? 1 : 0, 'updated_at'=> date("Y-m-d H:i:s") ); if(trim($this->input->post('password')) != ''){ $dataUpdate['password'] = MyHelper::genKeyCode(trim($this->input->post('password'))); } $this->admin_model->update($id, $dataUpdate); $this->session->set_flashdata('success', 'Cập nhật thành công username: '.$this->input->post('username').'.'); // Ghi log $this->actionlog_model->add('UPDATED', 'Cập nhật người dùng hệ thống', 'AdminModel', 'admin', $id); // redirect(base_url().'backend/cmsSetting/listUserAdmin'); } } //================================================================================================================== public function assignPermissionUserAdmin($id, $group_id){ // Lấy DS Controller được phân quyền theo Group $this->_data['controllerList'] = $this->accesscontroller_model->getListByGroupId($group_id); // Lấy thông tin User theo id $this->_data['userAdminById'] = $this->admin_model->getById($id); // Lấy DS Action theo Controller được phân quyền dựa vào Group $this->_data['actionList'] = $this->maccessaction->getListByGroupId($group_id); // Lấy DS Action đã được phân quyền $this->_data['admin_access_action'] = $this->madminaccessaction->getByAdminId($id, $group_id); $this->_data['admin_access_action_submit'] = $this->input->post('admin_access_action'); // Thiết lập validate $this->form_validation->set_rules("admin_access_action", "Quyền action", "xss_clean" ); if($this->form_validation->run($this) == false){ // $this->_data['functionName'] = 'Gán quyền cho User'; $this->_data['action'] = 'assignPermissionUserAdmin'; $this->_data['titlePage'] = 'Gán quyền cho User'; $this->_data['loadPage'] = 'backend/cms_setting/user_admin/assign_permission_user_view'; $this->load->view('backend/admin_template_view', $this->_data); }else{ // Insert quyền truy cập vào DB $admin_access_action = $this->_data['admin_access_action']; $admin_access_action_submit = $this->input->post('admin_access_action'); if(is_array($admin_access_action_submit) && is_array($admin_access_action)){ // Thêm mới quyền truy cập controller $dataInsert = array_diff($admin_access_action_submit, $admin_access_action); if(count($dataInsert) > 0){ $dataAdminAction = array(); foreach($dataInsert as $val){ $dataAdminAction[] = array( 'admin_id' => $id, 'access_action_id' => $val ); } $this->madminaccessaction->addBatch($dataAdminAction); } // Xóa bớt quyền truy cập controller $dataDelete = array_diff($admin_access_action, $admin_access_action_submit); if(count($dataDelete) > 0){ foreach($dataDelete as $val){ $this->madminaccessaction->delete($id, $val); } } }else{ if(count($admin_access_action) > 0 && !is_array($admin_access_action_submit)){ foreach($admin_access_action as $val){ $this->madminaccessaction->delete($id, $val); } } } $this->session->set_flashdata('success', 'Cập nhật thành công gán quyền truy cập action cho user.'); // Ghi log $this->actionlog_model->add('ASIGNED_PERMISSION_USER', 'Gán quyền truy cập cho người dùng', 'madminaccessaction', 'admin_access_action', $id); // redirect(base_url().'backend/cmsSetting/assignPermissionUserAdmin/'.$id.'/'.$group_id); } } //================================================================================================================== public function changeStatus($user_id, $user_status){ $this->_data['adminById'] = $this->admin_model->getById($user_id); if($this->_data['adminById']){ // Kiểm tra quyền sửa: nếu là dcv_super_admin thì chỉ người đó mới có quyền sửa if($this->session->userdata('groupName') == 'dcv_super_admin' && $this->session->userdata('is_super') == 1){ $status = ($user_status == 0) ? 1 : 0; // Update vào DB $dataUpdate = array(); $dataUpdate['is_active'] = $status; $this->admin_model->update($user_id, $dataUpdate); $this->session->set_flashdata('success', 'Cập nhật thành công trạng thái kích hoạt.'); // Ghi log $this->actionlog_model->add('CHANGED_ACTIVE', 'Cập nhật trạng thái người dùng', 'AdminModel', 'admin', $user_id); redirect(base_url().'backend/cmsSetting/listUserAdmin'); }else{ // Ghi log $this->actionlog_model->add('CHANGED_ACTIVE', 'Cố ý cập nhật trạng thái người khác có ID='.$user_id, 'AdminModel', 'admin', $user_id); // $this->session->set_flashdata('error', 'Bạn không có quyền cập nhật trạng thái của user khác.'); redirect(base_url().'backend/cmsSetting/listUserAdmin'); } }else{ $this->session->set_flashdata('error', 'Không tìm thấy thông tin người dùng này.'); redirect(base_url().'backend/cmsSetting/listUserAdmin'); } } // Callback kiểm tra chọn kế thừa quyền truy cập public function check_admin_group_id($id){ if($id > 0){ $listGroup = $this->group_model->getListFoxSelectBox(); if(!array_key_exists($id, $listGroup)){ $this->form_validation->set_message('check_admin_group_id', '<li>Chọn lại danh sách.</li>'); return FALSE; }else{ return TRUE; } }else{ return TRUE; } } public function check_admin_fullname($fullname){ $pattern = '/^[a-zA-Z0-9_ ]+$/'; $fullname = MyHelper::unsigned($fullname); if (!preg_match($pattern, $fullname)){ $this->form_validation->set_message('check_admin_fullname', '<li>Họ và tên không hợp lệ: a-zA-Z0-9_ </li>'); return FALSE; }else{ return TRUE; } } public function check_admin_username($username){ $username = strtolower($username); $pattern = '/^[a-zA-Z]{1}[a-zA-Z0-9_\.\@]{7,31}+$/'; $pattern2 = '/.*(admin|super|default).*/'; if(!preg_match($pattern, $username)){ $this->form_validation->set_message('check_admin_username', '<li>Không hợp lệ, tên bao gồm: a-z, A-Z, 0-9, _, ., @, 8-32</li>'); return FALSE; }elseif(preg_match($pattern2, $username)){ $this->form_validation->set_message('check_admin_username', '<li>Không được chứa từ: admin, super, default.</li>'); return FALSE; }else{ return TRUE; } } public function check_admin_sid($sid){ if($sid != ''){ $pattern = '/^[0-9,]+$/'; if (!preg_match($pattern, $sid)){ $this->form_validation->set_message('check_admin_sid', '<li>Không hợp lệ: 0-9,0-9,...,không có khoảng trống.</li>'); return FALSE; }else{ // Đếm phần tử SID rỗng. $arr = explode(',', $sid); $temp = 0; foreach($arr as $val){ if($val < 1){$temp += 1;} } if($temp > 0){ $this->form_validation->set_message('check_admin_sid', '<li>Không hợp lệ: các mã cách nhau bởi dấu phẩy, không để rỗng.</li>'); return FALSE; }else{ // Kiểm tra tồn tại $sidList = $this->admin_model->getListSID(false); $temp2 = array(); foreach($arr as $val){ if(in_array($val, $sidList)){$temp2[] = $val;} } if(count($temp2) > 0) { $this->form_validation->set_message('check_admin_sid', '<li>Đã tồn tại mã: '.implode(',', $temp2).'</li>'); return FALSE; }else{ return TRUE; } } } }else{ return TRUE; } } /** * B1: Kiểm tra tính hợp lệ của chuỗi SID: chỉ bao gồm số và dấu phẩy * B2: Kiểm tra phần tử rỗng trong chuỗi SID * B3: Kiểm tra mã SID giống nhau trong 1 chuỗi edit * B4: Kiểm tra mã SID đã tồn tại trong DB * @param $sid * @return bool */ public function check_admin_edit_sid($sid){ if($sid != ''){ $pattern = '/^[0-9,]+$/'; if (!preg_match($pattern, $sid)){ $this->form_validation->set_message('check_admin_edit_sid', '<li>Không hợp lệ: 0-9,0-9,...,không có khoảng trống.</li>'); return FALSE; }else{ // Đếm phần tử SID rỗng. $arr = explode(',', $sid); $temp = 0; foreach($arr as $val){ if($val < 1){$temp += 1;} } if($temp > 0){ $this->form_validation->set_message('check_admin_edit_sid', '<li>Không hợp lệ: các mã cách nhau bởi dấu phẩy, không để rỗng.</li>'); return FALSE; }else{ $original_sid = $this->_data['adminById'][0]['sid']; // Lấy ra những mã chưa có trong DB rồi lưu vào mảng $arr_new $arr_sid_db = explode(',', $original_sid); $sid_submit = $this->input->post('sid'); $arr_sid_submit = explode(',', $sid_submit); $check_arr_sid_submit = array(); $check_arr_sid_submit = array_count_values($arr_sid_submit); $temp2 = array(); foreach($check_arr_sid_submit as $key => $val){ if($val > 1){$temp2[] = $key;} } if(count($temp2) > 0){ $this->form_validation->set_message('check_admin_edit_sid', '<li>Đã tồn tại mã: '.implode(',', $temp2).'</li>'); return FALSE; }else{ $arr_new = array(); if(is_array($arr_sid_db) && is_array($arr_sid_submit)){ $arr_new = array_diff($arr_sid_submit, $arr_sid_db); } // Kiểm tra tồn tại $sidList = $this->admin_model->getListSID(false); $temp3 = array(); foreach($arr_new as $val){ if(in_array($val, $sidList)){$temp3[] = $val;} } if(count($temp3) > 0) { $this->form_validation->set_message('check_admin_edit_sid', '<li>Đã tồn tại mã: '.implode(',', $temp3).'</li>'); return FALSE; }else{ return TRUE; } } } } }else{ return TRUE; } } public function check_admin_sid_sms($sid_sms_submit){ $sid_sms_db = $this->admin_model->getListSIdBySMS(false); if(is_array($sid_sms_db) && count($sid_sms_db) > 0){ if(is_array($sid_sms_submit) && count($sid_sms_submit) > 0){ $sid_sms_existed = array(); foreach($sid_sms_submit as $val_submit){ if(in_array($val_submit, $sid_sms_db)){ $sid_sms_existed[] = $val_submit; } } if(count($sid_sms_existed) > 0){ $this->form_validation->set_message('check_admin_sid_sms', '<li>Đã tồn tại gói: '.implode(',', $sid_sms_existed).'</li>'); return FALSE; }else{ return TRUE; } }else{ return TRUE; } }else{ return TRUE; } } //================================================================================================================== public function logUser(){ $this->_data['functionName'] = 'Log đăng nhập, xuất'; $this->_data['action'] = 'logUser'; $this->_data['titlePage'] = 'Log đăng nhập, xuất'; $this->_data['loadPage'] = 'backend/cms_setting/log_cms/log_user_view'; $this->load->view('backend/admin_template_view', $this->_data); } public function logUserAjax() { $this->load->model('userlog_model'); // $data = array(); $filterByAccount = $this->input->post('filterByAccount'); $pageId = $this->input->post('pageId'); // $pageId = ($pageId == 0) ? 1 : $pageId; // $limit = 20; $offset = ($pageId - 1)*$limit; $data['offset'] = ($pageId - 1)*$limit; $totalRecord = $this->userlog_model->countAll($filterByAccount); $data['pagination'] = MyHelper::genPaginationLink($totalRecord, $limit, $pageId); $data['listData'] = $this->userlog_model->getPagination($limit, $offset, $filterByAccount); // $this->load->view('backend/ajax/cms_setting/log_user_view', $data); } //================================================================================================================== public function deleteLogUser($id){ if(!$this->userlog_model->delete($id)){ $this->session->set_flashdata('success', 'Xóa thành công log đăng nhập, xuất có ID: '.$id); }else{ $this->session->set_flashdata('error', 'Xóa không thành công log đăng nhập, xuất có ID: '.$id); } redirect(base_url().'backend/cmsSetting/logUser'); } //================================================================================================================== public function logAction(){ $this->_data['functionName'] = 'Log xử lý'; $this->_data['action'] = 'logAction'; $this->_data['titlePage'] = 'Log xử lý'; $this->_data['loadPage'] = 'backend/cms_setting/log_cms/log_action_view'; $this->load->view('backend/admin_template_view', $this->_data); } public function logActionAjax() { $this->load->model('actionlog_model'); // $data = array(); $filterByAccount = $this->input->post('filterByAccount'); $filterByActionType = $this->input->post('filterByActionType'); $pageId = $this->input->post('pageId'); // $pageId = ($pageId == 0) ? 1 : $pageId; // $limit = 20; $offset = ($pageId - 1)*$limit; $data['offset'] = ($pageId - 1)*$limit; $totalRecord = $this->actionlog_model->countAll(null, null, null, $filterByAccount, $filterByActionType); $data['pagination'] = MyHelper::genPaginationLink($totalRecord, $limit, $pageId); //getPagination($record, $start, $dtFrom=NULL, $dtTo=NULL, $filterByIP=NULL, $filterByAccount=NULL, $filterByActionType=NULL) $data['listData'] = $this->actionlog_model->getPagination($limit, $offset, null, null, null, $filterByAccount, $filterByActionType); // $this->load->view('backend/ajax/cms_setting/log_action_view', $data); } //================================================================================================================== public function deleteLogAction($id){ if(!$this->actionlog_model->delete($id)){ $this->session->set_flashdata('success', 'Xóa thành công log hành động có ID: '.$id); }else{ $this->session->set_flashdata('error', 'Xóa không thành công log hành động có ID: '.$id); } redirect(base_url().'backend/cmsSetting/logAction'); } //================================================================================================================== public function exportLogUser2Excel(){ // Ghi log $this->actionlog_model->add('EXPORTED', 'Xuất Log User', '', '', ''); // redirect(base_url().'backend/cmsSetting/logcms/logUser'); /*try{ // Thiết lập mặc định $this->load->library('excel'); $this->load->model('customercare/Msmsgw_molistener'); $maxRow = 1000; $sheetPwd = MyHelper::genExportPassword(); // Lấy khoảng thời gian từ form submit $dtFrom = ''; $dtTo = ''; $dtRange = $this->input->post('date-range-picker'); if($dtRange != NULL){ $dtArray = explode('-', $dtRange); if(count($dtArray) == 2){ $dtFrom = date('Y-m-d', strtotime(str_replace('/','-',trim($dtArray[0])))); $dtTo = date('Y-m-d', strtotime(str_replace('/','-', trim($dtArray[1])))); } }else{ $dtRange = 'Tất cả'; } $filterByMobile = trim($this->input->post('input-mobile')); $filterBySyntax = $this->input->post('input-syntax'); $filterByChannel = $this->input->post('select-channel'); $countAll = $this->Msmsgw_molistener->countAll($dtFrom, $dtTo, $filterByMobile, $filterBySyntax, $filterByChannel); $numSheet = ceil($countAll[0]['totalMO']/$maxRow); // Xử lý dữ liệu if($numSheet >= 1){ //1.SHEET chi tiết theo phân trang ========================================================================= for($sh = 0; $sh < $numSheet; $sh++){ $this->excel->createSheet($sh+1); $this->excel->setActiveSheetIndex($sh+1); $this->excel->getActiveSheet()->setShowGridlines(false); $this->excel->getActiveSheet()->setTitle('MO-'.($sh+1)); // $this->excel->getActiveSheet()->getDefaultStyle()->getFont()->setName('Times New Roman'); $this->excel->getActiveSheet()->getDefaultStyle()->getFont()->setSize('12'); $this->excel->getActiveSheet()->getColumnDimension('A')->setWidth('8'); $this->excel->getActiveSheet()->getColumnDimension('B')->setWidth('12'); $this->excel->getActiveSheet()->getColumnDimension('C')->setWidth('20'); $this->excel->getActiveSheet()->getColumnDimension('D')->setWidth('20'); $this->excel->getActiveSheet()->getColumnDimension('E')->setWidth('22'); $this->excel->getActiveSheet()->getColumnDimension('F')->setWidth('20'); $this->excel->getActiveSheet()->getColumnDimension('G')->setWidth('20'); // $this->excel->getActiveSheet()->setCellValue('A1', 'CÔNG TY CP TRUYỀN SỐ LIỆU VIỆT NAM - DCV'); $this->excel->getActiveSheet()->setCellValue('E1', 'THỐNG KÊ LOG GỬI MO'); $this->excel->getActiveSheet()->getStyle('A1:E1')->getFont()->setSize(15); $this->excel->getActiveSheet()->getStyle('A1:E1')->getFont()->setBold(true); $this->excel->getActiveSheet()->mergeCells('A1:D1'); $this->excel->getActiveSheet()->mergeCells('E1:G1'); $this->excel->getActiveSheet()->getStyle('A1:E2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); // $this->excel->getActiveSheet()->setCellValue('A2', 'DỊCH VỤ VAS: GIỜ VÀNG CHỐT SỐ'); $this->excel->getActiveSheet()->setCellValue('E2', '(Từ ngày: '.$dtRange.')'); $this->excel->getActiveSheet()->mergeCells('A2:D2'); $this->excel->getActiveSheet()->mergeCells('E2:G2'); $styleArray = array( 'font' => array( 'underline' => PHPExcel_Style_Font::UNDERLINE_SINGLE ) ); $this->excel->getActiveSheet()->getStyle('A2:E2')->applyFromArray($styleArray); // $this->excel->getActiveSheet()->setCellValue('A4', 'Số điện thoại'); $this->excel->getActiveSheet()->setCellValue('A5', 'Cú pháp'); $this->excel->getActiveSheet()->setCellValue('A6', 'Kênh'); $this->excel->getActiveSheet()->setCellValue('A7', 'Thời điểm xuất thống kê'); $this->excel->getActiveSheet()->setCellValue('A8', 'Người xuất thống kê'); // $this->excel->getActiveSheet()->setCellValue('C4', ': '.$filterByMobile); $this->excel->getActiveSheet()->setCellValue('C5', ': '.$filterBySyntax); $this->excel->getActiveSheet()->setCellValue('C6', ': '.$filterByChannel); $this->excel->getActiveSheet()->setCellValue('C7', ': '.date('d/m/Y H:i:s')); $this->excel->getActiveSheet()->setCellValue('C8', ': '.$this->session->userdata('username')); // $this->excel->getActiveSheet()->setCellValue('A10', 'TT'); $this->excel->getActiveSheet()->setCellValue('B10', 'ID'); $this->excel->getActiveSheet()->setCellValue('C10', 'Ngày gửi'); $this->excel->getActiveSheet()->setCellValue('D10', 'Thuê bao gửi SMS'); $this->excel->getActiveSheet()->setCellValue('E10', 'Nội dung SMS'); $this->excel->getActiveSheet()->setCellValue('F10', 'Kênh'); $this->excel->getActiveSheet()->setCellValue('G10', 'Trạng thái'); // $this->excel->getActiveSheet()->duplicateStyleArray( array( 'fill' => array( 'type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('rgb' => '#ffb752') ), 'borders' => array( 'allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN) ), 'font' => array('bold' => true), 'alignment' => array( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER, 'vertical' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER ) ), "A10:G10" ); // $moData = $this->Msmsgw_molistener->export2Excel($dtFrom, $dtTo, $filterByMobile, $filterBySyntax, $filterByChannel, $maxRow, $sh*$maxRow); $index = 10; foreach($moData as $key => $moItem){ $index += 1; $status = ($moItem['status'] == 1) ? 'Thành công' : 'Thất bại'; // 1.STT ------------------------------------------------------------------------------------------ $this->excel->getActiveSheet()->setCellValueExplicit('A' . $index, ($sh*$maxRow+$key+1), PHPExcel_Cell_DataType::TYPE_NUMERIC); // 2.ID, SID ----------------------------------------------------------------------------------- $this->excel->getActiveSheet()->setCellValueExplicit('B' . $index, $moItem['id'], PHPExcel_Cell_DataType::TYPE_NUMERIC); // 3.Ngày gửi ----------------------------------------------------------------------------------- $this->excel->getActiveSheet()->setCellValueExplicit('C' . $index, MyHelper::reFormatDate($moItem['created_at']), PHPExcel_Cell_DataType::TYPE_STRING); // 4.Thuê bao gửi SMS ----------------------------------------------------------------------------------- $this->excel->getActiveSheet()->setCellValueExplicit('D' . $index, MyHelper::format_phone($moItem['source']), PHPExcel_Cell_DataType::TYPE_STRING); // 5.Nội dung SMS ----------------------------------------------------------------------------------- $this->excel->getActiveSheet()->setCellValueExplicit('E' . $index, $moItem['content'], PHPExcel_Cell_DataType::TYPE_STRING); // 7.Kênh ------------------------------------------------------------------------------------------ $this->excel->getActiveSheet()->setCellValueExplicit('F' . $index, $moItem['chanel'], PHPExcel_Cell_DataType::TYPE_STRING); // 8.Trạng thái ---------------------------------------------------------------------------------- $this->excel->getActiveSheet()->setCellValueExplicit('G' . $index, $status, PHPExcel_Cell_DataType::TYPE_STRING); // Định dạng vùng dữ liệu $this->excel->getActiveSheet()->duplicateStyleArray( array( 'alignment' => array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_LEFT), 'borders' => array( 'allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN) ), ), "A" . $index . ":G" . $index ); // Căn lề các ô, cột dữ liệu $this->excel->getActiveSheet()->getStyle('A'.$index)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $this->excel->getActiveSheet()->getStyle('B'.$index)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $this->excel->getActiveSheet()->getStyle('C'.$index)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $this->excel->getActiveSheet()->getStyle('D'.$index)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); $this->excel->getActiveSheet()->getStyle('E'.$index)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); $this->excel->getActiveSheet()->getStyle('F'.$index)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $this->excel->getActiveSheet()->getStyle('G'.$index)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); } } // Download file ------------------------------------------------------------------------------------------ $filename = date('Y-m-d H-i-s ').'MO.xls'; //save our workbook as this file name header('Content-Type: application/vnd.ms-excel'); //mime type header('Content-Disposition: attachment;filename="' . $filename . '"'); //tell browser what's the file name header('Cache-Control: max-age=0'); //no cache $objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'Excel5'); $objWriter->save('php://output'); $this->session->set_flashdata('success', 'Xuất dữ liệu thành công.'); redirect(base_url().'customercare/serviceGetMO'); die(); }else{ $this->session->set_flashdata('error', 'Không có dữ liệu nào được xuất ra Excel.'); redirect(base_url().'customercare/serviceGetMO'); } }catch (Exception $e){ $this->session->set_flashdata('error', 'Xuất dữ liệu không thành công.'); redirect(base_url().'customercare/serviceGetMO'); }*/ } //================================================================================================================== public function exportLogAction2Excel(){ $sheetPwd = MyHelper::genExportPassword(); // Ghi log $this->actionlog_model->add('EXPORTED', 'Xuất Log Action', '', $sheetPwd, ''); // redirect(base_url().'backend/cmsSetting/logcms/logAction'); /*try{ // Thiết lập mặc định $this->load->library('excel'); $this->load->model('customercare/Msmsgw_mtlistener'); $maxRow = 1000; // Lấy khoảng thời gian từ form submit $dtFrom = ''; $dtTo = ''; $dtRange = $this->input->post('date-range-picker'); if($dtRange != NULL){ $dtArray = explode('-', $dtRange); if(count($dtArray) == 2){ $dtFrom = date('Y-m-d', strtotime(str_replace('/','-',trim($dtArray[0])))); $dtTo = date('Y-m-d', strtotime(str_replace('/','-', trim($dtArray[1])))); } }else{ $dtRange = 'Tất cả'; } $filterByMobile = trim($this->input->post('input-mobile')); $countAll = $this->Msmsgw_mtlistener->countAll($dtFrom, $dtTo, $filterByMobile); $numSheet = ceil($countAll[0]['totalMT']/$maxRow); // Xử lý dữ liệu if($numSheet >= 1){ //1.SHEET chi tiết theo phân trang ========================================================================= for($sh = 0; $sh < $numSheet; $sh++){ $this->excel->createSheet($sh+1); $this->excel->setActiveSheetIndex($sh+1); $this->excel->getActiveSheet()->setShowGridlines(false); $this->excel->getActiveSheet()->setTitle('MT-'.($sh+1)); // $this->excel->getActiveSheet()->getDefaultStyle()->getFont()->setName('Times New Roman'); $this->excel->getActiveSheet()->getDefaultStyle()->getFont()->setSize('12'); $this->excel->getActiveSheet()->getColumnDimension('A')->setWidth('8'); $this->excel->getActiveSheet()->getColumnDimension('B')->setWidth('12'); $this->excel->getActiveSheet()->getColumnDimension('C')->setWidth('20'); $this->excel->getActiveSheet()->getColumnDimension('D')->setWidth('20'); $this->excel->getActiveSheet()->getColumnDimension('E')->setWidth('70'); $this->excel->getActiveSheet()->getColumnDimension('F')->setWidth('10'); $this->excel->getActiveSheet()->getColumnDimension('G')->setWidth('15'); // $this->excel->getActiveSheet()->setCellValue('A1', 'CÔNG TY CP TRUYỀN SỐ LIỆU VIỆT NAM - DCV'); $this->excel->getActiveSheet()->setCellValue('E1', 'THỐNG KÊ LOG TRẢ MT'); $this->excel->getActiveSheet()->getStyle('A1:E1')->getFont()->setSize(15); $this->excel->getActiveSheet()->getStyle('A1:E1')->getFont()->setBold(true); $this->excel->getActiveSheet()->mergeCells('A1:D1'); $this->excel->getActiveSheet()->mergeCells('E1:G1'); $this->excel->getActiveSheet()->getStyle('A1:E2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); // $this->excel->getActiveSheet()->setCellValue('A2', 'DỊCH VỤ VAS: GIỜ VÀNG CHỐT SỐ'); $this->excel->getActiveSheet()->setCellValue('E2', '(Từ ngày: '.$dtRange.')'); $this->excel->getActiveSheet()->mergeCells('A2:D2'); $this->excel->getActiveSheet()->mergeCells('E2:G2'); $styleArray = array( 'font' => array( 'underline' => PHPExcel_Style_Font::UNDERLINE_SINGLE ) ); $this->excel->getActiveSheet()->getStyle('A2:E2')->applyFromArray($styleArray); // $this->excel->getActiveSheet()->setCellValue('A4', 'Số điện thoại'); $this->excel->getActiveSheet()->setCellValue('A5', 'Thời điểm xuất thống kê'); $this->excel->getActiveSheet()->setCellValue('A6', 'Người xuất thống kê'); // $this->excel->getActiveSheet()->setCellValue('C4', ': '.$filterByMobile); $this->excel->getActiveSheet()->setCellValue('C5', ': '.date('d/m/Y H:i:s')); $this->excel->getActiveSheet()->setCellValue('C6', ': '.$this->session->userdata('username')); // $this->excel->getActiveSheet()->setCellValue('A8', 'TT'); $this->excel->getActiveSheet()->setCellValue('B8', 'ID'); $this->excel->getActiveSheet()->setCellValue('C8', 'Ngày gửi'); $this->excel->getActiveSheet()->setCellValue('D8', 'Thuê bao gửi SMS'); $this->excel->getActiveSheet()->setCellValue('E8', 'Nội dung SMS'); $this->excel->getActiveSheet()->setCellValue('F8', 'Kênh'); $this->excel->getActiveSheet()->setCellValue('G8', 'Trạng thái'); // $this->excel->getActiveSheet()->duplicateStyleArray( array( 'fill' => array( 'type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('rgb' => '#ffb752') ), 'borders' => array( 'allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN) ), 'font' => array('bold' => true), 'alignment' => array( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER, 'vertical' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER ) ), "A8:G8" ); // $mtData = $this->Msmsgw_mtlistener->export2Excel($dtFrom, $dtTo, $filterByMobile, $maxRow, $sh*$maxRow); $index = 8; foreach($mtData as $key => $mtItem){ $index += 1; $status = ($mtItem['status'] == 1) ? 'Thành công' : 'Thất bại'; // 1.STT ------------------------------------------------------------------------------------------ $this->excel->getActiveSheet()->setCellValueExplicit('A' . $index, ($sh*$maxRow+$key+1), PHPExcel_Cell_DataType::TYPE_NUMERIC); // 2.ID, SID ----------------------------------------------------------------------------------- $this->excel->getActiveSheet()->setCellValueExplicit('B' . $index, $mtItem['id'], PHPExcel_Cell_DataType::TYPE_NUMERIC); // 3.Ngày trả tin ----------------------------------------------------------------------------------- $this->excel->getActiveSheet()->setCellValueExplicit('C' . $index, MyHelper::reFormatDate($mtItem['created_at']), PHPExcel_Cell_DataType::TYPE_STRING); // 4.Thuê bao nhận SMS ----------------------------------------------------------------------------------- $this->excel->getActiveSheet()->setCellValueExplicit('D' . $index, MyHelper::format_phone($mtItem['msisdn']), PHPExcel_Cell_DataType::TYPE_STRING); // 5.Nội dung SMS ----------------------------------------------------------------------------------- $this->excel->getActiveSheet()->setCellValueExplicit('E' . $index, $mtItem['content'], PHPExcel_Cell_DataType::TYPE_STRING); // 7.Kênh ------------------------------------------------------------------------------------------ $this->excel->getActiveSheet()->setCellValueExplicit('F' . $index, $mtItem['chanel'], PHPExcel_Cell_DataType::TYPE_STRING); // 8.Trạng thái ---------------------------------------------------------------------------------- $this->excel->getActiveSheet()->setCellValueExplicit('G' . $index, $status, PHPExcel_Cell_DataType::TYPE_STRING); // Định dạng vùng dữ liệu $this->excel->getActiveSheet()->duplicateStyleArray( array( 'alignment' => array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_LEFT), 'borders' => array( 'allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN) ), ), "A" . $index . ":G" . $index ); // Căn lề các ô, cột dữ liệu $this->excel->getActiveSheet()->getStyle('A'.$index)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $this->excel->getActiveSheet()->getStyle('B'.$index)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $this->excel->getActiveSheet()->getStyle('C'.$index)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $this->excel->getActiveSheet()->getStyle('D'.$index)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); $this->excel->getActiveSheet()->getStyle('E'.$index)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT); $this->excel->getActiveSheet()->getStyle('F'.$index)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $this->excel->getActiveSheet()->getStyle('G'.$index)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); } } // Download file ------------------------------------------------------------------------------------------ $filename = date('Y-m-d H-i-s ').'MT.xls'; //save our workbook as this file name header('Content-Type: application/vnd.ms-excel'); //mime type header('Content-Disposition: attachment;filename="' . $filename . '"'); //tell browser what's the file name header('Cache-Control: max-age=0'); //no cache $objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'Excel5'); $objWriter->save('php://output'); $this->session->set_flashdata('success', 'Xuất dữ liệu thành công.'); redirect(base_url().'customercare/serviceSendMT'); die(); }else{ $this->session->set_flashdata('error', 'Không có dữ liệu nào được xuất ra Excel.'); redirect(base_url().'customercare/serviceSendMT'); } }catch (Exception $e){ $this->session->set_flashdata('error', 'Xuất dữ liệu không thành công.'); redirect(base_url().'customercare/serviceSendMT'); }*/ } //================================================================================================================== public function listSendEmail(){ $this->_data['functionName'] = 'Danh sách gửi mail'; $this->_data['action'] = 'listSentEmail'; $this->_data['titlePage'] = 'Danh sách gửi mail'; $this->_data['loadPage'] = 'backend/cms_setting/send_email/send_email_view'; $this->load->view('backend/admin_template_view', $this->_data); } //================================================================================================================== public function processSendEmail(){ $this->load->model('subrequest_model'); $this->load->model('monfree_model'); // Tính toán doanh thu tổng cộng ------------------------------------------------------------------------------- $content = "<p>Dear all, </p>"; $content .= "<p>Chúc ngày mới đạt nhiều doanh số!</p>"; $content .= "<p>GVCS báo cáo doanh thu tính đến: ".date('H:i:s d/m/Y')." như bảng dưới đây.</p>"; $dtFrom = date('Y-m-d'); $dtTo = date('Y-m-d'); $filterByUserAdmin = ''; $filterBySId = ''; $filterByIdSms = ''; $filterByChannel = ''; $listByDateRanges = $this->Msubrequest->getListByDateRange($dtFrom, $dtTo, $filterByUserAdmin, $filterBySId, $filterByIdSms, $filterByChannel); $listCanGiaHans = $this->Msubrequest->getListExtend($dtTo, $filterByUserAdmin, $filterBySId, $filterByIdSms, $filterByChannel); $listMonfeeByDateRanges = $this->Mmonfree->getListByDateRange($dtFrom, $dtTo, $filterByUserAdmin, $filterBySId, $filterByIdSms, $filterByChannel); // 1.Đăng ký gói 2K $totalDK2KByCol = 0; foreach($listByDateRanges as $listByDateRange){ if($listByDateRange['createdateYMD'] == date('Y-m-d') && $listByDateRange['params'] == 0 && $listByDateRange['amount'] >= 2000 && MyHelper::checkSyntaxRegister($listByDateRange['command'], '2K') == TRUE) { $totalDK2KByCol += 1; } } // 2.Đăng ký gói 3K --------------------------------------------------------------------------------------- $totalDK3KByCol = 0; foreach($listByDateRanges as $listByDateRange){ if($listByDateRange['createdateYMD'] == date('Y-m-d') && $listByDateRange['params'] == 0 && $listByDateRange['amount'] >= 3000 && MyHelper::checkSyntaxRegister($listByDateRange['command'], '3K') == TRUE) { $totalDK3KByCol += 1; } } // 3.Tổng đăng ký ----------------------------------------------------------------------------------------- $totalDK = $totalDK2KByCol + $totalDK3KByCol; // 4.Hủy -------------------------------------------------------------------------------------------------- $totalHuyByCol = 0; foreach($listByDateRanges as $listByDateRange){ if($listByDateRange['createdateYMD'] == date('Y-m-d') && $listByDateRange['params'] == 1 && MyHelper::checkSyntaxCancel($listByDateRange['command']) == TRUE) { $totalHuyByCol += 1; } } // 5.Cần gian hạn ----------------------------------------------------------------------------------------- $tongDKLuyKe = 0; $tongHuyLuyKe = 0; foreach($listCanGiaHans as $listCanGiaHan){ if($listCanGiaHan['createdateYmd'] <= date('Y-m-d') && $listCanGiaHan['params'] == 0) { $tongDKLuyKe += $listCanGiaHan['totalSubRequest']; } if($listCanGiaHan['createdateYmd'] <= date('Y-m-d') && $listCanGiaHan['params'] == 1){ $tongHuyLuyKe += $listCanGiaHan['totalSubRequest']; } } $tongCanGiaHan = $tongDKLuyKe - $tongHuyLuyKe; // 6.Gia hạn thành công ----------------------------------------------------------------------------------- $totalGiaHanTCByCol = 0; foreach($listMonfeeByDateRanges as $listMonfeeByDateRange){ if($listMonfeeByDateRange['createdateYmd'] == date('Y-m-d')){ $totalGiaHanTCByCol += $listMonfeeByDateRange['totalCreatedate']; } } // 7.Tỷ lệ gia hạn --------------------------------------------------------------------------------------- $tyleGHTrungBinh = ($tongCanGiaHan > 0) ? number_format(100*$totalGiaHanTCByCol/$tongCanGiaHan,1) : 0; // 8.Doanh thu đăng ký ----------------------------------------------------------------------------------- $totalDoanhThuDKByCol = 0; foreach($listByDateRanges as $listByDateRange){ if($listByDateRange['createdateYMD'] == date('Y-m-d') && $listByDateRange['params'] == 0 ){ $totalDoanhThuDKByCol += $listByDateRange['amount']; } } // 9.Doanh thu gia hạn ----------------------------------------------------------------------------------- $totalDoanhThuGiaHanTCByCol = 0; foreach($listMonfeeByDateRanges as $listMonfeeByDateRange){ if($listMonfeeByDateRange['createdateYmd'] == date('Y-m-d')){ $totalDoanhThuGiaHanTCByCol += $listMonfeeByDateRange['totalAmount']; } } // 10.Doanh thu tổng cộng --------------------------------------------------------------------------------- $totalDoanhThu = $totalDoanhThuDKByCol + $totalDoanhThuGiaHanTCByCol; // Tạo nội dung email $content .= "<table border='1px solid #000000'>"; $content .= "<tr><td>1.</td><td>Số lượng đăng ký gói 2K</td><td>: ".$totalDK2KByCol."</td></tr>"; $content .= "<tr><td>2.</td><td>Số lượng đăng ký gói 3K</td><td>: ".$totalDK3KByCol."</td></tr>"; $content .= "<tr><td>3.</td><td>Tổng số lượng đăng ký (1+2)</td><td>: ".$totalDK."</td></tr>"; $content .= "<tr><td>4.</td><td>Số lượng hủy</td><td>: ".$totalHuyByCol."</td></tr>"; $content .= "<tr><td>5.</td><td>Số lượng cần gia hạn</td><td>: ".$tongCanGiaHan."</td></tr>"; $content .= "<tr><td>6.</td><td>Số lượng gia hạn thành công</td><td>: ".$totalGiaHanTCByCol."</td></tr>"; $content .= "<tr><td>7.</td><td>Tỷ lệ gia hạn trung bình (100*6/5)</td><td>: ".$tyleGHTrungBinh."</td></tr>"; $content .= "<tr><td>8.</td><td>Doanh thu từ đăng ký</td><td>: ".$totalDoanhThuDKByCol."</td></tr>"; $content .= "<tr><td>9.</td><td>Doanh thu từ gia hạn thành công</td><td>: ".$totalDoanhThuGiaHanTCByCol."</td></tr>"; $content .= "<tr><td>10.</td><td>Tổng doanh thu (8+9)</td><td>: ".$totalDoanhThu."</td></tr>"; $content .= "</table>"; $content .= "<p>Trân trọng cảm ơn!</p>"; $content .= "<p>P/s: email này được gửi tự động, vui lòng không trả lời. Xin cảm ơn!</p>"; // Cấu hình gửi email ------------------------------------------------------------------------------------------ $email = 'Djo/a1/H6yXCL5EbpJGUHSQxwcf7PJvnxnGKOJZJotTCDPLNR+QzufchbQXg8N4SlH8BapU6TP5P+/mVRGDBfw=='; $pwd = 'MI0sWprgfOchToURNGEhVzxFEwMwht3YtRgeJlwMWwgPmlBMGRSsGOR0rhFevrgjmOm8f0T1qECTdoyARnINZQ=='; $email = $this->encrypt->decode($email); $pwd = $this->encrypt->decode($pwd); // $config = Array( 'protocol' => 'smtp', 'smtp_host' => 'ssl://smtp.googlemail.com', 'smtp_port' => 465, 'smtp_user' => $email, 'smtp_pass' => $pwd, 'charset' => 'utf-8', 'mailtype' => 'html' ); $this->load->library('email', $config); // $this->email->set_newline("\r\n"); $this->email->from('giovangchotso5169@gmail.com', 'giovangchotso.vn'); $this->email->to('thinv@dcv.vn, dongdc@dcv.vn'); $this->email->cc('doan281@gmail.com'); $this->email->subject('[GVCS] Báo cáo doanh thu tính đến '.date('H:i:s d/m/Y')); $this->email->message($content); if (!$this->email->send()) { $this->session->set_flashdata('error', 'Đã có lỗi khi gửi email.'); show_error($this->email->print_debugger()); }else { $this->session->set_flashdata('success', 'Gửi email thành công.'); } redirect(base_url().'backend/cmsSetting/listSendEmail'); } }