Website-E-Bendungan/app/Http/Controllers/SKCatatanKepolisianControll...

100 lines
3.3 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use DB;
class SKCatatanKepolisianController extends Controller
{
public function index(Request $request)
{
$query = DB::table('skck');
if ($request->filled('search')) {
$query->where(function ($q) use ($request) {
$q->where('nama', 'LIKE', "%{$request->search}%")
->orWhere('alamat', 'LIKE', "%{$request->search}%");
});
}
if ($request->filled('date')) {
$query->whereDate('created_at', '=', date('Y-m-d', strtotime($request->date)));
}
if ($request->filled('status')) {
$query->where('status', '=', $request->status);
}
$tabel_skcatatankepolisian = $query->orderByRaw("
CASE
WHEN status = 'Diproses' THEN 1
ELSE 2
END
")->orderBy('created_at', 'DESC')->paginate(9);
$countDiproses = [
'izin_pembelian_solar' => DB::table('izin_pembelian_solar')->where('status', 'Diproses')->count(),
'izin_usaha' => DB::table('izin_usaha')->where('status', 'Diproses')->count(),
'skck' => DB::table('skck')->where('status', 'Diproses')->count(),
'keterangan_kematian' => DB::table('keterangan_kematian')->where('status', 'Diproses')->count(),
'keterangan_kehilangan' => DB::table('keterangan_kehilangan')->where('status', 'Diproses')->count(),
];
return view('Pengajuan Surat/SK Catatan Kepolisian', [
'tabel_skcatatankepolisian' => $tabel_skcatatankepolisian,
'countDiproses' => $countDiproses
]);
}
public function detail($id)
{
$data = DB::table('skck')->where('id', $id)->first();
if (!$data) {
return redirect()->back()->with('error', 'Data tidak ditemukan');
}
return view('Detail Pengajuan Surat/Detail SK Catatan Kepolisian', compact('data'));
}
public function edit($id)
{
$data = DB::table('skck')->where('id', $id)->first();
if (!$data) {
return redirect()->back()->with('error', 'Data tidak ditemukan');
}
return view('Form Pengajuan Surat/Form SK Catatan Kepolisian', compact('data'));
}
public function update(Request $request, $id)
{
$request->validate([
'status' => 'required|in:Diproses,Ditolak,Selesai',
'file' => 'nullable|mimes:doc,docx,xls,xlsx,pdf|max:10240'
]);
$data = DB::table('skck')->where('id', $id)->first();
if (!$data) {
return redirect()->back()->with('error', 'Data tidak ditemukan');
}
$updateData = ['status' => $request->status];
if ($request->hasFile('file')) {
$file = $request->file('file');
$fileName = 'Surat Keterangan Catatan Kepolisian ' . $id . '.' . $file->getClientOriginalExtension();
$file->storeAs('File SK Catatan Kepolisian', $fileName, 'public');
$updateData['file_hasil'] = $fileName;
}
DB::table('skck')->where('id', $id)->update($updateData);
return redirect()->route('SKCatatanKepolisian')->with('manage_success', true);
}
}