update tgl 16 april
This commit is contained in:
parent
176f1eccf2
commit
a5498217cd
|
@ -18,27 +18,43 @@ public function store(Request $request)
|
||||||
// Validasi input
|
// Validasi input
|
||||||
$validated = $request->validate([
|
$validated = $request->validate([
|
||||||
'Tanggal' => 'required|date',
|
'Tanggal' => 'required|date',
|
||||||
'kategori' => 'required|string',
|
'kategori' => 'required|array',
|
||||||
|
'kategori.*' => 'required|string',
|
||||||
'keterangan' => 'required|string',
|
'keterangan' => 'required|string',
|
||||||
'uang_masuk' => 'required|string',
|
'nominal' => 'required|array',
|
||||||
|
'nominal.*' => 'required|string',
|
||||||
|
'posisi' => 'required|array',
|
||||||
|
'posisi.*' => 'required|in:debit,kredit',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// Bersihkan format angka dari input uang_masuk
|
// Inisialisasi data untuk disimpan
|
||||||
$uang_masuk = str_replace(['.', ','], '', $request->uang_masuk);
|
$data = [
|
||||||
|
|
||||||
// Tentukan kode berdasarkan kategori
|
|
||||||
$kode = $this->generateKode($validated['kategori']);
|
|
||||||
|
|
||||||
// Simpan data dengan nilai null untuk uang_keluar dan gaji
|
|
||||||
UangMasukModel::create([
|
|
||||||
'Tanggal' => $validated['Tanggal'],
|
'Tanggal' => $validated['Tanggal'],
|
||||||
'kode' => $kode,
|
|
||||||
'kategori' => $validated['kategori'],
|
|
||||||
'keterangan' => $validated['keterangan'],
|
'keterangan' => $validated['keterangan'],
|
||||||
'uang_masuk' => $uang_masuk,
|
];
|
||||||
'uang_keluar' => null, // Mengizinkan null
|
|
||||||
'gaji' => null, // Mengizinkan null
|
// Proses setiap rekening
|
||||||
]);
|
foreach ($validated['kategori'] as $index => $kategori) {
|
||||||
|
$kode = $this->generateKode($kategori);
|
||||||
|
$nominal = str_replace(['.', ','], '', $validated['nominal'][$index]);
|
||||||
|
|
||||||
|
// Set kode dan kategori sesuai urutan
|
||||||
|
$positionIndex = $index === 0 ? '' : ($index + 1);
|
||||||
|
$data["kode" . $positionIndex] = $kode;
|
||||||
|
$data["kategori" . $positionIndex] = $kategori;
|
||||||
|
|
||||||
|
// Set uang_masuk atau uang_keluar berdasarkan posisi
|
||||||
|
if ($validated['posisi'][$index] === 'debit') {
|
||||||
|
$data["uang_masuk" . $positionIndex] = $nominal;
|
||||||
|
$data["uang_keluar" . $positionIndex] = null;
|
||||||
|
} else {
|
||||||
|
$data["uang_masuk" . $positionIndex] = null;
|
||||||
|
$data["uang_keluar" . $positionIndex] = $nominal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Simpan data
|
||||||
|
UangMasukModel::create($data);
|
||||||
|
|
||||||
return redirect()->back()->with('success', 'Data berhasil disimpan!');
|
return redirect()->back()->with('success', 'Data berhasil disimpan!');
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
|
@ -48,67 +64,182 @@ public function store(Request $request)
|
||||||
|
|
||||||
private function generateKode($kategori)
|
private function generateKode($kategori)
|
||||||
{
|
{
|
||||||
// Tentukan kode dasar berdasarkan kategori
|
// Ambil data-kode dari kategori yang dipilih
|
||||||
$kodeDasar = 0;
|
$kodeAkun = '';
|
||||||
|
|
||||||
// Ekstrak prefix kode dari value kategori
|
switch ($kategori) {
|
||||||
$kategoriPrefix = explode('_', $kategori)[0];
|
// Aset Lancar (11)
|
||||||
|
|
||||||
switch ($kategoriPrefix) {
|
|
||||||
// Harta (Aset)
|
|
||||||
case 'kas':
|
case 'kas':
|
||||||
|
$kodeAkun = '111001';
|
||||||
|
break;
|
||||||
case 'bank':
|
case 'bank':
|
||||||
case 'piutang':
|
$kodeAkun = '111002';
|
||||||
case 'persediaan':
|
break;
|
||||||
case 'sewa':
|
case 'piutang usaha':
|
||||||
case 'asuransi':
|
$kodeAkun = '111003';
|
||||||
case 'perlengkapan':
|
break;
|
||||||
case 'biaya':
|
case 'piutang wesel':
|
||||||
case 'investasi':
|
$kodeAkun = '111004';
|
||||||
|
break;
|
||||||
|
case 'piutang karyawan':
|
||||||
|
$kodeAkun = '111005';
|
||||||
|
break;
|
||||||
|
case 'piutang lain':
|
||||||
|
$kodeAkun = '111006';
|
||||||
|
break;
|
||||||
|
case 'persediaan barang':
|
||||||
|
$kodeAkun = '111007';
|
||||||
|
break;
|
||||||
|
case 'persediaan bahan':
|
||||||
|
$kodeAkun = '111008';
|
||||||
|
break;
|
||||||
|
case 'sewa dibayar dimuka':
|
||||||
|
$kodeAkun = '111009';
|
||||||
|
break;
|
||||||
|
case 'asuransi dibayar_dimuka':
|
||||||
|
$kodeAkun = '111010';
|
||||||
|
break;
|
||||||
|
case 'perlengkapan kantor':
|
||||||
|
$kodeAkun = '111011';
|
||||||
|
break;
|
||||||
|
case 'biaya dibayar dimuka':
|
||||||
|
$kodeAkun = '111012';
|
||||||
|
break;
|
||||||
|
case 'investasi pendek':
|
||||||
|
$kodeAkun = '111013';
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Aset Tetap (12)
|
||||||
case 'tanah':
|
case 'tanah':
|
||||||
|
$kodeAkun = '112001';
|
||||||
|
break;
|
||||||
case 'gedung':
|
case 'gedung':
|
||||||
|
$kodeAkun = '112002';
|
||||||
|
break;
|
||||||
case 'kendaraan':
|
case 'kendaraan':
|
||||||
|
$kodeAkun = '112003';
|
||||||
|
break;
|
||||||
case 'mesin':
|
case 'mesin':
|
||||||
|
$kodeAkun = '112004';
|
||||||
|
break;
|
||||||
case 'perabotan':
|
case 'perabotan':
|
||||||
case 'hak':
|
$kodeAkun = '112005';
|
||||||
|
break;
|
||||||
|
case 'hak paten':
|
||||||
|
$kodeAkun = '112006';
|
||||||
|
break;
|
||||||
|
case 'hak cipta':
|
||||||
|
$kodeAkun = '112007';
|
||||||
|
break;
|
||||||
case 'goodwill':
|
case 'goodwill':
|
||||||
case 'merek':
|
$kodeAkun = '112008';
|
||||||
$kodeDasar = 1;
|
break;
|
||||||
|
case 'merek dagang':
|
||||||
|
$kodeAkun = '112009';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Utang (Kewajiban)
|
// Utang Lancar (21)
|
||||||
case 'utang':
|
case 'utang usaha':
|
||||||
case 'kredit':
|
$kodeAkun = '121001';
|
||||||
$kodeDasar = 2;
|
break;
|
||||||
|
case 'utang wesel':
|
||||||
|
$kodeAkun = '121002';
|
||||||
|
break;
|
||||||
|
case 'utang gaji':
|
||||||
|
$kodeAkun = '121003';
|
||||||
|
break;
|
||||||
|
case 'utang bunga':
|
||||||
|
$kodeAkun = '121004';
|
||||||
|
break;
|
||||||
|
case 'utang pajak':
|
||||||
|
$kodeAkun = '121005';
|
||||||
|
break;
|
||||||
|
case 'utang dividen':
|
||||||
|
$kodeAkun = '121006';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Modal (Ekuitas)
|
// Utang Jangka Panjang (22)
|
||||||
case 'modal':
|
case 'utang hipotek':
|
||||||
case 'laba':
|
$kodeAkun = '122001';
|
||||||
|
break;
|
||||||
|
case 'utang obligasi':
|
||||||
|
$kodeAkun = '122002';
|
||||||
|
break;
|
||||||
|
case 'kredit investasi':
|
||||||
|
$kodeAkun = '122003';
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Modal (Ekuitas) (31)
|
||||||
|
case 'modal pemilik':
|
||||||
|
$kodeAkun = '131001';
|
||||||
|
break;
|
||||||
|
case 'modal saham':
|
||||||
|
$kodeAkun = '131002';
|
||||||
|
break;
|
||||||
|
case 'laba ditahan':
|
||||||
|
$kodeAkun = '131003';
|
||||||
|
break;
|
||||||
case 'dividen':
|
case 'dividen':
|
||||||
|
$kodeAkun = '131004';
|
||||||
|
break;
|
||||||
case 'prive':
|
case 'prive':
|
||||||
$kodeDasar = 3;
|
$kodeAkun = '131005';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Pendapatan
|
// Pendapatan Operasional (41)
|
||||||
case 'pendapatan':
|
case 'pendapatan penjualan':
|
||||||
$kodeDasar = 4;
|
$kodeAkun = '241001';
|
||||||
|
break;
|
||||||
|
case 'pendapatan jasa':
|
||||||
|
$kodeAkun = '241002';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Beban
|
// Pendapatan Non-Operasional (42)
|
||||||
case 'beban':
|
case 'pendapatan bunga':
|
||||||
$kodeDasar = 5;
|
$kodeAkun = '242001';
|
||||||
|
break;
|
||||||
|
case 'pendapatan sewa':
|
||||||
|
$kodeAkun = '242002';
|
||||||
|
break;
|
||||||
|
case 'pendapatan komisi':
|
||||||
|
$kodeAkun = '242003';
|
||||||
|
break;
|
||||||
|
case 'pendapatan lain':
|
||||||
|
$kodeAkun = '242004';
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Beban Operasional (51)
|
||||||
|
case 'beban gaji':
|
||||||
|
$kodeAkun = '251001';
|
||||||
|
break;
|
||||||
|
case 'beban sewa':
|
||||||
|
$kodeAkun = '251002';
|
||||||
|
break;
|
||||||
|
case 'beban utilitas':
|
||||||
|
$kodeAkun = '251003';
|
||||||
|
break;
|
||||||
|
case 'beban penyusutan':
|
||||||
|
$kodeAkun = '251004';
|
||||||
|
break;
|
||||||
|
case 'beban supplies':
|
||||||
|
$kodeAkun = '251005';
|
||||||
|
break;
|
||||||
|
case 'beban iklan':
|
||||||
|
$kodeAkun = '251006';
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Beban Non-Operasional (52)
|
||||||
|
case 'beban bunga':
|
||||||
|
$kodeAkun = '252001';
|
||||||
|
break;
|
||||||
|
case 'beban lain':
|
||||||
|
$kodeAkun = '252002';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
$kodeDasar = 0; // Kode default jika kategori tidak dikenali
|
$kodeAkun = '0000';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ambil jumlah transaksi dengan kode dasar yang sama
|
return $kodeAkun;
|
||||||
$lastTransaction = UangMasukModel::where('kode', 'like', $kodeDasar . '%')->orderBy('id', 'desc')->first();
|
|
||||||
$nextNumber = $lastTransaction ? intval(substr($lastTransaction->kode, 1)) + 1 : 1;
|
|
||||||
|
|
||||||
// Gabungkan kode dasar dengan nomor urut
|
|
||||||
return $kodeDasar . str_pad($nextNumber, 2, '0', STR_PAD_LEFT);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -25,10 +25,26 @@ class UangMasukModel extends Model
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
'Tanggal',
|
'Tanggal',
|
||||||
'kode',
|
'kode',
|
||||||
|
'kode2',
|
||||||
|
'kode3',
|
||||||
|
'kode4',
|
||||||
|
'kode5',
|
||||||
'kategori',
|
'kategori',
|
||||||
|
'kategori2',
|
||||||
|
'kategori3',
|
||||||
|
'kategori4',
|
||||||
|
'kategori5',
|
||||||
'keterangan',
|
'keterangan',
|
||||||
'uang_masuk',
|
'uang_masuk',
|
||||||
|
'uang_masuk2',
|
||||||
|
'uang_masuk3',
|
||||||
|
'uang_masuk4',
|
||||||
|
'uang_masuk5',
|
||||||
'uang_keluar',
|
'uang_keluar',
|
||||||
|
'uang_keluar2',
|
||||||
|
'uang_keluar3',
|
||||||
|
'uang_keluar4',
|
||||||
|
'uang_keluar5',
|
||||||
'gaji'
|
'gaji'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -42,7 +58,15 @@ class UangMasukModel extends Model
|
||||||
protected $casts = [
|
protected $casts = [
|
||||||
'Tanggal' => 'date',
|
'Tanggal' => 'date',
|
||||||
'uang_masuk' => 'decimal:2',
|
'uang_masuk' => 'decimal:2',
|
||||||
|
'uang_masuk2' => 'decimal:2',
|
||||||
|
'uang_masuk3' => 'decimal:2',
|
||||||
|
'uang_masuk4' => 'decimal:2',
|
||||||
|
'uang_masuk5' => 'decimal:2',
|
||||||
'uang_keluar' => 'decimal:2',
|
'uang_keluar' => 'decimal:2',
|
||||||
|
'uang_keluar2' => 'decimal:2',
|
||||||
|
'uang_keluar3' => 'decimal:2',
|
||||||
|
'uang_keluar4' => 'decimal:2',
|
||||||
|
'uang_keluar5' => 'decimal:2',
|
||||||
'gaji' => 'decimal:2',
|
'gaji' => 'decimal:2',
|
||||||
];
|
];
|
||||||
}
|
}
|
|
@ -99,13 +99,11 @@
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="bg-gray-100 text-gray-600 uppercase text-sm leading-normal">
|
<tr class="bg-gray-100 text-gray-600 uppercase text-sm leading-normal">
|
||||||
<th class="py-3 px-4 text-left">No</th>
|
<th class="py-3 px-4 text-left">No</th>
|
||||||
<!-- <th class="py-3 px-4 text-left">Tanggal</th> -->
|
|
||||||
<th class="py-3 px-4 text-left">Kode Akun</th>
|
<th class="py-3 px-4 text-left">Kode Akun</th>
|
||||||
<th class="py-3 px-4 text-left">Nama Akun</th>
|
<th class="py-3 px-4 text-left">Nama Akun</th>
|
||||||
<th class="py-3 px-4 text-left">Keterangan</th>
|
<th class="py-3 px-4 text-left">Keterangan</th>
|
||||||
<th class="py-3 px-4 text-right">Debit</th>
|
<th class="py-3 px-4 text-right">Debit</th>
|
||||||
<th class="py-3 px-4 text-right">Kredit</th>
|
<th class="py-3 px-4 text-right">Kredit</th>
|
||||||
<th class="py-3 px-4 text-right">Saldo</th>
|
|
||||||
<th class="py-3 px-4 text-center">Aksi</th>
|
<th class="py-3 px-4 text-center">Aksi</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
@ -113,21 +111,50 @@
|
||||||
<!-- Looping data dari database -->
|
<!-- Looping data dari database -->
|
||||||
@php
|
@php
|
||||||
$no = 1;
|
$no = 1;
|
||||||
$runningSaldo = 0;
|
|
||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
@foreach($laporan as $item)
|
@foreach($laporan as $item)
|
||||||
@php
|
@php
|
||||||
$debit = $item->uang_masuk;
|
$debit = $item->uang_masuk;
|
||||||
$kredit = $item->uang_keluar + $item->gaji;
|
$kredit = $item->uang_keluar + $item->gaji;
|
||||||
$runningSaldo += $debit - $kredit;
|
|
||||||
@endphp
|
@endphp
|
||||||
<tr class="border-b border-gray-200 hover:bg-gray-50">
|
<tr class="border-b border-gray-200 hover:bg-gray-50">
|
||||||
<td class="py-3 px-4">{{ $no++ }}</td>
|
<td class="py-3 px-4">{{ $no++ }}</td>
|
||||||
<!-- <td class="py-3 px-4">{{ $item->Tanggal->format('Y-m-d') }}</td> -->
|
<td class="py-3 px-4">
|
||||||
<td class="py-3 px-4">{{ $item->kode }}</td>
|
<div class="flex flex-col">
|
||||||
<td class="py-3 px-4">{{ $item->kategori }}</td>
|
<span>{{ $item->kode }}</span>
|
||||||
<td class="py-3 px-4">{{ $item->keterangan }} {{ $item->nama_karyawan }}</td>
|
@if(isset($item->kode2))
|
||||||
|
<span class="text-sm text-gray-500">{{ $item->kode2 }}</span>
|
||||||
|
@endif
|
||||||
|
@if(isset($item->kode3))
|
||||||
|
<span class="text-sm text-gray-500">{{ $item->kode3 }}</span>
|
||||||
|
@endif
|
||||||
|
@if(isset($item->kode4))
|
||||||
|
<span class="text-sm text-gray-500">{{ $item->kode4 }}</span>
|
||||||
|
@endif
|
||||||
|
@if(isset($item->kode5))
|
||||||
|
<span class="text-sm text-gray-500">{{ $item->kode5 }}</span>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="py-3 px-4">
|
||||||
|
<div class="flex flex-col">
|
||||||
|
<span>{{ $item->kategori }}</span>
|
||||||
|
@if(isset($item->kategori2))
|
||||||
|
<span class="text-sm text-gray-500">{{ $item->kategori2 }}</span>
|
||||||
|
@endif
|
||||||
|
@if(isset($item->kategori3))
|
||||||
|
<span class="text-sm text-gray-500">{{ $item->kategori3 }}</span>
|
||||||
|
@endif
|
||||||
|
@if(isset($item->kategori4))
|
||||||
|
<span class="text-sm text-gray-500">{{ $item->kategori4 }}</span>
|
||||||
|
@endif
|
||||||
|
@if(isset($item->kategori5))
|
||||||
|
<span class="text-sm text-gray-500">{{ $item->kategori5 }}</span>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="py-3 px-4">{{ $item->keterangan }} {{ $item->nama_karyawan }}</td>
|
||||||
<td class="py-3 px-4 text-right text-green-600">
|
<td class="py-3 px-4 text-right text-green-600">
|
||||||
@if($debit > 0)
|
@if($debit > 0)
|
||||||
Rp {{ number_format($debit, 0, ',', '.') }}
|
Rp {{ number_format($debit, 0, ',', '.') }}
|
||||||
|
@ -142,7 +169,6 @@
|
||||||
-
|
-
|
||||||
@endif
|
@endif
|
||||||
</td>
|
</td>
|
||||||
<td class="py-3 px-4 text-right font-medium">Rp {{ number_format($runningSaldo, 0, ',', '.') }}</td>
|
|
||||||
<td class="py-3 px-4 text-center">
|
<td class="py-3 px-4 text-center">
|
||||||
<div class="flex justify-center space-x-2">
|
<div class="flex justify-center space-x-2">
|
||||||
<button class="text-blue-600 hover:text-blue-800" title="Edit">
|
<button class="text-blue-600 hover:text-blue-800" title="Edit">
|
||||||
|
@ -158,10 +184,9 @@
|
||||||
</tbody>
|
</tbody>
|
||||||
<tfoot>
|
<tfoot>
|
||||||
<tr class="bg-gray-50 font-bold">
|
<tr class="bg-gray-50 font-bold">
|
||||||
<td colspan="5" class="py-3 px-4 text-right">Total:</td>
|
<td colspan="4" class="py-3 px-4 text-right">Total:</td>
|
||||||
<td class="py-3 px-4 text-right text-green-600">Rp {{ number_format($totalUangMasuk, 0, ',', '.') }}</td>
|
<td class="py-3 px-4 text-right text-green-600">Rp {{ number_format($totalUangMasuk, 0, ',', '.') }}</td>
|
||||||
<td class="py-3 px-4 text-right text-red-600">Rp {{ number_format($totalKredit, 0, ',', '.') }}</td>
|
<td class="py-3 px-4 text-right text-red-600">Rp {{ number_format($totalKredit, 0, ',', '.') }}</td>
|
||||||
<td class="py-3 px-4 text-right">Rp {{ number_format($saldo, 0, ',', '.') }}</td>
|
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tfoot>
|
</tfoot>
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
<div class="bg-white rounded-lg shadow-lg p-6">
|
<div class="bg-white rounded-lg shadow-lg p-6">
|
||||||
<form id="uangMasukForm" action="{{ route('uangmasuk.store') }}" method="POST" class="space-y-4">
|
<form id="uangMasukForm" action="{{ route('uangmasuk.store') }}" method="POST" class="space-y-4">
|
||||||
@csrf <!-- Token CSRF untuk keamanan -->
|
@csrf
|
||||||
<!-- Tanggal -->
|
<!-- Tanggal -->
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="block text-sm font-medium text-gray-700 mb-1">
|
<label class="block text-sm font-medium text-gray-700 mb-1">
|
||||||
|
@ -24,114 +24,6 @@ class="w-full border rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Nama Akun -->
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="block text-sm font-medium text-gray-700 mb-1">
|
|
||||||
Nama Akun <span class="text-red-600">*</span>
|
|
||||||
</label>
|
|
||||||
<select
|
|
||||||
name="kategori"
|
|
||||||
class="w-full border rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500"
|
|
||||||
required
|
|
||||||
onchange="updateTotalUang(this.value)"
|
|
||||||
>
|
|
||||||
<option value="" disabled selected>Pilih Kategori Akun</option>
|
|
||||||
|
|
||||||
<optgroup label="1. HARTA (ASET) (11)">
|
|
||||||
<!-- Aset Lancar -->
|
|
||||||
<optgroup label=" Aset Lancar (1)">
|
|
||||||
<option value="kas" data-kode="1101">Kas/Kas Kecil (001) - Debit</option>
|
|
||||||
<option value="bank" data-kode="1102">Bank (002) - Debit</option>
|
|
||||||
<option value="piutang usaha" data-kode="1103">Piutang Usaha/Dagang (003) - Debit</option>
|
|
||||||
<option value="piutang wesel" data-kode="1104">Piutang Wesel (004) - Debit</option>
|
|
||||||
<option value="piutang karyawan" data-kode="1105">Piutang Karyawan (005) - Debit</option>
|
|
||||||
<option value="piutang lain" data-kode="1106">Piutang Lain-lain (006) - Debit</option>
|
|
||||||
<option value="persediaan barang" data-kode="1107">Persediaan Barang Dagang (007) - Debit</option>
|
|
||||||
<option value="persediaan bahan" data-kode="1108">Persediaan Bahan Baku/Supplies (008) - Debit</option>
|
|
||||||
<option value="sewa dibayar dimuka" data-kode="1109">Sewa Dibayar di Muka (009) - Debit</option>
|
|
||||||
<option value="asuransi dibayar_dimuka" data-kode="1110">Asuransi Dibayar di Muka (010) - Debit</option>
|
|
||||||
<option value="perlengkapan kantor" data-kode="1111">Perlengkapan Kantor (011) - Debit</option>
|
|
||||||
<option value="biaya dibayar dimuka" data-kode="1112">Biaya Dibayar di Muka (012) - Debit</option>
|
|
||||||
<option value="investasi pendek" data-kode="1113">Investasi Jangka Pendek (013) - Debit</option>
|
|
||||||
</optgroup>
|
|
||||||
|
|
||||||
<!-- Aset Tetap -->
|
|
||||||
<optgroup label=" Aset Tetap (2)">
|
|
||||||
<option value="tanah" data-kode="1201">Tanah (001) - Debit</option>
|
|
||||||
<option value="gedung" data-kode="1202">Gedung/Bangunan (002) - Debit</option>
|
|
||||||
<option value="kendaraan" data-kode="1203">Kendaraan (003) - Debit</option>
|
|
||||||
<option value="mesin" data-kode="1204">Mesin dan Peralatan (004) - Debit</option>
|
|
||||||
<option value="perabotan" data-kode="1205">Perabotan Kantor (005) - Debit</option>
|
|
||||||
<option value="hak paten" data-kode="1206">Hak Paten (006) - Debit</option>
|
|
||||||
<option value="hak cipta" data-kode="1207">Hak Cipta (007) - Debit</option>
|
|
||||||
<option value="goodwill" data-kode="1208">Goodwill (008) - Debit</option>
|
|
||||||
<option value="merek dagang" data-kode="1209">Merek Dagang (009) - Debit</option>
|
|
||||||
</optgroup>
|
|
||||||
</optgroup>
|
|
||||||
|
|
||||||
<optgroup label="2. UTANG (KEWAJIBAN) (12)">
|
|
||||||
<!-- Utang Lancar -->
|
|
||||||
<optgroup label=" Utang Lancar (1)">
|
|
||||||
<option value="utang usaha" data-kode="2101">Utang Usaha/Dagang (001) - Kredit</option>
|
|
||||||
<option value="utang wesel" data-kode="2102">Utang Wesel (002) - Kredit</option>
|
|
||||||
<option value="utang gaji" data-kode="2103">Utang Gaji (003) - Kredit</option>
|
|
||||||
<option value="utang bunga" data-kode="2104">Utang Bunga (004) - Kredit</option>
|
|
||||||
<option value="utang pajak" data-kode="2105">Utang Pajak (005) - Kredit</option>
|
|
||||||
<option value="utang dividen" data-kode="2106">Utang Dividen (006) - Kredit</option>
|
|
||||||
</optgroup>
|
|
||||||
|
|
||||||
<!-- Utang Jangka Panjang -->
|
|
||||||
<optgroup label=" Utang Jangka Panjang (2)">
|
|
||||||
<option value="utang hipotek" data-kode="2201">Utang Hipotek (001) - Kredit</option>
|
|
||||||
<option value="utang obligasi" data-kode="2202">Utang Obligasi (002) - Kredit</option>
|
|
||||||
<option value="kredit investasi" data-kode="2203">Kredit Investasi (003) - Kredit</option>
|
|
||||||
</optgroup>
|
|
||||||
</optgroup>
|
|
||||||
|
|
||||||
<optgroup label="3. MODAL (EKUITAS) (131)">
|
|
||||||
<option value="modal pemilik" data-kode="3101">Modal Pemilik/Modal Disetor (001) - Kredit</option>
|
|
||||||
<option value="modal saham" data-kode="3102">Modal Saham (002) - Kredit</option>
|
|
||||||
<option value="laba ditahan" data-kode="3103">Laba Ditahan (003) - Kredit</option>
|
|
||||||
<option value="dividen" data-kode="3104">Dividen (004) - Kredit</option>
|
|
||||||
<option value="prive" data-kode="3105">Prive (Pengambilan Pribadi) (005) - Kredit</option>
|
|
||||||
</optgroup>
|
|
||||||
|
|
||||||
<optgroup label="4. PENDAPATAN (21)">
|
|
||||||
<!-- Pendapatan Operasional -->
|
|
||||||
<optgroup label=" Pendapatan Operasional (1)">
|
|
||||||
<option value="pendapatan penjualan" data-kode="4101">Pendapatan Penjualan (001) - Kredit</option>
|
|
||||||
<option value="pendapatan jasa" data-kode="4102">Pendapatan Jasa (002) - Kredit</option>
|
|
||||||
</optgroup>
|
|
||||||
|
|
||||||
<!-- Pendapatan Non-Operasional -->
|
|
||||||
<optgroup label=" Pendapatan Non-Operasional (2)">
|
|
||||||
<option value="pendapatan bunga" data-kode="4201">Pendapatan Bunga (001) - Kredit</option>
|
|
||||||
<option value="pendapatan sewa" data-kode="4202">Pendapatan Sewa (002) - Kredit</option>
|
|
||||||
<option value="pendapatan komisi" data-kode="4203">Pendapatan Komisi (003) - Kredit</option>
|
|
||||||
<option value="pendapatan lain" data-kode="4204">Pendapatan Lain-lain (004) - Kredit</option>
|
|
||||||
</optgroup>
|
|
||||||
</optgroup>
|
|
||||||
|
|
||||||
<optgroup label="5. BEBAN (22)">
|
|
||||||
<!-- Beban Operasional -->
|
|
||||||
<optgroup label=" Beban Operasional (1)">
|
|
||||||
<option value="beban gaji" data-kode="5101">Beban Gaji (001) - Debit</option>
|
|
||||||
<option value="beban sewa" data-kode="5102">Beban Sewa (002) - Debit</option>
|
|
||||||
<option value="beban utilitas" data-kode="5103">Beban Listrik, Air, dan Telepon (003) - Debit</option>
|
|
||||||
<option value="beban penyusutan" data-kode="5104">Beban Penyusutan (004) - Debit</option>
|
|
||||||
<option value="beban supplies" data-kode="5105">Beban Supplies/Perlengkapan (005) - Debit</option>
|
|
||||||
<option value="beban iklan" data-kode="5106">Beban Iklan/Promosi (006) - Debit</option>
|
|
||||||
</optgroup>
|
|
||||||
|
|
||||||
<!-- Beban Non-Operasional -->
|
|
||||||
<optgroup label=" Beban Non-Operasional (2)">
|
|
||||||
<option value="beban bunga" data-kode="5201">Beban Bunga (001) - Debit</option>
|
|
||||||
<option value="beban lain" data-kode="5202">Beban Lain-lain (002) - Debit</option>
|
|
||||||
</optgroup>
|
|
||||||
</optgroup>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Keterangan -->
|
<!-- Keterangan -->
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="block text-sm font-medium text-gray-700 mb-1">
|
<label class="block text-sm font-medium text-gray-700 mb-1">
|
||||||
|
@ -141,35 +33,174 @@ class="w-full border rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:
|
||||||
name="keterangan"
|
name="keterangan"
|
||||||
class="w-full border rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500"
|
class="w-full border rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500"
|
||||||
rows="3"
|
rows="3"
|
||||||
placeholder="Masukkan keterangan uang masuk"
|
placeholder="Masukkan keterangan transaksi"
|
||||||
required
|
required
|
||||||
></textarea>
|
></textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Total Uang -->
|
<!-- Container untuk rekening-rekening -->
|
||||||
<div class="form-group">
|
<div id="rekening-container">
|
||||||
<label class="block text-sm font-medium text-gray-700 mb-1">
|
<!-- Template Rekening -->
|
||||||
Total Uang <span class="text-red-600">*</span>
|
<div class="rekening-entry border-b pb-4 mb-4">
|
||||||
</label>
|
<div class="flex justify-between items-center mb-2">
|
||||||
<div class="relative">
|
<h3 class="font-medium text-gray-700">Rekening 1</h3>
|
||||||
<span class="absolute left-3 top-2 text-gray-600">Rp</span>
|
</div>
|
||||||
<input
|
|
||||||
type="text"
|
<!-- Nama Akun -->
|
||||||
name="uang_masuk"
|
<div class="form-group mb-4">
|
||||||
class="w-full border rounded-lg pl-10 pr-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500"
|
<label class="block text-sm font-medium text-gray-700 mb-1">
|
||||||
placeholder="0"
|
Nama Akun <span class="text-red-600">*</span>
|
||||||
required
|
</label>
|
||||||
oninput="formatNumber(this)"
|
<select
|
||||||
>
|
name="kategori[]"
|
||||||
|
class="w-full border rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500"
|
||||||
|
required
|
||||||
|
>
|
||||||
|
<option value="" disabled selected>Pilih Kategori Akun</option>
|
||||||
|
<optgroup label="1. HARTA (ASET) (11)">
|
||||||
|
<!-- Aset Lancar -->
|
||||||
|
<optgroup label=" Aset Lancar (1)">
|
||||||
|
<option value="kas" data-kode="1101">Kas/Kas Kecil (001) - Debit</option>
|
||||||
|
<option value="bank" data-kode="1102">Bank (002) - Debit</option>
|
||||||
|
<option value="piutang usaha" data-kode="1103">Piutang Usaha/Dagang (003) - Debit</option>
|
||||||
|
<option value="piutang wesel" data-kode="1104">Piutang Wesel (004) - Debit</option>
|
||||||
|
<option value="piutang karyawan" data-kode="1105">Piutang Karyawan (005) - Debit</option>
|
||||||
|
<option value="piutang lain" data-kode="1106">Piutang Lain-lain (006) - Debit</option>
|
||||||
|
<option value="persediaan barang" data-kode="1107">Persediaan Barang Dagang (007) - Debit</option>
|
||||||
|
<option value="persediaan bahan" data-kode="1108">Persediaan Bahan Baku/Supplies (008) - Debit</option>
|
||||||
|
<option value="sewa dibayar dimuka" data-kode="1109">Sewa Dibayar di Muka (009) - Debit</option>
|
||||||
|
<option value="asuransi dibayar_dimuka" data-kode="1110">Asuransi Dibayar di Muka (010) - Debit</option>
|
||||||
|
<option value="perlengkapan kantor" data-kode="1111">Perlengkapan Kantor (011) - Debit</option>
|
||||||
|
<option value="biaya dibayar dimuka" data-kode="1112">Biaya Dibayar di Muka (012) - Debit</option>
|
||||||
|
<option value="investasi pendek" data-kode="1113">Investasi Jangka Pendek (013) - Debit</option>
|
||||||
|
</optgroup>
|
||||||
|
|
||||||
|
<!-- Aset Tetap -->
|
||||||
|
<optgroup label=" Aset Tetap (2)">
|
||||||
|
<option value="tanah" data-kode="1201">Tanah (001) - Debit</option>
|
||||||
|
<option value="gedung" data-kode="1202">Gedung/Bangunan (002) - Debit</option>
|
||||||
|
<option value="kendaraan" data-kode="1203">Kendaraan (003) - Debit</option>
|
||||||
|
<option value="mesin" data-kode="1204">Mesin dan Peralatan (004) - Debit</option>
|
||||||
|
<option value="perabotan" data-kode="1205">Perabotan Kantor (005) - Debit</option>
|
||||||
|
<option value="hak paten" data-kode="1206">Hak Paten (006) - Debit</option>
|
||||||
|
<option value="hak cipta" data-kode="1207">Hak Cipta (007) - Debit</option>
|
||||||
|
<option value="goodwill" data-kode="1208">Goodwill (008) - Debit</option>
|
||||||
|
<option value="merek dagang" data-kode="1209">Merek Dagang (009) - Debit</option>
|
||||||
|
</optgroup>
|
||||||
|
</optgroup>
|
||||||
|
|
||||||
|
<optgroup label="2. UTANG (KEWAJIBAN) (12)">
|
||||||
|
<!-- Utang Lancar -->
|
||||||
|
<optgroup label=" Utang Lancar (1)">
|
||||||
|
<option value="utang usaha" data-kode="2101">Utang Usaha/Dagang (001) - Kredit</option>
|
||||||
|
<option value="utang wesel" data-kode="2102">Utang Wesel (002) - Kredit</option>
|
||||||
|
<option value="utang gaji" data-kode="2103">Utang Gaji (003) - Kredit</option>
|
||||||
|
<option value="utang bunga" data-kode="2104">Utang Bunga (004) - Kredit</option>
|
||||||
|
<option value="utang pajak" data-kode="2105">Utang Pajak (005) - Kredit</option>
|
||||||
|
<option value="utang dividen" data-kode="2106">Utang Dividen (006) - Kredit</option>
|
||||||
|
</optgroup>
|
||||||
|
|
||||||
|
<!-- Utang Jangka Panjang -->
|
||||||
|
<optgroup label=" Utang Jangka Panjang (2)">
|
||||||
|
<option value="utang hipotek" data-kode="2201">Utang Hipotek (001) - Kredit</option>
|
||||||
|
<option value="utang obligasi" data-kode="2202">Utang Obligasi (002) - Kredit</option>
|
||||||
|
<option value="kredit investasi" data-kode="2203">Kredit Investasi (003) - Kredit</option>
|
||||||
|
</optgroup>
|
||||||
|
</optgroup>
|
||||||
|
|
||||||
|
<optgroup label="3. MODAL (EKUITAS) (131)">
|
||||||
|
<option value="modal pemilik" data-kode="3101">Modal Pemilik/Modal Disetor (001) - Kredit</option>
|
||||||
|
<option value="modal saham" data-kode="3102">Modal Saham (002) - Kredit</option>
|
||||||
|
<option value="laba ditahan" data-kode="3103">Laba Ditahan (003) - Kredit</option>
|
||||||
|
<option value="dividen" data-kode="3104">Dividen (004) - Kredit</option>
|
||||||
|
<option value="prive" data-kode="3105">Prive (Pengambilan Pribadi) (005) - Kredit</option>
|
||||||
|
</optgroup>
|
||||||
|
|
||||||
|
<optgroup label="4. PENDAPATAN (21)">
|
||||||
|
<!-- Pendapatan Operasional -->
|
||||||
|
<optgroup label=" Pendapatan Operasional (1)">
|
||||||
|
<option value="pendapatan penjualan" data-kode="4101">Pendapatan Penjualan (001) - Kredit</option>
|
||||||
|
<option value="pendapatan jasa" data-kode="4102">Pendapatan Jasa (002) - Kredit</option>
|
||||||
|
</optgroup>
|
||||||
|
|
||||||
|
<!-- Pendapatan Non-Operasional -->
|
||||||
|
<optgroup label=" Pendapatan Non-Operasional (2)">
|
||||||
|
<option value="pendapatan bunga" data-kode="4201">Pendapatan Bunga (001) - Kredit</option>
|
||||||
|
<option value="pendapatan sewa" data-kode="4202">Pendapatan Sewa (002) - Kredit</option>
|
||||||
|
<option value="pendapatan komisi" data-kode="4203">Pendapatan Komisi (003) - Kredit</option>
|
||||||
|
<option value="pendapatan lain" data-kode="4204">Pendapatan Lain-lain (004) - Kredit</option>
|
||||||
|
</optgroup>
|
||||||
|
</optgroup>
|
||||||
|
|
||||||
|
<optgroup label="5. BEBAN (22)">
|
||||||
|
<!-- Beban Operasional -->
|
||||||
|
<optgroup label=" Beban Operasional (1)">
|
||||||
|
<option value="beban gaji" data-kode="5101">Beban Gaji (001) - Debit</option>
|
||||||
|
<option value="beban sewa" data-kode="5102">Beban Sewa (002) - Debit</option>
|
||||||
|
<option value="beban utilitas" data-kode="5103">Beban Listrik, Air, dan Telepon (003) - Debit</option>
|
||||||
|
<option value="beban penyusutan" data-kode="5104">Beban Penyusutan (004) - Debit</option>
|
||||||
|
<option value="beban supplies" data-kode="5105">Beban Supplies/Perlengkapan (005) - Debit</option>
|
||||||
|
<option value="beban iklan" data-kode="5106">Beban Iklan/Promosi (006) - Debit</option>
|
||||||
|
</optgroup>
|
||||||
|
|
||||||
|
<!-- Beban Non-Operasional -->
|
||||||
|
<optgroup label=" Beban Non-Operasional (2)">
|
||||||
|
<option value="beban bunga" data-kode="5201">Beban Bunga (001) - Debit</option>
|
||||||
|
<option value="beban lain" data-kode="5202">Beban Lain-lain (002) - Debit</option>
|
||||||
|
</optgroup>
|
||||||
|
</optgroup>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Posisi -->
|
||||||
|
<div class="form-group mb-4">
|
||||||
|
<label class="block text-sm font-medium text-gray-700 mb-1">
|
||||||
|
Posisi <span class="text-red-600">*</span>
|
||||||
|
</label>
|
||||||
|
<select
|
||||||
|
name="posisi[]"
|
||||||
|
class="w-full border rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500"
|
||||||
|
required
|
||||||
|
>
|
||||||
|
<option value="" disabled selected>Pilih Posisi</option>
|
||||||
|
<option value="debit">Debit</option>
|
||||||
|
<option value="kredit">Kredit</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Nominal -->
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="block text-sm font-medium text-gray-700 mb-1">
|
||||||
|
Nominal <span class="text-red-600">*</span>
|
||||||
|
</label>
|
||||||
|
<div class="relative">
|
||||||
|
<span class="absolute left-3 top-2 text-gray-600">Rp</span>
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
name="nominal[]"
|
||||||
|
class="w-full border rounded-lg pl-10 pr-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500"
|
||||||
|
placeholder="0"
|
||||||
|
required
|
||||||
|
oninput="formatNumber(this); validateBalance();"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p class="text-xs text-gray-500 mt-1">Masukkan angka tanpa tanda titik atau koma</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Input Tersembunyi untuk Kode -->
|
<!-- Tombol Tambah Rekening -->
|
||||||
<input type="hidden" name="kode" id="kodeInput" value="">
|
<div class="flex justify-center">
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onclick="tambahRekening()"
|
||||||
|
class="px-4 py-2 bg-green-500 text-white rounded-lg hover:bg-green-600 transition-colors"
|
||||||
|
>
|
||||||
|
<i class="fas fa-plus mr-2"></i>Tambah Rekening
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- Tombol Submit -->
|
<!-- Tombol Submit -->
|
||||||
<div class="flex justify-end space-x-3 pt-4">
|
<div class="flex justify-end space-x-3 pt-4 border-t mt-4">
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
class="px-4 py-2 border rounded-lg hover:bg-gray-100 transition-colors"
|
class="px-4 py-2 border rounded-lg hover:bg-gray-100 transition-colors"
|
||||||
|
@ -180,6 +211,7 @@ class="px-4 py-2 border rounded-lg hover:bg-gray-100 transition-colors"
|
||||||
<button
|
<button
|
||||||
type="submit"
|
type="submit"
|
||||||
class="px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors"
|
class="px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors"
|
||||||
|
id="submitBtn"
|
||||||
>
|
>
|
||||||
Simpan
|
Simpan
|
||||||
</button>
|
</button>
|
||||||
|
@ -193,29 +225,116 @@ class="px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-
|
||||||
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
function formatNumber(input) {
|
let rekeningCount = 1;
|
||||||
// Hapus semua karakter non-digit
|
const MAX_REKENING = 5;
|
||||||
let value = input.value.replace(/\D/g, '');
|
|
||||||
|
|
||||||
// Format angka dengan pemisah ribuan
|
function tambahRekening() {
|
||||||
|
if (rekeningCount >= MAX_REKENING) {
|
||||||
|
Swal.fire({
|
||||||
|
icon: 'warning',
|
||||||
|
title: 'Peringatan',
|
||||||
|
text: 'Maksimal 5 rekening per transaksi',
|
||||||
|
confirmButtonText: 'OK'
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
rekeningCount++;
|
||||||
|
const container = document.getElementById('rekening-container');
|
||||||
|
const template = document.querySelector('.rekening-entry').cloneNode(true);
|
||||||
|
|
||||||
|
// Update judul rekening
|
||||||
|
template.querySelector('h3').textContent = `Rekening ${rekeningCount}`;
|
||||||
|
|
||||||
|
// Reset nilai-nilai form
|
||||||
|
template.querySelector('select[name="kategori[]"]').value = '';
|
||||||
|
template.querySelector('select[name="posisi[]"]').value = '';
|
||||||
|
template.querySelector('input[name="nominal[]"]').value = '';
|
||||||
|
|
||||||
|
// Tambahkan tombol hapus untuk rekening tambahan
|
||||||
|
const headerDiv = template.querySelector('.flex');
|
||||||
|
const deleteButton = document.createElement('button');
|
||||||
|
deleteButton.type = 'button';
|
||||||
|
deleteButton.className = 'text-red-500 hover:text-red-700';
|
||||||
|
deleteButton.innerHTML = '<i class="fas fa-trash"></i>';
|
||||||
|
deleteButton.onclick = function() {
|
||||||
|
template.remove();
|
||||||
|
rekeningCount--;
|
||||||
|
validateBalance();
|
||||||
|
};
|
||||||
|
headerDiv.appendChild(deleteButton);
|
||||||
|
|
||||||
|
container.appendChild(template);
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatNumber(input) {
|
||||||
|
let value = input.value.replace(/\D/g, '');
|
||||||
if (value !== '') {
|
if (value !== '') {
|
||||||
value = new Intl.NumberFormat('id-ID').format(value);
|
value = new Intl.NumberFormat('id-ID').format(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
input.value = value;
|
input.value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle form submission
|
function validateBalance() {
|
||||||
document.getElementById('uangMasukForm').addEventListener('submit', function(e) {
|
const nominals = document.getElementsByName('nominal[]');
|
||||||
// Jangan prevent default agar form bisa disubmit
|
const posisis = document.getElementsByName('posisi[]');
|
||||||
const uangMasukInput = document.querySelector('input[name="uang_masuk"]');
|
|
||||||
// Biarkan nilai dengan format untuk diproses di controller
|
// Pastikan semua field terisi
|
||||||
});
|
let isValid = true;
|
||||||
|
for (let i = 0; i < nominals.length; i++) {
|
||||||
|
const nominal = nominals[i].value.replace(/\D/g, '');
|
||||||
|
const posisi = posisis[i].value;
|
||||||
|
|
||||||
|
if (!nominal || !posisi) {
|
||||||
|
isValid = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const submitBtn = document.getElementById('submitBtn');
|
||||||
|
submitBtn.disabled = !isValid;
|
||||||
|
if (isValid) {
|
||||||
|
submitBtn.classList.remove('bg-gray-400');
|
||||||
|
submitBtn.classList.add('bg-blue-600', 'hover:bg-blue-700');
|
||||||
|
} else {
|
||||||
|
submitBtn.classList.add('bg-gray-400');
|
||||||
|
submitBtn.classList.remove('bg-blue-600', 'hover:bg-blue-700');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Set default date to today
|
// Set default date to today
|
||||||
document.querySelector('input[type="date"]').valueAsDate = new Date();
|
document.querySelector('input[type="date"]').valueAsDate = new Date();
|
||||||
|
|
||||||
// Menampilkan notifikasi jika ada pesan sukses atau error
|
// Event listener untuk form submit
|
||||||
|
document.getElementById('uangMasukForm').addEventListener('submit', function(e) {
|
||||||
|
const nominals = document.getElementsByName('nominal[]');
|
||||||
|
if (nominals.length < 2) {
|
||||||
|
e.preventDefault();
|
||||||
|
Swal.fire({
|
||||||
|
icon: 'error',
|
||||||
|
title: 'Error!',
|
||||||
|
text: 'Minimal harus ada 2 rekening!',
|
||||||
|
confirmButtonText: 'OK'
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Event listener untuk input nominal
|
||||||
|
document.addEventListener('input', function(e) {
|
||||||
|
if (e.target.name === 'nominal[]') {
|
||||||
|
formatNumber(e.target);
|
||||||
|
validateBalance();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Event listener untuk perubahan posisi
|
||||||
|
document.addEventListener('change', function(e) {
|
||||||
|
if (e.target.name === 'posisi[]') {
|
||||||
|
validateBalance();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
@if(session('success'))
|
@if(session('success'))
|
||||||
Swal.fire({
|
Swal.fire({
|
||||||
icon: 'success',
|
icon: 'success',
|
||||||
|
@ -233,19 +352,9 @@ function formatNumber(input) {
|
||||||
confirmButtonText: 'OK'
|
confirmButtonText: 'OK'
|
||||||
});
|
});
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
function updateTotalUang(kategori) {
|
|
||||||
const kodeInput = document.getElementById('kodeInput');
|
|
||||||
const selectedOption = document.querySelector(`select[name="kategori"] option:checked`);
|
|
||||||
|
|
||||||
if (selectedOption) {
|
|
||||||
kodeInput.value = selectedOption.getAttribute('data-kode'); // Ini tidak lagi digunakan, karena kode dihasilkan di server
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
/* Animasi fade-in saat halaman dimuat */
|
|
||||||
@keyframes fadeIn {
|
@keyframes fadeIn {
|
||||||
from {
|
from {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
|
@ -261,21 +370,12 @@ function updateTotalUang(kategori) {
|
||||||
animation: fadeIn 0.5s ease-out;
|
animation: fadeIn 0.5s ease-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Custom styling untuk input date */
|
|
||||||
input[type="date"] {
|
|
||||||
appearance: none;
|
|
||||||
-webkit-appearance: none;
|
|
||||||
padding-right: 2rem;
|
|
||||||
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E") no-repeat right 0.75rem center/1.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Hover effects */
|
|
||||||
.form-group input:hover,
|
.form-group input:hover,
|
||||||
|
.form-group select:hover,
|
||||||
.form-group textarea:hover {
|
.form-group textarea:hover {
|
||||||
border-color: #93C5FD;
|
border-color: #93C5FD;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Button animations */
|
|
||||||
button {
|
button {
|
||||||
transition: all 0.2s ease-in-out;
|
transition: all 0.2s ease-in-out;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue