Penambahan FrontEnd All-New-Manufacture
This commit is contained in:
122
public/js/member/index.js
Normal file
122
public/js/member/index.js
Normal file
@@ -0,0 +1,122 @@
|
||||
$(document).ready(function () {
|
||||
|
||||
$(document).on('change', '.select-option', 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');
|
||||
|
||||
$('#search-button').on('click', function () {
|
||||
// Ambil nilai dari selected option
|
||||
var option = $('.select-option').val();
|
||||
|
||||
// Cek jika option yang dipilih bukan 'Pencarian Data...' yang berarti pilihan valid
|
||||
if (option && option !== '') {
|
||||
var inputField = $('.input-default:visible');
|
||||
|
||||
// Periksa apakah input tersebut kosong
|
||||
if (inputField.length === 0 || inputField.val().trim() === '') {
|
||||
// Jika kosong, tampilkan alert
|
||||
alert('Harap masukkan ' + (option === 'nopol' ? 'No. Polisi' : option === 'nocard' ? 'No. Card' : option === 'nama' ? 'Nama' : option === 'notrans' ? 'No. Transaksi' : 'No. Transaksi'));
|
||||
inputField.focus();
|
||||
return; // Hentikan proses jika input kosong
|
||||
}
|
||||
}
|
||||
|
||||
var formData = $('#search-form .input-default:visible').val();
|
||||
console.log(formData);
|
||||
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: "POST",
|
||||
// data: $('#search-form .input-default:visible').serialize(),
|
||||
data: $('#search-form').serialize(),
|
||||
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
|
||||
dataType: 'json',
|
||||
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 = `
|
||||
<tr class="mb-2">
|
||||
${rowIndex === 0 ? `<td rowspan="${rowspan}" class="p2" style="text-align: center;">${index + 1}</td>` : ''}
|
||||
${rowIndex === 0 ? `<td rowspan="${rowspan}" class="p2" style="padding: 2px;">${element.notrans}</td>` : ''}
|
||||
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.nama}</td>` : ''}
|
||||
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.alamat}</td>` : ''}
|
||||
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.telepon}</td>` : ''}
|
||||
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.jmember}</td>` : ''}
|
||||
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.dept}</td>` : ''}
|
||||
${rowIndex === 0 ? `<td rowspan="${rowspan}" width="200" style="text-align: center; padding: 2px;">${element.awal} <br> ${element.akhir}</td>` : ''}
|
||||
${rowIndex === 0 ? `<td rowspan="${rowspan}" class="p-2" style="padding: 2px;"> ${[...new Set(rows.map(r => `${r.nopol || 'No. Polisi tidak ada'} (${r.vehicle || ''})`))].join('<br>')} </td>` : ''}
|
||||
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${[...new Set(rows.map(r => r.no_card || 'Tidak ada kartu'))].join('<br>')}</td>` : ''}
|
||||
${rowIndex === 0 ? `<td rowspan="${rowspan}" class="p-2" style="text-align: center;">
|
||||
<button class="btn btn-secondary btn-xs extend-button mb-1" data-id="${element.notrans}">Extend</button>
|
||||
<button class="btn btn-primary btn-xs edit-button mb-1" data-id="${element.notrans}">Edit</button>
|
||||
<button class="btn btn-danger btn-xs delete-button mb-1" data-id="${element.notrans}">Delete</button>
|
||||
</td>` : ''}
|
||||
</tr>
|
||||
`;
|
||||
tbody.append(rowHtml);
|
||||
});
|
||||
});
|
||||
} else {
|
||||
alert("Data tidak ditemukan.");
|
||||
$('#example tbody').html(
|
||||
`<tr>
|
||||
<td colspan="11" style="text-align: center;"><p class="text-danger mt-3">Tidak ditemukan data</p></td>
|
||||
<tr>`);
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
});
|
||||
264
public/js/member/member-register.js
Normal file
264
public/js/member/member-register.js
Normal file
@@ -0,0 +1,264 @@
|
||||
$(document).ready(function () {
|
||||
console.log($.fn.jquery);
|
||||
const today = moment();
|
||||
const startDate = moment(today).startOf('day').format('DD-MM-YYYY 00:00');
|
||||
const endDate = moment(today).endOf('day').format('DD-MM-YYYY 23:59');
|
||||
|
||||
$('.tambah-member').validate({
|
||||
rules: {
|
||||
nama: {
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
messages: {
|
||||
nama: {
|
||||
required: 'Masukkan nama member',
|
||||
},
|
||||
},
|
||||
// errorElement: 'span',
|
||||
// errorPlacement: function (error, element) {
|
||||
// error.addClass('invalid-feedback');
|
||||
// // element.closest('.form-group').append(error);
|
||||
// },
|
||||
highlight: function (element, errorClass, validClass) {
|
||||
$(element).addClass('is-invalid');
|
||||
},
|
||||
unhighlight: function (element, errorClass, validClass) {
|
||||
$(element).removeClass('is-invalid');
|
||||
}
|
||||
});
|
||||
|
||||
$('.input-daterange-timepicker').daterangepicker({
|
||||
// singleDatePicker: true,
|
||||
timePicker: true,
|
||||
locale: {
|
||||
format: 'DD-MM-YYYY HH:mm'
|
||||
},
|
||||
timePicker24Hour: true,
|
||||
timePickerSeconds: false,
|
||||
buttonClasses: ['btn', 'btn-sm'],
|
||||
applyClass: 'btn-danger',
|
||||
cancelClass: 'btn-inverse',
|
||||
startDate: startDate,
|
||||
endDate: endDate,
|
||||
}, function (startDate, endDate) {
|
||||
console.log(`Range selected: ${startDate.format('DD-MM-YYYY HH:mm')} s/d ${endDate.format('DD-MM-YYYY HH:mm')}`);
|
||||
$('.input-daterange-timepicker').val(`${startDate.format('DD-MM-YYYY HH:mm')} s/d ${endDate.format('DD-MM-YYYY HH:mm')}`);
|
||||
// $('.awal').val(`${startDate.format('DD-MM-YYYY HH:mm')}`);
|
||||
// $('.akhir').val(`${endDate.format('DD-MM-YYYY HH:mm')}`);
|
||||
});
|
||||
|
||||
// Set nilai awal dan akhir di input
|
||||
$('.input-daterange-timepicker').val(`${startDate} - ${endDate}`);
|
||||
// $('.awal').val(startDate);
|
||||
// $('.akhir').val(endDate);
|
||||
|
||||
$('#jenisVehicle').on('change', function () {
|
||||
var jenisMembers = member;
|
||||
var vehicleSelected = $(this).val();
|
||||
var $jenisMember = $('#jenis-member');
|
||||
// console.log(jenisMembers);
|
||||
|
||||
$jenisMember.empty();
|
||||
$jenisMember.append('<option selected value="">Pilih Jenis</option>');
|
||||
|
||||
jenisMembers.forEach((item) => {
|
||||
if (item.id_mobil === vehicleSelected) {
|
||||
if (item.id_mobil !== 0 ) {
|
||||
$jenisMember.append(
|
||||
`<option value="${item.tarif}">${item.jenis_langganan} - ${item.tarif} </option>`
|
||||
);
|
||||
console.log($jenisMember);
|
||||
} else {
|
||||
$jenisMember.append(
|
||||
`<option value="">Tidak ada Pilihan </option>`
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
$('#nopol-add').on('click', function() {
|
||||
var nopol = $('.nopol-add').val().trim();
|
||||
console.log(nopol);
|
||||
// var vehicle = $('#jenisVehicle option:selected').text();
|
||||
var vehicle = $('#jenisVehicle').val();
|
||||
var vehicleName = $('#jenisVehicle option:selected').text();
|
||||
var member = $('#jenis-member option:selected').text();
|
||||
var merk = $('.merk').val().trim();
|
||||
$('.nopol-add').removeClass('is-invalid'); // Hapus kelas jika ada sebelumnya
|
||||
$('.nopol-add').next('.invalid-feedback').hide();
|
||||
|
||||
if (!vehicle) {
|
||||
alert('Wajib pilih jenis kendaraan');
|
||||
return;
|
||||
}
|
||||
|
||||
$.ajax ({
|
||||
url: 'member/checkField',
|
||||
type: 'POST',
|
||||
data: { nopol: nopol },
|
||||
headers: {'X-CSRF-token': $('meta[name="csrf-token"]').attr('content')},
|
||||
success: function (r) {
|
||||
if (r.response === true) {
|
||||
var rowhtml = `
|
||||
<tr>
|
||||
<td class="text-center">${nopol}</td>
|
||||
<td class="text-center" data-value="${vehicle}"">${vehicleName}</td>
|
||||
<td class="text-center">${member}</td>
|
||||
<td class="text-center">${merk}</td>
|
||||
<td class="text-center p-1" style="text-align: center;">
|
||||
<button class="btn btn-danger btn-xs delete-row">Hapus<buttion>
|
||||
</td>
|
||||
</tr>
|
||||
`;
|
||||
$('#list-nopol').append(rowhtml);
|
||||
console.log('Berhasil menambahkan ' + nopol)
|
||||
|
||||
$('.nopol-add').val('');
|
||||
$('#jenisVehicle').val('');
|
||||
$('#jenis-member').val('');
|
||||
$('.merk').val('');
|
||||
} else {
|
||||
// var warn = `<div class="invalid-feedback">Nopol sudah ada</div>`;
|
||||
$('.nopol-add').addClass('is-invalid'); // Tambahkan kelas invalid
|
||||
$('.nopol-add').next('.invalid-feedback').text(r.message).show(); // Tampilkan pesan error
|
||||
console.log(r.message);
|
||||
}
|
||||
},
|
||||
error: function () {
|
||||
alert('Terjadi kesalahan saat memeriksa nopol');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('.kartu').on('keydown', function (e) {
|
||||
var kartu = $('.kartu').val().trim();
|
||||
|
||||
if (e.key === 'Enter') {
|
||||
// $.ajax ({
|
||||
// url: 'member/checkField',
|
||||
// type: 'POST',
|
||||
// data: {nocard: kartu},
|
||||
// headers: {'X-CSRF-token': $('meta[name="csrf-token"]').attr('content')},
|
||||
// success: function (r) {
|
||||
// if (r.response === true) {
|
||||
e.preventDefault();
|
||||
$('.nourut').focus();
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
}
|
||||
});
|
||||
|
||||
$('.nourut').on('keydown', function (e) {
|
||||
if (e.key === 'Enter') {
|
||||
e.preventDefault();
|
||||
|
||||
var nocard = $('.kartu').val().trim();
|
||||
var nourut = $('.nourut').val().trim();
|
||||
|
||||
var rowHtml = `
|
||||
<tr>
|
||||
<td class="text-center strong">${nocard}</td>
|
||||
<td class="text-center strong">${nourut}</td>
|
||||
<td class="text-center p-2" >
|
||||
<button class="btn btn-danger btn-xs delete-row">Hapus<buttion>
|
||||
</td>
|
||||
</tr>
|
||||
`;
|
||||
$('#list-card').append(rowHtml);
|
||||
$('.kartu').val('');
|
||||
$('.nourut').val('');
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$('#list-card').on('click', '.delete-row', function () {
|
||||
$(this).closest('tr').remove(); // Hapus baris yang diklik
|
||||
});
|
||||
|
||||
$('.simpan').on('click', function () {
|
||||
var tombol = $(this);
|
||||
var formCollect = $('#add-member').serialize();
|
||||
var collectNopol = [];
|
||||
var cardCollect = [];
|
||||
|
||||
$('#list-nopol tr').each(function () {
|
||||
var row = $(this);
|
||||
var rowData = {
|
||||
nopol: row.find('td:nth-child(1)').text().trim(),
|
||||
vehicle: row.find('td:nth-child(2)').data('value'),
|
||||
member: row.find('td:nth-child(3)').text().trim(),
|
||||
merk: row.find('td:nth-child(4)').text().trim(),
|
||||
};
|
||||
collectNopol.push(rowData);
|
||||
});
|
||||
|
||||
console.log(collectNopol);
|
||||
|
||||
$('#list-card tr').each(function () {
|
||||
var row = $(this);
|
||||
var rowCard = {
|
||||
nocard: row.find('td:nth-child(1)').text(),
|
||||
nourut: row.find('td:nth-child(2)').text(),
|
||||
};
|
||||
cardCollect.push(rowCard);
|
||||
});
|
||||
|
||||
console.log(cardCollect);
|
||||
|
||||
const formDataString = formCollect;
|
||||
|
||||
// Mengonversi query string menjadi objek
|
||||
const formDataObj = {};
|
||||
const searchParams = new URLSearchParams(formDataString);
|
||||
|
||||
searchParams.forEach((value, key) => {
|
||||
formDataObj[key] = value;
|
||||
});
|
||||
|
||||
console.log(formDataObj);
|
||||
|
||||
var allData = {
|
||||
formData: formDataObj,
|
||||
nopolData: collectNopol,
|
||||
cardNumber: cardCollect,
|
||||
};
|
||||
|
||||
if($('.tambah-member').valid()) {
|
||||
$.ajax({
|
||||
url: $('#add-member').attr('action'),
|
||||
type: 'POST',
|
||||
data: allData,
|
||||
headers: {'X-CSRF-token': $('meta[name="csrf-token"]').attr('content')},
|
||||
beforeSend: function () {
|
||||
tombol.attr('disabled',true);
|
||||
},
|
||||
success: function (r) {
|
||||
// alert('Data berhasil dikirim');
|
||||
$('#modal-member').modal('hide');
|
||||
if (r.response == true) {
|
||||
Swal.fire(
|
||||
{
|
||||
title: "Berhasil!!",
|
||||
text: "Member anda telah terdaftar !!",
|
||||
timer: 5000, showConfirmButton: !1
|
||||
}
|
||||
).then(function() {
|
||||
// Reload halaman setelah SweetAlert ditutup
|
||||
location.reload(); // Ini akan me-reload halaman
|
||||
});
|
||||
} else if (r.response == false) {
|
||||
Swal.fire("Oops...", "Terjadi kendala !!", "silahkan hubungi admin", "error");
|
||||
}
|
||||
console.log(r);
|
||||
},
|
||||
error: function (xhr, status, error) {
|
||||
alert('Terjadi kesalahan: ' + error);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user