CreportEight.php 4.35 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();
		echo "\n".date('Y-m-d H:i:s')."\n";		
		
			$logdate=strtotime('0 day');

			$tcol=0;$fieldsarr=array();$extrahdrarr=array();
			$server_id="08";
			$calllog_report = "calllog_report_".date("d_m_Y");

			$conn = array(
				'driver'    => 'mysql',
				'host'      => '10.3.177.14',
				'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();


			$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")."' and created_at<'".date("Y-m-d H:i:s",$logdate-(60*60))."'"));		

			$userarr=array();
			foreach($alist as $aline)
			{
				$setstrarr=array();


				$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;
				$setstrarr[]="server='$server_id'";
				$setstrarr[]="record_id='$record_id'";
				$setstrarr[]="crmcall_id='$aline->id'";
				$setstrarr[]="globalid='$globalid'";
				$setstrarr[]="start='$fulldate'";
				$setstrarr[]="length='$length'";
				$setstrarr[]="user='$username'";
				$setstrarr[]="name='$dispname'";
				$setstrarr[]="dispo='$aline->userstatus'";
				$setstrarr[]="subdispo='$aline->usersubstatus'";
				$setstrarr[]="callback='$aline->usercallback'";

				$setstrarr[]="number='$aline->number'";
				$setstrarr[]="clientcode='$clientcode'";
				$setstrarr[]="currentstatus='$currentstatus'";
				$setstrarr[]="legalstatus='$legalstatus'";
				$setstrarr[]="client='$aline->client'";
				$setstrarr[]="department='$aline->department'";
				$setstrarr[]="state='$aline->state'";
				$setstrarr[]="hsource='$aline->hsource'";

				$setstrarr[]="type='$aline->type'";
				$setstrarr[]="status='$aline->status'";
				$setstrarr[]="statuscode='$aline->statuscode'";
				$setstrarr[]="statusstr='$aline->substatus'";
				$setstrarr[]="dialline='$aline->dialline_id'";
				$setstrarr[]="did='$aline->did'";
				$setstrarr[]="waitsec='".round($aline->waitSec/1000,2)."'";
				$setstrarr[]="callsec='".round($aline->callSec/1000,2)."'";
				$setstrarr[]="talksec='".round($talktime/1000,2)."'";
				$setstrarr[]="disposec='".round($aline->dispoSec/1000,2)."'";
				$setstrarr[]="remarks='".str_replace("'","",$aline->userremarks)."'";
				$setstrarr[]="userdata='$aline->userdata'";

				$setstr=implode(",",$setstrarr);
				DB::connection("conn")->insert(DB::raw("insert into ".$calllog_report." set $setstr"));
		}

	}
}