Untitled
unknown
plain_text
2 years ago
23 kB
4
Indexable
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Browse extends WFF_CustomerController { function __construct() { parent::__construct(); $this->load->config('worldui'); } function index() { $pbx_customer_code = $this->session->userdata('pbx_customer_code'); $data['title'] = ucfirst('CDR'); $data['template'] = $this->config->item('template'); $data['template']['header'] = 'navbar-fixed-top'; $data['template']['footer'] = 'footer-fixed'; $this->load->view('templates/worldui/template_start', $data); $this->load->view('templates/worldui/page_head', $data); $data['callCenter'] = $this->mongo_db->select(array('hidePhone', 'displayChars', 'displayOn'))->getOne($pbx_customer_code . '_callCenter'); $this->load->view('customers/view', $data); $this->load->view('templates/worldui/page_footer'); $this->load->view('templates/worldui/template_end'); } function stopAcs() { header('Content-Type: application/json'); $request = json_decode(file_get_contents('php://input')); $pbx_customer_code = $this->session->userdata("pbx_customer_code"); $loadAcs = $this->mongo_db ->select(array('callid', 'secret')) ->where(array("customerNumber" => $request->phone)) ->getOne($pbx_customer_code . '_acsLogs'); //Start action link $url = 'https://apps.worldfone.vn/apiacs/notcall.php'; $fields = array( 'secret' => $loadAcs["secret"], 'id' => $loadAcs["callid"] ); //url-ify the data for the POST $fields_string = ''; foreach ($fields as $key => $value) { $fields_string .= $key . '=' . $value . '&'; } $fields_string = rtrim($fields_string, '&'); //open connection $ch = curl_init(); //set the url, number of POST vars, POST data curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 2); curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json')); //execute post $result = curl_exec($ch); $err = curl_error($ch); //close connection curl_close($ch); //End action link $value = json_decode($result, true); $code = $value['code']; if ($code == 1) { $this->mongo_db->where(array("phone" => $request->phone))->set(array("stopacs" => "1"))->update($pbx_customer_code . "_customers"); echo json_encode(true); exit; } echo json_encode(false); exit; } function actionAcs() { header('Content-Type: application/json'); $request = json_decode(file_get_contents('php://input')); $pbx_customer_code = $this->session->userdata("pbx_customer_code"); //Start action link $url = 'https://apps.worldfone.vn/apiacs/import.php'; $fields = array( 'secret' => "4d00e877b9ec20e7a1e800775ce4d191", 'campaignid' => "712", 'phone' => $request->phone ); //url-ify the data for the POST foreach ($fields as $key => $value) { $fields_string .= $key . '=' . $value . '&'; } $fields_string = rtrim($fields_string, '&'); //open connection $ch = curl_init(); //set the url, number of POST vars, POST data curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, count($fields)); curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json')); //execute post $result = curl_exec($ch); //close connection curl_close($ch); //End action link $value = json_decode($result, true); $callid = $value['callid']; $result2 = $this->mongo_db->where(array("_id" => new MongoId($request->id)))->set(array("callid" => $callid))->update($pbx_customer_code . "_worldfonepbxmanager"); echo json_encode(true); } function readdb() { if ($this->input->server('REQUEST_METHOD') === 'POST') { header('Content-Type: application/json'); $request = json_decode(file_get_contents('php://input')); $requestArr = json_decode(file_get_contents('php://input'), TRUE); $userextension = $this->session->userdata('extension'); $pbx_customer_code = $this->session->userdata("pbx_customer_code"); foreach (["TuNgay", "DenNgay"] as $field) { if (!empty($requestArr[$field])) { $d = new DateTime($requestArr[$field]); if ($field == "TuNgay") $d->setTime(0, 0, 0); else $d->setTime(23, 59, 59); $time[$field] = $d->getTimestamp(); } else { if ($field == "TuNgay") $time[$field] = strtotime("today"); else $time[$field] = strtotime("tomorrow"); } } $this->load->library('mongodatasourceresult'); if ($this->session->userdata('issupervisor') != 1 && $this->session->userdata('isadmin') != 1) { $loadCdrType = $this->mongo_db->select(array('loadCdrType'))->getOne($pbx_customer_code . '_callCenter'); if (isset($loadCdrType['loadCdrType'])) { if ($loadCdrType['loadCdrType'] == 'byextension') { $filterUser = new stdClass(); $filterUser->logic = "and"; $filterUser->field = "userextension"; $filterUser->value = $userextension; $filterUser->operator = "eq"; $request->filter->filters[] = $filterUser; if (isset($request->filter->filters[0]->field)) { if ($request->filter->filters[0]->field != 'starttime') { $request->filter->logic = "or"; } } } } } $filterFromDate = new stdClass(); $filterFromDate->field = "starttime"; $filterFromDate->operator = "gte"; $filterFromDate->value = $time["TuNgay"]; $filterToDate = new stdClass(); $filterToDate->field = "starttime"; $filterToDate->operator = "lte"; $filterToDate->value = $time["DenNgay"]; $request->filter->filters[] = $filterFromDate; $request->filter->filters[] = $filterToDate; $request->filter->logic = "and"; // print_r($request);exit(); if ($request->filter->filters[0]->field != 'starttime' && $request->filter->filters[0]->field != 'userextension') { if ($request->filter->filters[0]->field == 'customernumber' || $request->filter->filters[0]->field == 'customername') { $request->filter->filters[0] = (array) $request->filter->filters[0]; $request->filter->filters[0]['logic'] = 'or'; $request->filter->filters[0] = (object) $request->filter->filters[0]; $request->filter->filters[1] = (array) $request->filter->filters[1]; $request->filter->filters[1]['logic'] = 'or'; $request->filter->filters[1] = (object) $request->filter->filters[1]; if ($this->session->userdata('issupervisor') != 1 && $this->session->userdata('isadmin') != 1) { unset($request->filter->filters[3]); unset($request->filter->filters[4]); } else { unset($request->filter->filters[2]); unset($request->filter->filters[3]); } //TuanTruong 26052020 $filterFromDate->field = "starttime"; $filterFromDate->operator = "gte"; $filterFromDate->logic = "and"; $filterFromDate->value = $time["TuNgay"]; $filterToDate = new stdClass(); $filterToDate->field = "starttime"; $filterToDate->operator = "lte"; $filterToDate->logic = "and"; $filterToDate->value = $time["DenNgay"]; $request->filter->filters[] = $filterFromDate; $request->filter->filters[] = $filterToDate; //end TuanTruong 26052020 } else { if (!isset($request->filter->filters[0]->field)) { unset($request->filter->filters[0]); } } } $data = $this->mongodatasourceresult->read($pbx_customer_code . '_worldfonepbxmanager', array('_id', 'direction', 'callstatus', 'workstatus', 'calluuid', 'userextension', 'diallistid', 'customernumber', 'starttime', 'answertime', 'endtime', 'billduration', 'totalduration', 'causetxt', 'calltype', 'customercode', 'customername', 'disposition', 'callnote', 'callresultvalue', 'acsresult', 'company_name', 'agentname', 'customer', 'customer.address', 'customer.email', 'customer.describe', 'customer.tinhtranggiaiquyet', 'customer.donvixuly', 'customer.loaicuocgoi', 'customer.type', 'customer.ghiChuCuocGoi', 'customer.thoigiangoi', 'customer.source', 'customer.sanpham', 'customer.kenhbansanpham', 'csdescription', 'csdescription.caseID', 'csdescription.statusVta', 'csdescription.inboundOutbound', 'csdescription.sourceCustomer', 'csdescription.subjectVta', 'csdescription.teamCRM', 'officials_reception', 'lastresult', 'customer.description', 'dnis'), $request); foreach ($data['data'] as &$value) { $value["starttime"] = !empty($value["starttime"]) ? date('d/m/Y H:i:s', $value["starttime"]) : null; if($value['direction'] == 'inbound'){ $value['sobigoi'] = $value['dnis']; $value['sogoi'] = $value['customernumber']; }else { $value['sobigoi'] = $value['customernumber']; $value['sogoi'] = $value['dnis']; } if (!isset($value['customer'])){ $value['customer'] = []; $value['customer']['sanpham'] = ''; $value['customer']['kenhbansanpham'] = ''; } else { if (!isset($value['customer']['sanpham'])){ $value['customer']['sanpham'] = ''; } if (!isset($value['customer']['kenhbansanpham'])){ $value['customer']['kenhbansanpham'] = ''; } } } if ($this->session->userdata('issupervisor') != 1 && $this->session->userdata('isadmin') != 1) { $loadCdrType = $this->mongo_db->select(array('loadCdrType'))->getOne($pbx_customer_code . '_callCenter'); if (isset($loadCdrType['loadCdrType'])) { $countInOutAns = $this->mongo_db->aggregate_pipeline('C0121_worldfonepbxmanager', array( array( '$match' => array( '$and' => array( array('starttime' => array('$gte' => $time["TuNgay"])), array('starttime' => array('$lte' => $time["DenNgay"])), array('userextension' => $userextension) ) ) ), array( '$group' => array( '_id' => array( ), 'count_inbound' => array( '$sum' => array( '$cond' => array( array('$eq' => array('$direction', 'inbound')) , 1, 0 ) ) ), 'count_outbound' => array( '$sum' => array( '$cond' => array( array('$eq' => array('$direction', 'outbound')) , 1, 0 ) ) ), 'count_answered' => array( '$sum' => array( '$cond' => array( array('$eq' => array('$disposition', 'ANSWERED')) , 1, 0 ) ) ) ) ) )); } } else { $countInOutAns = $this->mongo_db->aggregate_pipeline('C0121_worldfonepbxmanager', array( array( '$match' => array( '$and' => array( array('starttime' => array('$gte' => $time["TuNgay"])), array('starttime' => array('$lte' => $time["DenNgay"])) ) ) ), array( '$group' => array( '_id' => array( ), 'count_inbound' => array( '$sum' => array( '$cond' => array( array('$eq' => array('$direction', 'inbound')) , 1, 0 ) ) ), 'count_outbound' => array( '$sum' => array( '$cond' => array( array('$eq' => array('$direction', 'outbound')) , 1, 0 ) ) ), 'count_answered' => array( '$sum' => array( '$cond' => array( array('$eq' => array('$disposition', 'ANSWERED')) , 1, 0 ) ) ) ) ) )); } // print_r($countInOutAns);exit(); if (isset($countInOutAns[0])) { $data['count_inbound'] = $countInOutAns[0]['count_inbound']; $data['count_outbound'] = $countInOutAns[0]['count_outbound']; $data['count_answered'] = $countInOutAns[0]['count_answered']; } $callCenter = $this->mongo_db->select(array('hidePhone'))->getOne($pbx_customer_code . '_callCenter'); if (is_array($callCenter) && array_key_exists("hidePhone", $callCenter)) { $data['hidePhone'] = $callCenter['hidePhone']; } else { $data['hidePhone'] = 'show'; } foreach ($data['data'] as $keys => $values) { if(!isset($values["sobigoi"])){ $data['data'][$keys]["sobigoi"] = "500" ; } } echo json_encode($data); } } function readdbToExcel() { header('Content-Type: application/json'); $request = json_decode(file_get_contents('php://input')); $userextension = $this->session->userdata('extension'); $pbx_customer_code = $this->session->userdata("pbx_customer_code"); $this->load->library('mongodatasourceresult'); if ($this->session->userdata('issupervisor') != 1 && $this->session->userdata('isadmin') != 1) { $loadCdrType = $this->mongo_db->select(array('loadCdrType'))->getOne($pbx_customer_code . '_callCenter'); if (isset($loadCdrType['loadCdrType'])) { if ($loadCdrType['loadCdrType'] == 'byextension') { $filterUser = new stdClass(); $filterUser->field = "userextension"; $filterUser->value = $userextension; $filterUser->operator = "eq"; $request->filter->filters[] = $filterUser; $request->filter->logic = "and"; } } } $data = $this->mongodatasourceresult->read($pbx_customer_code . '_worldfonepbxmanager', array('_id', 'direction', 'callstatus', 'workstatus', 'calluuid', 'userextension', 'customernumber', 'starttime', 'answertime', 'endtime', 'billduration', 'totalduration', 'causetxt', 'calltype', 'customercode', 'customername', 'disposition', 'callnote', 'callresultvalue', 'acsresult', 'company_name', 'agentname', 'customer', 'customer.address', 'customer.email', 'customer.describe', 'customer.tinhtranggiaiquyet', 'customer.donvixuly', 'customer.loaicuocgoi', 'customer.type', 'customer.ghiChuCuocGoi', 'customer.thoigiangoi', 'customer.source', 'csdescription', 'csdescription.caseID', 'csdescription.statusVta', 'csdescription.inboundOutbound', 'csdescription.sourceCustomer', 'csdescription.subjectVta', 'csdescription.teamCRM', 'officials_reception', 'lastresult', 'customer.description'), $request); echo json_encode($data); } function dongbo_cus_cdr() { $this->load->library('mongo_db'); $data = $this->mongo_db->aggregate_pipeline('C0211_worldfonepbxmanager', array( array( '$match' => array( 'customer' => array('$exists' => false) ) ), array( '$group' => array( '_id' => array('customernumber' => '$customernumber') ) ) , array( '$lookup' => array( 'from' => 'C0211_customers', 'localField' => '_id.customernumber', 'foreignField' => 'phone', 'as' => 'customerinfo' ) ), array( '$project' => array( 'customernumber' => '$_id.customernumber', 'customerinfo' => 1, 'cus_size' => array('$size' => '$customerinfo') ) ), array( '$match' => array( 'cus_size' => array('$gt' => 0) ) ) )); for ($i = 0; $i < count($data); $i++) { if (count($data[$i]["customerinfo"]) != 0) { $arr_customer = array( "customer" => $data[$i]["customerinfo"][0] ); $result = $this->mongo_db->where(array('customernumber' => $data[$i]["_id"]["customernumber"]))->set($arr_customer)->update_all('C0211_worldfonepbxmanager'); } } } function readfilter() { if ($this->input->server('REQUEST_METHOD') === 'POST') { header('Content-Type: application/json'); $request = json_decode(file_get_contents('php://input')); $this->load->library('mongodatasourceresult'); $pbx_customer_code = $this->session->userdata("pbx_customer_code"); $data = $this->mongodatasourceresult->read($pbx_customer_code . '_worldfonepbxmanager', array('DISTINCT' => $this->input->get('details')), $request); echo json_encode($data); } } function readCustDDLFilter() { if ($this->input->server('REQUEST_METHOD') === 'POST') { header('Content-Type: application/json'); $request = json_decode(file_get_contents('php://input')); $this->load->library('mongodatasourceresult'); $pbx_customer_code = $this->session->userdata("pbx_customer_code"); $_data = $this->mongo_db->select(array('dropDownListContent'))->where(array('dropDownListName' => 'type'))->getOne($pbx_customer_code . '_dropDownList'); $data = []; $data['data'] = $_data['dropDownListContent']; echo json_encode($data); } } function export() { $fileName = $_POST['fileName']; $contentType = $_POST['contentType']; $base64 = $_POST['base64']; $data = base64_decode($base64); header('Content-Type:' . $contentType); header('Content-Length:' . strlen($data)); header('Content-Disposition: attachment; filename=' . $fileName); echo $data; } function updateLastResult() { header('Content-Type: application/json'); $request = json_decode(file_get_contents('php://input')); $pbx_customer_code = $this->session->userdata("pbx_customer_code"); $loadAcs = $this->mongo_db->select(array('agentname'))->where(array("_id" => new MongoId($request->id)))->getOne($pbx_customer_code . '_worldfonepbxmanager'); if (!empty($loadAcs)) { $this->mongo_db->where(array("_id" => new MongoId($request->id)))->set(array("lastresult" => $request->value))->update($pbx_customer_code . "_worldfonepbxmanager"); echo json_encode(true); exit; } echo json_encode(false); exit; } }
Editor is loading...