datadump.php 8.09 KB
<?php
use App\Models\CRMCall;
use App\Models\CRMCallArchive;
use App\Models\User;
use App\Jobs\KHRMSLib;
$wakka = new KHRMSLib();
$dashboarduser=Auth::user();
$logtime    =(isset($_GET['logtime']))  ? $_GET['logtime']  :9;
$logtimeto  =(isset($_GET['logtimeto']))? $_GET['logtimeto']:20;
$logdate    =(isset($_GET['logdate']))  ? strtotime($_GET['logdate']." ".$logtime.":00:00")
                                        : strtotime(date("Y-m-d")." 09:00:00");
$logdateto  =(isset($_GET['logdateto']))? strtotime($_GET['logdateto']." ".$logtimeto.":00:00")
                                        : strtotime(date("Y-m-d")." 20:00:00");
$campaign   =(isset($_GET['campaign']))  ? $_GET['campaign']  : "All";
$alist=DB::table('records as r')
->leftjoin('crmcalls_archive as cca', 'r.id', '=', 'cca.crm_id')
->select(DB::raw("r.peopledata, count(*) as calls"),"cca.user_id as user_id", "r.mobile")
->where('cca.created_at','>=',date("Y-m-d H:i:s",$logdate))->where('cca.created_at','<=',date("Y-m-d H:i:s",$logdateto))->where('user_id','!=',0)
->groupBy('cca.number');
$alist->where('cca.client','=',$campaign);
$userarr=array();
$allusers = DB::table('users as u1')
    ->select('u1.id','u1.username','u1.fullname AS telecaller');
$roclientstr=array();$didlinesstr=array();
if($dashboarduser->exten!="")$didlinesstr[]=$dashboarduser->exten;
$oclientlst=$wakka->clientsReadAccess(); sort($oclientlst);// $oclientlst[0] = 'All';
if(!empty($oclientlst))foreach($oclientlst as $tclnt)if($tclnt!="")
{
    $roclientstr[]="$tclnt";
    
    $mastersdata=$wakka->getCompanyMaster($tclnt);
    if(!empty($mastersdata["DialerDID"]))$didlinesstr[]=$mastersdata["DialerDID"];
}
//if(!$dashboarduser->moduleACL("Dialer",false,false,true))
if($dashboarduser->usertype != 'Admin')
{
    $uidlist=array($dashboarduser->id);
    $allusers=$allusers->where(function ($query)  use($dashboarduser) {
        $query->where('u1.supervisor','=',$dashboarduser->username)
        ->orWhere('u1.lteam2','=',$dashboarduser->username)
        ->orWhere('u1.lteam','=',$dashboarduser->username);
    })->get();
    
    foreach($allusers as $tuser)
    { 
        $uidlist[]=$tuser->id;
        $userarr[$tuser->id] = $tuser;
    }
    $alist=$alist->whereIn('user_id',$uidlist);
    
    $alist=$alist->where(function ($query) use($roclientstr,$uidlist,$didlinesstr){
        $query->orWhereIn('cca.client',$roclientstr)
        ->orWhereIn('did',$didlinesstr);
    }); 
}
else {
    $allusers=$allusers->get();
    foreach($allusers as $tuser)
    {
        $userarr[$tuser->id] = $tuser;
    }
}
$alist=$alist->get();

$i=1;
$reporthead=array("Calls","AgentName");
$reportarray=array();
if (count($alist))
foreach($alist as $aline)
{
    $tuser=$userarr[$aline->user_id];
    $peopledata=unserialize($aline->peopledata);
    
    $reporthead= (is_array($peopledata)) ? array_merge($reporthead,array_keys($peopledata)) : $reporthead;
    $recorddata=array("Calls"=>$aline->calls,"AgentName"=>$tuser->username);
    $peopledata['mobile']=$aline->mobile;
    $reportarray[]=array_merge($recorddata,$peopledata);
}
$reporthead = array_values(array_unique($reporthead));

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 = 2;
    $highestColumn = sizeof($reporthead);
    for ($head = 0; $head < $highestColumn; $head++){
        $colstr=PHPExcel_Cell::stringFromColumnIndex($head);
        $objPHPExcel->getActiveSheet()->setCellValue($colstr."1", $reporthead[$head]);
    }
    foreach($reportarray as $uid=>$uarr)
    {
        $row = $baseRow++;
        $col = 0;
            
        for ($head = 0; $head < $highestColumn; $head++){
            $colstr=PHPExcel_Cell::stringFromColumnIndex($head);
            $objPHPExcel->getActiveSheet()->setCellValue($colstr.$row, $uarr[$reporthead[$head]]);
        }
    }
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename="datadump.xls"');
    header('Cache-Control: max-age=0');
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $inputFileType);
    $objWriter->save('php://output');
    
    return ;
}
$highestColumn = sizeof($reporthead);
/*if(count($reportarray)) {
    $outhead="<tr>";$outstr="";
    for ($head = 0; $head < $highestColumn; $head++){
        $outhead.="<td>".$reporthead[$head]."</td>";
    }
    $outhead.="</tr>";
    $utotalarr = array("Telecaller"=>'Total');
    foreach($reportarray as $uid=>$uarr)
    {
        $outstr.="<tr>";
        for ($head = 0; $head < $highestColumn; $head++){
            $outstr.="<td>".$uarr[$reporthead[$head]]."</td>";
        }
        $outstr.="</tr>";
    }
}
else {
    $outhead.="<tr><td>No Records Found.</td></tr>";
}*/
if(count($reportarray)){
 $outhead="<label>".count($reportarray)." Records Found.</label>";
}
else
{
$outhead="No Records Found.</label>";
}
?>
<style>#logtable.td{vertical-align:top;}#logtable.tr{height:28px;overflow-y:hidden;}</style>
<div class=innerAll>
<h4 style="float:left;width:50%;margin:10px 0;">Data Dump</h4>
<div style="float:right;width:50%">
    <button class="pull-right btn btn-sm btn-default" onclick='dlAgentlogXls();return false;' title='Download'><i class='fa fa-download'></i> Download</button>
</div>
<div style="clear:both"></div>
<hr style="margin-bottom: 5px;">
<div>
    Search <input id=filter name="filter" type="text" style="border:1px solid #efefef; padding: 2px 10px;">&nbsp;&nbsp;
    Date: From <input size=10 id='modfrom' name='modfrom' type='text' value='<?php echo date("Y-m-d",$logdate); ?>' onchange='statusLogReloadFun("");' /> 
        <select id="modtime" style="border:1px solid #efefef;" onchange='statusLogReloadFun("");'>
        <?php 
            foreach (range(0,23) as $hour) {
                $selected = ($hour == $logtime) ? "selected" : "";
                echo "<option value='$hour' $selected>".str_pad($hour, 2, "0", STR_PAD_LEFT) . ":00</option>";
            }
        ?></select>
        To <input size=10 id='modto' name='modto' type='text' value='<?php echo date("Y-m-d",$logdateto); ?>' onchange='statusLogReloadFun("");' />
        <select id="modtimeto" style="border:1px solid #efefef;" onchange='statusLogReloadFun("");'>
        <?php 
            foreach (range(0,23) as $hour) {
                $selected = ($hour == $logtimeto) ? "selected" : "";
                echo "<option value='$hour' $selected>".str_pad($hour, 2, "0", STR_PAD_LEFT) . ":00</option>";
            }
        ?></select>&nbsp;&nbsp;
    Campaign 
    <select id="campaign" style="border:1px solid #efefef;" onchange='statusLogReloadFun("");'>
        <?php  foreach($oclientlst as $c){$s="";if($c==$campaign)$s='selected';echo "<option value='$c' $s>$c</option>";} ?>
    </select>
</div>
<div style="clear:both"></div>
<hr style="margin:5px;">
<div style="overflow: auto; margin-top: 10px;">
    <table id=logtable class='footable table table-striped table-bordered table-white table-primary footable-loaded' style='font-size:12px; margin:0; border:1px solid #BBB;'>
        <thead><?php echo $outhead; ?></thead>
        <?php echo $outstr; ?>
    </table>
</div>
</div>
<script>
$(document).ready(function()
{
  $('#modfrom').datepicker({dateFormat: 'yy-mm-dd',inline: true,changeYear: true,selectOtherMonths: true,yearRange: '<?php echo (date('Y')-70).":".(date('Y')+5); ?>'});
  $('#modto').datepicker({dateFormat: 'yy-mm-dd',inline: true,changeYear: true,selectOtherMonths: true,yearRange: '<?php echo (date('Y')-70).":".(date('Y')+5); ?>'});
});
function dataString()
{
    return 'logdate='+$("#modfrom").val()+'&logtime='+$("#modtime").val()+'&logdateto='+$("#modto").val()+'&logtimeto='+$("#modtimeto").val()+'&campaign='+$("#campaign").val();
}
function statusLogReloadFun(sortby)
{
    var sortstr='';if(sortby!="")sortstr="&sort="+sortby
    var searchStr = dataString();
    doAjax('dialer/datadump?'+searchStr+sortstr,'','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');
}
function dlAgentlogXls()
{
    var searchStr = dataString();
    window.open('dialer/datadump?dllogxls=1&'+searchStr);
    return false;
}
</script>