@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