Batasi jumlah pinjaman dan Pemberitahuan data stok kosong

 asslamulaikum semua... masih tentang peminjaman barang, selanjutnya saya akan membatasi jumlah pinjaman nah jika jumlah pinjaman melebihi batas maka akan memberikan pesan bahwa jumlah pinjaman melebihi batas, dan juga jika barang sudah tidak ada lagi di tabel barang maka akan memunculkan pesan bahwa barang sudah habis... mohon solusinya...... 

 // query pinjaman
if (isset($_POST['pinjam'])) {
    $id_member = htmlspecialchars($_POST['id_member']);
    $id = htmlspecialchars($_POST['id']);
    $jmlpinjam = htmlspecialchars($_POST['jmlpinjam']);
    // ================== //
    $ekstensi_diperbolehkan    = array('pdf', 'docx');
    $nama    = $_FILES['suratpengajuan']['name'];
    $x        = explode('.', $nama);
    $ekstensi    = strtolower(end($x));
    $ukuran      = $_FILES['suratpengajuan']['size'];
    $file_tmp    = $_FILES['suratpengajuan']['tmp_name'];
    $namabaru = date('d-m-Y') . $nama;

    // ambil jumlah barang saat ini
    $jml_saatini =  $conn->query("SELECT * FROM tb_sarpases WHERE id='$id'");
    $jumlahnya = $jml_saatini->fetch_array();
    $jumlah = $jumlahnya['jumlah'];
    // Kurangi Jumlah
    $stok_baru = $jumlah - $jmlpinjam;

    if (in_array($ekstensi, $ekstensi_diperbolehkan) === true) {
        if ($ukuran < 10240) {
            move_uploaded_file($file_tmp, 'assets/surat/' . $namabaru);

            $query    = $conn->query("INSERT INTO tb_pinjaman (id_member,id,suratpengajuan,jmlpinjam) VALUES('$id_member','$id','$namabaru','$jmlpinjam')");

            // megurangi stok di tabel
            $kurangi_stok = $conn->query("UPDATE tb_sarpases SET jumlah='$stok_baru' WHERE id='$id'");

            if ($query && $kurangi_stok) {
                $_SESSION['eksekusi'] = "Peminjaman Berhasil Disimpan..., tunggu proses persetujuan dari pihak SMA";
                echo "<script>window.location='?member=peminjam';</script>";
            } else {
                echo mysqli_error($conn);
                // $_SESSION['error'] = "Data Gagal Di Simpan";
                // echo "<script>window.location='?member=peminjam';</script>";
            }
        } else {
            $_SESSION['error'] = "Ukuran File Terlalu Besar";
            echo "<script>window.location='?member=peminjam';</script>";
        }
    } else {
        $_SESSION['error'] = "Ekstensi Tidak Diperbolehkan, Ekstensi Harus .pdf";
        echo "<script>window.location='?member=peminjam';</script>";
    }
} 
avatar arifrohman

@arifrohman

11 Kontribusi 4 Poin


Jawaban Terpilih

Coba query samakan dg  query untuk stok kurang atau kosong di bawah ini
 
if (isset($_POST['pinjam'])) {
    $id_member = htmlspecialchars($_POST['id_member']);
    $id = htmlspecialchars($_POST['id']);
    $jmlpinjam = htmlspecialchars($_POST['jmlpinjam']);

    $ekstensi_diperbolehkan    = array('pdf', 'docx');
    $nama    = $_FILES['suratpengajuan']['name'];
    $x        = explode('.', $nama);
    $ekstensi    = strtolower(end($x));
    $ukuran      = $_FILES['suratpengajuan']['size'];
    $file_tmp    = $_FILES['suratpengajuan']['tmp_name'];
    $namabaru = date('d-m-Y') . $nama;

    // ambil jumlah barang saat ini
    $jml_saatini =  $conn->query("SELECT * FROM tb_sarpases WHERE id='$id'");
    $jumlahnya = $jml_saatini->fetch_array();
    $jumlah = $jumlahnya['jumlah'];
    // Kurangi Jumlah
    $stok_baru = $jumlah - $jmlpinjam;
    if ($jumlah < $jmlpinjam) {
        $_SESSION['error'] = "Stok Barang Kurang...";
        echo "<script>window.location='?member=peminjam';</script>";
    } else {
        if (in_array($ekstensi, $ekstensi_diperbolehkan) === true) {
            if ($ukuran < 10240 ) {
                move_uploaded_file($file_tmp, 'assets/surat/' . $namabaru);

                $query    = $conn->query("INSERT INTO tb_pinjaman (id_member,id,suratpengajuan,jmlpinjam) VALUES('$id_member','$id','$namabaru',
                '$jmlpinjam')");

                $kurangi_stok = $conn->query("UPDATE tb_sarpases SET jumlah='$stok_baru' WHERE id='$id'");

                if ($query && $kurangi_stok) {
                    $_SESSION['eksekusi'] = "Peminjaman Berhasil Disimpan..., tunggu proses persetujuan dari pihak SMA";
                    echo "<script>window.location='?member=peminjam';</script>";
                } else {
                    echo mysqli_error($conn);
                    // $_SESSION['error'] = "Data Gagal Di Simpan";
                    // echo "<script>window.location='?member=peminjam';</script>";
                }
            } else {
                $_SESSION['error'] = "Ukuran File Terlalu Besar";
                echo "<script>window.location='?member=peminjam';</script>";
            }
        } else {
            $_SESSION['error'] = "Ekstensi Tidak Diperbolehkan, Ekstensi Harus .pdf";
            echo "<script>window.location='?member=peminjam';</script>";
        }
    }
} 
avatar ariffqu

@ariffqu

6 Kontribusi 8 Poin

Jawaban

Ya mungkin sebelum pengecekan yang
in_array($ekstensi, $ekstensi_diperbolehkan) === true

ditambahin aja pengecekan lain nya untuk $stok_baru, jika melebihi batas baru ikutin seperti kodingan lain nya yang $_SESSION['error'] dan echo .

Jika valid maka Else untuk lanjut ke 
in_array($ekstensi, $ekstensi_diperbolehkan) === true


Btw, agak penasaran. Ukuran < 10240 bener aja ya? Itu dalam bentuk byte kan? jadi ukurannya cuman 10Kb ga sampai 1Mb.


avatar GrennKren

@GrennKren

17 Kontribusi 5 Poin


Coba query samakan dg  query untuk stok kurang atau kosong di bawah ini
 
if (isset($_POST['pinjam'])) {
    $id_member = htmlspecialchars($_POST['id_member']);
    $id = htmlspecialchars($_POST['id']);
    $jmlpinjam = htmlspecialchars($_POST['jmlpinjam']);

    $ekstensi_diperbolehkan    = array('pdf', 'docx');
    $nama    = $_FILES['suratpengajuan']['name'];
    $x        = explode('.', $nama);
    $ekstensi    = strtolower(end($x));
    $ukuran      = $_FILES['suratpengajuan']['size'];
    $file_tmp    = $_FILES['suratpengajuan']['tmp_name'];
    $namabaru = date('d-m-Y') . $nama;

    // ambil jumlah barang saat ini
    $jml_saatini =  $conn->query("SELECT * FROM tb_sarpases WHERE id='$id'");
    $jumlahnya = $jml_saatini->fetch_array();
    $jumlah = $jumlahnya['jumlah'];
    // Kurangi Jumlah
    $stok_baru = $jumlah - $jmlpinjam;
    if ($jumlah < $jmlpinjam) {
        $_SESSION['error'] = "Stok Barang Kurang...";
        echo "<script>window.location='?member=peminjam';</script>";
    } else {
        if (in_array($ekstensi, $ekstensi_diperbolehkan) === true) {
            if ($ukuran < 10240 ) {
                move_uploaded_file($file_tmp, 'assets/surat/' . $namabaru);

                $query    = $conn->query("INSERT INTO tb_pinjaman (id_member,id,suratpengajuan,jmlpinjam) VALUES('$id_member','$id','$namabaru',
                '$jmlpinjam')");

                $kurangi_stok = $conn->query("UPDATE tb_sarpases SET jumlah='$stok_baru' WHERE id='$id'");

                if ($query && $kurangi_stok) {
                    $_SESSION['eksekusi'] = "Peminjaman Berhasil Disimpan..., tunggu proses persetujuan dari pihak SMA";
                    echo "<script>window.location='?member=peminjam';</script>";
                } else {
                    echo mysqli_error($conn);
                    // $_SESSION['error'] = "Data Gagal Di Simpan";
                    // echo "<script>window.location='?member=peminjam';</script>";
                }
            } else {
                $_SESSION['error'] = "Ukuran File Terlalu Besar";
                echo "<script>window.location='?member=peminjam';</script>";
            }
        } else {
            $_SESSION['error'] = "Ekstensi Tidak Diperbolehkan, Ekstensi Harus .pdf";
            echo "<script>window.location='?member=peminjam';</script>";
        }
    }
} 
avatar ariffqu

@ariffqu

6 Kontribusi 8 Poin


Login untuk gabung berdiskusi