Commit 86a4641e authored by alissonalbuquerque's avatar alissonalbuquerque
Browse files

feat(import/update_user): import file to update users from campus GARANHUNS

parent a23c72a9
<?php
namespace App\Http\Controllers;
use App\Models\Campus;
use App\Models\User;
use Illuminate\Http\Request;
class ImportUserController extends Controller
{
public function actionIndex() {
return view('imports.update_user');
}
public function actionStore(Request $request)
{
$file = $request->file('uploadFile');
$handle = fopen($file, 'r');
$lines = [];
if($handle)
{
while(($data = fgetcsv($handle, 1000, ",")) !== false)
{
array_push($lines, $data);
}
}
unset($lines[0]);
$lines = array_map(function($array) {
return [$array[1], $array[2], strtolower(trim($array[7]))];
}, $lines);
$with_emails = array_filter($lines, function($array) { return $array[2] !== '-'; });
$less_emails = array_filter($lines, function($array) { return $array[2] === '-'; });
$campus_garanhuns = Campus::whereId(3)->first();
foreach($with_emails as $data)
{
$user = User::whereEmail($data[2])->first();
$user->campus_id = $campus_garanhuns->id;
if(!$user->save()) {
dd('errors');
}
}
dd($campus_garanhuns, $with_emails, $less_emails);
fclose($handle);
return redirect()->route('import_index');
}
}
...@@ -24,7 +24,7 @@ class User extends Authenticatable ...@@ -24,7 +24,7 @@ class User extends Authenticatable
* The attributes that are mass assignable. * The attributes that are mass assignable.
* @var array<int, string> * @var array<int, string>
*/ */
protected $fillable = ['name', 'email', 'password', 'status', 'curso_id', 'campus_id', 'document']; protected $fillable = ['name', 'email', 'password', 'status', 'campus_id', 'curso_id', 'document'];
/** /**
* The attributes that should be hidden for serialization. * The attributes that should be hidden for serialization.
......
<h1> Update Campus (Users) </h1>
<form action="{{route('import_store')}}" method="post" enctype="multipart/form-data">
@csrf
<input type="file" name="uploadFile" id="uploadFile">
<button type="submit">Enviar</button>
</form>
\ No newline at end of file
<?php
use App\Http\Controllers\ImportUserController;
use Illuminate\Support\Facades\Route;
Route::prefix('/import')->group(function()
{
Route::get('/index', [ImportUserController::class, 'actionIndex'])->name('import_index');
Route::post('/store', [ImportUserController::class, 'actionStore'])->name('import_store');
});
...@@ -46,6 +46,8 @@ require __DIR__ . '/dimensao/gestao.php'; ...@@ -46,6 +46,8 @@ require __DIR__ . '/dimensao/gestao.php';
require __DIR__ . '/dimensao/pesquisa.php'; require __DIR__ . '/dimensao/pesquisa.php';
require __DIR__ . '/dimensao/extensao.php'; require __DIR__ . '/dimensao/extensao.php';
require __DIR__ . '/import/update_user.php';
Route::get('/', function () { Route::get('/', function () {
return redirect()->route('login'); return redirect()->route('login');
}); });
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment