Add remaining project files (exclude ignored folders)
This commit is contained in:
@@ -0,0 +1,883 @@
|
||||
<!-- <style>
|
||||
#suggestions {
|
||||
border: 1px solid #ccc;
|
||||
max-height: 150px;
|
||||
overflow-y: auto;
|
||||
position: absolute;
|
||||
background: white;
|
||||
width: 95%;
|
||||
display: none;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
#suggestions div {
|
||||
padding: 8px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#suggestions div:hover {
|
||||
background: #f0f0f0;
|
||||
}
|
||||
</style>
|
||||
-->
|
||||
<style>
|
||||
.suggestion-box {
|
||||
border: 1px solid #ccc;
|
||||
max-height: 150px;
|
||||
overflow-y: auto;
|
||||
position: absolute;
|
||||
background: white;
|
||||
width: 95%;
|
||||
display: none;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.suggestion-box div {
|
||||
padding: 8px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.suggestion-box div:hover {
|
||||
background: #f0f0f0;
|
||||
}
|
||||
</style>
|
||||
|
||||
<?php
|
||||
$nama_barang_list = array();
|
||||
$nbarang = mysqli_query($con,"SELECT nama FROM v_jumlah_data_gudang $SqlDataWHId");
|
||||
while ($barang = mysqli_fetch_assoc($nbarang)) {
|
||||
$nama_barang_list[] = $barang['nama'];
|
||||
}
|
||||
?>
|
||||
<script>
|
||||
// Contoh data untuk pencarian
|
||||
const dataList = <?php echo json_encode($nama_barang_list); ?>;
|
||||
|
||||
function showSuggestions() {
|
||||
const input = document.getElementById('searchInput');
|
||||
const suggestionsDiv = document.getElementById('suggestions');
|
||||
const query = input.value.toLowerCase();
|
||||
|
||||
// Bersihkan saran sebelumnya
|
||||
suggestionsDiv.innerHTML = '';
|
||||
|
||||
// Jika input kosong, sembunyikan saran
|
||||
if (!query) {
|
||||
suggestionsDiv.style.display = 'none';
|
||||
return;
|
||||
}
|
||||
|
||||
// Filter data berdasarkan query
|
||||
const filteredData = dataList.filter(item =>
|
||||
item.toLowerCase().includes(query)
|
||||
);
|
||||
|
||||
if (filteredData.length > 0) {
|
||||
// Tampilkan saran
|
||||
filteredData.forEach(item => {
|
||||
const div = document.createElement('div');
|
||||
div.textContent = item;
|
||||
div.onclick = () => {
|
||||
input.value = item; // Set nilai input
|
||||
suggestionsDiv.style.display = 'none'; // Sembunyikan saran
|
||||
};
|
||||
suggestionsDiv.appendChild(div);
|
||||
});
|
||||
suggestionsDiv.style.display = 'block';
|
||||
} else {
|
||||
suggestionsDiv.style.display = 'none';
|
||||
}
|
||||
}
|
||||
|
||||
function submitForm() {
|
||||
const inputValue = document.getElementById('searchInput').value.trim();
|
||||
}
|
||||
|
||||
// Klik di luar untuk menyembunyikan saran
|
||||
document.addEventListener('click', (e) => {
|
||||
const suggestionsDiv = document.getElementById('suggestions');
|
||||
if (!suggestionsDiv.contains(e.target) && e.target.id !== 'searchInput') {
|
||||
suggestionsDiv.style.display = 'none';
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- Main content -->
|
||||
<section class="content" style="zoom: 90%;">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<h3 class="card-title">Barang di Gudang</h3>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ol class="float-sm-right mb-0">
|
||||
<a type="button" class="btn btn-danger btn-sm m-1" data-toggle="modal" data-target="#staticBackdrop">Tambah Barang</a>
|
||||
<a type="button" class="btn btn-warning btn-sm m-1" data-toggle="modal" data-target="#staticKurangi">Kurangi Stok</a>
|
||||
<a type="button" class="btn btn-primary btn-sm m-1" data-toggle="modal" data-target="#staticReturn">Return Barang</a>
|
||||
</ol>
|
||||
</div>
|
||||
<!-- Modal Tambah -->
|
||||
<div class="modal fade" id="staticBackdrop" data-backdrop="static" data-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-xl">
|
||||
<div class="modal-content">
|
||||
<form method="post" enctype="multipart/form-data">
|
||||
<div class="modal-header bg-danger">
|
||||
<h5 class="modal-title" id="staticBackdropLabel">Tambah Barang</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<div class="card-body pb-0">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label>Nama Server</label>
|
||||
<select class="form-control" name="ids" required="required">
|
||||
<option value="">Pilih</option>
|
||||
<?php
|
||||
$List = new Listdata();
|
||||
$List->set_list("data_server", $SqlDataWH);
|
||||
foreach ($List->get_list() as $key => $value): ?>
|
||||
<option value="<?php echo $value['id']; ?>"><?php echo $value['nama_server']; ?></option>
|
||||
<?php endforeach ?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="searchInput">Nama Barang</label>
|
||||
<input type="text" id="searchInput" name="nama" class="form-control" placeholder="Isi Nama Barang" autocomplete="off" oninput="showSuggestions()" required="required"/>
|
||||
<div id="suggestions" class="suggestion-box"></div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Tanggal Pembelian</label>
|
||||
<input type="date" name="tanggal" class="form-control" required="required" />
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<div class="form-group">
|
||||
<label>Jenis Barang</label>
|
||||
<select class="form-control" name="jenis" required="required">
|
||||
<option value="">Pilih</option>
|
||||
<option value="Baru">Baru</option>
|
||||
<option value="Bekas">Bekas</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="form-group">
|
||||
<label>Jumlah Awal Barang</label>
|
||||
<input type="text" class="form-control" name="jumlah" required="required">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label>Harga Barang Satuan</label>
|
||||
<input type="text" class="form-control rupiah" id="rupiah0" name="nominal" required="required">
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<div class="form-group">
|
||||
<label>Jenis Kas</label>
|
||||
<select class="form-control" name="metode_pembayaran" required="required">
|
||||
<option value="">Pilih</option>
|
||||
<option value="Bank">Bank</option>
|
||||
<option value="Tunai">Tunai</option>
|
||||
<option value="Hutang Barang">Hutang Barang</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="form-group">
|
||||
<label>Penyusutan</label>
|
||||
<select class="form-control" name="penyusutan" required="required">
|
||||
<option value="">Pilih</option>
|
||||
<option value="1">1 Tahun</option>
|
||||
<option value="2">2 Tahun</option>
|
||||
<option value="3">3 Tahun</option>
|
||||
<option value="4">4 Tahun</option>
|
||||
<option value="5">5 Tahun</option>
|
||||
<option value="6">6 Tahun</option>
|
||||
<option value="7">7 Tahun</option>
|
||||
<option value="8">8 Tahun</option>
|
||||
<option value="9">9 Tahun</option>
|
||||
<option value="10">10 Tahun</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Keterangan</label>
|
||||
<textarea class="form-control" name="keterangan" required="required" rows="5"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
|
||||
<input type="submit" name="tambah" class="btn btn-primary" value="Tambah">
|
||||
</div>
|
||||
</form>
|
||||
<?php
|
||||
if (isset($_POST['tambah'])) {
|
||||
$waktu = $_POST['tanggal'].date(' H:i:s');
|
||||
$harga_satuan = preg_replace("/[^0-9]/","",$_POST['nominal']);
|
||||
|
||||
$sql = "INSERT INTO gudang (id_data_server, id_user_akses, start_time, nama, status, jenis, jumlah, keterangan, harga_satuan, penyusutan, metode_pembayaran)
|
||||
VALUES (:ids, :userId, :waktu, :nama, 'masuk', :jenis, :jumlah, :keterangan, :harga_satuan, :penyusutan, :metode_pembayaran)";
|
||||
try {
|
||||
// Prepare the statement
|
||||
$stmt = $pdo->prepare($sql);
|
||||
|
||||
// Bind the parameters
|
||||
$stmt->bindParam(':ids', $_POST['ids']);
|
||||
$stmt->bindParam(':userId', $UserId); // Ensure $UserId is defined and properly initialized
|
||||
$stmt->bindParam(':waktu', $waktu);
|
||||
$stmt->bindParam(':nama', $_POST['nama']);
|
||||
$stmt->bindParam(':jenis', $_POST['jenis']);
|
||||
$stmt->bindParam(':jumlah', $_POST['jumlah']);
|
||||
$stmt->bindParam(':keterangan', $_POST['keterangan']);
|
||||
$stmt->bindParam(':harga_satuan', $harga_satuan);
|
||||
$stmt->bindParam(':penyusutan', $_POST['penyusutan']);
|
||||
$stmt->bindParam(':metode_pembayaran', $_POST['metode_pembayaran']);
|
||||
|
||||
// Execute the statement
|
||||
$stmt->execute();
|
||||
|
||||
// Success message
|
||||
sweetAlert("Barang telah di tambah", "success");
|
||||
|
||||
} catch (PDOException $e) {
|
||||
// Handle error
|
||||
echo 'Error: ' . $e->getMessage();
|
||||
}
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END Modal Tambah -->
|
||||
<!-- Modal Kurangi Stok -->
|
||||
<div class="modal fade" id="staticKurangi" data-backdrop="static" data-keyboard="false" tabindex="-1" aria-labelledby="staticTambahLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-xl">
|
||||
<div class="modal-content">
|
||||
<form method="post" enctype="multipart/form-data">
|
||||
<div class="modal-header bg-warning">
|
||||
<h5 class="modal-title" id="staticBackdropLabel">Kurangi Stok Barang</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<div class="card-body pb-0">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label>Nama Server</label>
|
||||
<select class="form-control dropoption1" name="ids" required="required">
|
||||
<option value="">Pilih</option>
|
||||
<?php
|
||||
$List = new Listdata();
|
||||
$List->set_list("data_server", $SqlDataWH);
|
||||
foreach ($List->get_list() as $key => $value): ?>
|
||||
<option value="<?php echo $value['id']; ?>"><?php echo $value['nama_server']; ?></option>
|
||||
<?php endforeach ?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Nama Barang</label>
|
||||
<select class="form-control dropoption2" name="id_barang" required="required">
|
||||
<option value="">Pilih</option>
|
||||
</select>
|
||||
</div>
|
||||
<input type="hidden" name="nama" class="valueData">
|
||||
<div class="form-group">
|
||||
<label>Waktu</label>
|
||||
<input type="date" class="form-control" name="waktu" required="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label>Jumlah</label>
|
||||
<input type="text" class="form-control inputJumlah" name="jumlah" required="required">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Keterangan</label>
|
||||
<textarea class="form-control" name="keterangan" required="required" rows="5"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
|
||||
<input type="submit" name="kurangi" class="btn btn-primary" value="Tambah">
|
||||
</div>
|
||||
</form>
|
||||
<?php
|
||||
if (isset($_POST['kurangi'])) {
|
||||
$waktu = $_POST['waktu'].date(' H:i:s');
|
||||
|
||||
$sql = "INSERT INTO gudang (id_data_server, id_user_akses, id_barang, start_time, nama, status, jenis, jumlah, keterangan)
|
||||
VALUES (:ids, :userId, :id_barang, :waktu, :nama, 'keluar', :jenis, :jumlah, :keterangan)";
|
||||
|
||||
try {
|
||||
// Prepare the statement
|
||||
$stmt = $pdo->prepare($sql);
|
||||
|
||||
// Bind the parameters
|
||||
$stmt->bindParam(':ids', $_POST['ids']);
|
||||
$stmt->bindParam(':userId', $UserId); // Ensure $UserId is defined and properly initialized
|
||||
$stmt->bindParam(':id_barang', $_POST['id_barang']);
|
||||
$stmt->bindParam(':waktu', $waktu);
|
||||
$stmt->bindParam(':nama', $_POST['nama']);
|
||||
$stmt->bindParam(':jenis', $_POST['jenis']);
|
||||
$stmt->bindParam(':jumlah', $_POST['jumlah']);
|
||||
$stmt->bindParam(':keterangan', $_POST['keterangan']);
|
||||
|
||||
// Execute the statement
|
||||
$stmt->execute();
|
||||
|
||||
// Success message
|
||||
sweetAlert("Stok ".$_POST['nama']." telah berkurang ".$_POST['jumlah'], "success");
|
||||
|
||||
} catch (PDOException $e) {
|
||||
// Handle error
|
||||
echo 'Error: ' . $e->getMessage();
|
||||
}
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END Modal Kurangi Stok -->
|
||||
<!-- Modal Return Stok -->
|
||||
<div class="modal fade" id="staticReturn" data-backdrop="static" data-keyboard="false" tabindex="-1" aria-labelledby="staticTambahLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-xl">
|
||||
<div class="modal-content">
|
||||
<form method="post" enctype="multipart/form-data">
|
||||
<div class="modal-header bg-primary">
|
||||
<h5 class="modal-title" id="staticBackdropLabel">Return Barang</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<div class="card-body pb-0">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label>Nama Server</label>
|
||||
<select class="form-control dropoption1" name="ids" required="required">
|
||||
<option value="">Pilih</option>
|
||||
<?php
|
||||
$List = new Listdata();
|
||||
$List->set_list("data_server", $SqlDataWH);
|
||||
foreach ($List->get_list() as $key => $value): ?>
|
||||
<option value="<?php echo $value['id']; ?>"><?php echo $value['nama_server']; ?></option>
|
||||
<?php endforeach ?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Nama Barang</label>
|
||||
<select class="form-control dropoption2" name="id_barang" required="required">
|
||||
<option value="">Pilih</option>
|
||||
</select>
|
||||
</div>
|
||||
<input type="hidden" name="nama" class="valueReturn">
|
||||
<div class="form-group">
|
||||
<label>Waktu</label>
|
||||
<input type="date" class="form-control" name="waktu" required="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label>Jumlah</label>
|
||||
<input type="text" class="form-control inputReturn" name="jumlah" required="required">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Keterangan</label>
|
||||
<textarea class="form-control" name="keterangan" required="required" rows="5"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
|
||||
<input type="submit" name="return" class="btn btn-primary" value="Return">
|
||||
</div>
|
||||
</form>
|
||||
<?php
|
||||
if (isset($_POST['return'])) {
|
||||
$waktu = $_POST['waktu'].date(' H:i:s');
|
||||
|
||||
$sql = "INSERT INTO gudang (id_data_server, id_user_akses, id_barang, start_time, nama, status, jenis, jumlah, keterangan)
|
||||
VALUES (:ids, :userId, :id_barang, :waktu, :nama, 'return', :jenis, :jumlah, :keterangan)";
|
||||
|
||||
try {
|
||||
// Prepare the statement
|
||||
$stmt = $pdo->prepare($sql);
|
||||
|
||||
// Bind the parameters
|
||||
$stmt->bindParam(':ids', $_POST['ids']);
|
||||
$stmt->bindParam(':userId', $UserId); // Ensure $UserId is defined and properly initialized
|
||||
$stmt->bindParam(':id_barang', $_POST['id_barang']);
|
||||
$stmt->bindParam(':waktu', $waktu);
|
||||
$stmt->bindParam(':nama', $_POST['nama']);
|
||||
$stmt->bindParam(':jenis', $_POST['jenis']);
|
||||
$stmt->bindParam(':jumlah', $_POST['jumlah']);
|
||||
$stmt->bindParam(':keterangan', $_POST['keterangan']);
|
||||
|
||||
// Execute the statement
|
||||
$stmt->execute();
|
||||
|
||||
// Success message
|
||||
sweetAlert("Stok ".$_POST['nama']." telah dikembalikan ".$_POST['jumlah'], "success");
|
||||
|
||||
} catch (PDOException $e) {
|
||||
// Handle error
|
||||
echo 'Error: ' . $e->getMessage();
|
||||
}
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END Modal Return Stok -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.card-header -->
|
||||
<div class="card-body">
|
||||
<table id="example2" class="table table-bordered table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>Tanggal Pembelian</th>
|
||||
<th>Nama Barang</th>
|
||||
<th>Harga Satuan</th>
|
||||
<th>Barang Masuk</th>
|
||||
<th>Barang Keluar</th>
|
||||
<th>Sisa Barang</th>
|
||||
<th>Nama Server</th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
$no = 1;
|
||||
$aserver = mysqli_query($con,"SELECT * FROM v_jumlah_data_gudang $SqlDataWHId order by start_time DESC");
|
||||
while ($server = mysqli_fetch_assoc($aserver))
|
||||
{
|
||||
?>
|
||||
<tr>
|
||||
<td style="max-width: 20px;"><?php echo $no; ?></td>
|
||||
<td style="max-width: 200px;"><?php echo $server['start_time']; ?></td>
|
||||
<td style="max-width: 200px;"><?php echo $server['nama']; ?></td>
|
||||
<td style="max-width: 200px;">Rp. <?php echo number_format($server['harga_satuan']); ?></td>
|
||||
<td style="max-width: 200px;"><?php echo $server['masuk']; ?></td>
|
||||
<td style="max-width: 200px;"><?php echo $server['keluar']; ?></td>
|
||||
<td style="max-width: 200px;"><?php echo $server['sisa']; ?></td>
|
||||
<td style="max-width: 30px;"><?php echo $server['nama_server']; ?></td>
|
||||
<td>
|
||||
|
||||
<button type="button" class="btn btn-secondary btn-sm m-1" onclick="openEditModal(<?php echo $server['id']; ?>)">Edit</button>
|
||||
<a href="?<?php echo encrypt_url('master_stok_barang_detail|'.$server['id_data_server'].'|'.$server['id'].'|'.$server['nama']); ?>" class="btn btn-info btn-sm">Detail</a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php $no ++; } ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- /.card-body -->
|
||||
</div>
|
||||
<!-- /.card -->
|
||||
</div>
|
||||
<!-- /.col -->
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
</div>
|
||||
<!-- /.container-fluid -->
|
||||
</section>
|
||||
<!-- /.content -->
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
// Fungsi untuk mengupdate dropdown
|
||||
function updateDropdown(dropdown, data) {
|
||||
const firstOption = dropdown.querySelector('option[value=""]');
|
||||
|
||||
// Hapus semua opsi kecuali opsi pertama
|
||||
dropdown.innerHTML = '';
|
||||
if (firstOption) {
|
||||
dropdown.appendChild(firstOption.cloneNode(true));
|
||||
} else {
|
||||
dropdown.innerHTML = '<option value="">Pilih</option>';
|
||||
}
|
||||
|
||||
// Tambahkan opsi baru dari data server
|
||||
data.forEach(option => {
|
||||
const optionElement = document.createElement('option');
|
||||
optionElement.value = option.id; // Set ID barang sebagai value
|
||||
optionElement.textContent = option.nama + ' ( ' + option.start_time + ' )'; // Nama untuk ditampilkan
|
||||
optionElement.setAttribute('data-nama', option.nama); // Tambahkan data-nama
|
||||
optionElement.setAttribute('data-sisa', option.sisa); // Tambahkan data-nama
|
||||
optionElement.setAttribute('data-keluar', option.keluar); // Tambahkan data-nama
|
||||
dropdown.appendChild(optionElement);
|
||||
});
|
||||
}
|
||||
|
||||
// Fungsi untuk mengupdate dropdown2 berdasarkan pilihan dari dropdown1
|
||||
function updateDropdown2(form, selectedOption) {
|
||||
const dropoption2 = form.querySelector('.dropoption2');
|
||||
|
||||
fetch(`list_data/getItemStokBarang.php?dropdown=dropoption2&option=${encodeURIComponent(selectedOption)}`)
|
||||
.then(response => response.json())
|
||||
.then(data => updateDropdown(dropoption2, data))
|
||||
.catch(error => console.error('Error fetching dropoption2 data:', error));
|
||||
}
|
||||
|
||||
// Event listener untuk dropdown1
|
||||
document.addEventListener('change', function(e) {
|
||||
if (e.target.classList.contains('dropoption1')) {
|
||||
const form = e.target.closest('form');
|
||||
updateDropdown2(form, e.target.value);
|
||||
}
|
||||
});
|
||||
|
||||
// Fungsi untuk memvalidasi input jumlah
|
||||
function inputJumlah(input, sisaOnly) {
|
||||
const inputValue = parseInt(input.value, 10) || 0; // Konversi ke angka, default ke 0 jika kosong atau NaN
|
||||
if (inputValue > sisaOnly) {
|
||||
input.value = sisaOnly; // Batasi input ke jumlah maksimum stok
|
||||
}
|
||||
}
|
||||
|
||||
function inputReturn(input, keluarOnly) {
|
||||
const inputValue = parseInt(input.value, 10) || 0; // Konversi ke angka, default ke 0 jika kosong atau NaN
|
||||
if (inputValue > keluarOnly) {
|
||||
input.value = keluarOnly; // Batasi input ke jumlah maksimum stok
|
||||
}
|
||||
}
|
||||
|
||||
// Event listener untuk dropdown2
|
||||
document.addEventListener('change', function (e) {
|
||||
if (e.target.classList.contains('dropoption2')) {
|
||||
const selectedOption = e.target.selectedOptions[0];
|
||||
|
||||
// Ambil data-nama dan data-sisa dari opsi yang dipilih
|
||||
const namaOnly = selectedOption.getAttribute('data-nama');
|
||||
const sisaOnly = parseInt(selectedOption.getAttribute('data-sisa'), 10);
|
||||
const keluarOnly = parseInt(selectedOption.getAttribute('data-keluar'), 10);
|
||||
|
||||
// Ambil elemen input hidden dan elemen lain
|
||||
const valueDataInput = document.querySelector('.valueData');
|
||||
if (valueDataInput) valueDataInput.value = namaOnly;
|
||||
|
||||
// Ambil elemen input hidden dan elemen lain
|
||||
const valueDataReturn = document.querySelector('.valueReturn');
|
||||
if (valueDataReturn) valueDataReturn.value = namaOnly;
|
||||
|
||||
// Validasi jumlah input jika ada
|
||||
const jumlahInput = document.querySelector('.inputJumlah'); // Ganti dengan kelas input jumlah Anda
|
||||
if (jumlahInput) jumlahInput.placeholder = 'Sisa Stok : ' + sisaOnly;
|
||||
if (jumlahInput) {
|
||||
jumlahInput.addEventListener('input', function () {
|
||||
inputJumlah(jumlahInput, sisaOnly); // Panggil fungsi validasi
|
||||
});
|
||||
}
|
||||
|
||||
// Validasi jumlah input jika ada
|
||||
const jumlahReturn = document.querySelector('.inputReturn'); // Ganti dengan kelas input jumlah Anda
|
||||
if (jumlahReturn) jumlahReturn.placeholder = 'Stok Keluar : ' + keluarOnly;
|
||||
if (jumlahReturn) {
|
||||
jumlahReturn.addEventListener('input', function () {
|
||||
inputJumlah(jumlahReturn, keluarOnly); // Panggil fungsi validasi
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<!-- MODAL EDIT BARANG -->
|
||||
<div class="modal fade" id="editModal" tabindex="-1" role="dialog" aria-labelledby="editModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-xl" role="document">
|
||||
<div class="modal-content">
|
||||
<form id="editForm" method="post">
|
||||
<div class="modal-header bg-secondary">
|
||||
<h5 class="modal-title" id="editModalLabel">Edit Pemasukan</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<div class="card-body pb-0">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<input type="hidden" name="edit_id" id="edit_id">
|
||||
<div class="form-group">
|
||||
<label>Nama Server</label>
|
||||
<select class="form-control" name="ids" id="serverSelect" required>
|
||||
<!-- Opsi akan diisi oleh JavaScript -->
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Nama Barang</label>
|
||||
<input type="text" id="namaedit" name="nama" class="form-control" placeholder="Isi Nama Barang" autocomplete="off" oninput="showSuggestion()" required="required"/>
|
||||
<div id="suggestion" class="suggestion-box"></div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Tanggal Pembelian</label>
|
||||
<input type="date" name="tanggal" id="waktu" class="form-control" required="required" />
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<div class="form-group">
|
||||
<label>Jenis Barang</label>
|
||||
<select class="form-control" name="jenis" id="jenis" required="required">
|
||||
<option value="">Pilih</option>
|
||||
<option value="Baru">Baru</option>
|
||||
<option value="Bekas">Bekas</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="form-group">
|
||||
<label>Jumlah Awal Barang</label>
|
||||
<input type="text" class="form-control" name="jumlah" id="jumlahbarang" required="required">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label>Harga Barang Satuan</label>
|
||||
<input type="text" class="form-control" name="nominal" id="nominal" required oninput="formatRupiah3(this)">
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<div class="form-group">
|
||||
<label>Jenis Kas</label>
|
||||
<select class="form-control" name="metode_pembayaran" id="jenisKas" required="required">
|
||||
<option value="">Pilih</option>
|
||||
<option value="Bank">Bank</option>
|
||||
<option value="Tunai">Tunai</option>
|
||||
<option value="Hutang Barang">Hutang Barang</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="form-group">
|
||||
<label>Penyusutan</label>
|
||||
<select class="form-control" name="penyusutan" id="penyusutan" required="required">
|
||||
<option value="">Pilih</option>
|
||||
<option value="1">1 Tahun</option>
|
||||
<option value="2">2 Tahun</option>
|
||||
<option value="3">3 Tahun</option>
|
||||
<option value="4">4 Tahun</option>
|
||||
<option value="5">5 Tahun</option>
|
||||
<option value="6">6 Tahun</option>
|
||||
<option value="7">7 Tahun</option>
|
||||
<option value="8">8 Tahun</option>
|
||||
<option value="9">9 Tahun</option>
|
||||
<option value="10">10 Tahun</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Keterangan</label>
|
||||
<textarea class="form-control" name="keterangan" id="keterangan" required="required" rows="5"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
|
||||
<button type="submit" class="btn btn-warning">Edit</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
function openEditModal(id) {
|
||||
// Fetch data menggunakan AJAX untuk ID yang dipilih
|
||||
fetch(`list_data/list_data_gudang.php?id=${id}`)
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
// Isi kolom formulir
|
||||
document.getElementById('edit_id').value = data.id;
|
||||
document.getElementById('namaedit').value = data.nama;
|
||||
document.getElementById('waktu').value = data.start_time.substr(0, 10);
|
||||
document.getElementById('jenis').value = data.jenis;
|
||||
document.getElementById('jumlahbarang').value = data.jumlah;
|
||||
document.getElementById('nominal').value = formatRupiah3Value3(data.harga_satuan);
|
||||
document.getElementById('jenisKas').value = data.metode_pembayaran;
|
||||
document.getElementById('penyusutan').value = data.penyusutan;
|
||||
document.getElementById('keterangan').value = data.keterangan;
|
||||
|
||||
// Ambil daftar server untuk opsi select
|
||||
fetch(`list_data/dataServer.php?w=<?php echo $SqlDataWH; ?>`)
|
||||
.then(response => response.json())
|
||||
.then(servers => {
|
||||
const serverSelect = document.getElementById('serverSelect');
|
||||
serverSelect.innerHTML = ''; // Kosongkan opsi yang ada
|
||||
servers.forEach(server => {
|
||||
const option = document.createElement('option');
|
||||
option.value = server.id;
|
||||
option.textContent = server.nama_server;
|
||||
if (server.id === data.id_data_server) {
|
||||
option.selected = true; // Set opsi yang dipilih
|
||||
}
|
||||
serverSelect.appendChild(option);
|
||||
});
|
||||
});
|
||||
|
||||
// Tampilkan modal
|
||||
$('#editModal').modal('show');
|
||||
});
|
||||
}
|
||||
|
||||
function showSuggestion() {
|
||||
const input = document.getElementById('namaedit');
|
||||
const suggestionDiv = document.getElementById('suggestion');
|
||||
const query = input.value.toLowerCase();
|
||||
suggestionDiv.innerHTML = '';
|
||||
|
||||
if (!query) {
|
||||
suggestionDiv.style.display = 'none';
|
||||
return;
|
||||
}
|
||||
|
||||
const filteredData = dataList.filter(item => item.toLowerCase().includes(query));
|
||||
if (filteredData.length > 0) {
|
||||
filteredData.forEach(item => {
|
||||
const div = document.createElement('div');
|
||||
div.textContent = item;
|
||||
div.onclick = () => {
|
||||
input.value = item;
|
||||
suggestionDiv.style.display = 'none';
|
||||
};
|
||||
suggestionDiv.appendChild(div);
|
||||
});
|
||||
suggestionDiv.style.display = 'block';
|
||||
} else {
|
||||
suggestionDiv.style.display = 'none';
|
||||
}
|
||||
}
|
||||
|
||||
function formatRupiah3(input) {
|
||||
// Pastikan input adalah string
|
||||
let value = input.value.toString().replace(/[^0-9]/g, "");
|
||||
|
||||
// Format menjadi Rupiah
|
||||
if (value) {
|
||||
input.value = "Rp. " + new Intl.NumberFormat('id-ID').format(value);
|
||||
} else {
|
||||
input.value = ""; // Kosongkan input jika tidak ada nilai
|
||||
}
|
||||
}
|
||||
|
||||
function formatRupiah3Value3(value) {
|
||||
// Format nilai menjadi string Rupiah
|
||||
return "Rp. " + new Intl.NumberFormat('id-ID').format(value);
|
||||
}
|
||||
|
||||
function deleteAlert(id) {
|
||||
|
||||
const form = document.createElement("form");
|
||||
form.method = "POST";
|
||||
const input = document.createElement("input");
|
||||
input.type = "hidden";
|
||||
input.name = "hapus" + id;
|
||||
form.appendChild(input);
|
||||
document.body.appendChild(form);
|
||||
form.submit();
|
||||
}
|
||||
</script>
|
||||
|
||||
<?php
|
||||
// Handle edit and delete actions
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
if (isset($_POST['edit_id'])) {
|
||||
// Process edit
|
||||
$waktu = $_POST['tanggal'].date(' H:i:s');
|
||||
$harga_satuan = preg_replace("/[^0-9]/", "", $_POST['nominal']);
|
||||
|
||||
$sql = "UPDATE gudang
|
||||
SET id_data_server = :ids,
|
||||
start_time = :waktu,
|
||||
nama = :nama,
|
||||
jenis = :jenis,
|
||||
jumlah = :jumlah,
|
||||
keterangan = :keterangan,
|
||||
harga_satuan = :harga_satuan,
|
||||
penyusutan = :penyusutan,
|
||||
metode_pembayaran = :metode_pembayaran
|
||||
WHERE id = :id";
|
||||
|
||||
try {
|
||||
// Prepare the statement
|
||||
$stmt = $pdo->prepare($sql);
|
||||
|
||||
// Bind the parameters
|
||||
$stmt->bindParam(':ids', $_POST['ids']);
|
||||
$stmt->bindParam(':waktu', $waktu);
|
||||
$stmt->bindParam(':nama', $_POST['nama']);
|
||||
$stmt->bindParam(':jenis', $_POST['jenis']);
|
||||
$stmt->bindParam(':jumlah', $_POST['jumlah']);
|
||||
$stmt->bindParam(':keterangan', $_POST['keterangan']);
|
||||
$stmt->bindParam(':harga_satuan', $harga_satuan);
|
||||
$stmt->bindParam(':penyusutan', $_POST['penyusutan']);
|
||||
$stmt->bindParam(':metode_pembayaran', $_POST['metode_pembayaran']);
|
||||
$stmt->bindParam(':id', $_POST['edit_id']); // Pastikan 'edit_id' diambil dari form input hidden
|
||||
|
||||
// Execute the statement
|
||||
$stmt->execute();
|
||||
|
||||
// Success message
|
||||
sweetAlert("Barang telah diperbarui", "success");
|
||||
|
||||
} catch (PDOException $e) {
|
||||
// Handle error
|
||||
echo 'Error: ' . $e->getMessage();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$stmt = $pdo->prepare("SELECT id FROM v_transaksi WHERE pemasukan != '' $SqlDataId ");
|
||||
$stmt->execute();
|
||||
$data1 = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
// Handle delete
|
||||
foreach ($data1 as $server1) {
|
||||
if (isset($_POST['hapus'.$server1['id']])) {
|
||||
$idtrx = $server1['id'];
|
||||
// Call your deleteAlert function or method here
|
||||
deleteAlert("transaksi", $idtrx);
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user