59030e1f by Unnayan

First Commit

0 parents
Showing 1000 changed files with 5090 additions and 0 deletions

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

APP_ENV=local
APP_DEBUG=true
APP_ADMIN_DEBUG=true
APP_LOG_LEVEL=error
APP_KEY=LEynnBaQoqsLncOWZwgdtfxxWU2hEyfp
APP_PROTOCOL=http://
app_name=Flexydial
app_title=Flexydial
app_domain=localhost:8000
web_domain=localhost:8000
app_ip=localhost
asterisk_slaves=192.168.3.242:1001:2000:1:240
asterisk_manager=192.168.3.242
asterisk_extensions=31330,_X!
APP_Multiple_Logins=yes
kDialer_keeplocalconf=1
kstych_viewportMeta=responsive:1:1
DB_HOST=192.168.3.234
DB_DATABASE=fullerton
DB_USERNAME=root
DB_PASSWORD=yb9738z
CACHE_DRIVER=database
SESSION_DRIVER=database
SESSION_LIFEMin=43200
QUEUE_DRIVER=sync
#MAIL_DRIVER=smtp
#MAIL_HOST=localhost
#MAIL_PORT=587
#MAIL_USERNAME=mail
#MAIL_PASSWORD=mail
#[email protected]
AWS_KEY=
AWS_Secret=
AWS_Region=us-east-1
AWS_Bucket=
FS_DefaultDriver=local
FS_CloudDriver=s3
facebook_appid=
facebook_appkey=
gcm_apikey=
extAuth=
extAuthParams=
xssGlobal=tag,hent
xssGlobalIgnoreKeys=content,pdata,courseintroductiondiv,coursecoverphoto,data,rlog,rstring
MobileTitle=Flexydial
* text=auto
*.css linguist-vendored
*.less linguist-vendored
application/.env
application/storage/framework/sessions/
application/storage/framework/views/
application/storage/framework/cache/
custom/.env
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
<?php
namespace App\Jobs;
use Auth;
use Request;
use App\Models\User;
use App\Models\CRMCall;
use App\Models\AgentNumber;
use App\Models\Dialline;
use App\Models\Kqueue;
use Response;
use Log;
use Hash;
class DialerLib
{
/**
* To Create New CRM call entry based on calling details
*/
public function createCRMCallEntry($crmdata, $ppldata)
{
$nowts = microtime(true) * 1000;
//start the call log
$crmcall = new CRMCall();
$crmdata['number'] = $this->arrayKey('number', $crmdata);
$crmcall->number = $this->arrayKey('mobile', $ppldata, $crmdata['number']);
$crmcall->user_id = $this->arrayKey('user_id', $crmdata, '0');
$crmcall->sipid_id = $this->arrayKey('sipid_id', $crmdata, '0');
$crmcall->crm_id = $ppldata['crm_id'];
$crmcall->client = $ppldata['client'];
$crmcall->department = $this->arrayKey('department', $ppldata);
$crmcall->state = 'New';
$crmcall->type = $crmdata['type']; //"MOutbound";
$crmcall->dialline_id = $crmdata['dialline_id'];
$crmcall->setTs('ts_Wait', $nowts);
$crmcall->setTs('ts_Call', $nowts);
$crmcall->did = $this->arrayKey('did', $crmdata);
$tdata = array();
$crmcall->data = json_encode($tdata);
$crmcall->save();
return $crmcall;
}
function arrayKey($key, $arraydata, $defaultval = '')
{
return (array_key_exists($key, $arraydata)) ? $arraydata[$key] : $defaultval;
}
function createAgentcallEntry($user)
{
$sipid = $this->mobileAgentlogin($user);
if ($sipid) {
$dialline = Dialline::where('enabled', '1')->where('status', 'Free')->where('server', env('app_ip'))->first();
if ($dialline) {
$dialline->status = "Agent";
$dialline->number = $sipid->number;
$dialline->save();
$crmcall = new CRMCall();
$crmcall->number = $sipid->number;
$crmcall->sipid_id = $sipid->id;
$crmcall->user_id = $user->id;
$crmcall->userstatus = "AgentCall";
$crmcall->usersubstatus = "AgentCall";
$crmcall->save();
$sipid->ready = 2;
$sipid->save();
$dialline->call_id = $crmcall->id;
$dialline->user_id = $user->id;
$dialline->save();
$newqueue = new Kqueue();
$newqueue->userToMobileAgent($sipid, $dialline);
} else {
return "error";
}
}
return $sipid;
}
function mobileAgentlogin($user)
{
$sipid = AgentNumber::where('user_id', $user->id)->first();
if ($sipid == null) $sipid = new AgentNumber();
if ($sipid) {
$sipid->number = $user->phone;
$sipid->campaign = $user->campaign;
$sipid->server = env('app_ip');
$sipid->user_id = $user->id;
$sipid->save();
}
return $sipid;
}
}
function restartServices
{
systemctl disable httpd.service
systemctl disable mariadb.service
systemctl disable ntpd.service
systemctl disable iptables.service
systemctl disable ip6tables.service
systemctl disable firewalld.service
systemctl disable cockpit.socket
systemctl disable asterisk.service
systemctl disable resiprocate-turn-server.service
systemctl stop httpd.service
systemctl stop mariadb.service
systemctl stop ntpd.service
systemctl stop iptables.service
systemctl stop ip6tables.service
systemctl stop firewalld.service
systemctl stop cockpit.socket
systemctl stop asterisk.service
systemctl stop resiprocate-turn-server.service
systemctl start httpd.service
systemctl start ntpd.service
systemctl start mariadb.service
systemctl start cockpit.socket
systemctl start resiprocate-turn-server.service
systemctl start asterisk.service
systemctl start iptables.service
systemctl start ip6tables.service
iptables -F
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 1935 -j ACCEPT
iptables -A INPUT -p tcp --dport 3478 -j ACCEPT
iptables -A INPUT -p tcp --dport 5038 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
iptables -A INPUT -p tcp --dport 8088 -j ACCEPT
iptables -A INPUT -p tcp --dport 8089 -j ACCEPT
iptables -A INPUT -p tcp --dport 9090 -j ACCEPT
iptables -A INPUT -p tcp --match multiport --dports 10000:20000 -j ACCEPT
iptables -A INPUT -p udp --dport 3478 -j ACCEPT
iptables -A INPUT -p udp --match multiport --dports 10000:60000 -j ACCEPT
iptables -I OUTPUT -j ACCEPT
}
restartServices
#!/bin/bash
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
echo asterisk -rx "sip show channels";
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
//use Mail;
use DB;
use Config;
use App\Models\User;
use App\Models\Accesslog;
use App\Models\CRMCall;
use Schema;
use PDO;
use App\Models\Notification;
use App\Jobs\KHRMSLib;
use Input;
use Log;
use App\Models\Sipid;
use App\Models\Kqueue;
use App\Models\Dialline;
use App\Models\Session;
use App\Models\Cutoff;
use Illuminate\Database\Schema\Blueprint;
class CreateCall extends Command {
/**
* The console command name.
*
* @var string
*/
protected $signature = 'CreateCall';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Create Pedictive Call If any User is Free';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
while(true)
{
usleep(5000000);
$this->runPredictive();
}
}
public function runPredictive()
{
try {
$this->updatePrepareColumn();
$usrArrs = $this->getActiveUsersCampaignWise("with");
$cntAndStrArr = $this->getActualAvailChannelCount();
$availChannel = $cntAndStrArr['cnt'];
$availDialStr = $cntAndStrArr['dialstr'];
if(count($usrArrs)){
//Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log");
//Log::info($usrArrs);
//Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log");
//Log::info("Channel=".$availChannel);
foreach ($usrArrs as $client => $usrArr) {
//Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log");
//Log::info("campaign=".$client);
$acalls = $this->getCreateCallCount($client, count($usrArr));
$acalls = min($acalls, $availChannel);
//Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log");
//Log::info("CallCount=".$acalls);
$this->CreateCall($client, $acalls, $availDialStr);
}
}
} catch (Exception $e) {
Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log");
Log::error($e);
}
}
public function updatePrepareColumn()
{
$allClientUsrIdArr = array();
$updatedUserIdArr = array();
$currentTime = strtotime(date("Y-m-d H:i:s"));
$clientWiseUserIdArr = $this->getActiveUsersCampaignWise("without");
if(count($clientWiseUserIdArr)) {
//Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log");
//Log::info("updatePrepareColumn");Log::info($clientWiseUserIdArr);
foreach ($clientWiseUserIdArr as $client => $usrIdArr) {
$allClientUsrIdArr = array_merge($allClientUsrIdArr, $usrIdArr);
}
$usersTimeArr = Cutoff::whereIn('user_id', $allClientUsrIdArr)->get();
foreach ($usersTimeArr as $userTimeArr) {
$cutOffTime = strtotime($userTimeArr->hangup_time) + ($userTimeArr->avg_dispo - $userTimeArr->avg_ring);
if($cutOffTime < $currentTime)
{
$updatedUserIdArr[] = $userTimeArr->user_id;
}
}
//if(count($updatedUserIdArr)) {
//Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log");
//Log::info("updatedUserIdArr");Log::info($updatedUserIdArr);
//}
DB::table('sipids')->whereIn('user', $updatedUserIdArr)->update(['prepare_call'=>1]);
}
}
public function getActiveUsersCampaignWise($checkPrepareCol)
{
$campaignWiseUsrs = array();
$prepareUsrIds = array();
$loggedInSips = Sipid::where('server','=',env('app_ip'))->where("user", "!=", 0)->where("status","=","1");
if($checkPrepareCol=="with"){
$loggedInSips = $loggedInSips->where("prepare_call","=","1");
}
elseif($checkPrepareCol=="without"){
$loggedInSips = $loggedInSips->where("patched","=","0");
}
$loggedInSips = $loggedInSips->groupBy('user')->get();
if(count($loggedInSips)){
foreach ($loggedInSips as $loggedInSip) {
$prepareUsrIds[] = $loggedInSip->user;
}
//TODO: Change Dialmode Value in the column Of User Table (Ready to Predictive)
$usersLoggedIn = User::whereIn('id', $prepareUsrIds);
if($checkPrepareCol=="without")$usersLoggedIn = $usersLoggedIn->where('current_dialmode', '=', 'Predictive');
$usersLoggedIn = $usersLoggedIn->select('id','sel_campaign')->get();
foreach ($usersLoggedIn as $userLoggedIn) {
$campaignWiseUsrs[$userLoggedIn->sel_campaign][] = $userLoggedIn->id;
}
}
return $campaignWiseUsrs;
}
public function getActualAvailChannelCount()
{
$data = array();
$cnt = 0;
$allChanlCnt = $this->getSpanCount();
$dialstr = "";
$diallineVal = Dialline::where('server','=', env('app_ip'))->where("status","=","Free")->where("dialstr","!=","")->where("enabled","=","1")->select('dialstr')->first();
//TODO: When SIP and Dahdi both are active
if(count($diallineVal)){
if(stristr($diallineVal->dialstr,"Dahdi")){
$dialedCnt = $this->getActualDahdiDialedCallCount();
$cnt = $allChanlCnt - $dialedCnt;
}
elseif(stristr($diallineVal->dialstr,"GATEWAY")){
$dialedCnt = $this->getActualSipDialedCallCount();
$cnt = $allChanlCnt - $dialedCnt;
}
$dialstr = $diallineVal->dialstr;
}
$data['cnt'] = $cnt;
$data['dialstr'] = $dialstr;
return $data;
}
public function getActualSipDialedCallCount()
{
$allChnnlArr = array();
$dialstr = "Dial(SIP/GATEWAY/";
$chnlCnt = 0;
exec("/usr/sbin/asterisk -rx 'core show channels'",$allChnnls);
foreach($allChnnls as $allChnnl){
//$allChnnlArr[] = explode(" ", preg_replace('!\s+!', ' ', $allChnnl) );
if(stristr($allChnnl, $dialstr)){
$chnlCnt++;
}
}
return $chnlCnt;
}
public function getActualDahdiDialedCallCount()
{
$allChnnlArr = array();
$dialstr = "- ACTIVE";
$status = "RED";
$chnlCnt = 0;
//exec("/usr/sbin/asterisk -rx 'service dahdi status'",$allChnnls);
exec("service dahdi status",$allChnnls);
foreach($allChnnls as $allChnnl){
//$allChnnlArr[] = explode(" ", preg_replace('!\s+!', ' ', $allChnnl) );
if(stristr($allChnnl, $status)){
Break;
}
if(stristr($allChnnl, $dialstr)){
$chnlCnt++;
}
}
return $chnlCnt;
}
//TODO: Generate Client File To Take All Parameteres Of Campaigns
public function getCreateCallCount($client, $usrCnt)
{
$wakka = new KHRMSLib();
$mastersdata=$wakka->getCompanyMaster($client);
$ratio = $mastersdata["autodialercampaign"];
$dialedCallCnt = $this->getDialedCallCount($client);
return ($usrCnt*$ratio) - $dialedCallCnt;
}
public function getDialedCallCount($client)
{
$cnt = Dialline::whereIn("status", ["Auto","AutoCall"])->where("conf","=","")->where("regexstr","=",$client)->count();
return $cnt;
}
public function CreateCall($client, $acalls, $availDialStr)
{
if($acalls>0)
{
for($i=1;$i<=$acalls;$i++)
{
$this->createCrmCall($client, $availDialStr);
}
}
}
public function useChannelToDial($client, $availDialStr)
{
$retCrmCall = 0;
$dialline=Dialline::where('server','=', env('app_ip'))->where("status","=","Free")->where("enabled","=","1")->where("dialstr", "=", $availDialStr)->orderBy('updated_at','ASC')->first();
//TODO::Need To Code Dspan Logic as per discussion
//if($dspan!="")$dialline=$dialline->where('dspan','=',$dspan)->where('id','<=','30');
//$dialline=$dialline->orderBy('id','ASC')->first();
if(!empty($dialline))
{
$dialline->status="Incall";
$dialline->save();
$retCrmCall = $this->createCrmCall($client, $dialline);
}
if(!$retCrmCall && !empty($dialline))
{
$dialline->status="Free";
$dialline->save();
}
return;
}
public function createCrmCall($client, $availDialStr)
{
//TODO: Need to check whether callerid is required or not (in case of GSM Gateway)
$callerid="";
$wakka = new KHRMSLib();
//TODO::Need To Add Sequence Logic Here
$users=$wakka->getPersons("client='$client' and status='New' and mobile!='' limit 1");
if(sizeof($users)>=1)
{
$dialline=Dialline::where('server','=', env('app_ip'))->where("status","=","Free")->where("enabled","=","1")->where("dialstr", "=", $availDialStr)->orderBy('updated_at','ASC')->first();
if(!empty($dialline))
{
$dialline->status="AutoCall";
$dialline->regexstr=$client;
$dialline->number=$users[0]["mobile"];
$dialline->save();
$record=$wakka->getPerson($users[0]['id']);
if($record)
{
$record["peopledata"]["status"]="AutoCall";
$wakka->setPerson($users[0]['id'],$record);
}
$nowts=microtime(true)*1000;
//start the call log
$crmcall=new CRMCall();
$crmcall->number=$users[0]["mobile"];
$crmcall->user_id=0;
$crmcall->sipid_id=0;
$crmcall->crm_id=$users[0]['id'];
$crmcall->lan=$users[0]['lan'];
$crmcall->client=$users[0]['client'];
$crmcall->department=$users[0]['department'];
$crmcall->state='New';
$crmcall->type="AutoCall";
$crmcall->dialline_id=$dialline->id;
$crmcall->setTs('ts_Wait',$nowts);
$crmcall->setTs('ts_Call',$nowts);
$crmcall->did=$callerid;
$tdata=array();
$crmcall->data=json_encode($tdata);
$crmcall->save();
$dialline->call_id=$crmcall->id;
$dialline->save();
//start actual calls
$newqueue=new Kqueue();
$newqueue->autoCallOut($users[0]["mobile"],$callerid,$crmcall,$dialline);
return 1;
}
}
return 0;
}
public function getSpanCount()
{
$spanArr = array("span1" => 30, "span2" => 30, "span3" => 0, "span4" => 0);
$cnt = array_sum($spanArr);
return $cnt;
}
}
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
//use Mail;
use DB;
// use Config;
// use App\Models\User;
// use App\Models\Accesslog;
// use App\Models\CRMCall;
// use Schema;
// use PDO;
// use App\Models\Notification;
// use App\Jobs\KHRMSLib;
// use Input;
// use App\Models\Sipid;
// use App\Models\Kqueue;
// use App\Models\Dialline;
// use App\Models\Session;
// use Illuminate\Database\Schema\Blueprint;
class ClearDiallines extends Command {
/**
* The console command name.
*
* @var string
*/
protected $signature = 'ClearDiallines';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Clear diallines if it is not in use';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
DB::update(DB::raw("update diallines set status='Free' where channel='' and status='Blocked'"));
}
}
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
//use Mail;
use DB;
use Config;
use App\Models\User;
use App\Models\Accesslog;
use App\Models\CRMCall;
use Schema;
use PDO;
use App\Models\Notification;
use App\Jobs\KHRMSLib;
use Input;
use Log;
use App\Models\Sipid;
use App\Models\Kqueue;
use App\Models\Dialline;
use App\Models\Session;
use App\Models\Cutoff;
use Illuminate\Database\Schema\Blueprint;
class CreateCall extends Command {
/**
* The console command name.
*
* @var string
*/
protected $signature = 'CreateCall';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Create Pedictive Call If any User is Free';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
while(true)
{
usleep(5000000);
$this->runPredictive();
}
}
public function runPredictive()
{
try {
$this->updatePrepareColumn();
$usrArrs = $this->getActiveUsersCampaignWise("with");
$cntAndStrArr = $this->getActualAvailChannelCount();
log::info("count");
log::info($cntAndStrArr);
$availChannel = $cntAndStrArr['cnt'];
$availDialStr = $cntAndStrArr['dialstr'];
log::info("users");
log::info($usrArrs);
if(count($usrArrs)){
//Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log");
//Log::info($usrArrs);
//Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log");
//Log::info("Channel=".$availChannel);
foreach ($usrArrs as $client => $usrArr) {
Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log");
Log::info("campaign=".$client);
$acalls = $this->getCreateCallCount($client, count($usrArr));
log::info("callbount".$acalls);
$acalls = min($acalls, $availChannel);
log::info("min".$acalls);
//Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log");
//Log::info("CallCount=".$acalls);
$this->CreateCall($client, $acalls, $availDialStr);
}
}
} catch (Exception $e) {
Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log");
Log::error($e);
}
}
public function updatePrepareColumn()
{
$allClientUsrIdArr = array();
$updatedUserIdArr = array();
$currentTime = strtotime(date("Y-m-d H:i:s"));
$clientWiseUserIdArr = $this->getActiveUsersCampaignWise("without");
if(count($clientWiseUserIdArr)) {
//Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log");
//Log::info("updatePrepareColumn");Log::info($clientWiseUserIdArr);
foreach ($clientWiseUserIdArr as $client => $usrIdArr) {
$allClientUsrIdArr = array_merge($allClientUsrIdArr, $usrIdArr);
}
$usersTimeArr = Cutoff::whereIn('user_id', $allClientUsrIdArr)->get();
foreach ($usersTimeArr as $userTimeArr) {
$cutOffTime = strtotime($userTimeArr->hangup_time) + ($userTimeArr->avg_dispo - $userTimeArr->avg_ring);
if($cutOffTime < $currentTime)
{
$updatedUserIdArr[] = $userTimeArr->user_id;
}
}
//if(count($updatedUserIdArr)) {
//Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log");
//Log::info("updatedUserIdArr");Log::info($updatedUserIdArr);
//}
log::info("came");
log::info($updatedUserIdArr);
DB::table('sipids')->whereIn('user', $updatedUserIdArr)->update(['prepare_call'=>1]);
}
}
public function getActiveUsersCampaignWise($checkPrepareCol)
{
$campaignWiseUsrs = array();
$prepareUsrIds = array();
log::info("env".env('app_ip'));
$loggedInSips = Sipid::where('server','=',env('app_ip'))->where("user", "!=", 0)->where("status","=","1");
if($checkPrepareCol=="with"){
$loggedInSips = $loggedInSips->where("prepare_call","=","1");
}
elseif($checkPrepareCol=="without"){
$loggedInSips = $loggedInSips->where("patched","=","0");
}
$loggedInSips = $loggedInSips->groupBy('user')->get();
if(count($loggedInSips)){
foreach ($loggedInSips as $loggedInSip) {
$prepareUsrIds[] = $loggedInSip->user;
}
//TODO: Change Dialmode Value in the column Of User Table (Ready to Predictive)
$usersLoggedIn = User::whereIn('id', $prepareUsrIds);
if($checkPrepareCol=="without")$usersLoggedIn = $usersLoggedIn->where('current_dialmode', '=', 'Predictive');
$usersLoggedIn = $usersLoggedIn->select('id','sel_campaign')->get();
foreach ($usersLoggedIn as $userLoggedIn) {
$campaignWiseUsrs[$userLoggedIn->sel_campaign][] = $userLoggedIn->id;
}
}
log::info("campaignwine");
log::info($campaignWiseUsrs);
return $campaignWiseUsrs;
}
public function getActualAvailChannelCount()
{
$data = array();
$cnt = 0;
$allChanlCnt = $this->getSpanCount();
$dialstr = "";
log::info($allChanlCnt);
log::info("all channel");
$diallineVal = Dialline::where('server','=', '10.4.105.141')->where("status","=","Free")->where("dialstr","!=","")->where("enabled","=","1")->select('dialstr')->first();
log::info($diallineVal);
//TODO: When SIP and Dahdi both are active
if(count($diallineVal)){
if(stristr($diallineVal->dialstr,"Dahdi")){
$dialedCnt = $this->getActualDahdiDialedCallCount();
$cnt = $allChanlCnt - $dialedCnt;
}
elseif(stristr($diallineVal->dialstr,"GATEWAY")){
$dialedCnt = $this->getActualSipDialedCallCount();
$cnt = $allChanlCnt - $dialedCnt;
}
$dialstr = $diallineVal->dialstr;
}
$data['cnt'] = $cnt;
$data['dialstr'] = $dialstr;
return $data;
}
public function getActualSipDialedCallCount()
{
$allChnnlArr = array();
$dialstr = "Dial(SIP/GATEWAY/";
$chnlCnt = 0;
exec("/usr/sbin/asterisk -rx 'core show channels'",$allChnnls);
foreach($allChnnls as $allChnnl){
//$allChnnlArr[] = explode(" ", preg_replace('!\s+!', ' ', $allChnnl) );
if(stristr($allChnnl, $dialstr)){
$chnlCnt++;
}
}
return $chnlCnt;
}
public function getActualDahdiDialedCallCount()
{
$allChnnlArr = array();
$dialstr = "- ACTIVE";
$status = "RED";
$chnlCnt = 0;
//exec("/usr/sbin/asterisk -rx 'service dahdi status'",$allChnnls);
exec("service dahdi status",$allChnnls);
foreach($allChnnls as $allChnnl){
//$allChnnlArr[] = explode(" ", preg_replace('!\s+!', ' ', $allChnnl) );
if(stristr($allChnnl, $status)){
Break;
}
if(stristr($allChnnl, $dialstr)){
$chnlCnt++;
}
}
return $chnlCnt;
}
//TODO: Generate Client File To Take All Parameteres Of Campaigns
public function getCreateCallCount($client, $usrCnt)
{
$wakka = new KHRMSLib();
$mastersdata=$wakka->getCompanyMaster($client);
$ratio = $mastersdata["autodialercampaign"];
$dialedCallCnt = $this->getDialedCallCount($client);
return ($usrCnt*$ratio) - $dialedCallCnt;
}
public function getDialedCallCount($client)
{
$cnt = Dialline::whereIn("status", ["Auto","AutoCall"])->where("conf","=","")->where("regexstr","=",$client)->count();
return $cnt;
}
public function CreateCall($client, $acalls, $availDialStr)
{
if($acalls>0)
{
for($i=1;$i<=$acalls;$i++)
{
$this->createCrmCall($client, $availDialStr);
}
}
}
public function useChannelToDial($client, $availDialStr)
{
$retCrmCall = 0;
$dialline=Dialline::where('server','=', env('app_ip'))->where("status","=","Free")->where("enabled","=","1")->where("dialstr", "=", $availDialStr)->orderBy('updated_at','ASC')->first();
//TODO::Need To Code Dspan Logic as per discussion
//if($dspan!="")$dialline=$dialline->where('dspan','=',$dspan)->where('id','<=','30');
//$dialline=$dialline->orderBy('id','ASC')->first();
if(!empty($dialline))
{
$dialline->status="Incall";
$dialline->save();
$retCrmCall = $this->createCrmCall($client, $dialline);
}
if(!$retCrmCall && !empty($dialline))
{
$dialline->status="Free";
$dialline->save();
}
return;
}
public function createCrmCall($client, $availDialStr)
{
//TODO: Need to check whether callerid is required or not (in case of GSM Gateway)
$callerid="";
$wakka = new KHRMSLib();
//TODO::Need To Add Sequence Logic Here
$users=$wakka->getPersons("client='$client' and status='New' and mobile!='' limit 1");
log::info($users);
if(sizeof($users)>=1)
{
$dialline=Dialline::where('server','=', env('app_ip'))->where("status","=","Free")->where("enabled","=","1")->where("dialstr", "=", $availDialStr)->orderBy('updated_at','ASC')->first();
log::info($availDialStr);
if(!empty($dialline))
{
$dialline->status="AutoCall";
$dialline->regexstr=$client;
$dialline->number=$users[0]["mobile"];
$dialline->save();
$record=$wakka->getPerson($users[0]['id']);
if($record)
{
$record["peopledata"]["status"]="AutoCall";
$wakka->setPerson($users[0]['id'],$record);
}
$nowts=microtime(true)*1000;
//start the call log
$crmcall=new CRMCall();
$crmcall->number=$users[0]["mobile"];
$crmcall->user_id=0;
$crmcall->sipid_id=0;
$crmcall->crm_id=$users[0]['id'];
$crmcall->lan=$users[0]['lan'];
$crmcall->client=$users[0]['client'];
$crmcall->department=$users[0]['department'];
$crmcall->state='New';
$crmcall->type="AutoCall";
$crmcall->dialline_id=$dialline->id;
$crmcall->setTs('ts_Wait',$nowts);
$crmcall->setTs('ts_Call',$nowts);
$crmcall->did=$callerid;
$tdata=array();
$crmcall->data=json_encode($tdata);
$crmcall->save();
$dialline->call_id=$crmcall->id;
$dialline->save();
//start actual calls
$newqueue=new Kqueue();
$newqueue->autoCallOut($users[0]["mobile"],$callerid,$crmcall,$dialline);
return 1;
}
}
return 0;
}
public function getSpanCount()
{
$spanArr = array("span1" => 30, "span2" => 30, "span3" => 0, "span4" => 0);
$cnt = array_sum($spanArr);
return $cnt;
}
}
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
//use Mail;
use DB;
use Config;
use App\Models\User;
use App\Models\Accesslog;
use App\Models\CRMCall;
use Schema;
use PDO;
use App\Models\Notification;
use App\Jobs\KHRMSLib;
use Input;
use App\Models\Sipid;
use App\Models\Kqueue;
use App\Models\Dialline;
use App\Models\Session;
use Illuminate\Database\Schema\Blueprint;
class DailyLogout extends Command {
/**
* The console command name.
*
* @var string
*/
protected $signature = 'DailyLogout';
/**
* The console command description.
*
* @var string
*/
protected $description = 'DailyLogout';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$sipids=Sipid::where("status","=","1")->get();
foreach($sipids as $tsip)
{
$newqueue=new Kqueue();
$newqueue->sipNotify($tsip,"adminCommand","user","logout","");
}
Dialline::where('status','!=','Free')->update(['status'=>'Free','conf'=>'','channel'=>'','server'=>'','updated_at'=>'0000-00-00 00:00:00']);
Sipid::where('status','!=','0')->update(['status'=>0,'user'=>0,'ready'=>0,'confup'=>0,'clients'=>'','server'=>'','updated_at'=>'0000-00-00 00:00:00']);
$serverarray=explode(",",Config::get("app.asterisk_slaves"));
foreach($serverarray as $server)
{
$sparts=explode(":",$server);
Sipid::where("id",">=",$sparts[1])->where("id","<=",$sparts[2])->update(['server' => $sparts[0],'updated_at'=>'0000-00-00 00:00:00']);
Dialline::where("id",">=",$sparts[3])->where("id","<=",$sparts[4])->update(['server' => $sparts[0],'updated_at'=>'0000-00-00 00:00:00']);
$newqueue=new Kqueue();
$newqueue->astCommand($sparts[0],"channel request hangup all");
}
User::where('presence','>','0')->update(['presence'=>0]);
Session::truncate();
return "";
}
}
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
//use Mail;
use DB;
use Config;
use App\Models\User;
use App\Models\Accesslog;
use App\Models\CRMCallArchive;
use Schema;
use PDO;
use App\Models\Notification;
use App\Jobs\KHRMSLib;
use Input;
use App\Models\Sipid;
use App\Models\Kqueue;
use App\Models\Dialline;
use App\Models\Session;
use Illuminate\Database\Schema\Blueprint;
class DeleteCRMCallArchive extends Command {
/**
* The console command name.
*
* @var string
*/
protected $signature = 'DeleteCRMCallArchive';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Delete data from CRMCallArchive before 6 months';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$logdate=strtotime('-6 months');
CRMCallArchive::where('created_at','<',date("Y-m-d",$logdate))->delete();
}
}
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
//use Mail;
use DB;
use Config;
use App\Models\User;
use App\Models\Accesslog;
use App\Models\CRMCall;
use Schema;
use PDO;
use App\Models\Notification;
use App\Jobs\KHRMSLib;
use Input;
use App\Models\Sipid;
use App\Models\Kqueue;
use App\Models\Dialline;
use App\Models\Session;
use Illuminate\Database\Schema\Blueprint;
class DeleteCrmcalls extends Command {
/**
* The console command name.
*
* @var string
*/
protected $signature = 'DeleteCrmcalls';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Delete data from CRMCalls before 7 days';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$logdate=strtotime('-7 day');
CRMCall::where('created_at','<',date("Y-m-d",$logdate))->delete();
}
}
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
use Mail;
use DB;
use Config;
use App\Models\User;
use App\Models\Accesslog;
use App\Models\CRMCall;
use Schema;
use PDO;
use App\Models\Notification;
use App\Jobs\KHRMSLib;
use Input;
use App\Models\Sipid;
use App\Models\Kqueue;
use App\Models\Dialline;
use App\Models\Session;
use Illuminate\Database\Schema\Blueprint;
class HangupCall extends Command {
/**
* The console command name.
*
* @var string
*/
protected $signature = 'HangupCall';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Hangup Long Wait Call';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$Diallines = Dialline::where("status","=","Auto")->where("conf","=","")->where("channel","!=","")->get();
foreach ($Diallines as $key => $Dialline) {
$to_time = strtotime(date("Y-m-d H:i:s"));
$from_time = strtotime($Dialline->updated_at);
$diff_time = round(abs($to_time - $from_time)/60,2);
if($diff_time>2)
{
$newqueue=new Kqueue();
$newqueue->hangupChannel($Dialline);
}
}
}
}
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
//use Mail;
use DB;
use Config;
use App\Models\User;
use App\Models\Accesslog;
use App\Models\CRMCall;
use Schema;
use PDO;
use App\Models\Notification;
use App\Jobs\KHRMSLib;
use Input;
use App\Models\Sipid;
use App\Models\Kqueue;
use App\Models\Dialline;
use App\Models\Session;
use Illuminate\Database\Schema\Blueprint;
class InsertCrmArchive extends Command {
/**
* The console command name.
*
* @var string
*/
protected $signature = 'InsertCrmArchive';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Insert updated data into crmcalls_archive from crmcalls';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
echo 'Start';
$minidObj = DB::selectOne(DB::raw("SELECT MIN(id) AS min_id FROM crmcalls_archive WHERE created_at >= DATE_SUB((SELECT MAX(created_at) from crmcalls_archive), INTERVAL 1 HOUR)"));
$min_id = $minidObj->min_id;
DB::delete(DB::raw("DELETE FROM crmcalls_archive WHERE id >= '$min_id'"));
DB::insert(DB::raw("insert into crmcalls_archive select * from crmcalls where id>(select max(id) from crmcalls_archive)"));
echo 'End';
}
}
\ No newline at end of file
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
//use Mail;
use DB;
use Config;
use App\Models\User;
use App\Models\Accesslog;
use App\Models\CRMCall;
use Schema;
use PDO;
use App\Models\Notification;
use App\Jobs\KHRMSLib;
use Input;
use App\Models\Sipid;
use App\Models\Kqueue;
use App\Models\Dialline;
use App\Models\Session;
use Illuminate\Database\Schema\Blueprint;
class InsertCrmArchive2 extends Command {
/**
* The console command name.
*
* @var string
*/
protected $signature = 'InsertCrmArchive2';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Insert updated data into crmcalls_archive_2 from crmcalls';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
echo 'Start';
DB::insert(DB::raw("insert into crmcalls_archive_2 select * from crmcalls_archive where id>(select max(id) from crmcalls_archive_2)"));
echo 'End';
}
}
\ No newline at end of file
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Jobs\KPAMIListen;
class KstychARP extends Command {
/**
* The console command name.
*
* @var string
*/
protected $signature = 'KstychARP';
/**
* The console command description.
*
* @var string
*/
protected $description = 'ARP Broadcast';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
}
}
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
use Mail;
use DB;
use Config;
use App\Models\User;
use App\Models\Accesslog;
use App\Models\CRMCall;
use Schema;
use PDO;
use Illuminate\Database\Schema\Blueprint;
class KstychDaily extends Command {
/**
* The console command name.
*
* @var string
*/
protected $signature = 'KstychDaily';
/**
* The console command description.
*
* @var string
*/
protected $description = 'App Main Daily Task';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$nowts=time();
Accesslog::where('endtime','<',date("Y-m-d H:i:s",$nowts-10*24*60*60))->update(array('postdata'=>'','queries'=>''));
Accesslog::where('endtime','<',date("Y-m-d H:i:s",$nowts-30*24*60*60))->delete();
if(env('app_ip')=="10.3.177.14")
{
if(!Schema::hasTable('calllog_report'))
{
Schema::create('calllog_report', function(Blueprint $table)
{
$table->string('server', 100);
$table->dateTime('start');
$table->integer('length');
$table->string('user',100);
$table->string('name',100);
$table->string('dispo', 200);
$table->string('subdispo', 200);
$table->dateTime('callback');
$table->string('number', 100);
$table->string('clientcode', 100);
$table->string('currentstatus', 100);
$table->string('legalstatus', 100);
$table->string('client', 200);
$table->string('department', 200);
$table->string('state', 50);
$table->string('hsource', 100);
$table->string('type', 50);
$table->string('statuscode', 20);
$table->string('status', 100);
$table->string('statusstr', 100);
$table->integer('dialline');
$table->string('did', 50);
$table->bigInteger('waitsec');
$table->bigInteger('callsec');
$table->bigInteger('talksec');
$table->bigInteger('disposec');
$table->string('remarks', 500);
$table->string('userdata',1000);
});
}
$offline=array();
$arr=Config::get("app.hdfcnodes");
$logdate=strtotime('-1 day');
$tcol=0;$fieldsarr=array();$extrahdrarr=array();
$ii=1;$ci=0;
foreach($arr as $server=>$serverline)
{
$ci++;
$conn = array(
'driver' => 'mysql',
'host' => $server,
'database' => env('DB_DATABASE', 'kstych_flexydial'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'options' => array(
PDO::ATTR_TIMEOUT => 5,
),
);
Config::set("database.connections.conn$ci", $conn);
try
{
DB::connection("conn$ci")->getDatabaseName();
$alist=CRMCall::on("conn$ci")->where('created_at','>=',date("Y-m-d H:i:s",$logdate))->where('created_at','<=',date("Y-m-d H:i:s",$logdate+24*60*60))->get();
$userarr=array();
foreach($alist as $aline)
{
$setstrarr=array();
$clientcode="";$currentstatus="";$legalstatus="";
if($aline->crm_id>0)
{
$user=DB::connection("conn$ci")->select(DB::raw("select id,clientcode,currentstatus,legalstatus from records where id='".$aline->crm_id."' limit 1;"));
if(isset($user[0]))
{
$clientcode=$user[0]->clientcode;
$currentstatus=$user[0]->currentstatus;
$legalstatus=$user[0]->legalstatus;
}
}
$tpostdata=json_decode($aline->data,true);
$fulldate=date("Y-m-d H:i:s",strtotime($aline->created_at)+330*60);
$talktime=$aline->talkSec+$aline->recstartSec+$aline->recendSec;
$length=round(($aline->waitSec+$aline->callSec+$talktime+$aline->dispoSec)/1000,2);
if(!isset($userarr[$aline->user_id])&&$aline->user_id>0)$userarr[$aline->user_id]=User::on("conn$ci")->find($aline->user_id);
$dispname="";if(isset($userarr[$aline->user_id]))$dispname=$userarr[$aline->user_id]->dispname();
$username="";if(isset($userarr[$aline->user_id]))$username=$userarr[$aline->user_id]->username;
$setstrarr[]="server='$server'";
$setstrarr[]="start='$fulldate'";
$setstrarr[]="length='$length'";
$setstrarr[]="user='$username'";
$setstrarr[]="name='$dispname'";
$setstrarr[]="dispo='$aline->userstatus'";
$setstrarr[]="subdispo='$aline->usersubstatus'";
$setstrarr[]="callback='$aline->usercallback'";
$setstrarr[]="number='$aline->number'";
$setstrarr[]="clientcode='$clientcode'";
$setstrarr[]="currentstatus='$currentstatus'";
$setstrarr[]="legalstatus='$legalstatus'";
$setstrarr[]="client='$aline->client'";
$setstrarr[]="department='$aline->department'";
$setstrarr[]="state='$aline->state'";
$setstrarr[]="hsource='$aline->hsource'";
$setstrarr[]="type='$aline->type'";
$setstrarr[]="status='$aline->status'";
$setstrarr[]="statuscode='$aline->statuscode'";
$setstrarr[]="statusstr='$aline->substatus'";
$setstrarr[]="dialline='$aline->dialline_id'";
$setstrarr[]="did='$aline->did'";
$setstrarr[]="waitsec='".round($aline->waitSec/1000,2)."'";
$setstrarr[]="callsec='".round($aline->callSec/1000,2)."'";
$setstrarr[]="talksec='".round($talktime/1000,2)."'";
$setstrarr[]="disposec='".round($aline->dispoSec/1000,2)."'";
$setstrarr[]="remarks='$aline->userremarks'";
$setstrarr[]="userdata='$aline->userdata'";
$setstr=implode(",",$setstrarr);
DB::insert(DB::raw("insert into calllog_report set $setstr"));
}
}
catch(Exception $e)
{
$offline[]=$server;
}
}
}
}
}
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Jobs\KPAGIListen;
class KstychPAGI extends Command {
/**
* The console command name.
*
* @var string
*/
protected $signature = 'KstychPAGI';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Daemon to Listen to Asterisk';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$agi = \PAGI\Client\Impl\ClientImpl::getInstance();
$kpagi = new KPAGIListen(array('pagiClient' => $agi));
$kpagi->init();
$kpagi->run();
}
}
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Jobs\KPAMIListen;
class KstychPAMI extends Command {
/**
* The console command name.
*
* @var string
*/
protected $signature = 'KstychPAMI {serverip=127.0.0.1}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Daemon to Listen to Asterisk';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$listener = new KPAMIListen($this->argument('serverip'));$listener->run();
}
}
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
//use Mail;
use DB;
use Config;
use App\Models\User;
use App\Models\Accesslog;
use App\Models\CRMCall;
use Schema;
use PDO;
use App\Models\Notification;
use App\Jobs\KHRMSLib;
use Input;
use Illuminate\Database\Schema\Blueprint;
class bulkServerUpload extends Command {
/**
* The console command name.
*
* @var string
*/
protected $signature = 'bulkServerUpload';
/**
* The console command description.
*
* @var string
*/
protected $description = 'bulkServerUpload';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
echo "\n".date('Y-m-d')."\n";
$wakka = new KHRMSLib();
$kformlib=new \App\Jobs\KFormLib($wakka->HRCoreVars["HRFiledsStr"]);
$kformlib->gthis=$wakka;
$themehome=$wakka->GetThemePath('/');
$updatetime=time();
$clientlst=$wakka->GetBBBUserData("clientslist");
$isadmin=$wakka->IsAdmin();
$username=$wakka->GetUserName();
$triggers=Input::get("triggers");
$tmpstr=explode(",",$kformlib->HRFiledsStr);
$success="";$message="";$successcnt=0;$duplicatecount=0;
$conn = array(
'driver' => 'mysql',
'host' => '10.3.177.14',
'database' => env('DB_DATABASE', 'kstych_flexydial'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'yb9738z'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'options' => array(
PDO::ATTR_TIMEOUT => 5,
),
);
Config::set("database.connections.conn", $conn);
DB::connection("conn")->getDatabaseName();
// $excelarray = DB::table('bz_record_upload_uat')->select('*')->get();
$excelarray = DB::connection("conn")->select(DB::raw("select * from bz_record_upload_uat limit 1"));
$excelarray = (array)$excelarray;
$highestColumn = DB::connection("conn")->select(DB::raw("select count(*) from information_schema.columns where table_name='bz_record_upload_uat'"));
$highestrow = count($excelarray);
echo $highestColumn;
$flag = 0;
$editflag=0;
for($i=0;$i<=$highestrow;$i++)
{
if($excelarray[$i]["id"]!="")
{
if($excelarray[$i]["id"]=="CREATE")
{
$excelarray[$i]["id"]=$wakka->Query("insert into","","records_demo",array('created'=>date('Y-m-d H:i:s')));
}
else $excelarray[$i]["id"]=intval($excelarray[$i]["id"]);
if($wakka->getCount("records_demo","id='".$excelarray[$i]["id"]."'")==1)
{
$empdata=$wakka->getPersonServer($excelarray[$i]["id"]);
$ppldata=$empdata["peopledata"];
$createdlog=$empdata['modifylog'];
$fdirty=$empdata['dirty'];
$createdlog[$updatetime]=$username."::";
$createdlog["updated"]=$updatetime;
$newdata=$ppldata;
foreach($excelarray[$i] as $key => $value)
{
if($value!="")
{
if("A".$ppldata[$key]!="A".$value)//forcing string comparrision //MAGIC
{
$value=str_replace("'"," ",$value);
if(strstr($createdlog[$updatetime],$key)==FALSE)$createdlog[$updatetime].="$key|".str_replace(array("|",",")," ",$ppldata[$key])."|".str_replace(array("|",",")," ",$value).",";
$fdirty[$key]=1;
$newdata[$key]=$value;
}
}
}
$empdata["peopledata"]=$newdata;
$empdata['modifylog']=$createdlog;
$empdata['dirty']=$fdirty;
$wakka->setPersonServer($excelarray[$i]["id"],$empdata);
$excelarray[$i]['modified']=date('Y-m-d H:i:s');
}
}
}
mysqli_close($conn);
}
}
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
//use Mail;
use DB;
use Config;
use App\Models\User;
use App\Models\Accesslog;
use App\Models\CRMCall;
use Schema;
use PDO;
use App\Models\Notification;
use App\Jobs\KHRMSLib;
use Input;
use App\Models\Sipid;
use App\Models\Kqueue;
use App\Models\Dialline;
use App\Models\Session;
use App\Models\Cutoff;
use Log;
use Illuminate\Database\Schema\Blueprint;
class PredictiveCallHangUp extends Command {
/**
* The console command name.
*
* @var string
*/
protected $signature = 'PredictiveCallHangUp';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Hang Up Extra Calls If Agents Are Not Free';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
while(true)
{
usleep(1000000);
$this->runHangUp();
}
}
public function runHangUp()
{
try {
$breathingTime = 30;
$avgringsec = 30;
$dStatus = "InHangUp";
// $avgringsec = Cutoff::select(DB::Raw('avg(avg_ring) as avgringsec'))->first();
// if($avgringsec)$avgringsec= intval($avgringsec->avgringsec);
$diallines = Dialline::where('server', '=', env('app_ip'))->whereIn("status", ["Auto","AutoCall"])->where("conf","=","")->select('id', 'call_id', 'src_channel', 'status', 'updated_at', 'channel', 'server')->get();
foreach ($diallines as $dialline) {
$newqueue=new Kqueue();
$lastUpdatedTime = strtotime(date("Y-m-d H:i:s")) - strtotime($dialline->updated_at);
$callId = $dialline->call_id;
if ($dialline->status == 'Auto' && $lastUpdatedTime > $breathingTime) {
$dialline->status=$dStatus;
$dialline->save();
$newqueue->hangupChannelS($dialline->channel,$dialline->server);
$this->updateCrmCallEntry($callId);
}
}
} catch (Exception $e) {
Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log");
Log::error($e);
}
}
public function updateCrmCallEntry($callId)
{
$hsource = "DTO";
CRMCall::where('id', $callId)
->update([
'hsource'=> $hsource
]);
}
}
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
//use Mail;
use DB;
use Config;
use App\Models\User;
use App\Models\Accesslog;
use App\Models\CRMCall;
use Schema;
use PDO;
use App\Models\Notification;
use App\Jobs\KHRMSLib;
use Input;
use App\Models\Sipid;
use App\Models\Kqueue;
use App\Models\Dialline;
use App\Models\Session;
use App\Models\Cutoff;
use Log;
use Illuminate\Database\Schema\Blueprint;
class UpdateAvgRingSec extends Command {
/**
* The console command name.
*
* @var string
*/
protected $signature = 'UpdateAvgRingSec';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Update Avg Call Ring Sec Of Last 50 Calls';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$avgcallsecObj = CRMCall::select(DB::Raw('ROUND((avg(callsec))/1000) as avgcallsec'))->limit(50)->where("type","!=","Inbound")->first();
if(count($avgcallsecObj))
{
Cutoff::where('user_id', '!=', "")->update(
['avg_ring' => $avgcallsecObj->avgcallsec
]);
}
}
}
\ No newline at end of file
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
//use Mail;
use DB;
use Config;
use App\Models\User;
use App\Models\Accesslog;
use App\Models\CRMCall;
use Schema;
use PDO;
use App\Models\Notification;
use App\Jobs\KHRMSLib;
use Input;
use Illuminate\Database\Schema\Blueprint;
class bulkServerUpload extends Command {
/**
* The console command name.
*
* @var string
*/
protected $signature = 'bulkServerUpload';
/**
* The console command description.
*
* @var string
*/
protected $description = 'bulkServerUpload';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
echo "\n".date('Y-m-d')."\n";
$wakka = new KHRMSLib();
$kformlib=new \App\Jobs\KFormLib($wakka->HRCoreVars["HRFiledsStr"]);
$kformlib->gthis=$wakka;
$themehome=$wakka->GetThemePath('/');
$updatetime=time();
$clientlst=$wakka->GetBBBUserData("clientslist");
$isadmin=$wakka->IsAdmin();
$username=$wakka->GetUserName();
$triggers=Input::get("triggers");
$tmpstr=explode(",",$kformlib->HRFiledsStr);
$success="";$message="";$successcnt=0;$duplicatecount=0;
$conn = array(
'driver' => 'mysql',
'host' => '10.3.177.14',
'database' => env('DB_DATABASE', 'kstych_flexydial'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'yb9738z'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'options' => array(
PDO::ATTR_TIMEOUT => 5,
),
);
Config::set("database.connections.conn", $conn);
DB::connection("conn")->getDatabaseName();
$excelarray = DB::connection("conn")->select(DB::raw("select * from bz_record_upload_uat where SERVER_IP='10.3.179.121' and ins_date>'2016-11-29' order by auto_id asc limit 0,20000"));
foreach($excelarray as $key => $array){
$excelarray[$key] = (array)$array;
}
$highestColumn = DB::connection("conn")->select(DB::raw("select count(*) as cnt from information_schema.columns where table_name='bz_record_upload_uat'"));
$highestColumn = $highestColumn[0]->cnt;
$highestrow = count($excelarray);
$flag = 0;
$editflag=0;
for($i=0;$i<=$highestrow;$i++)
{
if($excelarray[$i]["id"]!="")
{
if($excelarray[$i]["id"]=="CREATE")
{
$excelarray[$i]["id"]=$wakka->Query("insert into","","records",array('created'=>date('Y-m-d H:i:s')));
}
else $excelarray[$i]["id"]=intval($excelarray[$i]["id"]);
if($wakka->getCount("records","id='".$excelarray[$i]["id"]."'")==1)
{
$empdata=$wakka->getPerson($excelarray[$i]["id"]);
$ppldata=$empdata["peopledata"];
$createdlog=$empdata['modifylog'];
$fdirty=$empdata['dirty'];
$createdlog[$updatetime]=$username."::";
$createdlog["updated"]=$updatetime;
$newdata=$ppldata;
foreach($excelarray[$i] as $key => $value)
{
if($value!="")
{
if("A".$ppldata[$key]!="A".$value)//forcing string comparrision //MAGIC
{
$value=str_replace("'"," ",$value);
if(strstr($createdlog[$updatetime],$key)==FALSE)$createdlog[$updatetime].="$key|".str_replace(array("|",",")," ",$ppldata[$key])."|".str_replace(array("|",",")," ",$value).",";
$fdirty[$key]=1;
$newdata[$key]=$value;
}
}
}
$empdata["peopledata"]=$newdata;
$empdata['modifylog']=$createdlog;
$empdata['dirty']=$fdirty;
$wakka->setPerson($excelarray[$i]["id"],$empdata);
$excelarray[$i]['modified']=date('Y-m-d H:i:s');
}
}
}
DB::connection("conn")->disconnect();
}
}
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
//use Mail;
use DB;
use Config;
use App\Models\User;
use App\Models\Accesslog;
use App\Models\CRMCall;
use Schema;
use PDO;
use App\Models\Notification;
use App\Jobs\KHRMSLib;
use Input;
use Illuminate\Database\Schema\Blueprint;
class bulkServerUpload_1 extends Command {
/**
* The console command name.
*
* @var string
*/
protected $signature = 'bulkServerUpload_1';
/**
* The console command description.
*
* @var string
*/
protected $description = 'bulkServerUpload';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$wakka = new KHRMSLib();
$kformlib=new \App\Jobs\KFormLib($wakka->HRCoreVars["HRFiledsStr"]);
$kformlib->gthis=$wakka;
$themehome=$wakka->GetThemePath('/');
$updatetime=time();
$clientlst=$wakka->GetBBBUserData("clientslist");
$isadmin=$wakka->IsAdmin();
$username=$wakka->GetUserName();
$triggers=Input::get("triggers");
$tmpstr=explode(",",$kformlib->HRFiledsStr);
$success="";$message="";$successcnt=0;$duplicatecount=0;
$conn = array(
'driver' => 'mysql',
'host' => '10.3.177.14',
'database' => env('DB_DATABASE', 'kstych_flexydial'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'yb9738z'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'options' => array(
PDO::ATTR_TIMEOUT => 5,
),
);
Config::set("database.connections.conn", $conn);
DB::connection("conn")->getDatabaseName();
$excelarray = DB::connection("conn")->select(DB::raw("select * from bz_record_upload_uat where SERVER_IP='10.3.179.121' and ins_date>'2016-11-29' order by auto_id asc limit 20001,20000"));
foreach($excelarray as $key => $array){
$excelarray[$key] = (array)$array;
}
$highestColumn = DB::connection("conn")->select(DB::raw("select count(*) as cnt from information_schema.columns where table_name='bz_record_upload_uat'"));
$highestColumn = $highestColumn[0]->cnt;
$highestrow = count($excelarray);
$flag = 0;
$editflag=0;
for($i=0;$i<=$highestrow;$i++)
{
if($excelarray[$i]["id"]!="")
{
if($excelarray[$i]["id"]=="CREATE")
{
$excelarray[$i]["id"]=$wakka->Query("insert into","","records",array('created'=>date('Y-m-d H:i:s')));
}
else $excelarray[$i]["id"]=intval($excelarray[$i]["id"]);
if($wakka->getCount("records","id='".$excelarray[$i]["id"]."'")==1)
{
$empdata=$wakka->getPerson($excelarray[$i]["id"]);
$ppldata=$empdata["peopledata"];
$createdlog=$empdata['modifylog'];
$fdirty=$empdata['dirty'];
$createdlog[$updatetime]=$username."::";
$createdlog["updated"]=$updatetime;
$newdata=$ppldata;
foreach($excelarray[$i] as $key => $value)
{
if($value!="")
{
if("A".$ppldata[$key]!="A".$value)//forcing string comparrision //MAGIC
{
$value=str_replace("'"," ",$value);
if(strstr($createdlog[$updatetime],$key)==FALSE)$createdlog[$updatetime].="$key|".str_replace(array("|",",")," ",$ppldata[$key])."|".str_replace(array("|",",")," ",$value).",";
$fdirty[$key]=1;
$newdata[$key]=$value;
}
}
}
$empdata["peopledata"]=$newdata;
$empdata['modifylog']=$createdlog;
$empdata['dirty']=$fdirty;
$wakka->setPerson($excelarray[$i]["id"],$empdata);
$excelarray[$i]['modified']=date('Y-m-d H:i:s');
}
}
}
DB::connection("conn")->disconnect();
}
}
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
//use Mail;
use DB;
use Config;
use App\Models\User;
use App\Models\Accesslog;
use App\Models\CRMCall;
use Schema;
use PDO;
use App\Models\Notification;
use App\Jobs\KHRMSLib;
use Input;
use Illuminate\Database\Schema\Blueprint;
class bulkServerUpload_2 extends Command {
/**
* The console command name.
*
* @var string
*/
protected $signature = 'bulkServerUpload_2';
/**
* The console command description.
*
* @var string
*/
protected $description = 'bulkServerUpload';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$wakka = new KHRMSLib();
$kformlib=new \App\Jobs\KFormLib($wakka->HRCoreVars["HRFiledsStr"]);
$kformlib->gthis=$wakka;
$themehome=$wakka->GetThemePath('/');
$updatetime=time();
$clientlst=$wakka->GetBBBUserData("clientslist");
$isadmin=$wakka->IsAdmin();
$username=$wakka->GetUserName();
$triggers=Input::get("triggers");
$tmpstr=explode(",",$kformlib->HRFiledsStr);
$success="";$message="";$successcnt=0;$duplicatecount=0;
$conn = array(
'driver' => 'mysql',
'host' => '10.3.177.14',
'database' => env('DB_DATABASE', 'kstych_flexydial'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'yb9738z'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'options' => array(
PDO::ATTR_TIMEOUT => 5,
),
);
Config::set("database.connections.conn", $conn);
DB::connection("conn")->getDatabaseName();
$excelarray = DB::connection("conn")->select(DB::raw("select * from bz_record_upload_uat where SERVER_IP='10.3.179.121' and ins_date>'2016-11-29' order by auto_id asc limit 40001,20000"));
foreach($excelarray as $key => $array){
$excelarray[$key] = (array)$array;
}
$highestColumn = DB::connection("conn")->select(DB::raw("select count(*) as cnt from information_schema.columns where table_name='bz_record_upload_uat'"));
$highestColumn = $highestColumn[0]->cnt;
$highestrow = count($excelarray);
$flag = 0;
$editflag=0;
for($i=0;$i<=$highestrow;$i++)
{
if($excelarray[$i]["id"]!="")
{
if($excelarray[$i]["id"]=="CREATE")
{
$excelarray[$i]["id"]=$wakka->Query("insert into","","records",array('created'=>date('Y-m-d H:i:s')));
}
else $excelarray[$i]["id"]=intval($excelarray[$i]["id"]);
if($wakka->getCount("records","id='".$excelarray[$i]["id"]."'")==1)
{
$empdata=$wakka->getPerson($excelarray[$i]["id"]);
$ppldata=$empdata["peopledata"];
$createdlog=$empdata['modifylog'];
$fdirty=$empdata['dirty'];
$createdlog[$updatetime]=$username."::";
$createdlog["updated"]=$updatetime;
$newdata=$ppldata;
foreach($excelarray[$i] as $key => $value)
{
if($value!="")
{
if("A".$ppldata[$key]!="A".$value)//forcing string comparrision //MAGIC
{
$value=str_replace("'"," ",$value);
if(strstr($createdlog[$updatetime],$key)==FALSE)$createdlog[$updatetime].="$key|".str_replace(array("|",",")," ",$ppldata[$key])."|".str_replace(array("|",",")," ",$value).",";
$fdirty[$key]=1;
$newdata[$key]=$value;
}
}
}
$empdata["peopledata"]=$newdata;
$empdata['modifylog']=$createdlog;
$empdata['dirty']=$fdirty;
$wakka->setPerson($excelarray[$i]["id"],$empdata);
$excelarray[$i]['modified']=date('Y-m-d H:i:s');
}
}
}
DB::connection("conn")->disconnect();
}
}
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
//use Mail;
use DB;
use Config;
use App\Models\User;
use App\Models\Accesslog;
use App\Models\CRMCall;
use Schema;
use PDO;
use App\Models\Notification;
use App\Jobs\KHRMSLib;
use Input;
use Illuminate\Database\Schema\Blueprint;
class bulkServerUpload_3 extends Command {
/**
* The console command name.
*
* @var string
*/
protected $signature = 'bulkServerUpload_3';
/**
* The console command description.
*
* @var string
*/
protected $description = 'bulkServerUpload';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$wakka = new KHRMSLib();
$kformlib=new \App\Jobs\KFormLib($wakka->HRCoreVars["HRFiledsStr"]);
$kformlib->gthis=$wakka;
$themehome=$wakka->GetThemePath('/');
$updatetime=time();
$clientlst=$wakka->GetBBBUserData("clientslist");
$isadmin=$wakka->IsAdmin();
$username=$wakka->GetUserName();
$triggers=Input::get("triggers");
$tmpstr=explode(",",$kformlib->HRFiledsStr);
$success="";$message="";$successcnt=0;$duplicatecount=0;
$conn = array(
'driver' => 'mysql',
'host' => '10.3.177.14',
'database' => env('DB_DATABASE', 'kstych_flexydial'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'yb9738z'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'options' => array(
PDO::ATTR_TIMEOUT => 5,
),
);
Config::set("database.connections.conn", $conn);
DB::connection("conn")->getDatabaseName();
$excelarray = DB::connection("conn")->select(DB::raw("select * from bz_record_upload_uat where SERVER_IP='10.3.179.121' and ins_date>'2016-11-29' order by auto_id asc limit 60001,20000"));
foreach($excelarray as $key => $array){
$excelarray[$key] = (array)$array;
}
$highestColumn = DB::connection("conn")->select(DB::raw("select count(*) as cnt from information_schema.columns where table_name='bz_record_upload_uat'"));
$highestColumn = $highestColumn[0]->cnt;
$highestrow = count($excelarray);
$flag = 0;
$editflag=0;
for($i=0;$i<=$highestrow;$i++)
{
if($excelarray[$i]["id"]!="")
{
if($excelarray[$i]["id"]=="CREATE")
{
$excelarray[$i]["id"]=$wakka->Query("insert into","","records",array('created'=>date('Y-m-d H:i:s')));
}
else $excelarray[$i]["id"]=intval($excelarray[$i]["id"]);
if($wakka->getCount("records","id='".$excelarray[$i]["id"]."'")==1)
{
$empdata=$wakka->getPerson($excelarray[$i]["id"]);
$ppldata=$empdata["peopledata"];
$createdlog=$empdata['modifylog'];
$fdirty=$empdata['dirty'];
$createdlog[$updatetime]=$username."::";
$createdlog["updated"]=$updatetime;
$newdata=$ppldata;
foreach($excelarray[$i] as $key => $value)
{
if($value!="")
{
if("A".$ppldata[$key]!="A".$value)//forcing string comparrision //MAGIC
{
$value=str_replace("'"," ",$value);
if(strstr($createdlog[$updatetime],$key)==FALSE)$createdlog[$updatetime].="$key|".str_replace(array("|",",")," ",$ppldata[$key])."|".str_replace(array("|",",")," ",$value).",";
$fdirty[$key]=1;
$newdata[$key]=$value;
}
}
}
$empdata["peopledata"]=$newdata;
$empdata['modifylog']=$createdlog;
$empdata['dirty']=$fdirty;
$wakka->setPerson($excelarray[$i]["id"],$empdata);
$excelarray[$i]['modified']=date('Y-m-d H:i:s');
}
}
}
DB::connection("conn")->disconnect();
}
}
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
//use Mail;
use DB;
use Config;
use App\Models\User;
use App\Models\Accesslog;
use App\Models\CRMCall;
use Schema;
use PDO;
use App\Models\Notification;
use App\Jobs\KHRMSLib;
use Input;
use Illuminate\Database\Schema\Blueprint;
class bulkServerUpload_4 extends Command {
/**
* The console command name.
*
* @var string
*/
protected $signature = 'bulkServerUpload_4';
/**
* The console command description.
*
* @var string
*/
protected $description = 'bulkServerUpload';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$wakka = new KHRMSLib();
$kformlib=new \App\Jobs\KFormLib($wakka->HRCoreVars["HRFiledsStr"]);
$kformlib->gthis=$wakka;
$themehome=$wakka->GetThemePath('/');
$updatetime=time();
$clientlst=$wakka->GetBBBUserData("clientslist");
$isadmin=$wakka->IsAdmin();
$username=$wakka->GetUserName();
$triggers=Input::get("triggers");
$tmpstr=explode(",",$kformlib->HRFiledsStr);
$success="";$message="";$successcnt=0;$duplicatecount=0;
$conn = array(
'driver' => 'mysql',
'host' => '10.3.177.14',
'database' => env('DB_DATABASE', 'kstych_flexydial'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'yb9738z'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'options' => array(
PDO::ATTR_TIMEOUT => 5,
),
);
Config::set("database.connections.conn", $conn);
DB::connection("conn")->getDatabaseName();
$excelarray = DB::connection("conn")->select(DB::raw("select * from bz_record_upload_uat where SERVER_IP='10.3.179.121' and ins_date>'2016-11-29' order by auto_id asc limit 80001,20000"));
foreach($excelarray as $key => $array){
$excelarray[$key] = (array)$array;
}
$highestColumn = DB::connection("conn")->select(DB::raw("select count(*) as cnt from information_schema.columns where table_name='bz_record_upload_uat'"));
$highestColumn = $highestColumn[0]->cnt;
$highestrow = count($excelarray);
$flag = 0;
$editflag=0;
for($i=0;$i<=$highestrow;$i++)
{
if($excelarray[$i]["id"]!="")
{
if($excelarray[$i]["id"]=="CREATE")
{
$excelarray[$i]["id"]=$wakka->Query("insert into","","records",array('created'=>date('Y-m-d H:i:s')));
}
else $excelarray[$i]["id"]=intval($excelarray[$i]["id"]);
if($wakka->getCount("records","id='".$excelarray[$i]["id"]."'")==1)
{
$empdata=$wakka->getPerson($excelarray[$i]["id"]);
$ppldata=$empdata["peopledata"];
$createdlog=$empdata['modifylog'];
$fdirty=$empdata['dirty'];
$createdlog[$updatetime]=$username."::";
$createdlog["updated"]=$updatetime;
$newdata=$ppldata;
foreach($excelarray[$i] as $key => $value)
{
if($value!="")
{
if("A".$ppldata[$key]!="A".$value)//forcing string comparrision //MAGIC
{
$value=str_replace("'"," ",$value);
if(strstr($createdlog[$updatetime],$key)==FALSE)$createdlog[$updatetime].="$key|".str_replace(array("|",",")," ",$ppldata[$key])."|".str_replace(array("|",",")," ",$value).",";
$fdirty[$key]=1;
$newdata[$key]=$value;
}
}
}
$empdata["peopledata"]=$newdata;
$empdata['modifylog']=$createdlog;
$empdata['dirty']=$fdirty;
$wakka->setPerson($excelarray[$i]["id"],$empdata);
$excelarray[$i]['modified']=date('Y-m-d H:i:s');
}
}
}
DB::connection("conn")->disconnect();
}
}
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
//use Mail;
use DB;
use Config;
use App\Models\User;
use App\Models\Accesslog;
use App\Models\CRMCall;
use Schema;
use PDO;
use App\Models\Notification;
use App\Jobs\KHRMSLib;
use Input;
use Illuminate\Database\Schema\Blueprint;
class bulkServerUpload extends Command {
/**
* The console command name.
*
* @var string
*/
protected $signature = 'bulkServerUpload';
/**
* The console command description.
*
* @var string
*/
protected $description = 'bulkServerUpload';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$wakka = new KHRMSLib();
$kformlib=new \App\Jobs\KFormLib($wakka->HRCoreVars["HRFiledsStr"]);
$kformlib->gthis=$wakka;
$themehome=$wakka->GetThemePath('/');
$updatetime=time();
$clientlst=$wakka->GetBBBUserData("clientslist");
$isadmin=$wakka->IsAdmin();
$username=$wakka->GetUserName();
$triggers=Input::get("triggers");
$tmpstr=explode(",",$kformlib->HRFiledsStr);
$success="";$message="";$successcnt=0;$duplicatecount=0;
$conn = array(
'driver' => 'mysql',
'host' => '10.3.177.14',
'database' => env('DB_DATABASE', 'kstych_flexydial'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'yb9738z'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'options' => array(
PDO::ATTR_TIMEOUT => 5,
),
);
Config::set("database.connections.conn", $conn);
DB::connection("conn")->getDatabaseName();
$excelarray = DB::connection("conn")->select(DB::raw("select * from bz_record_upload_uat where SERVER_IP='10.3.179.121' and client='G4015' order by auto_id asc limit 0,20000"));
foreach($excelarray as $key => $array){
$excelarray[$key] = (array)$array;
}
$highestColumn = DB::connection("conn")->select(DB::raw("select count(*) as cnt from information_schema.columns where table_name='bz_record_upload_uat'"));
$highestColumn = $highestColumn[0]->cnt;
$highestrow = count($excelarray);
$flag = 0;
$editflag=0;
for($i=0;$i<=$highestrow;$i++)
{
if($excelarray[$i]["id"]!="")
{
if($excelarray[$i]["id"]=="CREATE")
{
$excelarray[$i]["id"]=$wakka->Query("insert into","","records",array('created'=>date('Y-m-d H:i:s')));
}
else $excelarray[$i]["id"]=intval($excelarray[$i]["id"]);
if($wakka->getCount("records","id='".$excelarray[$i]["id"]."'")==1)
{
$empdata=$wakka->getPerson($excelarray[$i]["id"]);
$ppldata=$empdata["peopledata"];
$createdlog=$empdata['modifylog'];
$fdirty=$empdata['dirty'];
$createdlog[$updatetime]=$username."::";
$createdlog["updated"]=$updatetime;
$newdata=$ppldata;
foreach($excelarray[$i] as $key => $value)
{
if($value!="")
{
if("A".$ppldata[$key]!="A".$value)//forcing string comparrision //MAGIC
{
$value=str_replace("'"," ",$value);
if(strstr($createdlog[$updatetime],$key)==FALSE)$createdlog[$updatetime].="$key|".str_replace(array("|",",")," ",$ppldata[$key])."|".str_replace(array("|",",")," ",$value).",";
$fdirty[$key]=1;
$newdata[$key]=$value;
}
}
}
$empdata["peopledata"]=$newdata;
$empdata['modifylog']=$createdlog;
$empdata['dirty']=$fdirty;
$wakka->setPerson($excelarray[$i]["id"],$empdata);
$excelarray[$i]['modified']=date('Y-m-d H:i:s');
}
}
}
mysqli_close($conn);
}
}
<?php namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
/**
* The Artisan commands provided by your application.
*
* @var array
*/
protected $commands = [
'App\Console\Commands\KstychDaily',
'App\Console\Commands\KstychPAMI',
'App\Console\Commands\KstychPAGI',
'App\Console\Commands\DailyLogout',
'App\Console\Commands\InsertCrmArchive',
'App\Console\Commands\InsertCrmArchive2',
'App\Console\Commands\DeleteCrmcalls',
'App\Console\Commands\DeleteCRMCallArchive',
'App\Console\Commands\DeleteCrmcalls',
'App\Console\Commands\ClearDiallines',
'App\Console\Commands\HangupCall',
'App\Console\Commands\CreateCall',
'App\Console\Commands\PredictiveCallHangUp',
'App\Console\Commands\UpdateAvgRingSec',
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
$schedule->command('KstychDaily')->daily()->withoutOverlapping()->runInBackground();
$schedule->command('InsertCrmArchive')->everyFiveMinutes()->appendOutputTo(storage_path() . "/reason/kstych.txt")->withoutOverlapping()->runInBackground();
//$schedule->command('InsertCrmArchive2')->monthlyOn(1,'14:30')->withoutOverlapping();
$schedule->command('DeleteCrmcalls')->dailyAt('02:30')->withoutOverlapping()->runInBackground();
//$schedule->command('DeleteCRMCallArchive')->monthlyOn(1,'14:30')->withoutOverlapping();
// added cron for do diallines free by YASHWANT on 29062017
$schedule->command('ClearDiallines')->everyMinute()->withoutOverlapping()->runInBackground(); // ->appendOutputTo(storage_path()."/output.txt");
$schedule->command('HangupCall')->everyTenMinutes()->withoutOverlapping()->runInBackground();
}
}
<?php
namespace App\Events;
abstract class Event
{
//
}
<?php namespace App\Exceptions;
use Exception;
use Illuminate\Auth\Access\AuthorizationException;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Symfony\Component\HttpKernel\Exception\HttpException;
use Illuminate\Foundation\Validation\ValidationException;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Config;
use Auth;
use Request;
use Mail;
use Cache;
class Handler extends ExceptionHandler {
/**
* A list of the exception types that should not be reported.
*
* @var array
*/
protected $dontReport = [
AuthorizationException::class,
HttpException::class,
ModelNotFoundException::class,
ValidationException::class,
];
/**
* Report or log an exception.
*
* This is a great spot to send exceptions to Sentry, Bugsnag, etc.
*
* @param \Exception $e
* @return void
*/
public function report(Exception $e)
{
if(!empty($e))
{
$errorStr='';
if ($this->isHttpException($e) && $e->getStatusCode() == 404)$errorStr='MISSING';
else if(strstr(json_encode($e->getTrace(),true),"VerifyCsrfToken"))$errorStr='IGNORE';
else $errorStr='ERROR';
$accesslog=Config::get('runtime.accesslog_obj');
if($accesslog)
{
$postdata=(array)json_decode($accesslog->postdata);
$postdata["ErrorType"]=$errorStr;
$postdata["ErrorMsg"]=$e->getMessage();
$accesslog->postdata=json_encode($postdata, true);
$accesslog->stopLog();
}
if($errorStr=='ERROR')
{
$email=Config::get("app.email");
$user="guest";if(Auth::check())$user=Auth::user()->id." ".Auth::user()->dispname()." ".Auth::user()->username;
$ip=Request::getClientIp();
$key=$user.$ip.'ajaxerror'.Request::path();
if(Cache::get($key,'')!=$e->getMessage().json_encode($e->getTrace(),true)&&Cache::get($key.'cnt',0)<10)
{
Cache::put($key,$e->getMessage().json_encode($e->getTrace(),true), 24*60);//minutes in 1 day
Cache::put($key.'cnt',Cache::get($key.'cnt',0)+1, 24*60);
Mail::send('emails.ajaxerror', array('xhr'=>"app-fatal",'status'=>$e->getMessage(),'error'=>json_encode($e->getTrace(),true),'user'=>$user,'ip'=>$ip), function($message) use ($email)
{
$message->to($email, $email)->subject(Config::get("app.name")." : Error");
});
}
}
else if($errorStr=='MISSING'){}
else if($errorStr=='IGNORE'){}
}
return parent::report($e);
}
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $e
* @return \Illuminate\Http\Response
*/
public function render($request, Exception $e)
{
if(!empty($e))
{
$errorStr='';
if ($this->isHttpException($e) && $e->getStatusCode() == 404)$errorStr='MISSING';
else $errorStr='ERROR';
if($errorStr=='ERROR')
{
if(!Config::get('app.debug')) return response()->view("errors.exception");
}
else if($errorStr=='MISSING')
{
return response()->view('errors.missing', array());
}
}
return parent::render($request, $e);
}
}
No preview for this file type
<?php namespace App\Http\Controllers;
use Input;
use App\Models\User;
use App\Models\CRMCall;
use App\Models\Sipid;
use App\Models\Kqueue;
use App\Models\Dialline;
use App\Models\Session;
use Config;
class AdminController extends Controller {
public function __construct()
{
$this->middleware('auth');
$this->middleware('module_access');
}
public function index()
{
$data=array();
return view('layout.module.admin.index',$data);
}
public function create()
{
//
}
public function store()
{
$action=Input::get('action');
if($action=="mmtbulkupload")return view('layout.module.admin.index',array());
if($action=="userlogoutall")
{
$sipids=Sipid::where("status","=","1")->get();
foreach($sipids as $tsip)
{
$newqueue=new Kqueue();
$newqueue->sipNotify($tsip,"adminCommand","user","logout","");
}
Dialline::where('status','!=','Free')->update(['status'=>'Free','conf'=>'','channel'=>'','server'=>'','updated_at'=>'0000-00-00 00:00:00']);
Sipid::where('status','!=','0')->update(['status'=>0,'user'=>0,'ready'=>0,'confup'=>0,'clients'=>'','server'=>'','updated_at'=>'0000-00-00 00:00:00']);
$serverarray=explode(",",Config::get("app.asterisk_slaves"));
foreach($serverarray as $server)
{
$sparts=explode(":",$server);
Sipid::where("id",">=",$sparts[1])->where("id","<=",$sparts[2])->update(['server' => $sparts[0],'updated_at'=>'0000-00-00 00:00:00']);
Dialline::where("id",">=",$sparts[3])->where("id","<=",$sparts[4])->update(['server' => $sparts[0],'updated_at'=>'0000-00-00 00:00:00']);
}
User::where('presence','>','0')->update(['presence'=>0]);
Session::truncate();
return "";
}
}
public function show($id)
{
$data=array();
if($id=='masterdata')return view('layout.module.admin.masterdata',$data);
if($id=='accesslog')return view('layout.module.admin.accesslog',$data);
if($id=='emaillog')return view('layout.module.admin.emaillog',$data);
if($id=='bulkmail')return view('layout.module.admin.bulkmail',$data);
if($id=='dllogfile')return response()->download(storage_path('logs/laravel-'.date('Y-m-d').'.log'));
if($id=='main')return view('layout.module.admin.main',$data);
if($id=='agentreport')return view('layout.module.admin.agentreport',$data);
if($id=='liveusers')return view('layout.module.admin.liveusers',$data);
}
public function edit($id)
{
//
}
public function update($id)
{
//
}
public function destroy($id)
{
//
}
public function dashboard()
{
$data=array();
return view('layout.module.admin.dashboard',$data);
}
}
<?php
namespace App\Http\Controllers\Auth;
use App\User;
use Validator;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
use Session;
class AuthController extends Controller
{
/*
|--------------------------------------------------------------------------
| Registration & Login Controller
|--------------------------------------------------------------------------
|
| This controller handles the registration of new users, as well as the
| authentication of existing users. By default, this controller uses
| a simple trait to add these behaviors. Why don't you explore it?
|
*/
use AuthenticatesAndRegistersUsers, ThrottlesLogins;
/**
* Where to redirect users after login / registration.
*
* @var string
*/
protected $redirectTo = '/home';
/**
* Create a new authentication controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest', ['except' => 'logout']);
}
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:6',
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return User
*/
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
}
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ResetsPasswords;
class PasswordController extends Controller
{
/*
|--------------------------------------------------------------------------
| Password Reset Controller
|--------------------------------------------------------------------------
|
| This controller is responsible for handling password reset requests
| and uses a simple trait to include this behavior. You're free to
| explore this trait and override any methods you wish to tweak.
|
*/
use ResetsPasswords;
/**
* Create a new password controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
}
<?php namespace App\Http\Controllers;
use Auth;
use Input;
use Response;
use App\Models\Group;
use App\Models\Master;
use App\Models\Record;
use App\Models\CRMCall;
use App\Models\CRMCallArchive;
use App\Models\CRM;
use App\Models\CRMCampaign;
use App\Models\CRMList;
use App\Jobs\KHRMSLib;
use App\Models\Sipid;
use App\Models\Dialline;
use App\Models\UserLog;
use App\Models\User;
use App\Models\Kqueue;
use App\Models\QCFeedback;
use DB;
use Log;
use Session;
$client='';
class AutodialController extends Controller {
public function index()
{
}
public function create()
{
}
public function store()
{
}
public function show($id)
{
//TODO: Need To Create New Function To Calculate (T : X + Y - Z - R) *** To Run In the Background
//TODO: Need To Create New Function To Get R
//TODO: Need To Edit Existing Function ( "getAvgTimeArray()" ) To Calculate X
//TODO: Need Define Y and Z as per need
//TODO: Need To Create New Function To Handle Early Media Cases (F)
//TODO: Need To Create Function To Drop ringing calls after RTO
if($id=="autodialmode")
{
$campaign=Input::get("client");
$user_id = Auth::user()->id;
$callsToDialled = $this->getCallsToBeDialled($campaign);
if($callsToDialled>0)
{
$this->createCall($campaign, $callsToDialled, $user_id);
}
}
}
//TODO: To Calculate D - Edit This Function If Required
public function getCallsToBeDialled($campaign)
{
$wakka = new KHRMSLib();
$mastersdata=$wakka->getCompanyMaster($campaign);
$ratio = $mastersdata["autodialercampaign"];
$availableUsers = $this->getFreeUserCnt($campaign);
$dialedCalls = $this->getDialedCallCount($campaign);
return $availableUsers*$ratio-$dialedCalls;
}
//TODO: Need To Edit getFreeUserCnt() To Calculate N
//To Get Number Of Free User which will be multiplied with Defined Ratio For Generating Number Of Calls
public function getFreeUserCnt($campaign)
{
$count=0;
$loggedInSips = Sipid::where('server','=',env('app_ip'))->where("user", "!=", 0)->where("status","=","1")->where("prepare_call","=","1")->where("clients","like","%$campaign%")->groupBy('user')->get();
if(count($loggedInSips))
foreach ($loggedInSips as $key => $loggedInSip)
{
$loggedInUsers[] = $loggedInSip->user;
}
$freeDials = Dialline::whereIn("user_id",$loggedInUsers)->where("status","=","Blocked")->count();
return count($loggedInSips)-$freeDials;
}
//TODO: To Calculate C - Edit This Function If Required
public function getDialedCallCount($campaign)
{
$cnt = Dialline::whereIn("status", ["Auto","AutoCall"])->where("conf","=","")->where("regexstr","=",$campaign)->count();
return $cnt;
}
public function getAvailCallInPool($campaign)
{
//$cnt = CRMCall::where("client", "=", $campaign)->where("state","=","DialEnd")->where("type", "=", "Auto")->where("substatus","!=","")->count();
$cnt = Dialline::where("status","=","Auto")->where("conf","=","")->where("regexstr","=",$campaign)->count();
return $cnt;
}
public function getAvgTimeArray($user)
{
$avgdisposecObj = CRMCall::select(DB::Raw('(avg(disposec))/1000 as avgdisposec'))->where("user_id", "=", $user)->orderby("id","desc")->limit(50)->where("type","!=","Inbound")->first();
$avgcallsecObj = CRMCall::select(DB::Raw('(avg(callsec))/1000 as avgcallsec'))->where("user_id", "=", $user)->orderby("id","desc")->limit(50)->where("type","!=","Inbound")->first();
$returnArray['avgdisposec'] = round($avgdisposecObj->avgdisposec);
$returnArray['avgcallsec'] = round($avgdisposecObj->avgcallsec);
return $returnArray;
}
public function createCall($campaign, $acalls, $user_id)
{
$wakka = new KHRMSLib();
$mastersdata=$wakka->getCompanyMaster($campaign);
if($acalls>0)
{
for($i=0;$i<$acalls;$i++)
{
$callerid="";
if(!empty($mastersdata["DialerDID"]))
$callerid=$mastersdata["DialerDID"];
$calleridarr=explode(":",$callerid);$dspan="1";
if(isset($calleridarr[1]))
{
$callerid=$calleridarr[0];$dspan=$calleridarr[1];
}
$dialline=Dialline::where('server','=', env('app_ip'))->where("status","=","Free")->where("enabled","=","1");
if($dspan!="")$dialline=$dialline->where('dspan','=',$dspan)->where('id','<=','30');
$dialline=$dialline->orderBy('updated_at','ASC')->first();
if(empty($dialline))
{
$dialline=Dialline::where('server','=', env('app_ip'))->where("status","=","Free")->where("enabled","=","1");
if($dspan!="")$dialline=$dialline->where('dspan','=', "2")->where('id','>','30');
$dialline=$dialline->orderBy('id','ASC')->first();
}
if($dialline)
{
$users=$wakka->getPersons("client='$campaign' and status='New' and mobile!='' limit 1");
if(sizeof($users)>=1)
{
$record=$wakka->getPerson($users[0]['id']);
if($record)
{
$record["peopledata"]["status"]="AutoCall";
$wakka->setPerson($users[0]['id'],$record);
}
$dialline->user_id=$user_id;
$dialline->status="AutoCall";
$dialline->regexstr=$users[0]['client'];
$dialline->number=$users[0]["mobile"];
$dialline->save();
$nowts=microtime(true)*1000;
//start the call log
$crmcall=new CRMCall();
$crmcall->number=$users[0]["mobile"];
$crmcall->user_id=0;
$crmcall->sipid_id=0;
$crmcall->crm_id=$users[0]['id'];
$crmcall->lan=$users[0]['lan'];
$crmcall->client=$users[0]['client'];
$crmcall->department=$users[0]['department'];
$crmcall->state='New';
$crmcall->type="AutoCall";
$crmcall->dialline_id=$dialline->id;
$crmcall->setTs('ts_Wait',$nowts);
$crmcall->setTs('ts_Call',$nowts);
$crmcall->did=$callerid;
$tdata=array();
$crmcall->data=json_encode($tdata);
$crmcall->save();
//start actual calls
$newqueue=new Kqueue();
$newqueue->autoCallOut($users[0]["mobile"],$callerid,$crmcall,$dialline);
}
}
else break;
}
}
//return 1;
}
}
<?php
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}
<?php namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use DB;
use Auth;
use Config;
use Input;
use Response;
use App\Models\User;
use App\Models\Communitie;
use App\Jobs\KFileLib;
use App\Jobs\KAuthLib;
use App\Jobs\KHRMSLib;
class DashboardController extends Controller {
public function __construct()
{
$this->middleware('auth');
$this->middleware('module_access');
}
public function index()
{
$data=array();
$user=Auth::user();
$data["data"]=$user->data();
$data["meta"]=$user->meta();
if(Input::has("tz"))
{
$user->timezone=Input::get("tz");
$data["meta"]['ncnt']=0;$user->meta=json_encode($data["meta"]);
$user->save();
}
return view('layout.module.dashboard.index',$data);
}
public function create()
{
}
public function store()
{
}
public function show($id)
{
if($id=="s")
{
$kfile=new KFileLib();$kfile->folderSpaceUse(Auth::user()->id.'/');
return Response::make("",200);
}
if($id=="r")
{
$umeta=Auth::user()->meta();
$kauthlib=new KAuthLib();
if(!isset($umeta['kautherror']))$umeta['kautherror']=0;
if(isset($umeta['kauthlibuser'])&&isset($umeta['kauthlibcred']))
{
if(Config::get("app.extAuth")=="owa")
{
$authparams=explode(",",Config::get("app.extAuthParams"));if(!isset($authparams[0]))$authparams[0]="";if(!isset($authparams[1]))$authparams[1]="";
if(!$kauthlib->owaAuthCheck($authparams[0],$authparams[1],$umeta['kauthlibuser'],$umeta['kauthlibcred'],""))
{
$umeta['kautherror']++;
if($umeta['kautherror']>5)Auth::user()->status='Disabled';
Auth::user()->meta=json_encode($umeta);
Auth::user()->save();
if($umeta['kautherror']>5)return Response::make("document.location='logout';",200);
}
else
{
$umeta['kautherror']=0;
Auth::user()->meta=json_encode($umeta);
Auth::user()->save();
return Response::make("",200);
}
}
if(Config::get("app.extAuth")=="smtp")
{
$authparams=explode(",",Config::get("app.extAuthParams"));if(!isset($authparams[0]))$authparams[0]="";if(!isset($authparams[1]))$authparams[1]="";if(!isset($authparams[2]))$authparams[2]="";
if(!$kauthlib->smtpLoginCheck($authparams[0],$authparams[1],$authparams[2],$umeta['kauthlibuser'],$umeta['kauthlibcred']))
{
$umeta['kautherror']++;
if($umeta['kautherror']>5)Auth::user()->status='Disabled';
Auth::user()->meta=json_encode($umeta);
Auth::user()->save();
if($umeta['kautherror']>5)return Response::make("document.location='logout';",200);
}
else
{
$umeta['kautherror']=0;
Auth::user()->meta=json_encode($umeta);
Auth::user()->save();
return Response::make("",200);
}
}
}
}
if($id=="dpart")
{
$page=Input::get("page");
$data=array();
$user=Auth::user();
$data["data"]=$user->data();
$data["meta"]=$user->meta();
if(Input::has("tz"))
{
$user->timezone=Input::get("tz");
$data["meta"]['ncnt']=0;$user->meta=json_encode($data["meta"]);
$user->save();
}
return view('layout.module.dashboard.'.$page,$data);
}
if($id=="search")
{
$data=array();
$data['stype']=Input::get('stype');
$data['strarr']=explode(" ",Input::get('str'));
$data['listdata']=array();
//hashtag imgurl title subtitle bubbles()
$groupacl=Auth::user()->getAccessList("group",true,false,false);
if($data['stype']=="User")
{
$users0=User::whereIn("group",$groupacl)->where('status','=','Active');$orderby='';
$users2=User::whereIn("group",$groupacl);
$users3=User::whereIn("group",$groupacl);
foreach($data['strarr'] as $searchkey)
{
$searchkey=trim($searchkey);
if($searchkey!='')
{
if($searchkey=='Learner'||$searchkey=='Trainer'||$searchkey=='Organization')$users0=$users0->where('usertype','=',$searchkey);
else if($searchkey=='MaxEdupoints')$orderby='Edupoints';
else $users0=$users0->where('data','like',"%$searchkey%");
$users2=$users2->where('fullname','like',"%$searchkey%");
$users3=$users3->where('email','like',"%$searchkey%");
}
}
//if($orderby=='Edupoints')$users0=$users0->orderBy()
$users=array();
$users0=$users0->orderBy(DB::raw('RAND()'))->take(30)->get();
$users2=$users2->orderBy(DB::raw('RAND()'))->take(20)->get();
$users3=$users3->orderBy(DB::raw('RAND()'))->take(20)->get();
foreach($users0 as $user)$users[]=$user;
foreach($users2 as $user)$users[]=$user;
foreach($users3 as $user)$users[]=$user;
$users=array_unique($users);
if(!empty($users))
{
foreach($users as $user)
{
$tuserdata=array();
$tuserdata['id']=$user->id;
$tuserdata['type']='user';
$tuserdata['hashtag']="p-".$user->id;
$tuserdata['imgurl']=$user->fetchphotothumb();
$tuserdata['title']=$user->dispname();
$tuserdata['subtitle']=$user->dataval2('personal','gender')." ".$user->dataval2('personal','location')." - ".$user->dataval2('personal','country');
$tuserdata['bubbles']=array($user->dataval2('personal','level'),$user->dataval2('personal','function'));
$data['listdata'][]=$tuserdata;
}
}
}
if($data['stype']=="Community")
{
$commuity1=Communitie::whereIn("group",$groupacl)->where('status','=','Active');
$commuity2=Communitie::whereIn("group",$groupacl)->where('status','=','Active');
$commuity3=Communitie::whereIn("group",$groupacl)->where('status','=','Active');
$commuity1=$commuity1->where(function ($query) use($data) {
foreach($data['strarr'] as $searchkey)
{
$searchkey=trim($searchkey);
if($searchkey!='')
{
$query->where('description','like',"%$searchkey%");
}
}
});
$commuity2=$commuity2->where(function ($query) use($data) {
foreach($data['strarr'] as $searchkey)
{
$searchkey=trim($searchkey);
if($searchkey!='')
{
$query->orWhere('category','like',"%$searchkey%");
}
}
});
$commuity3=$commuity3->where(function ($query) use($data) {
foreach($data['strarr'] as $searchkey)
{
$searchkey=trim($searchkey);
if($searchkey!='')
{
$query->orWhere('name','like',"%$searchkey%");
}
}
});
$commuity1=$commuity1->orderBy(DB::raw('RAND()'))->take(20)->get();
$commuity2=$commuity2->orderBy(DB::raw('RAND()'))->take(20)->get();
$commuity3=$commuity3->orderBy(DB::raw('RAND()'))->take(20)->get();
$community=array();
if(!empty($commuity1))foreach($commuity1 as $comm)$community[$comm->id]=$comm;
if(!empty($commuity2))foreach($commuity2 as $comm)$community[$comm->id]=$comm;
if(!empty($commuity3))foreach($commuity3 as $comm)$community[$comm->id]=$comm;
if(!empty($community))
{
foreach($community as $tcomm)
{
$tuserdata=array();
$tuserdata['id']=$tcomm->id;
$tuserdata['type']='community';
$tuserdata['hashtag']="g-".$tcomm->id;
$tuserdata['imgurl']="assets/images/community.jpg";
$tuserdata['title']=$tcomm->name;
$tuserdata['subtitle']=" Community ";
$tuserdata['bubbles']=array_unique(array_filter(explode(",",$tcomm->category)));
$data['listdata'][]=$tuserdata;
}
}
}
return view('layout.module.dashboard.search',$data);
}
if($id=="dashlet")
{
$module=strtolower(Input::get("module"));
$client=Input::get("client");
if($client=="")$client = Auth::user()->sel_campaign;
$data['client'] = $client;
if($module!=""&&view()->exists("layout.module.dashboard.$module"))
{
return view("layout.module.dashboard.$module", $data);
}
}
}
public function edit($id)
{
//
}
public function update($id)
{
//
}
public function destroy($id)
{
//
}
public function dashboard()
{
$data["id"]="Dashboard";
return view('layout.module.dashboard.dashboard',$data);
}
}
<?php namespace App\Http\Controllers;
use Auth;
use Input;
use Response;
use App\Models\Group;
use App\Models\Master;
use App\Models\Record;
use App\Models\CRMCall;
use App\Models\CRMCallArchive;
use App\Models\CRM;
use App\Models\CRMCampaign;
use App\Models\CRMList;
use App\Jobs\KHRMSLib;
use App\Models\Sipid;
use App\Models\Dialline;
use App\Models\UserLog;
use App\Models\User;
use App\Models\Kqueue;
use DB;
use Log;
use Session;
$client='';
class DataController extends Controller {
public function __construct()
{
$this->middleware('auth');
$this->middleware('module_access');
}
public function index()
{
}
public function create()
{
}
public function store()
{
$action = Input::get("action");
if($action=="upload")
{
$data['wakka'] = new KHRMSLib();
return view("layout.module.data.upload",$data);
}
}
public function show($id)
{
if($id=="display")
{
return view("layout.module.data.display");
}
if($id=="upload")
{
return view("layout.module.data.upload");
}
if($id=="load")
{
$page = Input::get('page');
$listingCount = 20;
$offset = ($page-1)*$listingCount;
if($offset < 0)$offset=0;
$limit = $listingCount;
$customers = DB::table('records')->offset($offset)->limit($limit)->get();
$output = "<table class='table table-bordered table-striped'>
<tr>
<th style='background-color: #999 !important;color: #fff;text-align:center;'>ID</th>
<th style='background-color: #999 !important;color: #fff;text-align:center;'>LAN</th>
<th style='background-color: #999 !important;color: #fff;text-align:center;'>Name</th>
<th style='background-color: #999 !important;color: #fff;text-align:center;'>Number</th>
<th style='background-color: #999 !important;color: #fff;text-align:center;'>Campaign</th>
<th style='background-color: #999 !important;color: #fff;text-align:center;'>Organization</th>
<th style='background-color: #999 !important;color: #fff;text-align:center;'>Designation</th>
</tr>";
foreach($customers as $customer){
$output .= "<tr>
<td>$customer->id</td>
<td>$customer->lan</td>
<td>$customer->customerName</td>
<td>$customer->mobile</td>
<td>$customer->client</td>
<td>$customer->organizationName</td>
<td>$customer->designation</td>
</tr>";
}
$output .= "</table>";
return $output;
}
if($id=="churn")
{
// $recordsData = DB::table('records')->select('id','lan','client','status','dialer_status','dialer_substatus')->get();
$data['campaign'] = DB::table('records')->select('client',DB::raw('COUNT(client) as count'))->groupBy('client')->get();
$data['callStatus'] = DB::table('records')->select('status',DB::raw('COUNT(status) as count'))->groupBy('status')->get();
$data['dispoStatus'] = DB::table('records')->select('dialer_status',DB::raw('COUNT(dialer_status) as count'))->groupBy('dialer_status')->get();
$data['resultcodeStatus'] = DB::table('records')->select('dialer_substatus',DB::raw('COUNT(dialer_substatus) as count'))->groupBy('dialer_substatus')->get();
return view("layout.module.data.churn",$data);
}
if($id=="churnQueue")
{
$churnAction = Input::get("action");
$churnCampaign = Input::get("campaign");
$churnStatus = Input::get("status");
$churnSubStatus = Input::get("substatus");
$oldStatusString = 's:0:"";';
switch ($churnStatus) {
case 'Incall': $oldStatusString = 's:6:"Incall";'; break;
case 'Called': $oldStatusString = 's:6:"Called";'; break;
case 'New': $oldStatusString = 's:3:"New";'; break;
case 'NoNumber': $oldStatusString = 's:8:"NoNumber";'; break;
case 'Noqueue': $oldStatusString = 's:7:"Noqueue";'; break;
}
$newStatusString = 's:3:"New";';
if($churnAction == "callStatus" && $churnCampaign != "" && $churnStatus != ""){
if($churnCampaign == "AllCampaignData"){
DB::table('records')->where('status','=',$churnStatus)
->update(['status'=>'New','peopledata' => DB::raw("REPLACE(peopledata,'$oldStatusString','$newStatusString')")]);
}else{
DB::table('records')->where('status','=',$churnStatus)->where('client','=',$churnCampaign)
->update(['status'=>'New','peopledata' => DB::raw("REPLACE(peopledata,'$oldStatusString','$newStatusString')")]);
}
}elseif($churnAction == "dialerStatus" && $churnCampaign != "" && $churnStatus != ""){
if($churnCampaign == "AllCampaignData"){
DB::table('records')->where('dialer_status','=',$churnStatus)->update(['status'=>'New','peopledata' => DB::raw("REPLACE(peopledata,'". 's:6:"Called";' . "','$newStatusString')"),'peopledata' => DB::raw("REPLACE(peopledata,'". 's:7:"NoQueue";' . "','$newStatusString')")]);
}else{
DB::table('records')->where('client','=',$churnCampaign)->where('dialer_status','=',$churnStatus)->update(['status'=>'New','peopledata' => DB::raw("REPLACE(peopledata,'". 's:6:"Called";' . "','$newStatusString')"),'peopledata' => DB::raw("REPLACE(peopledata,'". 's:7:"NoQueue";' . "','$newStatusString')")]);
}
}elseif($churnAction == "clearQueue" && $churnCampaign != "" && $churnStatus != ""){
if($churnCampaign == "AllCampaignData"){
DB::table('records')->where('status','=','New')->update(['status'=>'Noqueue']);
return "All campaign records has removed from queue";
}else{
DB::table('records')->where('client','=',$churnCampaign)->where('status','=','New')->update(['status'=>'Noqueue']);
return "In ".$churnCampaign." campaign records has removed from queue";
}
}elseif($churnAction == "dialersubStatus" && $churnCampaign != "" && $churnStatus != ""){
if($churnCampaign == "AllCampaignData"){
DB::table('records')->where('dialer_substatus','=',$churnStatus)->update(['status'=>'New','peopledata' => DB::raw("REPLACE(peopledata,'". 's:6:"Called";' . "','$newStatusString')"),'peopledata' => DB::raw("REPLACE(peopledata,'". 's:7:"NoQueue";' . "','$newStatusString')")]);
}else{
DB::table('records')->where('client','=',$churnCampaign)->where('dialer_substatus','=',$churnStatus)->update(['status'=>'New','peopledata' => DB::raw("REPLACE(peopledata,'". 's:6:"Called";' . "','$newStatusString')"),'peopledata' => DB::raw("REPLACE(peopledata,'". 's:7:"NoQueue";' . "','$newStatusString')")]);
}
}else{
return "Select the filters";
}
return "In ".$churnCampaign." campaign ".$churnStatus." records churn successfully";
}
if($id=="churnCampaignChange")
{
$churnAction = Input::get("action");
$churnCampaign = Input::get("campaign");
if($churnAction == "campaignDispo"){
if($churnCampaign=="AllCampaignData"){
$data = DB::table('records')->select('dialer_status',DB::raw('COUNT(dialer_status) as count'))->groupBy('dialer_status')->get();
}else{
$data = DB::table('records')->select('dialer_status',DB::raw('COUNT(dialer_status) as count'))->where('client','=',$churnCampaign)->groupBy('dialer_status')->get();
}
$output = "";
foreach ($data as $dispo) {
$name = $dispo->dialer_status?$dispo->dialer_status:"--Blank--";
$output .= "<label><input type='radio' name='dispoStatus' value='$dispo->dialer_status'/> $name ($dispo->count)</label><br/>";
}
return $output;
}
//data churn by result code wise.
if($churnAction == "resultcampaigncode"){
if($churnCampaign=="AllCampaignData"){
$data = DB::table('records')->select('dialer_substatus',DB::raw('COUNT(dialer_substatus) as count'))->groupBy('dialer_substatus')->get();
}else{
$data = DB::table('records')->select('dialer_substatus',DB::raw('COUNT(dialer_substatus) as count'))->where('client','=',$churnCampaign)->groupBy('dialer_substatus')->get();
}
$output = "";
foreach ($data as $dispo) {
$name = $dispo->dialer_substatus?$dispo->dialer_substatus:"--Blank--";
$output .= "<label><input type='radio' name='disposubStatus' value='$dispo->dialer_substatus'/> $name ($dispo->count)</label><br/>";
}
return $output;
}
if($churnAction == "campaignCall"){
if($churnCampaign=="AllCampaignData"){
$data = DB::table('records')->select('status',DB::raw('COUNT(status) as count'))->groupBy('status')->get();
}else{
$data = DB::table('records')->select('status',DB::raw('COUNT(status) as count'))->where('client','=',$churnCampaign)->groupBy('status')->get();
}
$output = "";
foreach ($data as $dispo) {
$name = $dispo->status?$dispo->status:"--Blank--";
$output .= "<label><input type='radio' name='callStatus' value='$dispo->status'/> $name ($dispo->count)</label><br/>";
}
return $output;
}
}
return "";
}
public function edit($id)
{
}
public function update($id)
{
}
public function destroy($id)
{
//
}
}
\ No newline at end of file
<?php namespace App\Http\Controllers;
use Auth;
use Input;
use Response;
use App\Models\Group;
use App\Models\Master;
use App\Models\Record;
use App\Models\CRMCall;
use App\Models\CRMCallArchive;
use App\Models\CRM;
use App\Models\CRMCampaign;
use App\Models\CRMList;
use App\Jobs\KHRMSLib;
use App\Models\Sipid;
use App\Models\Dialline;
use App\Models\UserLog;
use App\Models\User;
use DB;
use Log;
use Session;
$client='';
class DialermodesaveController extends Controller {
public function index()
{
}
public function create()
{
}
public function store()
{
}
public function show($id)
{
if($id=="savedialerstate")
{
$dialerstate=Input::get('dialerstate');
$client=Input::get("client");
//echo "Prashant".$dialerstate;
DB::table('users')->where('id', Auth::user()->id)->update(['sel_campaign'=>Input::get("client"),'current_dialmode'=>Input::get('dialerstate')]);
}
}
private function redirectIncoming()
{
}
}
<?php namespace App\Http\Controllers;
use Auth;
use Input;
use Config;
use Session;
use App\Models\Group;
use App\Models\User;
class GroupController extends Controller {
public function __construct()
{
$this->middleware('auth');
$this->middleware('module_access');
}
public function index()
{
return view('layout.module.group.index',array('grouplist'=>Group::where('owner','=',Auth::user()->id)->orderBy("created_at","DESC")->paginate(30)));
}
public function create()
{
return view('layout.module.group.create');
}
public function store()
{
$data=array();
$grpname=substr(htmlentities(trim(Input::get("group"))),0,200);
$exists=Group::where("group","=",$grpname)->first();
if(!$exists)
{
$group=new Group();
$group->group=$grpname;
$group->dispname=$group->group;
$group->owner=Auth::user()->id;
$group->status=Input::get("groupstatus");
$role=Auth::user()->role();
foreach(Config::get('app.app_modules') as $tmod=>$tmodarr)
if (strstr(",".$role->modulerwa.",",",$tmod,"))
$data[$tmod."_settings"]=Input::get($tmod."_settings");
$group->data=json_encode($data);
$group->save();
return view('layout.module.group.edit',array('tgroup'=>$group,'displaymsg'=>array("type"=>"success","text"=>"Group Created")));
}
else
{
return view('layout.module.group.create',array('tgroup'=>array(),'displaymsg'=>array("type"=>"Error!","text"=>"Group Already Exists")));
}
}
public function show($id)
{
return view('layout.module.group.edit',array('tgroup'=>Group::find($id)));
}
public function edit($id)
{
return view('layout.module.group.edit',array('tgroup'=>Group::find($id)));
}
public function update($id)
{
$data=array();
$group=Group::find($id);
//$group->group=Input::get("group");
$group->status=Input::get("groupstatus");
$group->parent=Input::get("groupparent");
$group->dispname=Input::get("groupdispname");
if(trim($group->dispname)=="")$group->dispname=$group->group;
$role=Auth::user()->role();
foreach(Config::get('app.app_modules') as $tmod=>$tmodarr)
if (strstr(",".$role->modulerwa.",",",$tmod,"))
$data[$tmod."_settings"]=Input::get($tmod."_settings");
$group->data=json_encode($data);
$group->save();
return view('layout.module.group.edit',array('tgroup'=>$group,'displaymsg'=>array("type"=>"success","text"=>"Group Updated")));
}
public function destroy($id)
{
$group=Group::find($id);
$group->status="Disabled";
$group->save();
return "Group Disabled";
}
public function dashboard()
{
//echo "OK";
}
}
<?php namespace App\Http\Controllers;
use Input;
use App\Jobs\KHRMSLib;
use App\Models\Cutoff;
use Auth;
use Response;
class HRController extends Controller {
public function __construct()
{
$this->middleware('auth');
$this->middleware('module_access');
}
public function index()
{
$data=array();
$data['wakka'] = new KHRMSLib();
return view('layout.module.hr.index',$data);
}
public function create()
{
//
}
public function store()
{
if(Input::get('action') == "CutOff"){
//change start code
$cutoff = new Cutoff();
$cutoff->starttime=Input::get("cutoffstarttime");
$cutoff->endtime=Input::get("cutoffendtime");
$cutoff->user_id=Auth::user()->id;
$cutoff->save();
return Response::make("<script>simpleNotification('success','topRight','Cutoff added successfully!');</script>");
//change end code
}else{
$data=array();
$data['wakka'] = new KHRMSLib();
return view('layout.module.hr.'.strtolower(Input::get('action')),$data);
}
}
public function show($id)
{
$data=array();
$data['wakka'] = new KHRMSLib();
$type='text/html';
if($id=='IDCard')$type="image/png";
if($id=='SalarySlip')$type="application/pdf";
if($id=='IncentiveSlip')$type="application/pdf";
return response()->view('layout.module.hr.'.strtolower($id),$data)->header('Content-Type', $type);
}
public function edit($id)
{
//
}
public function update($id)
{
//
}
public function destroy($id)
{
//
}
public function dashboard()
{
//echo "OK";
}
}
\ No newline at end of file
<?php namespace App\Http\Controllers;
use Auth;
use Config;
use Response;
use Input;
use Cache;
use App\Models\Message;
use App\Models\Sipid;
use App\Jobs\KPushNotify;
use App\Models\User;
use App\Models\Kqueue;
use DB;
class MessageController extends Controller {
public function __construct()
{
$this->middleware('auth');
$this->middleware('module_access');
}
public function index()
{
//$messages=Message::where("to","=",Auth::user()->username)->whereIn("status",array("New","Read"))->orderBy('updated_at','desc')->paginate(50);
//return view('layout.module.message.index',array("messages"=>$messages));
$user=Auth::user();
$data=array();
$data["data"]=json_decode($user->data,true);
$data["id"]=$user->id;
$data["user"]=$user;
$data["displayname"]=Auth::user()->dispname();
$data["myphoto"] = $user->fetchphoto();
$data["messages"]=Message::where('to','=',$user->id)->orderBy("updated_at","DESC")->take(100)->get();
$data["newcount"]=Message::where('to','=',$user->id)->where('status','=','New')->count();
$data["users"]=array();
foreach($data["messages"] as $message)
{
$tuser=User::find($message->from);
if($tuser)
{
if(!isset($data["users"][$message->from]))
{
$data["message_time"][$message->id]=Auth::user()->post_date($message->updated_at);
$data["users"][$message->from]=array();
$data["users"][$message->from]['photothumb']=Auth::user()->fetchphotothumb($message->from);
$data["users"][$message->from]['dispname']=$tuser->dispname();
}
else
{
//self chat?
$data["message_time"][$message->id]=Auth::user()->post_date($message->updated_at);
//$data["users"][$message->from]=array();
//$data["users"][$message->from]['photothumb']=Auth::user()->fetchphotothumb($message->from);
//$data["users"][$message->from]['dispname']=$tuser->dispname();
}
}
}
return view(Config::get('app.mytheme').'.module.message.index',$data);
}
public function create()
{
//
}
public function store()
{
$type=Input::get("type");
if($type=="chat")
{
$id=explode("_",Input::get("id"));
//chanch if $id[1] is a user and in our friendlist TODO
$msg=htmlentities(Input::get("msg"));
$nowTS=time();
if(Message::where("from","=",Auth::user()->id)->where("created_at",'>',date('Y-m-d H:i:s',(time()-(60*60))))->count()>30)return Response::make("simpleNotification('error','topRight','Fairplay Voilation #940');");
if(Message::where("from","=",Auth::user()->id)->where("created_at",'>',date('Y-m-d H:i:s',(time()-(24*60*60))))->count()>100)return Response::make("simpleNotification('error','topRight','Fairplay Voilation #941');");
$ckey='chat'.Auth::user()->id.$id[1];
if(Cache::get($ckey,0)>100)return Response::make("simpleNotification('error','topRight','Fairplay Voilation #942');");
Cache::put($ckey,Cache::get($ckey,0)+1, 24*60);
$messageTo=Message::where("to","=",$id[1])->where("from","=",Auth::user()->id)->where("subject","=","Chat")->first();
$messageFrom=Message::where("to","=",Auth::user()->id)->where("from","=",$id[1])->where("subject","=","Chat")->first();
if(!$messageTo)
{
$messageTo=new Message();
$messageTo->to=$id[1];
$messageTo->from=Auth::user()->id;
$messageTo->subject="Chat";
}
if(!$messageFrom)
{
$messageFrom=new Message();
$messageFrom->to=Auth::user()->id;
$messageFrom->from=$id[1];
$messageFrom->subject="Chat";
}
$messageTo->status="Read";
$messageFrom->status="Read";
$dataTo=json_decode($messageTo->data,true);
$dataFrom=json_decode($messageFrom->data,true);
$dataTo[$nowTS]=array(Auth::user()->id,$msg);
$dataFrom[$nowTS]=array(Auth::user()->id,$msg);
$messageTo->data=json_encode($dataTo);
$messageFrom->data=json_encode($dataFrom);
$messageTo->save();
$messageFrom->save();
//add a queue notify to user if online
$noty=new KPushNotify();
$res=$noty->send(array($id[1]),"chat",Auth::user()->dispname(),$msg,Auth::user()->id);
if(!isset($res[$id[1]])||$res[$id[1]]<=0)
{
$messageTo->status="New";
$messageTo->save();
return Response::make("simpleNotification('alert','topRight','User is offline');");
}
}
if($type=="call")
{
$id=explode("_",Input::get("id"));
$sipid=Sipid::find(Input::get('sipid'));
$tosipid=Sipid::where("user","=",$id[1])->where("status","=","1")->first();
$tosip=0;
if($sipid&&$tosipid)
{
$tosip=$tosipid->id;
$newqueue=new Kqueue();
$newqueue->sipOriginate($sipid,"1001".$tosip,"kstychDialer");
}
return Response::make($tosip);
}
}
public function show($id)
{
if($id=="topbar")
{
$messages=Message::where("to","=",Auth::user()->id)->where("status","=","New")->orderBy('created_at','desc')->take(10)->get();
$count=Message::where("to","=",Auth::user()->id)->where("status","=","New")->count();
$data=array();
foreach($messages as $message)
{
$data[]=array("fromuser"=>$message->from,
"text"=>$message->subject,
"tstr"=>date("d-M H:i",strtotime($message->created_at)));
}
return view('layout.topbar.message',array("messages"=>$data,"messagescount"=>$count));
}
$data=array();
$tmessage=Message::find($id);
if($tmessage->subject=="Chat")
{
if($tmessage->to==Auth::user()->id)
{
$data['fromuser']=$tmessage->from;
$data["id"]=$id;
$data['mid']=$id;
$data['tuser']=User::find($tmessage->from);
$data['messages']=json_decode($tmessage->data,true);
$data["users"]=array();
foreach($data["messages"] as $ts=>$message)
{
$data["message_time"]["$ts"]=Auth::user()->post_date(date("Y-m-d H:i",$ts));
//$dataTo[$nowTS]=array(Auth::user()->id,$msg);
$tuser=User::find($message[0]);
if($tuser)
{
if(!isset($data["users"][$message[0]]))
{
$data["users"][$message[0]]=array();
$data["users"][$message[0]]['photothumb']=Auth::user()->fetchphotothumb($message[0]);
$data["users"][$message[0]]['dispname']=$tuser->dispname();
}
}
}
if($tmessage->status=="New"){$tmessage->status="Read";$tmessage->save();}
}
return view(Config::get('app.mytheme').'.module.message.messagecontent',$data);
}
return view('layout.module.message.msg',array("message"=>Message::find($id)));
}
public function edit($id)
{
//
}
public function update($id)
{
//
}
public function destroy($id)
{
//
}
public function dashboard()
{
//echo "OK";
}
public function sendSupVisorMessage()
{
$agentsNewArr = array();
$agents = Input::get('agents');
$message = Input::get('message');
$sup_id = Auth::user()->usertype;
$status = "New";
$agentsArr = explode(",", $agents);
foreach ($agentsArr as $key => $agent) {
$agentsNewArr[$key] = $agent."-Unread";
}
$updatedAgents = implode(",", $agentsNewArr);
DB::statement("insert into supervisor_message set created_at='".date("Y-m-d H:i:s")."', updated_at='".date("Y-m-d H:i:s")."', sup_id='$sup_id',agents='$agents',message='$message',status='$updatedAgents'");
return;
}
public function viewSupVisorMessage($msg_id, $username)
{
$data["newcount"]=DB::table('supervisor_message')->where('agents','like','%'.Auth::user()->username.'%')->where('status','like','%'.Auth::user()->username."-Unread".'%')->count();
$data["allMesgs"] = DB::table('supervisor_message')->where('agents','like','%'.Auth::user()->username.'%')->get();
if(Auth::user()->usertype == "Supervisor")
{
$data["allMesgs"] = DB::table('supervisor_message')->where('sup_id','=',Auth::user()->username)->get();
}
return view('layout.module.message.supmsg', $data);
}
public function viewMessage($msg_id, $username='')
{
$msgDet = DB::table('supervisor_message')->where('id','=',$msg_id)->get();
foreach ($msgDet as $key => $val) {
$msg = $val->message;
$status = $val->status;
}
$statUsrArr = explode(",", $status);
foreach ($statUsrArr as $key => $statArr) {
$stat = explode("-", $statArr);
if($stat[0] == $username)
{
$stat[1] = "Read";
$mergeStat = implode("-", $stat);
$statUsrArr[$key] = $mergeStat;
}
}
$updateStatus = implode(",", $statUsrArr);
DB::statement("update supervisor_message set updated_at='".date("Y-m-d H:i:s")."',status='$updateStatus' where id='$msg_id'");
if(Auth::user()->usertype == "Supervisor")
{
return $status;
}
else
{
return $msg;
}
}
}
<?php namespace App\Http\Controllers;
use Auth;
use Input;
use Config;
use Session;
use App\Http\Controllers;
use App\Http\Requests;
use Illuminate\Http\Request;
use DB;
use App\Models\Group;
use App\Models\User;
use App\Jobs\KHRMSLib;
use Log;
use DateTime;
class NotesController extends Controller
{
public function __construct()
{
// $this->middleware('auth');
// $this->middleware('module_access');
}
public function loadQuestions($userId='')
{
$fieldDetails=array();
$userId = Auth::user()->id;
$notesDetails = DB::table('agent_notes')
->where('user_id',$userId)
->get();
if($notesDetails != null){
$notesDetails = $notesDetails[0];
for($i=1;$i<=50;$i++){
$field = 'field_'.$i;
$fieldDetails[$i] = explode(":",$notesDetails->$field);
}
usort($fieldDetails, function($a1, $a2) {
$v1 = strtotime($a1[1]);
$v2 = strtotime($a2[1]);
return $v2 - $v1; // $v2 - $v1 to reverse direction
});
foreach($fieldDetails as $key=> $field){
$fieldDetails[$key+1] = $field;
}
}
return view('layout.module.notes.index',compact('userId','fieldDetails','notesDetails'));
}
public function store()
{
$userId=Input::get("user_id");
$action=Input::get("action");
$fieldVal=Input::get("fieldVal");
$dashboarduser=Auth::user();
$notesDetails = DB::table('agent_notes')
->where('user_id',$userId)
->get();
/*$fieldDetails=array();
for($i=1;$i<=50;$i++){
$field = 'field_'.$i;
$fieldDetails[$i] = explode(":",$notesDetails[0]->$field);}
usort($fieldDetails, function($a1, $a2) {
$v1 = strtotime($a1[1]);
$v2 = strtotime($a2[1]);
return $v2 - $v1; // $v2 - $v1 to reverse direction
});
foreach($fieldDetails as $key=> $field){
$fieldDetails[$key+1] = $field;
}*/
if($action=="save")
{
$fieldArray = array();
$fieldVal = explode(",",$fieldVal);
for($i=0;$i<50;$i++){
$fieldArray[]="field_".($i+1)."='".$fieldVal[$i]."'";
}
$setArray = implode(",",$fieldArray);
if($notesDetails == null)
{
DB::statement("insert into agent_notes set created_at='".date("Y-m-d H:i:s")."', updated_at='".date("Y-m-d H:i:s")."', user_id='".$userId."', $setArray" );
}
else{
$notesDetails = $notesDetails[0];
DB::statement("update agent_notes set updated_at='".date("Y-m-d H:i:s")."', $setArray where user_id='".$userId."'");
}
$notesDetails = DB::table('agent_notes')
->where('user_id',$userId)
->get();
$fieldDetails=array();
for($i=1;$i<=50;$i++){
$field = 'field_'.$i;
$fieldDetails[$i] = explode(":",$notesDetails[0]->$field);}
usort($fieldDetails, function($a1, $a2) {
$v1 = strtotime($a1[1]);
$v2 = strtotime($a2[1]);
return $v2 - $v1; // $v2 - $v1 to reverse direction
});
foreach($fieldDetails as $key=> $field){
$fieldDetails[$key+1] = $field;
}
unset($fieldDetails[0]);
return view('layout.module.notes.index',compact('userId','notesDetails','fieldDetails'));
}
}
}
<?php namespace App\Http\Controllers;
use Auth;
use App\Models\Notification;
class NotificationController extends Controller {
public function __construct()
{
$this->middleware('auth');
$this->middleware('module_access');
}
public function index()
{
$notifications=Notification::where("to","=",Auth::user()->username)->where("status","=","New")->orderBy('created_at')->get();
return view('layout.module.notification.index',array("notifications"=>$notifications));
}
public function create()
{
//
}
public function store()
{
//
}
public function show($id)
{
if($id=="topbar")
{
$this->checkLiveRooms();
$notifications=Notification::where("to","=",Auth::user()->username)->where("status","=","New")->orderBy('created_at','desc')->take(10)->get();
$count=Notification::where("to","=",Auth::user()->username)->where("status","=","New")->count();
$data=array();
foreach($notifications as $notification)
{
$data[]=array("sign"=>"+",
"type"=>$notification->type,
"text"=>$notification->data,
"tstr"=>date("d-M H:i",strtotime($notification->created_at)));
}
return view('layout.topbar.notification',array("notifications"=>$data,"notificationscount"=>$count));
}
}
public function edit($id)
{
//
}
public function update($id)
{
//
}
public function destroy($id)
{
if($id=="clearall")
{
Notification::where("to","=",Auth::user()->username)->where("status","=","New")->update(array('status' => 'Archive'));
return view('layout.module.notification.index',array("notifications"=>array(),'displaymsg'=>array("type"=>"success","text"=>"All Notifications Cleared")));
}
}
public function dashboard()
{
//echo "OK";
}
}
<?php namespace App\Http\Controllers;
use Auth;
use Input;
use Config;
use Session;
use App\Http\Controllers;
use App\Http\Requests;
use Illuminate\Http\Request;
use DB;
use Log;
use App\Models\Group;
use App\Models\User;
use App\Models\CRMCall;
class QuestionareController extends Controller
{
public function __construct()
{
$this->middleware('auth');
//$this->middleware('module_access');
}
public function loadQuestions($qid='', $optid='', $level=1)
{
if($qid == '') {
$auth_ques_count = 5;
$where = 'id = 1';
$auth_questions = DB::select('SELECT * FROM authentication_questions_test ORDER BY RAND() LIMIT '.$auth_ques_count );
$query = 'SELECT * FROM question WHERE '.$where;
$questions = DB::select($query);
return view('layout.module.questionare.questions',compact('qid','questions', 'auth_questions', 'auth_ques_count'));
}
else {
$where = 'question_no IN (SELECT question_id FROM question_tree WHERE parent_id = '.$qid.' AND parent_opt = "opt_'.$optid.'")';
$query = 'SELECT * FROM question WHERE '.$where;
$questions = DB::select($query);
return view('layout.module.questionare.childquestions',compact('qid','questions','auth_questions','level'));
}
}
public function saveQuestionAire()
{
$varid=Input::get('varid');
$questionDateTime=Input::get('questionDateTime');
$questionArray = $_POST['questionArray'];
$questionArray = json_decode($questionArray);
//$questionArray = explode(",",$questionArray);
$questionArray=(array)$questionArray;
$authQuestionArray = $_POST['authQuestionArray'];
$authQuestionArray = json_decode($authQuestionArray);
$authQuestionArray=(array)$authQuestionArray;
$recordDetails = DB::table('records')->where('id','=',$varid)->select('*')->first();
$user_id = Auth::user()->username;
$cust_id = $recordDetails->clientcode;
$name = $recordDetails->firstname;
$mobile = $recordDetails->mobile;
$crmcallDetails=CRMCall::where('crm_id','=',$varid)->orderBy("created_at","DESC")->first();
$call_id = $crmcallDetails->id;
foreach($questionArray as $key=> $quesArray){
$explodeQues = explode("-", $key);
$ques = $explodeQues[1];
DB::statement("insert into questionaire_details set created_at='".date("Y-m-d H:i:s")."', updated_at='".date("Y-m-d H:i:s")."', user_id='".$user_id."',cust_id='".$cust_id."',call_id='".$call_id."',name='".$name."',number='".$mobile."',question_time='".$questionDateTime."',auth_question_1='".$authQuestionArray['auth_0']->auth_ques."',auth_opt_1='".trim($authQuestionArray['auth_0']->auth_opt)."',auth_question_2='".$authQuestionArray['auth_1']->auth_ques."',auth_opt_2='".trim($authQuestionArray['auth_1']->auth_opt)."',auth_question_3='".$authQuestionArray['auth_2']->auth_ques."',auth_opt_3='".trim($authQuestionArray['auth_2']->auth_opt)."',auth_question_4='".$authQuestionArray['auth_3']->auth_ques."',auth_opt_4='".trim($authQuestionArray['auth_3']->auth_opt)."',auth_question_5='".$authQuestionArray['auth_4']->auth_ques."',auth_opt_5='".trim($authQuestionArray['auth_4']->auth_opt)."',question='".$ques."',primary_question='".$quesArray->prim_ques."',primary_response='".trim($quesArray->prim_response)."',primary_text='".$quesArray->prim_txt."',followup_question='".$quesArray->fol_ques."',followup_response='".trim($quesArray->fol_response)."',followup_text='".$quesArray->fol_txt."',secondary_question='".$quesArray->sec_ques."',secondary_response='".trim($quesArray->sec_response)."',secondary_text='".$quesArray->sec_txt."'");
}
return "<div class='alert alert-success'><strong>All Questions Saved Successfully!</strong></div>";
}
}
<?php namespace App\Http\Controllers;
use Auth;
use Input;
use Response;
use App\Models\Notification;
use App\Jobs\KHRMSLib;
use App\Models\User;
use DB;
use App\Models\CRMCall;
use App\Http\Controllers;
use App\Http\Requests;
use Illuminate\Http\Request;
use Log;
class RecordController extends Controller {
public function __construct()
{
$this->middleware('auth');
$this->middleware('module_access');
}
public function index()
{
return view('layout.module.record.index',array());
}
public function create()
{
//
}
public function store()
{
$data=array();
$data['wakka'] = new KHRMSLib();
$action=Input::get("action")!=""?Input::get("action"):$_SESSION['fapiRequest'];
$client=Input::get("client");
$data['wakka']->HRFillNames($client);
if($action=="show")
{
return view('layout.module.record.show',$data);
}
if($action=="save")
{
return view('layout.module.record.save',$data);
}
if($action=="quicksearch")
{
return view('layout.module.record.quicksearch',$data);
}
if($action=="textsearch")
{
return view('layout.module.record.textsearch',$data);
}
if($action=="addkey")
{
$wakka = new KHRMSLib();
$varid=Input::get("varid");
$keys=explode(",",Input::get("keys"));
$record=$wakka->getPerson($varid);
if(!empty($keys))foreach($keys as $key)
{
$val=Input::get($key);
$record["peopledata"][$key]=$val;
}
$wakka->setPerson($varid,$record);
return Response::make("");
}
if($action=="delaltphone")
{
$wakka = new KHRMSLib();
$varid=Input::get("varid");
$i=Input::get("i");
$record=$wakka->getPerson($varid);
for($k=$i+1;$k<=10;$k++,$i++)
{
$record["peopledata"]["altphone$i"]=$record["peopledata"]["altphone$k"];
$record["peopledata"]["altphone_lbl_$i"]=$record["peopledata"]["altphone_lbl_$k"];
}
$record["peopledata"]["altphone10"]="";
$record["peopledata"]["altphone_lbl_10"]="";
$wakka->setPerson($varid,$record);
}
if($action=="bulkupload")
{
return view('layout.module.record.bulkupload',$data);
}
if($action=="Appointment")
{
$wakka = new KHRMSLib();
$CustomerName=Input::get("CustomerName");
$AppntLocation=Input::get("AppntLocation");
$AppntTime=Input::get("AppntTime");
$Address=Input::get("Address");
$AppntDate=Input::get("AppntDate");
$ContactPerson=Input::get("ContactPerson");
$Phone=Input::get("Phone");
$AppntDate=date("d-M-Y",strtotime($AppntDate));
$h = $AppntTime;
$hm = $h * 60;
$ms = $hm * 60;
$AppntTime=gmdate("g A",$ms);
$smsapi="http://115.114.132.71/servlet/com.aclwireless.pushconnectivity.listeners.TextListener?userId=idcamps&pass=pacamps1&contenttype=1&from=HEROFC&selfid=true&alert=1&dlrreq=true";
$MsgContent="Dear $CustomerName, Your appointment is fixed at $AppntLocation. Appointment Date - $AppntDate, Time - $AppntTime. Address: $Address Contact Person - $ContactPerson. In case of any assistence Please give a missed call. $Tollfree";
$EnMsgContent=urlencode($MsgContent);
$smsurl=$smsapi."&to=".$Phone."&text=".$EnMsgContent;
$MessageID=$wakka->get_response($smsurl);
if($MessageID)
print $MessageID;
else
print "Failed";
//echo $CustomerName . ' = ' . $AppntLocation . ' = ' . $AppntTime . ' = ' . $Address . ' = ' . $AppntDate . ' = ' . $ContactPerson;
}
if($action=="sendAPI")
{
$mobile=Input::get("mobile")!=""?Input::get("mobile"):$_SESSION['apiMobile'];
$custName=Input::get("custName")!=""?Input::get("custName"):$_SESSION['apiCustName'];
$lan=Input::get("lan")!=""?Input::get("lan"):$_SESSION['apiLan'];
$emi=Input::get("emi")!=""?Input::get("emi"):$_SESSION['apiEmi'];
$X_AUTH_T = 'eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL21vYmlsZXBheW1lbnRzLmJlbm93LmluLyIsInN1YiI6ImhpbWFuc2h1LnNoYXJtYUBmdWxsZXJ0b25pbmRpYS5jb20iLCJkYXRhIjp7Im1lcmNoYW50SWQiOiIxODU1ODMiLCJtY2NDb2RlIjoiNzMyMiIsIm1vYmlsZU51bWJlciI6Ijg0NTIwNzc1NTUiLCJkaXNwbGF5TmFtZSI6IkZVTExFUlRPTiBJTkRJQSBDUkVESVQgQ09NUEFOWSBMSU1JVEVEIiwibWVyY2hhbnRDb2RlIjoiRDRESzgiLCJwcml2YXRlSWQiOiI2OTEifSwiaWF0IjoxNTMxOTExMjU5fQ.pJupG7g5iOHgsJbUucjP_Hu8Zfd-wIVJkijkHMZ9vl0';
$X_EMAIL_T = '[email protected]';
$key = '[B@334418de'; // this is salt/key which would be provided by benow
$inputArray = ['merchantCode'=>'D4DK8',"amount"=>$emi,"description"=>"FULLERTON INDIA CREDIT COMPANY LIMITED","customerName"=>$custName,"mobileNumber"=>$mobile,"refNumber"=>$lan]; // payload
$input = json_encode($inputArray);
$key = openssl_digest($key,'sha256');
$key = openssl_digest($key,'md5');
$key = substr($key,0,16);
$iv = 'xxxxyyyyzzzzwwww'; // this will be provided by benow
$encryptedString = openssl_encrypt($input,'aes-128-cbc',$key,0,$iv);
$jsonString = $input;
$data = ['encryptedString'=>$encryptedString,'jsonString'=> $input];
$jsonBody = $data;
$url = 'https://mobilepayments.benow.in/payments/paymentadapter/portablePaymentRequest';
$payload = json_encode($jsonBody);
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIE, "");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json',
'AUTHORIZATIONKEY:' . $X_AUTH_T,
'X-EMAIL:' . $X_EMAIL_T, 'Cache-Control:no-cache'
));
$response = curl_exec($ch);
curl_close($ch);
Log::useFiles(storage_path().'/logs/SMS_'.date("d_m_Y").'.log');
Log::info(date("Y-m-d H:i:s")." Mobile=".$mobile." LAN=".$lan." Response=".$response);
if(isset($_SESSION['fapiRequest']))
{
$_SESSION['fapiRequest'] = '';
$_SESSION['apiMobile'] = '';
$_SESSION['apiCustName'] = '';
$_SESSION['apiLan'] = '';
$_SESSION['apiEmi'] = '';
}
return $response;
}
}
public function show($id)
{
$data=array();
$data['wakka'] = new KHRMSLib();
if($id=="bulkupload")
{
return view('layout.module.record.bulkupload',$data);
}
if($id=="textsearch")
{
return view('layout.module.record.textsearch',$data);
}
}
public function edit($id)
{
//
}
public function update($id)
{
//
}
public function destroy($id)
{
}
public function dashboard()
{
//echo "OK";
}
public function churnData()
{
$data=array();
$wakka = new KHRMSLib();
$listVal = DB::table('currentqueue_list')->get();
$rclientlst=$wakka->clientsReadAccess();
$data['listVal'] = $listVal;
$data['cntlistVal'] = count($listVal);
$data['rclientlst'] = $rclientlst;
return view('layout.module.record.churn',$data);
}
public function saveChurnData()
{
$user_agent=Input::get('agent');
$data = $_POST['data'];
$exitAgent = DB::table('cq_logic')->where('user_agent','=',$user_agent)->first();
if($exitAgent)
{
DB::update("update cq_logic set updated_at='".date("Y-m-d H:i:s")."', data='".$data."' where user_agent='".$user_agent."'");
}
else
{
DB::statement("insert into cq_logic set created_at='".date("Y-m-d H:i:s")."', updated_at='".date("Y-m-d H:i:s")."', user_agent='".$user_agent."', data='".$data."'");
}
return ;
}
public function supervisorUpload()
{
$data = array();
$client = array();
$data['wakka'] = new KHRMSLib();
$dashboarduser=Auth::user();
$allusers=User::where('usertype','=','Telecaller')->get();
$client="";
foreach($allusers as $alluser)
{
$usrData = json_decode($alluser->data);
$usrHRMSData = unserialize($usrData->hrmsdata);
//echo "----userdta---".print_r($usrHRMSData);
if($usrHRMSData['clientsownerlist']&&$usrHRMSData['clientsownerlist']!='null')
//$client[] = $usrHRMSData['clientsownerlist'];
$pbcode [] = explode(',', $usrHRMSData['clientsownerlist']);
$username[] = $alluser->username;
$userid[] = $alluser->id;
}
foreach ($pbcode as $pbarr) {
foreach($pbarr as $c){
$client[] .= $c;
}
}
// print_r($client);
$data['client'] = $client;
$data['username'] = array_combine($userid,$username);
return view('layout.module.record.commentsUpload',$data);
}
public function rlpPbwise()
{
$data = array();
$pbcode=Input::get('pbcode');
$data['pbcode']=$pbcode;
return view('layout.module.record.rlppbwise',$data);
}
}
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!