load->helper('cookie'); } public function index() { $data = array(); $admin_info = $this->session->userdata('adminInfo'); if ($admin_info) { $data['statistics'] = $this->getStatistics(); $data['content'] = $this->getPaidlogs(); $this->load->view('report/index', $data); } else { $this->load->view('login'); } } public function getStatistics() { $this->load->model('collabolator_model'); $data = $this->collabolator_model->getStatistics(); return $this->load->view('report/statistics', $data, true); } public function getPaidlogs($filters = array()) { $this->load->helper('pagging'); $this->load->model('paidlog_model'); $data['current_page'] = $this->uri->segment(4, 1); $data['itemsoptions'] = array(10, 25, 50, 100); $data['perpage'] = 10; $data['keyword'] = ""; $data['sorting_order'] = "sorting_desc"; $data['sorting_field'] = "paid_id"; if ($this->input->post('sorting_order')) { if ($this->input->post('sorting_order') != "sorting") { $data['sorting_order'] = $this->input->post('sorting_order'); $data['sorting_field'] = $this->input->post('sorting_field'); } } if ($this->input->post('items')) { $data['perpage'] = $this->input->post('items'); } if ($this->input->post('keyword')) { $data['search_field'] = ""; $data['keyword'] = $this->input->post('keyword'); if (preg_match("/[0-9]/", $data['keyword'])) { $data['search_field'] = "cellphone"; } } $data ['paid_types'] = array ( 0 => "Tất cả", 1 => "SMS", 2 => "Card", ); $data ['paid_type'] = 0; if ($this->input->post ( 'paid_type' )) { $data ['paid_type'] = ( int ) $this->input->post ( 'paid_type' ); } $data['daterange_start'] = ""; $data['daterange_end'] = ""; if ($this->input->post('daterange')){ $daterange = explode(" - ", $this->input->post('daterange')); $data['daterange_start'] = date('Y-m-d H:i:s', strtotime($daterange[0])); $data['daterange_end'] = date('Y-m-d 23:59:59', strtotime($daterange[1])); } $data['start'] = ($data['current_page'] - 1) * $data['perpage']; $data['total'] = $this->paidlog_model->countPaidlog($data); $result = $this->paidlog_model->getPaidlogs($data); $data['paidlogs'] = $result['paid_logs']; $data['total_amount'] = $result['total_amount']; $data['paging_url'] = base_url() . "/admin/doanh_thu_tong_hop/trang/"; $data['num_links'] = 2; $data['paging'] = pagging($data); foreach ($data['paidlogs'] as $index => $paidlog) { $data['paidlogs'][$index]['username'] = @$this->get_fullname($paidlog['us_id']); } if ($this->input->is_ajax_request()) { return $this->load->view('report/listview', $data); } return $this->load->view('report/listview', $data, true); } private function get_fullname($us_id) { $fullname=""; $src = 'violet'; $token = md5($us_id . self::TOKENPW); $this->load->model('user_model'); $data = $this->user_model->get_user_info($src, $us_id, $token); parse_str($data,$data); if (isset($data['fullname'])) { $fullname=$data['fullname']; } return $fullname; } public function test() { /* for ($i = 1; $i <= 5000; $i++) { $input['us_id'] = rand(1, 100); $input['paid_type'] = rand(1, 2); $input['amount'] = rand(3, 10) * 1000; $time = (rand((time() - (12 * 30 * 24 * 60 * 60)), time())); $input['paid_time'] = date("Y-m-d H:i:s", $time); $this->load->model('paidlog_model'); $this->paidlog_model->insert($input); } die(); */ for ($i = 1; $i <= 200; $i++) { $input['us_id'] = $i; $input['cellphone'] = "01234567" . (100 + $i); $input['collaborator'] = rand(1, 100); $input['acc_balanced'] = rand(100000, 1000000); $input['expire_date'] = date("Y-m-d H:i:s", time()); $time = (rand((time() - (12 * 30 * 24 * 60 * 60)), time())); $input['created_time'] = date("Y-m-d H:i:s", $time); $input['updated_time'] = date("Y-m-d H:i:s", $time); $this->load->model('user_model'); $this->user_model->insert($input); } } public function export(){ $this->load->model('paidlog_model'); $data ['paid_types'] = array ( 0 => "Tất cả", 1 => "SMS", 2 => "Card", ); $data ['paid_type'] = 0; if ($this->input->post ( 'paid_type' )) { $data ['paid_type'] = ( int ) $this->input->post ( 'paid_type' ); } $data['daterange_start'] = ""; $data['daterange_end'] = ""; if ($this->input->post('daterange')){ $daterange = explode(" - ", $this->input->post('daterange')); $data['daterange_start'] = date('Y-m-d H:i:s', strtotime($daterange[0])); $data['daterange_end'] = date('Y-m-d 23:59:59', strtotime($daterange[1])); } $data['total'] = $this->paidlog_model->countPaidlog($data); $result = $this->paidlog_model->getPaidlogs($data); $data['paidlogs'] = $result['paid_logs']; $data['total_amount'] = $result['total_amount']; foreach ($data['paidlogs'] as $index => $paidlog) { $data['paidlogs'][$index]['username'] = $this->get_fullname($paidlog['us_id']); } $this->load->library("PHPExcel"); $sheet = $this->phpexcel->getActiveSheet(); $sheet->setTitle("bao cao tong hop "); $sheet->getColumnDimension('A')->setWidth(20); $sheet->getColumnDimension('B')->setWidth(25); $sheet->getColumnDimension('C')->setWidth(15); $sheet->getColumnDimension('D')->setWidth(15); $sheet->getColumnDimension('E')->setWidth(25); $sheet->setCellValue('B1', "TẬP ĐOÀN VIỄN THÔNG QUÂN ĐỘI"); $style = array( 'font' => array('bold' => true, 'size' => 12, 'name' =>'Cambria', 'color' => array('rgb' => '0070bf')), 'alignment' => array('horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_CENTER, 'vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER, 'wrap' => true ) ); $sheet->mergeCells('B1:E1'); $sheet->getStyle('B1')->applyFromArray($style); $sheet->setCellValue('B2', "TỔNG CÔNG TY VIỄN THÔNG VIETTEL"); $style = array( 'font' => array('size' => 12, 'name' =>'Cambria', 'color' => array('rgb' => '0070bf')), 'alignment' => array('horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_CENTER, 'vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER, 'wrap' => true ) ); $sheet->mergeCells('B2:E2'); $sheet->getStyle('B2')->applyFromArray($style); $sheet->setCellValue('A4', "BÁO CÁO DOANH THU TỔNG HỢP"); $style = array( 'font' => array('size' => 11, 'name' =>'Cambria'), 'alignment' => array('horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_LEFT, 'vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER, 'wrap' => true ), 'borders' => array( 'allborders' => array( 'style' => \PHPExcel_Style_Border::BORDER_THIN ) ) ); $sheet->setCellValue('B6', "Từ ngày: ". $data['daterange_start']); $sheet->setCellValue('C6', "Đến ngày: ". $data['daterange_end']); $sheet->setCellValue('B7', "Ngày kết xuất: ".date("d")."/".date("m")."/".date("Y")); $sheet->setCellValue('C7', "Nhân viên kết xuất: "); $sheet->getStyle('B6')->applyFromArray($style); $sheet->getStyle('C6')->applyFromArray($style); $sheet->getStyle('B7')->applyFromArray($style); $sheet->getStyle('C7')->applyFromArray($style); $style = array( 'font' => array('bold' => true, 'size' => 14, 'name' =>'Cambria'), 'alignment' => array('horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_CENTER, 'vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER, 'wrap' => true ) ); $sheet->mergeCells('A4:E4'); $sheet->getStyle('A4')->applyFromArray($style); $sheet->setCellValue('A9', 'Số điện thoại'); $style = array( 'font' => array('bold' => true, 'size' => 11, 'name' =>'Cambria'), 'alignment' => array('horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_CENTER, 'vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER, 'wrap' => true), 'borders' => array( 'allborders' => array( 'style' => \PHPExcel_Style_Border::BORDER_THIN ) ) ); $sheet->setCellValue('B9', 'Họ tên'); $sheet->setCellValue('C9', "Số tiền (VNĐ)"); $sheet->setCellValue('D9', "SMS/Card"); $sheet->setCellValue('E9', "Ngày"); $sheet->getStyle('A9:E9')->applyFromArray($style); $sheet->setCellValue('A10', "Tổng"); $sheet->mergeCells('A10:B10'); $sheet->getStyle('A10:B10')->applyFromArray($style); $style = array( 'font' => array('bold' => true, 'size' => 11, 'name' =>'Cambria'), 'alignment' => array('vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER), 'borders' => array( 'allborders' => array( 'style' => \PHPExcel_Style_Border::BORDER_THIN ) ) ); $sheet->setCellValue('C10', $data['total_amount']); $sheet->getStyle('C10:E10')->applyFromArray($style); $style = array( 'font' => array('size' => 11, 'name' =>'Cambria'), 'alignment' => array('vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER), 'borders' => array( 'allborders' => array( 'style' => \PHPExcel_Style_Border::BORDER_THIN ) ) ); $dem=0; foreach ($data['paidlogs'] as $index => $paidlog) { $type = ""; // $sheet->setCellValue('A' . ($dem + 11), $paidlog['cellphone']); if ($paidlog['paid_type'] == 1) { $type = "SMS"; }else { $type = "Card"; } $sheet->setCellValueExplicit('A' . ($dem + 11), $paidlog['cellphone'], PHPExcel_Cell_DataType::TYPE_STRING); $sheet->setCellValue('B' . ($dem + 11), $paidlog['username']); $sheet->setCellValue('C' . ($dem + 11), $paidlog['amount']); $sheet->setCellValue('D' . ($dem + 11), $type); $sheet->setCellValue('E' . ($dem + 11), $paidlog['paid_time']); $sheet->getStyle('A'. ($dem + 11).':E'.($dem + 11))->applyFromArray($style); $dem++; } $writer = new PHPExcel_Writer_Excel5($this->phpexcel); header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment; filename="bao_cao_tong_hop_'.date('d-m-Y').'.xls"'); $writer->save('php://output'); } }