$(document).ready(function () { $(document).on("change", ".form-select", function () { if ($("option:selected", this).val() == "") { $(".nama").css("display", "none"); $(".nopol").css("display", "none"); $(".nocard").css("display", "none"); $(".notrans").css("display", "none"); // $(".site").val(''); } else if ($("option:selected", this).val() == "nama") { $(".nama").css("display", "block"); $(".nopol").css("display", "none"); $(".nocard").css("display", "none"); $(".notrans").css("display", "none"); $(".input-default").val(""); } else if ($("option:selected", this).val() == "nopol") { $(".nama").css("display", "none"); $(".nopol").css("display", "block"); $(".nocard").css("display", "none"); $(".notrans").css("display", "none"); $(".input-default").val(""); } else if ($("option:selected", this).val() == "nocard") { $(".nama").css("display", "none"); $(".nopol").css("display", "none"); $(".nocard").css("display", "block"); $(".notrans").css("display", "none"); $(".input-default").val(""); } else if ($("option:selected", this).val() == "notrans") { $(".nama").css("display", "none"); $(".nopol").css("display", "none"); $(".nocard").css("display", "none"); $(".notrans").css("display", "block"); $(".input-default").val(""); } else { $(".position").css("display", "none"); $(".level-area").css("display", "none"); $(".input-default").val(""); } }); var url = $("#example").data("url"); // Satu input periode (date-range) -> isi hidden tgl_awal/tgl_akhir (YYYY-MM-DD). if ($.fn.daterangepicker && $(".input-daterange-filter").length) { $(".input-daterange-filter").daterangepicker({ autoUpdateInput: false, locale: { format: "DD-MM-YYYY", cancelLabel: "Hapus" }, parentEl: "#search-form", }); $(".input-daterange-filter").on("apply.daterangepicker", function (ev, picker) { $(this).val(picker.startDate.format("DD-MM-YYYY") + " - " + picker.endDate.format("DD-MM-YYYY")); $("#tgl-awal").val(picker.startDate.format("YYYY-MM-DD")); $("#tgl-akhir").val(picker.endDate.format("YYYY-MM-DD")); }); $(".input-daterange-filter").on("cancel.daterangepicker", function () { $(this).val(""); $("#tgl-awal").val(""); $("#tgl-akhir").val(""); }); } $("#search-button").on("click", function () { let searchBy = $("#search-by").val(); let searchValue = $("#search-value").val().trim(); let memberType = $("#member-type").val(); let department = $("#department").val(); let vehicle = $("#vehicle").val(); // ========================= // VALIDASI PENCARIAN // ========================= if (searchBy !== "" && searchValue === "") { let label = { nama: "Nama", alamat: "Alamat", nopol: "No. Polisi", nocard: "No. Card", notrans: "No. Transaksi", }; Swal.fire({icon: "warning", title: "Belum lengkap", text: "Harap masukkan " + (label[searchBy] || "kata kunci")}); $("#search-value").focus(); return; } // ========================= // DEBUG // ========================= console.log({ searchBy, searchValue, memberType, department, vehicle, }); // ========================= // AJAX // ========================= $.ajax({ url: url, type: "POST", data: $("#search-form").serialize(), headers: { "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content") }, dataType: "json", beforeSend: function () { $("#search-button").prop("disabled", true).html(` Mencari... `); }, success: function (response) { var tbody = $("#example tbody"); tbody.empty(); if (response.length !== 0) { // Kelompokkan data berdasarkan notrans var groupedData = {}; response.forEach((element) => { if (!groupedData[element.notrans]) { groupedData[element.notrans] = []; } groupedData[element.notrans].push(element); }); // Generate HTML Object.keys(groupedData).forEach((notrans, index) => { var rows = groupedData[notrans]; var rowspan = rows.length; rows.forEach((element, rowIndex) => { var rowHtml = ` ${rowIndex === 0 ? `${index + 1}` : ""} ${rowIndex === 0 ? `${element.notrans}` : ""} ${rowIndex === 0 ? `${element.nama}` : ""} ${rowIndex === 0 ? `${element.alamat}` : ""} ${rowIndex === 0 ? `${element.telepon}` : ""} ${rowIndex === 0 ? `${element.jmember}` : ""} ${rowIndex === 0 ? `${element.dept}` : ""} ${rowIndex === 0 ? `${element.awal}
${element.akhir}` : ""} ${rowIndex === 0 ? ` ${[...new Set(rows.map((r) => `${r.nopol || "No. Polisi tidak ada"} (${r.vehicle || ""})`))].join("
")} ` : ""} ${rowIndex === 0 ? `${[...new Set(rows.map((r) => r.no_card || "Tidak ada kartu"))].join("
")}` : ""} `; // ${rowIndex === 0 ? ` // // // // ` : ''} tbody.append(rowHtml); }); }); } else { $("#example tbody").html( `

Tidak ditemukan data

`, ); } }, error: function (xhr) { let msg = "Gagal memuat data."; if (xhr.status === 422 && xhr.responseJSON?.message) msg = xhr.responseJSON.message; $("#example tbody").html( `${msg}`, ); Swal.fire({icon: "error", title: "Pencarian gagal", text: msg}); }, complete: function () { $("#search-button").prop("disabled", false).html(' Cari Data...'); }, }); }); });