Anons79 Mini Shell

Directory : /home/aplikasiposinfo/public_html/tokoku.fixmate.id/resources/views/pembelian/
Upload File :
Current File : /home/aplikasiposinfo/public_html/tokoku.fixmate.id/resources/views/pembelian/form.blade.php

@push('scripts')
    <!-- Input Mask Plugin Js -->
    <script src="https://unpkg.com/autonumeric"></script>
    <script>
        const tableSparepart = document.getElementById('table-sparepart');
        const tableSparepartShow = document.getElementById('table-sparepart-list');
        const tableDetail = document.getElementById('table-detail-item');
        const itemDeleteButton = document.querySelectorAll(".item-delete");
        const uangBayarInput = document.getElementById("uang_bayar");
        const pencarian = document.getElementById("cari");

        const qty = document.querySelectorAll(".qty");
        const hargaBeli = document.querySelectorAll(".harga_beli");


        let itemId = document.querySelectorAll(".item_id");

        // console.log(itemId);

        const numberFormat = new Intl.NumberFormat({
            style: 'currency'
        });

        let itemIdArray = [];

        tableSparepartShow.addEventListener("click", function() {
            loadList();
            pencarian.addEventListener('input', function() {
                // Mengambil nilai input pencarian

                loadList();

            });


        });

        function loadList() {
            const nilaiPencarian = pencarian.value;

            fetch("{{ route('get-item') }}?cari=" + nilaiPencarian, {
                    method: "GET"
                })
                .then(
                    (response) => {
                        return response.json();
                    }
                )
                .then((data) => {
                    const rowCount = tableSparepart.querySelector('tbody');

                    while (rowCount.firstChild) {
                        rowCount.removeChild(rowCount.firstChild);
                    }

                    let items = data;
                    items.data.forEach(item => {
                        let namaSparepartText = document.createTextNode(item.nama_item);
                        let hargaJualText = document.createTextNode(numberFormat.format(item
                            .harga_item));
                        let hargaBeliText = document.createTextNode(numberFormat.format(item
                            .biaya_item));
                        // let stokText = document.createTextNode(item.stok);
                        let stok_tokos = item.stok_item_tokos.filter(toko => toko.toko_id == document.getElementById("toko_id").value);
                        var itemStok = item.stok_item_tokos.length > 0 ? stok_tokos.reduce((sum, toko) => sum + toko.stok, 0) : item.stok;
                        let stokText = document.createTextNode(itemStok);

                        let pilihButtonText = document.createTextNode(`Pilih`);

                        let pilihButton = document.createElement("button");
                        pilihButton.classList.add('btn', 'btn-primary', 'item-add');
                        // pilihButton.setAttribute('data-id', item.id);
                        pilihButton.setAttribute('type', "button");
                        pilihButton.dataset.id = item.id;
                        pilihButton.appendChild(pilihButtonText);

                        let jumlahInput = document.createElement("input");
                        jumlahInput.setAttribute('type', "number");
                        jumlahInput.setAttribute('value', 0);
                        jumlahInput.setAttribute('min', 0);
                        jumlahInput.classList.add('form-control', 'jumlah-input');





                        let row = tableSparepart.querySelector("tbody").insertRow(-1);
                        let namaSparepart = row.insertCell(0);
                        let hargaJual = row.insertCell(1);
                        let hargaBeli = row.insertCell(2);
                        let stok = row.insertCell(3);
                        let jumlah = row.insertCell(4);
                        let pilih = row.insertCell(5);

                        namaSparepart.setAttribute('style', 'max-width: 100px;')

                        namaSparepart.appendChild(namaSparepartText);
                        hargaJual.appendChild(hargaJualText);
                        hargaBeli.appendChild(hargaBeliText);
                        stok.appendChild(stokText);
                        jumlah.appendChild(jumlahInput);
                        pilih.appendChild(pilihButton);


                        addEventPilih(pilihButton);
                    });
                });
        }


        function addEventPilih(element) {
            element.addEventListener('click', function(event) {



                let jumlah = this.parentElement.parentElement.childNodes[4];

                let jumlahValue = jumlah.querySelector(".jumlah-input").value;

                fetch("{{ route('get-item') }}?search=" + this.dataset.id, {
                        method: "GET"
                    })
                    .then(
                        (response) => {
                            return response.json();
                        }
                    )
                    .then((data) => {

                        let items = data;
                        items.data.forEach(item => {
                            if (jumlahValue > 0) {
                                addDetailBarangRow();
                            }

                            function addDetailBarangRow() {
                                //new text element
                                showAlert(item.nama_item);
                                let namaSparepartText = document.createTextNode(item.nama_item);
                                let hargaJualText = document.createTextNode(numberFormat.format(item
                                    .harga_item));
                                let hargaBeliText = document.createTextNode(numberFormat.format(item
                                    .biaya_item));

                                let hargaBeliInput = document.createElement("input");
                                hargaBeliInput.classList.add("biaya_item");
                                hargaBeliInput.setAttribute('name', "biaya_item[]");
                                hargaBeliInput.setAttribute('type', "number");
                                hargaBeliInput.setAttribute('min', 0);
                                hargaBeliInput.setAttribute('value', item.biaya_item);


                                let jumlahText = document.createTextNode(jumlahValue);
                                let subTotalText = document.createTextNode(numberFormat.format(item
                                    .biaya_item * jumlahValue));

                                let hapusButtonText = document.createTextNode("X");

                                let hapusButton = document.createElement("button");
                                hapusButton.classList.add("btn", "btn-danger", "item-delete");
                                hapusButton.appendChild(hapusButtonText);
                                hapusButton.setAttribute('type', "button");

                                //hidden input for form request
                                let jumlahInput = document.createElement("input");
                                jumlahInput.classList.add("qty");
                                jumlahInput.setAttribute('name', "jumlah[]");
                                jumlahInput.setAttribute('type', "number");
                                jumlahInput.setAttribute('min', 0);
                                jumlahInput.setAttribute('value', jumlahValue);
                                // jumlahInput.setAttribute('hidden', true);

                                //hidden input for form request
                                let idInput = document.createElement("input");
                                idInput.setAttribute('name', "id[]");
                                idInput.setAttribute('id', "jumlah_input");
                                idInput.classList.add("item_id");
                                idInput.setAttribute('type', "text");
                                idInput.setAttribute('value', item.id);
                                idInput.setAttribute('hidden', true);

                                // let selectElement = document.createElement("select");
                                // selectElement.setAttribute('name', "lokasi[]");
                                // selectElement.classList.add("form-control");
                                // let option1 = document.createElement("option");
                                // option1.setAttribute('value', "1");
                                // option1.textContent = "Toko";
                                // let option2 = document.createElement("option");
                                // option2.setAttribute('value', "2");
                                // option2.textContent = "Gudang";
                                // selectElement.appendChild(option1);
                                // selectElement.appendChild(option2);

                                let row = tableDetail.querySelector("tbody").insertRow(-1);
                                let namaSparepart = row.insertCell(0);
                                let hargaBeli = row.insertCell(1);
                                let jumlah = row.insertCell(2);
                                // let select = row.insertCell(3);
                                let hargaJual = row.insertCell(3);
                                let subTotal = row.insertCell(4);
                                subTotal.classList.add("subTotal");
                                let hapus = row.insertCell(5);

                                namaSparepart.appendChild(namaSparepartText);
                                hargaJual.appendChild(hargaJualText);
                                hargaBeli.appendChild(hargaBeliInput);
                                subTotal.appendChild(subTotalText);
                                // jumlah.appendChild(jumlahText);
                                jumlah.appendChild(jumlahInput);
                                jumlah.appendChild(idInput);
                                hapus.appendChild(hapusButton);
                                // select.appendChild(selectElement);

                                let detail = [item.id, jumlahValue];
                                hargaBeliInput.addEventListener('input', function() {
                                    let newSubTotal = parseFloat(this.value) * parseFloat(
                                        jumlahInput.value);
                                    subTotal.textContent = numberFormat.format(newSubTotal);
                                    countGrandTotal();
                                });

                                // Event listener for jumlahInput input
                                jumlahInput.addEventListener('input', function() {
                                    let newSubTotal = parseFloat(hargaBeliInput.value) *
                                        parseFloat(this.value);
                                    subTotal.textContent = numberFormat.format(newSubTotal);
                                    countGrandTotal();
                                });

                                addEventHapus(hapusButton);
                                countGrandTotal();
                            }
                        });
                    });


            })
        }

        function showAlert(item) {

            alert(item + " Ditambahkan");


        }

        function addEventHapus(element) {
            element.addEventListener("click", function(event) {
                this.parentElement.parentElement.remove();
                countGrandTotal();
            });
        }

        uangBayarInput.addEventListener("input", function(event) {
            countGrandTotal();
        });

        document.querySelector("#supplier_id").addEventListener("change", function(event) {
            countGrandTotal();
        });

        document.querySelector("#metode_bayar").addEventListener("change", function(event) {
            countGrandTotal();
        });

        itemDeleteButton.forEach((e) => {
            e.addEventListener("click", function(event) {
                this.parentElement.parentElement.remove();
                countGrandTotal();
            });
        });
        qty.forEach((e, index) => {
            e.addEventListener('input', function() {
                let hargaBeliInput = this.closest('tr').querySelector('[name="biaya_item[]"]');
                let subTotalElements = document.querySelectorAll(".subTotal");
                let subTotalElement = subTotalElements[index];
                let newSubTotal = parseFloat(hargaBeliInput.value) *
                    parseFloat(this.value);
                subTotalElement.textContent = numberFormat.format(newSubTotal);
                countGrandTotal();
            });
        });
        hargaBeli.forEach((e, index) => {
            e.addEventListener('input', function() {
                let trElement = this.closest('tr');
                let subTotalElement = trElement.querySelector(".subTotal");

                let qtyElement = trElement.querySelector(".qty");
                let newSubTotal = parseFloat(this.value) * parseFloat(qtyElement.value);

                subTotalElement.textContent = numberFormat.format(newSubTotal);
                countGrandTotal();
            });
        });



        // Event listener for jumlahInput input


        function countGrandTotal() {
            let kembaliInput = document.getElementById("kembali");
            let uangBayarInput = document.getElementById("uang_bayar");
            let subTotal = document.querySelectorAll(".subTotal");
            let grandTotal = document.querySelector("#grandTotal");

            const selectedIndex = document.querySelector("#supplier_id").selectedIndex;
            const selectedOption = document.querySelector("#supplier_id").options[selectedIndex];

            if (document.getElementById("metode_bayar").value == "saldo") {
                uangBayarInput.setAttribute('max',selectedOption.dataset.saldo);
            } else {
                uangBayarInput.removeAttribute('max');
            }

            

            let grandTotalValue = 0;
            subTotal.forEach((element) => {
                subTotalValue1 = element.textContent.replaceAll(",", "");
                subTotalValue = parseFloat(subTotalValue1.replaceAll(".", ""));
                grandTotalValue += subTotalValue;
            });

            grandTotal.textContent = numberFormat.format(grandTotalValue);

            kembaliValue = (uangBayarInput.value) - parseInt(grandTotalValue);
            if (kembaliValue < 0) {
                kembaliInput.value = "Uang Bayar Tidak Cukup";
            } else if (kembaliInput >= 0) {
                kembaliInput.value = numberFormat.format(parseInt(kembaliValue));
            } else {
                kembaliInput.value = numberFormat.format(parseInt(kembaliValue));
            }

            document.getElementById("input_grandTotal").value = grandTotalValue;
        }
        countGrandTotal();
    </script>
@endpush

@push('styles')
    <style>
        .image-upload {
            width: 200px;
            height: 200px;
            background-color: gainsboro;
            display: block;
            margin: auto;
            background-size: contain;
        }

        .image-upload>input {
            display: none;
        }

        .pilih-bentuk svg {
            width: 100px;
            height: 100px;
            display: block;
            margin: auto;
        }

        .pilih-bentuk i {
            font-size: 100px;
            color: grey;
            position: absolute;
            left: 0%;
            top: 0%;
            right: 0%;
            bottom: 0%;
        }

        .qty {
            width: 55px;
        }
    </style>
@endpush

<div class="row">
    <!-- Task Info -->
    <div class="col-xs-12 col-sm-12 col-md-12">
        <div class="card">
            <div class="header">
                <a href="{{ route('pembelian.index') }}" class="btn btn-warning">Kembali</a>
            </div>
            <div class="body">

                <div class="row">
                    <div class="col-md-3">
                        <b>Invoice</b>
                        <div class="input-group colorpicker colorpicker-element">
                            <div class="form-line focused">
                                <input type="text" class="form-control" name="no_pembelian"
                                    value="{{ old('no_pembelian',@$datas->nomor_nota ?? 'B-' . date('Ymdhis')) }}"
                                    required>
                            </div>
                            <span class="input-group-addon">
                                <i style="background-color: rgb(0, 170, 187);"></i>
                            </span>
                        </div>
                    </div>
                    <div class="col-md-3">
                        <b>Tanggal</b>
                        <div class="input-group colorpicker colorpicker-element">
                            <div class="form-line focused">
                                <input type="text" class="form-control" name="tanggal" value="{{ old('tanggal',@$datas->tanggal_pembelian ?? date('Y-m-d')) }}"
                                    required>
                            </div>
                            <span class="input-group-addon">
                                <i style="background-color: rgb(0, 170, 187);"></i>
                            </span>
                        </div>
                    </div>
                    <div class="col-md-3">
                        <b>Kasir</b>
                        <div class="input-group colorpicker colorpicker-element">
                            <div class="form-line focused">
                                <input type="hidden" name="pengguna_id" value="{{ auth()->user()->id }}" required>
                                <input type="text" class="form-control" value="{{ auth()->user()->nama_pengguna }}"
                                    required>
                            </div>
                            <span class="input-group-addon">
                                <i style="background-color: rgba(0, 0, 0, 0.7);"></i>
                            </span>
                        </div>
                    </div>
                    <div class="col-md-3">
                        <b>Keterangan</b>
                        <div class="form-group">
                            <div class="form-line">
                                <textarea rows="1" name="keterangan" class="form-control no-resize auto-growth" placeholder="Keterangan Pembelian...">{{old('keterangan',@$datas->keterangan)}}</textarea>
                            </div>
                        </div>
                    </div>

                    
                </div>

                <div class="row" style="display:none;">
                    <div class="col-md-3">
                        <b>Toko</b>
                        <div class="form-group">
                            <div class="form-line">
                                <select class="form-control" @if ($detail == true) disabled @endif
                                    name="toko_id" required id="toko_id">
                                    @foreach ($tokos as $toko)
                                        <option value="{{ $toko->id }}"
                                            @if (isset($datas)) @if ($toko->id == @$datas->tokos->first()->id ?? 0) selected @endif
                                            @endif>{{ $toko->nama_toko }}</option>
                                    @endforeach
                                </select>
                            </div>
                        </div>
                    </div>
                </div>

            </div>
        </div>
    </div>
    <!-- #END# Task Info -->
</div>

<div class="row">
    <div class="col-md-6">

        <div class="row">
            <div class="col-md-12">
                <div class="card">
                    <div class="header">
                        <h2>
                            Supplier
                        </h2>
                        <ul class="header-dropdown m-r--5">
                            <li class="dropdown">
                                <a href="javascript:void(0);" class="dropdown-toggle" data-toggle="dropdown" role="button"
                                    aria-haspopup="true" aria-expanded="false">
                                    <i class="material-icons">add</i>
                                </a>
                                <ul class="dropdown-menu pull-right">
                                    <li><a href="javascript:void(0);" class=" waves-effect waves-block">Tambah Supplier</a>
                                    </li>
                                </ul>
                            </li>
                        </ul>
                    </div>
                    <div class="body">
                        <h2 class="card-inside-title">Supplier</h2>
                        <div class="row">
                            <div class="col-sm-12 col-md-12">
                                <div class="form-group">
                                    <div class="form-line">
                                        <select class="form-control" @if ($detail == true) disabled @endif
                                            name="supplier_id" id="supplier_id" required>
                                            <option value="" disabled selected hidden data-saldo="{{ 0 }}">-pilih supplier-</option>
                                            @foreach ($suppliers as $data)
                                                <option value="{{ $data->id }}" data-saldo="{{ $data->saldo ?? 0 }}"
                                                    @if (isset($datas)) @if ($data->id == $datas->supplier_id) selected @endif
                                                    @endif>{{ $data->nama_supplier }} (Saldo : {{ number_format($data->saldo) }})</option>
                                            @endforeach
                                        </select>
                                    </div>
                                </div>
                                <div class="form-group">
                                    <div class="form-line">
                                        <h2 class="card-inside-title">Metode Pembayaran</h2>
                                        <select class="form-control" @if ($detail == true) disabled @endif

                                            name="metode_bayar" id="metode_bayar" required>


                                            <option value="" disabled selected hidden>-pilih metode pembayaran-
                                            </option>
                                            <option
                                                @if (isset($datas)) @if ($datas->metode_bayar == 'cash') selected @endif
                                                @endif value="cash">Cash</option>
                                            <option
                                                @if (isset($datas)) @if ($datas->metode_bayar == 'kredit') selected @endif
                                                @endif value="kredit">Kredit</option>
                                            <option
                                                @if (isset($datas)) @if ($datas->metode_bayar == 'transfer') selected @endif
                                                @endif value="transfer">Transfer</option>
                                            <option
                                                @if (isset($datas)) @if ($datas->metode_bayar == 'saldo') selected @endif
                                                @endif value="saldo">Saldo Supplier</option>
                                        </select>
                                    </div>
                                </div>
                                @if (isset($detail))
                                    @if ($detail == false)
                                        <div class="form-group">
                                            <div class="form-line">
                                                <h2 class="card-inside-title">Uang Pembayaran</h2>
                                                <input type="number"
                                                    id="uang_bayar" value="{{ old('uang_bayar',@$datas->uang_bayar) }}"
                                                    name="uang_bayar" required class="form-control" placeholder="Uang Bayar"
                                                    step="500">
                                            </div>
                                        </div>
                                        
                                        <div class="form-group">
                                            <div class="form-line">
                                                <h2 class="card-inside-title">Uang Kembalian</h2>
                                                <input type="text" id="kembali" name="kembali" readonly value="0"
                                                    class="form-control" placeholder="Kembali" step="500">
                                            </div>
                                        </div>
                                        <div class="form-group">
                                            <label for="bukti_nota">Lampirkan Bukti Nota Pembelian </label>
                                            <div class="form-line">
                                                <input type="file" accept="image/*,application/pdf" id="bukti_nota" name="bukti_nota">
                                            </div>
                                            <i>*Kosongkan jika tidak ingin mengubah bukti nota!</i>
                                        </div>
                                        <div class="form-group">
                                            <button type="submit" class="btn btn-success">Simpan</button>
                                        </div>
                                        <i>*Pilih barang terlebih dahulu sebelum simpan!</i>
                                    @endif
                                @endif
                            </div>
                        </div>

                    </div>
                </div>
            </div>
        </div>


    </div>
    @if (isset($datas))
        <div class="col-md-6">
            <div class="card" style="">
                <div class="header">

                    <h2 class="card-inside-title">Bukti Nota</h2>
                </div>
                <div class="body">

                    <a href="{{ asset('images/Bukti_nota/' . $datas->bukti_nota) }}"target="blank_"><img
                            style="width:400px;height:400px;object-fit:cover;"
                            src="{{ asset('images/Bukti_nota/' . $datas->bukti_nota) }}" alt=""></a>
                </div>

            </div>
        </div>
    @endif
</div>
<div class="row">
    <!-- Task Info -->
    <div class="col-xs-12 col-sm-12 col-md-12">
        <div class="card">
            <div class="header">
                <h2>Data Barang</h2>
                @if (isset($detail))
                    @if ($detail == false)
                        <button type="button" id="table-sparepart-list" class="btn btn-primary" data-toggle="modal"
                            data-target="#list-sparepart">Pilih Barang</button>
                    @endif
                @endif
            </div>
            <div class="body">
                <div class="table-responsive">
                    <table id="table-detail-item" class="table table-hover ">
                        <thead>
                            <tr>
                                <th>Nama Barang</th>
                                <th>Harga Beli</th>
                                <th>Jumlah</th>
                                {{-- <th>Lokasi</th> --}}
                                <th>Harga Jual</th>
                                <th>Subtotal</th>
                                <th>Tools</th>
                            </tr>
                        </thead>
                        <tbody>
                            @if (isset($datas->detail_pembelian))
                                @foreach ($datas->detail_pembelian as $d)
                                    <tr>
                                        <td>
                                            @if (isset($d->item))
                                                {{ $d->item->nama_item }}
                                            @else
                                                Item tidak tersedia! @endif
                                        </td>
                                        <td><input class="harga_beli" type="number" min="0"
                                                name="biaya_item[]"
                                                @if (isset($d->item)) value="{{ $d->item->biaya_item }}" @endif>
                                        </td>

                                        <td>
                                            <input class="qty" name="jumlah[]" value="{{ $d->qty }}"
                                                min="0" type="number">
                                            <input class="item_id"
                                                name="id[]"@if (isset($d->item)) value="{{ $d->item_id }}" @endif
                                                hidden>

                                        </td>
                                        {{-- <td>
                                            <select name="lokasi[]" class="form-control">
                                                <option
                                                    value="1"@if ($d->lokasi == 1) selected @endif>
                                                    Toko</option>
                                                <option
                                                    value="2"@if ($d->lokasi == 2) selected @endif>
                                                    Gudang</option>

                                            </select>
                                        </td> --}}
                                        <td>
                                            @if (isset($d->item))
                                                {{ number_format($d->item->harga_item) }}
                                            @else
                                                Item tidak tersedia! @endif
                                        </td>
                                        <td class="subTotal">
                                            @if (isset($d->item))
                                                {{ number_format($d->item->biaya_item * $d->qty) }}
                                            @else
                                                Item tidak tersedia! @endif
                                        </td>
                                        <td>
                                            <button
                                                @if (isset($detail)) @if ($detail == true) style="display: none" @endif
                                                @endif class="btn btn-danger item-delete"
                                                type="button">X</button>
                                        </td>
                                    </tr>
                                @endforeach
                            @endif
                        </tbody>
                        <tfoot>
                            <tr>
                                <td colspan="4">
                                    <div class="text-center">
                                    </div>
                                </td>
                                <td>
                                    <div class="text-right">
                                        <p style="font-weight:bold;">Grand Total : </p>
                                    </div>
                                </td>
                                <td>
                                    <div class="text-left">
                                        <p style="font-weight:bold;" id="grandTotal">0</p>
                                        <input type="hidden" name="grand_total" id="input_grandTotal">
                                    </div>
                                </td>
                            </tr>
                        </tfoot>
                    </table>
                </div>
            </div>
        </div>
    </div>
    <!-- #END# Task Info -->
</div>

<!-- Modal -->
<div class="modal fade" id="list-sparepart" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
    aria-hidden="true">
    <div class="modal-dialog modal-lg" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="exampleModalLabel">Pilih Barang</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body">
                <div class="row flex-column-reverse">
                    <div class="col-md-6"></div>
                    <div class="col-md-6">
                        <div class="input-group">
                            <span class="input-group-addon">
                                <i class="material-icons">search</i>
                            </span>
                            <div class="form-line">
                                <input type="text" class="form-control " id="cari" name="cari"
                                    placeholder="Search">
                            </div>
                        </div>
                    </div>
                </div>
                <div class="table-responsive">
                    <table id="table-sparepart" class="table table-hover ">
                        <thead>
                            <tr>
                                <th>Nama Barang</th>
                                <th>Harga Jual</th>
                                <th>Harga Beli</th>
                                <th>Jumlah</th>
                                <th>Tools</th>
                            </tr>
                        </thead>
                        <tbody>
                        </tbody>
                        <tfoot>
                            <tr>
                                <td colspan="3">
                                    <div class="text-center">
                                    </div>
                                </td>
                            </tr>
                        </tfoot>
                    </table>
                </div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
            </div>
        </div>
    </div>
</div>

<div class="row">
    <div class="col-md-12">
        <hr>
    </div>
</div>
<div class="row" style="margin-bottom: 50px;">
    <div class="col-md-12" style="text-align: right;">
    </div>
</div>

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]