Commit e36dd355 authored by Christo Gustawan Nugraha's avatar Christo Gustawan Nugraha
Browse files

update project

1
No related merge requests found
Showing with 218 additions and 154 deletions
+218 -154
......@@ -45,6 +45,7 @@ public function storearsip(Request $request)
'katalog_excel' => 'nullable|mimes:xlsx,xls|max:2048',
'katalog_pdf' => 'nullable|mimes:pdf|max:2048',
'nomor_surat' => 'required',
'tanggal_katalog_masuk' => 'required',
]);
$arsip_brosur = new ArsipBrosur();
......@@ -54,6 +55,7 @@ public function storearsip(Request $request)
$arsip_brosur->no_hp = $request->no_hp;
$arsip_brosur->nomor_surat = $request->nomor_surat;
$arsip_brosur->status_ajuan = $request->status_ajuan;
$arsip_brosur->tanggal_katalog_masuk = $request->tanggal_katalog_masuk;
if (!file_exists(public_path('uploads/pdf'))) {
mkdir(public_path('uploads/pdf'), 0755, true);
......
......@@ -54,6 +54,7 @@ public function update(Request $request, $id)
'pelaksanaan' => 'required|string|max:255',
'mode_pelatihan' => 'required|string|max:255',
'waktu_pelaksanaan' => 'required|string|max:255',
'tempat_pelaksanaan' => 'required|string|max:255',
'judul_laporan' => 'required|string|max:255',
'latar_belakang' => 'required|string',
'unggah_laporan' => 'nullable|file|mimes:pdf,docx,jpg,jpeg,png|max:10240', // Optional file validation
......@@ -74,6 +75,7 @@ public function update(Request $request, $id)
$laporan_arsip->pelaksanaan = $request->pelaksanaan;
$laporan_arsip->mode_pelatihan = $request->mode_pelatihan;
$laporan_arsip->waktu_pelaksanaan = $request->waktu_pelaksanaan;
$laporan_arsip->tempat_pelaksanaan = $request->tempat_pelaksanaan;
$laporan_arsip->judul_laporan = $request->judul_laporan;
$laporan_arsip->latar_belakang = $request->latar_belakang;
$laporan_arsip->status_ajuan = $request->status_ajuan;
......
......@@ -21,11 +21,21 @@ public function create()
public function index(Request $request)
{
// Ambil input pencarian
$search = $request->input('search');
$search = $request->input('search'); // Pencarian umum (nama penyelenggara)
$searchYear = $request->input('tahun'); // Pencarian tahun
// Ambil daftar tahun yang ada dalam data
$years = ArsipBrosur::selectRaw('YEAR(tanggal_katalog_masuk) as year')
->distinct()
->orderBy('year', 'desc')
->pluck('year');
// Query data dengan pencarian dan paginasi
$usulan = ArsipBrosur::when($search, function ($query, $search) {
return $query->where('nama_penyelenggara', 'like', "%$search%");
})
->when($searchYear, function ($query, $searchYear) {
return $query->whereYear('tanggal_katalog_masuk', $searchYear); // Filter berdasarkan tahun
})
->orderBy('created_at', 'desc')
->paginate(10);
......@@ -34,17 +44,17 @@ public function index(Request $request)
if ($usulan->isNotEmpty()) {
Log::info('Data retrieved for usulan', ['data' => $usulan->items()]);
} else {
Log::info('No data found for usulan', ['search' => $search]);
Log::info('No data found for usulan', ['search' => $search, 'tahun_ajuan' => $searchYear]);
}
// Return view dengan data
return view('umum.usulan', compact('usulan', 'search'));
return view('umum.usulan', compact('usulan', 'search', 'searchYear', 'years'));
}
public function store(Request $request)
{
Log::info('Form submitted', $request->all());
// Validasi input dan file
$request->validate([
'nama_penyelenggara' => 'required',
......@@ -55,7 +65,10 @@ public function store(Request $request)
'katalog_excel' => 'nullable|mimes:xlsx,xls|max:2048',
'katalog_pdf' => 'nullable|mimes:pdf|max:2048',
'nomor_surat' => 'required',
'tanggal_katalog_masuk' => 'required',
]);
// Simpan data usulan diklat
$usulan_diklat = new UsulanBrosur();
$usulan_diklat->nama_penyelenggara = $request->nama_penyelenggara;
$usulan_diklat->alamat = $request->alamat;
......@@ -63,6 +76,7 @@ public function store(Request $request)
$usulan_diklat->no_hp = $request->no_hp;
$usulan_diklat->nomor_surat = $request->nomor_surat;
$usulan_diklat->status_ajuan = $request->status_ajuan ?? 'Pending';
$usulan_diklat->tanggal_katalog_masuk = $request->tanggal_katalog_masuk;
// Cek apakah file berhasil diupload
if ($request->hasFile('katalog_pdf')) {
......@@ -73,7 +87,9 @@ public function store(Request $request)
$usulan_diklat->katalog_pdf = 'uploads/pdf/' . $pdfName;
} else {
Log::info('No PDF file uploaded');
} if ($request->hasFile('katalog_excel')) {
}
if ($request->hasFile('katalog_excel')) {
Log::info('Excel file uploaded');
$excel = $request->file('katalog_excel');
$excelName = time() . '_' . $excel->getClientOriginalName();
......@@ -83,9 +99,12 @@ public function store(Request $request)
Log::info('No Excel file uploaded');
}
// Simpan data ke database
$usulan_diklat->save();
Log::info('Data saved to database');
return redirect()->route('umum.usulan')->with('success', 'Usulan diklat berhasil ditambahkan.');
// Simpan data ke database
$usulan_diklat->save();
Log::info('Data saved to database');
// Redirect dengan success message
return redirect()->back()->with('success', 'Input berhasil. Menunggu verifikasi dari BKPSDM KOTA SURAKARTA.');
}
}
......@@ -43,7 +43,7 @@ public function store(Request $request)
{
// Validasi input form
$request->validate([
'jenis_diklat' => 'required|string|max:255',
'jenis_pelatihan' => 'required|string|max:255',
'nama_diklat' => 'required|string|max:255',
'rumpun' => 'required|string|max:255',
'kode_jabatan' => 'required|string|exists:jabatan,kode_jabatan', // Memastikan kode jabatan ada di tabel jabatan
......@@ -74,7 +74,7 @@ public function store(Request $request)
// Simpan data diklat
Diklat::create([
'jenis_diklat' => $request->jenis_diklat,
'jenis_pelatihan' => $request->jenis_pelatihan,
'nama_diklat' => $request->nama_diklat,
'rumpun' => $request->rumpun,
'kode_jabatan' => $request->kode_jabatan,
......@@ -106,7 +106,7 @@ public function update(Request $request, $id)
{
// Validate the form data
$request->validate([
'jenis_diklat' => 'required|string|max:255',
'jenis_pelatihan' => 'required|string|max:255',
'nama_diklat' => 'required|string|max:255',
'rumpun' => 'required|string|max:255',
'kode_jabatan' => 'required|string|max:50',
......@@ -122,7 +122,7 @@ public function update(Request $request, $id)
// Find and update the Diklat record
$diklat = Diklat::findOrFail($id);
$diklat->update([
'jenis_diklat' => $request->jenis_diklat,
'jenis_pelatihan' => $request->jenis_pelatihan,
'nama_diklat' => $request->nama_diklat,
'rumpun' => $request->rumpun,
'kode_jabatan' => $request->kode_jabatan,
......
......@@ -11,32 +11,50 @@
use App\Models\PelaksanaanPelatihan;
use App\Models\ArsipLaporan;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
class DirektoriController extends Controller
{
// Display paginated usulan diklat data
public function index(Request $request)
{
// Fetch usulan diklat data with pagination
$search = $request->input('search');
// Ambil input pencarian
$search = $request->input('search'); // Pencarian nama pelatihan
$searchYear = $request->input('tahun'); // Pencarian tahun
// Ambil daftar tahun yang ada dalam data
$years = ArsipLaporan::selectRaw('YEAR(tahun_pelatihan) as year')
->distinct()
->orderBy('year', 'desc')
->pluck('year');
// Query data dengan pencarian dan paginasi
$usulan_laporan_diklat = ArsipLaporan::when($search, function ($query, $search) {
return $query->where('nama_penulis', 'like', "%{$search}%");
return $query->where('nama_pelatihan', 'like', "%$search%");
})
->when($searchYear, function ($query, $searchYear) {
return $query->whereYear('tahun_pelatihan', $searchYear);
})
->orderBy('created_at', 'desc')
->paginate(10);
return view('umum3.direktori', compact('usulan_laporan_diklat'));
// Return view dengan data
return view('umum3.direktori', compact('usulan_laporan_diklat', 'search', 'searchYear', 'years'));
}
// Show form to create new usulan diklat
public function create()
{
$jabatan = Jabatan::all();
$metodePelaksanaan = MetodePelatihan::all();
$jenisPelatihan = JenisPelatihan::all();
$golongan = Golongan::all();
$unitKerja = UnitKerja::all();
$pelaksanaan = PelaksanaanPelatihan::all();
return view('umum3.createdirektori', compact('jabatan','metodePelaksanaan','jenisPelatihan','golongan','unitKerja','pelaksanaan'));
return view('umum3.createdirektori', compact('metodePelaksanaan', 'jenisPelatihan', 'golongan', 'unitKerja', 'pelaksanaan'));
}
// Store new usulan diklat data
......@@ -55,19 +73,16 @@ public function store(Request $request)
'pelaksanaan' => 'required',
'mode_pelatihan' => 'required',
'waktu_pelaksanaan' => 'required',
'tempat_pelaksanaan'=> 'required',
'biaya_per_orang' => 'nullable|numeric',
'tempat_pelaksanaan' => 'required',
'judul_laporan' => 'required',
'latar_belakang' => 'required',
'link_katalog' => 'nullable|url',
'unggah_laporan' => 'nullable|mimes:pdf,doc,docx|max:2048',
]);
$jabatan = Jabatan::where('jabatan', $request->jabatan)->first();
// Jika jabatan tidak ditemukan, redirect dengan pesan error
if (!$jabatan) {
return redirect()->back()->with('error', 'Jabatan dengan kode yang diberikan tidak ditemukan.');
}
// Create a new instance of UsulanDiklat model
$usulan_laporan_diklat = new Direktori();
......@@ -83,7 +98,6 @@ public function store(Request $request)
$usulan_laporan_diklat->mode_pelatihan = $request->mode_pelatihan;
$usulan_laporan_diklat->waktu_pelaksanaan = $request->waktu_pelaksanaan;
$usulan_laporan_diklat->tempat_pelaksanaan = $request->tempat_pelaksanaan;
$usulan_laporan_diklat->biaya_per_orang = $request->biaya_per_orang;
$usulan_laporan_diklat->judul_laporan = $request->judul_laporan;
$usulan_laporan_diklat->latar_belakang = $request->latar_belakang;
$usulan_laporan_diklat->link_katalog = $request->link_katalog;
......@@ -102,7 +116,7 @@ public function store(Request $request)
$usulan_laporan_diklat->save();
// Redirect with success message
return redirect()->route('umum3.direktori')->with('success', 'Usulan laporan berhasil ditambahkan.');
return redirect()->back()->with('success', 'Input berhasil. Menunggu verifikasi dari BKPSDM KOTA SURAKARTA.');
}
......
......@@ -4,28 +4,45 @@
use App\Models\Diklat;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
class EkatalogController extends Controller
{
// Display a list of Diklat entries with search functionality
public function index(Request $request)
{
// Tangkap nilai pencarian dari input 'search' jika ada
$search = $request->input('search');
// Ambil input pencarian
$search = $request->input('search'); // Pencarian umum (nama penyelenggara)
$searchYear = $request->input('tahun'); // Pencarian tahun
// Query untuk mengambil data diklat berdasarkan pencarian
// Ambil daftar tahun yang ada dalam data
$years = Diklat::selectRaw('YEAR(tanggal_pelaksanaan) as year')
->distinct()
->orderBy('year', 'desc')
->pluck('year');
// Query data dengan pencarian dan paginasi
$diklats = Diklat::when($search, function ($query, $search) {
return $query->where('jenis_diklat', 'LIKE', "%{$search}%")
->orWhere('nama_diklat', 'LIKE', "%{$search}%")
->orWhere('rumpun', 'LIKE', "%{$search}%")
->orWhere('kode_jabatan', 'LIKE', "%{$search}%")
->orWhere('penyelenggara', 'LIKE', "%{$search}%");
return $query->where('nama_diklat', 'like', "%$search%");
})
->when($searchYear, function ($query, $searchYear) {
return $query->whereYear('tanggal_pelaksanaan', $searchYear); // Filter berdasarkan tahun
})
->orderBy('created_at', 'desc')
->paginate(10);
return view('umum2.ekatalog', compact('diklats'));
// Log hanya jika data ada
if ($diklats->isNotEmpty()) {
Log::info('Data retrieved for usulan', ['data' => $diklats->items()]);
} else {
Log::info('No data found for usulan', ['search' => $search, 'tanggal_pelaksanaan' => $searchYear]);
}
// Return view dengan data
return view('umum2.ekatalog', compact('diklats', 'search', 'searchYear', 'years'));
}
public function view($id)
{
// Retrieve the Diklat entry by its ID
......@@ -34,8 +51,10 @@ public function view($id)
// Pass the Diklat data to the viewdiklat view
return view('umum2.viewekatalog', compact('diklat'));
}
}
// Show the form for creating a new Diklat
// Show the form for creating a new Diklat
// public function create()
// {
// return view('umum2.createekatalog');
......@@ -87,4 +106,4 @@ public function view($id)
// return view('umum2.ekatalog', compact('diklat'));
// }
}
......@@ -35,12 +35,12 @@ public function index(Request $request)
// Menampilkan form untuk membuat data baru
public function create()
{
return view('brosur.createusulan' );
return view('brosur.createusulan');
}
// Menyimpan data usulan baru ke database
public function storeusulan(Request $request)
{
{
// Validasi input dan file
$request->validate([
'nama_penyelenggara' => 'required',
......@@ -51,6 +51,7 @@ public function storeusulan(Request $request)
'nomor_surat' => 'required',
'katalog_excel' => 'nullable|mimes:xlsx,xls|max:2048',
'katalog_pdf' => 'nullable|mimes:pdf|max:2048',
'tanggal_katalog_masuk' => 'required',
]);
// Buat instance baru dari model UsulanDiklat
......@@ -62,6 +63,7 @@ public function storeusulan(Request $request)
$usulan_brosur->no_hp = $request->no_hp;
$usulan_brosur->nomor_surat = $request->nomor_surat;
$usulan_brosur->status_ajuan = $request->status_ajuan;
$usulan_brosur->tanggal_katalog_masuk = $request->tanggal_katalog_masuk;
// Membuat folder jika belum ada untuk PDF
if (!file_exists(public_path('uploads/pdf'))) {
......@@ -115,7 +117,7 @@ public function update(Request $request, $id)
'no_telepon' => 'required',
'no_hp' => 'required',
'status_ajuan' => 'required',
'nomor_surat' =>'required',
'nomor_surat' => 'required',
'katalog_excel' => 'nullable|mimes:xlsx,xls|max:2048',
'katalog_pdf' => 'nullable|mimes:pdf|max:2048',
]);
......@@ -180,7 +182,7 @@ public function approve($id)
if ($usulan_brosur) {
// Cek apakah status_ajuan sudah "approved" atau "rejected"
if ($usulan_brosur->status_ajuan !== 'Approved' ) {
if ($usulan_brosur->status_ajuan !== 'Approved') {
return redirect()->back()->with('error', 'Silakan ubah status ajuan menjadi "approved" terlebih dahulu.');
}
......
......@@ -17,7 +17,8 @@ class ArsipBrosur extends Model
'no_telepon',
'no_hp',
'nomor_surat',
'status_ajuan'
'status_ajuan',
'tanggal_katalog_masuk',
];
}
......
......@@ -22,6 +22,7 @@ class ArsipLaporan extends Model
'pelaksanaan',
'mode_pelatihan',
'waktu_pelaksanaan',
'tempat_pelaksanaan',
'judul_laporan',
'latar_belakang',
'unggah_laporan', // Add this if it's part of your fillable fields (file uploads)
......
......@@ -12,7 +12,7 @@ class Diklat extends Model
protected $table = 'diklats';
protected $fillable = [
'jenis_diklat',
'jenis_pelatihan',
'nama_diklat',
'rumpun',
'kode_jabatan',
......
......@@ -12,7 +12,7 @@ class Ekatalog extends Model
protected $table = 'diklats';
protected $fillable = [
'jenis_diklat',
'jenis_pelatihan',
'nama_diklat',
'rumpun',
'kode_jabatan',
......
......@@ -20,5 +20,6 @@ class UsulanBrosur extends Model
'status_ajuan',
'katalog_pdf',
'katalog_excel',
'tanggal_katalog_masuk'
];
}
......@@ -21,6 +21,7 @@ public function up()
$table->enum('status_ajuan', ['Pending', 'Approved', 'Rejected'])->nullable();
$table->string('katalog_excel', 100)->nullable(); // VARCHAR(100)
$table->string('katalog_pdf', 100)->nullable();
$table->date('tanggal_katalog_masuk')->nullable(); // Kolom tanggal_katalog_masuk
$table->timestamps(); // created_at & updated_at
});
}
......
File added
File added
File added
File added
File added
File added
......@@ -94,7 +94,9 @@ function closeImportModal() {
<td>{{ $brosur->no_telepon }}</td>
<td>{{ $brosur->no_hp }}</td>
<td>{{ $brosur->status_ajuan }}</td>
<td>{{ \Carbon\Carbon::parse($brosur->created_at)->format('Y-m-d') }}</td>
<td>
{{ \Carbon\Carbon::parse($brosur->tanggal_katalog_masuk)->format('Y-m-d') }}
</td>
<td>
<a href="{{ route('brosur.editarsip', $brosur->id) }}" class="btn btn-warning btn-sm" title="Edit">
<i class="fa fa-edit"></i>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment