<?php
namespace App\Http\Controllers;
use App\Imports\DataDPTImport;
use App\Models\Dpt;
use App\Models\Kabupaten;
use App\Models\Kecamatan;
use App\Models\Kelurahan;
use App\Models\Tp;
use App\Models\UserLog;
use Barryvdh\DomPDF\PDF;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;
use Maatwebsite\Excel\Facades\Excel;
class DptController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
if(Request('status')) {
$title = "DPT Belum Terdaftar";
$link = "dpt";
$s = '';
$page = 1;
if(isset($_GET['s'])){
$s = $_GET['s'];
}
if(isset($_GET['page'])){
$page = $_GET['page'];
}
if($s != "") {
$datas = Dpt::query()->where('nama_lengkap','like','%'.$s.'%')->orWhere('nik','like','%'.$s.'%')->orWhere('alamat','like','%'.$s.'%')->orWhereHas('tp', function($u) use($s) {
$u->orWhereHas('kelurahans',function ($q)use($s){
$q->where('nama_kelurahan','like','%'.$s.'%')->orWhereHas('kecamatan',function ($q)use($s){
$q->where('nama_kecamatan','like','%'.$s.'%')->orWhereHas('kabupatens', function ($d) use($s) {
$d->where('nama_kabupaten','like', '%'.$s.'%');
});
});
});
})->where('status', 1)->orderBy('created_at','DESC')->paginate(10);
} else {
$datas = Dpt::orderBy('created_at','DESC')->where('status', 1)->paginate(10);
}
// if(Auth::user()->role == 1){
// $datas = DataWarga::where('nama_lengkap','like','%'.$s.'%')->orWhere('nik','like','%'.$s.'%')->orWhere('alamat','like','%'.$s.'%')->orWhereHas('kelurahan',function ($q)use($s){
// $q->where('nama_kelurahan','like','%'.$s.'%')->orWhereHas('kecamatan',function ($q)use($s){
// $q->where('nama_kecamatan','like','%'.$s.'%');
// });
// })->orderBy('created_at','DESC')->paginate(10);
// } else {
// $datas = DataWarga::where('nama_lengkap','like','%'.$s.'%')->orWhere('nik','like','%'.$s.'%')->orWhere('alamat','like','%'.$s.'%')->orWhereHas('kelurahan',function ($q)use($s){
// $q->where('nama_kelurahan','like','%'.$s.'%')->orWhereHas('kecamatan',function ($q)use($s){
// $q->where('nama_kecamatan','like','%'.$s.'%');
// });
// })->orderBy('created_at','DESC')->where('user_id',Auth::user()->id)->paginate(10);
// }
$no = 1*$page*10-10+1;
// return view('data-warga.index',compact('title','data-warga','parent','link','datas','no'));
return view('dpt.index',compact('title','link','datas','no'));
} else {
$title = "DPT";
$link = "dpt";
$s = '';
$page = 1;
if(isset($_GET['s'])){
$s = $_GET['s'];
}
if(isset($_GET['page'])){
$page = $_GET['page'];
}
if($s != "") {
$datas = Dpt::query()->where('nama_lengkap','like','%'.$s.'%')->orWhere('nik','like','%'.$s.'%')->orWhere('alamat','like','%'.$s.'%')->orWhereHas('tp', function($u) use($s) {
$u->orWhereHas('kelurahans',function ($q)use($s){
$q->where('nama_kelurahan','like','%'.$s.'%')->orWhereHas('kecamatan',function ($q)use($s){
$q->where('nama_kecamatan','like','%'.$s.'%')->orWhereHas('kabupatens', function ($d) use($s) {
$d->where('nama_kabupaten','like', '%'.$s.'%');
});
});
});
})->where('status', null)->orderBy('created_at','DESC')->paginate(10);
} else {
$datas = Dpt::orderBy('created_at','DESC')->where('status', null)->paginate(10);
}
// if(Auth::user()->role == 1){
// $datas = DataWarga::where('nama_lengkap','like','%'.$s.'%')->orWhere('nik','like','%'.$s.'%')->orWhere('alamat','like','%'.$s.'%')->orWhereHas('kelurahan',function ($q)use($s){
// $q->where('nama_kelurahan','like','%'.$s.'%')->orWhereHas('kecamatan',function ($q)use($s){
// $q->where('nama_kecamatan','like','%'.$s.'%');
// });
// })->orderBy('created_at','DESC')->paginate(10);
// } else {
// $datas = DataWarga::where('nama_lengkap','like','%'.$s.'%')->orWhere('nik','like','%'.$s.'%')->orWhere('alamat','like','%'.$s.'%')->orWhereHas('kelurahan',function ($q)use($s){
// $q->where('nama_kelurahan','like','%'.$s.'%')->orWhereHas('kecamatan',function ($q)use($s){
// $q->where('nama_kecamatan','like','%'.$s.'%');
// });
// })->orderBy('created_at','DESC')->where('user_id',Auth::user()->id)->paginate(10);
// }
$no = 1*$page*10-10+1;
// return view('data-warga.index',compact('title','data-warga','parent','link','datas','no'));
return view('dpt.index',compact('title','link','datas','no'));
}
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$title = "Tambah Data DPT";
$link = "dpt";
$parent = "Data DPT";
if(Request('kabupaten')) {
$datas = Kecamatan::where('kabupaten_id', Request('kabupaten'))->get();
return response()->json([
'data' => $datas,
]);
} else if(Request('kecamatan')) {
$datas = Kelurahan::where('kecamatan_id', Request('kecamatan'))->get();
return response()->json([
'data' => $datas,
]);
} else if(Request('kelurahan')) {
$datas = Tp::where('kelurahan_id', Request('kelurahan'))->get();
return response()->json([
'data' => $datas,
]);
} else {
$kabupatens = Kabupaten::orderBy('nama_kabupaten','ASC')->pluck('nama_kabupaten','id');
// return view('data-warga.create',compact('title','data-warga','parent','link','kelurahans'));
return view('data-warga.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)
{
$user = Auth::user();
$e_ktp = null;
$request->validate([
'nik' => 'nullable|max:255|string',
'e_ktp'=>'nullable|image',
// 'nama_penghubung' => 'required|max:255|string',
// 'no_telp_penghubung' => 'required|max:20|string',
'nama_lengkap'=>'nullable|max:255|string',
'alamat'=>'nullable|string',
// 'no_telepon'=>'nullable|string|max:20',
'rt'=>'nullable|string|max:10',
'rw'=>'nullable|string|max:10',
'jenis_kelamin'=>'sometimes|required',
// 'agama'=>'sometimes|required',
// 'kawin'=>'sometimes|required',
// 'pekerjaan'=>'nullable|string',
'tps_id' => 'required',
]);
if ($request->hasFile('e_ktp')) {
$e_ktp = str_replace(' ', '-', $request->nik).".".$request->e_ktp->getClientOriginalExtension();
$request->e_ktp->move(public_path('images/e-ktp'),$e_ktp);
}
$data = Dpt::create([
'nama_lengkap'=>$request->nama_lengkap,
'nik'=>0,
// 'user_id'=>$user->id,
// 'e_ktp'=>$e_ktp,
'alamat'=>$request->alamat,
// 'no_telepon'=>$request->no_telepon,
'tps_id'=>$request->tps_id,
'rt'=>$request->rt,
'usia'=>0,
'rw'=>$request->rw,
'jenis_kelamin'=>$request->jenis_kelamin == "Laki-laki" ? "L" : "P",
// 'agama'=>$request->agama,
// 'kawin'=>$request->kawin,
// 'pekerjaan'=>$request->pekerjaan,
// 'tempat_lahirs'=> $request->tempat_lahir,
// 'tanggal_lahirs'=> $request->tanggal_lahir,
// 'nama_penghubung'=>$request->nama_penghubung,
// 'no_telp_penghubung'=>$request->no_telp_penghubung,
]);
$msg = 'Berhasil menambah data DPT dengan nik '.$data->nik;
UserLog::create(['user_id'=>$user->id,'keterangan'=>$msg]);
return redirect('dpt')->with('success_message', $msg);
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$title = "Detail Data DPT";
$link = "dpt";
$parent = "Data DPT";
$data = Dpt::find($id);
// dd($data->kelurahan->kecamatan->kabupatens);
// return view('data-warga.show',compact('title','data-warga','parent','link','data'));
return view('dpt.show',compact('title','parent','link','data'));
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$title = "Edit Data DPT";
$link = "dpt";
$parent = "Data Dpt";
$kabupatens = Kabupaten::orderBy('nama_kabupaten','ASC')->pluck('nama_kabupaten','id');
$data = Dpt::find($id);
$kecamatans = Kecamatan::where('kabupaten_id',$data->tp->kelurahans->kecamatan->kabupaten_id)->get();
$kelurahans = Kelurahan::where('kecamatan_id',$data->tp->kelurahans->kecamatan_id)->get();
$tps = Tp::where('kelurahan_id',$data->tp->kelurahan_id)->get();
// return view('data-warga.edit',compact('title','data-warga','parent','link','kelurahans','data'));
return view('dpt.edit',compact('title','parent','link','kabupatens','kecamatans','kelurahans','data', 'tps'));
}
/**
* 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 = Dpt::find($id);
$e_ktp = $data->e_ktp;
if($request->hasFile($request->e_ktp)){
$e_ktp = str_replace(' ', '-', $request->nik).".".$request->e_ktp->getClientOriginalExtension();
$request->e_ktp->move(public_path('images/e-ktp'),$e_ktp);
}
// dd($data);
$data->update([
'nama_lengkap'=>$request->nama_lengkap,
'nik'=>$request->nik,
'e_ktp'=>$e_ktp,
'alamat'=>$request->alamat,
// 'no_telepon'=>$request->no_telepon,
'tps_id'=>$request->tps_id,
'rt'=>$request->rt,
'rw'=>$request->rw,
'jenis_kelamin'=>$request->jenis_kelamin,
// 'agama'=>$request->agama,
// 'kawin'=>$request->kawin,
// 'pekerjaan'=>$request->pekerjaan,
'tempat_lahirs'=> $request->tempat_lahir,
'tanggal_lahirs'=> $request->tanggal_lahir,
// 'nama_penghubung'=>$request->nama_penghubung,
// 'no_telp_penghubung'=>$request->no_telp_penghubung,
]);
$msg = 'Berhasil mengubah data DPT dengan nik '.$data->nik;
UserLog::create(['user_id'=>Auth::user()->id,'keterangan'=>$msg]);
return redirect('dpt')->with('success_message', $msg);
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$data = Dpt::find($id);
$user = Auth::user();
try {
$data->delete();
$msg = 'Berhasil menghapus data Dpt dengan nik '.$data->nik;
UserLog::create(['user_id'=>$user->id,'keterangan'=>$msg]);
return redirect('dpt')->with('success_message', $msg);
} catch (Exception $e) {
$msg = 'Gagal menghapus data Dpt dengan nik '.$data->nik;
UserLog::create(['user_id'=>$user->id,'keterangan'=>$msg]);
return redirect('dpt')->with('error_message', $msg);
}
}
public function formulir($id)
{
$title = "Formulir Data DPT";
$link = "dpt";
$parent = "Data DPT";
$data = Dpt::find($id);
$opt = ['data' => $data];
// $pdf = PDF::loadView('dpt.formulir', $opt);
// return $pdf->download('formulir-dpt-'.$data->nik.'.pdf');
// return view('data-warga.formulir',compact('title','data-warga','parent','link','data'));
return view('dpt.formulir',compact('title','parent','link','data'));
}
public function importView()
{
$title = "Import Data DPT";
$link = "dpt";
$parent = "Data DPT";
$warnings = Session::get('alert_import',[]);
// return view('data-warga.import',compact('title','data-warga','parent','link','warnings'));
return view('dpt.import',compact('title','parent','link','warnings'));
}
public function import(Request $request)
{
Session::put('alert_import',[]);
Excel::import(new DataDPTImport,request()->file('file'));
$msg = 'Berhasil mengimport data excel dengan nama '.$request->file->getClientOriginalName();
UserLog::create(['user_id'=>Auth::user()->id,'keterangan'=>$msg]);
return redirect('dpt/import')->with('success_message', $msg);
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]