<?php
namespace App\Http\Controllers;
use App\Imports\DataPenggunaImport;
use App\Models\Kabupaten;
use Illuminate\Http\Request;
use App\User;
use Illuminate\Support\Facades\Auth;
use App\Models\UserLog;
use Exception;
use Illuminate\Support\Facades\Session;
use Maatwebsite\Excel\Facades\Excel;
class UserController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$title = "User";
$link = "user";
$s = '';
$page = 1;
if(isset($_GET['s'])){
$s = $_GET['s'];
}
if(isset($_GET['page'])){
$page = $_GET['page'];
}
$datas = User::where('name','like','%'.$s.'%')->orWhere('email','like','%'.$s.'%')->orderBy('created_at','DESC')->paginate(10);
$datas->appends($_GET);
$no = 1*$page*10-10+1;
// return view('user.index',compact('title','user','parent','link','datas','no'));
return view('user.index',compact('title','link','datas','no'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$title = "Tambah Data User";
$link = "user";
$parent = "User";
$kabupatens = Kabupaten::get();
// return view('user.create',compact('title','user','parent','link'));
return view('user.create',compact('title','parent','link', 'kabupatens'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$rules = [
'name' => 'required',
'email' => 'required|unique:users',
'no_telepon' => 'required',
'role' => 'required',
'password' => 'required',
];
if($request->role == 0) {
$rules['kabupaten_id'] = 'required';
}
$request->validate($rules);
try {
$data = new User;
$data->name = $request->name;
$data->email = $request->email;
$data->no_telepon = $request->no_telepon;
$data->role = $request->role;
$data->password = password_hash($request->password,PASSWORD_DEFAULT);
$data->api_token = str_random(100);
$data->kabupaten_id = $request->role == 0 ? $request->kabupaten_id : null;
$data->save();
$msg = 'Berhasil menambah data user '.$data->name;
UserLog::create(['user_id'=>Auth::user()->id,'keterangan'=>$msg]);
return redirect('user')->with('success_message', $msg);
} catch (Exception $e) {
return redirect('user')->with('error_message', 'Gagal Menghapus Data. <br> Error : '.$e->errorInfo[2]);
}
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$title = "Ubah Data User";
$parent = "User";
$data = User::find($id);
$link = "user";
$kabupatens = Kabupaten::get();
return view('user.edit',compact('title','parent','link','data', 'kabupatens'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$data = User::find($id);
$data->name = $request->name;
$data->email = $request->email;
$data->no_telepon = $request->no_telepon;
$data->role = $request->role;
if($request->password_baru != null){
$data->password = password_hash($request->password_baru,PASSWORD_DEFAULT);
}
$data->kabupaten_id = $request->role == 0 ? $request->kabupaten_id : null;
$data->save();
$msg = 'Berhasil mengubah data user '.$data->name;
UserLog::create(['user_id'=>Auth::user()->id,'keterangan'=>$msg]);
return redirect('user')->with('success_message', $msg);
}
public function importView()
{
$title = "Import Data User";
$link = "user";
$parent = "User";
$warnings = Session::get('alert_import',[]);
// return view('data-warga.import',compact('title','data-warga','parent','link','warnings'));
return view('user.import',compact('title','parent','link','warnings'));
}
public function import(Request $request)
{
Session::put('alert_import',[]);
Excel::import(new DataPenggunaImport,request()->file('file'));
$msg = 'Berhasil mengimport data excel dengan nama '.$request->file->getClientOriginalName();
UserLog::create(['user_id'=>Auth::user()->id,'keterangan'=>$msg]);
return redirect('user/import')->with('success_message', $msg);
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
try {
$data = User::find($id);
if(isset($data->wargas)) {
if(count($data->wargas) > 0){
return redirect('user')->with('error_message', "Data tidak bisa di hapus.masih ada warga yang menggunakan user ini");
}
}
UserLog::where('user_id',$id)->delete();
$data->delete();
$msg = 'Berhasil mengubah data user '.$data->name;
UserLog::create(['user_id'=>Auth::user()->id,'keterangan'=>$msg]);
return redirect('user')->with('success_message', $msg);
} catch (Exception $e) {
return redirect('user')->with('error_message', 'Gagal Menghapus Data');
}
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]