feat(noc): tambah field total pembukuan dan perbaiki label form
Menambahkan field total_pembukuan ke dalam sistem NOC untuk mendukung pencatatan pembukuan yang lebih akurat. Perubahan yang dilakukan: - Menambahkan migration untuk field total_pembukuan di tabel noc dengan tipe decimal(10,2) - Menambahkan total_pembukuan ke dalam fillable array di model Noc - Mengintegrasikan field total_pembukuan ke dalam NocController untuk proses store dan update - Menambahkan input field "Jumlah Pembukuan" di form NOC dengan validasi error handling - Mengubah label "Nominal Bayar" menjadi "Jumlah Yang Harus Disetor" untuk kejelasan - Mengubah label "Nominal Diterima" menjadi "Jumlah Yang Disetor" untuk konsistensi - Mengubah title menu dari "Pembayaran" menjadi "Pembukuan" di module.json - Menambahkan readonly attribute pada field total_pembukuan ketika sudah ada memo - Mengimplementasikan old() helper untuk mempertahankan nilai input saat validation error - Menambahkan placeholder text "Masukkan total pembukuan" untuk user guidance
This commit is contained in:
@@ -56,6 +56,7 @@
|
|||||||
|
|
||||||
$dataNoc = [
|
$dataNoc = [
|
||||||
'nominal_bayar' => $validated['nominal_bayar'],
|
'nominal_bayar' => $validated['nominal_bayar'],
|
||||||
|
'total_pembukuan' => $validated['total_pembukuan'],
|
||||||
'tanggal_pembayaran' => $validated['tanggal_pembayaran'] ?? date('Y-m-d'),
|
'tanggal_pembayaran' => $validated['tanggal_pembayaran'] ?? date('Y-m-d'),
|
||||||
'status_bayar' => $validated['nominal_bayar'] < $validated['total_harus_bayar'] ? false : true,
|
'status_bayar' => $validated['nominal_bayar'] < $validated['total_harus_bayar'] ? false : true,
|
||||||
'catatan_noc' => $validated['catatan_noc'],
|
'catatan_noc' => $validated['catatan_noc'],
|
||||||
@@ -131,6 +132,7 @@
|
|||||||
->route('laporan.index')->with('success', 'Memo Penyelesaian updated successfully');
|
->route('laporan.index')->with('success', 'Memo Penyelesaian updated successfully');
|
||||||
}
|
}
|
||||||
$dataNoc = [
|
$dataNoc = [
|
||||||
|
'total_pembukuan' => $validated['total_pembukuan'],
|
||||||
'nominal_penyelesaian' => $validated['nominal_penyelesaian'],
|
'nominal_penyelesaian' => $validated['nominal_penyelesaian'],
|
||||||
'tanggal_penyelesaian' => $validated['tanggal_penyelesaian'] ?? date('Y-m-d'),
|
'tanggal_penyelesaian' => $validated['tanggal_penyelesaian'] ?? date('Y-m-d'),
|
||||||
'status_pelunasan' => ((int)$validated['nominal_bayar'] + (int)$validated['nominal_penyelesaian']) === (int)$validated['total_harus_bayar'] ? true : false,
|
'status_pelunasan' => ((int)$validated['nominal_bayar'] + (int)$validated['nominal_penyelesaian']) === (int)$validated['total_harus_bayar'] ? true : false,
|
||||||
|
|||||||
@@ -72,6 +72,7 @@
|
|||||||
return [
|
return [
|
||||||
'total_harus_bayar' => 'nullable|numeric|min:0',
|
'total_harus_bayar' => 'nullable|numeric|min:0',
|
||||||
'nominal_bayar' => 'nullable|numeric|min:0',
|
'nominal_bayar' => 'nullable|numeric|min:0',
|
||||||
|
'total_pembukuan' => 'nullable|numeric|min:0',
|
||||||
'bukti_ksl' => $fileRule,
|
'bukti_ksl' => $fileRule,
|
||||||
'bukti_bayar' => $fileRule,
|
'bukti_bayar' => $fileRule,
|
||||||
'status_bayar' => 'nullable|boolean',
|
'status_bayar' => 'nullable|boolean',
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ class Noc extends Base
|
|||||||
'persetujuan_penawaran_id',
|
'persetujuan_penawaran_id',
|
||||||
'bukti_bayar',
|
'bukti_bayar',
|
||||||
'nominal_bayar',
|
'nominal_bayar',
|
||||||
|
'total_pembukuan',
|
||||||
'status_bayar',
|
'status_bayar',
|
||||||
'tanggal_pembayaran',
|
'tanggal_pembayaran',
|
||||||
'nominal_penyelesaian',
|
'nominal_penyelesaian',
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('noc', function (Blueprint $table) {
|
||||||
|
$table->decimal('total_pembukuan', 10, 2)->after('nominal_bayar');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('noc', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('total_pembukuan');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -391,7 +391,7 @@
|
|||||||
],
|
],
|
||||||
"sub": [
|
"sub": [
|
||||||
{
|
{
|
||||||
"title": "Pembayaran",
|
"title": "Pembukuan",
|
||||||
"path": "noc.pembayaran",
|
"path": "noc.pembayaran",
|
||||||
"icon": "ki-filled ki-two-credit-cart text-lg text-primary",
|
"icon": "ki-filled ki-two-credit-cart text-lg text-primary",
|
||||||
"classes": "",
|
"classes": "",
|
||||||
|
|||||||
@@ -80,7 +80,7 @@
|
|||||||
|
|
||||||
<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">
|
||||||
Nominal Bayar
|
Jumlah Yang Harus Disetor
|
||||||
</label>
|
</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input type="number" name="total_harus_bayar" id="total_harus_bayar"
|
<input type="number" name="total_harus_bayar" id="total_harus_bayar"
|
||||||
@@ -95,7 +95,7 @@
|
|||||||
|
|
||||||
<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">
|
||||||
Nominal Diterima
|
Jumlah Yang Disetor
|
||||||
</label>
|
</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input type="number" name="nominal_bayar" id="nominal_bayar"
|
<input type="number" name="nominal_bayar" id="nominal_bayar"
|
||||||
@@ -108,6 +108,21 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Jumlah Pembukuan
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input type="number" name="total_pembukuan" id="total_pembukuan"
|
||||||
|
class="input w-full @error('total_pembukuan') border-danger bg-danger-light @enderror"
|
||||||
|
value="{{ old('total_pembukuan', $persetujuanPenawaran->noc->total_pembukuan ?? '') }}"
|
||||||
|
placeholder="Masukkan total pembukuan" {{ $hasMemo ? 'readonly' : '' }}>
|
||||||
|
@error('total_pembukuan')
|
||||||
|
<em class="text-sm alert text-danger">{{ $message }}</em>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<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">
|
||||||
Tanggal Pembayaran
|
Tanggal Pembayaran
|
||||||
|
|||||||
Reference in New Issue
Block a user