CreportEight.php 6.55 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');
		echo "\n".date('Y-m-d H:i:s')."\n";		
		
		$logdate=strtotime('0 day');
		$slist=DB::select(DB::raw("select * from server_details"));
                        $server_ip='';
                        $std_code='';
                        $conn='';
		$dayone=date('Y-m-');
		$firstdate=$dayone."01";
		//$calllog_report = "calllog_report_".$date;
		$calllog_report = "calllog_report_October_2018_bbbb";
		foreach($slist as $sline)
       	{
				$tcol=0;$fieldsarr=array();$extrahdrarr=array();
                        $server_ip=$sline->server_ip;
                        $server_id=$sline->id;
                        $std_code=$sline->std_code;
			$conn = array(
				'driver'    => 'mysql',
				'host'      => $server_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);

			if(DB::connection("conn")->getDatabaseName())
			{
				echo ",".$server_ip;
				if($server_id<10){
					$server_id="0".$server_id;
				}


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

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

				$alist=DB::connection("conn")->select(DB::raw("SELECT * from crmcalls_archive where id>'$maxids' and created_at>='2018-10-01' and created_at<'2018-11-01'"));
				$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::connection("conn")->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::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::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++;
				}
				DB::connection("conn")->disconnect();
				echo "\n".date('Y-m-d H:i:s')."\n";

			}
		}
			
	}

}