%PDF- %PDF-
Direktori : /var/www/pjc/app/Http/Controllers/ |
Current File : /var/www/pjc/app/Http/Controllers/HomeController.php |
<?php use Illuminate\Support\Facades\Response; namespace App\Http\Controllers; use DB; use App\Http\Controllers\Controller; use App\Http\Middleware\Cors; use App\Models\User; use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\Redirect; use Illuminate\Support\Facades\Input; use Illuminate\Http\Request; use App\Exports\UsersExport; use Maatwebsite\Excel\Facades\Excel; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\File; use App\Exports\Exportc; use Carbon\Carbon; class HomeController extends Controller { /* |-------------------------------------------------------------------------- | Default Home Controller |-------------------------------------------------------------------------- | | You may wish to use controllers instead of, or in addition to, Closure | based routes. That's great! Here is an example controller method to | get you started. To route to this controller, just add the route: | | Route::get('/', 'HomeController@showWelcome'); | */ public function showWelcome() { return view('hello'); } public function checkFail() { $accountFail = DB::table('accounts_cstm') ->select('id_c') ->where('stato_c',3) ->get(); foreach($accountFail as $item) { $rowScadenze = DB::table('tsi_scadenziario_accounts_c') ->select('id_c','cliente_c') ->join('tsi_scadenziario_cstm','id_c','=','tsi_scadenziario_accountstsi_scadenziario_idb') ->where('tsi_scadenziario_accountsaccounts_ida',$item->id_c) ->get(); foreach($rowScadenze as $value) { DB::table('tsi_scadenziario_cstm') ->where('id_c',$value->id_c) ->update(['statocliente_c' => 3]); $ok[]=$value->id_c; } } $accountFail = DB::table('accounts_cstm') ->select('id_c') ->where('stato_c',2) ->get(); foreach($accountFail as $item) { $rowScadenze = DB::table('tsi_scadenziario_accounts_c') ->select('id_c','cliente_c') ->join('tsi_scadenziario_cstm','id_c','=','tsi_scadenziario_accountstsi_scadenziario_idb') ->where('tsi_scadenziario_accountsaccounts_ida',$item->id_c) ->get(); foreach($rowScadenze as $value) { DB::table('tsi_scadenziario_cstm') ->where('id_c',$value->id_c) ->update(['statocliente_c' => 2]); $ok[]=$value->id_c; } } $accountFail = DB::table('accounts_cstm') ->select('id_c') ->where('stato_c',1) ->get(); foreach($accountFail as $item) { $rowScadenze = DB::table('tsi_scadenziario_accounts_c') ->select('id_c','cliente_c') ->join('tsi_scadenziario_cstm','id_c','=','tsi_scadenziario_accountstsi_scadenziario_idb') ->where('tsi_scadenziario_accountsaccounts_ida',$item->id_c) ->get(); foreach($rowScadenze as $value) { DB::table('tsi_scadenziario_cstm') ->where('id_c',$value->id_c) ->update(['statocliente_c' => 1]); $ok[]=$value->id_c; } } return "righe modificate: ".count($ok)."\n"; } public function exportScadenziario(Request $request) { if ($request->post()) { if($request->inizio) { return Excel::download(new UsersExport($request->inizio,$request->fine,$request->cliente), 'scadenziario.xlsx'); } else { return Excel::download(new UsersExport('0','0',$request->cliente), 'scadenziario.xlsx'); } } else { $scad = \App\Scadenziario::select('cliente','idCliente')->distinct()->get(); return view('export')->withScad($scad); } } public function reportCorsi() { //$directory = Storage::Directories('public/learn/'); $directory = Storage::disk('big')->directories('/'); foreach ($directory as $item) { if( ( $item != "static") || ("learn")) { $subDirectory = Storage::disk('big')->Directories($item); $dati = explode('/',$subDirectory[0]); $prova = Storage::disk('big')->files($subDirectory[0]); if(isset($prova[0])) { $time = Storage::disk('big')->lastModified($prova[0]); $dataFile = date('d/m/Y', $time); $file = json_decode(file_get_contents(storage_path()."/bigblue/".$prova[0]), true); $session = $item; $token = explode('/',$subDirectory[0])[1]; //$session = $dati[2]; //$token = $dati[3]; $link = "https://virtualclass.tsisrl.net/learning-analytics-dashboard/?meeting=".$session."&report=".$token; $datiCorso[]=["data" => $dataFile, "link" => $link, "corso" => $file['name'], "session" => $session, "token" => $token]; } } } return view('corsi')->withData($datiCorso); } public function getExtid($id) { $directory = Storage::Directories('public/learn/'.$id); $prova = Storage::files($directory[0]); $file = json_decode(file_get_contents(storage_path()."/app/".$prova[0]), true); return $file['extId']; } public function exportCorsi($id,$token) { $file = json_decode(file_get_contents(storage_path()."/app/public/learn/learning-dashboard/".$id."/".$token."/learning_dashboard_data.json"), true); //$files = Storage::files("/app/public/learn/".$id."/".$token."/learning_dashboard_data.json"); //return $files; //$time = Storage::lastModified($files); //$dataFile = date('d/m/Y', $time); //return dd($file); $subDirectory = Storage::Directories("public/learn/".$id."/"); $files = Storage::files($subDirectory[0]); $time = Storage::lastModified($files[0]); $dataFile = date('d/m/Y', $time); $endpoint = "https://www.tsisrlformazione.it/getcourse.php?id=".explode('-',$file['extId'])[0]; $client = new \GuzzleHttp\Client(); $response = $client->request('GET', $endpoint); $id = $response->getBody(); $nomeCorso = $file['name']; foreach($file['users'] as $item) { $nome = $item['name']; foreach($item['intIds'] as $entrate) $dataP[]=[$nome,Carbon::createFromTimestamp(substr($entrate['registeredOn'],0, 10))->setTimezone('Europe/Rome')->toTimeString(), Carbon::createFromTimestamp(substr($entrate['leftOn'],0, 10))->setTimezone('Europe/Rome')->toTimeString(), $item['totalOfMessages'],$item['isModerator']]; $nome = $nomeCorso; $dataTime = $dataFile; } return view('corsipdf')->withData($dataP)->withNome($nome)->withTime($dataFile)->withCodice($id); $export = new Exportc($dataP); //return Excel::download($export, $id.'.xlsx'); return Excel::create( $id.'.xlsx', function($excel) { $excel->sheet('Corsi Export', function($sheet) { $sheet->fromArray($export ); }); })->export('xls'); } }