function updateRateRecord($f) { global $db; $f = astercrm::variableFiler($f); $sql = "UPDATE myrate SET " . "dialprefix = '" . $f['dialprefix'] . "', " . "numlen = '" . $f['numlen'] . "', " . "destination = '" . $f['destination'] . "', " . "rateinitial = '" . $f['rateinitial'] . "', " . "initblock = '" . $f['initblock'] . "', " . "billingblock = '" . $f['billingblock'] . "', " . "connectcharge= '" . $f['connectcharge'] . "', " . "groupid = '" . $f['groupid'] . "', " . "resellerid = '" . $f['resellerid'] . "', " . "addtime= now() " . "WHERE id = " . $f['id']; astercrm::events($sql); $res =& $db->query($sql); return $res; }
function updateWorktimeRecord($f) { global $db; $f = astercrm::variableFiler($f); $query = "UPDATE worktimes SET " . "starttime='" . $f['starttime'] . "', " . "endtime='" . $f['endtime'] . "', " . "startweek='" . $f['startweek'] . "', " . "endweek='" . $f['endweek'] . "', " . "groupid='" . $f['groupid'] . "' " . "WHERE id=" . $f['id']; astercrm::events($query); $res =& $db->query($query); return $res; }
function updateWorktimepackage($f) { global $db; $f = astercrm::variableFiler($f); $query = "UPDATE worktimepackages SET " . "worktimepackage_name=" . $db->quote($f['worktimepackage_name']) . ", " . "worktimepackage_note=" . $db->quote($f['worktimepackage_note']) . ", " . "worktimepackage_status='" . $f['worktimepackage_status'] . "', " . "groupid='" . $f['groupid'] . "' " . "WHERE id=" . $f['id']; $wp_res = Customer::deleteRecords("worktimepackage_id", $f['id'], 'worktimepackage_worktimes'); $sltedWorktimes = split(',', rtrim($f['sltedWorktimes'], ',')); foreach ($sltedWorktimes as $worktimeid) { $sql = "INSERT INTO worktimepackage_worktimes SET " . "worktimepackage_id='" . $f['id'] . "', " . "worktime_id='" . $worktimeid . "', " . "creby = '" . $_SESSION['curuser']['username'] . "'," . "cretime = now()"; $wp_res =& $db->query($sql); } astercrm::events($query); $res =& $db->query($query); return $res; }
function getSrcnameByCurid($curid) { global $db; $sql = "SELECT srcname FROM curcdr WHERE id='" . $curid . "'"; astercrm::events($sql); $srcname =& $db->getOne($sql); return $srcname; }
function updateCampaignRecord($f) { global $db; $f = astercrm::variableFiler($f); $bindqueue = 0; if ($f['bindqueue'] == "on") { $bindqueue = 1; } if ($f['dialtwoparty'] == "on") { $dialtwoparty = "yes"; } else { $dialtwoparty = "no"; } if ($f['use_ext_chan'] == "on") { $useExtChan = "yes"; } else { $useExtChan = "no"; } $limit_type = ''; if ($f['queuename'] == "") { $limit_type = 'channel'; } $query = "UPDATE campaign SET " . "campaignname='" . $f['campaignname'] . "', " . "campaignnote='" . $f['campaignnote'] . "', " . "enable='" . $f['enable'] . "', " . "serverid='" . $f['serverid'] . "', " . "worktime_package_id='" . $f['worktime_package_id'] . "', " . "waittime='" . $f['waittime'] . "', " . "outcontext='" . $f['outcontext'] . "', " . "incontext='" . $f['incontext'] . "', " . "nextcontext='" . $f['nextcontext'] . "', " . "firstcontext='" . $f['firstcontext'] . "', " . "inexten='" . $f['inexten'] . "', " . "queuename='" . $f['queuename'] . "', " . "bindqueue='" . $bindqueue . "', " . "max_dialing='" . $f['max_dialing'] . "', " . "maxtrytime='" . $f['maxtrytime'] . "', " . "recyletime='" . $f['recyletime'] . "', " . "enablerecyle='" . $f['enablerecyle'] . "', " . "minduration='" . $f['minduration'] . "', " . "minduration_billsec='" . $f['minduration_billsec'] . "', " . "minduration_leg_a='" . $f['minduration_leg_a'] . "', " . "callerid='" . $f['callerid'] . "', " . "use_ext_chan='" . $useExtChan . "', " . "dialtwoparty='" . $dialtwoparty . "', " . "queue_context='" . $f['queue_context'] . "', " . "sms_number='" . $f['sms_number'] . "', " . "balance = '" . $f['balance'] . "'," . "init_billing = '" . $f['init_billing'] . "'," . "billing_block = '" . $f['billing_block'] . "'," . "enablebalance = '" . $f['enablebalance'] . "'," . "groupid='" . $f['groupid'] . "' "; if ($limit_type != '') { $query .= ",limit_type='{$limit_type}' "; } $query .= "WHERE id=" . $f['id']; astercrm::events($query); $res =& $db->query($query); return $res; }
function updateServerRecord($f) { global $db; $f = astercrm::variableFiler($f); $query = "UPDATE servers SET " . "name='" . $f['name'] . "', " . "ip='" . $f['ip'] . "', " . "port='" . $f['port'] . "', " . "username= '******'username'] . "', " . "secret='" . $f['secret'] . "', " . "note='" . $f['note'] . "' " . "WHERE id='" . $f['id'] . "'"; astercrm::events($query); $res =& $db->query($query); return $res; }
function insertIntoDnc($callerid, $campaignid) { global $db, $locate; $objResponse = new xajaxResponse(); if ($callerid == '') { $objResponse->addScript("alert(\"" . $locate->Translate('Save failed phone number is empty') . "\");"); return $objResponse; } $sql = "INSERT INTO dnc_list SET \n\t\t number='" . $callerid . "',\n\t\t campaignid=" . $campaignid . ",\n\t\t groupid=" . $_SESSION['curuser']['groupid'] . ",\n\t\t status='enable',\n\t\t creby='" . $_SESSION['curuser']['username'] . "',\n\t\t cretime=now()"; astercrm::events($query); $res =& $db->query($sql); if ($res) { $objResponse->addScript("alert(\"" . $locate->Translate('Save successful') . "\");"); } else { $objResponse->addScript("alert(\"" . $locate->Translate('Save failed') . "\");"); } return $objResponse; }
function updateTrunkinfoRecord($f) { global $db; $f = astercrm::variableFiler($f); $query = "UPDATE trunkinfo SET " . "trunkname='" . $f['trunkname'] . "', " . "trunkchannel='" . $f['trunkchannel'] . "', " . "didnumber='" . $f['didnumber'] . "', " . "trunk_number='" . $f['trunk_number'] . "', " . "trunknote='" . $f['trunknote'] . "', " . "cretime= now() " . "WHERE id= " . $f['id'] . " "; astercrm::events($query); $res =& $db->query($query); return $res; }
function insertNewAccountForBilling($f) { global $db; $f = astercrm::variableFiler($f); $sql = "INSERT INTO clid SET " . "clid='" . $f['extension'] . "', " . "pin='" . $f['password'] . "', " . "display='" . $f['username'] . "', " . "groupid = " . $f['groupid'] . ", " . "resellerid = " . $f['resellerid'] . ", " . "creditlimit = '" . $f['creditlimit'] . "'," . "limittype = '" . $f['limittype'] . "'," . "addtime = now() "; astercrm::events($sql); $res =& $db->query($sql); return $res; }
function getCampaignReport($aFormValues) { global $db, $locate; $total_sql = "SELECT COUNT(*) AS total,SUM(campaigndialedlist.billsec) AS billsec,SUM(campaigndialedlist.billsec_leg_a) AS billsec_leg_a,SUM(campaigndialedlist.duration) AS duration,campaign.campaignname,campaigndialedlist.campaignid FROM campaigndialedlist LEFT JOIN campaign ON campaign.id = campaigndialedlist.campaignid WHERE campaigndialedlist.dialedtime BETWEEN '" . $aFormValues['sdate'] . "' AND '" . $aFormValues['edate'] . "' "; $answer_sql = "SELECT COUNT(*) AS total,SUM(billsec) AS billsec,SUM(billsec_leg_a) AS billsec_leg_a,SUM(duration) AS duration,campaignid FROM campaigndialedlist WHERE dialedtime BETWEEN '" . $aFormValues['sdate'] . "' AND '" . $aFormValues['edate'] . "' AND billsec > 0 "; $transfer_sql = "SELECT COUNT(transfertarget) AS transferednum,campaignid FROM campaigndialedlist WHERE dialedtime BETWEEN '" . $aFormValues['sdate'] . "' AND '" . $aFormValues['edate'] . "' and transfertarget != '' "; if ($_SESSION['curuser']['usertype'] != 'admin') { $total_sql .= " AND campaigndialedlist.groupid = " . $_SESSION['curuser']['groupid'] . " "; $answer_sql .= " AND campaigndialedlist.groupid = " . $_SESSION['curuser']['groupid'] . " "; $transfer_sql .= " AND campaigndialedlist.groupid = " . $_SESSION['curuser']['groupid'] . " "; } $total_sql .= " GROUP BY campaigndialedlist.campaignid "; $answer_sql .= " GROUP BY campaignid "; $transfer_sql .= " GROUP BY campaignid "; astercrm::events($total); $total =& $db->getAll($total_sql); astercrm::events($answer_sql); $answered =& $db->getAll($answer_sql); astercrm::events($transfer_sql); $transfered =& $db->getAll($transfer_sql); $resultArray = array(); foreach ($total as $tol) { $resultArray[$tol['campaignid']]['totalnum'] = $tol['total']; $resultArray[$tol['campaignid']]['tbillsec'] = $tol['billsec']; $resultArray[$tol['campaignid']]['tbillsec_leg_a'] = $tol['billsec_leg_a']; $resultArray[$tol['campaignid']]['tduration'] = $tol['duration']; $resultArray[$tol['campaignid']]['campaignname'] = $tol['campaignname']; } foreach ($answered as $ans) { $resultArray[$ans['campaignid']]['atotalnum'] = $ans['total']; $resultArray[$ans['campaignid']]['abillsec'] = $ans['billsec']; $resultArray[$ans['campaignid']]['abillsec_leg_a'] = $ans['billsec_leg_a']; $resultArray[$ans['campaignid']]['aduration'] = $ans['duration']; } foreach ($transfered as $tran) { $resultArray[$tran['campaignid']]['transferednum'] = $tran['transferednum']; } $campaigns =& $db->getAll('select id,campaignname from campaign'); foreach ($campaigns as $row) { if (array_key_exists($row['id'], $resultArray)) { $resultArray[$row['id']]['campaignname'] = $row['campaignname']; } } $campiangStr = '<table style="width:95%;"><tr><th>' . $locate->Translate("Campaign Name") . '</th><th>' . $locate->Translate("ToalCallNum") . '</th><th>' . $locate->Translate("ToalAnsweredNum") . '</th><th>' . $locate->Translate("AnsweredRate") . '</th><th>' . $locate->Translate("AvgOfCustomerAnswered") . '</th><th>' . $locate->Translate("AvgOfTalk") . '</th><th>' . $locate->Translate("AvgOfRing") . '</th><th>' . $locate->Translate("AvgOfRingByAnswer") . '</th><th>' . $locate->Translate("TransferedNum") . '</th><th>' . $locate->Translate("TransferedRate") . '</th></tr>'; foreach ($resultArray as $key => $val) { $ToalCallNum = $val['totalnum']; //总通话数 $ToalAnsweredNum = $val['atotalnum']; //接通总数 $AnsweredRate = round($val['atotalnum'] / $val['totalnum'], 4) * 100 . '%'; //接通率 $tmpAnswered = intval($val['abillsec'] / $val['atotalnum']); $AvgOfCustomerAnswered = astercrm::FormatSec($tmpAnswered) . " (" . $tmpAnswered . " " . $locate->Translate("sec") . ")"; //平均通话时长 $tmpTalk = intval($val['tbillsec_leg_a'] / $val['totalnum']); $AvgOfTalk = astercrm::FormatSec($tmpTalk) . " (" . $tmpTalk . " " . $locate->Translate("sec") . ")"; //平均客户接听时长 $tmpRing = intval(($val['tduration'] - $val['tbillsec_leg_a']) / $val['totalnum']); $AvgOfRing = astercrm::FormatSec($tmpRing) . " (" . $tmpRing . " " . $locate->Translate("sec") . ")"; //平均振铃时长 $tmpRingByAnswer = intval(($val['aduration'] - $val['abillsec_leg_a']) / $val['atotalnum']); $AvgOfRingByAnswer = astercrm::FormatSec($tmpRingByAnswer) . " (" . $tmpRingByAnswer . " " . $locate->Translate("sec") . ")"; //平均接听振铃时长 $AvgOfTransferedNum = round($val['transferednum'] / $ToalAnsweredNum * 100, 2) . '%'; //转接比率 if ($ToalAnsweredNum == '') { $ToalAnsweredNum = 0; } $campiangStr .= '<tr><td>' . $val['campaignname'] . '</td><td>' . $ToalCallNum . '</td><td>' . $ToalAnsweredNum . '</td><td>' . $AnsweredRate . '</td><td>' . $AvgOfCustomerAnswered . '</td><td>' . $AvgOfTalk . '</td><td>' . $AvgOfRing . '</td><td>' . $AvgOfRingByAnswer . '</td><td>' . $val['transferednum'] . '</td><td>' . $AvgOfTransferedNum . '</td></tr>'; } $campiangStr .= '</table>'; return $campiangStr; }
function updateRemindercallsRecord($f) { global $db; $f = astercrm::variableFiler($f); $query = "UPDATE remindercalls SET " . "customerid='" . $f['customerid'] . "', " . "contactid='" . $f['contactid'] . "', " . "phonenumber= '" . $f['phonenumber'] . "', " . "asteriskcallsid= '" . $f['asteriskcallsid'] . "', " . "note= '" . $f['note'] . "', " . "dialtime= '" . $f['dialtime'] . "', " . "groupid = " . $f['groupid'] . ", " . "cretime = now() " . "WHERE id= " . $f['id'] . " "; astercrm::events($query); $res =& $db->query($query); return $res; }
/** * update account record * @param f array account record * @return objResponse object xajax response object */ function update($f) { global $locate, $db; $objResponse = new xajaxResponse(); $f['extension'] = strtolower($f['extension']); $f['agent'] = strtolower($f['agent']); $f['channel'] = strtolower($f['channel']); if (trim($f['username']) == '' || trim($f['password']) == '' || trim($f['extension']) == '' || trim($f['usertype']) == '' || trim($f['firstname']) == '' || trim($f['lastname']) == '') { $objResponse->addAlert($locate->Translate("obligatory_fields")); return $objResponse->getXML(); } if (trim($f['usertype']) != 'admin' && trim($f['groupid']) == '') { $objResponse->addAlert($locate->Translate("please add group first")); return $objResponse->getXML(); } $username = $f['username']; $userid = astercrm::checkValues("astercrm_account", "username", $username); if ($userid != '' && $userid != $f['id']) { $objResponse->addAlert($locate->Translate("username_repeat")); return $objResponse->getXML(); } if ($f['extensions'] == $locate->translate('extensions_input_tip')) { $f['extensions'] = ''; } if ($f['extensions'] != "") { $f['extensions'] = astercrm::dbcToSbc($f['extensions']); $myExtensions = split(",", $f['extensions']); if ($f['extensType'] != "username") { foreach ($myExtensions as $exten) { $sqlStr .= "OR extension = '{$exten}'"; } $sqlStr = ltrim($sqlStr, "OR"); $query = "SELECT username From astercrm_account WHERE {$sqlStr}"; astercrm::events($query); $res =& $db->query($query); $myExtensions = array(); while ($res->fetchInto($row)) { $myExtensions[] = $row['username']; $newextensions .= "," . $row['username']; } $f['extensions'] = ltrim($newextensions, ','); } // check the assign username if belong to this group if ($_SESSION['curuser']['usertype'] != 'admin') { $myusernames = $myExtensions; $newextensions = ""; $groupList = astercrm::getGroupMemberListByID($_SESSION['curuser']['groupid']); while ($groupList->fetchInto($groupRow)) { $memberNames[] = $groupRow['username']; } foreach ($myusernames as $myusername) { if (in_array($myusername, $memberNames)) { $newextensions .= ",{$myusername}"; } } $f['extensions'] = ltrim($newextensions, ','); } } if ($f['usertype'] == 'admin') { $f['groupid'] = 0; } // check over $respOk = Customer::updateAccountRecord($f); if ($respOk) { $html = createGrid(0, ROWSXPAGE); $objResponse->addAssign("grid", "innerHTML", $html); $objResponse->addAssign("msgZone", "innerHTML", $locate->Translate("update_rec")); $objResponse->addAssign("formDiv", "style.visibility", "hidden"); } else { $objResponse->addAssign("msgZone", "innerHTML", $locate->Translate("rec_cannot_update")); } return $objResponse->getXML(); }
function updateOptionRecord($f, $optionid) { global $db; $sql = "UPDATE surveyoptions SET " . "surveyoption= " . $db->quote($f['surveyoption']) . ", " . "optionnote= " . $db->quote($f['optionnote']) . ", " . "optiontype= " . $db->quote($f['optiontype']) . " " . "WHERE id = {$optionid}"; astercrm::events($sql); $res =& $db->query($sql); return $res; }
function updateAddedSchedulerDial($customerid, $diallistId) { global $db; $sql = "SELECT * FROM customer WHERE id='" . $customerid . "' "; astercrm::events($sql); $result =& $db->getRow($sql); $updateSql = "UPDATE diallist SET customerid='" . $customerid . "',customername='" . $result['customer'] . "' WHERE id='" . $diallistId . "' "; astercrm::events($updateSql); $res =& $db->query($updateSql); return $res; }
function unlock($ip, $s) { global $db; //print_r($s);exit; $objResponse = new xajaxResponse(); $sql = "UPDATE account_log SET failedtimes='0' WHERE ip='" . $ip . "'"; astercrm::events($sql); $res =& $db->query($sql); $searchField = array(); $searchContent = array(); $searchContent = $s['searchContent']; //搜索内容 数组 $searchField = $s['searchField']; //搜索条件 数组 $searchType = $s['searchType']; //搜索方式 数组 $html = createGrid(0, 25, $searchField, $searchContent, $searchField, 'grid', "", $searchType); $objResponse->addClear("msgZone", "innerHTML"); $objResponse->addAssign('grid', "innerHTML", $html); return $objResponse; }
function readReport($groupid, $agent_username, $sdate, $edate) { global $db; $sql = "SELECT username,SUM(`onlinetime`) AS onlinetime FROM agent_online_time WHERE login_time > '" . $sdate . "' AND logout_time < '" . $edate . "' "; if ($groupid == 0 && $agent_username == '') { } else { if ($groupid != 0 && $agent_username == '') { $sql .= " AND username IN (SELECT username FROM astercrm_account WHERE groupid = {$groupid}) "; } else { $sql .= " AND username = '******' "; } } $sql .= " GROUP BY username"; astercrm::events($sql); $result =& $db->query($sql); $minVal = 0; $maxVal = 0; $resultArray = array(); while ($result->fetchInto($row)) { if ($minVal == 0) { $maxVal = $row['onlinetime']; $minVal = $row['onlinetime']; } if ($row['onlinetime'] > $maxVal) { $maxVal = $row['onlinetime']; } if ($row['onlinetime'] < $minVal) { $minVal = $row['onlinetime']; } $resultArray[] = $row; } $multiple = round($maxVal / $minVal); $html = ''; $i = 0; $curlength = 10; if ($multiple >= 10) { $curlength = intval(100 / $multiple); } foreach ($resultArray as $tmp) { if ($i == 0) { $html .= '<tr class="row1">'; } else { $html .= '<tr class="row0">'; } $html .= ' <td>' . $tmp['username'] . '</td> <td>' . astercrm::FormatSec($tmp['onlinetime']) . '</td> <td><div style="width:300px;"><div style="width:' . $curlength * round($tmp['onlinetime'] / $minVal) . '%;background-color:red"> </div></div></td> </tr>'; $i++; } return $html; }
function updateAsteriskcallsRecord($f) { global $db; $f = astercrm::variableFiler($f); $query = "UPDATE asteriskcalls SET " . "asteriskcallsname='" . $f['asteriskcallsname'] . "', " . "outcontext='" . $f['dialoutcontext'] . "', " . "incontext='" . $f['dialincontext'] . "', " . "inextension= '" . $f['dialinextension'] . "', " . "groupid = " . $f['groupid'] . ", " . "cretime = now() " . "WHERE id= " . $f['id'] . " "; astercrm::events($query); $res =& $db->query($query); return $res; }
function getAstercrmUsertype() { global $db; $sql = "SELECT * FROM user_types "; astercrm::events($sql); $result =& $db->query($sql); $usertype = array(); while ($result->fetchInto($row)) { $usertype[] = $row; } return $usertype; }
function deleteCustomer($id) { global $customers_db, $config; $query = "DELETE FROM " . $config['customers']['customertable'] . " WHERE id = {$id}"; astercrm::events($query); $res =& $customers_db->query($query); return $res; }
function incomingCalls($myValue) { global $db, $config; echo $_SESSION['curuser']['country']; exit; $locate = new Localization($_SESSION['curuser']['country'], $_SESSION['curuser']['language'], 'portal'); $objResponse = new xajaxResponse(); if ($myValue['direction'] != '') { $call = asterEvent::checkCallStatus($myValue['curid'], $myValue['uniqueid']); if ($call['status'] == '') { return $objResponse; } elseif ($call['status'] == 'link') { if ($myValue['extensionStatus'] == 'link') { //already get link event return $objResponse; } // if ($call['callerChannel'] == '' or $call['calleeChannel'] == '') // return $objResponse; $status = "link"; $info = $locate->Translate("talking_to") . $myValue['callerid']; $objResponse->addAssign("callerChannel", "value", $call['callerChannel']); $objResponse->addAssign("calleeChannel", "value", $call['calleeChannel']); //if chkMonitor be checked or monitor by astercctools btnMonitor must be disabled Common::read_ini_file($config['system']['astercc_path'] . '/astercc.conf', $asterccConfig); if ($myValue['chkMonitor'] != 'on' && $asterccConfig['system']['force_record'] != 1) { $objResponse->addAssign("btnMonitor", "disabled", false); } //$objResponse->addAssign("btnMonitor","value", $locate->Translate("start_record") ); astercrm::events($myValue['chkMonitor'] . '-chkMonitor'); astercrm::events($myValue['btnMonitorStatus'] . '-btnMonitorStatus'); if ($myValue['chkMonitor'] == 'on' && $myValue['btnMonitorStatus'] == 'idle') { $objResponse->addScript("monitor();"); } $spanCallCtrl = '<input type="button" id="btnCallCtrl" name="btnCallCtrl" value="' . $locate->Translate("Hangup") . '" onclick="hangup();">'; $objResponse->addAssign("spanCallCtrl", "innerHTML", $spanCallCtrl); $objResponse->addAssign("btnTransfer", "disabled", false); } elseif ($call['status'] == 'hangup') { if ($myValue['chkMonitor'] == 'on' && $myValue['btnMonitorStatus'] == 'recording') { $objResponse->addScript("monitor();"); } $status = 'hang up'; $info = $locate->Translate("Hang up call from") . " " . $myValue['callerid']; // $objResponse->addScript('document.title=\'asterCrm\';'); $objResponse->addAssign("uniqueid", "value", ""); $objResponse->addAssign("callerid", "value", ""); $objResponse->addAssign("callerChannel", "value", ''); $objResponse->addAssign("calleeChannel", "value", ''); $objResponse->addAssign("btnTransfer", "disabled", true); //disable monitor $objResponse->addAssign("btnMonitor", "disabled", true); $objResponse->addAssign("spanMonitorStatus", "innerHTML", $locate->Translate("idle")); $objResponse->addAssign("btnMonitor", "value", $locate->Translate("start_record")); //disable hangup button $spanCallCtrl = '<input type="button" id="btnCallCtrl" name="btnCallCtrl" value="' . $locate->Translate("Dial") . '" onclick="invite();">'; $objResponse->addAssign("spanCallCtrl", "innerHTML", $spanCallCtrl); $objResponse->addAssign('divTrunkinfo', "innerHTML", ''); $objResponse->addAssign('divDIDinfo', 'innerHTML', ''); if ($myValue['btnWorkStatus'] == 'working') { $interval = $_SESSION['curuser']['dialinterval']; $objResponse->addScript("autoDial('{$interval}');"); } } $objResponse->addAssign("status", "innerHTML", $status); // $objResponse->addAssign("extensionStatus","value", $status ); $objResponse->addAssign("myevents", "innerHTML", $info); } return $objResponse; }
function deleteTrunk($id, $table) { global $db; //& $db->query("SELECT * FROM resellergroup WHERE id=".$id) $result = mysql_fetch_array(mysql_query("SELECT * FROM resellergroup WHERE id=" . $id)); $query = "DELETE FROM {$table} WHERE id=" . $result['trunk1_id']; astercrm::events($query); $res =& $db->query($query); $query = "DELETE FROM {$table} WHERE id=" . $result['trunk2_id']; astercrm::events($query); $res =& $db->query($query); return $res; }
function updateDNCRecord($f) { global $db; $f = astercrm::variableFiler($f); $query = "UPDATE dnc_list SET " . "number='" . astercrm::getDigitsInStr($f['number']) . "', " . "groupid='" . $f['groupid'] . "', " . "campaignid= '" . $f['campaignid'] . "' " . "WHERE id='" . $f['id'] . "'"; astercrm::events($query); $res =& $db->query($query); return $res; }
function updateDiallistRecord($f) { global $db; $f = astercrm::variableFiler($f); if ($f['callOrder'] == 0 || $f['callOrder'] == '') { $f['callOrder'] = 1; } $query = "UPDATE diallist SET " . "dialnumber='" . astercrm::getDigitsInStr($f['dialnumber']) . "', " . "customername='" . $f['customername'] . "', " . "groupid='" . $f['groupid'] . "', " . "dialtime='" . $f['dialtime'] . "', " . "callOrder='" . $f['callOrder'] . "', " . "campaignid= " . $f['campaignid'] . ", " . "assign='" . $f['assign'] . "'," . "memo='" . $f['memo'] . "'" . "WHERE id='" . $f['id'] . "'"; astercrm::events($query); $res =& $db->query($query); return $res; }
function updateCampaignResultRecord($f) { global $db; $f = astercrm::variableFiler($f); $bindqueue = 0; if ($f['bindqueue'] == "on") { $bindqueue = 1; } $query = "UPDATE campaignresult SET " . "resultname='" . $f['resultname'] . "', " . "resultnote='" . $f['resultnote'] . "', " . "status='" . $f['status'] . "', " . "campaignid='" . $f['campaignid'] . "', " . "parentid='" . $f['parentid'] . "', " . "groupid='" . $f['groupid'] . "' " . "WHERE id=" . $f['id']; astercrm::events($query); // echo $query;exit; $res =& $db->query($query); return $res; }
/** * delete a record form a table into that's history table * * @param $id (int) identity of the record * @param $table (string) table name * @return $res (object) object */ function deleteRecordToHistory($field, $value, $table) { global $db; //backup all datas $history_sql = "INSERT INTO " . $table . "_history SELECT * FROM " . $table . " WHERE " . $field . "='" . $value . "' "; astercrm::events($history_sql); $history_res =& $db->query($history_sql); if ($history_res) { //delete all note $sql = "DELETE FROM {$table} WHERE " . $field . " = '" . $value . "'"; astercrm::events($sql); $res =& $db->query($sql); return $res; } else { return false; } }
function multiEditUpdate($searchContent = array(), $searchField = array(), $searchType = array(), $table, $f) { global $db, $locate; $objResponse = new xajaxResponse(); $searchContent = split(',', $searchContent); $searchField = split(',', $searchField); $searchType = split(',', $searchType); $i = 0; foreach ($searchField as $field) { if (trim($searchType[$i]) != '' && trim($searchContent[$i]) != '') { if ($field == 'resellername' && trim($searchType[$i]) != '' && trim($searchContent[$i]) != '') { if (trim($searchType[$i]) == "like") { $whereResellername .= "AND resellername LIKE '%" . $searchContent[$i] . "%' "; } elseif (trim($searchType[$i]) == "equal") { $whereResellername .= "AND resellername = '" . $searchContent[$i] . "' "; } elseif (trim($searchType[$i]) == "more") { $whereResellername .= "AND resellername > '" . $searchContent[$i] . "' "; } elseif (trim($searchType[$i]) == "less") { $whereResellername .= "AND resellername < '" . $searchContent[$i] . "' "; } $searchField[$i] = ''; } elseif ($field == 'groupname') { if (trim($searchType[$i]) == "like") { $whereGroupname .= "AND groupname like '%" . $searchContent[$i] . "%' "; } elseif (trim($searchType[$i]) == "equal") { $whereGroupname .= "AND groupname = '" . $searchContent[$i] . "' "; } elseif (trim($searchType[$i]) == "more") { $whereGroupname .= "AND groupname > '" . $searchContent[$i] . "' "; } elseif (trim($searchType[$i]) == "less") { $whereGroupname .= "AND groupname < '" . $searchContent[$i] . "' "; } $searchField[$i] = ''; } $i++; } } if ($whereResellername != '') { $sql = "SELECT id FROM resellergroup WHERE 1 " . $whereResellername; $resellerRes =& $db->query($sql); while ($resellerRes->fetchInto($row)) { $resellerJoinStr .= "AND resellerid = " . $row['id'] . " "; } } if ($whereGroupname != '') { $sql = "SELECT id FROM accountgroup WHERE 1 " . $whereGroupname; $groupRes =& $db->query($sql); while ($groupRes->fetchInto($row)) { $groupJoinStr .= "AND groupid = " . $row['id'] . " "; } } $joinstr = astercrm::createSqlWithStype($searchField, $searchContent, $searchType); list($field, $fieldType) = split(',', $f['multieditField']); $sucessNum = 0; if ($f['multioption'] == 'modify') { $query = "SELECT id," . trim($field) . " FROM " . $table . " WHERE 1 " . $joinstr . $groupJoinStr . $resellerJoinStr; astercrm::events($query); $res = $db->query($query); while ($res->fetchInto($row)) { if ($f['multieditcontent'] != '') { if ($f['multieditType'] == 'to') { if ($fieldType == 'int' || $fieldType == 'real') { if (!is_numeric($f['multieditcontent'])) { $objResponse->addAlert($locate->Translate("Must fill number in blank for field") . ":" . $field); return $objResponse; } } $newValue = $f['multieditcontent']; } else { if (!is_numeric($f['multieditcontent'])) { $objResponse->addAlert($locate->Translate("Must fill number in blank for field") . ":" . $field); return $objResponse; } if ($f['multieditType'] == 'plus') { $newValue = $row[$field] + $f['multieditcontent']; } elseif ($f['multieditType'] == 'minus') { $newValue = $row[$field] - $f['multieditcontent']; } elseif ($f['multieditType'] == 'multiply') { $newValue = $row[$field] * $f['multieditcontent']; } } $updateSql = "UPDATE " . $table . " SET " . trim($field) . " = '" . $newValue . "'"; if ($f['resellerid'] != '') { $updateSql .= ", resellerid =" . $f['resellerid'] . ", groupid =" . $f['groupid']; } $updateSql .= ",addtime = now() WHERE id = " . $row['id']; } else { if ($f['resellerid'] != '') { $updateSql = "UPDATE " . $table . " SET resellerid =" . $f['resellerid'] . ", groupid =" . $f['groupid'] . ",addtime = now() WHERE id = " . $row['id']; } else { $objResponse->addAlert($locate->Translate("No Option")); return $objResponse; } } astercrm::events($updateSql); $updateRes = $db->query($updateSql); if ($updateRes === 1) { $sucessNum++; } } $objResponse->addAlert($sucessNum . $locate->Translate("records have been changed")); } elseif ($f['multioption'] == 'duplicate') { $query = "SELECT * FROM " . $table . " WHERE 1 " . $joinstr . $groupJoinStr . $resellerJoinStr; astercrm::events($query); $res =& $db->query($query); while ($res->fetchInto($row)) { $insertField = ''; $insertValue = ''; if ($f['multieditcontent'] != '') { if ($f['multieditType'] == 'to') { if ($fieldType == 'int' || $fieldType == 'real') { if (!is_numeric($f['multieditcontent'])) { $objResponse->addAlert($locate->Translate("Must fill number in blank for field") . ":" . $field); return $objResponse; } } $newValue = $f['multieditcontent']; } else { if (!is_numeric($f['multieditcontent'])) { $objResponse->addAlert($locate->Translate("Must fill number in blank for field") . ":" . $field); return $objResponse; } if ($f['multieditType'] == 'plus') { $newValue = $row[$field] + $f['multieditcontent']; } elseif ($f['multieditType'] == 'minus') { $newValue = $row[$field] - $f['multieditcontent']; } elseif ($f['multieditType'] == 'multiply') { $newValue = $row[$field] * $f['multieditcontent']; } } foreach ($row as $key => $value) { if (!preg_match("/id\$/", $key) && $key != 'addtime') { $insertField .= $key . ","; if ($key != $field) { $insertValue .= "'" . $value . "',"; } else { $insertValue .= "'" . $newValue . "',"; } } } $insertField .= "resellerid,groupid"; if ($f['resellerid'] != '') { $insertValue .= $f['resellerid'] . "," . $f['groupid']; } else { $insertValue .= $row['resellerid'] . "," . $row['groupid']; } } else { foreach ($row as $key => $value) { if (!preg_match("/id\$/", $key) && $key != 'addtime') { $insertField .= $key . ","; $insertValue .= "'" . $value . "',"; } } if ($f['resellerid'] != '') { $insertField .= " resellerid,groupid"; $insertValue .= $f['resellerid'] . "," . $f['groupid']; } else { $objResponse->addAlert($locate->Translate("No Option")); return $objResponse; } } $insertField = "(" . $insertField . ",addtime)"; $insertValue = "(" . $insertValue . ",now())"; $insertSql = "INSERT INTO " . $table . " " . $insertField . " VALUES " . $insertValue; //echo $insertSql;exit; astercrm::events($insertSql); $insertRes = $db->query($insertSql); if ($insertRes === 1) { $sucessNum++; } } $objResponse->addAlert($sucessNum . $locate->Translate("records have been added")); } $html = createGrid(0, 25, $searchField, $searchContent, $searchField, 'grid', "", 1, 1, $searchType, $f['displaymode']); $objResponse->addClear("msgZone", "innerHTML"); $objResponse->addAssign('grid', "innerHTML", $html); return $objResponse; }
function getAssignToName($assignto) { global $db; $sql = "SELECT username FROM astercrm_account WHERE id='" . $assignto . "' "; astercrm::events($sql); $username =& $db->getOne($sql); return $username; }
/** * Actualiza un registro de la tabla. * * @param $f (array) Arreglo que contiene los datos del formulario pasado. * @return $res (object) Devuelve el objeto con la respuesta de la sentencia SQL ejecutada del UPDATE. */ function updateTCategoryRecord($f) { global $db; $f = astercrm::variableFiler($f); $query = "UPDATE tickets SET " . "ticketname='" . $f['ticketname'] . "', " . "campaignid='" . $f['campaignid'] . "', " . "groupid='" . $f['groupid'] . "', " . "fid=" . $f['fid'] . " " . "WHERE id='" . $f['id'] . "'"; astercrm::events($query); $res =& $db->query($query); return $res; }
function insertTicket($f) { global $db; $customer_sql = "select id from astercrm_account where username='******'curuser']['username'] . "'"; astercrm::events($customer_sql); $customerid =& $db->getOne($customer_sql); $sql = "insert into ticket_details set" . " ticketcategoryid=" . $f['ticketcategoryid'] . ", " . " ticketid=" . $f['ticketid'] . ", " . " customerid=" . $f['customerid'] . ", " . " status='" . $f['Tstatus'] . "', " . " assignto=" . $customerid . ", " . " groupid=" . $f['groupid'] . ", " . " memo='" . $f['Tmemo'] . "', " . " cretime=now()," . " creby='" . $_SESSION['curuser']['username'] . "' ;"; astercrm::events($sql); $result =& $db->query($sql); return $result; }
function updateSmsTemplates($f) { global $db; if ($f['belongto'] == 'all') { $campaignId = 0; $trunkId = 0; } else { if ($f['belongto'] == 'campaign') { $campaignId = $f['object_id']; $trunkId = 0; } else { $trunkId = $f['object_id']; $campaignId = 0; } } if ($f['is_edit'] == 'on') { $f['is_edit'] = 'yes'; } else { $f['is_edit'] = 'no'; } $sql = "UPDATE sms_templates SET \n\t\t\t\t`templatetitle`='" . $f['templatetitle'] . "',\n\t\t\t\t`belongto`='" . $f['belongto'] . "',\n\t\t\t\t`campaign_id`=" . $campaignId . ",\n\t\t\t\t`trunkinfo_id`=" . $trunkId . ",\n\t\t\t\t`content`='" . $f['content'] . "',\n\t\t\t\t`is_edit`='" . $f['is_edit'] . "'\n\t\t\t\t WHERE id=" . $f['id'] . ";\n\t\t\t"; astercrm::events($sql); $result =& $db->query($sql); return $result; }