- Timestamp:
- Nov 10, 2014 2:08:04 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pro-violet-viettel/sourcecode/application/modules/admin/controllers/report.php
r442 r444 6 6 class Report extends MX_Controller { 7 7 8 const TOKENPW = 'violet'; 8 const TOKENPW = 'violet'; 9 9 10 public function __construct() { 10 11 parent::__construct(); … … 16 17 $admin_info = $this->session->userdata('adminInfo'); 17 18 if ($admin_info) { 18 $data['statistics'] = $this->getStatistics(); 19 $data['statistics'] = $this->getStatistics(); 19 20 $data['content'] = $this->getPaidlogs(); 20 21 $this->load->view('report/index', $data); … … 23 24 } 24 25 } 25 public function getStatistics() 26 {27 $data =array();28 29 $last_month['start'] = strtotime(date("Y-m-d", strtotime("first day of previous month"))." 00:00:00");30 $last_month['end'] = strtotime(date("Y-m-d", strtotime("last day of previous month"))." 23:59:59");31 32 $last_week['start'] = strtotime(date("Y-m-d", strtotime("first day of previous week"))." 00:00:00");33 $last_week['end'] = strtotime(date("Y-m-d", strtotime("last day of previous week"))." 23:59:59");34 35 $last_week['end'] =strtotime('last sunday')+(24*60*60-1);36 $last_week['start'] =($last_week['end']-7*24*60*60+1);37 38 $last_year['start'] = strtotime((date("Y")-1)."-01-01 00:00:00");39 $last_year['end'] = strtotime((date("Y")-1)."-12-31 23:59:59");40 41 42 43 $last_quarter =$this->getLastquarter();44 $last_quarter['start'] =$last_quarter['start'];45 $last_quarter['end'] =$last_quarter['end'];46 47 26 27 public function getStatistics() { 28 $data = array(); 29 30 $last_month['start'] = strtotime(date("Y-m-d", strtotime("first day of previous month")) . " 00:00:00"); 31 $last_month['end'] = strtotime(date("Y-m-d", strtotime("last day of previous month")) . " 23:59:59"); 32 33 $last_week['start'] = strtotime(date("Y-m-d", strtotime("first day of previous week")) . " 00:00:00"); 34 $last_week['end'] = strtotime(date("Y-m-d", strtotime("last day of previous week")) . " 23:59:59"); 35 36 $last_week['end'] = strtotime('last sunday') + (24 * 60 * 60 - 1); 37 $last_week['start'] = ($last_week['end'] - 7 * 24 * 60 * 60 + 1); 38 39 $last_year['start'] = strtotime((date("Y") - 1) . "-01-01 00:00:00"); 40 $last_year['end'] = strtotime((date("Y") - 1) . "-12-31 23:59:59"); 41 42 43 44 $last_quarter = $this->getLastquarter(); 45 $last_quarter['start'] = $last_quarter['start']; 46 $last_quarter['end'] = $last_quarter['end']; 47 48 48 49 $this->load->model('paidlog_model'); 49 50 $paidlogs = $this->paidlog_model->getAllPaidlogs($last_year['start']); 50 51 $revenue['last_week']=0; 52 $revenue['last_month']=0; 53 $revenue['last_quarter']=0; 54 $revenue['last_year']=0; 55 foreach ($paidlogs as $paidlog) 56 { 57 58 if (($paidlog['time'] < $last_week['end'])&&($paidlog['time'] > $last_week['start'])) 59 { 51 52 $revenue['last_week'] = 0; 53 $revenue['last_month'] = 0; 54 $revenue['last_quarter'] = 0; 55 $revenue['last_year'] = 0; 56 57 $lastmonth = strtotime("first day of previous month"); 58 $thismonth = strtotime("first day of this month"); 59 $charts['last_month'] = array(0 => 0, 1 => 0, 2 => 0, 3 => 0, 4 => 0); 60 $charts['this_month'] = array(0 => 0, 1 => 0, 2 => 0, 3 => 0, 4 => 0); 61 foreach ($paidlogs as $paidlog) { 62 63 if (($paidlog['time'] < $last_week['end']) && ($paidlog['time'] > $last_week['start'])) { 60 64 $revenue['last_week']+=$paidlog['amount']; 61 65 } 62 if (($paidlog['time'] < $last_month['end'])&&($paidlog['time'] > $last_month['start'])) 63 { 66 if (($paidlog['time'] < $last_month['end']) && ($paidlog['time'] > $last_month['start'])) { 64 67 $revenue['last_month']+=$paidlog['amount']; 65 68 } 66 if (($paidlog['time'] < $last_quarter['end'])&&($paidlog['time'] > $last_quarter['start'])) 67 { 69 if (($paidlog['time'] < $last_quarter['end']) && ($paidlog['time'] > $last_quarter['start'])) { 68 70 $revenue['last_quarter']+=$paidlog['amount']; 69 71 } 70 if (($paidlog['time'] < $last_year['end'])&&($paidlog['time'] > $last_year['start'])) 71 { 72 if (($paidlog['time'] < $last_year['end']) && ($paidlog['time'] > $last_year['start'])) { 72 73 $revenue['last_year']+=$paidlog['amount']; 73 74 } 74 } 75 $data['revenue']=$revenue; 75 if (($paidlog['time'] < $lastmonth + (7 * 24 * 60 * 60)) && ($paidlog['time'] > $lastmonth)) { 76 $charts['last_month'][0]+=$paidlog['amount']; 77 } 78 if (($paidlog['time'] < $lastmonth + (14 * 24 * 60 * 60)) && ($paidlog['time'] > $lastmonth + (7 * 24 * 60 * 60))) { 79 $charts['last_month'][1]+=$paidlog['amount']; 80 } 81 if (($paidlog['time'] < $lastmonth + (21 * 24 * 60 * 60)) && ($paidlog['time'] > $lastmonth + (14 * 24 * 60 * 60))) { 82 $charts['last_month'][2]+=$paidlog['amount']; 83 } 84 if (($paidlog['time'] < $lastmonth + (28 * 24 * 60 * 60)) && ($paidlog['time'] > $lastmonth + (21 * 24 * 60 * 60))) { 85 $charts['last_month'][3]+=$paidlog['amount']; 86 } 87 if (($paidlog['time'] < $thismonth) && ($paidlog['time'] > $lastmonth + (28 * 24 * 60 * 60))) { 88 $charts['last_month'][3]+=$paidlog['amount']; 89 } 90 91 if (($paidlog['time'] < $thismonth + (7 * 24 * 60 * 60)) && ($paidlog['time'] > $thismonth)) { 92 $charts['this_month'][0]+=$paidlog['amount']; 93 } 94 if (($paidlog['time'] < $thismonth + (14 * 24 * 60 * 60)) && ($paidlog['time'] > $thismonth + (7 * 24 * 60 * 60))) { 95 $charts['this_month'][1]+=$paidlog['amount']; 96 } 97 if (($paidlog['time'] < $thismonth + (21 * 24 * 60 * 60)) && ($paidlog['time'] > $thismonth + (14 * 24 * 60 * 60))) { 98 $charts['this_month'][2]+=$paidlog['amount']; 99 } 100 if (($paidlog['time'] < $thismonth + (28 * 24 * 60 * 60)) && ($paidlog['time'] > $thismonth + (21 * 24 * 60 * 60))) { 101 $charts['this_month'][3]+=$paidlog['amount']; 102 } 103 if (($paidlog['time'] < $thismonth + (31 * 24 * 60 * 60)) && ($paidlog['time'] > $thismonth + (28 * 24 * 60 * 60))) { 104 $charts['this_month'][3]+=$paidlog['amount']; 105 } 106 } 107 $max = 0; 108 foreach ($charts['last_month'] as $index => $total) { 109 if ($total > $max) { 110 $max = $total; 111 } 112 $chart_last_month[] = array($index, $total); 113 } 114 foreach ($charts['this_month'] as $index => $total) { 115 if ($total > $max) { 116 $max = $total; 117 } 118 $chart_this_month[] = array($index, $total); 119 } 120 121 $data['revenue'] = $revenue; 122 $data['max'] = $max; 123 $chard[] = array("color" => "#1abc9c", "label" => "Tháng hiá»n tại", "data" => $chart_this_month); 124 $chard[] = array("color" => "#3498db", "label" => "Tháng trưá»c", "data" => $chart_last_month); 125 $data['chard'] = $chard; 126 76 127 return $this->load->view('report/statistics', $data, true); 77 128 } 78 public function getLastquarter() 79 {129 130 public function getLastquarter() { 80 131 $current_month = date('m'); 81 $current_year = date('Y'); 82 83 if($current_month>=1 && $current_month<=3) 84 { 85 $start_date = strtotime('1-October-'.($current_year-1)); // timestamp or 1-October Last Year 12:00:00 AM 86 $end_date = strtotime('1-Janauary-'.$current_year); // // timestamp or 1-January 12:00:00 AM means end of 31 December Last year 87 } 88 else if($current_month>=4 && $current_month<=6) 89 { 90 $start_date = strtotime('1-January-'.$current_year); // timestamp or 1-Janauray 12:00:00 AM 91 $end_date = strtotime('1-April-'.$current_year); // timestamp or 1-April 12:00:00 AM means end of 31 March 92 } 93 else if($current_month>=7 && $current_month<=9) 94 { 95 $start_date = strtotime('1-April-'.$current_year); // timestamp or 1-April 12:00:00 AM 96 $end_date = strtotime('1-July-'.$current_year); // timestamp or 1-July 12:00:00 AM means end of 30 June 97 } 98 else if($current_month>=10 && $current_month<=12) 99 { 100 $start_date = strtotime('1-July-'.$current_year); // timestamp or 1-July 12:00:00 AM 101 $end_date = strtotime('1-October-'.$current_year); // timestamp or 1-October 12:00:00 AM means end of 30 September 102 } 103 return array("start"=>$start_date,"end"=>$end_date); 104 } 132 $current_year = date('Y'); 133 134 if ($current_month >= 1 && $current_month <= 3) { 135 $start_date = strtotime('1-October-' . ($current_year - 1)); // timestamp or 1-October Last Year 12:00:00 AM 136 $end_date = strtotime('1-Janauary-' . $current_year); // // timestamp or 1-January 12:00:00 AM means end of 31 December Last year 137 } else if ($current_month >= 4 && $current_month <= 6) { 138 $start_date = strtotime('1-January-' . $current_year); // timestamp or 1-Janauray 12:00:00 AM 139 $end_date = strtotime('1-April-' . $current_year); // timestamp or 1-April 12:00:00 AM means end of 31 March 140 } else if ($current_month >= 7 && $current_month <= 9) { 141 $start_date = strtotime('1-April-' . $current_year); // timestamp or 1-April 12:00:00 AM 142 $end_date = strtotime('1-July-' . $current_year); // timestamp or 1-July 12:00:00 AM means end of 30 June 143 } else if ($current_month >= 10 && $current_month <= 12) { 144 $start_date = strtotime('1-July-' . $current_year); // timestamp or 1-July 12:00:00 AM 145 $end_date = strtotime('1-October-' . $current_year); // timestamp or 1-October 12:00:00 AM means end of 30 September 146 } 147 return array("start" => $start_date, "end" => $end_date); 148 } 149 105 150 public function getPaidlogs($filters = array()) { 106 151 $this->load->helper('pagging'); … … 110 155 $data['perpage'] = 10; 111 156 $data['keyword'] = ""; 112 $data['sorting_order'] ="sorting_desc";113 $data['sorting_field'] ="paid_id";114 157 $data['sorting_order'] = "sorting_desc"; 158 $data['sorting_field'] = "paid_id"; 159 115 160 if ($this->input->post('sorting_order')) { 116 if ($this->input->post('sorting_order') != "sorting") 117 { 118 $data['sorting_order']=$this->input->post('sorting_order'); 119 $data['sorting_field']=$this->input->post('sorting_field'); 161 if ($this->input->post('sorting_order') != "sorting") { 162 $data['sorting_order'] = $this->input->post('sorting_order'); 163 $data['sorting_field'] = $this->input->post('sorting_field'); 120 164 } 121 165 } … … 124 168 } 125 169 if ($this->input->post('keyword')) { 126 $data['search_field'] ="";170 $data['search_field'] = ""; 127 171 $data['keyword'] = $this->input->post('keyword'); 128 129 if (preg_match("/[0-9]/", $data['keyword'])) 130 { 131 $data['search_field']="cellphone"; 132 } 133 134 } 135 136 $data['start'] = ($data['current_page'] - 1) * $data['perpage']; 137 $data['total'] = $this->paidlog_model->countPaidlog($data); 172 173 if (preg_match("/[0-9]/", $data['keyword'])) { 174 $data['search_field'] = "cellphone"; 175 } 176 } 177 178 $data['start'] = ($data['current_page'] - 1) * $data['perpage']; 179 $data['total'] = $this->paidlog_model->countPaidlog($data); 138 180 $data['paidlogs'] = $this->paidlog_model->getPaidlogs($data); 139 181 … … 141 183 $data['num_links'] = 2; 142 184 $data['paging'] = pagging($data); 143 foreach ($data['paidlogs'] as $index=>$paidlog) 144 { 145 $data['paidlogs'][$index]['username']= @$this->get_username($paidlog['us_id']); 146 } 147 185 foreach ($data['paidlogs'] as $index => $paidlog) { 186 $data['paidlogs'][$index]['username'] = $this->get_username($paidlog['us_id']); 187 } 188 148 189 if ($this->input->is_ajax_request()) { 149 190 return $this->load->view('report/listview', $data); … … 151 192 return $this->load->view('report/listview', $data, true); 152 193 } 153 public function get_username($us_id) 154 { 155 $us_id=33; 156 $src = 'violet'; 157 $token = md5($us_id.self::TOKENPW); 158 $this->load->model('user_model'); 159 $data = $this->user_model->get_user_info($src, $us_id, $token); 160 if (strlen($data) > 0){ 161 $arr_users = explode("&", $data); 162 $str_username = $arr_users[1]; 163 $arr_username = explode("=", $str_username); 164 return $arr_username[1]; 165 }else 166 { 167 return ""; 168 } 169 170 } 171 172 public function addPaidlog() { 173 $result['success'] = 0; 174 $result = array(); 175 $input = $this->input->post(); 176 $this->load->model('paidlog_model'); 177 if (strlen($input['sms_content'])==0) 178 { 179 $result['errors'][]="Ná»i dung tin nhắn khÃŽng ÄÆ°á»£c Äá» trá»ng"; 180 } 181 if (strlen($input['sms_reply'])==0) 182 { 183 $result['errors'][]="Tin nhắn trả vá» khÃŽng ÄÆ°á»£c Äá» trá»ng"; 184 } 185 else 186 { 187 /* 188 if ($this->paidlog_model->isExist(array('field'=>'login_name','value'=>$input['login_name'],'id'=>$input['id']))) 189 { 190 $result['errors'][]="Tên ÄÄng nháºp Äã ÄÆ°á»£c sá» dụng"; 191 } 192 * 193 */ 194 } 195 if (strlen($input['service_id'])==0) 196 { 197 $result['errors'][]="Mã dá»ch vụ khÃŽng ÄÆ°á»£c Äá» trá»ng"; 198 } 199 else 200 { 201 /* 202 if ($this->paidlog_model->isExist(array('field'=>'cellphone','value'=>$input['cellphone'],'id'=>$input['id']))) 203 { 204 $result['errors'][]="Sá» Äiá»n thoại Äã ÄÆ°á»£c sá» dụng"; 205 } 206 * 207 */ 208 } 209 if (!isset($result['errors'])) 210 { 194 195 public function get_username($us_id) { 196 $src = 'violet'; 197 $token = md5($us_id . self::TOKENPW); 198 $this->load->model('user_model'); 199 $data = $this->user_model->get_user_info($src, $us_id, $token); 200 if (strlen($data) > 0) { 201 $arr_users = explode("&", $data); 202 $str_username = $arr_users[1]; 203 $arr_username = explode("=", $str_username); 204 return $arr_username[1]; 205 } else { 206 return ""; 207 } 208 } 209 210 public function test() { 211 212 213 for ($i = 1; $i <= 5000; $i++) { 214 $input['us_id'] = rand(1, 100); 215 $input['paid_type'] = rand(1, 2); 216 $input['amount'] = rand(3, 10) * 1000; 217 $time = (rand((time() - (12 * 30 * 24 * 60 * 60)), time())); 218 $input['paid_time'] = date("Y-m-d H:i:s", $time); 211 219 $this->load->model('paidlog_model'); 212 220 $this->paidlog_model->insert($input); 213 $result['success'] = 1; 214 } 215 216 217 echo json_encode($result); 218 } 219 public function viewSms() 220 { 221 $id=$this->uri->segment(4); 222 $this->load->model('paidlog_model'); 223 $data=$this->paidlog_model->getPaidlog($id); 224 $this->load->view('report/viewSms',$data); 225 } 226 public function editSms() 227 { 228 $id=$this->uri->segment(4); 229 $this->load->model('paidlog_model'); 230 $data=$this->paidlog_model->getPaidlog($id); 231 $this->load->view('report/editSms',$data); 232 } 233 public function dodeleteSms() 234 { 235 $input=$this->input->post(); 236 $id=$input['sms_id']; 237 $this->load->model('paidlog_model'); 238 $data=$this->paidlog_model->delete($id); 239 $result['success']=1; 240 echo json_encode($result); 241 } 242 public function deleteSms() 243 { 244 $id=$this->uri->segment(4); 245 $this->load->model('paidlog_model'); 246 $data=$this->paidlog_model->getPaidlog($id); 247 $this->load->view('report/deleteSms',$data); 248 } 249 public function updateSms() 250 { 251 252 $input= $this->input->post(); 253 $this->load->model('paidlog_model'); 254 if (strlen($input['sms_content'])==0) 255 { 256 $result['errors'][]="Ná»i dung tin nhắn khÃŽng ÄÆ°á»£c Äá» trá»ng"; 257 } 258 if (strlen($input['sms_reply'])==0) 259 { 260 $result['errors'][]="Tin nhắn trả vá» khÃŽng ÄÆ°á»£c Äá» trá»ng"; 261 } 262 else 263 { 264 /* 265 if ($this->paidlog_model->isExist(array('field'=>'login_name','value'=>$input['login_name'],'id'=>$input['id']))) 266 { 267 $result['errors'][]="Tên ÄÄng nháºp Äã ÄÆ°á»£c sá» dụng"; 268 } 269 * 270 */ 271 } 272 if (strlen($input['service_id'])==0) 273 { 274 $result['errors'][]="Mã dá»ch vụ khÃŽng ÄÆ°á»£c Äá» trá»ng"; 275 } 276 else 277 { 278 /* 279 if ($this->paidlog_model->isExist(array('field'=>'cellphone','value'=>$input['cellphone'],'id'=>$input['id']))) 280 { 281 $result['errors'][]="Sá» Äiá»n thoại Äã ÄÆ°á»£c sá» dụng"; 282 } 283 * 284 */ 285 } 286 287 if (!isset($result['errors'])) 288 { 289 $this->load->model('paidlog_model'); 290 $this->paidlog_model->update($input['sms_id'],$input); 291 $result['success'] = 1; 292 } 293 echo json_encode($result); 294 } 295 public function test() { 296 297 298 for ($i = 1; $i <= 5000; $i++) { 299 $input['us_id']=rand(1,100); 300 $input['paid_type']=rand(1,2); 301 $input['amount']=rand(3,10)*1000; 302 $time=(rand((time()-(12*30*24*60*60)),time())); 303 $input['paid_time']= date("Y-m-d H:i:s",$time); 304 $this->load->model('paidlog_model'); 305 $this->paidlog_model->insert($input); 306 } 307 308 die(); 309 221 } 222 223 die(); 224 310 225 for ($i = 1; $i <= 100; $i++) { 311 $input['us_id'] =$i;312 $input['cellphone'] ="01234567".(100+$i);313 $input['collaborator'] =rand(1,100);314 $input['acc_balanced'] =rand(100000,1000000);315 $input['expire_date'] =date("Y-m-d H:i:s",time());316 $input['created_time'] =date("Y-m-d H:i:s",time());317 $input['updated_time'] =date("Y-m-d H:i:s",time());226 $input['us_id'] = $i; 227 $input['cellphone'] = "01234567" . (100 + $i); 228 $input['collaborator'] = rand(1, 100); 229 $input['acc_balanced'] = rand(100000, 1000000); 230 $input['expire_date'] = date("Y-m-d H:i:s", time()); 231 $input['created_time'] = date("Y-m-d H:i:s", time()); 232 $input['updated_time'] = date("Y-m-d H:i:s", time()); 318 233 $this->load->model('user_model'); 319 234 $this->user_model->insert($input);
Note: See TracChangeset
for help on using the changeset viewer.