(pembayaran): Implementasi fitur create pembayaran baru dengan autocomplete debitur

- Menambahkan method create() di PembayaranController untuk menampilkan form pembayaran baru
- Menambahkan logika create pembayaran di method store() dengan validasi type 'create'
- Menambahkan penyimpanan data pembayaran baru ke tabel persetujuan_penawaran dan noc
- Menambahkan upload bukti bayar dengan penyimpanan ke storage public
- Menambahkan migration untuk kolom branch_id di tabel noc
- Menambahkan view create.blade.php dengan form pembayaran lengkap dan autocomplete debitur
- Menambahkan validasi JavaScript untuk format file dan ukuran maksimal 2MB
- Menambahkan TomSelect untuk pencarian debitur dengan AJAX real-time
- Menambahkan integrasi dengan API debitur search untuk autocomplete
- Memperbaiki method edit() untuk mendukung parameter tiket dalam pencarian persetujuan penawaran
- Mengubah query dataForDatatables untuk mendukung data dari persetujuan_penawaran dan permohonan
- Menambahkan mapping data yang fleksibel untuk menampilkan informasi dari berbagai sumber
- Menambahkan field nomor_tiket, nominal_bayar, dan catatan pada form create
- Menambahkan validasi client-side untuk memastikan file upload sesuai format
- Menambahkan relasi branch_id pada tabel noc untuk tracking cabang pembuat
- Menambahkan redirect ke pembayaran.index setelah berhasil menyimpan pembayaran baru
- Menambahkan import PhpParser\Node\Expr\Cast\Object_ (perlu dibersihkan)
- Mengoptimalkan query dengan eager loading dan mapping data yang efisien
- Menambahkan support untuk pembayaran tanpa permohonan (standalone payment)
- Menambahkan field is_permohonan untuk membedakan jenis pembayaran
- Menambahkan validasi dan error handling yang komprehensif
This commit is contained in:
Daeng Deni Mardaeni
2025-09-15 11:32:59 +07:00
parent 1caa7ebfdd
commit 4aeecf6a97
7 changed files with 456 additions and 30 deletions

View File

@@ -109,6 +109,11 @@ Breadcrumbs::for('pembayaran', function (BreadcrumbTrail $trail) {
$trail->push('Pembayaran', route('pembayaran.index'));
});
Breadcrumbs::for('pembayaran.create', function (BreadcrumbTrail $trail) {
$trail->parent('pembayaran');
$trail->push('Buat Pembayaran');
});
Breadcrumbs::for('pembayaran.edit', function (BreadcrumbTrail $trail) {
$trail->parent('pembayaran');
$trail->push('Lakukan Pembayaran');