<?php
namespace App\Http\Controllers;
use App\Imports\DataTpsImport;
use App\Models\Kabupaten;
use App\Models\Kecamatan;
use App\Models\Kelurahan;
use App\Models\Tp;
use App\Models\UserLog;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;
use Maatwebsite\Excel\Facades\Excel;
class TpsController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$title = "TPS";
$link = "tps";
$parent = "Master Data";
$s = '';
$page = 1;
if(isset($_GET['s'])){
$s = $_GET['s'];
}
if(isset($_GET['page'])){
$page = $_GET['page'];
}
$datas = Tp::paginate(10);
$datas->appends($_GET);
$no = 1*$page*10-10+1;
// return view('kelurahan.index',compact('title','kelurahan','parent','link','datas','no'));
return view('tps.index',compact('title','parent','link','datas','no'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$title = "Tambah Data TPS";
$link = "tps";
$parent = "TPS";
// $kelurahans = Kelurahan::orderBy('nama_kelurahan','ASC')->pluck('nama_kelurahan','id');
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 {
$kabupatens = Kabupaten::orderBy('nama_kabupaten','ASC')->pluck('nama_kabupaten','id');
return view('tps.create',compact('title','parent','link','kabupatens'));
}
// return view('kelurahan.create',compact('title','kelurahan','parent','link','kecamatans'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
try {
$request->validate([
'nomor' => 'required|unique:tps|max:255|string',
]);
$data = new Tp;
$data->nomor = $request->nomor;
$data->kelurahan_id = $request->kelurahan_id;
$data->save();
$msg = 'Berhasil menambah data TPS '.$data->nomor;
UserLog::create(['user_id'=>Auth::user()->id,'keterangan'=>$msg]);
return redirect('tps')->with('success_message', $msg);
} catch (Exception $e) {
return redirect('tps')->with('error_message', "Gagal di tambah");
}
}
/**
* 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 = "Edit Data TPS";
$link = "tps";
$parent = "TPS";
// $kelurahans = Kelurahan::orderBy('nama_kelurahan','ASC')->pluck('nama_kelurahan','id');
$data = Tp::find($id);
$kabupatens = Kabupaten::orderBy('nama_kabupaten','ASC')->pluck('nama_kabupaten','id');
// $data = Kelurahan::find($id);
// dd();
$kecamatans = Kecamatan::where('kabupaten_id',$data->kelurahans->kecamatan->kabupaten_id)->orderBy('nama_kecamatan','ASC')->pluck('nama_kecamatan','id');
$kelurahans = Kelurahan::where('kecamatan_id',$data->kelurahans->kecamatan_id)->orderBy('nama_kelurahan','ASC')->pluck('nama_kelurahan','id');
// return view('kelurahan.edit',compact('title','kelurahan','parent','link','kecamatans','data'));
return view('tps.edit',compact('title','parent','link','kabupatens','kecamatans','kelurahans','data'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
try {
$rules = [];
$data = Tp::find($id);
if($data->nomor != $request->nomor) {
$rules['nomor'] = 'required|unique:tps|max:255|string';
} else {
$rules['nomor'] = 'required|max:255|string';
}
$request->validate($rules);
$data->nomor = $request->nomor;
$data->kelurahan_id = $request->kelurahan_id;
$data->save();
$msg = 'Berhasil mengubah data TPS '.$data->nomor;
UserLog::create(['user_id'=>Auth::user()->id,'keterangan'=>$msg]);
return redirect('tps')->with('success_message', $msg);
} catch (Exception $e) {
return redirect('tps')->with('error_message', "Gagal diubah");
}
}
public function importView()
{
// dd("Test");
$title = "Import Data TPS";
$link = "tps";
$parent = "Data TPS";
$warnings = Session::get('alert_import',[]);
return view('tps.import',compact('title','parent','link','warnings'));
}
public function import(Request $request)
{
Session::put('alert_import',[]);
// ini_set('max_execution_time', 3600);
Excel::import(new DataTpsImport,request()->file('file'));
$msg = 'Berhasil mengimport data excel dengan nama '.$request->file->getClientOriginalName();
UserLog::create(['user_id'=>Auth::user()->id,'keterangan'=>$msg]);
return redirect('tps/import')->with('success_message', $msg);
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
try {
$data = Tp::find($id);
if(count($data->dpt) > 0){
return redirect('tps')->with('error_message', "Data tidak bisa di hapus.masih ada dpt yang menggunakan tps ini");
}
$data->delete();
$msg = 'Berhasil menghapus data kelurahan '.$data->nama_kelurahan;
UserLog::create(['user_id'=>Auth::user()->id,'keterangan'=>$msg]);
return redirect('tps')->with('success_message', $msg);
} catch (Exception $e) {
return redirect('tps')->with('error_message', "Gagal dihapus");
}
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]