CreportEight.php 6.58 KB
<?php namespace App\Console\Commands;

use Illuminate\Console\Command;
//use Mail;
use DB;
use Config;

use App\Models\User;
use App\Models\Accesslog;

use App\Models\CRMCall;
use Schema;
use PDO;

use Illuminate\Database\Schema\Blueprint;

class CreportEight extends Command {

	/**
	 * The console command name.
	 *
	 * @var string
	 */
	protected $signature = 'CreportEight';

	/**
	 * The console command description.
	 *
	 * @var string
	 */
	protected $description = 'App Main Daily Task for CreportEight';

	/**
	 * Execute the console command.
	 *
	 * @return mixed
	 */
	public function handle()
	{
		$nowts=time();
		$date=date('F_Y');
		$dayone=date('Y-m-');
		echo "\n".date('Y-m-d H:i:s')."\n";		
		$firstdate=$dayone."01";
	
		$logdate=strtotime('0 day');

		$tcol=0;$fieldsarr=array();$extrahdrarr=array();
		$central_ip=env('central_ip');
		$server_ip=env('app_ip');
		$calllog_report = "calllog_report_".$date;
		$conn = array(
			'driver'    => 'mysql',
			'host'      => $central_ip,
			'database'  => env('DB_DATABASE', 'kstych_flexydial'),
			'username'  => env('DB_USERNAME', 'root'),
			'password'  => env('DB_PASSWORD', ''),
			'charset'   => 'utf8',
			'collation' => 'utf8_unicode_ci',
			'prefix'    => '',
			'options'   => array(
				PDO::ATTR_TIMEOUT => 5,
				),
			);
		Config::set("database.connections.conn", $conn);

		DB::connection("conn")->getDatabaseName();

		$serverclist=DB::connection("conn")->select(DB::raw("select id from server_details where server_ip='$server_ip'"));     
		$server_id=$serverclist[0]->id;
		if($server_id<10){
			$server_id="0".$server_id;
		}


		$maxid=DB::connection("conn")->select(DB::raw("SELECT max(crmcall_id) as maxid from $calllog_report where server='$server_id'"));

		$maxids=$maxid[0]->maxid;

			//$alist=DB::select(DB::raw("SELECT * from crmcalls where id>'$maxids' and created_at<'".date("Y-m-d H:i:s",$logdate-(60*60))."'"));
		$alist=DB::select(DB::raw("SELECT * from crmcalls where id>'$maxids' and created_at>='$firstdate'"));
		$countnumber=count($alist);
		$finalnumber=$countnumber/50;
		$finalnumber=floor($finalnumber);
		$datainser='';
		$iii=1;
		$kkk=1;
		$shortinsert="";
		$userarr=array();
		foreach($alist as $aline)
		{
			$clientcode="";$currentstatus="";$legalstatus="";$record_id="";
			if($aline->crm_id>0)
			{
			$user=DB::select(DB::raw("select id,clientcode,currentstatus,legalstatus from records where id='".$aline->crm_id."' limit 1;"));
				if(isset($user[0]))
				{
					$record_id=$user[0]->id;
					$clientcode=$user[0]->clientcode;
					$currentstatus=$user[0]->currentstatus;
					$legalstatus=$user[0]->legalstatus;
				}
			}
			$tpostdata=json_decode($aline->data,true);
			$fulldate=date("Y-m-d H:i:s",strtotime($aline->created_at)+330*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;
			$globalid=$server_id.$record_id;
			$server = $server_id;
			$record_id = $record_id;
			$crmcall_id = $aline->id;
			$globalid = $globalid;
			$created_at = $aline->created_at;
			$start = $fulldate;
			$length = $length;
			$user = $username;
			$name = $dispname;
			$dispo = $aline->userstatus;
			$subdispo = $aline->usersubstatus;
			$callback = $aline->usercallback;
			$number = $aline->number;
			$clientcode = $clientcode;
			$currentstatus = $currentstatus;
			$legalstatus = $legalstatus;
			$client = $aline->client;
			$department = $aline->department;
			$state = $aline->state;
			$hsource = $aline->hsource;
			$type = $aline->type;
			$status = $aline->status;
			$statuscode = $aline->statuscode;
			$statusstr = $aline->substatus;
			$dialline = $aline->dialline_id;
			$did = $aline->did;
			$waitsec = round($aline->waitSec/1000,2);
			$callsec = round($aline->callSec/1000,2);
			$talksec = round($talktime/1000,2);
			$disposec = round($aline->dispoSec/1000,2);
			$remarks = str_replace("'","",$aline->userremarks);
			$userdata = $aline->userdata;
			$attempt = $aline->attempt;
			$priority = $aline->priority;
			$question = $aline->question;



			$shortinsert.="('$server', '$record_id', '$crmcall_id', '$globalid','$created_at', '$start', '$length', '$user', '$name', '$dispo', '$subdispo', '$callback', '$number', '$clientcode', '$currentstatus', '$legalstatus', '$client', '$department', '$state', '$hsource', '$type', '$status', '$statuscode', '$statusstr', '$dialline', '$did', '$waitsec', '$callsec', '$talksec', '$disposec', '$remarks', '$userdata', '$attempt', '$priority', '$question'),";
			
				if($kkk<=$finalnumber){
				if($iii%50==0){

					$shortinsert=substr($shortinsert,0,-1);
					DB::connection("conn")->insert(DB::raw("INSERT INTO $calllog_report (`server`, `record_id`, `crmcall_id`, `globalid`, `created_at`, `start`, `length`, `user`, `name`, `dispo`, `subdispo`, `callback`, `number`, `clientcode`, `currentstatus`, `legalstatus`, `client`, `department`, `state`, `hsource`, `type`, `status`, `statuscode`, `statusstr`, `dialline`, `did`, `waitsec`, `callsec`, `talksec`, `disposec`, `remarks`, `userdata`, `attempt`, `priority`, `question`) VALUES $shortinsert"));
					$kkk++;
				}
				}else{
				DB::connection("conn")->insert(DB::raw("INSERT INTO $calllog_report set server='$server', record_id='$record_id', crmcall_id='$crmcall_id', globalid='$globalid', created_at='$created_at', start='$start', length='$length', user='$user', name='$name', dispo='$dispo', subdispo='$subdispo', callback='$callback', number='$number', clientcode='$clientcode', currentstatus='$currentstatus', legalstatus='$legalstatus', client='$client', department='$department', state='$state', hsource='$hsource', type='$type', status='$status', statuscode='$statuscode', statusstr='$statusstr', dialline='$dialline', did='$did', waitsec='$waitsec', callsec='$callsec', talksec='$talksec', disposec='$disposec', remarks='$remarks', userdata='$userdata', attempt='$attempt', priority='$priority', question='$question'"));

			}
			if($iii%50==0){
			$shortinsert="";
			}
			$iii++;

			//$update=DB::connection("conn")->select(DB::raw("SELECT crmcall_id as updateid from $calllog_report where server='$server_id' and `state` IN ('DialBegin','DialEnd')"));
//echo $update;
			DB::update(DB::raw("UPDATE crmcalls set call_flag='C' where id=$crmcall_id"));
		}
			echo "\n".date('Y-m-d H:i:s')."\n";
                        DB::connection("conn")->disconnect();
	}

}