DataController.php 8.57 KB
<?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)
	{
		//
	}
}