dialer.blade.php 8.74 KB
<?php
use App\Jobs\KHRMSLib;
use App\Models\CRMCall;

$campSel = Session::get('campSel');

$client=Input::get("client","");

$wakka=new KHRMSLib();
$dispoclassarr=array('NC'=>array(0,array()),'CC'=>array(0,array()),'CB'=>array(0,array()),'NA'=>array(0,array()));

$owclientstr=array();
$oclientlst=$wakka->clientsOwnerRWAccess();
if(!empty($oclientlst))foreach($oclientlst as $tclnt)if($tclnt!="")
{
	$owclientstr[]="'$tclnt'";
	if($client=="")$client=$tclnt;
}
if(!empty($owclientstr))$owclientstr="and client in (".implode(",",$owclientstr).")";else $owclientstr="";
if($client!="")$owclientstr="client='$client' and";

$roclientstr=array();$didlinesstr=array();if(Auth::user()->exten!="")$didlinesstr[]=Auth::user()->exten;
$roclientlst=$wakka->clientsReadAccess();

if(!empty($roclientlst))foreach($roclientlst as $tclnt)if($tclnt!="")
{
	$roclientstr[]="'$tclnt'";
	if($client=="")$client=$tclnt;

	$mastersdata=$wakka->getCompanyMaster($tclnt);
	if(!empty($mastersdata["DialerDID"]))$didlinesstr[]=$mastersdata["DialerDID"];


	if(empty($mastersdata['dialerDispoList']))$mastersdata['dialerDispoList']=$wakka->HRCoreVars['dialerDispoList'];

	$dispoarr=explode("~",$mastersdata['dialerDispoList']);
	foreach($dispoarr as $dispo)
	{
		if(!empty($dispo))
		{
			$dispoprts=explode("|",$dispo);
			if(sizeof($dispoprts)>=3)
			{
				if(isset($dispoclassarr[$dispoprts[0]]))
				{
					$dispoclassarr[$dispoprts[0]][1][]=$dispoprts[1];
				}
			}
		}
	}
}

foreach($didlinesstr as $k=>$dids)
{
	$didarr=explode(":",$dids);
	$didlinesstr[$k]=$didarr[0];
}

if(!empty($roclientstr))$roclientstr="and client in (".implode(",",$roclientstr).")";else $roclientstr="";
if($client!="")$roclientstr="and client='$client'";

$dispoarr=$wakka->LoadAll("select count(*) as cnt,currentstatus,legalstatus,dialer_status from records where $owclientstr 1=1  group by currentstatus,legalstatus,dialer_status");

$counts= DB::table('records')
->select(DB::raw("count(*) as cnt,status"))
->where('client', '=', $client)
->groupBy('status')->get();

$totalCnt = 0;

foreach ($counts as $key => $count)
{
	$status = $count->status;
	$$status = $count->cnt;
	$totalCnt+=$count->cnt;
}

//$TotalData=$New + $Called + $Incall;
$TotalData= $totalCnt;
$NotCalled=$New;
$TotalCalled=$Called;

$MissedCalls=0;

$mc=CRMCall::where('userstatus','=','InboundDROP')->where('created_at','>',date('Y-m-d H:i:s',time()-(7*24*60*60)));
$mc=$mc->where(function ($query) use($roclientlst,$didlinesstr){
	$query->orWhereIn('client',$roclientlst)->orWhereIn('did',$didlinesstr);
});
$mc=$mc->get();

$number_list=array();
foreach($mc as $key=>$tcall){
	$number_list[] = $tcall->number;
}

if(count($number_list) > 0) {
	$lcalls=DB::select("SELECT * FROM crmcalls where id in (SELECT max(id) FROM crmcalls WHERE number IN ('" . implode("','", $number_list). "') GROUP BY number )");

	foreach($lcalls as $lcall)
	{
		if($lcall->userstatus=="InboundDROP")
		{
			$MissedCalls++;
		}
	}
}

$callstoday=CRMCall::where("created_at",">=",date("Y-m-d 00:00:00"))->where("user_id","=",Auth::user()->id)->count();
$callsmonth=CRMCall::where("created_at",">=",date("Y-m-01 00:00:00"))->where("user_id","=",Auth::user()->id)->count();
$recstoday=$wakka->getCount("records","$owclientstr dialer_lastcall>='".date("Y-m-d 00:00:00")."'");
$recsmonth=$wakka->getCount("records","$owclientstr dialer_lastcall>='".date("Y-m-01 00:00:00")."'");

?>

<div class=col-md-3>
	<div class=col-md-11>

<?php if(sizeof($roclientlst)>0){ ?>
		<h5>Campaign 
			<select class='form-control pull-right' id=tcampaign_select onchange='campaignSelect();' style='width:50%'>
				<?php foreach($roclientlst as $c){$s="";if($c==$client)$s='selected';echo "<option value='$c' $s>$c</option>";} ?>
			</select>
		</h5>
		<br/>
<?php } ?>

		<br/>
		<h5>Buckets
			<span class='label label-small label-default pull-right'>
				<a href=# onclick="dialerLoadData('CallsMonth','','',1,'','');return false;" style='color:#fff;font-size:12px'>
					Month: {!!$recsmonth!!} / {!!$callsmonth!!}
				</a>
			</span>
			<span class='label label-small label-default pull-right' style='margin-right:5px'>
				<a href=# onclick="dialerLoadData('CallsToday','','',1,'','');return false;" style='color:#fff;font-size:12px'>
					Today: {!!$recstoday!!} / {!!$callstoday!!}
				</a>
			</span>
		</h5>
		<br/>

		<div style='clear:both'></div>
		<ul style="list-style:none">
			<li class="notify_alert">
				<span><a href=# onclick="dialerLoadData('CurrentQueue','','',1,'','');return false;">CurrentQueue</a></span>
			</li>
			<li class="notify_alert">
				<span><a href=# onclick="dialerLoadData('MissedCalls','','',1,'','');return false;">MissedCalls</a></span>
				<span class="label label-small label-primary pull-right" >
					{!!$MissedCalls!!}
				</span>
			</li>
			<li class="notify_alert">
				<span><a href=# onclick="dialerLoadData('TotalData','','',1,'','');return false;">TotalData</a></span>
				<span class="label label-small label-default pull-right" >
					{!!$TotalData!!}
				</span>
			</li>
			<li class="notify_alert">
				<span><a href=# onclick="dialerLoadData('NotCalled','','',1,'','');return false;">NotCalled</a></span>
				<span class="label label-small label-default pull-right" >
					{!!$NotCalled!!}
				</span>
			</li>
			<li class="notify_alert">
				<span><a href=# onclick="dialerLoadData('Called','','',1,'','');return false;">Called</a></span>
				<span class="label label-small label-success pull-right" >
					{!!$TotalCalled!!}
				</span>
			</li>
			<li class="notify_alert">
				<span><a href=# onclick="return false;">Contacted</a></span>
				<span class="label label-small label-success pull-right" id=contactedcnt_span>
					0
				</span>
			</li>
			
			<hr><br>
						
<?php
foreach($dispoarr as $disp) {
	foreach($dispoclassarr as $dclass=>$darr)
	{
		if(in_array($disp['dialer_status'],$darr[1]))
		{
			$dispoclassarr[$dclass][0]+=$disp['cnt'];
		}
	}

	$class=str_replace(" ","_","CLS_".$disp['currentstatus'].$disp['legalstatus']);
?>
			<li class="notify_alert bucketliitem {!!$class!!}">
				<span><a href=# onclick="dialerLoadData('{!!$disp['dialer_status']!!}','{!!$disp['currentstatus']!!}','{!!$disp['legalstatus']!!}',1,'','');return false;">{!!$disp['dialer_status']==''?'------':$disp['dialer_status']!!}</a></span>
				<span class="label label-small label-success pull-right" >
					{!!$disp['cnt']!!}
				</span>
			</li>
<?php
}

$contacted=$dispoclassarr['CC'][0]+$dispoclassarr['CB'][0]+$dispoclassarr['NC'][0];
echo "<script>$('#contactedcnt_span').html('$contacted');</script>";
?>
		</ul>
	</div>
</div>

<div class=col-md-9  id=bucketlistdiv></div>
<div style='clear:both'></div>

<script>
function campaignSelect()
{
	var dashlet="Dialer";
	doAjax("dashboard/dashlet?module="+dashlet+"&client="+$("#tcampaign_select").val(),"","DashletT-"+dashlet,"ajax_dashlet_"+dashlet,"singlefail","GET");
    
    /*doAjax("autodial/autodialmode?client="+$("#tcampaign_select").val(),"","","","singlefail","GET");*/

	callingModeChange();
}

// code start - function for change calling mode assign, campaign wise - by YASHWANT on 11042017
function callingModeChange()
{
	
var action = "callingmode";

$.ajax({
       type: "GET",
       url: action,
       data: "client="+$("#tcampaign_select").val(),
       success: function(nextRecord)
       {
       		var elementsLI = document.getElementById("dialer_mode").getElementsByTagName('li');
			var length = document.getElementById("dialer_mode").getElementsByTagName('li').length;

			if(nextRecord)
       		{
				for(var i = 0; i <= length - 10 ; ++i)
				{
					if(nextRecord != elementsLI[i].innerText)
					{
						elementsLI[i].style.display = "none";
					} else {
						elementsLI[i].style.display = "block";
					}
				}
       		}
       		else
       		{
       			for(var i = 0; i <= length - 10 ; ++i){
				if(nextRecord != elementsLI[i].innerText)
					elementsLI[i].style.display = "block";
				}
       		}
       		
       }
     });	
}
// code end - function for change calling mode assign, campaign wise - by YASHWANT on 11042017

function bucketSelect()
{
	var activeclass='CLS_'+$('#currentstatus_select').val()+$('#legalstatus_select').val();
	$('.bucketliitem').hide();
	$('.'+activeclass).show();
}

bucketSelect();
callingModeChange();

function dialerLoadData(listname,currentstatus,legalstatus,page,skey,stxt)
{
	doAjax("dialer/bucketdata","client={!!$client!!}&bucket="+listname+"&currentstatus="+currentstatus+"&legalstatus="+legalstatus+'&page='+page+'&skey='+skey+'&stxt='+stxt,"bucketlistdiv","ajax_dialer_list","singlefail","GET",function(argument) {
		$(document).ready(function(){
    $('#dashboardTable').DataTable(
    {
        "paging":   false,
        "info":     false,
        "searching":     false
    });
});
	});

	 /*doAjax("autodial/autodialmode?client="+$("#tcampaign_select").val(),"","","","singlefail","GET");*/

}

dialerLoadData('CurrentQueue','','',1,'','');

</script>