/**
  * Execute the command.
  *
  * @return void
  */
 public function handle()
 {
     $companies = Company::all();
     $parameter = array();
     $report_positions = array();
     foreach ($companies as $company) {
         $parameter[$company->id] = array();
         //Accounts
         $accounts = $company->Accounts->count();
         $accounts_no_vehicle = $company->Accounts()->doesntHave('Vehicles')->count();
         $accounts_with_vehicle = $accounts - $accounts_no_vehicle;
         $parameter[$company->id]['Accounts'] = array($accounts, $accounts_with_vehicle, $accounts_no_vehicle);
         //Vehicles
         $vehicles = $company->Vehicles->count();
         $vehicles_with_device = $company->Vehicles()->has('Device')->count();
         $vehicles_no_device = $vehicles - $vehicles_with_device;
         $parameter[$company->id]['Vehicles'] = array($vehicles, $vehicles_with_device, $vehicles_no_device);
         //Devices
         $devices = $company->Devices()->count();
         $devices_no_vehicle = $devices - $vehicles_with_device;
         $parameter[$company->id]['Devices'] = array($devices, $vehicles_with_device, $devices_no_vehicle);
         //Positions
         $now = new Carbon();
         $now->subDays(5);
         $vehicles = $company->Vehicles()->has('Device')->get();
         $positions = array();
         foreach ($vehicles as $vehicle) {
             $position = $vehicle->Positions()->orderBy('memory_index', 'desc')->first();
             if ($position) {
                 if ($position->date < $now) {
                     $positions[] = (object) array('name' => $vehicle->Account->name, 'serial' => $position->serial, 'plate' => $vehicle->plate, 'date' => $position->date, 'obs' => 'Veículo não reportando há pelo menos 5 dias');
                 }
             } else {
                 $positions[] = (object) array('name' => $vehicle->Account->name, 'serial' => $vehicle->Device->serial, 'plate' => $vehicle->plate, 'date' => null, 'obs' => 'Veículo não possui registros');
             }
         }
         usort($positions, function ($a, $b) {
             return $a->date > $b->date;
         });
         $report_positions[$company->id] = $positions;
         $no_positions = count($positions);
         $positions_last_week = $vehicles_with_device - $no_positions;
         $parameter[$company->id]['Positions'] = array($vehicles_with_device, $positions_last_week, $no_positions);
     }
     Storage::put('notreporting.dat', serialize($report_positions));
     Storage::put('dashboard.dat', serialize($parameter));
 }
 public function audit($id)
 {
     $company = Company::findOrFail($id);
     $logs = $company->logs;
     $audit = array();
     $labels = array('name' => 'Nome', 'cnpj' => 'CNPJ', 'insc' => 'Inscrição Estadual', 'phone1' => 'Telefone', 'phone2' => 'Telefone', 'email' => 'E-mail', 'address' => 'Endereço', 'number' => 'Número', 'comp' => 'Complemento', 'quarter' => 'Bairro', 'city' => 'Cidade', 'state' => 'Estado', 'country' => 'País', 'postalcode' => 'CEP');
     if ($logs) {
         foreach ($logs as $log) {
             foreach ($log->new_value as $key => $value) {
                 $audit[] = array('label' => $labels[$key], 'old' => testVal($log->old_value, $key) ? $log->old_value[$key] : '', 'new' => testVal($log->new_value, $key) ? $log->new_value[$key] : '', 'user' => $log->user->username, 'date' => date('d/m/Y H:i:s', strtotime($log->updated_at)));
             }
         }
     }
     $grid = \DataGrid::source($audit);
     $grid->attributes(array("class" => "table table-striped .table-condensed"));
     $grid->add('label', 'Campo');
     $grid->add('old', 'Valor Anterior');
     $grid->add('new', 'Novo Valor');
     $grid->add('user', 'Alterado por');
     $grid->add('date', 'Data/Hora da Alteração');
     $grid->paginate(10);
     return view('layouts.audit', compact('grid'));
 }
 public function getMassDevices(Request $request)
 {
     //dd($request->all());
     //dd($request->session()->all());
     $count = $request->param_count;
     $params = array();
     $values = array();
     for ($p = 0; $p < $count; $p++) {
         $par = 'PAR_' . $p;
         $val = 'VAL_' . $p;
         $params[$par] = $request->{$par};
         $values[$val] = $request->{$val};
     }
     $request->session()->put('params', $params);
     $request->session()->put('values', $values);
     $devices = config("dropdown.devices");
     $companies = Company::lists("name", "id")->all();
     return view('commands::massdevices', compact('devices', 'companies'));
 }
 public function audit($id)
 {
     $device = Device::findOrFail($id);
     $logs = $device->logs;
     //dd($logs);
     $audit = array();
     $labels = array('name' => 'Identificação', 'serial' => 'Número de Série', 'model' => 'Modelo', 'company_id' => 'Empresa', 'vehicle_id' => 'Veículo', 'description' => 'Observações');
     if ($logs) {
         foreach ($logs as $log) {
             foreach ($log->new_value as $key => $value) {
                 switch ($key) {
                     case 'model':
                         $audit[] = array('label' => $labels[$key], 'old' => testVal($log->old_value, $key) ? fieldValue("devices", $log->old_value[$key]) : '[novo]', 'new' => fieldValue("devices", $value), 'user' => $log->user->username, 'date' => date('d/m/Y H:i:s', strtotime($log->updated_at)));
                         break;
                     case 'vehicle_id':
                         $audit[] = array('label' => $labels[$key], 'old' => testVal($log->old_value, $key) ? Vehicle::find($log->old_value[$key])->plate : '[não associado]', 'new' => testVal($log->new_value, $key) ? Vehicle::find($log->new_value[$key])->plate : '[não associado]', 'user' => $log->user->username, 'date' => date('d/m/Y H:i:s', strtotime($log->updated_at)));
                         break;
                     case 'company_id':
                         $audit[] = array('label' => $labels[$key], 'old' => testVal($log->old_value, $key) ? Company::find($log->old_value[$key])->name : '[não associado]', 'new' => testVal($log->new_value, $key) ? Company::find($log->new_value[$key])->name : '[não associado]', 'user' => $log->user->username, 'date' => date('d/m/Y H:i:s', strtotime($log->updated_at)));
                         break;
                     default:
                         $audit[] = array('label' => $labels[$key], 'old' => testVal($log->old_value, $key) ? $log->old_value[$key] : '', 'new' => testVal($log->new_value, $key) ? $log->new_value[$key] : '', 'user' => $log->user->username, 'date' => date('d/m/Y H:i:s', strtotime($log->updated_at)));
                         break;
                 }
             }
         }
     }
     $grid = \DataGrid::source($audit);
     $grid->attributes(array("class" => "table table-striped .table-condensed"));
     $grid->add('label', 'Campo');
     $grid->add('old', 'Valor Anterior');
     $grid->add('new', 'Novo Valor');
     $grid->add('user', 'Usuário');
     $grid->add('date', 'Data/Hora');
     $grid->orderBy('date', 'DESC');
     $grid->paginate(10);
     return view('layouts.audit', compact('grid'));
 }
 public function audit($id)
 {
     $user = User::findOrFail($id);
     $logs = $user->logs;
     $audit = array();
     $labels = array('name' => 'Nome', 'username' => 'Nome de Usuário', 'email' => 'E-mail', 'company_id' => 'Empresa', 'role' => 'Perfil');
     if ($logs) {
         foreach ($logs as $log) {
             foreach ($log->new_value as $key => $value) {
                 switch ($key) {
                     case 'role':
                         $audit[] = array('label' => $labels[$key], 'old' => testVal($log->old_value, $key) ? fieldValue("all_roles", $log->old_value[$key]) : '', 'new' => testVal($log->old_value, $key) ? fieldValue("all_roles", $log->new_value[$key]) : '', 'user' => $log->user->username, 'date' => date('d/m/Y H:i:s', strtotime($log->updated_at)));
                         break;
                     case 'company_id':
                         $audit[] = array('label' => $labels[$key], 'old' => testVal($log->old_value, $key) ? Company::find($log->old_value[$key])->name : '[não associado]', 'new' => testVal($log->new_value, $key) ? Company::find($log->new_value[$key])->name : '[não associado]', 'user' => $log->user->username, 'date' => date('d/m/Y H:i:s', strtotime($log->updated_at)));
                         break;
                     default:
                         $audit[] = array('label' => $labels[$key], 'old' => testVal($log->old_value, $key) ? $log->old_value[$key] : '', 'new' => testVal($log->new_value, $key) ? $log->new_value[$key] : '', 'user' => $log->user->username, 'date' => date('d/m/Y H:i:s', strtotime($log->updated_at)));
                         break;
                 }
             }
         }
     }
     $grid = \DataGrid::source($audit);
     $grid->attributes(array("class" => "table table-striped .table-condensed"));
     $grid->add('label', 'Campo');
     $grid->add('old', 'Valor Anterior');
     $grid->add('new', 'Novo Valor');
     $grid->add('user', 'Alterado por');
     $grid->add('date', 'Data/Hora da Alteração');
     $grid->paginate(10);
     return view('layouts.audit', compact('grid'));
 }