<?php
include_once "library/inc.sesadmin.php";
include_once "library/inc.library.php";
include_once "library/inc.connection.php";
$tglhariini = date("Ymd");
$cariData = mysql_query("SELECT MAX(no_transaksi) AS last FROM transaksi WHERE LEFT(no_transaksi,8) LIKE'$tglhariini'") or die("Gagal query" . mysql_error());
$hasil  = mysql_fetch_array($cariData);
$lastNoTransaksi = $hasil['last'];
$lastNoUrut = substr($lastNoTransaksi, 8, 3);
$nextNoUrut = $lastNoUrut + 1;
$nextNoTransaksi = $tglhariini . sprintf('%03s', $nextNoUrut);
# KETIKA DIKLIK DELETE
if (isset($_GET['Act'])) {
	if (trim($_GET['Act']) == "Delete") {
		# Hapus Tmp jika datanya sudah dipindah
		mysql_query("DELETE FROM tmp_transaksi WHERE id='" . $_GET['ID'] . "' AND userid='" . $_SESSION['SES_LOGIN'] . "'", $koneksidb)
			or die("Gagal kosongkan tmp" . mysql_error());
	}
}

# KETIKA DIKLIK PILIH
if (isset($_POST['btnPilih'])) {
	# PERIKSA VARIABLE
	$txtNis		= $_POST['txtNis'];
	$txtKode	= $_POST['txtKode'];
	$txtKelas	= $_POST['txtKelas'];
	$txtBanyak	= $_POST['txtBanyak'];
	$rbAktif	= $_POST['rbAktif'];

	# SAMPAIKAN PESAN ERROR
	$pesanError = array();
	if (trim($_POST['txtNis']) == "") {
		$pesanError[] = "Data <b>NIS</b> tidak boleh kosong, harus diisi !";
	}
	if (trim($_POST['txtKode']) == "") {
		$pesanError[] = "Data <b>Kode Bayar</b> tidak boleh kosong, harus diisi !";
	}
	if (trim($_POST['txtBanyak']) == "") {
		$pesanError[] = "Data <b>Jumlah Uang</b> tidak boleh kosong, harus diisi !";
	}
	if (trim($_POST['txtKelas']) == "") {
		$pesanError[] = "Data <b>Kelas</b> tidak boleh kosong, harus diisi !";
	}

	$SqlNIS = "SELECT nis FROM siswa WHERE nis='$txtNis'";
	$QryNIS = mysql_query($SqlNIS, $koneksidb) or die("Gagal Query Tmp" . mysql_error());
	$RowNIS = mysql_fetch_array($QryNIS);
	$QtyNIS = mysql_num_rows($QryNIS);
	if ($QtyNIS == 0) {
		$pesanError[] = "Tidak ada Siswa dengan NIS <b>$txtNis'</b>, silahkan ulangi !";
	}


	# JIKA ADA PESAN ERROR MAKA TAMPILKAN ERROR
	if (count($pesanError) >= 1) {
		echo "<div class='mssgBox'>";
		echo "<img src='images/attention.png'> <br><hr>";
		$noPesan = 0;
		foreach ($pesanError as $indeks => $pesan_tampil) {
			$noPesan++;
			echo "&nbsp;&nbsp; $noPesan. $pesan_tampil<br>";
		}
		echo "</div> <br>";
	} else {
		# MASUKKAN DATA KE SQL			
		$mySql	= "INSERT INTO tmp_transaksi ( nis, kode_bayar, banyak, kelas, status_bayaran, userid) 
		VALUES ( '$txtNis', '$txtKode', '$txtBanyak','$txtKelas', '$rbAktif', '" . $_SESSION['SES_LOGIN'] . "')";
		$myQry	= mysql_query($mySql, $koneksidb) or die("Gagal query" . mysql_error());
		if ($myQry) {
			echo "<meta http-equiv='refresh' content='0; url=''>";
		}
		exit;
	}
}

# KETIKA DIKLIK SIMPAN
if (isset($_POST['btnSave'])) {
	$message = array();
	if (trim($_POST['cmbTanggal']) == "") {
		$message[] = "Tanggal transaksi belum diisi, pilih pada combo !";
	}

	# Baca variabel

	$cmbTanggal = $_POST['cmbTanggal'];

	# Jika jumlah error message tidak ada
	if (count($message) == 0) {
		// $kodeBaru	= $nextNoTransaksi;
		$kodeBaru	= $_POST['txtNomor'];
		$qrySave = mysql_query("INSERT INTO transaksi SET no_transaksi='$kodeBaru', 
			tgl_transaksi='" . InggrisTgl($_POST['cmbTanggal']) . "', 
			userid='" . $_SESSION['SES_LOGIN'] . "'")
			or die("Gagal query" . mysql_error());
		if ($qrySave) {
			# Ambil semua data barang yang dipilih, berdasarkan kasir yg login
			$tmpSql = "SELECT * FROM tmp_transaksi WHERE userid='" . $_SESSION['SES_LOGIN'] . "'";
			$tmpQry = mysql_query($tmpSql, $koneksidb) or die("Gagal Query Tmp" . mysql_error());
			while ($tmpRow = mysql_fetch_array($tmpQry)) {
				// Masukkan semua barang yang udah diisi ke tabel pembelian detail
				if ($tmpRow['status_bayaran'] == 1)
					$s = "Anggatan";
				else
					$s = "Tunggakan";
				$barangSql = "INSERT INTO transaksi_item SET no_transaksi='$kodeBaru', 
				nis='$tmpRow[nis]', kode_bayar='$tmpRow[kode_bayar]',  kelas='$tmpRow[kelas]', 
				banyak='$tmpRow[banyak]', status='$s'";
				mysql_query($barangSql, $koneksidb) or die("Gagal Query Simpan detail barang" . mysql_error());
			}
			# Kosongkan Tmp jika datanya sudah dipindah
			mysql_query("DELETE FROM tmp_transaksi WHERE userid='" . $_SESSION['SES_LOGIN'] . "'", $koneksidb)
				or die("Gagal kosongkan tmp" . mysql_error());

			// Refresh form
			// echo "<meta http-equiv='refresh' content='0; url=../nota_cetak_kecil.php?noNota=$kodeBaru'>";
			// echo "<meta http-equiv='refresh' content='0; url=../cetak.php?noNota=$kodeBaru'>";
			echo "<meta http-equiv='refresh' content='0; url=?page=Lihat-Transaksi&amp;Kode=$kodeBaru'>";
		} else {
			$message[] = "Gagal penyimpanan ke database";
		}
	}
}

$nomorTransaksi = buatKode("transaksi", "TR");
$tglTransaksi 	= isset($_POST['cmbTanggal']) ? $_POST['cmbTanggal'] : date('d-m-Y');
?>

<script>
	function generateKodeTransaksi() {
		// Ambil tanggal input dari user dalam format dd-mm-yyyy
		var tglInput = document.getElementById('tanggal').value;

		// Ubah format tanggal dari dd-mm-yyyy menjadi yyyymmdd
		var parts = tglInput.split('-');
		var formattedDate = parts[2] + parts[1] + parts[0]; // yyyyMMdd

		// Lakukan AJAX request ke server untuk mendapatkan nomor transaksi terakhir
		var xhr = new XMLHttpRequest();
		xhr.open('POST', '../generate_kode.php', true);
		xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
		xhr.onreadystatechange = function() {
			if (xhr.readyState === 4 && xhr.status === 200) {
				// Tampilkan kode transaksi baru yang diterima dari PHP
				// document.getElementById('kodeTransaksi').innerText = xhr.responseText;
				document.getElementById('kodeTransaksi').value = xhr.responseText;

			}
		};
		xhr.send('tanggal=' + formattedDate); // Kirim tanggal ke PHP
	}

	function loadSiswaData() {
		var xhr = new XMLHttpRequest();
		xhr.open('GET', 'get_siswa_data.php', true); // Mengambil data dari file PHP
		xhr.onreadystatechange = function() {
			if (xhr.readyState === 4 && xhr.status === 200) {
				// Parse hasil JSON dari PHP
				var siswa = JSON.parse(xhr.responseText);
				var select = document.getElementById('siswaSelect');

				// Hapus semua opsi yang ada terlebih dahulu
				select.innerHTML = '';

				// Tambahkan opsi untuk setiap siswa yang diambil dari database
				siswa.forEach(function(item) {
					var option = document.createElement('option');
					option.value = item.nis; // Value dari opsi
					option.textContent = item.nis + ' | ' + item.nama_siswa; // Teks yang ditampilkan dalam opsi
					select.appendChild(option);
				});
			}
		};
		xhr.send();
	}

	// Muat data siswa saat halaman pertama kali dibuka
	window.onload = function() {
		loadSiswaData();
	};
</script>

<!-- Server side start -->
<div class="col-12">
	<div class="card mt-5">
		<div class="card-body">
			<h4 class="header-title">Transaksi Pembayaran SPMP dan DSP</h4>
			<form class="" novalidate="" action="?page=Transaksi-Pembayaran" method="post">
			<!-- <form class="" novalidate="" action="simpan_transaksi.php" method="post"> -->
				<div class="form-row">
					<div class="col-md-4 mb-3">
						<label for="">No. Transaksi</label>
						<!-- <input type="text" class="form-control" name="txtNomor" value="<?php echo $nextNoTransaksi; ?>" readonly> -->
						<input type="text" class="form-control" name="txtNomor" id="kodeTransaksi" value="" readonly>
					</div>
					<div class="col-md-2 mb-3">
						<label for="">Generate;</label>
						<button type="button" class="btn btn-secondary" onclick="generateKodeTransaksi()">Buat Kode Transaksi</button>
					</div>
					<div class="col-md-6 mb-3">
						<label for="">Tanggal Transaksi</label>
						<!-- <input type="text" class="form-control" name="cmbTanggal" readonly="" value="<?php echo $tglTransaksi; ?>"> -->
						<input type="text" class="form-control" name="cmbTanggal" id="tanggal" placeholder="dd-mm-yyyy" value="<?php echo $tglTransaksi; ?>">
					</div>
				</div>
				<div class="form-row">
					<div class="col-md-5 mb-3">
						<label for="">NIS</label>
						<div class="input-group">
							<!-- <input type="text" class="form-control" name="txtNis" required=""> -->
							<select class="js-example-basic-single" name="txtNis" id="siswaSelect" style="width: 100%" required>
								<!-- Data siswa akan dimuat di sini -->
							</select>
						</div>
					</div>
					<div class="col-md-2 mb-3">
						<label for="">Kelas</label>
						<div class="input-group">
							<select class="form-control" name="txtKelas">
								<option>X</option>
								<option>XI</option>
								<option>XII</option>
							</select>
						</div>
					</div>
					<div class="col-md-2 mb-3">
						<label for="">Kode Pembayaran</label>
						<input type="text" class="form-control" name="txtKode" required="">
					</div>
					<div class="col-md-3 mb-3">
						<label for="">Jumlah Bayar</label>
						<input type="text" class="form-control" name="txtBanyak" required="">
					</div>
				</div>

				<div class="form-row">
					<div class="col-md-3 mb-3">
						<label for="">Status Pembayaran</label>
						<div class="input-group">
							<select class="form-control form-control-lg" name="rbAktif">
								<option value="1">Anggaran</option>
								<option value="2">Tunggakan</option>
							</select>
						</div>
					</div>

				</div>
				<!-- <label for="">Status Pembayaran</label>
				<br>
				<div class="custom-control custom-radio custom-control-inline">
					<input name="rbAktif" type="radio" value="Anggaran" checked="checked" />
					Anggaran
					<input name="rbAktif" type="radio" value="Tunggakan" />
					Tunggakan
				</div> -->
				<!-- <br><br> -->
				<button class="col-12 btn btn-primary" type="submit" name="btnPilih">Proses</button>


				<div class="invoice-table table-responsive mt-5">
					<table class="table table-bordered table-hover text-right">
						<thead>
							<tr class="text-capitalize">
								<th class="text-center" style="width: 5%;">No</th>
								<th class="text-center" style="width: 10%;">NIS</th>
								<th class="text-center" style="width: 20%;">Nama Siswa</th>
								<th class="text-center" style="width: 10%;">Kelas</th>
								<th class="text-center" style="width: 20%;">Uraian</th>
								<th class="text-center" style="width: 15%;">Status</th>
								<th class="text-center" style="width: 10%;">Jumlah</th>
								<th class="text-center" style="width: 10%;">Aksi</th>
							</tr>
						</thead>
						<tbody>
							<?php
							# Menampilkan List Item barang yang dibeli untuk Nomor Transaksi Terpilih
							$listBarangSql = "SELECT siswa.nama_siswa, bulan.keterangan, tmp_transaksi.*	FROM tmp_transaksi, siswa, bulan WHERE tmp_transaksi.nis=siswa.nis AND tmp_transaksi.kode_bayar=bulan.kode ";
							$listBarangQry = mysql_query($listBarangSql, $koneksidb)  or die("Query list barang salah : " . mysql_error());
							$nomor  = 0;
							$totalBayar = 0;
							while ($listBarangRow = mysql_fetch_array($listBarangQry)) {
								$ID			= $listBarangRow['id'];
								$totalBayar = $totalBayar + intval($listBarangRow['banyak']);

								$nomor++;
								if ($listBarangRow['status_bayaran'] == 1)
									$s = "Anggatan";
								else
									$s = "Tunggakan";
							?>
								<tr>
									<td class="text-center"><?php echo $nomor; ?></td>
									<td class="text-center"><?php echo $listBarangRow['nis']; ?></td>
									<td class="text-left"><?php echo $listBarangRow['nama_siswa']; ?></td>
									<td class="text-center"><?php echo $listBarangRow['kelas']; ?></td>
									<td class="text-center"><?php echo $listBarangRow['keterangan']; ?></td>
									<td class="text-left"><?php echo $s; ?></td>
									<td class="text-right"><?php echo $listBarangRow['banyak']; ?></td>
									<td class="text-center"><a href="?page=Transaksi-Pembayaran&Act=Delete&ID=<?php echo $ID; ?>" target="_self">Hapus</a></td>
								</tr>
							<?php } ?>
						</tbody>
						<tfoot>
							<tr>
								<td colspan="6">Total : </td>
								<td><?php echo format_angka($totalBayar); ?></td>
								<td></td>
							</tr>
						</tfoot>
					</table>
				</div>
				<div class="invoice-buttons text-right">
					<button class="col-12 btn btn-success" type="submit" name="btnSave">Simpan Transaksi</button>
				</div>
			</form>
		</div>
	</div>
</div>
<!-- Server side end -->