<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\karyawan;
use Validator;
use Storage;
use App\Http\Requests\KaryawanRequest;
class KaryawanController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//$karyawan_list = Karyawan::all()->sortBy('id');//sortir data
$karyawan_list=Karyawan::orderBy('id','desc')
->where('deleted','0')
->paginate(3);
$jumlah_karyawan = $karyawan_list->count();//tampil jml data
return view('chap8.karyawan', compact('halaman','karyawan_list','jumlah_karyawan'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('chap8.create', compact('halaman'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function uploadFoto(KaryawanRequest $request){
$foto = $request->file('foto');
$ext = $foto->getClientOriginalExtension();
if($request->file('foto')->isValid()){
$namaFoto = date('YmdHis').".".$ext;
$upload_path = 'fotoupload';
$request->file('foto')->move($upload_path,$namaFoto);
return $namaFoto;
}
return false;
}
public function store(KaryawanRequest $request)
{
/*$karyawan = $request->all();
$karyawan=new \App\Karyawan;
$karyawan->nip= $request->nip;
$karyawan->nama= $request->nama;
$karyawan->tgl_lahir= $request->tgl_lahir;
$karyawan->gender= $request->gender;
$karyawan->save();
return redirect('karyawan');*/
$input=$request->all();
//upload foto
if ($request->hasFile('foto')){
$input['foto']=$this->uploadFoto($request);
}
/*$validator=Validator::make($input,[
'nip'=>'required|numeric|unique:employees,nip',
'nama'=>'required|string|max:35',
'tgl_lahir'=>'required|date',
'gender'=>'required|in:L,P',
]);
if($validator->fails()){
return redirect('karyawan/create')
->withInput()
->withErrors($validator);
}*/
//insert data
$input['deleted']= 0;
Karyawan::create($input);
return redirect('karyawan');
}
/**
* Display the specified resource.Z
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$karyawan=Karyawan::findOrFail($id);
return view('chap8.show',compact('halaman','karyawan'));
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$karyawan=Karyawan::findOrFail($id);
return view('chap8.edit', compact('karyawan'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function search(Request $request)
{
$cari = $request['cari'];
$hasil_nama = Karyawan::where('nama','like','%'.$cari.'%')->orWhere('nip','like','%'.$cari.'%')->paginate(3);
$t_nama = $hasil_nama->count();
$jumlah_karyawan = $t_nama;
$karyawan_list = $hasil_nama;
return view('chap8.karyawan',compact('halaman','karyawan_list','jumlah_karyawan'));
}
private function HapusFoto(Karyawan $karyawan)
{
$exist=Storage::disk('foto')->exists($karyawan->foto);
if (isset($karyawan->foto)&&$exists){
$deleted = Storage::disk('foto')->delete($karyawan->foto);
if ($deleted){
return true;
}
return false;
}
}
public function update(Karyawan $karyawan, Request $request)
{
/* $karyawan=Karyawan::findOrFail($id);
$karyawan->update($request->all());
return redirect('karyawan'); */
$input=$request->all();
$validation = Validator::make($input,['nip'=>'required|string|size:5',
'nama'=>'required|string|max:35|min:5',
'tgl_lahir'=>'required|date',
'gender'=>'required|in:L,P',
'foto'=>'sometimes|image|max:300|mimes:jpg,jpeg,bmp,png,JPG,JPEG,PNG',]);
if ($validation->passes())
{
//cek ada foto apa ga?
if ($request->hasFile('foto')) {
//hapus foto lama
$this->HapusFoto($karyawan);
$ext = $request['foto']->getClientOriginalExtension();
$namaFoto = date('YmdHis').".".$ext;
$upload_path = 'fotoupload';
$request->file('foto')->move($upload_path,$namaFoto);
$input['foto'] = $namaFoto;
}
$update = Karyawan::find($input['id']);
$update->update($input);
return redirect('karyawan');
//upload foto baru
//$input['foto']=$this->uploadFoto($request);
}
/*$validation = Validator::make($input,[
'nip'=>'required|string|size:5|unique:employees,nip',
'nama'=>'required|string|max:35',
'tgl_lahir'=>'required|date',
'gender'=>'required|in:L,P',
]);
if($validation->passes())
{
$karyawan = Karyawan::find($id);*/
//$karyawan->update($input);
//return redirect('karyawan');
/*}
return back()
->withInput()
->withErrors($validation);*/
return back()->withInput()->withErrors($validation);
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy(Karyawan $karyawan)
{
//$karyawan=Karyawan::findOrFail($id);
//$this->HapusFoto($karyawan);
$user = Karyawan::find($karyawan->id);
$user->delete();
return redirect('karyawan');
}
/*public function search(Request $request)
{
$cari = $request->get('search');
$karyawan_list = Karyawan::where('nama','LIKE','%'.$cari.'%')-> orWhere ('nip','LIKE','%'.$cari.'%')->paginate(1);
$jumlah_karyawan = $karyawan_list->count();
return view('chap8.karyawan', compact('halaman','karyawan_list','jumlah_karyawan'));
}*/
}