Ejemplo n.º 1
0
 function createCdrGrid($customerid = '', $cdrtype = '', $start = 0, $limit = 1, $filter = null, $content = null, $stype = null, $order = null, $divName = "formCdr", $ordering = "")
 {
     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 =& astercrm::getCdrNumRows($customerid, $cdrtype);
         $arreglo =& astercrm::getAllCdrRecords($customerid, $cdrtype, $start, $limit, $order);
     } 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 =& astercrm::getCdrNumRows($customerid, $cdrtype);
             $arreglo =& astercrm::getAllCdrRecords($customerid, $cdrtype, $start, $limit, $order);
         } elseif ($flag3 != 1) {
             //未选择搜索方式
             $order = "calldate";
             $numRows =& astercrm::getCdrNumRowsMore($customerid, $cdrtype, $filter, $content);
             $arreglo =& astercrm::getCdrRecordsFilteredMore($customerid, $cdrtype, $start, $limit, $filter, $content, $order);
         } else {
             $order = "calldate";
             $numRows =& astercrm::getCdrNumRowsMorewithstype($customerid, $cdrtype, $filter, $content, $stype);
             $arreglo =& astercrm::getCdrRecordsFilteredMorewithstype($customerid, $cdrtype, $start, $limit, $filter, $content, $stype, $order);
         }
     }
     // Databse Table: fields
     if ($cdrtype == 'recent') {
         $fields = array();
         $fields[] = 'calldate';
         $fields[] = 'src';
         $fields[] = 'dst';
         $fields[] = 'didnumber';
         $fields[] = 'dstchannel';
         $fields[] = 'duration';
         $fields[] = 'billsec';
         $fields[] = 'record';
         // 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("Duration") . '<br>';
         $headers[] = $locate->Translate("Billsec") . '<br>';
         $headers[] = $locate->Translate("record") . '<br>';
         // HTML table: hearders attributes
         $attribsHeader = array();
         $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"';
         // HTML Table: If you want ascendent and descendent ordering, set the Header Events.
         $eventHeader = array();
         $eventHeader[] = 'onClick=\'showRecentCdrGrid("","' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","calldate","' . $divName . '","ORDERING","' . $stype . '");return false;\'';
         $eventHeader[] = 'onClick=\'showRecentCdrGrid("","' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","src","' . $divName . '","ORDERING","' . $stype . '");return false;\'';
         $eventHeader[] = 'onClick=\'showRecentCdrGrid("","' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","dst","' . $divName . '","ORDERING","' . $stype . '");return false;\'';
         $eventHeader[] = 'onClick=\'showRecentCdrGrid("","' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","didnumber","' . $divName . '","ORDERING","' . $stype . '");return false;\'';
         $eventHeader[] = 'onClick=\'showRecentCdrGrid("","' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","dstchannel","' . $divName . '","ORDERING","' . $stype . '");return false;\'';
         $eventHeader[] = 'onClick=\'showRecentCdrGrid("","' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","duration","' . $divName . '","ORDERING");return false;\'';
         $eventHeader[] = 'onClick=\'showRecentCdrGrid("","' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","billsec","' . $divName . '","ORDERING","' . $stype . '");return false;\'';
         $eventHeader[] = 'onClick=\'showRecentCdrGrid("","' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","id","billsec","' . $divName . '","ORDERING","' . $stype . '");return false;\'';
         // Select Box: fields table.
         $fieldsFromSearch = array();
         $fieldsFromSearch[] = 'src';
         $fieldsFromSearch[] = 'calldate';
         $fieldsFromSearch[] = 'dst';
         $fieldsFromSearch[] = 'didnumber';
         $fieldsFromSearch[] = 'billsec';
         // 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("billsec");
         // Create object whit 5 cols and all data arrays set before.
         $table = new ScrollTable(7, $start, $limit, $filter, $numRows, $content, $order, $customerid, $cdrtype);
         $table->setHeader('title', $headers, $attribsHeader, $eventHeader, $edit = false, $delete = false, $detail = false);
         $table->setAttribsCols($attribsCols);
         $table->addRowSearchMore("mycdr", $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['monitorid'];
             $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['duration'];
             $rowc[] = $row['billsec'];
             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);
         }
         $html = $table->render('static');
     } else {
         $fields = array();
         $fields[] = 'calldate';
         $fields[] = 'src';
         $fields[] = 'dst';
         $fields[] = 'didnumber';
         $fields[] = 'dstchannel';
         $fields[] = 'duration';
         $fields[] = 'billsec';
         $fields[] = 'disposition';
         $fields[] = 'credit';
         $fileds[] = 'destination';
         $fileds[] = 'memo';
         // 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("Duration") . '<br>';
         $headers[] = $locate->Translate("Billsec") . '<br>';
         $headers[] = $locate->Translate("Disposition") . '<br>';
         $headers[] = $locate->Translate("credit") . '<br>';
         $headers[] = $locate->Translate("destination") . '<br>';
         $headers[] = $locate->Translate("memo") . '<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=""';
         // 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"';
         // HTML Table: If you want ascendent and descendent ordering, set the Header Events.
         $eventHeader = array();
         $eventHeader[] = 'onClick=\'xajax_showCdr(' . $customerid . ',"' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","calldate","' . $divName . '","ORDERING","' . $stype . '");return false;\'';
         $eventHeader[] = 'onClick=\'xajax_showCdr(' . $customerid . ',"' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","src","' . $divName . '","ORDERING","' . $stype . '");return false;\'';
         $eventHeader[] = 'onClick=\'xajax_showCdr(' . $customerid . ',"' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","dst","' . $divName . '","ORDERING","' . $stype . '");return false;\'';
         $eventHeader[] = 'onClick=\'xajax_showCdr(' . $customerid . ',"' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","didnumber","' . $divName . '","ORDERING");return false;\'';
         $eventHeader[] = 'onClick=\'xajax_showCdr(' . $customerid . ',"' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","dstchannel","' . $divName . '","ORDERING");return false;\'';
         $eventHeader[] = 'onClick=\'xajax_showCdr(' . $customerid . ',"' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","duration","' . $divName . '","ORDERING");return false;\'';
         $eventHeader[] = 'onClick=\'xajax_showCdr(' . $customerid . ',"' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","billsec","' . $divName . '","ORDERING","' . $stype . '");return false;\'';
         $eventHeader[] = 'onClick=\'xajax_showCdr(' . $customerid . ',"' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","disposition","' . $divName . '","ORDERING","' . $stype . '");return false;\'';
         $eventHeader[] = 'onClick=\'xajax_showCdr(' . $customerid . ',"' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","credit","' . $divName . '","ORDERING","' . $stype . '");return false;\'';
         $eventHeader[] = 'onClick=\'xajax_showCdr(' . $customerid . ',"' . $cdrtype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","destination","' . $divName . '","ORDERING","' . $stype . '");return false;\'';
         $eventHeader[] = 'onClick=\'xajax_showCdr(' . $customerid . ',"' . $cdrtype . '",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[] = 'like';
         $typeFromSearchShowAs[] = '=';
         $typeFromSearchShowAs[] = '>';
         $typeFromSearchShowAs[] = '<';
         // Select Box: fields table.
         $fieldsFromSearch = array();
         $fieldsFromSearch[] = 'src';
         $fieldsFromSearch[] = 'calldate';
         $fieldsFromSearch[] = 'dst';
         $fieldsFromSearch[] = 'didnumber';
         $fieldsFromSearch[] = 'billsec';
         $fieldsFromSearch[] = 'disposition';
         $fieldsFromSearch[] = 'credit';
         $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("billsec");
         $fieldsFromSearchShowAs[] = $locate->Translate("disposition");
         $fieldsFromSearchShowAs[] = $locate->Translate("credit");
         $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->addRowSearchMore("mycdr", $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[] = $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['duration'];
             $rowc[] = $row['billsec'];
             $rowc[] = $row['disposition'];
             $rowc[] = $row['credit'];
             $rowc[] = $row['destination'];
             $rowc[] = $row['memo'];
             $table->addRow("mycdr", $rowc, false, false, false, $divName, $fields);
         }
         $html = $table->render();
     }
     // End Editable Zone
     return $html;
 }