コード例 #1
0
ファイル: cdr.server.php プロジェクト: ljhcj/IRISCC
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;
}
コード例 #2
0
ファイル: cdr.server.php プロジェクト: ljhcj/IRISCC
/**
*  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;
}
コード例 #3
0
ファイル: receipt.php プロジェクト: ljhcj/IRISCC
    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'] . '\');">&nbsp;<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'] . '\')">&nbsp;<font size="2px">' . $locate->Translate("Free call") . '</font></A><A href="javascript:void(null)" onclick="javascript:xajax_removeReceipt(\'' . $myreceipt['id'] . '\');">&nbsp;<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'] . '\');">&nbsp;<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'] . '\')">&nbsp;<font size="2px">' . $locate->Translate("Free call") . '</font></A><A href="javascript:void(null)" onclick="javascript:xajax_removeReceipt(\'' . $myreceipt['id'] . '\');">&nbsp;<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 
コード例 #4
0
ファイル: dialedlist.grid.inc.php プロジェクト: ljhcj/IRISCC
 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;
 }
コード例 #5
0
ファイル: checkout.server.php プロジェクト: ljhcj/IRISCC
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;
}
コード例 #6
0
ファイル: useronline.server.php プロジェクト: ljhcj/IRISCC
/**
*  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;
}
コード例 #7
0
ファイル: user_online.server.php プロジェクト: ljhcj/IRISCC
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">&nbsp;</div></div></td>
				</tr>';
        $i++;
    }
    return $html;
}
コード例 #8
0
ファイル: dialedlist.server.php プロジェクト: ljhcj/IRISCC
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;
}
コード例 #9
0
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;
}