✨(persetujuan-penawaran): Tambah fitur tampilan file dan perbaiki logika persetujuan penawaran
- Menambahkan auto-fill nominal_bayar dengan nilai biaya_final pada create persetujuan - Memperbaiki query datatables dengan filter status penawaran lebih spesifik - Menambahkan whereHas untuk memastikan hanya status 'persetujuan-penawaran' yang ditampilkan - Menambahkan preview file upload (persetujuan_penawaran, surat_representasi, bukti_bayar) - Menggunakan Storage::url() untuk generate URL file dengan keamanan optimal - Menambahkan ikon eye dan badge untuk tampilan preview file - Memperbaiki fallback nominal_bayar agar otomatis menggunakan biaya_final - Merapikan struktur HTML dan urutan class Tailwind CSS di index dan form blade - Mengoptimalkan AJAX request structure dan error handling agar lebih stabil
This commit is contained in:
@@ -60,6 +60,17 @@
|
||||
<input type="file" name="file_persetujuan_penawaran" id="file_persetujuan_penawaran"
|
||||
class="file-input w-full @error('file_persetujuan_penawaran') border-danger bg-danger-light @enderror"
|
||||
accept=".pdf,.doc,.docx">
|
||||
|
||||
@if (isset($persetujuanPenawaran->file_persetujuan_penawaran) &&
|
||||
!empty($persetujuanPenawaran->file_persetujuan_penawaran))
|
||||
<div class="flex items-center mt-2">
|
||||
<a href="{{ Storage::url($persetujuanPenawaran->file_persetujuan_penawaran) }}"
|
||||
target="_blank" class="badge badge-sm badge-outline badge-warning">
|
||||
<i class="mr-2 ki-filled ki-eye"></i> Lihat File
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@error('file_persetujuan_penawaran')
|
||||
<em class="text-sm alert text-danger">{{ $message }}</em>
|
||||
@enderror
|
||||
@@ -74,6 +85,16 @@
|
||||
<input type="file" name="surat_representasi" id="surat_representasi"
|
||||
class="file-input w-full @error('surat_representasi') border-danger bg-danger-light @enderror"
|
||||
accept=".pdf,.doc,.docx">
|
||||
|
||||
@if (isset($persetujuanPenawaran->surat_representasi) && !empty($persetujuanPenawaran->surat_representasi))
|
||||
<div class="flex items-center mt-2">
|
||||
<a href="{{ Storage::url($persetujuanPenawaran->surat_representasi) }}" target="_blank"
|
||||
class="badge badge-sm badge-outline badge-warning">
|
||||
<i class="mr-2 ki-filled ki-eye"></i> Lihat File
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@error('surat_representasi')
|
||||
<em class="text-sm alert text-danger">{{ $message }}</em>
|
||||
@enderror
|
||||
@@ -87,7 +108,7 @@
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input type="number" name="nominal_bayar" id="nominal_bayar"
|
||||
class="input w-full @error('nominal_bayar') border-danger bg-danger-light @enderror"
|
||||
value="{{ old('nominal_bayar', $persetujuanPenawaran->nominal_bayar ?? '') }}"
|
||||
value="{{ old('nominal_bayar', $persetujuanPenawaran->nominal_bayar ?? ($persetujuanPenawaran->biaya_final ?? '')) }}"
|
||||
placeholder="Masukkan nominal bayar">
|
||||
@error('nominal_bayar')
|
||||
<em class="text-sm alert text-danger">{{ $message }}</em>
|
||||
@@ -103,6 +124,16 @@
|
||||
<input type="file" name="bukti_bayar" id="bukti_bayar"
|
||||
class="file-input w-full @error('bukti_bayar') border-danger bg-danger-light @enderror"
|
||||
accept=".pdf,.jpg,.jpeg,.png">
|
||||
|
||||
@if (isset($persetujuanPenawaran->bukti_bayar) && !empty($persetujuanPenawaran->bukti_bayar))
|
||||
<div class="flex items-center mt-2">
|
||||
<a href="{{ Storage::url($persetujuanPenawaran->bukti_bayar) }}" target="_blank"
|
||||
class="badge badge-sm badge-outline badge-warning">
|
||||
<i class="mr-2 ki-filled ki-eye"></i> Lihat File
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@error('bukti_bayar')
|
||||
<em class="text-sm alert text-danger">{{ $message }}</em>
|
||||
@enderror
|
||||
|
||||
Reference in New Issue
Block a user