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

Last change on this file since 713 was 713, checked in by quyenla, 10 years ago

Export Excel

File size: 4.5 KB
Line 
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
28    public function getProvince($filters = array()) {
29
30        $this->load->model('reportmodel');
31        $data['month'] = date("m");
32        $data['year'] = date("Y");
33        if ($this->input->post('month')) {
34            $data['month'] = $this->input->post('month');
35            $data['year'] = $this->input->post('year');
36        }
37        $data = $this->getdays($data);
38
39        $result = $this->reportmodel->getPackages($data);
40        $data['provinces'] = $result['provinces'];
41        $data['packages'] = $result['packages'];
42
43        if ($this->input->is_ajax_request()) {
44            return $this->load->view('reportpackage/province', $data);
45        }
46        return $this->load->view('reportpackage/province', $data, true);
47    }
48
49    public function getdays($data) {
50        $data['month_days'] = 1;
51        if ("" . $data['year'] . "-" . $data['month'] . "" == date("Y-m")) {
52            $data['month_days'] = date("d");
53        } else {
54            $data['month_days'] = cal_days_in_month(CAL_GREGORIAN, $data['month'], $data['year']); // 31 
55        }
56        $data['year_days'] = 1;
57        if ($data['year'] == date("Y")) {
58            $data['year_days'] = date('z') + 1;
59        } else {
60            $data['year_days'] = date("z", mktime(0, 0, 0, 12, 31, $data['year'])) + 1;
61        }
62        return $data;
63    }
64
65    public function export() {
66        $this->load->model('reportmodel');
67        $data['month'] = $this->uri->segment(4);
68        $data['year'] = $this->uri->segment(5);
69        $data = $this->getdays($data);
70        $result = $this->reportmodel->getPackages($data);
71        $data['provinces'] = $result['provinces'];
72        $data['packages'] = $result['packages'];
73
74        $this->load->library("PHPExcel");
75        $sheet = $this->phpexcel->getActiveSheet();
76        $sheet->setTitle("bao cao thue bao " . $data['month'] . " - " . $data['year']);
77        $sheet->getColumnDimension('A')->setWidth(10);
78        $sheet->getColumnDimension('B')->setWidth(25);
79        $sheet->getColumnDimension('C')->setWidth(15);
80        $sheet->getColumnDimension('D')->setWidth(15);
81        $sheet->getColumnDimension('E')->setWidth(15);
82        $sheet->getColumnDimension('F')->setWidth(15);
83        $sheet->getColumnDimension('G')->setWidth(15);
84        $sheet->getColumnDimension('H')->setWidth(15);
85        $sheet->setCellValue('A1', "Báo cáo doanh thu theo tỉnh");
86        $sheet->setCellValue('A2', "Thời gian: " . $data['month'] . " - " . $data['year']);
87        $sheet->setCellValue('A4', "STT");
88        $sheet->setCellValue('B4', "Tỉnh/Thành phố");
89        $chars = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L");
90        $dem = 1;
91        foreach ($data['packages'] as $package) {
92            $dem++;
93            $sheet->setCellValue($chars[$dem] . ($index + 4), $package['p_name']);
94            $dem++;
95            $sheet->setCellValue($chars[$dem] . ($index + 4), "Tỉ lệ %");
96        }
97        $dem++;
98        $sheet->setCellValue($chars[$dem] . ($index + 4), "Tổng TB");
99
100
101        foreach ($data['provinces'] as $index => $provinces) {
102
103            $sheet->setCellValue('A' . ($index + 5), $provinces['stt']);
104            $sheet->setCellValue('B' . ($index + 5), $provinces['province']);
105            $dem = 1;
106            foreach ($provinces['packages'] as $package) {
107                $dem++;
108                $sheet->setCellValue($chars[$dem] . ($index + 5), $package['total']);
109                $dem++;
110                $sheet->setCellValue($chars[$dem] . ($index + 5), $package['percent']);
111            }
112            $dem++;
113            $sheet->setCellValue($chars[$dem] . ($index + 5), $provinces['total']);
114        }
115        $writer = new PHPExcel_Writer_Excel5($this->phpexcel);
116        header('Content-Disposition: attachment; filename="doanh_thu_' . $data['month'] . "_" . $data['year'] . '.xls"');
117        $writer->save('php://output');
118    }
119
120}
Note: See TracBrowser for help on using the repository browser.