update tgl 20 mei
This commit is contained in:
parent
ae63ac1618
commit
653a1814af
|
@ -37,6 +37,12 @@ public function store(Request $request)
|
||||||
if ($request->filled('keterangan_tambahan')) {
|
if ($request->filled('keterangan_tambahan')) {
|
||||||
$keterangan = $request->keterangan_tambahan;
|
$keterangan = $request->keterangan_tambahan;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Ambil gaji dari model GajiModel berdasarkan nama karyawan
|
||||||
|
$karyawan = GajiModel::where('nama', $request->keterangan)->first();
|
||||||
|
if ($karyawan) {
|
||||||
|
$data['gaji'] = $karyawan->gaji;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$keterangan = $request->keterangan_manual;
|
$keterangan = $request->keterangan_manual;
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<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" onsubmit="return validateForm(event)">
|
||||||
@csrf
|
@csrf
|
||||||
<!-- Tanggal -->
|
<!-- Tanggal -->
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
@ -57,6 +57,9 @@ class="w-full border rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:
|
||||||
@endforeach
|
@endforeach
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<!-- Hidden input untuk gaji -->
|
||||||
|
<input type="hidden" name="gaji" id="gaji_input">
|
||||||
|
|
||||||
<!-- Input Keterangan Tambahan -->
|
<!-- Input Keterangan Tambahan -->
|
||||||
<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">
|
||||||
|
@ -340,48 +343,43 @@ function formatNumber(input) {
|
||||||
input.value = value;
|
input.value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
function validateBalance() {
|
function validateForm(event) {
|
||||||
const nominals = document.getElementsByName('nominal[]');
|
event.preventDefault();
|
||||||
const posisis = document.getElementsByName('posisi[]');
|
console.log('Validating form...');
|
||||||
|
|
||||||
// Pastikan semua field terisi
|
// Validasi jumlah rekening
|
||||||
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
|
|
||||||
document.querySelector('input[type="date"]').valueAsDate = new Date();
|
|
||||||
|
|
||||||
// Event listener untuk form submit
|
|
||||||
document.getElementById('uangMasukForm').addEventListener('submit', function(e) {
|
|
||||||
const nominals = document.getElementsByName('nominal[]');
|
const nominals = document.getElementsByName('nominal[]');
|
||||||
if (nominals.length < 2) {
|
if (nominals.length < 2) {
|
||||||
e.preventDefault();
|
|
||||||
Swal.fire({
|
Swal.fire({
|
||||||
icon: 'error',
|
icon: 'error',
|
||||||
title: 'Error!',
|
title: 'Error!',
|
||||||
text: 'Minimal harus ada 2 rekening!',
|
text: 'Minimal harus ada 2 rekening!',
|
||||||
confirmButtonText: 'OK'
|
confirmButtonText: 'OK'
|
||||||
});
|
});
|
||||||
return;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validasi input rekening
|
||||||
|
let isValid = true;
|
||||||
|
for (let i = 0; i < nominals.length; i++) {
|
||||||
|
const nominal = nominals[i].value.replace(/\D/g, '');
|
||||||
|
const posisi = document.getElementsByName('posisi[]')[i].value;
|
||||||
|
const kategori = document.getElementsByName('kategori[]')[i].value;
|
||||||
|
|
||||||
|
if (!nominal || !posisi || !kategori) {
|
||||||
|
isValid = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isValid) {
|
||||||
|
Swal.fire({
|
||||||
|
icon: 'error',
|
||||||
|
title: 'Error!',
|
||||||
|
text: 'Semua field rekening harus diisi!',
|
||||||
|
confirmButtonText: 'OK'
|
||||||
|
});
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set keterangan berdasarkan input yang dipilih
|
// Set keterangan berdasarkan input yang dipilih
|
||||||
|
@ -395,33 +393,77 @@ function validateBalance() {
|
||||||
const manual = document.querySelector('textarea[name="keterangan_manual"]').value;
|
const manual = document.querySelector('textarea[name="keterangan_manual"]').value;
|
||||||
document.getElementById('keterangan').value = manual;
|
document.getElementById('keterangan').value = manual;
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
|
||||||
// Event listener untuk input nominal
|
console.log('Form validation passed, submitting...');
|
||||||
document.addEventListener('input', function(e) {
|
document.getElementById('uangMasukForm').submit();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function validateBalance() {
|
||||||
|
const nominals = document.getElementsByName('nominal[]');
|
||||||
|
const posisis = document.getElementsByName('posisi[]');
|
||||||
|
const kategoris = document.getElementsByName('kategori[]');
|
||||||
|
|
||||||
|
let isValid = true;
|
||||||
|
for (let i = 0; i < nominals.length; i++) {
|
||||||
|
const nominal = nominals[i].value.replace(/\D/g, '');
|
||||||
|
const posisi = posisis[i].value;
|
||||||
|
const kategori = kategoris[i].value;
|
||||||
|
|
||||||
|
if (!nominal || !posisi || !kategori) {
|
||||||
|
isValid = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const submitBtn = document.getElementById('submitBtn');
|
||||||
|
if (isValid) {
|
||||||
|
submitBtn.disabled = false;
|
||||||
|
submitBtn.classList.remove('bg-gray-400');
|
||||||
|
submitBtn.classList.add('bg-blue-600', 'hover:bg-blue-700');
|
||||||
|
} else {
|
||||||
|
submitBtn.disabled = true;
|
||||||
|
submitBtn.classList.add('bg-gray-400');
|
||||||
|
submitBtn.classList.remove('bg-blue-600', 'hover:bg-blue-700');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set default date to today
|
||||||
|
document.querySelector('input[type="date"]').valueAsDate = new Date();
|
||||||
|
|
||||||
|
// Event listeners
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
console.log('Page loaded');
|
||||||
|
validateBalance();
|
||||||
|
|
||||||
|
// Event listener untuk input nominal
|
||||||
|
document.addEventListener('input', function(e) {
|
||||||
if (e.target.name === 'nominal[]') {
|
if (e.target.name === 'nominal[]') {
|
||||||
formatNumber(e.target);
|
formatNumber(e.target);
|
||||||
validateBalance();
|
validateBalance();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Event listener untuk perubahan posisi
|
// Event listener untuk perubahan posisi dan kategori
|
||||||
document.addEventListener('change', function(e) {
|
document.addEventListener('change', function(e) {
|
||||||
if (e.target.name === 'posisi[]') {
|
if (e.target.name === 'posisi[]' || e.target.name === 'kategori[]') {
|
||||||
validateBalance();
|
validateBalance();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
document.getElementById('keterangan').addEventListener('change', function() {
|
// Event listener untuk perubahan karyawan
|
||||||
|
document.getElementById('keterangan').addEventListener('change', function() {
|
||||||
const selectedOption = this.options[this.selectedIndex];
|
const selectedOption = this.options[this.selectedIndex];
|
||||||
const gaji = selectedOption.getAttribute('data-gaji');
|
const gaji = selectedOption.getAttribute('data-gaji');
|
||||||
if (gaji) {
|
if (gaji) {
|
||||||
|
document.getElementById('gaji_input').value = gaji;
|
||||||
const nominalInputs = document.getElementsByName('nominal[]');
|
const nominalInputs = document.getElementsByName('nominal[]');
|
||||||
if (nominalInputs.length > 0) {
|
if (nominalInputs.length > 0) {
|
||||||
nominalInputs[0].value = new Intl.NumberFormat('id-ID').format(gaji);
|
nominalInputs[0].value = new Intl.NumberFormat('id-ID').format(gaji);
|
||||||
validateBalance();
|
validateBalance();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@if(session('success'))
|
@if(session('success'))
|
||||||
|
|
Loading…
Reference in New Issue