🔧 fix(noc): Perbaiki validasi dan logika NOC untuk mendukung pembayaran tanpa permohonan
- Ubah validasi permohonan_id dari required menjadi nullable di NocRequest - Hapus pesan error required untuk permohonan_id di validation messages - Tambahkan logika kondisional di NocController->store() untuk updateOrCreate berdasarkan keberadaan permohonan_id - Perbaiki null safety dengan operator ?-> di form.blade.php untuk akses nested properties - Update logika status pembayar untuk mendukung pembayaran dengan nomor_tiket - Tambahkan kondisi khusus untuk menentukan status bayar berdasarkan nomor_tiket - Perbaiki formatting dan spacing di controller untuk readability
This commit is contained in:
@@ -45,6 +45,7 @@
|
|||||||
public function store(NocRequest $request)
|
public function store(NocRequest $request)
|
||||||
{
|
{
|
||||||
$validated = $request->validated();
|
$validated = $request->validated();
|
||||||
|
|
||||||
$validated['updated_by'] = Auth::id();
|
$validated['updated_by'] = Auth::id();
|
||||||
if (request()->get('status_bayar') == "sudah_bayar") {
|
if (request()->get('status_bayar') == "sudah_bayar") {
|
||||||
$validated['status'] = '1';
|
$validated['status'] = '1';
|
||||||
@@ -66,13 +67,23 @@
|
|||||||
'nominal_lebih_bayar' => $validated['nominal_lebih_bayar'] ?? '0',
|
'nominal_lebih_bayar' => $validated['nominal_lebih_bayar'] ?? '0',
|
||||||
'bukti_pengembalian' => $validated['bukti_pengembalian'] ?? '',
|
'bukti_pengembalian' => $validated['bukti_pengembalian'] ?? '',
|
||||||
];
|
];
|
||||||
$noc = Noc::updateOrCreate(
|
|
||||||
|
if($validated['permohonan_id']){
|
||||||
|
$noc = Noc::updateOrCreate(
|
||||||
[
|
[
|
||||||
'permohonan_id' => $validated['permohonan_id'],
|
'permohonan_id' => $validated['permohonan_id'],
|
||||||
'persetujuan_penawaran_id' => $validated['persetujuan_penawaran_id'],
|
'persetujuan_penawaran_id' => $validated['persetujuan_penawaran_id'],
|
||||||
],
|
],
|
||||||
$dataNoc,
|
$dataNoc,
|
||||||
);
|
);
|
||||||
|
} else {
|
||||||
|
$noc = Noc::updateOrCreate(
|
||||||
|
[
|
||||||
|
'persetujuan_penawaran_id' => $validated['persetujuan_penawaran_id'],
|
||||||
|
],
|
||||||
|
$dataNoc,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
$folderPath = 'noc/' . request()->get('persetujuan_penawaran_id') . '/bukti_ksl/';
|
$folderPath = 'noc/' . request()->get('persetujuan_penawaran_id') . '/bukti_ksl/';
|
||||||
|
|
||||||
|
|||||||
@@ -52,7 +52,7 @@
|
|||||||
private function getBasicInfoRules()
|
private function getBasicInfoRules()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'permohonan_id' => 'required|exists:permohonan,id',
|
'permohonan_id' => 'nullable|exists:permohonan,id',
|
||||||
'persetujuan_penawaran_id' => 'required|exists:persetujuan_penawaran,id',
|
'persetujuan_penawaran_id' => 'required|exists:persetujuan_penawaran,id',
|
||||||
'status' => 'nullable|boolean',
|
'status' => 'nullable|boolean',
|
||||||
'created_by' => 'nullable|exists:users,id',
|
'created_by' => 'nullable|exists:users,id',
|
||||||
@@ -130,7 +130,6 @@
|
|||||||
public function messages()
|
public function messages()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'permohonan_id.required' => 'ID Permohonan harus diisi',
|
|
||||||
'permohonan_id.exists' => 'ID Permohonan tidak valid',
|
'permohonan_id.exists' => 'ID Permohonan tidak valid',
|
||||||
'persetujuan_penawaran_id.required' => 'ID Persetujuan Penawaran harus diisi',
|
'persetujuan_penawaran_id.required' => 'ID Persetujuan Penawaran harus diisi',
|
||||||
'persetujuan_penawaran_id.exists' => 'ID Persetujuan Penawaran tidak valid',
|
'persetujuan_penawaran_id.exists' => 'ID Persetujuan Penawaran tidak valid',
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
<input type="hidden" name="persetujuan_penawaran_id"
|
<input type="hidden" name="persetujuan_penawaran_id"
|
||||||
value="{{ $persetujuanPenawaran->id ?? old('persetujuan_penawaran_id') }}">
|
value="{{ $persetujuanPenawaran->id ?? old('persetujuan_penawaran_id') }}">
|
||||||
<input type="hidden" name="permohonan_id"
|
<input type="hidden" name="permohonan_id"
|
||||||
value="{{ $persetujuanPenawaran->penawaran->permohonan->id ?? $persetujuanPenawaran->permohonan->id }}">
|
value="{{ $persetujuanPenawaran?->penawaran?->permohonan?->id ?? $persetujuanPenawaran?->permohonan?->id }}">
|
||||||
|
|
||||||
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
|
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
|
||||||
<label class="form-label max-w-56">
|
<label class="form-label max-w-56">
|
||||||
@@ -50,10 +50,17 @@
|
|||||||
name="status_pembayar" id="status_pembayar" {{ $hasMemo ? 'disabled' : '' }}>
|
name="status_pembayar" id="status_pembayar" {{ $hasMemo ? 'disabled' : '' }}>
|
||||||
<option value="">Pilih Status Bayar</option>
|
<option value="">Pilih Status Bayar</option>
|
||||||
<option value="sudah_bayar"
|
<option value="sudah_bayar"
|
||||||
{{ old('status_pembayar') == 'sudah_bayar' || $persetujuanPenawaran?->penawaran?->permohonan?->status_bayar == 'sudah_bayar' ? 'selected' : '' }}>
|
{{ old('status_pembayar') == 'sudah_bayar' ||
|
||||||
|
$persetujuanPenawaran?->penawaran?->permohonan?->status_bayar == 'sudah_bayar' ||
|
||||||
|
$persetujuanPenawaran?->nomor_tiket
|
||||||
|
? 'selected'
|
||||||
|
: '' }}>
|
||||||
Sudah Bayar</option>
|
Sudah Bayar</option>
|
||||||
<option value="belum_bayar"
|
<option value="belum_bayar"
|
||||||
{{ old('status_pembayar') == 'belum_bayar' || $persetujuanPenawaran?->penawaran?->permohonan?->status_bayar == 'belum_bayar' ? 'selected' : '' }}>
|
{{ old('status_pembayar') == 'belum_bayar' ||
|
||||||
|
($persetujuanPenawaran?->penawaran?->permohonan?->status_bayar == 'belum_bayar' && !$persetujuanPenawaran?->nomor_tiket)
|
||||||
|
? 'selected'
|
||||||
|
: '' }}>
|
||||||
Belum Bayar</option>
|
Belum Bayar</option>
|
||||||
</select>
|
</select>
|
||||||
@error('status_bayar')
|
@error('status_bayar')
|
||||||
|
|||||||
Reference in New Issue
Block a user