4079cd55 by Yashwant

Login report changes

1 parent bb0764be
...@@ -1315,25 +1315,25 @@ function getURLLoad(varurl) ...@@ -1315,25 +1315,25 @@ function getURLLoad(varurl)
1315 form.submit(); 1315 form.submit();
1316 } 1316 }
1317 function filter2 (phrase, _id){ 1317 function filter2 (phrase, _id){
1318 if(phrase) 1318 if(phrase)
1319 { 1319 {
1320 var words = phrase.value.toLowerCase().split(" "); 1320 var words = phrase.value.toLowerCase().split(" ");
1321 var table = document.getElementById(_id); 1321 var table = document.getElementById(_id);
1322 var ele; 1322 var ele;
1323 for (var r = 0; r < table.rows.length; r++){ 1323 for (var r = 0; r < table.rows.length; r++){
1324 ele = table.rows[r].innerHTML.replace(/<[^>]+>/g,""); 1324 ele = table.rows[r].innerHTML.replace(/<[^>]+>/g,"");
1325 var displayStyle = 'none'; 1325 var displayStyle = 'none';
1326 for (var i = 0; i < words.length; i++) { 1326 for (var i = 0; i < words.length; i++) {
1327 if (ele.toLowerCase().indexOf(words[i])>=0) 1327 if (ele.toLowerCase().indexOf(words[i])>=0)
1328 displayStyle = ''; 1328 displayStyle = '';
1329 else { 1329 else {
1330 displayStyle = 'none'; 1330 displayStyle = 'none';
1331 break; 1331 break;
1332 } 1332 }
1333 } 1333 }
1334 table.rows[r].style.display = displayStyle; 1334 table.rows[r].style.display = displayStyle;
1335 }
1335 } 1336 }
1336 }
1337 } 1337 }
1338 function mailFile(filepath,emailids,subject,from,mailbody) 1338 function mailFile(filepath,emailids,subject,from,mailbody)
1339 { 1339 {
......
...@@ -76,7 +76,7 @@ kstychAppObject['config']['colorInverse']='{!!$skinarr[8]!!}'; ...@@ -76,7 +76,7 @@ kstychAppObject['config']['colorInverse']='{!!$skinarr[8]!!}';
76 <script src="{!!url('/')!!}/assets/components/modules/admin/chat/chatboxmanager.js"></script> 76 <script src="{!!url('/')!!}/assets/components/modules/admin/chat/chatboxmanager.js"></script>
77 <script src="{!!url('/')!!}/assets/js/highchart/highcharts.js"></script> 77 <script src="{!!url('/')!!}/assets/js/highchart/highcharts.js"></script>
78 <script> 78 <script>
79 var envCallback = "{{ env(app_domain) }}"; 79 var envCallback = "{{ env('app_domain') }}";
80 </script> 80 </script>
81 <script src="{!!url('/')!!}/jsbody?v={!!$v!!}"></script> 81 <script src="{!!url('/')!!}/jsbody?v={!!$v!!}"></script>
82 82
......
...@@ -15,11 +15,15 @@ $logtime =(isset($_GET['logtime'])) ? $_GET['logtime'] :9; ...@@ -15,11 +15,15 @@ $logtime =(isset($_GET['logtime'])) ? $_GET['logtime'] :9;
15 $logtimeto =(isset($_GET['logtimeto']))? $_GET['logtimeto']:20; 15 $logtimeto =(isset($_GET['logtimeto']))? $_GET['logtimeto']:20;
16 16
17 $logdate =(isset($_GET['logdate'])) ? strtotime($_GET['logdate']." ".$logtime.":00:00") 17 $logdate =(isset($_GET['logdate'])) ? strtotime($_GET['logdate']." ".$logtime.":00:00")
18 : strtotime(date("Y-m-d")." 09:00:00"); 18 : strtotime(date("Y-m-d")." 09:00:00");
19 $logdateto =(isset($_GET['logdateto']))? strtotime($_GET['logdateto']." ".$logtimeto.":00:00") 19 $logdateto =(isset($_GET['logdateto']))? strtotime($_GET['logdateto']." ".$logtimeto.":00:00")
20 : strtotime(date("Y-m-d")." 20:00:00"); 20 : strtotime(date("Y-m-d")." 20:00:00");
21 $campaign =(isset($_GET['campaign'])) ? $_GET['campaign'] : "All"; 21 $campaign =(isset($_GET['campaign'])) ? $_GET['campaign'] : "All";
22 22
23 // testing input
24 // $logtime = 9;$logtimeto = 20;$logdate = strtotime("2017-10-03 ".$logtime.":00:00");$logdateto = strtotime("2017-10-03 ".$logtimeto.":00:00");$campaign = 'All';
25 // testing input
26
23 $alist=CRMCallArchive::where('user_id','!=',0)->where('created_at','>=',date("Y-m-d H:i:s",$logdate+$timeoffset))->where('created_at','<=',date("Y-m-d H:i:s",$logdateto+$timeoffset)); 27 $alist=CRMCallArchive::where('user_id','!=',0)->where('created_at','>=',date("Y-m-d H:i:s",$logdate+$timeoffset))->where('created_at','<=',date("Y-m-d H:i:s",$logdateto+$timeoffset));
24 $alist->orderBy('user_id', 'ASC')->orderBy('ts_Close', 'ASC'); 28 $alist->orderBy('user_id', 'ASC')->orderBy('ts_Close', 'ASC');
25 29
...@@ -29,8 +33,8 @@ if($campaign != 'All') $alist->where('client','=',$campaign); ...@@ -29,8 +33,8 @@ if($campaign != 'All') $alist->where('client','=',$campaign);
29 33
30 $userarr=array(); 34 $userarr=array();
31 $allusers = DB::table('users as u1')->leftjoin('users AS u2', 'u2.username', '=', 'u1.supervisor') 35 $allusers = DB::table('users as u1')->leftjoin('users AS u2', 'u2.username', '=', 'u1.supervisor')
32 ->select('u1.id','u1.username','u1.fullname AS telecaller', 'u2.fullname AS sepervisor') 36 ->select('u1.id','u1.username','u1.fullname AS telecaller', 'u2.fullname AS sepervisor')
33 ->where('u1.status','=','Active'); 37 ->where('u1.status','=','Active');
34 38
35 $roclientstr=array();$didlinesstr=array(); 39 $roclientstr=array();$didlinesstr=array();
36 if($dashboarduser->exten!="")$didlinesstr[]=$dashboarduser->exten; 40 if($dashboarduser->exten!="")$didlinesstr[]=$dashboarduser->exten;
...@@ -38,34 +42,34 @@ $oclientlst=$wakka->clientsReadAccess(); sort($oclientlst); $oclientlst[0] = 'Al ...@@ -38,34 +42,34 @@ $oclientlst=$wakka->clientsReadAccess(); sort($oclientlst); $oclientlst[0] = 'Al
38 42
39 if(!empty($oclientlst))foreach($oclientlst as $tclnt)if($tclnt!="") 43 if(!empty($oclientlst))foreach($oclientlst as $tclnt)if($tclnt!="")
40 { 44 {
41 $roclientstr[]="$tclnt"; 45 $roclientstr[]="$tclnt";
42 46
43 $mastersdata=$wakka->getCompanyMaster($tclnt); 47 $mastersdata=$wakka->getCompanyMaster($tclnt);
44 if(!empty($mastersdata["DialerDID"]))$didlinesstr[]=$mastersdata["DialerDID"]; 48 if(!empty($mastersdata["DialerDID"]))$didlinesstr[]=$mastersdata["DialerDID"];
45 } 49 }
46 50
47 $breaks=array("Paused","AgentBriefing","TeamMeeting","QualityFeedback","LunchBreak","TeaBreak","UtilityBreak","FloorAnnouncements","DownTime"); 51 $breaks=array("Paused","AgentBriefing","TeamMeeting","QualityFeedback","LunchBreak","TeaBreak","UtilityBreak","FloorAnnouncements","DownTime");
48 $reporthead=array_merge(array("#","Telecaller","TelecallerID","Supervisor","Signin","Signout","Count","Duration","Total","Wait","Call","Talk","Dispo","P-Call","P-Talk","P-Dispo","M-Call","M-Talk","M-Dispo","I-Call","I-Talk","I-Dispo"),$breaks); 52 $reporthead=array_merge(array("#","Telecaller","TelecallerID","Supervisor","Sessions","CallCount","Duration","Total","Wait","Call","Talk","Dispo","P-Call","P-Talk","P-Dispo","M-Call","M-Talk","M-Dispo","I-Call","I-Talk","I-Dispo"),$breaks);
49 $reportarray=array(); 53 $reportarray=array();
50 54
51 $i=1; 55 $i=1;
52 if($dashboarduser->usertype != 'Admin') 56 if($dashboarduser->usertype != 'Admin')
53 { 57 {
54 $uidlist=array($dashboarduser->id); 58 $uidlist=array($dashboarduser->id);
55 $allusers=$allusers->where(function ($query) use($dashboarduser) { 59 $allusers=$allusers->where(function ($query) use($dashboarduser) {
56 $query->where('u1.supervisor','=',$dashboarduser->username) 60 $query->where('u1.supervisor','=',$dashboarduser->username)
57 ->orWhere('u1.lteam2','=',$dashboarduser->username) 61 ->orWhere('u1.lteam2','=',$dashboarduser->username)
58 ->orWhere('u1.lteam','=',$dashboarduser->username); 62 ->orWhere('u1.lteam','=',$dashboarduser->username);
59 })->get(); 63 })->get();
60 64
61 foreach($allusers as $tuser) 65 foreach($allusers as $tuser)
62 { 66 {
63 $uidlist[]=$tuser->id; 67 $uidlist[]=$tuser->id;
64 $reportarray[$tuser->id]=array("#"=>$i++,"Telecaller"=>$tuser->telecaller,"TelecallerID"=>$tuser->username,"Supervisor"=>$tuser->sepervisor); 68 $reportarray[$tuser->id]=array("#"=>$i++,"Telecaller"=>$tuser->telecaller,"TelecallerID"=>$tuser->username,"Supervisor"=>$tuser->sepervisor);
65 } 69 }
66 $reportarray[$dashboarduser->id]=array("#"=>$i++,"Telecaller"=>$dashboarduser->fullname,"TelecallerID"=>$dashboarduser->username,"Supervisor"=>$dashboarduser->supervisor); 70 $reportarray[$dashboarduser->id]=array("#"=>$i++,"Telecaller"=>$dashboarduser->fullname,"TelecallerID"=>$dashboarduser->username,"Supervisor"=>$dashboarduser->supervisor);
67 71
68 $alist=$alist->whereIn('user_id',$uidlist); 72 $alist=$alist->whereIn('user_id',$uidlist);
69 73
70 /*$alist=$alist->where(function ($query) use($roclientstr,$uidlist,$didlinesstr){ 74 /*$alist=$alist->where(function ($query) use($roclientstr,$uidlist,$didlinesstr){
71 $query->orWhereIn('client',$roclientstr) 75 $query->orWhereIn('client',$roclientstr)
...@@ -74,219 +78,240 @@ if($dashboarduser->usertype != 'Admin') ...@@ -74,219 +78,240 @@ if($dashboarduser->usertype != 'Admin')
74 78
75 $userlog=$userlog->whereIn('user_id',$uidlist); 79 $userlog=$userlog->whereIn('user_id',$uidlist);
76 }else{ 80 }else{
77 $allusers=$allusers->get(); 81 $allusers=$allusers->get();
78 foreach($allusers as $tuser) 82 foreach($allusers as $tuser)
79 { 83 {
80 $reportarray[$tuser->id]=array("#"=>$i++,"Telecaller"=>$tuser->telecaller,"TelecallerID"=>$tuser->username,"Supervisor"=>$tuser->sepervisor); 84 $reportarray[$tuser->id]=array("#"=>$i++,"Telecaller"=>$tuser->telecaller,"TelecallerID"=>$tuser->username,"Supervisor"=>$tuser->sepervisor);
81 } 85 }
82 } 86 }
83 87
88 // echo "<pre>"; print_r($allusers);exit;
89
84 $alist=$alist->get(); 90 $alist=$alist->get();
85 $userlog=$userlog->get(); 91 $userlog=$userlog->get();
86 $prev_close = 0; 92 $prev_close = 0;
87 93
94 // echo count($userlog);exit;
95
88 foreach($alist as $aline) 96 foreach($alist as $aline)
89 { 97 {
90 if($prev_user != $aline->user_id || $prev_close <= $aline->ts_Wait) 98 if($prev_user != $aline->user_id || $prev_close <= $aline->ts_Wait)
91 { 99 {
92 $userid=$aline->user_id; 100 $userid=$aline->user_id;
93 101
94 $talktime=$aline->talkSec+$aline->recstartSec+$aline->recendSec; 102 $talktime=$aline->talkSec+$aline->recstartSec+$aline->recendSec;
95 $totaltime=$aline->callSec+$talktime+$aline->dispoSec; 103 $totaltime=$aline->callSec+$talktime+$aline->dispoSec;
96 104
97 $reportarray[$userid]["oncall"]+=$totaltime/1000; 105 $reportarray[$userid]["oncall"]+=$totaltime/1000;
98 //$reportarray[$userid]["Wait"]+=$aline->waitSec/1000; 106 //$reportarray[$userid]["Wait"]+=$aline->waitSec/1000;
99 $reportarray[$userid]["Call"]+=$aline->callSec/1000; 107 $reportarray[$userid]["Call"]+=$aline->callSec/1000;
100 $reportarray[$userid]["Talk"]+=$talktime/1000; 108 $reportarray[$userid]["Talk"]+=$talktime/1000;
101 $reportarray[$userid]["Dispo"]+=$aline->dispoSec/1000; 109 $reportarray[$userid]["Dispo"]+=$aline->dispoSec/1000;
102 110
103 if($aline->type == 'Progressive') 111 if($aline->type == 'Progressive')
104 { 112 {
105 $reportarray[$userid]["P-Call"]+=$aline->callSec/1000; 113 $reportarray[$userid]["P-Call"]+=$aline->callSec/1000;
106 $reportarray[$userid]["P-Talk"]+=$talktime/1000; 114 $reportarray[$userid]["P-Talk"]+=$talktime/1000;
107 $reportarray[$userid]["P-Dispo"]+=$aline->dispoSec/1000; 115 $reportarray[$userid]["P-Dispo"]+=$aline->dispoSec/1000;
116 }
117
118 if($aline->type == 'Manual')
119 {
120 $reportarray[$userid]["M-Call"]+=$aline->callSec/1000;
121 $reportarray[$userid]["M-Talk"]+=$talktime/1000;
122 $reportarray[$userid]["M-Dispo"]+=$aline->dispoSec/1000;
123 }
124
125 if($aline->type == 'Inbound')
126 {
127 $reportarray[$userid]["I-Call"]+=$aline->callSec/1000;
128 $reportarray[$userid]["I-Talk"]+=$talktime/1000;
129 $reportarray[$userid]["I-Dispo"]+=$aline->dispoSec/1000;
130 }
108 } 131 }
109 132 $reportarray[$userid]["CallCount"]++;
110 if($aline->type == 'Manual')
111 {
112 $reportarray[$userid]["M-Call"]+=$aline->callSec/1000;
113 $reportarray[$userid]["M-Talk"]+=$talktime/1000;
114 $reportarray[$userid]["M-Dispo"]+=$aline->dispoSec/1000;
115 }
116
117 if($aline->type == 'Inbound')
118 {
119 $reportarray[$userid]["I-Call"]+=$aline->callSec/1000;
120 $reportarray[$userid]["I-Talk"]+=$talktime/1000;
121 $reportarray[$userid]["I-Dispo"]+=$aline->dispoSec/1000;
122 }
123 }
124 $reportarray[$userid]["Count"]++;
125 $prev_close = $aline->ts_Close;//-ts_Wait 133 $prev_close = $aline->ts_Close;//-ts_Wait
126 $prev_user = $aline->user_id;//-ts_Wait 134 $prev_user = $aline->user_id;//-ts_Wait
127 } 135 }
128 136
129 function cmp($a, $b) { 137 function cmp($a, $b) {
130 return $a["ts"] - $b["ts"]; 138 return $a["ts"] - $b["ts"];
131 } 139 }
132 $userLogin=array(); 140 $userLogin=array();
133 foreach($userlog as $ulog) 141 foreach($userlog as $ulog)
134 { 142 {
135 $data=json_decode($ulog->data,true); 143 $data=json_decode($ulog->data,true);
136 usort($data, "cmp"); 144 usort($data, "cmp");
137 145
138 $lastSip = end($data); 146 $lastSip = end($data);
139 $starttime = strtotime($ulog->startdate.' '.$ulog->starttime); 147 $starttime = strtotime($ulog->startdate.' '.$ulog->starttime);
140 $endtime = round($lastSip['ts']/1000); 148 $endtime = round($lastSip['ts']/1000);
141 $userLogin[$ulog->user_id]['duration'] += ($endtime-$starttime); 149 $userLogin[$ulog->user_id]['duration'] += ($endtime-$starttime);
142 $userLogin[$ulog->user_id]['start'][] = $starttime; 150 $userLogin[$ulog->user_id]['start'][] = $starttime;
143 $userLogin[$ulog->user_id]['end'][] = $endtime; 151 $userLogin[$ulog->user_id]['end'][] = $endtime;
144 152
145 $prets=strtotime($ulog->startdate." ".$ulog->starttime)*1000; 153 $prets=strtotime($ulog->startdate." ".$ulog->starttime)*1000;
146 $previous="Paused-Paused"; 154 $previous="Paused-Paused";
147 foreach($data as $sdata) 155 foreach($data as $sdata)
148 { 156 {
149 $pts=$sdata['ts']; 157 $pts=$sdata['ts'];
150 if(isset($sdata['states'])) 158 if(isset($sdata['states']))
151 { 159 {
152 foreach($sdata['states'] as $ts=>$states) 160 foreach($sdata['states'] as $ts=>$states)
153 { 161 {
154 if($previous != "Paused-WRAPUP")$previous = str_replace('Paused-', '', $previous); 162 if($previous != "Paused-WRAPUP")$previous = str_replace('Paused-', '', $previous);
155 163
156 if(!in_array($previous,$reporthead) && !in_array($previous,array('Progressive-','Manual-','Ready-Incoming','Ready-Predictive','DialNext-','Paused-WRAPUP'))) { 164 if(!in_array($previous,$reporthead) && !in_array($previous,array('Progressive-','Manual-','Ready-Incoming','Ready-Predictive','DialNext-','Paused-WRAPUP'))) {
157 $previous = 'Paused'; 165 $previous = 'Paused';
158 } 166 }
159 167
160 $reportarray[$ulog->user_id][$previous]+=round($ts-$prets,2)/1000; 168 $reportarray[$ulog->user_id][$previous]+=round($ts-$prets,2)/1000;
161 169
162 $prets=$ts; 170 $prets=$ts;
163 $previous=$states[0].'-'.$states[1]; 171 $previous=$states[0].'-'.$states[1];
164 } 172 }
165 if($previous != "Paused-WRAPUP")$previous = str_replace('Paused-', '', $previous); 173 if($previous != "Paused-WRAPUP")$previous = str_replace('Paused-', '', $previous);
166 $reportarray[$ulog->user_id][$previous]+=round($pts-$prets,2)/1000; 174 $reportarray[$ulog->user_id][$previous]+=round($pts-$prets,2)/1000;
167 $prets=$pts; 175 $prets=$pts;
168 } 176 }
169 } 177 }
170 } 178 }
171 179
172 if(count($userLogin)) foreach ($userLogin as $userid => $value) 180 if(count($userLogin)) foreach ($userLogin as $userid => $value)
173 { 181 {
174 $break_time=0; 182 $break_time=0;
175 foreach ($breaks as $break) { 183 foreach ($breaks as $break) {
176 $break_time+=$reportarray[$userid][$break]; 184 $break_time+=$reportarray[$userid][$break];
177 } 185 }
178 $reportarray[$userid]["Signin"]=date("Y-m-d H:i:s", min($value['start'])-$timeoffset); 186 // print_r($value);
179 $reportarray[$userid]["Signout"]=date("Y-m-d H:i:s", max($value['end'])-$timeoffset); 187
180 $reportarray[$userid]["Duration"]=$value['duration']; 188 $sessionsStr = "";
181 $reportarray[$userid]["Total"]=$value['duration']-$break_time; 189 for($i = 0; $i < count($value['start']); $i++){
182 $reportarray[$userid]["Wait"]=$reportarray[$userid]["Total"]-$reportarray[$userid]['oncall']; 190 if($sessionsStr == ""){
191 $sessionsStr .= date("Y-m-d H:i:s", $value['start'][$i]-$timeoffset)." - ".date("Y-m-d H:i:s", $value['end'][$i]-$timeoffset);
192 }else{
193 $sessionsStr .= ",\n".date("Y-m-d H:i:s", $value['start'][$i]-$timeoffset)." - ".date("Y-m-d H:i:s", $value['end'][$i]-$timeoffset);
194 }
195 }
196 // echo $sessionsStr."<br>-----------<br>";
197
198 $reportarray[$userid]["Sessions"]=$sessionsStr;
199 // $reportarray[$userid]["Signin"]=date("Y-m-d H:i:s", min($value['start'])-$timeoffset);
200 // $reportarray[$userid]["Signout"]=date("Y-m-d H:i:s", max($value['end'])-$timeoffset);
201 $reportarray[$userid]["Duration"]=$value['duration'];
202 $reportarray[$userid]["Total"]=$value['duration']-$break_time;
203 $reportarray[$userid]["Wait"]=$reportarray[$userid]["Total"]-$reportarray[$userid]['oncall'];
183 } 204 }
184 205
206 // echo "<pre>"; print_r($userLogin);
207 // exit;
208
185 $highestColumn = sizeof($reporthead); 209 $highestColumn = sizeof($reporthead);
186 if(count($reportarray)) { 210 if(count($reportarray)) {
187 $outhead="<tr>";$outstr=""; 211 $outhead="<tr>";$outstr="";
188 for ($head = 0; $head < $highestColumn; $head++){ 212 for ($head = 0; $head < $highestColumn; $head++){
189 if($reporthead[$head] == '#') { 213 if($reporthead[$head] == "Sessions"){
190 $mode_str = "<a onclick='displayMode(".'"summation"'.");return false;' href='#'><i class='fa fa-plus-square-o'></i></a> / <a onclick='displayMode(".'"percent"'.");return false;' href='#'>%</a>"; 214 $outhead.="<td style='width:270px;display:block;'>".$reporthead[$head]."</td>";
191 $outhead.="<td>".$mode_str."</td>"; 215 }else{
192 } 216 $outhead.="<td>".$reporthead[$head]."</td>";
193 else { 217 }
194 $outhead.="<td>".$reporthead[$head]."</td>"; 218 }
195 } 219 $outhead.="</tr>";
196 } 220 $utotalarr = array("Telecaller"=>'Total');
197 $outhead.="</tr>"; 221
198 $utotalarr = array("Telecaller"=>'Total'); 222 $reportRowNo = 1;
199 223 foreach($reportarray as $uid=>$uarr)
200 foreach($reportarray as $uid=>$uarr) 224 {
201 { 225 if(array_key_exists('Duration',$uarr) && array_key_exists('TelecallerID',$uarr))
202 if(array_key_exists('Signin',$uarr)) 226 {
203 { 227 $outstr.="<tr>";
204 $outstr.="<tr>"; 228 for ($head = 0; $head < $highestColumn; $head++){
205 for ($head = 0; $head < $highestColumn; $head++){ 229 if($head < 1){
206 if($head < 6) { 230 $data_str = $reportRowNo; $reportRowNo++;
207 $data_str = $uarr[$reporthead[$head]]; 231 }elseif($head < 5) {
208 } 232 // if($head < 6) {
209 elseif($head < 7) { 233 $data_str = $uarr[$reporthead[$head]];
210 $data_str = $uarr[$reporthead[$head]]; 234 }
211 $utotalarr[$reporthead[$head]] += $uarr[$reporthead[$head]]; 235 elseif($head < 6) {
212 } 236 $data_str = $uarr[$reporthead[$head]];
213 else { 237 $utotalarr[$reporthead[$head]] += $uarr[$reporthead[$head]];
214 $data_str = secToDuration(round($uarr[$reporthead[$head]])); 238 }
215 $utotalarr[$reporthead[$head]] += $uarr[$reporthead[$head]]; 239 else {
216 } 240 $data_str = secToDuration(round($uarr[$reporthead[$head]]));
217 $outstr.="<td>".$data_str."</td>"; 241 $utotalarr[$reporthead[$head]] += $uarr[$reporthead[$head]];
218 } 242 }
219 $outstr.="</tr>"; 243 $outstr.="<td>".$data_str."</td>";
220 } 244 }
221 } 245 $outstr.="</tr>";
222 $outstr.="<tr>"; 246 }
223 for ($head = 0; $head < $highestColumn; $head++) 247 }
224 { 248 $outstr.="<tr>";
225 if($head < 7) { 249 for ($head = 0; $head < $highestColumn; $head++)
226 $data_str = $utotalarr[$reporthead[$head]]; 250 {
227 } 251 if($head < 6) {
228 else { 252 $data_str = $utotalarr[$reporthead[$head]];
229 $data_str = secToDuration($utotalarr[$reporthead[$head]]); 253 }
230 } 254 else {
231 $outstr.="<td>".$data_str."</td>"; 255 $data_str = secToDuration($utotalarr[$reporthead[$head]]);
232 } 256 }
233 $outstr.="</tr>"; 257 $outstr.="<td>".$data_str."</td>";
258 }
259 $outstr.="</tr>";
260 } else {
261 $outhead.="<tr><td>No Records Found.</td></tr>";
234 } 262 }
235 else {
236 $outhead.="<tr><td>No Records Found.</td></tr>";
237 }
238 263
239 if(Input::has("dllogxls")) 264 if(Input::has("dllogxls"))
240 { 265 {
241 include_once(app_path().'/lib/phpexcel/PHPExcel.php'); 266 include_once(app_path().'/lib/phpexcel/PHPExcel.php');
242 267
243 $inputFileType = "Excel5"; 268 $inputFileType = "Excel5";
244 $objReader = PHPExcel_IOFactory::createReader($inputFileType); 269 $objReader = PHPExcel_IOFactory::createReader($inputFileType);
245 $objPHPExcel = $objReader->load("assets/extras/blank.xls"); 270 $objPHPExcel = $objReader->load("assets/extras/blank.xls");
246 $baseRow = 2; 271 $baseRow = 2;
247 272
248 273
249 $highestColumn = sizeof($reporthead); 274 $highestColumn = sizeof($reporthead);
250 for ($head = 0; $head < $highestColumn; $head++){ 275 for ($head = 0; $head < $highestColumn; $head++){
251 $colstr=PHPExcel_Cell::stringFromColumnIndex($head); 276 $colstr=PHPExcel_Cell::stringFromColumnIndex($head);
252 $objPHPExcel->getActiveSheet()->setCellValue($colstr."1", $reporthead[$head]); 277 $objPHPExcel->getActiveSheet()->setCellValue($colstr."1", $reporthead[$head]);
253 } 278 }
254 279
255 foreach($reportarray as $uid=>$uarr) 280 foreach($reportarray as $uid=>$uarr)
256 { 281 {
257 $row = $baseRow++; 282 $row = $baseRow++;
258 $col = 0; 283 $col = 0;
259 284
260 for ($head = 0; $head < $highestColumn; $head++){ 285 for ($head = 0; $head < $highestColumn; $head++){
261 $excelval = ($head < 7) ? $uarr[$reporthead[$head]] : secToDuration(round($uarr[$reporthead[$head]])); 286 $excelval = ($head < 6) ? $uarr[$reporthead[$head]] : secToDuration(round($uarr[$reporthead[$head]]));
262 $colstr=PHPExcel_Cell::stringFromColumnIndex($head); 287 $colstr=PHPExcel_Cell::stringFromColumnIndex($head);
263 $objPHPExcel->getActiveSheet()->setCellValue($colstr.$row, $excelval); 288 $objPHPExcel->getActiveSheet()->setCellValue($colstr.$row, $excelval);
264 } 289 }
265 } 290 }
266 291
267 $row++; 292 $row++;
268 for ($head = 0; $head < $highestColumn; $head++){ 293 for ($head = 0; $head < $highestColumn; $head++){
269 $excelval = ($head < 7) ? $utotalarr[$reporthead[$head]] : secToDuration(round($utotalarr[$reporthead[$head]])); 294 $excelval = ($head < 6) ? $utotalarr[$reporthead[$head]] : secToDuration(round($utotalarr[$reporthead[$head]]));
270 $colstr=PHPExcel_Cell::stringFromColumnIndex($head); 295 $colstr=PHPExcel_Cell::stringFromColumnIndex($head);
271 $objPHPExcel->getActiveSheet()->setCellValue($colstr.$row, $excelval); 296 $objPHPExcel->getActiveSheet()->setCellValue($colstr.$row, $excelval);
272 } 297 }
273 298
274 header('Content-Type: application/vnd.ms-excel'); 299 header('Content-Type: application/vnd.ms-excel');
275 header('Content-Disposition: attachment;filename="AgentTime.xls"'); 300 header('Content-Disposition: attachment;filename="AgentTime.xls"');
276 header('Cache-Control: max-age=0'); 301 header('Cache-Control: max-age=0');
277 302
278 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $inputFileType); 303 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $inputFileType);
279 $objWriter->save('php://output'); 304 $objWriter->save('php://output');
280 305
281 return ; 306 return ;
282 } 307 }
283 308
284 function secToDuration($sec) { 309 function secToDuration($sec) {
285 return sprintf("%02d%s%02d%s%02d", floor($sec/3600), ':', ($sec/60)%60, ':', $sec%60); 310 return sprintf("%02d%s%02d%s%02d", floor($sec/3600), ':', ($sec/60)%60, ':', $sec%60);
286 } 311 }
287 ?> 312 ?>
288 313
289 <style>#logtable.td{vertical-align:top;padding:20px;}#logtable.tr{height:28px;overflow-y:hidden;} 314 <style>#logtable.td{vertical-align:top;padding:20px;}#logtable.tr{height:28px;overflow-y:hidden;}
290 /*#logtable.table thead tr{ 315 /*#logtable.table thead tr{
291 display:block; 316 display:block;
292 } 317 }
...@@ -295,90 +320,90 @@ function secToDuration($sec) { ...@@ -295,90 +320,90 @@ function secToDuration($sec) {
295 display:block; 320 display:block;
296 height:500px; 321 height:500px;
297 overflow:auto;//set tbody to auto 322 overflow:auto;//set tbody to auto
298 }*/ 323 }*/
299 </style> 324 </style>
300 325
301 <div class=innerAll> 326 <div class=innerAll>
302 <h4 style="float:left;width:50%;margin:10px 0;">Agent Time Report</h4> 327 <h4 style="float:left;width:50%;margin:10px 0;">Login Report <small>(Agent Time Report)</small></h4>
303 <div style="float:right;width:50%"> 328 <div style="float:right;width:50%">
304 <button class="pull-right btn btn-sm btn-default" onclick='dlAgentlogXls();return false;' title='Download'><i class='fa fa-download'></i> Download</button> 329 <button class="pull-right btn btn-sm btn-default" onclick='dlAgentlogXls();return false;' title='Download'><i class='fa fa-download'></i> Download</button>
305 </div> 330 </div>
306 <div style="clear:both"></div> 331 <div style="clear:both"></div>
307 <hr style="margin-bottom: 5px;"> 332 <hr style="margin-bottom: 5px;">
308 <div> 333 <div>
309 Search <input id=filter name="filter" type="text" style="border:1px solid #efefef; padding: 2px 10px;">&nbsp;&nbsp; 334 Search <input id=filter name="filter" type="text" style="border:1px solid #efefef; padding: 2px 10px;">&nbsp;&nbsp;
310 Date: From <input size=10 id='modfrom' name='modfrom' type='text' value='<?php echo date("Y-m-d",$logdate); ?>' onchange='statusLogReloadFun("");' /> 335 Date: From <input size=10 id='modfrom' name='modfrom' type='text' value='<?php echo date("Y-m-d",$logdate); ?>' onchange='statusLogReloadFun("");' />
311 <select id="modtime" style="border:1px solid #efefef;" onchange='statusLogReloadFun("");'> 336 <select id="modtime" style="border:1px solid #efefef;" onchange='statusLogReloadFun("");'>
312 <?php 337 <?php
313 foreach (range(0,23) as $hour) { 338 foreach (range(0,23) as $hour) {
314 $selected = ($hour == $logtime) ? "selected" : ""; 339 $selected = ($hour == $logtime) ? "selected" : "";
315 echo "<option value='$hour' $selected>".str_pad($hour, 2, "0", STR_PAD_LEFT) . ":00</option>"; 340 echo "<option value='$hour' $selected>".str_pad($hour, 2, "0", STR_PAD_LEFT) . ":00</option>";
316 } 341 }
317 ?></select> 342 ?>
318 To <input size=10 id='modto' name='modto' type='text' value='<?php echo date("Y-m-d",$logdateto); ?>' onchange='statusLogReloadFun("");' /> 343 </select>
319 <select id="modtimeto" style="border:1px solid #efefef;" onchange='statusLogReloadFun("");'> 344 To <input size=10 id='modto' name='modto' type='text' value='<?php echo date("Y-m-d",$logdateto); ?>' onchange='statusLogReloadFun("");' />
320 <?php 345 <select id="modtimeto" style="border:1px solid #efefef;" onchange='statusLogReloadFun("");'>
321 foreach (range(0,23) as $hour) { 346 <?php
322 $selected = ($hour == $logtimeto) ? "selected" : ""; 347 foreach (range(0,23) as $hour) {
323 echo "<option value='$hour' $selected>".str_pad($hour, 2, "0", STR_PAD_LEFT) . ":00</option>"; 348 $selected = ($hour == $logtimeto) ? "selected" : "";
324 } 349 echo "<option value='$hour' $selected>".str_pad($hour, 2, "0", STR_PAD_LEFT) . ":00</option>";
325 ?></select>&nbsp;&nbsp; 350 }
326 Campaign 351 ?></select>&nbsp;&nbsp;
327 <select id="campaign" style="border:1px solid #efefef;" onchange='statusLogReloadFun("");'> 352 Campaign
328 <?php foreach($oclientlst as $c){$s="";if($c==$campaign)$s='selected';echo "<option value='$c' $s>$c</option>";} ?> 353 <select id="campaign" style="border:1px solid #efefef;" onchange='statusLogReloadFun("");'>
329 </select> 354 <?php foreach($oclientlst as $c){$s="";if($c==$campaign)$s='selected';echo "<option value='$c' $s>$c</option>";} ?>
330 </div> 355 </select>
331 356 </div>
332 <div style="clear:both"></div> 357
333 <hr style="margin:5px;"> 358 <div style="clear:both"></div>
334 359 <hr style="margin:5px;">
335 <div style="overflow: auto; margin-top: 10px;"> 360
336 <table id=logtable class='footable table table-striped table-bordered table-white table-primary footable-loaded' style='font-size:12px; margin:0; border:1px solid #BBB;'> 361 <div style="overflow: auto; margin-top: 10px;">
337 <thead><?php echo $outhead; ?></thead> 362 <table id=logtable class='footable table table-striped table-bordered table-white table-primary footable-loaded' style='font-size:12px; margin:0; border:1px solid #BBB;'>
338 <?php echo $outstr; ?> 363 <thead><?php echo $outhead; ?></thead>
339 </table> 364 <tbody id="logTableData"><?php echo $outstr; ?></tbody>
340 </div> 365 </table>
341 366 </div>
342 <div id=dialoglog></div> 367
368 <div id=dialoglog></div>
343 </div> 369 </div>
344 370
345 <script> 371 <script>
346 $(document).ready(function() { 372 $(document).ready(function() {
347 if(!$('#dialoglog').hasClass('ui-dialog-content')) 373 if(!$('#dialoglog').hasClass('ui-dialog-content'))
348 { 374 {
349 $('#dialoglog').dialog({ 375 $('#dialoglog').dialog({
350 autoOpen: false, 376 autoOpen: false,
351 width: '70%', 377 width: '70%',
352 buttons: { 378 buttons: {
353 "Ok": function() { 379 "Ok": function() {
354 $(this).dialog("close"); 380 $(this).dialog("close");
355 }, 381 },
356 "Cancel": function() { 382 "Cancel": function() {
357 $(this).dialog("close"); 383 $(this).dialog("close");
358 } 384 }
359 } 385 }
360 }); 386 });
361 } 387 }
362 388 waitKeyUpRun("filter",function() { filter2(document.getElementById('filter'), 'logTableData') },"2000");
363 waitKeyUpRun("filter",function() { filter2(document.getElementById('filter'), 'logtable') },"2000"); 389 $('#modfrom').datepicker({dateFormat: 'yy-mm-dd',inline: true,changeYear: true,selectOtherMonths: true,yearRange: '<?php echo (date('Y')-70).":".(date('Y')+5); ?>'});
364 $('#modfrom').datepicker({dateFormat: 'yy-mm-dd',inline: true,changeYear: true,selectOtherMonths: true,yearRange: '<?php echo (date('Y')-70).":".(date('Y')+5); ?>'}); 390 $('#modto').datepicker({dateFormat: 'yy-mm-dd',inline: true,changeYear: true,selectOtherMonths: true,yearRange: '<?php echo (date('Y')-70).":".(date('Y')+5); ?>'});
365 $('#modto').datepicker({dateFormat: 'yy-mm-dd',inline: true,changeYear: true,selectOtherMonths: true,yearRange: '<?php echo (date('Y')-70).":".(date('Y')+5); ?>'});
366 }); 391 });
367 392
368 function dataString() 393 function dataString()
369 { 394 {
370 return 'logdate='+$("#modfrom").val()+'&logtime='+$("#modtime").val()+'&logdateto='+$("#modto").val()+'&logtimeto='+$("#modtimeto").val()+'&campaign='+$("#campaign").val(); 395 return 'logdate='+$("#modfrom").val()+'&logtime='+$("#modtime").val()+'&logdateto='+$("#modto").val()+'&logtimeto='+$("#modtimeto").val()+'&campaign='+$("#campaign").val();
371 } 396 }
372 function statusLogReloadFun(sortby) 397 function statusLogReloadFun(sortby)
373 { 398 {
374 var sortstr='';if(sortby!="")sortstr="&sort="+sortby 399 var sortstr='';if(sortby!="")sortstr="&sort="+sortby
375 var searchStr = dataString(); 400 var searchStr = dataString();
376 doAjax('dialer/agenttime?'+searchStr+sortstr,'','rightmainreportdiv','ajax_dialer_reports','singlethis','GET'); 401 doAjax('dialer/agenttime?'+searchStr+sortstr,'','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');
377 } 402 }
378 function dlAgentlogXls() 403 function dlAgentlogXls()
379 { 404 {
380 var searchStr = dataString(); 405 var searchStr = dataString();
381 window.open('dialer/agenttime?dllogxls=1&'+searchStr); 406 window.open('dialer/agenttime?dllogxls=1&'+searchStr);
382 return false; 407 return false;
383 } 408 }
384 </script> 409 </script>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!