load->helper('cookie'); $this->load->helper('language'); $this->lang->load('messages', 'message'); } public function index() { $data = array(); $admin_info = $this->session->userdata('adminInfo'); if ($admin_info) { $data['content'] = $this->getProvince(); $this->load->view('reportpackage/index', $data); } else { $this->load->view('login'); } } public function getProvince($filters = array()) { $this->load->model('reportmodel'); $data['date']=date("d"); $data['month'] = date("m"); $data['year'] = date("Y"); $data['to_date']= date("d"); $data['to_month'] = date("m"); $data['to_year'] = date("Y"); if ($this->input->post('month')) { $data['date']= $this->input->post('date'); $data['month'] = $this->input->post('month'); $data['year'] = $this->input->post('year'); $data['to_date'] = $this->input->post('to_date'); $data['to_month'] = $this->input->post('to_month'); $data['to_year'] = $this->input->post('to_year'); } $data = $this->getdays($data); $result = $this->reportmodel->getPackages($data); $data['provinces'] = $result['provinces']; $data['packages'] = $result['packages']; $data['totalVip'] = $result['totalVip']; if ($this->input->is_ajax_request()) { return $this->load->view('reportpackage/province', $data); } return $this->load->view('reportpackage/province', $data, true); } public function getdays($data) { $data['month_days'] = 1; if ("" . $data['year'] . "-" . $data['month'] . "" == date("Y-m")) { $data['month_days'] = date("d"); } else { $data['month_days'] = cal_days_in_month(CAL_GREGORIAN, $data['month'], $data['year']); // 31 } $data['year_days'] = 1; if ($data['year'] == date("Y")) { $data['year_days'] = date('z') + 1; } else { $data['year_days'] = date("z", mktime(0, 0, 0, 12, 31, $data['year'])) + 1; } return $data; } public function export() { $this->load->model('reportmodel'); //$data['date']=1; $data['date'] = $this->uri->segment(4); $data['month'] = $this->uri->segment(5); $data['year'] = $this->uri->segment(6); $data['to_date'] = $this->uri->segment(8); $data['to_month'] = $this->uri->segment(9); $data['to_year'] = $this->uri->segment(10); //$data = $this->getdays($data); $result = $this->reportmodel->getPackages($data); $data['provinces'] = $result['provinces']; $data['packages'] = $result['packages']; $data['totalVip'] = $result['totalVip']; $this->load->library("PHPExcel"); $sheet = $this->phpexcel->getActiveSheet(); $sheet->setTitle("bao cao thue bao " . $data['month'] . " - " . $data['year']); $sheet->getColumnDimension('A')->setWidth(10); $sheet->getColumnDimension('B')->setWidth(25); $sheet->getColumnDimension('C')->setWidth(25); $sheet->getColumnDimension('D')->setWidth(15); $sheet->getColumnDimension('E')->setWidth(15); $sheet->getColumnDimension('F')->setWidth(15); $sheet->getColumnDimension('G')->setWidth(15); $sheet->getColumnDimension('H')->setWidth(15); $sheet->getColumnDimension('I')->setWidth(15); $sheet->getColumnDimension('J')->setWidth(15); $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:K1'); $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:K2'); $sheet->getStyle('B2')->applyFromArray($style); $style = array( 'font' => array('bold' => true,'size' => 12, 'name' =>'Cambria'), 'alignment' => array('horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_CENTER, 'vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER, 'wrap' => true ) ); $sheet->setCellValue('A4', "BÁO CÁO DOANH THU THEO TỈNH"); $sheet->mergeCells('A4:L4'); $sheet->getStyle('A4:L4')->applyFromArray($style); $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['date']."/".$data['month']."/".$data['year']); $sheet->setCellValue('C6', "Đến ngày: ".$data['to_date']."/".$data['to_month']."/".$data['to_year']); $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:C7')->applyFromArray($style); $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('A9', "STT"); $sheet->setCellValue('B9', "Mã Tỉnh/Thành phố"); $sheet->setCellValue('C9', "Tỉnh/Thành phố"); $sheet->getStyle('A9:C9')->applyFromArray($style); $chars = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"); $dem = 2; $stt = 1; foreach ($data['packages'] as $package) { $dem++; $sheet->setCellValue($chars[$dem] . "9", $package['p_name']); $dem++; $sheet->setCellValue($chars[$dem] . "9", "Tỉ lệ %"); $stt++; } $dem++; $sheet->setCellValue($chars[$dem] . ($index + 9), "Tổng TB"); $sheet->getStyle('A9:'.$chars[$dem] . ($index + 9))->applyFromArray($style); //$sheet->getStyle($chars[$dem].($index + 9))->applyFromArray($style); $sheet->setCellValue('A10', "Tổng"); $sheet->mergeCells('A10:C10'); $sheet->getStyle('A10:'.$chars[$dem].($index + 10))->applyFromArray($style); $dem = 2; foreach ($data['totalVip'] as $vipName=>$totalVip){ $dem++; $sheet->setCellValue($chars[$dem] . '10', $totalVip); $sheet->getStyle($chars[$dem] . '10')->applyFromArray($style); $dem++; } //$sheet->getStyle('A10:'.$chars[$dem].($index + 10))->applyFromArray($style); $styleSTT = array( 'font' => array('size' => 11, 'name' =>'Cambria'), 'alignment' => array('bold' => true, 'horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_CENTER, 'vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER, 'wrap' => true ), 'borders' => array( 'allborders' => array( 'style' => \PHPExcel_Style_Border::BORDER_THIN ) ) ); $style = array( 'font' => array('size' => 11, 'name' =>'Cambria'), 'alignment' => array('bold' => true, 'horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_LEFT, 'vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER, 'wrap' => true ), 'borders' => array( 'allborders' => array( 'style' => \PHPExcel_Style_Border::BORDER_THIN ) ) ); $stt=1; foreach ($data['provinces'] as $index => $provinces) { $sheet->setCellValue('A' . ($stt + 10), $provinces['stt']); $sheet->getStyle('A'.($stt + 10))->applyFromArray($styleSTT); $sheet->setCellValue('B' . ($stt + 10), $index); $sheet->setCellValue('C' . ($stt + 10), $provinces['province']); $sheet->getStyle('B'.($stt + 10).":C".($stt + 10))->applyFromArray($style); $dem = 2; foreach ($provinces['packages'] as $package) { $dem++; $sheet->setCellValue($chars[$dem] . ($stt + 10), $package['total']); $sheet->getStyle($chars[$dem] . ($stt + 10))->applyFromArray($style); $dem++; $sheet->setCellValue($chars[$dem] . ($stt + 10), $package['percent']); $sheet->getStyle($chars[$dem] . ($stt + 10))->applyFromArray($style); } $dem++; $sheet->setCellValue($chars[$dem] . ($stt + 10), $provinces['total']); $sheet->getStyle($chars[$dem] . ($stt + 10))->applyFromArray($style); $stt++; } $writer = new PHPExcel_Writer_Excel5($this->phpexcel); header('Content-Disposition: attachment; filename="doanh_thu_'. $data['date'] . "_" . $data['month'] . "_" . $data['year'] .'-'. $data['to_date'] . "_" . $data['to_month'] . "_" . $data['to_year'] . '.xls"'); $writer->save('php://output'); } }