function createGrid($customerid = '', $cdrtype = '', $start = 0, $limit = 1, $filter = null, $content = null, $order = null, $divName = "grid", $ordering = "", $stype = array(), $allOrAnswer = null) { global $locate; $_SESSION['ordering'] = $ordering; if ($filter == null || $content == null || !is_array($content) && $content == 'Array' || !is_array(filter) && $filter == 'Array') { $content = null; $filter = null; $numRows =& Customer::getCdrNumRows($customerid, $cdrtype, null, null, $allOrAnswer); $arreglo =& Customer::getAllCdrRecords($customerid, $cdrtype, $start, $limit, $order, null, $allOrAnswer); } else { foreach ($content as $value) { if (trim($value) != "") { //搜索内容有值 $flag = "1"; break; } } foreach ($filter as $value) { if (trim($value) != "") { //搜索条件有值 $flag2 = "1"; break; } } foreach ($stype as $value) { if (trim($value) != "") { //搜索方式有值 $flag3 = "1"; break; } } if ($flag != "1" || $flag2 != "1") { //无值 $numRows =& Customer::getCdrNumRows($customerid, $cdrtype, null, null, $allOrAnswer); $arreglo =& Customer::getAllCdrRecords($customerid, $cdrtype, $start, $limit, $order, null, $allOrAnswer); } elseif ($flag3 != 1) { //未选择搜索方式 $order = "calldate"; $numRows =& Customer::getCdrNumRowsMore($customerid, $cdrtype, $filter, $content, null, $allOrAnswer); $arreglo =& Customer::getCdrRecordsFilteredMore($customerid, $cdrtype, $start, $limit, $filter, $content, $order, null, null, $allOrAnswer); } else { $order = "calldate"; $numRows =& Customer::getCdrNumRowsMorewithstype($customerid, $cdrtype, $filter, $content, $stype, $allOrAnswer); $arreglo =& Customer::getCdrRecordsFilteredMorewithstype($customerid, $cdrtype, $start, $limit, $filter, $content, $stype, $order, $allOrAnswer); } } // Databse Table: fields $fields = array(); $fields[] = 'calldate'; $fields[] = 'src'; $fields[] = 'dst'; $fields[] = 'didnumber'; $fields[] = 'dstchannel'; $fields[] = 'username'; $fields[] = 'groupname'; $fields[] = 'duration'; $fields[] = 'billsec'; $fields[] = 'disposition'; $fields[] = 'billsec_leg_a'; $fields[] = 'credit'; $fileds[] = 'destination'; $fileds[] = 'transfertime'; $fileds[] = 'transfertarget'; $fileds[] = 'memo'; $fileds[] = 'filename'; // HTML table: Headers showed $headers = array(); $headers[] = $locate->Translate("Calldate") . "<br>"; $headers[] = $locate->Translate("Src") . "<br>"; $headers[] = $locate->Translate("Dst") . "<br>"; $headers[] = $locate->Translate("Callee Id") . "<br>"; $headers[] = $locate->Translate("Agent") . '<br>'; $headers[] = $locate->Translate("UserName") . '<br>'; $headers[] = $locate->Translate("AgentGroup Name") . '<br>'; $headers[] = $locate->Translate("Duration") . "<br>"; $headers[] = $locate->Translate("Billsec") . "<br>"; $headers[] = $locate->Translate("Disposition") . "<br>"; $headers[] = $locate->Translate("Total Billsec") . "<br>"; $headers[] = $locate->Translate("Credit") . "<br>"; #$headers[] = $locate->Translate("Destination")."<br>"; $headers[] = $locate->Translate("Transfer Time") . "<br>"; $headers[] = $locate->Translate("Transfer Target") . "<br>"; #$headers[] = $locate->Translate("Memo")."<br>"; $headers[] = $locate->Translate("filename") . "<br>"; // HTML table: hearders attributes $attribsHeader = array(); $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; #$attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; #$attribsHeader[] = 'width=""'; // HTML Table: columns attributes $attribsCols = array(); $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; #$attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; #$attribsCols[] = 'style="text-align: left"'; // HTML Table: If you want ascendent and descendent ordering, set the Header Events. $eventHeader = array(); //$eventHeader[]= ''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","calldate","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","src","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","dst","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","didnumber","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","dstchannel","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","username","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","groupname","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","duration","' . $divName . '","ORDERING");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","billsec","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","disposition","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","billsec_leg_a","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","credit","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","transfertime","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","transfertarget","' . $divName . '","ORDERING","' . $stype . '");return false;\''; #$eventHeader[]= 'onClick=\'xajax_showGrid(0,'.$limit.',"'.$filter.'","'.$content.'","destination","'.$divName.'","ORDERING","'.$stype.'");return false;\''; #$eventHeader[]= 'onClick=\'xajax_showGrid(0,'.$limit.',"'.$filter.'","'.$content.'","memo","'.$divName.'","ORDERING","'.$stype.'");return false;\''; // Select Box: type table. $typeFromSearch = array(); $typeFromSearch[] = 'like'; $typeFromSearch[] = 'equal'; $typeFromSearch[] = 'more'; $typeFromSearch[] = 'less'; // Selecct Box: Labels showed on searchtype select box. $typeFromSearchShowAs = array(); $typeFromSearchShowAs[] = $locate->Translate('like'); $typeFromSearchShowAs[] = '='; $typeFromSearchShowAs[] = '>'; $typeFromSearchShowAs[] = '<'; // Select Box: fields table. $fieldsFromSearch = array(); $fieldsFromSearch[] = 'src'; $fieldsFromSearch[] = 'calldate'; $fieldsFromSearch[] = 'dst'; $fieldsFromSearch[] = 'didnumber'; $fieldsFromSearch[] = 'username'; $fieldsFromSearch[] = 'groupname'; $fieldsFromSearch[] = 'billsec'; $fieldsFromSearch[] = 'disposition'; $fieldsFromSearch[] = 'credit'; $fieldsFromSearch[] = 'transfertime'; $fieldsFromSearch[] = 'transfertarget'; #$fieldsFromSearch[] = 'destination'; $fieldsFromSearch[] = 'memo'; // Selecct Box: Labels showed on search select box. $fieldsFromSearchShowAs = array(); $fieldsFromSearchShowAs[] = $locate->Translate("src"); $fieldsFromSearchShowAs[] = $locate->Translate("calldate"); $fieldsFromSearchShowAs[] = $locate->Translate("dst"); $fieldsFromSearchShowAs[] = $locate->Translate("callee id"); $fieldsFromSearchShowAs[] = $locate->Translate("UserName"); $fieldsFromSearchShowAs[] = $locate->Translate("AgentGroup Name"); $fieldsFromSearchShowAs[] = $locate->Translate("billsec"); $fieldsFromSearchShowAs[] = $locate->Translate("disposition"); $fieldsFromSearchShowAs[] = $locate->Translate("credit"); $fieldsFromSearchShowAs[] = $locate->Translate("transfer time"); $fieldsFromSearchShowAs[] = $locate->Translate("transfer target"); #$fieldsFromSearchShowAs[] = $locate->Translate("destination"); $fieldsFromSearchShowAs[] = $locate->Translate("memo"); // Create object whit 5 cols and all data arrays set before. $table = new ScrollTable(9, $start, $limit, $filter, $numRows, $content, $order, $customerid, $cdrtype); $table->setHeader('title', $headers, $attribsHeader, $eventHeader, $edit = false, $delete = false, $detail = false); $table->setAttribsCols($attribsCols); $table->ordering = $ordering; $table->exportFlag = '2'; //对导出标记进行赋值 $table->addRowSearchMore("mycdr", $fieldsFromSearch, $fieldsFromSearchShowAs, $filter, $content, $start, $limit, 0, 0, $typeFromSearch, $typeFromSearchShowAs, $stype, $allOrAnswer); while ($arreglo->fetchInto($row)) { // Change here by the name of fields of its database table $rowc = array(); $rowc[] = $row['id']; $rowc[] = $row['calldate']; $rowc[] = $row['src']; $rowc[] = $row['dst']; $rowc[] = $row['didnumber']; if (strstr($row['dstchannel'], 'agent')) { $agent = split('/', $row['dstchannel']); $rowc[] = $agent['1']; } else { $rowc[] = ''; } $rowc[] = $row['username']; $rowc[] = $row['groupname']; $rowc[] = astercrm::FormatSec($row['duration']); $rowc[] = astercrm::FormatSec($row['billsec']); $rowc[] = $row['disposition']; $rowc[] = astercrm::FormatSec($row['billsec_leg_a']); $rowc[] = $row['credit']; #$rowc[] = $row['destination']; $rowc[] = $row['transfertime']; $rowc[] = $row['transfertarget']; #$rowc[] = $row['memo']; if ($row['processed'] == 'yes' && $row['fileformat'] != 'error') { $rowc['filename'] = $row['filename'] . '.' . $row['fileformat']; } else { $rowc['filename'] = ''; } $table->addRow("mycdr", $rowc, false, false, false, $divName, $fields); } // End Editable Zone $html = $table->render(); return $html; }
/** * generate grid HTML code * @param start int record start * @param limit int how many records need * @param filter string the field need to search * @param content string the contect want to match * @param stype string the matching type for search * @param divName string which div grid want to be put * @param order string data order * @return html string grid HTML code */ function createGrid($start = 0, $limit = 1, $filter = null, $content = null, $order = null, $divName = "grid", $ordering = "", $stype = array(), $customerid = '', $allOrAnswer = null) { global $locate, $config; //print_R($filter); //print_r($content);exit; if ($config['system']['useHistoryCdr'] == 1) { $table = 'historycdr'; } else { $table = 'mycdr'; } //echo $config['system']['useHistoryCdr']; //echo $table;exit; $_SESSION['ordering'] = $ordering; if (is_numeric($customerid) && $customerid != 0 && $_SESSION['curuser']['usertype'] != 'clid') { $filter['0'] = 'customerid'; $content['0'] = $customerid; $stype['0'] = 'equal'; } if ($filter == null || $content == null || !is_array($content) && $content == 'Array' || !is_array(filter) && $filter == 'Array') { $content = null; $filter = null; $numRows =& Customer::getNumRows($table); $arreglo =& Customer::getAllRecords($start, $limit, $order, '', $table); } else { foreach ($content as $value) { if (trim($value) != "") { //搜索内容有值 $flag = "1"; break; } } foreach ($filter as $value) { if (trim($value) != "") { //搜索条件有值 $flag2 = "1"; break; } } foreach ($stype as $value) { if (trim($value) != "") { //搜索方式有值 $flag3 = "1"; break; } } if ($flag != "1" || $flag2 != "1") { //无值 $order = null; $numRows =& Customer::getNumRows($table, $allOrAnswer); $arreglo =& Customer::getAllRecords($start, $limit, $order, '', $table, $allOrAnswer); } elseif ($flag3 != 1) { //未选择搜索方式 $order = "calldate"; $numRows =& Customer::getNumRowsMore($filter, $content, $table, $allOrAnswer); $arreglo =& Customer::getRecordsFilteredMore($start, $limit, $filter, $content, $order, $table, '', $allOrAnswer); } else { $order = "calldate"; $numRows =& Customer::getNumRowsMorewithstype($filter, $content, $stype, $table, $allOrAnswer); $arreglo =& Customer::getRecordsFilteredMorewithstype($start, $limit, $filter, $content, $stype, $order, $table, '', $allOrAnswer); } } // Editable zone // Databse Table: fields $fields = array(); $fields[] = 'calldate'; $fields[] = 'src'; $fields[] = 'dst'; $fields[] = 'duration'; $fields[] = 'billsec'; $fields[] = 'disposition'; $fields[] = 'credit'; $fileds[] = 'destination'; $fileds[] = 'memo'; $fileds[] = 'discount'; $fileds[] = 'note'; // HTML table: Headers showed $headers = array(); $headers[] = $locate->Translate("Calldate"); $headers[] = $locate->Translate("Src"); $headers[] = $locate->Translate("Dst"); $headers[] = $locate->Translate("Duration"); $headers[] = $locate->Translate("Billsec"); $headers[] = $locate->Translate("Disposition"); $headers[] = $locate->Translate("credit"); $headers[] = $locate->Translate("destination"); $headers[] = $locate->Translate("memo"); $headers[] = $locate->Translate("discount"); $headers[] = $locate->Translate("note"); // HTML table: hearders attributes $attribsHeader = array(); $attribsHeader[] = 'width="13%"'; $attribsHeader[] = 'width="10%"'; $attribsHeader[] = 'width="13%"'; $attribsHeader[] = 'width="10%"'; $attribsHeader[] = 'width="10%"'; $attribsHeader[] = 'width="12%"'; $attribsHeader[] = 'width="10%"'; $attribsHeader[] = 'width="12%"'; $attribsHeader[] = 'width="10%"'; $attribsHeader[] = 'width="10%"'; // HTML Table: columns attributes $attribsCols = array(); $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; // HTML Table: If you want ascendent and descendent ordering, set the Header Events. $eventHeader = array(); $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","calldate","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","src","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","dst","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","duration","' . $divName . '","ORDERING");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","billsec","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","disposition","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","credit","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","destination","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","memo","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","discount","' . $divName . '","ORDERING","' . $stype . '");return false;\''; $eventHeader[] = ''; // Select Box: type table. $typeFromSearch = array(); $typeFromSearch[] = 'like'; $typeFromSearch[] = 'equal'; $typeFromSearch[] = 'more'; $typeFromSearch[] = 'less'; // Selecct Box: Labels showed on searchtype select box. $typeFromSearchShowAs = array(); $typeFromSearchShowAs[] = $locate->Translate("like"); $typeFromSearchShowAs[] = '='; $typeFromSearchShowAs[] = '>'; $typeFromSearchShowAs[] = '<'; // Select Box: fields table. $fieldsFromSearch = array(); $fieldsFromSearch[] = 'src'; $fieldsFromSearch[] = 'calldate'; $fieldsFromSearch[] = 'dst'; $fieldsFromSearch[] = 'billsec'; $fieldsFromSearch[] = 'disposition'; $fieldsFromSearch[] = 'credit'; $fieldsFromSearch[] = 'destination'; $fieldsFromSearch[] = 'customerid'; $fieldsFromSearch[] = 'memo'; $fieldsFromSearch[] = 'discount'; // Selecct Box: Labels showed on search select box. $fieldsFromSearchShowAs = array(); $fieldsFromSearchShowAs[] = $locate->Translate("src"); $fieldsFromSearchShowAs[] = $locate->Translate("calldate"); $fieldsFromSearchShowAs[] = $locate->Translate("dst"); $fieldsFromSearchShowAs[] = $locate->Translate("billsec"); $fieldsFromSearchShowAs[] = $locate->Translate("disposition"); $fieldsFromSearchShowAs[] = $locate->Translate("credit"); $fieldsFromSearchShowAs[] = $locate->Translate("destination"); $fieldsFromSearchShowAs[] = $locate->Translate("customer id"); $fieldsFromSearchShowAs[] = $locate->Translate("memo"); $fieldsFromSearchShowAs[] = $locate->Translate("discount"); // Create object whit 5 cols and all data arrays set before. $specArchive = false; if ($_SESSION['curuser']['usertype'] == 'admin') { $specArchive = 1; } $tableGrid = new ScrollTable(9, $start, $limit, $filter, $numRows, $content, $order, $specArchive); $tableGrid->setHeader('title', $headers, $attribsHeader, $eventHeader, $edit = false, $delete = false, $detail = false); $tableGrid->setAttribsCols($attribsCols); $tableGrid->exportFlag = '1'; //对导出标记进行赋值 if ($_SESSION['curuser']['usertype'] == 'admin') { $tableGrid->deleteFlag = '1'; //对导出标记进行赋值 } $tableGrid->addRowSearchMore($table, $fieldsFromSearch, $fieldsFromSearchShowAs, $filter, $content, $start, $limit, 0, $typeFromSearch, $typeFromSearchShowAs, $stype, '', $allOrAnswer); while ($arreglo->fetchInto($row)) { // Change here by the name of fields of its database table $rowc = array(); $trstyle = ''; $rowc[] = $row['id']; $rowc[] = $row['calldate']; $rowc[] = $row['src']; $rowc[] = $row['dst']; $rowc[] = astercrm::FormatSec($row['duration']); $rowc[] = astercrm::FormatSec($row['billsec']); $rowc[] = $row['disposition']; $rowc[] = $row['credit']; $rowc[] = $row['destination']; $rowc[] = $row['memo']; $rowc[] = $row['discount']; $rowc[] = $row['note']; if ($row['userfield'] == 'UNBILLED') { $trstyle = 'style="background:#EED5D2;"'; } if ($row['setfreecall'] == 'yes') { $trstyle = 'style="background:#d5c59f;"'; } $tableGrid->addRow($table, $rowc, false, false, false, $divName, $fields, $trstyle); } // End Editable Zone $html = $tableGrid->render(); return $html; }
if ($peer == $myreceipt['dst']) { if ($myreceipt['billsec'] == 0) { $content .= '<td><div><UL id="extenBtnU"><LI><a href="###"><img src="images/noanswer.gif">' . $myreceipt['src'] . '</a><UL><A href="javascript:void(null)" onclick="javascript:xajax_removeReceipt(\'' . $myreceipt['id'] . '\');"> <font size="2px">' . $locate->Translate("Hidden") . '</font></A></UL></LI></UL></div></td>'; } else { $content .= '<td><UL id="extenBtnU"><LI><a href="###"><img src="images/inbound.gif">' . $myreceipt['src'] . '</a><UL><A href="javascript:void(null)" onclick="javascript:xajax_setFreeCallPage(\'' . $myreceipt['id'] . '\')"> <font size="2px">' . $locate->Translate("Free call") . '</font></A><A href="javascript:void(null)" onclick="javascript:xajax_removeReceipt(\'' . $myreceipt['id'] . '\');"> <font size="2px">' . $locate->Translate("Hidden") . '</font></A></UL></LI></UL></td>'; } } else { if ($myreceipt['billsec'] == 0) { $content .= '<td><UL id="extenBtnU"><LI><a href="###"><img src="images/noanswer.gif">' . $myreceipt['dst'] . '</a><UL><A href="javascript:void(null)" onclick="javascript:xajax_removeReceipt(\'' . $myreceipt['id'] . '\');"> <font size="2px">' . $locate->Translate("Hidden") . '</font></A></UL></LI></UL></td>'; } else { $content .= '<td><UL id="extenBtnU"><LI><a href="###"><img src="images/outbound.gif">' . $myreceipt['dst'] . '</a><UL><A href="javascript:void(null)" onclick="javascript:xajax_setFreeCallPage(\'' . $myreceipt['id'] . '\')"> <font size="2px">' . $locate->Translate("Free call") . '</font></A><A href="javascript:void(null)" onclick="javascript:xajax_removeReceipt(\'' . $myreceipt['id'] . '\');"> <font size="2px">' . $locate->Translate("Hidden") . '</font></A></UL></LI></UL></td>'; } } $content .= ' <td>' . $myreceipt['calldate'] . '</td> <td align="right">' . astercrm::FormatSec($myreceipt['billsec']) . '</td> <td align="right">' . $myreceipt['destination'] . '</td> <td align="right">' . $ratedesc . '</td> <td id="rprice-' . $myreceipt['id'] . '" align="right">' . astercc::creditDigits($myreceipt['credit']) . '</td> <td align="right">' . astercc::creditDigits($_REQUEST['discount'], 3) . '</td> </tr>'; echo $content; if ($myreceipt['setfreecall'] == 'no') { $total_price += $myreceipt['credit']; } } $total_price_ori = $total_price; $total_price = $total_price * (1 - $_REQUEST['discount']); $total_price = astercc::creditDigits($total_price, 2); ?> <tr><td><?php
function getCampaignReport($aFormValues) { global $db, $locate; $total_sql = "SELECT COUNT(*) AS total,SUM(campaigndialedlist.billsec) AS billsec,SUM(campaigndialedlist.billsec_leg_a) AS billsec_leg_a,SUM(campaigndialedlist.duration) AS duration,campaign.campaignname,campaigndialedlist.campaignid FROM campaigndialedlist LEFT JOIN campaign ON campaign.id = campaigndialedlist.campaignid WHERE campaigndialedlist.dialedtime BETWEEN '" . $aFormValues['sdate'] . "' AND '" . $aFormValues['edate'] . "' "; $answer_sql = "SELECT COUNT(*) AS total,SUM(billsec) AS billsec,SUM(billsec_leg_a) AS billsec_leg_a,SUM(duration) AS duration,campaignid FROM campaigndialedlist WHERE dialedtime BETWEEN '" . $aFormValues['sdate'] . "' AND '" . $aFormValues['edate'] . "' AND billsec > 0 "; $transfer_sql = "SELECT COUNT(transfertarget) AS transferednum,campaignid FROM campaigndialedlist WHERE dialedtime BETWEEN '" . $aFormValues['sdate'] . "' AND '" . $aFormValues['edate'] . "' and transfertarget != '' "; if ($_SESSION['curuser']['usertype'] != 'admin') { $total_sql .= " AND campaigndialedlist.groupid = " . $_SESSION['curuser']['groupid'] . " "; $answer_sql .= " AND campaigndialedlist.groupid = " . $_SESSION['curuser']['groupid'] . " "; $transfer_sql .= " AND campaigndialedlist.groupid = " . $_SESSION['curuser']['groupid'] . " "; } $total_sql .= " GROUP BY campaigndialedlist.campaignid "; $answer_sql .= " GROUP BY campaignid "; $transfer_sql .= " GROUP BY campaignid "; astercrm::events($total); $total =& $db->getAll($total_sql); astercrm::events($answer_sql); $answered =& $db->getAll($answer_sql); astercrm::events($transfer_sql); $transfered =& $db->getAll($transfer_sql); $resultArray = array(); foreach ($total as $tol) { $resultArray[$tol['campaignid']]['totalnum'] = $tol['total']; $resultArray[$tol['campaignid']]['tbillsec'] = $tol['billsec']; $resultArray[$tol['campaignid']]['tbillsec_leg_a'] = $tol['billsec_leg_a']; $resultArray[$tol['campaignid']]['tduration'] = $tol['duration']; $resultArray[$tol['campaignid']]['campaignname'] = $tol['campaignname']; } foreach ($answered as $ans) { $resultArray[$ans['campaignid']]['atotalnum'] = $ans['total']; $resultArray[$ans['campaignid']]['abillsec'] = $ans['billsec']; $resultArray[$ans['campaignid']]['abillsec_leg_a'] = $ans['billsec_leg_a']; $resultArray[$ans['campaignid']]['aduration'] = $ans['duration']; } foreach ($transfered as $tran) { $resultArray[$tran['campaignid']]['transferednum'] = $tran['transferednum']; } $campaigns =& $db->getAll('select id,campaignname from campaign'); foreach ($campaigns as $row) { if (array_key_exists($row['id'], $resultArray)) { $resultArray[$row['id']]['campaignname'] = $row['campaignname']; } } $campiangStr = '<table style="width:95%;"><tr><th>' . $locate->Translate("Campaign Name") . '</th><th>' . $locate->Translate("ToalCallNum") . '</th><th>' . $locate->Translate("ToalAnsweredNum") . '</th><th>' . $locate->Translate("AnsweredRate") . '</th><th>' . $locate->Translate("AvgOfCustomerAnswered") . '</th><th>' . $locate->Translate("AvgOfTalk") . '</th><th>' . $locate->Translate("AvgOfRing") . '</th><th>' . $locate->Translate("AvgOfRingByAnswer") . '</th><th>' . $locate->Translate("TransferedNum") . '</th><th>' . $locate->Translate("TransferedRate") . '</th></tr>'; foreach ($resultArray as $key => $val) { $ToalCallNum = $val['totalnum']; //总通话数 $ToalAnsweredNum = $val['atotalnum']; //接通总数 $AnsweredRate = round($val['atotalnum'] / $val['totalnum'], 4) * 100 . '%'; //接通率 $tmpAnswered = intval($val['abillsec'] / $val['atotalnum']); $AvgOfCustomerAnswered = astercrm::FormatSec($tmpAnswered) . " (" . $tmpAnswered . " " . $locate->Translate("sec") . ")"; //平均通话时长 $tmpTalk = intval($val['tbillsec_leg_a'] / $val['totalnum']); $AvgOfTalk = astercrm::FormatSec($tmpTalk) . " (" . $tmpTalk . " " . $locate->Translate("sec") . ")"; //平均客户接听时长 $tmpRing = intval(($val['tduration'] - $val['tbillsec_leg_a']) / $val['totalnum']); $AvgOfRing = astercrm::FormatSec($tmpRing) . " (" . $tmpRing . " " . $locate->Translate("sec") . ")"; //平均振铃时长 $tmpRingByAnswer = intval(($val['aduration'] - $val['abillsec_leg_a']) / $val['atotalnum']); $AvgOfRingByAnswer = astercrm::FormatSec($tmpRingByAnswer) . " (" . $tmpRingByAnswer . " " . $locate->Translate("sec") . ")"; //平均接听振铃时长 $AvgOfTransferedNum = round($val['transferednum'] / $ToalAnsweredNum * 100, 2) . '%'; //转接比率 if ($ToalAnsweredNum == '') { $ToalAnsweredNum = 0; } $campiangStr .= '<tr><td>' . $val['campaignname'] . '</td><td>' . $ToalCallNum . '</td><td>' . $ToalAnsweredNum . '</td><td>' . $AnsweredRate . '</td><td>' . $AvgOfCustomerAnswered . '</td><td>' . $AvgOfTalk . '</td><td>' . $AvgOfRing . '</td><td>' . $AvgOfRingByAnswer . '</td><td>' . $val['transferednum'] . '</td><td>' . $AvgOfTransferedNum . '</td></tr>'; } $campiangStr .= '</table>'; return $campiangStr; }
function listCDR($aFormValues) { global $locate, $config; $reseller = astercrm::getAll('resellergroup'); while ($reseller->fetchInto($row)) { $id = $row['id']; $reseller_arr[$id] = $row['resellername']; } $group = astercrm::getAll('accountgroup'); while ($group->fetchInto($row)) { $id = $row['id']; $group_arr[$id] = $row['groupname']; } $objResponse = new xajaxResponse(); $objResponse->addAssign("divMsg", "style.visibility", "hidden"); if ($aFormValues['sltBooth'] == '' && $aFormValues['hidCurpeer'] != '') { $aFormValues['sltBooth'] = $aFormValues['hidCurpeer']; } list($syear, $smonth, $sday, $stime) = split("[ -]", $aFormValues['sdate']); $syear = (int) $syear; $smonth = (int) $smonth; $sday = (int) $sday; list($shours, $smins) = split("[ :]", $stime); $shours = (int) $shours; if ($shours == 0) { $shours = '00'; } $smins = (int) $smins; if ($smins == 0) { $smins = '00'; } list($eyear, $emonth, $eday, $etime) = split("[ -]", $aFormValues['edate']); $eyear = (int) $eyear; $emonth = (int) $emonth; $eday = (int) $eday; list($ehours, $emins) = split("[ :]", $etime); $ehours = (int) $ehours; if ($ehours == 0) { $ehours = '00'; } $emins = (int) $emins; if ($emins == 0) { $emins = '00'; } $ary = array(); if ($aFormValues['reporttype'] == "text") { $aFormValues['sdate'] = $syear . "-" . $smonth . "-" . $sday . ' ' . $shours . ':' . $smins; $aFormValues['edate'] = $eyear . "-" . $emonth . "-" . $eday . ' ' . $ehours . ':' . $emins; } else { $aFormValues['sdate'] = $syear . "-" . $smonth . "-" . $sday; $aFormValues['edate'] = $eyear . "-" . $emonth . "-" . $eday; } if ($aFormValues['listType'] == "none") { $res = astercc::readReport($aFormValues['resellerid'], $aFormValues['groupid'], $aFormValues['sltBooth'], $aFormValues['sdate'], $aFormValues['edate']); $answeredNum = astercc::readAnsweredNum($aFormValues['resellerid'], $aFormValues['groupid'], $aFormValues['sltBooth'], $aFormValues['sdate'], $aFormValues['edate']); $a2bcost = -1; if ($config['a2billing']['enable']) { $a2bcost = Customer::readA2Breport($aFormValues['resellerid'], $aFormValues['groupid'], $aFormValues['sltBooth'], $aFormValues['sdate'], $aFormValues['edate']); } if ($res->fetchInto($myreport)) { $result = parseReport($myreport, $answeredNum, $a2bcost); $html .= $result['html']; } $objResponse->addAssign("divUnbilledList", "innerHTML", $html); return $objResponse; } elseif ($aFormValues['listType'] == "sumyear") { if ($aFormValues['reporttype'] == "flash") { $objResponse->addScript("actionFlash('" . $aFormValues["resellerid"] . "','" . $aFormValues["groupid"] . "','" . $aFormValues["sltBooth"] . "','" . $aFormValues["sdate"] . "','" . $aFormValues["edate"] . "','" . $aFormValues["listType"] . "','" . $aFormValues["hidCurpeer"] . "');"); $html = ""; } else { for ($year = $syear; $year <= $eyear; $year++) { $res = astercc::readReport($aFormValues['resellerid'], $aFormValues['groupid'], $aFormValues['sltBooth'], "{$year}-1-1 00:00:00", "{$year}-12-31 23:59:59"); $answeredNum = astercc::readAnsweredNum($aFormValues['resellerid'], $aFormValues['groupid'], $aFormValues['sltBooth'], "{$year}-1-1 00:00:00", "{$year}-12-31 23:59:59"); $a2bcost = -1; if ($config['a2billing']['enable']) { $a2bcost = Customer::readA2Breport($aFormValues['resellerid'], $aFormValues['groupid'], $aFormValues['sltBooth'], "{$year}-1-1 00:00:00", "{$year}-12-31 23:59:59"); } if ($res->fetchInto($myreport)) { $html .= "<div class='box'>"; $html .= "{$year} :<br/>"; $html .= "<div>"; $result = parseReport($myreport, $answeredNum, $a2bcost); $html .= $result['html']; $html .= "</div>"; $html .= "</div>"; $ary['recordNum'] += $result['data']['recordNum']; $ary['seconds'] += $result['data']['seconds']; $ary['credit'] += $result['data']['credit']; $ary['callshopcredit'] += $result['data']['callshopcredit']; $ary['resellercredit'] += $result['data']['resellercredit']; $ary['billsec_leg_a'] += $myreport['billsec_leg_a']; $answeredNumTotal += $answeredNum; if ($config['a2billing']['enable']) { $a2bcostTotal += $a2bcost; } } } if (!$config['a2billing']['enable']) { $a2bcostTotal = -1; } $html .= "<div class='box'>"; $html .= "total :<br/>"; $html .= "<div>"; $result = parseReport($ary, $answeredNumTotal, $a2bcostTotal); $html .= $result['html']; $html .= "</div>"; $html .= "</div>"; $html .= "<div style='clear:both;'></div>"; $objResponse->addAssign("divUnbilledList", "innerHTML", $html); } return $objResponse; } elseif ($aFormValues['listType'] == "summonth") { if ($aFormValues['reporttype'] == "flash") { $objResponse->addScript("actionFlash('" . $aFormValues["resellerid"] . "','" . $aFormValues["groupid"] . "','" . $aFormValues["sltBooth"] . "','" . $aFormValues["sdate"] . "','" . $aFormValues["edate"] . "','" . $aFormValues["listType"] . "','" . $aFormValues["hidCurpeer"] . "');"); } else { //for ($year = $syear; $year<=$eyear;$year++){ $year = $syear; for ($month = 1; $month <= 12; $month++) { $res = astercc::readReport($aFormValues['resellerid'], $aFormValues['groupid'], $aFormValues['sltBooth'], "{$year}-{$month}-1 00:00:00", "{$year}-{$month}-31 23:59:59"); $answeredNum = astercc::readAnsweredNum($aFormValues['resellerid'], $aFormValues['groupid'], $aFormValues['sltBooth'], "{$year}-{$month}-1 00:00:00", "{$year}-{$month}-31 23:59:59"); $a2bcost = -1; if ($config['a2billing']['enable']) { $a2bcost = Customer::readA2Breport($aFormValues['resellerid'], $aFormValues['groupid'], $aFormValues['sltBooth'], "{$year}-{$month}-1 00:00:00", "{$year}-{$month}-31 23:59:59"); } if ($res->fetchInto($myreport)) { $html .= "<div class='box'>"; $html .= "{$year}-{$month} :<br/>"; $html .= "<div>"; $result = parseReport($myreport, $answeredNum, $a2bcost); $html .= $result['html']; $html .= "</div>"; $html .= "</div>"; $ary['recordNum'] += $result['data']['recordNum']; $ary['seconds'] += $result['data']['seconds']; $ary['credit'] += $result['data']['credit']; $ary['callshopcredit'] += $result['data']['callshopcredit']; $ary['resellercredit'] += $result['data']['resellercredit']; $answeredNumTotal += $answeredNum; if ($config['a2billing']['enable']) { $a2bcostTotal += $a2bcost; } } } //} if (!$config['a2billing']['enable']) { $a2bcostTotal = -1; } $html .= "<div class='box'>"; $html .= "total :<br/>"; $html .= "<div>"; $result = parseReport($ary, $answeredNumTotal, $a2bcostTotal); $html .= $result['html']; $html .= "</div>"; $html .= "</div>"; $html .= "<div style='clear:both;'></div>"; $objResponse->addAssign("divUnbilledList", "innerHTML", $html); } return $objResponse; } elseif ($aFormValues['listType'] == "sumday") { if ($aFormValues['reporttype'] == "flash") { $objResponse->addScript("actionFlash('" . $aFormValues["resellerid"] . "','" . $aFormValues["groupid"] . "','" . $aFormValues["sltBooth"] . "','" . $aFormValues["sdate"] . "','" . $aFormValues["edate"] . "','" . $aFormValues["listType"] . "','" . $aFormValues["hidCurpeer"] . "');"); } else { for ($day = $sday; $day <= 31; $day++) { $res = astercc::readReport($aFormValues['resellerid'], $aFormValues['groupid'], $aFormValues['sltBooth'], "{$syear}-{$smonth}-{$day} 00:00:00", "{$syear}-{$smonth}-{$day} 23:59:59"); $answeredNum = astercc::readAnsweredNum($aFormValues['resellerid'], $aFormValues['groupid'], $aFormValues['sltBooth'], "{$syear}-{$smonth}-{$day} 00:00:00", "{$syear}-{$smonth}-{$day} 23:59:59"); $a2bcost = -1; if ($config['a2billing']['enable']) { $a2bcost = Customer::readA2Breport($aFormValues['resellerid'], $aFormValues['groupid'], $aFormValues['sltBooth'], "{$syear}-{$smonth}-{$day} 00:00:00", "{$syear}-{$smonth}-{$day} 23:59:59"); } if ($res->fetchInto($myreport)) { $html .= "<div class='box'>"; $html .= "{$syear}-{$smonth}-{$day} :<br/>"; $html .= "<div>"; $result = parseReport($myreport, $answeredNum, $a2bcost); $html .= $result['html']; $html .= "</div>"; $html .= "</div>"; $ary['recordNum'] += $result['data']['recordNum']; $ary['seconds'] += $result['data']['seconds']; $ary['credit'] += $result['data']['credit']; $ary['callshopcredit'] += $result['data']['callshopcredit']; $ary['resellercredit'] += $result['data']['resellercredit']; $answeredNumTotal += $answeredNum; if ($config['a2billing']['enable']) { $a2bcostTotal += $a2bcost; } } } if (!$config['a2billing']['enable']) { $a2bcostTotal = -1; } $html .= "<div class='box'>"; $html .= "total :<br/>"; $html .= "<div>"; $result = parseReport($ary, $answeredNumTotal, $a2bcostTotal); $html .= $result['html']; $html .= "</div>"; $html .= "</div>"; $html .= "<div style='clear:both;'></div>"; $objResponse->addAssign("divUnbilledList", "innerHTML", $html); } return $objResponse; } elseif ($aFormValues['listType'] == "sumhour") { if ($aFormValues['reporttype'] == "flash") { $objResponse->addScript("actionFlash('" . $aFormValues["resellerid"] . "','" . $aFormValues["groupid"] . "','" . $aFormValues["sltBooth"] . "','" . $aFormValues["sdate"] . "','" . $aFormValues["edate"] . "','" . $aFormValues["listType"] . "','" . $aFormValues["hidCurpeer"] . "');"); } else { for ($hour = 0; $hour <= 23; $hour++) { $res = astercc::readReport($aFormValues['resellerid'], $aFormValues['groupid'], $aFormValues['sltBooth'], "{$syear}-{$smonth}-{$sday} {$hour}:00:00", "{$syear}-{$smonth}-{$sday} {$hour}:59:59"); $answeredNum = astercc::readAnsweredNum($aFormValues['resellerid'], $aFormValues['groupid'], $aFormValues['sltBooth'], "{$syear}-{$smonth}-{$sday} {$hour}:00:00", "{$syear}-{$smonth}-{$sday} {$hour}:59:59"); $a2bcost = -1; if ($config['a2billing']['enable']) { $a2bcost = Customer::readA2Breport($aFormValues['resellerid'], $aFormValues['groupid'], $aFormValues['sltBooth'], "{$syear}-{$smonth}-{$sday} {$hour}:00:00", "{$syear}-{$smonth}-{$sday} {$hour}:59:59"); } if ($res->fetchInto($myreport)) { $html .= "<div class='box'>"; $html .= "{$syear}-{$smonth}-{$sday} {$hour}:<br/>"; $html .= "<div>"; $result = parseReport($myreport, $answeredNum, $a2bcost); $html .= $result['html']; $html .= "</div>"; $html .= "</div>"; $ary['recordNum'] += $result['data']['recordNum']; $ary['seconds'] += $result['data']['seconds']; $ary['credit'] += $result['data']['credit']; $ary['callshopcredit'] += $result['data']['callshopcredit']; $ary['resellercredit'] += $result['data']['resellercredit']; $answeredNumTotal += $answeredNum; if ($config['a2billing']['enable']) { $a2bcostTotal += $a2bcost; } } } if (!$config['a2billing']['enable']) { $a2bcostTotal = -1; } $html .= "<div class='box'>"; $html .= "total :<br/>"; $html .= "<div>"; $result = parseReport($ary, $answeredNumTotal, $a2bcostTotal); $html .= $result['html']; $html .= "</div>"; $html .= "</div>"; $html .= "<div style='clear:both;'></div>"; $objResponse->addAssign("divUnbilledList", "innerHTML", $html); } return $objResponse; } elseif ($aFormValues['listType'] == "sumdest") { $res = astercc::readReport($aFormValues['resellerid'], $aFormValues['groupid'], $aFormValues['sltBooth'], $aFormValues['sdate'], $aFormValues['edate'], 'destination'); $html .= '<form action="" name="f" id="f">'; $html .= '<table width="99%">'; if ($_SESSION['curuser']['usertype'] == 'admin' || $_SESSION['curuser']['usertype'] == 'reseller') { $html .= '<tr> <td width="60"></td> <td width="160">' . $locate->Translate("Destination") . '</td> <td width="120">' . $locate->Translate("Calls") . '</td> <td width="120">' . $locate->Translate("Billsec") . '</td> <td width="120">' . $locate->Translate("Sells") . '</td> <td width="70">' . $locate->Translate("Callshop Cost") . '</td> <td width="90">' . $locate->Translate("Reseller Cost") . '</td> <td width="90">' . $locate->Translate("Markup") . '</td> </tr>'; } else { if ($_SESSION['curuser']['usertype'] == 'groupadmin') { $html .= '<tr> <td width="60"></td> <td width="160">' . $locate->Translate("Destination") . '</td> <td width="120">' . $locate->Translate("Calls") . '</td> <td width="120">' . $locate->Translate("Billsec") . '</td> <td width="120">' . $locate->Translate("Sells") . '</td> <td width="70">' . $locate->Translate("Callshop Cost") . '</td> <td width="90">' . $locate->Translate("Markup") . '</td> </tr>'; } else { if ($_SESSION['curuser']['usertype'] == 'operator') { $html .= '<tr> <td width="60"></td> <td width="160">' . $locate->Translate("Destination") . '</td> <td width="120">' . $locate->Translate("Calls") . '</td> <td width="120">' . $locate->Translate("Billsec") . '</td> <td width="120">' . $locate->Translate("Sells") . '</td> </tr>'; } } } while ($res->fetchInto($row)) { if ($_SESSION['curuser']['usertype'] == 'admin' || $_SESSION['curuser']['usertype'] == 'reseller') { $html .= '<tr> <td width="60"></td> <td width="160">' . $row['destination'] . '</td> <td width="120">' . $row['recordNum'] . '</td> <td width="120">' . astercrm::FormatSec($row['seconds']) . '</td> <td width="120">' . $row['credit'] . '</td> <td width="120">' . $row['callshopcredit'] . '</td> <td width="120">' . $row['resellercredit'] . '</td> <td width="120">' . ($row['callshopcredit'] - $row['resellercredit']) . '</td> </tr>'; } else { if ($_SESSION['curuser']['usertype'] == 'groupadmin') { $html .= '<tr> <td width="60"></td> <td width="160">' . $row['destination'] . '</td> <td width="120">' . $row['recordNum'] . '</td> <td width="120">' . astercrm::FormatSec($row['seconds']) . '</td> <td width="120">' . $row['credit'] . '</td> <td width="120">' . $row['callshopcredit'] . '</td> <td width="120">' . ($row['credit'] - $row['callshopcredit']) . '</td> </tr>'; } else { if ($_SESSION['curuser']['usertype'] == 'operator') { $html .= '<tr> <td width="60"></td> <td width="160">' . $row['destination'] . '</td> <td width="120">' . $row['recordNum'] . '</td> <td width="120">' . astercrm::FormatSec($row['seconds']) . '</td> <td width="120">' . $row['credit'] . '</td> </tr>'; } } } } $html .= '</table>'; $html .= '</form>'; if ($_SESSION['curuser']['usertype'] == 'admin' || $_SESSION['curuser']['usertype'] == 'reseller') { if ($aFormValues['reporttype'] == "flash") { $objResponse->addScript("actionPie1('" . $aFormValues["resellerid"] . "','" . $aFormValues["groupid"] . "','" . $aFormValues["sltBooth"] . "','" . $aFormValues["sdate"] . "','" . $aFormValues["edate"] . "','" . $aFormValues["listType"] . "','" . $aFormValues["hidCurpeer"] . "');"); $html = ''; } else { $objResponse->addAssign("divUnbilledList", "innerHTML", $html); } } else { if ($_SESSION['curuser']['usertype'] == 'groupadmin') { if ($aFormValues['reporttype'] == "flash") { $objResponse->addScript("actionPie2('" . $aFormValues["resellerid"] . "','" . $aFormValues["groupid"] . "','" . $aFormValues["sltBooth"] . "','" . $aFormValues["sdate"] . "','" . $aFormValues["edate"] . "','" . $aFormValues["listType"] . "','" . $aFormValues["hidCurpeer"] . "');"); $html = ''; } else { $objResponse->addAssign("divUnbilledList", "innerHTML", $html); } } else { if ($_SESSION['curuser']['usertype'] == 'operator') { if ($aFormValues['reporttype'] == "flash") { $objResponse->addScript("actionPie3('" . $aFormValues["resellerid"] . "','" . $aFormValues["groupid"] . "','" . $aFormValues["sltBooth"] . "','" . $aFormValues["sdate"] . "','" . $aFormValues["edate"] . "','" . $aFormValues["listType"] . "','" . $aFormValues["hidCurpeer"] . "');"); $html = ''; } else { $objResponse->addAssign("divUnbilledList", "innerHTML", $html); } } } } return $objResponse; } elseif ($aFormValues['listType'] == "sumgroup") { if ($aFormValues['reporttype'] == "flash") { $objResponse->addScript("actionPieGroup('" . $aFormValues["resellerid"] . "','" . $aFormValues["groupid"] . "','" . $aFormValues["sltBooth"] . "','" . $aFormValues["sdate"] . "','" . $aFormValues["edate"] . "','" . $aFormValues["listType"] . "','" . $aFormValues["hidCurpeer"] . "');"); } else { $res = astercc::readReportPie($aFormValues['resellerid'], $aFormValues['groupid'], $aFormValues['sltBooth'], $aFormValues['sdate'], $aFormValues['edate'], 'destination', $aFormValues['action'], 'limit'); while ($res->fetchInto($row)) { $iid = $row['gid']; if ($aFormValues['resellerid'] == 0 || $aFormValues['resellerid'] == '') { $title = "" . $reseller_arr[$iid]; } else { if ($aFormValues['groupid'] == 0 || $aFormValues['groupid'] == '') { $title = "" . $group_arr[$iid]; } else { $title = "" . $iid; } } $html .= "<div class='box'>"; $html .= "{$title} :<br/>"; $html .= "<div>"; $result = parseReport($row); $html .= $result['html']; $html .= "</div>"; $html .= "</div>"; $ary['recordNum'] += $result['data']['recordNum']; $ary['seconds'] += $result['data']['seconds']; $ary['credit'] += $result['data']['credit']; $ary['callshopcredit'] += $result['data']['callshopcredit']; $ary['resellercredit'] += $result['data']['resellercredit']; } $html .= "<div class='box'>"; $html .= "total :<br/>"; $html .= "<div>"; $result = parseReport($ary); $html .= $result['html']; $html .= "</div>"; $html .= "</div>"; $html .= "<div style='clear:both;'></div>"; $objResponse->addAssign("divUnbilledList", "innerHTML", $html); } return $objResponse; } $records = astercc::readAll($aFormValues['resellerid'], $aFormValues['groupid'], $aFormValues['sltBooth'], $aFormValues['sdate'], $aFormValues['edate']); $html .= '<form action="" name="f" id="f">'; $html .= '<table width="99%">'; $html .= '<tr> <td width="60"></td> <td width="120">' . $locate->Translate("Calldate") . '</td> <td width="120">' . $locate->Translate("Clid") . '</td> <td width="120">' . $locate->Translate("Dst") . '</td> <td width="70">' . $locate->Translate("Duration") . '</td> <td width="90">' . $locate->Translate("Disposition") . '</td> <td width="70">' . $locate->Translate("Billsec") . '</td> <td width="160">' . $locate->Translate("Destination") . '</td> <td width="360">' . $locate->Translate("Rate") . '</td> <td width="120">' . $locate->Translate("Price") . '</td> <td width="70">' . $locate->Translate("Status") . '</td> <td width="300">' . $locate->Translate("Note") . '</td> </tr>'; $html .= '<tr> <td width="60"> <input type="checkbox" onclick="ckbAllOnClick(this);" id="ckbAll[]" name="ckbAll[]">' . $locate->Translate("All") . ' </td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr>'; while ($records->fetchInto($mycdr)) { $price = ''; $ratedesc = ''; $trstyle = ''; $ratedesc = astercc::readRateDesc($mycdr['memo']); $callshop_cost = 0; $reseller_cost = 0; if ($_SESSION['curuser']['usertype'] == 'operator') { } else { if ($_SESSION['curuser']['usertype'] == 'groupadmin') { $callshop_cost = $mycdr['callshopcredit']; } else { if ($_SESSION['curuser']['usertype'] == 'admin') { $callshop_cost = $mycdr['callshopcredit']; $reseller_cost = $mycdr['resellercredit']; } } } if ($mycdr['setfreecall'] == 'yes') { $trstyle = 'style="background:#d5c59f;"'; } $html .= ' <tr align="left" id="tr-' . $mycdr['id'] . '" ' . $trstyle . '> <td align="right"> <input type="checkbox" id="ckb[]" name="ckb[]" value="' . $mycdr['id'] . '" onclick="ckbOnClick(this);"> <input type="hidden" id="price-' . $mycdr['id'] . '" name="price-' . $mycdr['id'] . '" value="' . $mycdr['credit'] . '"> <input type="hidden" id="callshop-' . $mycdr['id'] . '" name="callshop-' . $mycdr['id'] . '" value="' . $callshop_cost . '"> <input type="hidden" id="reseller-' . $mycdr['id'] . '" name="reseller-' . $mycdr['id'] . '" value="' . $reseller_cost . '"> <input type="hidden" id="free-' . $mycdr['id'] . '" name="free-' . $mycdr['id'] . '" value="' . $mycdr['setfreecall'] . '"> </td> <td>' . $mycdr['calldate'] . '</td> <td>' . $mycdr['src'] . '</td> <td>' . $mycdr['dst'] . '</td> <td>' . astercrm::FormatSec($mycdr['duration']) . '</td> <td>' . $mycdr['disposition'] . '</td> <td>' . astercrm::FormatSec($mycdr['billsec']) . '</td> <td>' . $mycdr['destination'] . '</td> <td>' . $ratedesc . '</td>'; if ($_SESSION['curuser']['usertype'] == 'operator') { $html .= '<td>' . $mycdr['credit'] . '</td>'; } else { if ($_SESSION['curuser']['usertype'] == 'groupadmin') { $html .= '<td>' . $mycdr['credit'] . '<br>' . '(' . $callshop_cost . ')' . '</td>'; } else { if ($_SESSION['curuser']['usertype'] == 'admin') { $html .= '<td>' . $mycdr['credit'] . '<br>' . '(' . $callshop_cost . ')' . '<br>' . '(' . $reseller_cost . ')</td>'; } } } if ($peer == '-1') { if ($mycdr['dst'] == $mycdr['src']) { //lega $addon = ' [lega]'; } else { //legb $addon = ' [legb]'; } } if ($mycdr['userfield'] == 'UNBILLED') { $html .= '<td bgcolor="red">' . $mycdr['userfield'] . $addon . '</td>'; } else { $html .= '<td>' . $mycdr['userfield'] . $addon . '</td>'; } $html .= '<td>' . $mycdr['note'] . '</td></tr> <tr bgcolor="gray"> <td colspan="12" height="1"></td> </tr> '; $i++; } $html .= '<tr> <td width="60"> <input type="checkbox" onclick="ckbAllOnClick(this);" id="ckbAll[]" name="ckbAll[]">' . $locate->Translate("All") . ' </td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr>'; $html .= '</table>'; $html .= '</form>'; $objResponse->addAssign("divUnbilledList", "innerHTML", $html); $objResponse->addAssign("spanTotal", "innerHTML", 0); $objResponse->addAssign("spanrealTotal", "innerHTML", 0); $objResponse->addAssign("spanCallshopCost", "innerHTML", 0); $objResponse->addAssign("spanResellerCost", "innerHTML", 0); return $objResponse; }
/** * generate grid HTML code * @param start int record start * @param limit int how many records need * @param filter string the field need to search * @param content string the contect want to match * @param divName string which div grid want to be put * @param order string data order * @return html string grid HTML code */ function createGrid($start = 0, $limit = 1, $filter = null, $content = null, $order = null, $divName = "grid", $ordering = "", $stype = array()) { global $locate, $config; $_SESSION['ordering'] = $ordering; if ($filter == null or $content == null or $content == 'Array' or $filter == 'Array') { $numRows =& Customer::getNumRows(); $arreglo =& Customer::getAllRecords($start, $limit, $order); $content = null; $filter = null; } else { foreach ($content as $value) { if (trim($value) != "") { //搜索内容有值 $flag = "1"; break; } } foreach ($filter as $value) { if (trim($value) != "") { //搜索条件有值 $flag2 = "1"; break; } } foreach ($stype as $value) { if (trim($value) != "") { //搜索方式有值 $flag3 = "1"; break; } } if ($flag != "1" || $flag2 != "1") { //无值 if (is_array($order) || $order == '') { $order = null; } $numRows =& Customer::getNumRows(); $arreglo =& Customer::getAllRecords($start, $limit, $order); } elseif ($flag3 != 1) { $order = "id"; $numRows =& Customer::getNumRowsMore($filter, $content, "astercrm_accout"); $arreglo =& Customer::getRecordsFilteredMore($start, $limit, $filter, $content, $order, "astercrm_accout"); } else { $order = "id"; $numRows =& Customer::getNumRowsMorewithstype($filter, $content, $stype, $table); $arreglo =& Customer::getRecordsFilteredMorewithstype($start, $limit, $filter, $content, $stype, $order, $table); } } // Select Box: type table. $typeFromSearch = array(); $typeFromSearch[] = 'like'; $typeFromSearch[] = 'equal'; $typeFromSearch[] = 'more'; $typeFromSearch[] = 'less'; // Selecct Box: Labels showed on searchtype select box. $typeFromSearchShowAs = array(); $typeFromSearchShowAs[] = $locate->Translate("like"); $typeFromSearchShowAs[] = '='; $typeFromSearchShowAs[] = '>'; $typeFromSearchShowAs[] = '<'; // Editable zone // Databse Table: fields $fields = array(); $fields[] = 'username'; $fields[] = 'login_time'; $fields[] = 'online_time'; // HTML table: Headers showed $headers = array(); $headers[] = $locate->Translate("ALL") . "<input type='checkbox' onclick=\"ckbAllOnClick(this);\">"; //"select all for delete"; $headers[] = $locate->Translate("username"); $headers[] = $locate->Translate("login time"); $headers[] = $locate->Translate("online time"); //"Customer Name"; // HTML table: hearders attributes $attribsHeader = array(); $attribsHeader[] = 'width="5%"'; $attribsHeader[] = 'width="30%"'; $attribsHeader[] = 'width="30%"'; $attribsHeader[] = 'width="30%"'; // HTML Table: columns attributes $attribsCols = array(); $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; // HTML Table: If you want ascendent and descendent ordering, set the Header Events. $eventHeader = array(); $eventHeader[] = ''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","username","' . $divName . '","ORDERING");return false;\''; $eventHeader[] = ''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","last_login_time","' . $divName . '","ORDERING");return false;\''; // Select Box: fields table. $fieldsFromSearch = array(); $fieldsFromSearch[] = 'username'; $fieldsFromSearch[] = 'last_login_time'; // Selecct Box: Labels showed on search select box. $fieldsFromSearchShowAs = array(); $fieldsFromSearchShowAs[] = $locate->Translate("username"); $fieldsFromSearchShowAs[] = $locate->Translate("login time"); // Create object whit 5 cols and all data arrays set before. $table = new ScrollTable(6, $start, $limit, $filter, $numRows, $content, $order); $table->setHeader('title', $headers, $attribsHeader, $eventHeader, 0, 0, 0); $table->setAttribsCols($attribsCols); $table->exportFlag = '2'; //对导出标记进行赋值 //$table->deleteFlag = '1'; $table->ordering = $ordering; //$table->addRowSearchMore("note",$fieldsFromSearch,$fieldsFromSearchShowAs,$filter,$content); $table->addRowSearchMore("astercrm_accout", $fieldsFromSearch, $fieldsFromSearchShowAs, $filter, $content, $start, $limit, 0, 0, $typeFromSearch, $typeFromSearchShowAs, $stype); while ($arreglo->fetchInto($row)) { // Change here by the name of fields of its database table $rowc = array(); $rowc[] = $row['id']; $rowc['select_id'] = $row['id']; $rowc[] = $row['username']; $rowc[] = astercrm::FormatSec(strtotime(date("Y-m-d H:i:s")) - strtotime($row['last_login_time'])); $rowc[] = $row['last_login_time']; $table->addRow("astercrm_accout", $rowc, 0, 0, 0, $divName, $fields); } // End Editable Zone $html = $table->render('delGrid'); return $html; }
function readReport($groupid, $agent_username, $sdate, $edate) { global $db; $sql = "SELECT username,SUM(`onlinetime`) AS onlinetime FROM agent_online_time WHERE login_time > '" . $sdate . "' AND logout_time < '" . $edate . "' "; if ($groupid == 0 && $agent_username == '') { } else { if ($groupid != 0 && $agent_username == '') { $sql .= " AND username IN (SELECT username FROM astercrm_account WHERE groupid = {$groupid}) "; } else { $sql .= " AND username = '******' "; } } $sql .= " GROUP BY username"; astercrm::events($sql); $result =& $db->query($sql); $minVal = 0; $maxVal = 0; $resultArray = array(); while ($result->fetchInto($row)) { if ($minVal == 0) { $maxVal = $row['onlinetime']; $minVal = $row['onlinetime']; } if ($row['onlinetime'] > $maxVal) { $maxVal = $row['onlinetime']; } if ($row['onlinetime'] < $minVal) { $minVal = $row['onlinetime']; } $resultArray[] = $row; } $multiple = round($maxVal / $minVal); $html = ''; $i = 0; $curlength = 10; if ($multiple >= 10) { $curlength = intval(100 / $multiple); } foreach ($resultArray as $tmp) { if ($i == 0) { $html .= '<tr class="row1">'; } else { $html .= '<tr class="row0">'; } $html .= ' <td>' . $tmp['username'] . '</td> <td>' . astercrm::FormatSec($tmp['onlinetime']) . '</td> <td><div style="width:300px;"><div style="width:' . $curlength * round($tmp['onlinetime'] / $minVal) . '%;background-color:red"> </div></div></td> </tr>'; $i++; } return $html; }
function createGrid($start = 0, $limit = 1, $filter = null, $content = null, $order = null, $divName = "grid", $ordering = "", $stype = array(), $action = '', $campaign_id = 0) { if ($action == 'abandoned' && $campaign_id > 0) { $campaignrow = astercrm::getRecordById($campaign_id, 'campaign'); $filter = array('campaigndialedlist.billsec_leg_a', 'campaigndialedlist.billsec', 'campaignname'); $content = array(0, 0, $campaignrow['campaignname']); $stype = array('more', 'equal', 'equal'); } global $locate; $_SESSION['ordering'] = $ordering; if ($filter == null or $content == null or $content == 'Array' or $filter == 'Array') { $numRows =& Customer::getNumRows(); $arreglo =& Customer::getAllRecords($start, $limit, $order); $content = null; $filter = null; } else { foreach ($content as $value) { if (trim($value) != "") { //搜索内容有值 $flag = "1"; break; } } foreach ($filter as $value) { if (trim($value) != "") { //搜索条件有值 $flag2 = "1"; break; } } foreach ($stype as $value) { if (trim($value) != "") { //搜索方式有值 $flag3 = "1"; break; } } if ($flag != "1" || $flag2 != "1") { //无值 if (is_array($order) || $order == '') { $order = null; } $numRows =& Customer::getNumRows($_SESSION['curuser']['groupid']); $arreglo =& Customer::getAllRecords($start, $limit, $order, $_SESSION['curuser']['groupid']); } elseif ($flag3 != 1) { $order = "id"; $numRows =& Customer::getNumRowsMore($filter, $content, "campaigndialedlist"); $arreglo =& Customer::getRecordsFilteredMore($start, $limit, $filter, $content, $order, "campaigndialedlist"); } else { $order = "id"; $numRows =& Customer::getNumRowsMorewithstype($filter, $content, $stype, $table); $arreglo =& Customer::getRecordsFilteredMorewithstype($start, $limit, $filter, $content, $stype, $order, $table); } } // Select Box: type table. $typeFromSearch = array(); $typeFromSearch[] = 'like'; $typeFromSearch[] = 'equal'; $typeFromSearch[] = 'more'; $typeFromSearch[] = 'less'; // Selecct Box: Labels showed on searchtype select box. $typeFromSearchShowAs = array(); $typeFromSearchShowAs[] = $locate->Translate("like"); $typeFromSearchShowAs[] = '='; $typeFromSearchShowAs[] = '>'; $typeFromSearchShowAs[] = '<'; // Editable zone // Databse Table: fields $fields = array(); $fields[] = 'dialednumber'; $fields[] = 'answertime'; $fields[] = 'duration'; $fields[] = 'callresult'; $fields[] = 'billsec'; $fields[] = 'billsec_leg_a'; $fields[] = 'customer'; $fields[] = 'customername'; // $fields[] = 'uniqueid'; $fields[] = 'campaignresult'; $fields[] = 'response'; $fields[] = 'detect'; $fields[] = 'transfertime'; $fields[] = 'transfertarget'; $fields[] = 'resultby'; $fields[] = 'dialedby'; // $fields[] = 'groupname'; $fields[] = 'recycles'; // HTML table: Headers showed $headers = array(); $headers[] = $locate->Translate("ALL") . "<input type='checkbox' onclick=\"ckbAllOnClick(this);\"><BR \\>"; $headers[] = $locate->Translate("Dialed Number"); // $headers[] = $locate->Translate("Answer Time"); $headers[] = $locate->Translate("Duration"); $headers[] = $locate->Translate("Billsec"); $headers[] = $locate->Translate("Total Billsec"); $headers[] = $locate->Translate("Call Result"); $headers[] = $locate->Translate("Customer"); $headers[] = $locate->Translate("Name"); // $headers[] = $locate->Translate("Uniqueid"); $headers[] = $locate->Translate("Campaign Result"); $headers[] = $locate->Translate("Response"); $headers[] = $locate->Translate("Detect"); $headers[] = $locate->Translate("Transfertime"); $headers[] = $locate->Translate("Transfertarget"); $headers[] = $locate->Translate("Result By"); $headers[] = $locate->Translate("Tried"); $headers[] = $locate->Translate("Dialed Time"); // $headers[] = $locate->Translate("Group"); $headers[] = $locate->Translate("Campaign"); $headers[] = $locate->Translate("Recycles"); // HTML table: hearders attributes $attribsHeader = array(); $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; $attribsHeader[] = 'width=""'; // $attribsHeader[] = 'width=""'; // HTML Table: columns attributes $attribsCols = array(); $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; $attribsCols[] = 'style="text-align: left"'; // $attribsCols[] = 'style="text-align: left"'; // $attribsCols[] = 'style="text-align: left"'; // $attribsCols[] = 'style="text-align: left"'; // HTML Table: If you want ascendent and descendent ordering, set the Header Events. $eventHeader = array(); $eventHeader[] = ''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","dialednumber","' . $divName . '","ORDERING");return false;\''; // $eventHeader[]= 'onClick=\'xajax_showGrid(0,'.$limit.',"'.$filter.'","'.$content.'","answertime","'.$divName.'","ORDERING");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","duration","' . $divName . '","ORDERING");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","billsec","' . $divName . '","ORDERING");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","billsec_leg_a","' . $divName . '","ORDERING");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","callresult","' . $divName . '","ORDERING");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","customer","' . $divName . '","ORDERING");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","customername","' . $divName . '","ORDERING");return false;\''; // $eventHeader[]= 'onClick=\'xajax_showGrid(0,'.$limit.',"'.$filter.'","'.$content.'","uniqueid","'.$divName.'","ORDERING");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","campaignresult","' . $divName . '","ORDERING");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","response","' . $divName . '","ORDERING");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","detect","' . $divName . '","ORDERING");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","transfertime","' . $divName . '","ORDERING");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","transfertarget","' . $divName . '","ORDERING");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","resultby","' . $divName . '","ORDERING");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","trytime","' . $divName . '","ORDERING");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","dialedtime","' . $divName . '","ORDERING");return false;\''; // $eventHeader[]= 'onClick=\'xajax_showGrid(0,'.$limit.',"'.$filter.'","'.$content.'","groupname","'.$divName.'","ORDERING");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","campaignname","' . $divName . '","ORDERING");return false;\''; $eventHeader[] = 'onClick=\'xajax_showGrid(0,' . $limit . ',"' . $filter . '","' . $content . '","recycles","' . $divName . '","ORDERING");return false;\''; // Select Box: fields table. $fieldsFromSearch = array(); $fieldsFromSearch[] = 'dialednumber'; //$fieldsFromSearch[] = 'answertime'; $fieldsFromSearch[] = 'duration'; $fieldsFromSearch[] = 'campaigndialedlist.billsec'; $fieldsFromSearch[] = 'campaigndialedlist.billsec_leg_a'; $fieldsFromSearch[] = 'callresult'; $fieldsFromSearch[] = 'customer'; $fieldsFromSearch[] = 'customername'; $fieldsFromSearch[] = 'uniqueid'; $fieldsFromSearch[] = 'response'; $fieldsFromSearch[] = 'detect'; $fieldsFromSearch[] = 'campaignresult'; $fieldsFromSearch[] = 'transfertarget'; $fieldsFromSearch[] = 'resultby'; $fieldsFromSearch[] = 'dialedby'; $fieldsFromSearch[] = 'trytime'; $fieldsFromSearch[] = 'dialedtime'; $fieldsFromSearch[] = 'groupname'; $fieldsFromSearch[] = 'campaignname'; $fieldsFromSearch[] = 'recycles'; // Selecct Box: Labels showed on search select box. $fieldsFromSearchShowAs = array(); $fieldsFromSearchShowAs[] = $locate->Translate("Dialed Number"); //$fieldsFromSearchShowAs[] = $locate->Translate("Answer Time"); $fieldsFromSearchShowAs[] = $locate->Translate("Duration"); $fieldsFromSearchShowAs[] = $locate->Translate("Billsec"); $fieldsFromSearchShowAs[] = $locate->Translate("Total Billsec"); $fieldsFromSearchShowAs[] = $locate->Translate("Call Result"); $fieldsFromSearchShowAs[] = $locate->Translate("Customer"); $fieldsFromSearchShowAs[] = $locate->Translate("Name"); $fieldsFromSearchShowAs[] = $locate->Translate("Uniqueid"); $fieldsFromSearchShowAs[] = $locate->Translate("Response"); $fieldsFromSearchShowAs[] = $locate->Translate("Detect"); $fieldsFromSearchShowAs[] = $locate->Translate("Campaign Result"); $fieldsFromSearchShowAs[] = $locate->Translate("Transfertarget"); $fieldsFromSearchShowAs[] = $locate->Translate("Result By"); $fieldsFromSearchShowAs[] = $locate->Translate("Dialed By"); $fieldsFromSearchShowAs[] = $locate->Translate("Tried"); $fieldsFromSearchShowAs[] = $locate->Translate("Dialed time"); $fieldsFromSearchShowAs[] = $locate->Translate("Group"); $fieldsFromSearchShowAs[] = $locate->Translate("Campaign"); $fieldsFromSearchShowAs[] = $locate->Translate("Recycles"); // Create object whit 5 cols and all data arrays set before. $table = new ScrollTable(6, $start, $limit, $filter, $numRows, $content, $order); $table->exportFlag = '2'; //对导出标记进行赋值 $table->deleteFlag = '1'; //对删除标记进行赋值 $table->ordering = $ordering; $editFlag = 1; $deleteFlag = 1; $deleteBtnFlag = 1; if ($_SESSION['curuser']['usertype'] != 'admin' && $_SESSION['curuser']['usertype'] != 'groupadmin') { if ($_SESSION['curuser']['privileges']['dialedlist']['delete']) { $deleteFlag = 1; $table->deleteFlag = '1'; $deleteBtnFlag = 1; } else { $deleteFlag = 0; $table->deleteFlag = '0'; $deleteBtnFlag = 0; } if ($_SESSION['curuser']['privileges']['dialedlist']['edit']) { $editFlag = 1; } else { $editFlag = 0; } } $table->setHeader('title', $headers, $attribsHeader, $eventHeader, 0, $deleteFlag, 0); $table->setAttribsCols($attribsCols); $table->addRowSearchMore("campaigndialedlist", $fieldsFromSearch, $fieldsFromSearchShowAs, $filter, $content, $start, $limit, 0, $deleteBtnFlag, $typeFromSearch, $typeFromSearchShowAs, $stype); while ($arreglo->fetchInto($row)) { // Change here by the name of fields of its database table $rowc = array(); $rowc[] = $row['id']; $rowc['select_id'] = $row['id']; $rowc[] = $row['dialednumber']; // $rowc[] = $row['answertime']; $rowc[] = astercrm::FormatSec($row['duration']); $rowc[] = astercrm::FormatSec($row['billsec']); $rowc[] = astercrm::FormatSec($row['billsec_leg_a']); $rowc[] = $row['callresult']; $rowc[] = $row['customer']; $rowc[] = $row['customername']; // $rowc[] = $row['uniqueid']; $rowc[] = $row['campaignresult']; $rowc[] = $row['response']; $rowc[] = $row['detect']; $rowc[] = $row['transfertime']; $rowc[] = $row['transfertarget']; $rowc[] = $row['resultby']; $rowc[] = $row['trytime']; $rowc[] = $row['dialedtime']; // $rowc[] = $row['groupname']; $rowc[] = $row['campaignname']; $rowc[] = $row['recycles']; $table->addRow("campaigndialedlist", $rowc, 0, $deleteFlag, 0, $divName, $fields); } // End Editable Zone $html = $table->render('delGrid'); return $html; }
function readReport($groupid, $agent_username, $sdate, $edate) { global $db; $sql = "SELECT * FROM agent_queue_log WHERE cretime > '" . $sdate . "' AND cretime < '" . $edate . "' "; if ($groupid == 0 && $agent_username == '') { } else { if ($groupid != 0 && $agent_username == '') { $sql .= " AND account IN (SELECT username FROM astercrm_account WHERE groupid = {$groupid}) "; } else { $sql .= " AND account = '" . $agent_username . "' "; } } $sql .= " AND action='pause' "; astercrm::events($sql); $result =& $db->query($sql); $resultArray = array(); while ($result->fetchInto($row)) { if (!isset($resultArray[$row['account'] . '-' . $row['queue']])) { $resultArray[$row['account'] . '-' . $row['queue']] = array(); } $resultArray[$row['account'] . '-' . $row['queue']]['pauseNums']++; $resultArray[$row['account'] . '-' . $row['queue']]['pauseTime'] += $row['pausetime']; } $html = ''; $i = 0; foreach ($resultArray as $key => $val) { if ($i == 0) { $html .= '<tr class="row1">'; } else { $html .= '<tr class="row0">'; } $kArray = explode('-', $key); $html .= ' <td>' . $kArray[0] . '</td> <td>' . $kArray[1] . '</td> <td>' . $val['pauseNums'] . '</td> <td>' . astercrm::FormatSec($val['pauseTime']) . '</td> </tr>'; $i++; } return $html; }