source: pro-violet-viettel/sourcecode/application/modules/admin/models/reportmodel.php @ 764

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

fix

File size: 9.0 KB
Line 
1<?php
2
3if (!defined('BASEPATH'))
4    exit('No direct script access allowed');
5
6class Reportmodel extends MY_Model {
7
8    protected $table_name = 'tblpaidlog';
9    protected $id_name = 'id';
10
11    function __construct() {
12        parent::__construct();
13        $this->load->helper('language');
14        $this->lang->load('messages', 'message');
15    }
16
17    function getProvinces($input) {
18
19        $from="tblpaidlog.paid_time >= '" . $input['year'] . "-" . $input['month'] . "-" . $input['date'] . " 00:00:00'";
20        $to="tblpaidlog.paid_time <= '" . $input['to_year'] . "-" . $input['to_month'] . "-" . $input['to_date'] . " 23:59:59'";
21       
22        $provinces = lang('_PROVINCES_');
23        // Tinh doanh thu theo tinh theo nam
24        $sql = "SELECT *,SUM(amount) as total FROM tblpaidlog LEFT JOIN tbluser ON tbluser.us_id=tblpaidlog.us_id WHERE tblpaidlog.paid_time >= '" . $input['year'] . "-01-01' AND tblpaidlog.paid_time <= '" . ($input['year'] + 1) . "-01-01' GROUP BY tbluser.province";
25        $query = $this->db->query($sql);
26        $dtns = $query->result_array();
27       
28        // tinh doanh thu theo thang
29        $sql = "SELECT *,SUM(amount) as total FROM tblpaidlog LEFT JOIN tbluser ON tbluser.us_id=tblpaidlog.us_id WHERE $from AND $to  GROUP BY tbluser.province";
30        $query = $this->db->query($sql);
31        $dtts = $query->result_array();
32       
33        // tinh doanh thu trong ngay hien tai
34        if (isset($input['to_month']))
35        {
36        $sql = "SELECT *,SUM(amount) as total FROM tblpaidlog LEFT JOIN tbluser ON tbluser.us_id=tblpaidlog.us_id WHERE tblpaidlog.paid_time >= '" . $input['to_year'] . "-" . $input['to_month'] . "-".$input['to_date']." 00:00:00' AND  tblpaidlog.paid_time <= '" . $input['to_year'] . "-" . $input['to_month'] . "-".$input['to_date']." 23:59:59'  GROUP BY tbluser.province";
37        }
38        $query = $this->db->query($sql);
39        $dtng = $query->result_array();
40
41        // Tinh thue bao theo tinh theo nam
42        $sql = "SELECT *,count(us_id) as total FROM tbluser WHERE tbluser.created_time >= '" . $input['year'] . "-01-01' AND tbluser.created_time <= '" . ($input['year'] + 1) . "-01-01' GROUP BY tbluser.province";
43        $query = $this->db->query($sql);
44        $tbns = $query->result_array();
45
46        // tinh thue bao theo thang
47        $sql = "SELECT *,count(us_id) as total FROM tbluser WHERE $from AND  $to GROUP BY tbluser.province";
48        $query = $this->db->query($sql);
49        $tbts = $query->result_array();
50       
51         // tinh thue bao theo ngay
52        $sql = "SELECT *,count(us_id) as total FROM tbluser WHERE tbluser.created_time >='" . $input['to_year'] . "-" . $input['to_month'] . "-".$input['to_date']." 00:00:00' AND tbluser.created_time <= '" . $input['to_year'] . "-" . $input['to_month'] . "-".$input['to_date']." 23:59:59'  GROUP BY tbluser.province";
53       
54        $query = $this->db->query($sql);
55        $tbng = $query->result_array();
56       
57
58        $dem=1;
59        foreach ($provinces as $index2 => $province) {
60            $provinces[$index2] = array("stt" => ($dem), "province" => $province, "dtn" => 0, "dtt" => 0, "dtng" => 0, "tbn" => 0, "tbt" => 0, "tbng" => 0);
61            foreach ($dtns as $data) {
62                if ($index2 == $data['province']) {
63                    $provinces[$index2]['dtn'] = $data['total'];
64                }
65            }
66            foreach ($dtng as $data) {
67                if ($index2 == $data['province']) {
68                    $provinces[$index2]['dtng'] = $data['total'];
69                }
70            }
71            foreach ($dtts as $data) {
72                if ($index2 == $data['province']) {
73                    $provinces[$index2]['dtt'] = $data['total'];
74                   
75                }
76            }
77
78            foreach ($tbns as $data) {
79                if ($index2 == $data['province']) {
80                    $provinces[$index2]['tbn'] = $data['total'];
81                }
82            }
83            foreach ($tbng as $data) {
84                if ($index2 == $data['province']) {
85                    $provinces[$index2]['tbng'] = $data['total'];
86                }
87            }
88            foreach ($tbts as $data) {
89                if ($index2 == $data['province']) {
90                    $provinces[$index2]['tbt'] = $data['total'];
91                }
92            }
93            $dem++;
94        }
95       
96        return $provinces;
97    }
98
99    function getPackages($input) {
100
101        $provinces = lang('_PROVINCES_');
102        // tinh thue bao theo thang
103        $sql = "SELECT * FROM tbluser LEFT JOIN tblservicepackage ON tbluser.p_id=tblservicepackage.p_id  WHERE tbluser.created_time >= '" . $input['year'] . "-" . $input['month'] . "-" . $input['date'] . "' AND tbluser.created_time <= '" . $input['to_year'] . "-" . $input['to_month'] . "-" . $input['to_date'] . "' AND tblservicepackage.p_period > 0 ";
104        $query = $this->db->query($sql);
105        $users = $query->result_array();
106
107
108        $sql = "SELECT * FROM tblservicepackage WHERE p_period>0";
109        $query = $this->db->query($sql);
110        $packages = $query->result_array();
111        foreach ($packages as $index => $package) {
112            $packages[$index]['users'] = array();
113            foreach ($users as $user) {
114                if ($user['p_id'] == $package['p_id']) {
115                    $packages[$index]['users'][] = $user;
116                }
117            }
118        }
119
120        foreach ($provinces as $index => $province) {
121            $provinces[$index] = array("province" => $province);
122        }
123        $dem=1;
124        foreach ($provinces as $index => $province) {
125            $provinces[$index]['stt'] = $dem;
126            $provinces[$index]['total'] = 0;
127            $totaluser = 0;
128            foreach ($packages as $index2 => $package) {
129                $provinces[$index]['packages'][$package['p_name']]['users'] = array();
130                $provinces[$index]['packages'][$package['p_name']]['total'] = 0;
131                $total = 0;
132                foreach ($package['users'] as $user) {
133                    if ($index == $user['province']) {
134                        $total = $total + 1;
135                        $totaluser = $totaluser + 1;
136                        $provinces[$index]['total'] = $totaluser;
137                        $provinces[$index]['packages'][$package['p_name']]['total'] = $total;
138
139                        $provinces[$index]['packages'][$package['p_name']]['users'][] = $user;
140                    }
141                }
142            }
143            $dem++;
144        }
145        foreach ($provinces as $index => $province) {
146            foreach ($packages as $index2 => $package) {
147                $provinces[$index]['packages'][$package['p_name']]['percent'] = 0;
148                if ($provinces[$index]['packages'][$package['p_name']]['total'] > 0 && $province['total'] > 0) {
149                    $provinces[$index]['packages'][$package['p_name']]['percent'] = round($provinces[$index]['packages'][$package['p_name']]['total'] / $province['total'], 2) * 100;
150                }
151            }
152        }
153
154        $data['packages'] = $packages;
155        $data['provinces'] = $provinces;
156        return $data;
157    }
158    public function exportProvince($input)
159    {   
160        //$input['date']=1;
161        //$input['month']=1;
162        //$input['year']=2014;
163        //$input['to_month']=1;
164        //$input['to_year']=2015;
165        //$input['to_date']=15;
166        if (isset($input['to_month']))
167        {
168            $date=$input['to_year'].$input['to_month'].$input['to_date'];
169        }
170        else {
171            $date=date("Ymd");
172        }
173        $provinces=array();
174        $data=$this->getProvinces($input);
175        foreach ($data as $index=>$province)
176        {
177            $provinces[]=array("stt"=>$province['stt'],"ngay"=>$date,"ma"=>$index,"tinh"=>$province['province'],"thue_bao_ngay"=>$province['tbng'],"thue_bao_thang"=>$province['tbt'],"thue_bao_nam"=>$province['tbn'],"doanh_thu_ngay"=>$province['dtng'],"doanh_thu_thang"=>$province['dtt'],"doanh_thu_nam"=>$province['dtn']);
178        }
179        return $provinces;
180    }
181    public function exportPackage($input)
182    {
183       // $input['date']=1;
184        //$input['month']=1;
185      //  $input['year']=2014;
186      // $input['to_month']=1;
187       // $input['to_year']=2015;
188       // $input['to_date']=15;
189        if (isset($input['month']))
190        {
191            $date=$input['year'].$input['month'];
192        }
193        else {
194            $date=date("Ym");
195        }
196        $result=array();
197        $data=$this->getPackages($input);
198        $data=$data['provinces'];
199        foreach ($data as $index=>$province)
200        {
201                $package=array();
202                foreach ($province['packages'] as $index2=>$packages)
203                {
204                    $package=  array_merge($package,array("tong_so_".$index2=>$packages['total'],"ti_le_".$index2=>$packages['percent']));
205                }
206                $tong=array("tong_so_tb"=>$province['total']);
207                $province=array("stt"=>$province['stt'],"ngay"=>$date,"ma"=>$index,"tinh"=>$province['province']);
208                $provinces[]= array_merge($province,$package,$tong);
209        }
210        return $provinces;
211    }
212
213}
Note: See TracBrowser for help on using the repository browser.