relationshipreport.blade.php 9.85 KB
<?php
use App\Models\CRMCallArchive;
use App\Models\CRMCall;
use App\Models\User;
use App\Jobs\KHRMSLib;

$wakka = new KHRMSLib();
$dashboarduser=Auth::user();


if(isset($_GET['logdate']))$logdate=strtotime($_GET['logdate']." 00:00:00");
else $logdate=strtotime(date('Y-m-d')." 00:00:00");

$prevlogdate = strtotime(date('Y-m-d', strtotime('-7 day')));

$i=0;
if($logdate < $prevlogdate)
{
	$alist=CRMCallArchive::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))->where('type','!=','Inbound');

}
else
{
	$alist=CRMCall::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))->where('type','!=','Inbound');
}


if($dashboarduser->usertype != 'Admin')
{
	$uidlist=array($dashboarduser->id);
	$allusers=User::where(function ($query)  use($dashboarduser) {
		$query->where('supervisor','=',$dashboarduser->username)
		->orWhere('lteam2','=',$dashboarduser->username)
		->orWhere('lteam','=',$dashboarduser->username);
	})->get();

	foreach($allusers as $tuser)$uidlist[]=$tuser->id;


	$roclientstr=array();$didlinesstr=array();
	if($dashboarduser->exten!="")$didlinesstr[]=$dashboarduser->exten;
	$oclientlst=$wakka->clientsReadAccess();
	if(!empty($oclientlst))foreach($oclientlst as $tclnt)if($tclnt!="")
	{
		$roclientstr[]="$tclnt";

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

	$alist=$alist->where(function ($query) use($roclientstr,$uidlist,$didlinesstr){
	$query//->orWhereIn('client',$roclientstr)
	->orWhereIn('user_id',$uidlist)
	->orWhereIn('did',$didlinesstr);
});

}

if(Input::get('sort')=='cpu')$alist=$alist->orderBy("callSec","DESC");
else $alist=$alist->orderBy("id","DESC");
$alist=$alist->get();
/*


$userarr=array();
$i=sizeof($alist);if(!empty($_GET['sort']))$i=1;
$totaltime=0;$ttlovr10=0;$ttlovr5=0;$ttlovr1=0;$ttlovr0=0;$outstr="";$usrcnt=0;
$totaltimeIn=0;$ttlovr10In=0;$ttlovr5In=0;$ttlovr1In=0;$ttlovr0In=0;$usrcntIn=0;
$actionarr=array();$actionarrIn=array();


*/
$callarraid='';
$crm_id='';
foreach($alist as $aline)
{
    if($aline->crm_id>0)$crm_id.=$aline->crm_id.",";
}
$crm_id=substr($crm_id,0,-1);
$crm_id=explode(",", $crm_id);
$clientcodearr=DB::table('records')->select('clientcode','id','currentstatus','legalstatus')->whereIn('id',$crm_id)->get();
foreach ($clientcodearr as $clientid) 
{
	$clientcodeval[$clientid->id]=$clientid->clientcode;
}

if(Input::has("dllogxls"))
{
													
	include_once(app_path().'/lib/phpexcel/PHPExcel.php');


	$inputFileType = "Excel5";
	$objReader = PHPExcel_IOFactory::createReader($inputFileType);
	$objPHPExcel = $objReader->load("assets/extras/blank.xls");
	$baseRow = 3;

	$tcol=0;$fieldsarr=array();$extrahdrarr=array();
	$fieldsarr[$tcol++]='#';
	$fieldsarr[$tcol++]='Date';
	$fieldsarr[$tcol++]='User_id';
	$fieldsarr[$tcol++]='Disposition';
	$fieldsarr[$tcol++]='ClientCode';
	$fieldsarr[$tcol++]='Services';


  $highestColumn = sizeof($fieldsarr);
   for ($head = 0; $head < $highestColumn; $head++)
   {
	    $colstr=PHPExcel_Cell::stringFromColumnIndex($head);
	 	$objPHPExcel->getActiveSheet()->setCellValue($colstr."1", $fieldsarr[$head]);
	}

	$ii=1;
	foreach($alist as $aline)
	{
		//$row = $baseRow++;
		$col = 0;


	    $clientcode="";
		$tpostdata=json_decode($aline->data,true);
		$fulldate=date("Y-m-d H:i:s",strtotime($aline->created_at)-($dashboarduser->timezone*60));
		if(!isset($userarr[$aline->user_id])&&$aline->user_id>0)$userarr[$aline->user_id]=User::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;
    
    	$val='';
	
		$userdata=json_decode($aline->userdata,true);
		//echo "<pre>".print_r($userdata)."<br>";
		if(!empty($userdata))
		{
			foreach ($userdata as  $key=>$val) 
			{
				
           		if($val!="")
           		{
           			$row = $baseRow++;
					$col=0;
					$clientcode="";
					if($aline->crm_id>0)
					{
						//$user=$wakka->getPerson($aline->crm_id);
						//$clientcode=$user["peopledata"]["clientcode"];
						$clientcode=$clientcodeval[$aline->crm_id];
					}
           			$objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col++,$row)->setValueExplicit($ii++);
					$objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col++,$row)->setValueExplicit($fulldate);
					$objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col++,$row)->setValueExplicit($username);
					$objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col++,$row)->setValueExplicit($aline->userstatus);
					$objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col++,$row)->setValueExplicit($clientcode);
					$objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col++,$row)->setValueExplicit($val);
           	}
			
		}
	}

}


header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="Relationship.xls"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $inputFileType);
$objWriter->save('php://output');

return ;
}



foreach($alist as $aline)
{
	$clientcode="";
	$userdata=json_decode($aline->userdata,true);


	if($aline->crm_id>0)
	{
		//$user=$wakka->getPerson($aline->crm_id);
		//$clientcode=$user["peopledata"]["clientcode"];
		$clientcode=$clientcodeval[$aline->crm_id];
	}
	$tpostdata=json_decode($aline->data,true);
	$fulldate=date("Y-m-d H:i:s",strtotime($aline->created_at)-($dashboarduser->timezone*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::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;

	if(!empty($userdata)){
		foreach ($userdata as  $key=>$val) 
		{
			if($val!="")
			{
               $outstr.="<tr><td>".$i++."</td>
				<td title='$fulldate'>".explode(" ",$fulldate)[0]."</td>
				<td>".$username."</td>
				<td title='".str_replace("'"," ",$aline->userremarks)."'>".$aline->userstatus."</td>
				<td>$clientcode</td>
				<td>$val</td>
		   		</tr>";
			}
			
	    }
    }
    /*else
    {
		$outstr.="<tr><td>".$i++."</td>
		<td title='$fulldate'>".explode(" ",$fulldate)[0]."</td>
		<td>".$username."</td>
		<td title='".str_replace("'"," ",$aline->userremarks)."'>".$aline->userstatus."</td>
		<td>$clientcode</td>
		<td></td>
		</tr>";
	}*/
}
?>



<div class=innerAll>




	<style>#logtable.td{vertical-align:top;}#logtable.tr{height:28px;overflow-y:hidden;}</style>
	<script>
		function showExtraPost(varstr)
		{
			doAjax("hr?action=LiveUsers","getpostdata="+varstr,"dialoglog");

			$('#dialoglog').dialog('open');
			return false;
		}

		$(document).ready(function()
		{
			if(!$('#dialoglog').hasClass('ui-dialog-content'))
			{
				$('#dialoglog').dialog({
					autoOpen: false,
					width: '70%',
					buttons: {
						"Ok": function() { 
							$(this).dialog("close"); 
						}, 
						"Cancel": function() { 
							$(this).dialog("close"); 
						} 
					}
				});
			}

			waitKeyUpRun("filter",function() { filter2(document.getElementById('filter'), 'logtable') },"2000");
			$('#modfrom').datepicker({dateFormat: 'yy-mm-dd',inline: true,changeYear: true,selectOtherMonths: true,yearRange: '<?php echo (date('Y')-70).":".(date('Y')+5); ?>'});
		});
	</script>
	<div style="float:left;width:50%">

		Search <input id=filter name="filter" type="text"> 
		Date : <input size=10 id='modfrom' name='modfrom' type='text' value='<?php echo date("Y-m-d",$logdate); ?>' onchange='callLogReloadFun("");' /> 

	</div>
	<div style="float:left;width:50%">


		<button class="pull-right btn btn-sm btn-default" onclick='dlCalllogXls();return false;' title='Download' style='margin-top:-8px'><i class='fa fa-download'></i> Download</button>

	</div>
	<div style="clear:both"></div>
	<hr>

	<?php 
	/*$categories=array();$avgarr=array();$cntarr=array();
	foreach($actionarr as $act=>$actarr)
	{
		if($actarr['cnt']>sizeof($alist)/150)
		{

			$categories[]="'$act'";
			$avgarr[]=-round($actarr['time']/$actarr['cnt'],2);
			$cntarr[]=$actarr['cnt'];
		}
	}

	array_multisort($cntarr,$avgarr,$categories);



	$categoriesIn=array();$avgarrIn=array();$cntarrIn=array();
	foreach($actionarrIn as $act=>$actarr)
	{
		if($actarr['cnt']>sizeof($alist)/150)
		{

			$categoriesIn[]="'$act'";
			$avgarrIn[]=-round($actarr['time']/$actarr['cnt'],2);
			$cntarrIn[]=$actarr['cnt'];
		}
	}

	array_multisort($cntarrIn,$avgarrIn,$categoriesIn);*/
	?>



	<div class=col-md-10>

		<script>


			function callLogReloadFun(sortby)
			{
				var sortstr='';if(sortby!="")sortstr="&sort="+sortby

				doAjax('dialer/relationshipreport?logdate='+$("#modfrom").val()+sortstr,'','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');
			}
			
			function dlCalllogXls()
			{
				window.open('dialer/relationshipreport?dllogxls=1&logdate='+$("#modfrom").val());return false;
			}
		</script>

	</div>

	<div style='clear:both'></div>

	<div class=col-md-10>

		<script>

		</script>

	</div>

	<div style='clear:both'></div>

	<div style='overflow:auto'>
		<table id=logtable class='footable table table-striped table-bordered table-white table-primary footable-loaded' style='font-size:12px'>
			<thead>
				<tr>
					<th>#</th>
					<th>Date</th>
					<th>User_id</th>    
					<th>Disposition</th>
					<th>ClientCode</th>
					<th>Services</th>
				</tr>
			</thead>
			<?php echo $outstr; ?>
		</table>
	</div>
	<?php
	function convert($size)
	{
		$unit=array('b','kb','mb','gb','tb','pb');
		return @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i];
	}

echo "<br>".convert(memory_get_peak_usage(true)); // 123 kb


?>
<div id=dialoglog></div>





</div>