Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- require_once "algoritma_sa.php";
- // require_once "../fungsiGlobal.php";
- $displayError ='display: none';
- $displaySuccess = false;
- $defineOperasiJantung = 'Operasi Jantung';
- $defineNamaRuanganJantung = 'Ruang Operasi Jantung';
- if (!empty($_POST['jumlahOperasi'])) {
- // Get data from method POST
- $jumlahOperasi = $_POST['jumlahOperasi'];
- $inputDurasiOperasi = $_POST['inputDurasiOperasi'];
- $maxIterasi = $_POST['max_iterasi'];
- $suhuSekarang = $_POST['suhu_sekarang'];
- } else {
- // Define value
- $jumlahOperasi = null;
- $inputDurasiOperasi = "false";
- $maxIterasi = 100000;
- $suhuSekarang = 10000;
- }
- if ($jumlahOperasi && $inputDurasiOperasi == "true") {
- $generate = $_POST['generate'];
- $dataJson = $_POST['dataJson'];
- if (!empty($_POST['dataPost'])) {
- $dataPost = (array) json_decode($_POST['dataPost']);
- foreach ($dataPost as $key => $value) {
- if ($key == 'generate') {
- $_POST['generate'] = $generate;
- } elseif ($key == 'dataPost') {
- $_POST['dataJson'] = $dataJson;
- } else {
- $_POST[$key] = $value;
- }
- }
- }
- // exit(var_dump($_POST));
- $data2 = [];
- $c = 1;
- foreach ($db->fetch_all("tbl_ruangan WHERE id_status=1 ORDER BY id_ruangan ASC") as $tbl_ruangan) {
- $jumlahRuangOperasi = $c;
- $d = 1;
- while ($d <= $jumlahOperasi) {
- $id_ruangan = $tbl_ruangan->id_ruangan;
- $namaOperasi = "operasi_" . $d;
- $tanggalMasuk = "tanggal_masuk_" . $id_ruangan . '-' . $d;
- $jamMasuk = "jam_masuk_" . $id_ruangan . '-' . $d;
- $jamKeluar = "jam_keluar_" . $id_ruangan . '-' . $d;
- $getTimeDiffDurasi = getTimeDiff($_POST[$jamMasuk], $_POST[$jamKeluar]);
- // RUmus perhitungan
- // (((tbl_alat.kapasitas * tbl_alat.jumlah) / 1000) * durasi) * tbl_harga.harga
- $totalHarga = $db->fetch_custom('SELECT (((sum(ta.kapasitas * ta.jumlah) / 1000) * '.$getTimeDiffDurasi.') * (SELECT harga FROM tbl_harga)) as total_harga
- FROM tbl_ruangan as tr
- RIGHT JOIN tbl_alat as ta
- ON ta.id_ruangan = tr.id_ruangan
- WHERE ta.id_ruangan = ' . $id_ruangan);
- foreach ($totalHarga as $key => $value) {
- $totalHargaArr[$id_ruangan][] = $value->total_harga;
- }
- if (!empty($getTimeDiffDurasi)) {
- foreach ($totalHarga as $th) {
- $totalHarga[$id_ruangan][] = $th->total_harga;
- }
- $dataDurasiOperasi[$namaOperasi][$id_ruangan]['nama_ruangan'] = $tbl_ruangan->nama_ruangan;
- $dataDurasiOperasi[$namaOperasi][$id_ruangan]['operasi'] = $_POST[$namaOperasi];
- $dataDurasiOperasi[$namaOperasi][$id_ruangan]['tanggal_masuk'] = $_POST[$tanggalMasuk];
- $dataDurasiOperasi[$namaOperasi][$id_ruangan]['operasi'] = $_POST[$namaOperasi];
- $dataDurasiOperasi[$namaOperasi][$id_ruangan]['jam_masuk'] = $_POST[$jamMasuk];
- $dataDurasiOperasi[$namaOperasi][$id_ruangan]['jam_keluar'] = $_POST[$jamKeluar];
- $dataDurasiOperasi[$namaOperasi][$id_ruangan]['durasi'] = $getTimeDiffDurasi;
- $dataDurasiOperasi[$namaOperasi][$id_ruangan]['total_harga'] = $totalHarga;
- $dataDurasi[$namaOperasi][] = $getTimeDiffDurasi;
- }
- // prepare for data algoritma simulated annealing
- $data2[$id_ruangan][] = $getTimeDiffDurasi;
- $operasi[$namaOperasi] = $_POST[$namaOperasi];
- $tanggalMasukArr[$id_ruangan][] = $_POST[$tanggalMasuk];
- $jamMasukArr[$id_ruangan][] = $_POST[$jamMasuk];
- $jamKeluarArr[$id_ruangan][] = $_POST[$jamKeluar];
- $d++;
- }
- $idRuangan[$c] = $tbl_ruangan->id_ruangan;
- $namaRuangan[$c] = $tbl_ruangan->nama_ruangan;
- $c++;
- }
- // var_dump($totalHargaArr);
- // var_dump($tanggalMasukArr);
- // var_dump($jamMasukArr);
- // var_dump($jamKeluarArr);
- // exit;
- // exit(var_dump($data2));
- $data = array_values($data2);
- $totalHargaArr = array_values($totalHargaArr);
- $tanggalMasukArr = array_values($tanggalMasukArr);
- $jamMasukArr = array_values($jamMasukArr);
- $jamKeluarArr = array_values($jamKeluarArr);
- $operasi = array_values($operasi);
- $idRuangan = array_values($idRuangan);
- $namaRuangan = array_values($namaRuangan);
- // var_dump($result);
- // var_dump($dataDurasiOperasi);
- // var_dump($jumlahRuangOperasi);
- // var_dump($operasi);
- // var_dump($data)
- // Save data to table jadwal
- if (!empty($_POST['generate']) && $_POST['generate'] == 'generate') {
- $dataDuplicate = [];
- foreach (json_decode($_POST['dataJson']) as $key => $dataJadwal) {
- if (!empty($dataJadwal->tanggal_masuk) && !empty($dataJadwal->jam_masuk) && !empty($dataJadwal->jam_keluar)) {
- $checkData = $db->fetch_all_custom('SELECT tbl_jadwal.*, tr.nama_ruangan FROM tbl_jadwal
- LEFT JOIN tbl_ruangan tr ON tr.id_ruangan = tbl_jadwal.id_ruangan
- WHERE tbl_jadwal.id_ruangan="'.$dataJadwal->id_ruangan.'"
- AND tanggal_masuk="'.$dataJadwal->tanggal_masuk.'"
- AND
- (
- jam_masuk between "'.$dataJadwal->jam_masuk.'" AND "'.$dataJadwal->jam_keluar.'" OR
- jam_keluar between "'.$dataJadwal->jam_masuk.'" AND "'.$dataJadwal->jam_keluar.'"
- )
- ');
- foreach ($checkData as $value) {
- $dataDuplicate[] = $value;
- }
- if (empty($dataDuplicate)) {
- $insertJadwal[$key] = [
- 'id_ruangan' => $dataJadwal->id_ruangan,
- 'nama_operasi' => $dataJadwal->operasi,
- 'tanggal_masuk' => $dataJadwal->tanggal_masuk,
- 'jam_masuk' => $dataJadwal->jam_masuk,
- 'jam_keluar' => $dataJadwal->jam_keluar,
- 'id_status' => 0, // Status OFF,
- 'durasi' => $dataJadwal->durasi,
- 'total_harga' => $dataJadwal->total_harga,
- ];
- } else {
- $displayError = '';
- }
- }
- }
- if (!empty($insertJadwal) && empty($dataDuplicate)) {
- foreach ($insertJadwal as $value) {
- $db->insert("tbl_jadwal", $value);
- }
- $displaySuccess = true;
- }
- }
- }
- ?>
- <div class="errorna" style="<?php echo $displayError ?>">
- <div class="alert alert-danger" style="margin-left:0">
- <button class="close" data-dismiss="alert">×</button>
- <center><strong>Data jadwal sudah ada!</strong></center>
- <br><br>
- <?php $nomor=1; foreach($dataDuplicate as $value) { ?>
- <p>
- <?= $nomor ?>. <?= $value->nama_ruangan ?> pada tanggal <?= $value->tanggal_masuk ?> Jam <?= $value->jam_masuk ?> s/d <?= $value->jam_keluar ?> sudah terpaikai.
- </p>
- <?php $nomor++;} ?>
- </div>
- </div>
- <?php if ($displaySuccess == true) { ?>
- <div class="errorna">
- <div class="alert alert-success" style="margin-left:0">
- <button class="close" data-dismiss="alert">×</button>
- <center><strong>Data berhasil disimpan!</strong></center>
- </div>
- </div>
- <script>
- setTimeout(function(){ window.location = "http://localhost:81/Admin/admina/index.php/simulated-annealing"; }, 2000);
- </script>
- <?php } ?>
- <!-- Content Header (Page header) -->
- <section class="content-header">
- <h1>
- Simulated Annealing
- </h1>
- <ol class="breadcrumb">
- <li>
- <a href="<?=base_index();?>">
- <i class="fa fa-dashboard"></i> Home</a>
- </li>
- <li>
- <a href="<?=base_index();?>jadwal-ruangan">Simulated Annealing</a>
- </li>
- </ol>
- </section>
- <!-- Main content -->
- <section class="content">
- <!-- Input Jumlah Operasi -->
- <div class="row">
- <div class="col-xs-12">
- <div class="box">
- <div class="box-header">
- <h3 class="box-title">Input Jumlah Operasi</h3>
- </div>
- <div class="box-body">
- <form id="input-jumlah-operasi" method="post" class="form-horizontal">
- <div class="form-group">
- <label for="Jumlah Operasi" class="control-label col-xs-2">Jumlah Operasi</label>
- <div class="col-xs-10">
- <input type="number" name="jumlahOperasi" placeholder="Jumlah Operasi" class="form-control" required value="<?php echo $jumlahOperasi ?>">
- </div>
- </div>
- <div class="form-group">
- <label for="Max Iterasi" class="control-label col-xs-2">Max Iterasi</label>
- <div class="col-xs-10">
- <input type="number" name="max_iterasi" placeholder="Max Iterasi Operasi" class="form-control" required value="<?php echo $maxIterasi ?>">
- </div>
- </div>
- <div class="form-group">
- <label for="Suhu Sekarang" class="control-label col-xs-2">Suhu Sekarang</label>
- <div class="col-xs-10">
- <input type="number" name="suhu_sekarang" placeholder="Suhu Sekarang" class="form-control" required value="<?php echo $suhuSekarang ?>">
- </div>
- </div>
- <div class="form-group">
- <label for="tags" class="control-label col-xs-2"> </label>
- <div class="col-xs-10">
- <button type="submit" class="btn btn-primary btn-flat" value="submit">Submit</button>
- </div>
- </div>
- </form>
- </div>
- </div>
- </div>
- </div>
- <!-- End Input Jumlah Operasi -->
- <?php if (!empty($jumlahOperasi) && $inputDurasiOperasi === "true") {
- // Solusi
- // Generate Algoritma SA
- $generate = generate($data, $jumlahRuangOperasi, $jumlahOperasi, $operasi, $maxIterasi, $suhuSekarang, $idRuangan, $namaRuangan, $tanggalMasukArr, $jamMasukArr, $jamKeluarArr, $totalHargaArr);
- $cekRuangaOperasi = [];
- foreach ($generate['result'] as $key => $value) {
- $valOperasi = strtolower(str_replace(' ', '', $value['operasi']));
- $defineOperasiJantung = strtolower(str_replace(' ', '', $defineOperasiJantung));
- $namaRuangan = strtolower(str_replace(' ', '', $value['nama_ruangan']));
- $defineNamaRuanganJantung = strtolower(str_replace(' ', '', $defineNamaRuanganJantung));
- if ($valOperasi == $defineOperasiJantung) {
- if ($namaRuangan !== $defineNamaRuanganJantung) {
- $cekRuangaOperasi[$key] = $value;
- ?>
- <div class="errorna">
- <div class="alert alert-danger" style="margin-left:0">
- <button class="close" data-dismiss="alert">×</button>
- <center><strong><?= $value['operasi'] ?> harus dilakukan di Ruangan Operasi Jantung</strong></center>
- </div>
- </div>
- <?php
- }
- }
- }
- // var_dump($generate);
- }
- ?>
- <?php if (!empty($jumlahOperasi)) {?>
- <div class="row">
- <div class="col-xs-12">
- <div class="box">
- <div class="box-header">
- <h3 class="box-title">Input Durasi Operasi</h3>
- </div>
- <!-- /.box-header -->
- <div class="box-body">
- <form id="input-durasi" method="post" class="form-horizontal">
- <input type="hidden" name="jumlahOperasi" required value="<?php echo $jumlahOperasi ?>">
- <input type="hidden" name="inputDurasiOperasi" required value="true">
- <input type="hidden" name="max_iterasi" required value="<?php echo $maxIterasi ?>">
- <input type="hidden" name="suhu_sekarang" required value="<?php echo $suhuSekarang ?>">
- <!-- input data -->
- <div class="table-responsive">
- <table class="table table-condensed table-striped">
- <thead>
- <th>Nama Ruangan</th>
- <?php $a = 1;while ($a <= $jumlahOperasi) {?>
- <th>
- <div class="col-xs-12">
- <?php $namaOperasi = 'operasi_' . $a;?>
- <?php /*
- <input type="text" name="<?php echo $namaOperasi ?>" placeholder="Nama Operasi <?php echo $a ?>" class="form-control" required
- value="<?php echo !empty($_POST[$namaOperasi]) ? $_POST[$namaOperasi] : null ?>">
- */ ?>
- <input list="dataOperasi-<?php echo $a ?>" type="text" name="<?php echo $namaOperasi ?>" placeholder="Nama Operasi <?php echo $a ?>" class="form-control" required autocomplete=off value="<?php echo !empty($_POST[$namaOperasi]) ? $_POST[$namaOperasi] : null ?>">
- <datalist id="dataOperasi-<?php echo $a ?>">
- <?php
- foreach($db->fetch_all('tbl_operasi') as $isi) {
- echo "<option data-value='$isi->id_operasi'>$isi->nama_operasi</option>";
- }
- ?>
- </datalist>
- </div>
- </th>
- <?php $a++;}?>
- </thead>
- <tbody>
- <?php foreach ($db->fetch_all('tbl_ruangan WHERE id_status = 1 ORDER BY id_ruangan ASC') as $tbl_ruangan) {?>
- <tr>
- <td>
- <?php echo $tbl_ruangan->nama_ruangan ?>
- </td>
- <?php $a = 1;while ($a <= $jumlahOperasi) {?>
- <td>
- <div class="col-xs-12">
- <?php $tanggal_masuk = 'tanggal_masuk_' . $tbl_ruangan->id_ruangan . '-' . $a?>
- <span style="font-size: 12px">Tanggal</span>
- <input type="date" name="<?php echo $tanggal_masuk ?>" class="form-control" value="<?php echo !empty($_POST[$tanggal_masuk]) ? $_POST[$tanggal_masuk] : null ?>">
- </div>
- <br>
- <div class="col-xs-12">
- <?php $jam_masuk = 'jam_masuk_' . $tbl_ruangan->id_ruangan . '-' . $a?>
- <span style="font-size: 12px">Jam Masuk</span>
- <input type="time" name="<?php echo $jam_masuk ?>" class="form-control" value="<?php echo !empty($_POST[$jam_masuk]) ? $_POST[$jam_masuk] : null ?>">
- </div>
- <br>
- <div class="col-xs-12">
- <?php $jam_keluar = 'jam_keluar_' . $tbl_ruangan->id_ruangan . '-' . $a?>
- <span style="font-size: 12px">Jam Keluar</span>
- <input type="time" name="<?php echo $jam_keluar ?>" class="form-control" value="<?php echo !empty($_POST[$jam_keluar]) ? $_POST[$jam_keluar] : null ?>">
- </div>
- </td>
- <?php $a++;}?>
- </tr>
- <?php }?>
- </tbody>
- </table>
- </div>
- <!-- /.input data -->
- <div class="form-group">
- <label for="tags" class="control-label col-xs-12 "> </label>
- <div class="col-xs-12">
- <button type="submit" class="btn btn-primary btn-flat" value="generate">Generate</button>    
- <button type="reset" class="btn btn-danger btn-flat" value="reset">Reset</button>
- </div>
- </div>
- <!-- /.form-group -->
- </form>
- </div>
- </div>
- </div>
- </div>
- <?php }?>
- <?php if (!empty($jumlahOperasi) && $inputDurasiOperasi === "true") {
- // Solusi
- // Generate Algoritma SA
- if (!empty($cekRuangaOperasi)) {
- die;
- }
- ?>
- <!-- Hasil Perhitungan -->
- <div class="row">
- <div class="col-xs-12">
- <div class="box">
- <div class="box-header">
- <h3 class="box-title">Hasil Perhitungan</h3>
- </div>
- <!-- /.box-header -->
- <div class="box-body table-responsive">
- <b>
- <p>Total Iterasi
- <?= $generate['totalIterasi'] ?>
- </p>
- </b>
- <table id="dtb_jadwal_ruangan" class="table table-bordered table-striped">
- <thead>
- <tr>
- <th>No</th>
- <th>Nama Ruangan</th>
- <th>Nama Operasi</th>
- <th>Tanggal Masuk</th>
- <th>Jam Masuk</th>
- <th>Jam Keluar</th>
- <th>Durasi</th>
- <th>Total Harga</th>
- </tr>
- </thead>
- <tbody>
- <?php
- $no = 1;
- foreach ($generate['result'] as $dataTableJadwal) {
- if (!empty($dataTableJadwal['tanggal_masuk']) && !empty($dataTableJadwal['jam_masuk']) && !empty($dataTableJadwal['jam_keluar'])) {
- ?>
- <tr>
- <td>
- <?php echo $no ?> </td>
- <td>
- <?php echo $dataTableJadwal['nama_ruangan'] ?> </td>
- <td>
- <?php echo $dataTableJadwal['operasi'] ?> </td>
- <td>
- <?php echo $dataTableJadwal['tanggal_masuk'] ?> </td>
- <td>
- <?php echo $dataTableJadwal['jam_masuk'] ?> </td>
- <td>
- <?php echo $dataTableJadwal['jam_keluar'] ?> </td>
- <td>
- <?php echo getTimeDiff($dataTableJadwal['jam_masuk'], $dataTableJadwal['jam_keluar']) ?> menit </td>
- <td>
- Rp <?php echo number_format($dataTableJadwal['total_harga'], 0); ?>
- </td>
- </tr>
- <?php
- $no++;
- }
- }
- ?>
- </tbody>
- </table>
- </div>
- <div class="box-body">
- <!-- Form when user click process button -->
- <form id="input-proses" method="post" class="form-horizontal">
- <input type="hidden" name="jumlahOperasi" value="<?php echo $jumlahOperasi ?>">
- <input type="hidden" name="inputDurasiOperasi" value="true">
- <input type="hidden" name="max_iterasi" value="<?php echo $maxIterasi ?>">
- <input type="hidden" name="suhu_sekarang" value="<?php echo $suhuSekarang ?>">
- <input type="hidden" name="generate" value="generate">
- <input type="hidden" name="dataJson" value='<?= json_encode($generate["result"]) ?>'>
- <input type="hidden" name="dataPost" value='<?= json_encode($_POST) ?>'>
- <div class="form-group">
- <label for="tags" class="control-label col-xs-12 "> </label>
- <div class="col-xs-12">
- <button type="submit" class="btn btn-primary btn-flat">Proses</button>
- </div>
- </div>
- <!-- /.form-group -->
- </form>
- </div>
- <!-- /.box-body -->
- </div>
- <!-- /.box -->
- </div>
- </div>
- <?php } ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement