@push('scripts') <script src="{{ asset('assets/datatables/datatables.min.js') }}"></script> <script src="{{ asset('assets/plugins/sweetalert2/sweetalert2.min.js') }}"></script> <script src="{{ asset('assets/plugins/select2/js/select2.full.min.js') }}"></script> <script> // $('.select2').select2(); $(document).ready(function() { let dataTable = $('#tabelku').DataTable({ aLengthMenu: [ [25, 50, 100, 200, -1], [25, 50, 100, 200, "All"] ], processing: true, serverSide: true, ajax: { url: '{{ route('penjualan.getDataPenjualan') }}', data: function(d) { d.filter_tanggal_1 = $("#filter_tanggal_1").val(); d.filter_tanggal_2 = $("#filter_tanggal_2").val(); d.akun_coa = $("#jenis_coa").val(); } }, columns: [{ data: 'nomor', name: 'nomor', orderable: false, className: 'text-center' }, { data: 'kode_pesanan', name: 'kode_pesanan' }, { data: 'nama_pemesan', name: 'nama_pemesan' }, { data: 'jenis_pembayarannya', name: 'jenis_pembayarannya' }, { data: 'created_at', name: 'created_at' }, { data: 'total_pesanan', name: 'total_pesanan', className: 'text-center' }, { data: 'total_bayar', name: 'total_bayar', className: 'text-right', render: function(data) { // change to IDR return 'Rp. ' + data.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.'); } }, { data: 'diskon_persen', name: 'diskon_persen', className: 'text-center', render: function(data) { return data ?? 0; } }, { data: 'grand_total', name: 'grand_total', className: 'text-right', render: function(data) { // change to IDR return 'Rp. ' + data.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.'); } }, { data: 'ubah', name: 'ubah', className: 'text-center' }, ], footerCallback: function(row, data, start, end, display) { let api = this.api(); // Remove the formatting to get integer data for summation let intVal = function(i) { return typeof i === 'string' ? i.replace(/[\$,]/g, '') * 1 : typeof i === 'number' ? i : 0; }; // GrandTotal over all pages totalAll = api .column(8) .data() .reduce((a, b) => intVal(a) + intVal(b), 0); // GrandTotal over all pages // Total over this page pageTotal = api .column(6, { page: 'current' }) .data() .reduce((a, b) => intVal(a) + intVal(b), 0); // total pesanan totalPesanan = api .column(5) .data() .reduce((a, b) => intVal(a) + intVal(b), 0); // Update footer api.column(5).footer().innerHTML = totalPesanan + ' Item'; api.column(6).footer().innerHTML = 'Rp. ' + pageTotal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.'); api.column(8).footer().innerHTML = 'Rp. ' + totalAll.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.'); } }) $('#btn_filter').on('click', function() { if ($("#filter_tanggal_1").val() == "" || $("#filter_tanggal_2").val() == "") { alert("Input pencarian tidak boleh kosong") } else { dataTable.ajax.reload(); } }); }) </script> <script> function print(id) { var url = "{{ route('penjualan.print', '') }}/" + id + '?print=true' // window.open(url, '_blank'); window.open(url, '_blank', "toolbar=yes,scrollbars=yes,resizable=yes,top=500,left=500,width=900,height=600"); } </script> <script> function detail(id_pesanan) { $.ajax({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, type: "POST", url: "{{ route('penjualan.getDataDetailPenjualan') }}", data: { id_pesanan: id_pesanan, }, success: function(result) { $('#view_penjualan_detail').empty() if (result.status) { const data = result.data let nomor = 1 // console.log(data); data.forEach(x => { let tr = $('<tr></tr>') tr.append('<td class="text-center">' + nomor + '</td>') tr.append('<td>' + x.nama_produk + '</td>') tr.append('<td class="text-center">' + (x.keterangan_produk ?? '-') + '</td>') tr.append('<td>' + formatRupiah(x.harga_produk) + '</td>') tr.append('<td class="text-center">' + x.jumlah_produk + '</td>') tr.append('<td class="text-center">' + x.diskon_persen + '%</td>') tr.append('<td>' + formatRupiah(x.total_harga_produk) + '</td>') if (x.status_pesanan != 3) { tr.append( '<td class="text-center"><button class="btn btn-danger btn-sm cancelOrderDetailBtn" data-id="' + x.id + '" data-produk="' + x.nama_produk + '">cancel</button></td>') } else { tr.append( '<td class="text-center"><button class="btn btn-warning btn-sm disabled" data-id="' + x.id + '" data-produk="' + x.nama_produk + '">tercancel</button></td>') } // cetakStruk $('#cetakStruk').attr('onclick', 'print(' + result.pesanan.id + ')') $('#view_penjualan_detail').append(tr) nomor++ }) // add footer let tfoot = $('<tr></tr>') tfoot.append('<td colspan="6" class="text-right font-weight-bold">Total</td>') tfoot.append('<td>' + formatRupiah(result.pesanan.grand_total) + '</td>') tfoot.append('<td colspan="2"></td>') $('#view_penjualan_detail_tfoot').empty().append(tfoot) // set attribute to label $('#kode_pesanan').text('Kode Pesanan: ' + result.pesanan.kode_pesanan) $('#nama_pemesan').text('Nama Pemesan: ' + result.pesanan.nama_pemesan) $('#nomor_meja').text('Nomor Meja: ' + result.pesanan.nomor_meja) $('#urutan_pesanan').text('Urutan Pesanan: ' + result.pesanan.nomor_antrian) $('#tanggal_pesan').text('Tanggal Pesan: ' + result.pesanan.tanggal_pesanan) $('#total_pesanan').text('Total Pesanan: ' + result.pesanan.total_pesanan + ' Item') $('#sub_total_pesanan').text('Sub Total: ' + formatRupiah(result.pesanan.total_bayar)) if (result.pesanan.diskon_persen == null) { result.pesanan.diskon_persen = 0 } $('#diskon_persen_pesanan').text('Diskon(%): ' + result.pesanan.diskon_persen + '%') $('#grand_total_pesanan').text('Grand Total: ' + formatRupiah(result.pesanan .grand_total)) // attach attribute to button $('#cancelPesanan').attr('data-id', result.pesanan.id) $('#cancelPesanan').attr('data-kode', result.pesanan.kode_pesanan) $('#cancelPesanan').attr('data-nama', result.pesanan.nama_pemesan) // attach a function to button $('#cancelPesanan').attr('onclick', 'cancelPesanan(' + result.pesanan.id + ', "' + result.pesanan.kode_pesanan + '", "' + result.pesanan.nama_pemesan + '")') } } }) $('#modal_detail_penjualan').modal('show') } </script> <script> function formatRupiah(angka) { var bilangan = parseInt(angka); // Cek apakah bilangan negatif atau positif var minus = ""; if (bilangan < 0) { minus = "-"; bilangan = Math.abs(bilangan); } // Konversi angka menjadi format ribuan dengan menambahkan titik var reverse = bilangan.toString().split("").reverse().join(""); var ribuan = reverse.match(/\d{1,3}/g); var hasil = ribuan.join(".").split("").reverse().join(""); // Gabungkan hasil dengan simbol rupiah var rupiah = "Rp " + minus + hasil; return rupiah; } $(document).on('click', '.cancelOrderBtn', function() { // get arttibute data-kode_pesanan from button let id = $(this).attr('data-id'); let kode_pesanan = $(this).attr('data-kode_pesanan'); let nama_pemesanan = $(this).attr('data-nama_pemesan'); var text = "Membatalkan pesanan dengan data <br> Kode Pesanan: " + kode_pesanan + " <br> Nama Pemesan: " + nama_pemesanan + " ?"; Swal.fire({ title: 'Apakah anda yakin?', html: text, icon: 'warning', showCancelButton: true, confirmButtonColor: '#3085d6', cancelButtonColor: '#d33', confirmButtonText: 'Ya, Hapus!', cancelButtonText: 'Batal' }).then((result) => { if (result.isConfirmed) { $.ajax({ type: "DELETE", url: "{{ route('penjualan.cancel') }}", data: { _token: "{{ csrf_token() }}", id: id }, success: function(result) { console.log(result); if (result.status) { Swal.fire( 'Berhasil!', result.message, 'success' ) $('#tabelku').DataTable().ajax.reload(); } else { Swal.fire( 'Gagal!', result.message, 'error' ) } } }) } }) }) $(document).on('click', '.cancelOrderDetailBtn', function() { // get arttibute data-kode_pesanan from button let id = $(this).attr('data-id'); let produk = $(this).attr('data-produk'); var text = "Membatalkan pesanan dengan data <br> Menu Pesanan: " + produk + " ?"; Swal.fire({ title: 'Apakah anda yakin?', html: text, icon: 'warning', showCancelButton: true, confirmButtonColor: '#3085d6', cancelButtonColor: '#d33', confirmButtonText: 'Ya, Hapus!', cancelButtonText: 'Batal' }).then((result) => { if (result.isConfirmed) { $.ajax({ type: "DELETE", url: "{{ route('penjualan.cancelDetail') }}", data: { _token: "{{ csrf_token() }}", id: id }, success: function(result) { console.log(result); if (result.status) { Swal.fire( 'Berhasil!', result.message, 'success' ) $('#tabelku').DataTable().ajax.reload(); } else { Swal.fire( 'Gagal!', result.message, 'error' ) } } }) } }) }) function cancelPesanan(id, kode, nama) { var text = "Membatalkan pesanan dengan data Kode Pesanan: " + kode + " Nama Pemesan: " + nama + " ?"; Swal.fire({ title: 'Apakah anda yakin?', text: text, icon: 'warning', showCancelButton: true, confirmButtonColor: '#3085d6', cancelButtonColor: '#d33', confirmButtonText: 'Ya, Hapus!', cancelButtonText: 'Batal' }).then((result) => { if (result.isConfirmed) { $.ajax({ type: "DELETE", url: "{{ route('penjualan.cancel') }}", data: { _token: "{{ csrf_token() }}", id: id }, success: function(result) { if (result.status) { Swal.fire( 'Berhasil!', result.message, 'success' ) $('#modal_detail_penjualan').modal('hide'); $('#tabelku').DataTable().ajax.reload(); } else { Swal.fire( 'Gagal!', result.message, 'error' ) } } }) } }) } // // cetak_laporan // $('#cetak_laporan').on('click', function() { // let filter_tanggal_1 = $("#filter_tanggal_1").val() // let filter_tanggal_2 = $("#filter_tanggal_2").val() // if (filter_tanggal_1 == "" || filter_tanggal_2 == "") { // alert("Input pencarian tidak boleh kosong") // } else { // $.ajax({ // url: "{{ route('penjualan.laporan') }}", // type: "POST", // xhrFields: { // responseType: 'blob' // Menggunakan responseType 'blob' untuk menerima data sebagai blob // }, // dataType: 'native', // data: { // _token: "{{ csrf_token() }}", // filter_tanggal_1: filter_tanggal_1, // filter_tanggal_2: filter_tanggal_2 // }, // success: function(result) { // console.log(result); // var link = document.createElement('a'); // link.href = window.URL.createObjectURL(blob); // link.download = "Laporan_Penjualan.pdf"; // link.click(); // } // }) // } // }) </script> @endpush