source: pro-violet-viettel/sourcecode/application/modules/admin/controllers/reportpackage.php @ 883

Last change on this file since 883 was 883, checked in by namnd, 10 years ago
File size: 9.6 KB
RevLine 
[702]1<?php
2
3if (!defined('BASEPATH'))
4    exit('No direct script access allowed');
5
6class Reportpackage extends MX_Controller {
7
8    const TOKENPW = 'violet';
9
10    public function __construct() {
11        parent::__construct();
12        $this->load->helper('cookie');
13        $this->load->helper('language');
14        $this->lang->load('messages', 'message');
15    }
16
17    public function index() {
18        $data = array();
19        $admin_info = $this->session->userdata('adminInfo');
20        if ($admin_info) {
21            $data['content'] = $this->getProvince();
22            $this->load->view('reportpackage/index', $data);
23        } else {
24            $this->load->view('login');
25        }
26    }
27
[713]28    public function getProvince($filters = array()) {
[702]29
30        $this->load->model('reportmodel');
[883]31        $data['date']=date("d");
[713]32        $data['month'] = date("m");
33        $data['year'] = date("Y");
[883]34        $data['to_date']= date("d");
[761]35        $data['to_month'] = date("m");
36        $data['to_year'] = date("Y");
[702]37        if ($this->input->post('month')) {
[883]38                        $data['date']= $this->input->post('date');
[713]39            $data['month'] = $this->input->post('month');
40            $data['year'] = $this->input->post('year');
[883]41                        $data['to_date'] = $this->input->post('to_date');
42            $data['to_month'] = $this->input->post('to_month');
43            $data['to_year'] = $this->input->post('to_year');
[702]44        }
[713]45        $data = $this->getdays($data);
[702]46
[713]47        $result = $this->reportmodel->getPackages($data);
[702]48        $data['provinces'] = $result['provinces'];
49        $data['packages'] = $result['packages'];
[818]50                $data['totalVip'] = $result['totalVip'];
[702]51        if ($this->input->is_ajax_request()) {
52            return $this->load->view('reportpackage/province', $data);
53        }
54        return $this->load->view('reportpackage/province', $data, true);
55    }
56
[713]57    public function getdays($data) {
58        $data['month_days'] = 1;
59        if ("" . $data['year'] . "-" . $data['month'] . "" == date("Y-m")) {
60            $data['month_days'] = date("d");
61        } else {
62            $data['month_days'] = cal_days_in_month(CAL_GREGORIAN, $data['month'], $data['year']); // 31 
[702]63        }
[713]64        $data['year_days'] = 1;
[751]65       
[713]66        if ($data['year'] == date("Y")) {
67            $data['year_days'] = date('z') + 1;
68        } else {
69            $data['year_days'] = date("z", mktime(0, 0, 0, 12, 31, $data['year'])) + 1;
70        }
71        return $data;
[702]72    }
73
[713]74    public function export() {
75        $this->load->model('reportmodel');
[883]76                //$data['date']=1;
77        $data['date'] = $this->uri->segment(4);
78                $data['month'] = $this->uri->segment(5);
79        $data['year'] = $this->uri->segment(6);
80                $data['to_date'] = $this->uri->segment(8);
81                $data['to_month'] = $this->uri->segment(9);
82        $data['to_year'] = $this->uri->segment(10);
83        //$data = $this->getdays($data);
[713]84        $result = $this->reportmodel->getPackages($data);
85        $data['provinces'] = $result['provinces'];
86        $data['packages'] = $result['packages'];
[818]87                $data['totalVip'] = $result['totalVip'];
[702]88
[713]89        $this->load->library("PHPExcel");
90        $sheet = $this->phpexcel->getActiveSheet();
91        $sheet->setTitle("bao cao thue bao " . $data['month'] . " - " . $data['year']);
[883]92         $sheet->getColumnDimension('A')->setWidth(10);
[713]93        $sheet->getColumnDimension('B')->setWidth(25);
[883]94        $sheet->getColumnDimension('C')->setWidth(25);
[713]95        $sheet->getColumnDimension('D')->setWidth(15);
96        $sheet->getColumnDimension('E')->setWidth(15);
97        $sheet->getColumnDimension('F')->setWidth(15);
98        $sheet->getColumnDimension('G')->setWidth(15);
[883]99        $sheet->getColumnDimension('H')->setWidth(15);
100        $sheet->getColumnDimension('I')->setWidth(15);
101        $sheet->getColumnDimension('J')->setWidth(15);
102               
103                $sheet->setCellValue('B1', "TẬP ĐOÀN VIỄN THÔNG QUÂN ĐỘI");
104                $style = array(
105                        'font' => array('bold' => true, 'size' => 12, 'name' =>'Cambria', 'color' => array('rgb' => '0070bf')),
106                        'alignment' => array('horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
107                                                                'vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER,
108                                                                'wrap' => true )
109                );
110                $sheet->mergeCells('B1:K1');
111                $sheet->getStyle('B1')->applyFromArray($style);
112               
113                $sheet->setCellValue('B2', "TỔNG CÔNG TY VIỄN THÔNG VIETTEL");
114               
115                $style = array(
116                        'font' => array('size' => 12, 'name' =>'Cambria', 'color' => array('rgb' => '0070bf')),
117                        'alignment' => array('horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
118                                                                'vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER,
119                                                                'wrap' => true )
120                );
121                $sheet->mergeCells('B2:K2');
122                $sheet->getStyle('B2')->applyFromArray($style);
123               
124                $style = array(
125                        'font' => array('bold' => true,'size' => 12, 'name' =>'Cambria'),
126                        'alignment' => array('horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
127                                                                'vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER,
128                                                                'wrap' => true )
129                );
130                $sheet->setCellValue('A4', "BÁO CÁO DOANH THU THEO TỈNH");
131                $sheet->mergeCells('A4:L4');
132                $sheet->getStyle('A4:L4')->applyFromArray($style);
133               
134               
135                $style = array(
136                        'font' => array('size' => 11, 'name' =>'Cambria'),
137                        'alignment' => array('horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_LEFT,
138                                                                'vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER,
139                                                                'wrap' => true ),
140                        'borders' =>    array(
141                                'allborders' => array(
142                                        'style' => \PHPExcel_Style_Border::BORDER_THIN
143                                        )
144                        )
145                );
146               
147                $sheet->setCellValue('B6', "Từ ngày: ".$data['date']."/".$data['month']."/".$data['year']);
148                $sheet->setCellValue('C6', "Đến ngày: ".$data['to_date']."/".$data['to_month']."/".$data['to_year']);
149                $sheet->setCellValue('B7', "Ngày kết xuất: ".date("d")."/".date("m")."/".date("Y"));
150                $sheet->setCellValue('C7', "Nhân viên kết xuất: ");
151               
152                $sheet->getStyle('B6:C7')->applyFromArray($style);
153               
154                $style = array(
155                        'font' => array('bold' => true, 'size' => 11, 'name' =>'Cambria'),
156                        'alignment' => array('horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
157                                                                'vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER,
158                                                                'wrap' => true ),
159                        'borders' =>    array(
160                                'allborders' => array(
161                                        'style' => \PHPExcel_Style_Border::BORDER_THIN
162                                        )
163                        )
164                );
165
166        $sheet->setCellValue('A9', "STT");
167        $sheet->setCellValue('B9', "Mã Tỉnh/Thành phố");
168        $sheet->setCellValue('C9', "Tỉnh/Thành phố");
169                $sheet->getStyle('A9:C9')->applyFromArray($style);
170               
[713]171        $chars = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L");
[756]172        $dem = 2;
[883]173        $stt = 1;
[713]174        foreach ($data['packages'] as $package) {
175            $dem++;
[883]176            $sheet->setCellValue($chars[$dem] . "9", $package['p_name']);
[713]177            $dem++;
[883]178            $sheet->setCellValue($chars[$dem] . "9", "Tỉ lệ %");
[755]179       
180            $stt++;
[713]181        }
182        $dem++;
[883]183                $sheet->setCellValue($chars[$dem] . ($index + 9), "Tổng TB");
184                $sheet->getStyle('A9:'.$chars[$dem] . ($index + 9))->applyFromArray($style);
185               
186                //$sheet->getStyle($chars[$dem].($index + 9))->applyFromArray($style);
187               
188                $sheet->setCellValue('A10', "Tổng");
189                $sheet->mergeCells('A10:C10');
190                $sheet->getStyle('A10:'.$chars[$dem].($index + 10))->applyFromArray($style);
[713]191
[883]192                $dem = 2;
193               
194                foreach ($data['totalVip'] as $vipName=>$totalVip){
195                        $dem++;
196                        $sheet->setCellValue($chars[$dem] . '10', $totalVip);
197                        $sheet->getStyle($chars[$dem] . '10')->applyFromArray($style);
198                        $dem++;
199                }
200               
201                //$sheet->getStyle('A10:'.$chars[$dem].($index + 10))->applyFromArray($style);
202               
203                $styleSTT = array(
204                        'font' => array('size' => 11, 'name' =>'Cambria'),
205                        'alignment' => array('bold' => true,
206                                                                'horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
207                                                                'vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER,
208                                                                'wrap' => true ),
209                        'borders' =>    array(
210                                'allborders' => array(
211                                        'style' => \PHPExcel_Style_Border::BORDER_THIN
212                                        )
213                        )
214                );
215               
216                $style = array(
217                        'font' => array('size' => 11, 'name' =>'Cambria'),
218                        'alignment' => array('bold' => true,
219                                                                'horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_LEFT,
220                                                                'vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER,
221                                                                'wrap' => true ),
222                        'borders' =>    array(
223                                'allborders' => array(
224                                        'style' => \PHPExcel_Style_Border::BORDER_THIN
225                                        )
226                        )
227                );
228               
229                $stt=1;
[713]230        foreach ($data['provinces'] as $index => $provinces) {
231
[883]232            $sheet->setCellValue('A' . ($stt + 10), $provinces['stt']);
233                        $sheet->getStyle('A'.($stt + 10))->applyFromArray($styleSTT);
234            $sheet->setCellValue('B' . ($stt + 10), $index);
235            $sheet->setCellValue('C' . ($stt + 10), $provinces['province']);
236                        $sheet->getStyle('B'.($stt + 10).":C".($stt + 10))->applyFromArray($style);
[756]237            $dem = 2;
[713]238            foreach ($provinces['packages'] as $package) {
239                $dem++;
[883]240                $sheet->setCellValue($chars[$dem] . ($stt + 10), $package['total']);
241                                $sheet->getStyle($chars[$dem] . ($stt + 10))->applyFromArray($style);
[713]242                $dem++;
[883]243                $sheet->setCellValue($chars[$dem] . ($stt + 10), $package['percent']);
244                                $sheet->getStyle($chars[$dem] . ($stt + 10))->applyFromArray($style);
[702]245            }
[713]246            $dem++;
[755]247           
[883]248            $sheet->setCellValue($chars[$dem] . ($stt + 10), $provinces['total']);
249                        $sheet->getStyle($chars[$dem] . ($stt + 10))->applyFromArray($style);
250                       
[755]251            $stt++;
[713]252        }
[883]253               
254               
[713]255        $writer = new PHPExcel_Writer_Excel5($this->phpexcel);
[883]256        header('Content-Disposition: attachment; filename="doanh_thu_'. $data['date'] . "_" . $data['month'] . "_" . $data['year']  .'-'. $data['to_date'] . "_" . $data['to_month'] . "_" . $data['to_year'] . '.xls"');
[713]257        $writer->save('php://output');
[702]258    }
259
260}
Note: See TracBrowser for help on using the repository browser.