recqc.blade.php 12.5 KB
<?php 
use App\Models\User;
use App\Models\Sipid;
use App\Models\UserLog;
use App\Models\CRMCall;
use App\Models\QCFeedback;
use App\Jobs\KHRMSLib;

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

if(Input::has("viewData"))
{
	$response="";
	for($i=1;$i<=4;$i++)
	{
		$feedback_column = "feedback_".$i;
		$response.="<div class=col-md-3>";
		$response.="<div class='widget row widget-heading-simple widget-body-gray' >";
		$response.="<div class='widget-body'><div class='input-group'>";
		$response.="<div style='padding: 7px 0px;'><b>Feedback Category ".$i."</b></div>";
		$response.="<div class='input-group-btn'>".$feedback->$feedback_column."</div>";
		$response.="</div></div>";
		$response.="</div>";
		$response.="</div>";
	}
	$response.="<div style='clear:both'></div>";
	$response.="<div class=col-md-12>";
	$response.="<div style='padding: 7px 0px;'><b>Remarks</b></div>";
	$response.=$feedback->remark;
	$response.="</div>";
	echo $response;
	exit;
}

if(Input::has("qcstage"))
{
?>
<div class="col-table-row">
	<div class="col-app col-unscrollable">
		<div class="col-app">
			<div class="row-app">
<?php
$stage=Input::get("qcstage");
$qcyear=Input::get("qcyearselect",date("Y"));
$qcmonth=Input::get("qcmonthselect",date("m"));
$logdate="$qcyear-$qcmonth";

if($stage=="list")
{
	$head_title = 'QC List';
	$alist=DB::table('crmcalls_archive')
		->leftjoin('qc_feedback', 'crmcalls_archive.id', '=', 'qc_feedback.crmcall_id')
		->select(array("*","crmcalls_archive.id"))
		->where('crmcalls_archive.created_at','>=',$logdate."-01 00:00:00")->where('crmcalls_archive.created_at','<=',$logdate."-31 23:59:59")->where('crmcalls_archive.state','=','Hangup')
		->orderBy(DB::raw('RAND()'))->take(10)->get();
}elseif($stage=="dashboard") {
	$head_title = 'QC Dashboard';
	$alist=DB::table('crmcalls_archive')
		->leftjoin('qc_feedback', 'crmcalls_archive.id', '=', 'qc_feedback.crmcall_id')
		->select(array("*","crmcalls_archive.id"))
		->where('crmcalls_archive.created_at','>=',$logdate."-01 00:00:00")->where('crmcalls_archive.created_at','<=',$logdate."-31 23:59:59")->where('crmcalls_archive.state','=','Hangup')->whereNotNull('crmcall_id')
		->orderBy('crmcalls_archive.created_at','DESC')->take(50)->get();
}
?>
				<div class="col-md-12">
					<div class="col-separator">
						<div class="heading-buttons border-bottom innerR half">
							<span class=pull-right>
								<a href="#" class="btn btn-sm btn-inverse pull-right" onclick='reloadQCdata();return false;'><i class="fa fa-user fa-refresh"></i> Reload</a>
								<select id=qcyearselect class='form-control pull-right' style='width:100px'>
									<option value="{!!$qcyear!!}">{!!$qcyear!!}</option>
								</select>
								<select id=qcmonthselect class='form-control pull-right' style='width:100px'>
									<option value="{!!$qcmonth!!}">{!!$qcmonth!!}</option>
								</select>
							</span>
							<h4 class="innerTB margin-bottom-none"><?php echo $head_title; ?></h4>
							<div class="clearfix"></div>
						</div>
						<div class=innerAll>
							<div style='overflow:auto'>
<?php
$outstr=""; $i = 1;
foreach($alist as $aline)
{
	$clientcode="";
	if($aline->crm_id>0)
	{
		$user=$wakka->getPerson($aline->crm_id);
		$clientcode=$user["peopledata"]["clientcode"];
	}
	$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();

	$recstr='';
	//if($dashboarduser->moduleACL("Admin",false,false,true))
	// {
		if(isset($tpostdata['recFolder']))$recstr="<a href=# onclick='getCallRec(".$aline->id.");return false;' title='Size : ".round($aline->recsize/1024,0)." KB'><i class='fa fa-play-circle'></i> &nbsp;</a> <a href='dialer/playrecfile?calllog=$aline->id' title=''><i class='fa fa-download'></i> &nbsp;</a><span id='recspan_".$aline->id."'</span>";
	// }

	if(is_null($aline->crmcall_id)) {
		$feedback_str = "<a onclick='QCFeedback(".$aline->id.");return false;' href='#'><i class='fa fa-comments'></i></a>";
	}else{
		$avg_feedback = ($aline->feedback_1+$aline->feedback_1+$aline->feedback_1+$aline->feedback_1)/4;
		$feedback_str = "<a onclick='QCFeedback(".$aline->id.", \"view\");return false;' href='#'>".$avg_feedback."</a>";
	}

	$outstr.="<tr>
			<td>".$i."</td>
			<td title='$fulldate'>".explode(" ",$fulldate)[1]."</td>
			<td>$length</td>
			<td>".$dispname."</td>    
			<td title='".str_replace("'"," ",$aline->userremarks)."'>".$aline->userstatus."</td>
			<td>".$aline->usersubstatus."</td>
			<td><a href=# class='' onclick='dialerQuickOpen(\"$aline->crm_id\",\"$aline->number\",\"Progressive\",\"\",0);return false;'>".$aline->number."</a></td>
			<td>".$aline->client."</td>
			<td>".$aline->state."</td>
			<td>".$aline->hsource."</td>
			<td>".$aline->type."</td>
			<td>".$aline->status."</td>
			<td>".$aline->statuscode."</td>
			<td>".$aline->substatus."</td>
			<td>".$aline->dialline_id."</td>
			<td>".$aline->did."</td>
			<td>".round($aline->waitSec/1000,2)."</td>
			<td>".round($aline->callSec/1000,2)."</td>
			<td>".round($talktime/1000,2)."</td>
			<td>".round($aline->dispoSec/1000,2)."</td>
			<td>$recstr</td>
			<td><span id='qcresults".$aline->id."'>".$feedback_str."</span></td>
		</tr>";
	$i++;
}
?>
								<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>Start</th>
											<th onclick='callLogReloadFun("");return false;'>Length</th>
											<th>User</th>    
											<th>Dispo</th>
											<th>SubDispo</th>
											<th style='width:120px'>Number</th>
											<th>Campaign</th>
											<th>State</th>
											<th>HSource</th>
											<th>Type</th>
											<th>Status</th>
											<th>StatusCode</th>
											<th>StatusStr</th>
											<th>DialLine</th>
											<th>DID</th>
											<th>WaitSec</th>
											<th>CallSec</th>
											<th>TalkSec</th>
											<th>DispoSec</th>
											<th>Recording</th>
											<th>Feedback</th>
										</tr>
									</thead>
									<?php echo $outstr; ?>
								</table>
							</div>
						</div>
						<div class="clearfix"></div>
						<div class="col-separator-h"></div>
					</div>
				</div>
			</div>
		</div>
	</div>
</div>

<?php 
	return;
}
?>

<div class="layout-app"><!-- row-app -->
<div class="row row-app">

  <!-- col -->
  <div class="col-md-2 col-sm-3">

    <!-- col-separator -->
    <div class="col-separator col-separator-first box col-unscrollable">

      <!-- col-table -->
      <div class="col-table" style='padding-left: 13px;padding-right: 13px;'>

        <h4 class="innerAll margin-none border-bottom" style='background: #fff;'>Dialer Reports</h4>

        <!-- col-table-row -->
        <div class="col-table-row">

          <!-- col-app -->
          <div class="col-app col-unscrollable">

            <!-- col-app -->
            <div class="col-app">

              <ul class="list-group list-group-1 margin-none borders-none" style='padding-right: 26px;'>

  <li class="list-group-item">
    <a href="#" onclick="doAjax('dialer/recqc?qcstage=dashboard','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');return false"><i class="fa fa-circle-o"></i> Dashboard</a>
  </li>
  <li class="list-group-item">
    <a href="#" onclick="doAjax('dialer/recqc?qcstage=list','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');return false"><i class="fa fa-circle-o"></i> QC List</a>
  </li>
              </ul>


            </div>
            <!-- // END col-app -->

          </div>
          <!-- // END col-app -->

        </div>
        <!-- // END col-table-row -->

      </div>
      <!-- // END col-table -->

    </div>
    <!-- // END col-separator.box -->

  </div>
  <!-- // END col -->

  <!-- col -->
  <div class="col-md-10 col-sm-9" style='border-right:13px solid #eaeaea'>

    <!-- col-separator.box -->
    <div class="col-separator col-unscrollable box">
      
      <!-- col-table -->
      <div class="col-table">
        
<!--        <h4 class="innerAll margin-none border-bottom">My Sessions</h4> -->

        <!-- col-table-row -->
        <div class="col-table-row" style='background: #fff;'>

          <!-- col-app -->
          <div class="col-app col-unscrollable">

            <!-- col-app -->
            <div class="col-app" style='position:relative'>

              <div class="" id=rightmainreportdiv>
<script>
doAjax('dialer/recqc?qcstage=list','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');
</script>
              </div>

            </div>
            <!-- // END col-app -->

          </div>
          <!-- // END col-app.col-unscrollable -->

        </div>
        <!-- // END col-table-row -->
      
      </div>
      <!-- // END col-table -->
      
    </div>
    <!-- // END col-separator.box -->

  </div>
  <!-- // END col -->

</div>
<!-- // END row-app -->
    </div>

<div class="modal" id="qc_feedback_modal">
  <div class="modal-dialog" style='width:95%;'>
  <div class="modal-content">
    <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
    <h4 class="modal-title">Feedback</h4>
    </div>
    <div class="modal-body" id=qc_feedback_modald_body></div>    
  </div>
  </div>
</div>
<script type="text/javascript">
function QCFeedback(calllogid, viewData)
{
  createQCRecordDiv("qc_feedback_modald_body",calllogid,viewData);
  $("#qc_feedback_modal").modal('show');
  $("#qc_1_span").focus();
}

var currentqcdivid="";
function createQCRecordDiv(divid,calllogid,viewData)
{
  if(currentqcdivid!="")$("#"+currentqcdivid).html("");
  currentqcdivid=divid;

  if(viewData == 'view') {
    var qcStr='';
    qcStr+='&calllogid='+calllogid+'&viewData='+viewData;
    doAjax("dialer/recqcfeedback", "qcStr="+qcStr, divid,'','','GET');
  }
  else {
    var qcRecordDivHTMLLI="0,1,2,3,4,5".split(",");

    qcRecordPreselectList=["","3","3","3","3"];
    
    var qcRecordDivHTML="";
    for(i=1;i<=4;i++)
    {
      qcRecordDivHTML+="<div class=col-md-3>";
      qcRecordDivHTML+="<div class='widget row widget-heading-simple widget-body-gray' >";
      qcRecordDivHTML+="<div class='widget-body'><div class='input-group'>";
      qcRecordDivHTML+="<div style='padding: 7px 0px;'>Feedback Category "+i+"</div>";
      qcRecordDivHTML+="<div class='input-group-btn'>";
      qcRecordDivHTML+="<div class='dropdown'>";
      qcRecordDivHTML+="<button class='btn btn-default dropdown-toggle rounded' data-toggle='dropdown'><span id=qc_"+i+"_span>"+qcRecordPreselectList[i]+"</span> <span class='caret'></span></button>";
      qcRecordDivHTML+="<ul class='dropdown-menu pull-left' style='min-width:45px;'>";

      for(j=0;j<qcRecordDivHTMLLI.length;j++)qcRecordDivHTML+="<li><a href='#' onclick='$(\"#qc_"+i+"_span\").html($(this).html());return false;'>"+qcRecordDivHTMLLI[j]+"</a></li>";

      qcRecordDivHTML+="</ul>";
      qcRecordDivHTML+="</div>";
      qcRecordDivHTML+="</div>";
      qcRecordDivHTML+="</div></div>";
      qcRecordDivHTML+="</div>";
      qcRecordDivHTML+="</div>";
    }
    qcRecordDivHTML+="<div style='clear:both'></div>";
    qcRecordDivHTML+="<div class=col-md-12>";
    qcRecordDivHTML+="<div style='padding: 7px 0px;'>Remarks</div>";
    qcRecordDivHTML+="<textarea class='form-control' id='qc_remark'/>";
    qcRecordDivHTML+="</div>";
    qcRecordDivHTML+="<div style='clear:both'></div>";
    qcRecordDivHTML+="<div class=col-md-12>";
    qcRecordDivHTML+="<input type='submit' onclick='saveFeedback("+calllogid+");' style='margin-top:10px;' value='Submit' class='btn btn-green_outline'>";
    qcRecordDivHTML+="</div>";
    //qcRecordDivHTML+="<div id=qcresults></div>";
  }
  
  $("#"+divid).html(qcRecordDivHTML);
}

function saveFeedback(calllogid)
{
	var qcStr='';
	qcStr+='&calllogid='+calllogid;
	qcStr+='&qc_1_span='+$("#qc_1_span").html();
	qcStr+='&qc_2_span='+$("#qc_2_span").html();
	qcStr+='&qc_3_span='+$("#qc_3_span").html();
	qcStr+='&qc_4_span='+$("#qc_4_span").html();
	qcStr+='&qc_remark='+$("#qc_remark").val();

	doAjax("dialer/recqcfeedback", "qcStr="+qcStr, "qcresults"+calllogid,'','','GET',function(retstr){
		simpleNotification("success","topright","Feedback saved successfully!");
			$('#qc_feedback_modal').modal('hide');
	});
}
</script>