update tgl 20 mei

This commit is contained in:
whywdd 2025-05-20 20:06:57 +07:00
parent ae63ac1618
commit 653a1814af
2 changed files with 105 additions and 57 deletions

View File

@ -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;
} }

View File

@ -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,7 +393,48 @@ 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;
} }
});
console.log('Form validation passed, submitting...');
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 // Event listener untuk input nominal
document.addEventListener('input', function(e) { document.addEventListener('input', function(e) {
@ -405,17 +444,19 @@ function 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();
} }
}); });
// Event listener untuk perubahan karyawan
document.getElementById('keterangan').addEventListener('change', function() { 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);
@ -423,6 +464,7 @@ function validateBalance() {
} }
} }
}); });
});
@if(session('success')) @if(session('success'))
Swal.fire({ Swal.fire({