Rapihin setup/member/lot-parking + fitur intercom, exclude WIP controller & file sampah dari git

Kumpulan perubahan yang udah numpuk di working tree: refactor Setup
(Gate/Vehicle/Member), rapihin memberin & stiker, service parking baru
(ParkingUtilsServices, NetworkService), model/migration lot-parking &
DHCP reservation, dan fitur baru Intercom (controller/model/migration/
view).

ReportTransaksiController versi lokal ini WIP (~90%, masih didebug) -
versi yang bener ada di server, jadi dikeluarin dari git (ditambahin
ke .gitignore) biar gak numpuk nindihin punya server pas git pull di
sana. Sekalian keluarin dump mentah tabel softseting (1.8MB, nyasar
ke-commit), file .bak, dan arsip ad-hoc (api.tgz, c.zip) yang emang
bukan source code.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01EAJc2mrpj2cSTe4oowLPzQ
This commit is contained in:
2026-10-04 07:15:54 +07:00
co-authored by Claude Sonnet 5
parent efdea9d739
commit 2a9b28581c
91 changed files with 5716 additions and 2470 deletions
@@ -0,0 +1,27 @@
<div
class="modal fade bd-details-modal-lg"
id="modal-details"
tabindex="-1"
role="dialog"
data-bs-backdrop="static"
data-keyboard="false"
>
<div class="modal-dialog modal-xl">
<div class="modal-content">
<div class="modal-header">
<h4 class="card-title">Preview Member</h4>
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<button type="button" class="btn btn-danger light" data-bs-dismiss="modal">
Close
</button>
<button type="button" class="btn btn-outline-inverse-info btn-sm btn-icon-text">
Print
<i class="mdi mdi-printer btn-icon-append"></i>
</button>
</div>
</div>
</div>
</div>
+52 -35
View File
@@ -1,8 +1,8 @@
<div class="modal fade bd-extend-modal-lg" id="extend-member" tabindex="-1" role="dialog" data-bs-backdrop="static" data-keyboard="false">
<div class="modal fade bd-extend-modal-lg" id="modal-extend" tabindex="-1" role="dialog" data-bs-backdrop="static" data-keyboard="false">
<div class="modal-dialog modal-xl">
<div class="modal-content">
<div class="modal-header">
<h4 class="card-title">Ubah Data Stiker/Member</h4>
<h4 class="card-title">Perpanjang Member</h4>
<button type="button" class="btn-close" data-bs-dismiss="modal">
</button>
</div>
@@ -10,106 +10,123 @@
<div class="custom-tab-1">
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link active" data-bs-toggle="tab" href="#home1"><i class="la la-user me-2"></i>Data Pengunjung</a>
<a class="nav-link active" data-bs-toggle="tab" href="#ext-data"><i class="la la-user me-2"></i>Data Pengunjung</a>
</li>
<li class="nav-item">
<a class="nav-link" data-bs-toggle="tab" href="#profile1"><i class="la la-home me-2"></i> Data Kendaraan</a>
<a class="nav-link" data-bs-toggle="tab" href="#ext-vehicle"><i class="la la-home me-2"></i> Data Kendaraan</a>
</li>
<li class="nav-item">
<a class="nav-link" data-bs-toggle="tab" href="#contact1"><i class="la la-phone me-2"></i>Data Akses</a>
<a class="nav-link" data-bs-toggle="tab" href="#ext-card"><i class="la la-phone me-2"></i>Data Akses</a>
</li>
</ul>
<form class="ubah-member" id="edit-member" methode="POST">
@csrf
@method('PUT')
<form class="extend-member" id="extend-member" action="{{ route('member.store')}}">
<div class="tab-content">
<div class="tab-pane fade show active" id="home1" role="tabpanel">
<div class="tab-pane fade show active" id="ext-data" role="tabpanel">
<div class="pt-4">
<div class="row">
<div class="col-xl-6">
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label">No. Transaksi</label>
<div class="col-lg-8">
<input type="text" class="form-control form-control-sm notransnya" name="notrans" readonly>
<input type="hidden" class="form-control"readonly>
</div>
</div>
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label">Jenis Transaksi</label>
<div class="col-lg-8">
<input type="text" class="form-control" value="PERPANJANG" readonly>
<input type="text" class="form-control form-control-sm" value="PERPANJANG" readonly>
<input type="hidden" class="form-control" name="jenis_transaksi" value="1" readonly>
</div>
</div>
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label required">Nama</label>
<div class="col-lg-8">
<input type="text" class="form-control" name="nama" placeholder="Masuk kan nama...." required>
<input type="text" class="form-control form-control-sm namanya" name="nama" value="" required>
</div>
</div>
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label">Alamat</label>
<div class="col-lg-8">
<textarea type="text" class="form-control" rows="3" name="address" placeholder="JL. Hati hati raya..."></textarea>
<textarea type="text" class="form-control form-control-sm address" rows="3" name="address" value="" ></textarea>
</div>
</div>
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label">Telepon</label>
<div class="col-lg-8">
<input type="number" class="form-control" phone="phone" placeholder="+62 81/081...">
<input type="number" class="form-control form-control-sm" phone="phone" value="{{ old('phone')}}">
</div>
</div>
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label required">Periode :</label>
<div class="col-lg-8">
<input class="form-control input-daterange-timepicker" type="text" name="daterange" value="">
<input type="text" class="form-control form-control-sm input-daterange-timepicker-ext" id="periode-ext" name="periode" readonly>
</div>
</div>
</div>
<div class="col-xl-6">
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label">Jenis</label>
<label class="col-lg-3 col-form-label form-label">Jenis Langganan</label>
<div class="col-lg-6">
<select class="select-data form-control" name="member" id="member">
<select class="form-select" name="member" id="ext-jenisLang">
<option selected value="">Pilih Jenis</option>
@foreach ($memberSelect as $member)
<option value="{{ $member->id }}">{{ $member->nama }}</option>
@endforeach
</select>
<input type="hidden" name="member" id="ext-jenisLang-value">
</div>
</div>
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label">Dept</label>
<label class="col-lg-3 col-form-label form-label">Jenis Member</label>
<div class="col-lg-6">
<select class="select-data form-control" name="depart" id="department">
<select class="form-select" name="depart" id="ext-department">
<option selected value="">Pilih Departemen</option>
@foreach ($departmentSelect as $department)
<option value="{{ $department->kode }}">{{ $department->nama }}</option>
@endforeach
</select>
<input type="hidden" name="depart" id="ext-department-value">
</div>
</div>
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label">Note :</label>
<div class="col-lg-6">
<input type="text" class="form-control" name="note" placeholder="Catatan...">
<input type="text" class="form-control form-control-sm" name="note" placeholder="Catatan...">
</div>
</div>
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label">Harga (Rp.):</label>
<div class="col-lg-6">
<input type="text" class="form-control" name="harga" placeholder="10.000">
<input type="text" class="form-control form-control-sm harga" name="harga">
</div>
</div>
{{-- <div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label required">Best Skill</label>
<div class="col-lg-6">
<select class="default-select wide form-control" id="validationCustom05">
<option data-display="Select">Please select</option>
<option value="html">HTML</option>
<option value="css">CSS</option>
</select>
</div>
</div> --}}
</div>
</div>
</div>
</div>
<div class="tab-pane fade" id="profile1">
<div class="tab-pane fade" id="ext-vehicle">
<div class="pt-4">
<h4>Tambahkan Kendaraan</h4>
<div class="row form-material">
<div class="col-xl-3 col-md-6 mb-3">
<label class="form-label">Nomer Polisi</label>
<input type="text" class="form-control nopol-add" onkeyup="this.value = this.value.toUpperCase();" placeholder="No. Polisi">
<input type="text" class="form-control form-control-sm ext-nopol-add" onkeyup="this.value = this.value.toUpperCase();" placeholder="No. Polisi">
<div class="invalid-feedback">Nomer Polisi sudah ada</div>
</div>
<div class="col-xl-3 col-md-6 mb-3">
<label class="form-label">Jenis Kendaraan :</label>
<select class="select form-control" id="jenisVehicle">
<select class="form-select" id="jenisVehicleExt">
<option selected value="">Jenis Kendaraan</option>
@foreach ($vehicleSelect as $kendaraan)
<option value="{{ $kendaraan->id }}">{{ $kendaraan->nama }}</option>
@@ -118,49 +135,49 @@
</div>
<div class="col-xl-3 col-md-6 mb-3">
<label class="form-label">Jenis Member :</label>
<select class="select-data form-control member" id="jenis-member">
<select class="form-select member" id="jenisMemberExt">
</select>
</div>
<div class="col-xl-3 col-md-6 mb-3">
<label class="form-label">Merk : </label>
<input type="text" class="form-control merk" onkeyup="this.value = this.value.toUpperCase();" placeholder="Honda...">
<input type="text" class="form-control form-control-sm merkExt" onkeyup="this.value = this.value.toUpperCase();" placeholder="Honda...">
</div>
<div class="col-xl-3 col-md-6 mb-3">
<label class="form-label"></label>
<button type="button" id="nopol-add" class="btn btn-primary btn-xs">Tambah</button>
<button type="button" id="ext-nopol-add" class="btn btn-primary btn-xs">Tambah</button>
</div>
<hr>
<table class="table-bordered table-striped">
<table class="">
<thead>
<tr>
<th class="col-2 text-center p-2">Nomer Polisi</th>
<th class="col-2 text-center">Jenis Kendaraan</th>
<th class="col-2 text-center">Merk Kendaraan</th>
<th class="col-2 text-center">Type Member</th>
<th class="col-2 text-center">Merk Kendaraan</th>
<th class="col-2 text-center">Aksi</th>
</tr>
</thead>
<tbody id="list-nopol">
<tbody id="list-nopol-ext">
</tbody>
</table>
</div>
</div>
</div>
<div class="tab-pane fade" id="contact1">
<div class="tab-pane fade" id="ext-card">
<div class="pt-4">
<h4>Tambahkan Kartu</h4>
<div class="row form-material">
<div class="col-xl-6 col-md-6 mb-3">
<label class="form-label">Nomer Kartu</label>
<input type="text" class="form-control kartu" placeholder="01234567...">
<input type="text" class="form-control form-control-sm kartu" placeholder="01234567...">
</div>
<div class="col-xl-6 col-md-6 mb-3">
<label class="form-label">Nomer Urut</label>
<input type="text" class="form-control nourut" placeholder="01234567...">
<input type="text" class="form-control form-control-sm nourut" placeholder="01234567...">
</div>
<hr>
{{-- <div class="table-responsive"> --}}
<table class="table-bordered">
<table class="table-basic">
<thead>
<tr>
<th class="col-5 text-center p-2" >Nomer Kartu</th>
@@ -168,7 +185,7 @@
<th class="col-2 text-center">Aksi</th>
</tr>
</thead>
<tbody id="list-card">
<tbody id="list-card-ext">
</tbody>
</table>
{{-- </div> --}}
@@ -181,7 +198,7 @@
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger light" data-bs-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary simpan">Simpan Perubahan</button>
<button type="button" class="btn btn-primary simpan-ext">Save changes</button>
</div>
</div>
</div>
+89 -359
View File
@@ -51,82 +51,90 @@
<div class="col-md-2 grid-margin stretch-card">
<div class="card shadow-sm h-100">
<div class="card-body">
<form id="search-form">
<h5 class="card-title mb-4">Metode Pencarian Transaksi</h5>
<h5 class="card-title mb-4">Metode Pencarian Transaksi</h5>
<!-- DASAR PENCARIAN -->
<div class="mb-3">
<label class="form-label fw-semibold">Dasar Pencarian</label>
<!-- DASAR PENCARIAN -->
<div class="mb-3">
<label class="form-label fw-semibold">Dasar Pencarian</label>
<select class="form-select cari-data mb-2" name="search-by" id="search-by">
<option selected value="">Pencarian Data... (Semua)</option>
<option value="nama">Nama</option>
<option value="alamat">Alamat</option>
<option value="nopol">No. Polisi</option>
<option value="nocard">No. Card</option>
<option value="notrans">No. Transaksi</option>
</select>
<select class="form-select mb-2" id="search-by">
<option selected value="">Pencarian Data... (Semua)</option>
<option value="nama">Nama</option>
<option value="alamat">Alamat</option>
<option value="nopol">No. Polisi</option>
<option value="nocard">No. Card</option>
<option value="notrans">No. Transaksi</option>
</select>
<input type="text" class="form-control form-control-sm" name="search_value" id="search-value" placeholder="Masukkan kata kunci...">
</div>
<input type="text" class="form-control" id="search-value" placeholder="Masukkan kata kunci...">
</div>
<hr class="my-3">
<hr class="my-3">
<!-- JENIS LANGGANAN -->
<div class="mb-3">
<label class="form-label fw-semibold">Jenis Langganan</label>
<select class="form-select" name="jenismember" id="member-type">
<option value="">Semua</option>
@foreach ($memberSelect as $jenisLangganan)
<option value="{{ $jenisLangganan->id }}">
{{ $jenisLangganan->nama }}
</option>
@endforeach
</select>
</div>
<!-- JENIS LANGGANAN -->
<div class="mb-3">
<label class="form-label fw-semibold">Jenis Langganan</label>
<select class="form-select" id="member-type">
<option value="">Semua</option>
@foreach ($memberSelect as $jenisLangganan)
<option value="{{ $jenisLangganan->id }}">
{{ $jenisLangganan->nama }}
</option>
@endforeach
</select>
</div>
<!-- UNIT KERJA -->
<div class="mb-3">
<label class="form-label fw-semibold">Unit Kerja</label>
<select class="form-select" name="depart" id="department">
<option value="">Semua</option>
@foreach ($departmentSelect as $jeniStiker)
<option value="{{ $jeniStiker->kode }}">
{{ $jeniStiker->nama }}
</option>
@endforeach
</select>
</div>
<!-- UNIT KERJA -->
<div class="mb-3">
<label class="form-label fw-semibold">Unit Kerja</label>
<select class="form-select" id="department">
<option value="">Semua</option>
@foreach ($departmentSelect as $jeniStiker)
<option value="{{ $jeniStiker->kode }}">
{{ $jeniStiker->nama }}
</option>
@endforeach
</select>
</div>
<!-- KENDARAAN -->
<div class="mb-3">
<label class="form-label fw-semibold">Kendaraan</label>
<select class="form-select" name="vehicle" id="vehicle">
<option value="">Semua</option>
@foreach ($vehicleSelect as $vehicle)
<option value="{{ $vehicle->id }}">
{{ $vehicle->nama }}
</option>
@endforeach
</select>
</div>
<!-- KENDARAAN -->
<div class="mb-3">
<label class="form-label fw-semibold">Kendaraan</label>
<select class="form-select" id="vehicle">
<option value="">Semua</option>
@foreach ($vehicleSelect as $vehicle)
<option value="{{ $vehicle->id }}">
{{ $vehicle->nama }}
</option>
@endforeach
</select>
</div>
<div class="mb-3 d-flex align-items-center justify-content-between">
<p class="mb-0">Member Aktif</p>
<label class="toggle-switch mb-0">
<input type="checkbox" name="isActive" id="isActive" checked>
<span class="toggle-slider round"></span>
</label>
</div>
<!-- KATEGORI -->
{{-- <div class="mb-4">
<label class="form-label fw-semibold">Kategori</label>
<input type="text"
class="form-control"
id="category"
placeholder="Masukkan kategori...">
</div> --}}
<!-- BUTTON -->
<div class="d-grid">
<button type="button" id="search-button" class="btn btn-primary">
<i class="fa fa-search me-2"></i> Cari Data
</button>
</div>
<!-- KATEGORI -->
{{-- <div class="mb-4">
<label class="form-label fw-semibold">Kategori</label>
<input type="text"
class="form-control"
id="category"
placeholder="Masukkan kategori...">
</div> --}}
<!-- BUTTON -->
<div class="d-grid">
<button type="button" id="search-button" class="btn btn-primary">
<i class="fa fa-search me-2"></i> Cari Data...
</button>
</div>
</form>
</div>
</div>
</div>
@@ -139,25 +147,25 @@ class="form-control"
<button class="btn btn-primary btn-sm add-button" data-bs-toggle="modal" data-bs-target=".bd-example-modal-lg">Tambah</button>
</div>
<div id="rowActions" class="d-none">
<button class="btn btn-success btn-sm extend-button" id="btnExtend" data-bs-toggle="modal" data-bs-target=".bd-extend-modal-lg">Perpanjang</button>
<button class="btn btn-success btn-sm extend-button" id="btnExtend" data-bs-toggle="modal" data-bs-target="#modal-extend" data-id="${element.notrans}" data-url="{{ route('getStikerMember.show', ':id') }}" >Perpanjang</button>
<button class="btn btn-warning btn-sm edit-button" id="btnEdit" data-bs-toggle="modal" data-bs-target=".bd-ubah-modal-lg">Ubah</button>
<button class="btn btn-info btn-sm detail-button" id="btnDetail" data-bs-toggle="modal" data-bs-target="#modal-details">Detail</button>
<button class="btn btn-danger btn-sm" id="btnDelete">Hapus</button>
<button class="btn btn-info btn-sm" id="btnDetail">Detail</button>
</div>
</div>
<div class="table-responsive pt-3">
<table class="table table-bordered table-selectable" id="example" data-url="{{ route('getMember') }}">
<table class="table table-basic table-selectable" id="example" data-url="{{ route('getMember') }}">
<thead>
<tr>
<th class="p-3" style="text-align: center;">No.</th>
<th style="text-align: center;">No. Transaksi</th>
<th style="text-align: center;">Nama</th>
<th style="text-align: center;">Alamat</th>
<th class="p-3" style="text-align: center;" width="3%">No.</th>
<th style="text-align: center;" width="17%">No. Transaksi</th>
<th style="text-align: center;" width="8%">Nama</th>
<th style="text-align: center;" width="10%">Alamat</th>
<th style="text-align: center;">Telepone</th>
<th style="text-align: center;">Jenis Langganan</th>
<th style="text-align: center;">Departement</th>
<th style="text-align: center;">Periode</th>
<th style="text-align: center;">Details Kendaraan</th>
<th style="text-align: center;" width="11%">Periode</th>
<th style="text-align: center;" width="10%">Details Kendaraan</th>
<th style="text-align: center;">No. Kartu</th>
{{-- <th width="11%" style="text-align: center;">Action</th> --}}
</tr>
@@ -170,6 +178,7 @@ class="form-control"
@include('stiker.tambah-stiker')
@include('stiker.extend-stiker')
@include('stiker.ubah-stiker')
@include('stiker.details-stiker')
<!-- END MEMMBER MODAL -->
</div>
</div>
@@ -193,297 +202,18 @@ class="form-control"
<script src="{{asset ('vendor/sweetalert2/dist/sweetalert2.min.js') }}"></script>
<script src="{{asset ('js/custom.min.js') }}"></script>
<script src="{{asset ('js/dlabnav-init.js') }}"></script>
<script src="{{asset ('js/tooltips.js') }}"></script>
<script>
var member = @json($jenisStiker);
let selectedRowData = null;
</script>
@if(app()->environment('local'))
<script src="{{ asset('js/stikerM ember/index.js') }}"></script>
<script src="{{ asset('js/stikerMember/index.js') }}"></script>
<script src="{{ asset('js/stikerMember/member-register.js') }}"></script>
<script src="{{ asset('js/stikerMember/member-extend.js') }}"></script>
<script src="{{ asset('js/stikerMember/member-details.js') }}"></script>
@else
<script src="{{asset ('jx/stikermember/index.parkq.jx') }}"></script>
<script src="{{asset ('jx/stikermember/member-register.parkq.jx') }}"></script>
@endif
<script>
$(document).ready(function () {
var vehicle = @json($vehicleSelect);
let selectedRowData = null;
$('#example tbody').on('click', 'tr', function () {
console.log($('#example tbody tr').length);
const notrans = $(this).data('notrans');
// hapus semua highlight
$('#example tbody tr').removeClass('selected');
// highlight semua row dalam 1 grup
$(`#example tbody tr[data-notrans="${notrans}"]`).addClass('selected');
// ambil data dari row pertama grup
const firstRow = $(`#example tbody tr[data-notrans="${notrans}"]`).first();
selectedRowData = {
notrans : firstRow.data('notrans')
};
console.log('Selected transaksi:', selectedRowData);
$('#rowActions').removeClass('d-none');
});
$(document).on('click', '.extend-button', function () {
console.log("Tombol extend ditekan");
if (!selectedRowData) {
alert('Pilih data terlebih dahulu');
return;
}
var rawId = $(this).data('id');
// let id = rawId.substring(0, rawId.indexOf('/'));
let id = selectedRowData.notrans;
var kendaraan = vehicle;
console.log('Data ID : ', id);
var actionUrl = '{{ route("getStikerMember.show", ":id") }}';
actionUrl = actionUrl.replace(':id', "" + encodeURIComponent(id));
console.log('Action URL : ', actionUrl);
// $('#extend-member').attr('action'), actionUrl;
$.ajax({
url: actionUrl,
type: 'GET',
success: function (r) {
console.log("Datanya : ", r);
if (r) {
$('#extend-member').val('');
$('#list-nopol-ext').empty();
$('#list-card-ext').empty();
$('#notransnya').val(r.notrans);
$('#namanya').val(r.nama);
$('#address').val(r.alamat);
$('#periode').val(`${moment(r.awal).format('DD-MM-YYYY HH:mm')} - ${moment(r.akhir).format('DD-MM-YYYY HH:mm')}`);
$('#member-ext').val(r.unit_kerja);
$('#department-ext').val(r.jenis_langganan);
var rows = r.stiker_details;
if (rows.length !== 0) {
rows.forEach(row => {
var vehicleName = vehicle.find(v => v.id === row.jenis_mobil)?.nama || 'Unknown';
$('#list-nopol-ext').append(`
<tr>
<td class="text-center p-2">${row.nopol}</td>
<td class="text-center p-2" data-value="${row.jenis_mobil}">${vehicleName}</td>
<td class="text-center p-2">${row.merk}</td>
<td class="text-center p-2">${row.jenis_member}</td>
</tr>
`);
});
} else {
$('#list-nopol-ext').append(`
<tr>
<td class="text-center p-2">Tidak ada data</td>
<td class="text-center p-2">Tidak ada data</td>
<td class="text-center p-2">Tidak ada data</td>
<td class="text-center p-2">Tidak ada data</td>
</tr>
`);
}
var rowss = r.member_card;
if (rowss.length !== 0) {
rowss.forEach(ro => {
$('#list-card-ext').append(`
<tr>
<td class="text-center p-2">${ro.no_card}</td>
<td class="text-center p-2">${ro.no_urut}</td>
</tr>
`);
});
} else {
$('#list-card-ext').append(`
<tr>
<td class="text-center p-2">Tidak ada data</td>
<td class="text-center p-2">Tidak ada data</td>
</tr>
`);
}
console.log('Data : ', r);
}
},
error: function (xhr) {
console.error('Error : ', xhr);
},
});
$('#extend-member').modal('show');
});
$('.extend').on('click', function () {
// $('#modal-member-extend').modal('show');
var url = $('#extend-member').attr('action').replace(":notrans",$("#extend-member").data('notrans'));
var extend = $(this);
var formExtend = $('#extend-member').serialize();
var nopolData = [];
var cardData = [];
$('#list-nopol-ext 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(),
};
nopolData.push(rowData);
});
console.log(nopolData);
$('#list-card-ext tr').each(function () {
var row = $(this);
var rowCard = {
nocard: row.find('td:nth-child(1)').text(),
nourut: row.find('td:nth-child(2)').text(),
};
cardData.push(rowCard);
});
const stringDataExt = formExtend;
// Mengonversi query string menjadi objek
const formDataExt = {};
const searchExtend = new URLSearchParams(stringDataExt);
searchExtend.forEach((value, key) => {
formDataExt[key] = value;
});
// console.log(formDataExt);
var extData = {
formData: formDataExt,
nopolData: nopolData,
cardNumber: cardData,
};
$.ajax({
url: url,
type: 'POST',
data: extData,
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
berforeSend: function () {
extend.text('Loading...');
},
success: function (data) {
if (data.response === true) {
Swal.fire({
icon: 'success',
title: 'Berhasil',
text: data.message,
});
$('#modal-member-extend').modal('hide');
} else {
Swal.fire({
icon: 'error',
title: 'Gagal',
text: data.message,
});
}
console.log(data);
},
error: function (xhr) {
console.error('Error : ', xhr);
},
});
});
$(document).on('click', '.edit-button', function () {
let id = selectedRowData;
$('#edit-member').attr('action', '/transaksi/member/' + id);
$('#ubah-member').modal('show');
// console.log(selectedRowData);
// console.log(id);
$.get(`/transaksi/member/${selectedRowData}`, function(res){
fillMemberModal(res);
$('#modal-member').modal('show');
});
});
// $('#btnEdit').on('click', function(){
// if(!selectedRowData) {
// alert('Pilih data dulu');
// return;
// }
// console.log(selectedRowData);
// $.get(`/member/${selectedRowData.notrans}`, function(res){
// fillMemberModal(res);
// $('#modal-member').modal('show');
// });
// });
function fillMemberModal(res){
let m = res.member;
// TAB 1 - DATA PENGUNJUNG
$('[name="nama"]').val(m.nama);
$('[name="address"]').val(m.alamat);
$('[name="daterange"]').val(m.awal + ' - ' + m.akhir);
$('[name="member"]').val(m.jenis_langganan).trigger('change');
$('[name="depart"]').val(m.dept).trigger('change');
$('[name="note"]').val(m.note);
$('[name="harga"]').val(m.harga);
// =========================
// TAB 2 - KENDARAAN
// =========================
$('#list-nopol').empty();
res.kendaraan.forEach(v => {
$('#list-nopol').append(`
<tr>
<td>${v.nopol}</td>
<td>${v.jenis}</td>
<td>${v.merk}</td>
<td>${v.member}</td>
<td>
<button class="btn btn-danger btn-sm remove-nopol" data-id="${v.id}">Hapus</button>
</td>
</tr>
`);
});
// =========================
// TAB 3 - KARTU
// =========================
$('#list-card').empty();
res.kartu.forEach(k => {
$('#list-card').append(`
<tr>
<td>${k.kartu}</td>
<td>${k.nourut}</td>
<td>
<button class="btn btn-danger btn-sm remove-card" data-id="${k.id}">Hapus</button>
</td>
</tr>
`);
});
}
$('#modal-member').on('hidden.bs.modal', function () {
$(this).find('form')[0].reset();
$('#list-nopol').empty();
$('#list-card').empty();
});
});
</script>
@endsection
+20 -13
View File
@@ -25,35 +25,42 @@
<div class="pt-4">
<div class="row">
<div class="col-xl-6">
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label">No. Transaksi</label>
<div class="col-lg-8">
<input type="text" class="form-control form-control-sm" value="OTOMATIS" readonly>
<input type="hidden" class="form-control form-control-sm"readonly>
</div>
</div>
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label">Jenis Transaksi</label>
<div class="col-lg-8">
<input type="text" class="form-control" value="BARU" readonly>
<input type="hidden" class="form-control" name="jenis_transaksi" value="0" readonly>
<input type="text" class="form-control form-control-sm" value="BARU" readonly>
<input type="hidden" class="form-control form-control-sm" name="jenis_transaksi" value="0" readonly>
</div>
</div>
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label required">Nama</label>
<div class="col-lg-8">
<input type="text" class="form-control" name="nama" placeholder="Masuk kan nama...." required>
<input type="text" class="form-control form-control-sm" name="nama" placeholder="Masuk kan nama...." required>
</div>
</div>
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label">Alamat</label>
<div class="col-lg-8">
<textarea type="text" class="form-control" rows="3" name="address" placeholder="JL. Hati hati raya..."></textarea>
<textarea type="text" class="form-control form-control-sm" rows="3" name="address" placeholder="JL. Hati hati raya..."></textarea>
</div>
</div>
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label">Telepon</label>
<div class="col-lg-8">
<input type="number" class="form-control" phone="phone" placeholder="+62 81/081...">
<input type="text" class="form-control form-control-sm" phone="phone" placeholder="+62 81/081...">
</div>
</div>
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label required">Periode :</label>
<div class="col-lg-8">
<input type="text" class="form-control input-daterange-timepicker" name="periode" readonly>
<input type="text" class="form-control form-control-sm input-daterange-timepicker" name="periode" readonly>
</div>
</div>
</div>
@@ -83,13 +90,13 @@
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label">Note :</label>
<div class="col-lg-6">
<input type="text" class="form-control" name="note" placeholder="Catatan...">
<input type="text" class="form-control form-control-sm" name="note" placeholder="Catatan...">
</div>
</div>
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label">Harga (Rp.):</label>
<div class="col-lg-6">
<input type="text" class="form-control" name="harga" placeholder="10.000">
<input type="text" class="form-control form-control-sm" name="harga" placeholder="10.000">
</div>
</div>
{{-- <div class="mb-3 row">
@@ -112,7 +119,7 @@
<div class="row form-material">
<div class="col-xl-3 col-md-6 mb-3">
<label class="form-label">Nomer Polisi</label>
<input type="text" class="form-control nopol-add" onkeyup="this.value = this.value.toUpperCase();" placeholder="No. Polisi">
<input type="text" class="form-control form-control-sm nopol-add" onkeyup="this.value = this.value.toUpperCase();" placeholder="No. Polisi">
<div class="invalid-feedback">Nomer Polisi sudah ada</div>
</div>
<div class="col-xl-3 col-md-6 mb-3">
@@ -131,7 +138,7 @@
</div>
<div class="col-xl-3 col-md-6 mb-3">
<label class="form-label">Merk : </label>
<input type="text" class="form-control merk" onkeyup="this.value = this.value.toUpperCase();" placeholder="Honda...">
<input type="text" class="form-control form-control-sm merk" onkeyup="this.value = this.value.toUpperCase();" placeholder="Honda...">
</div>
<div class="col-xl-3 col-md-6 mb-3">
<label class="form-label"></label>
@@ -143,8 +150,8 @@
<tr>
<th class="col-2 text-center p-2">Nomer Polisi</th>
<th class="col-2 text-center">Jenis Kendaraan</th>
<th class="col-2 text-center">Merk Kendaraan</th>
<th class="col-2 text-center">Type Member</th>
<th class="col-2 text-center">Merk Kendaraan</th>
<th class="col-2 text-center">Aksi</th>
</tr>
</thead>
@@ -160,11 +167,11 @@
<div class="row form-material">
<div class="col-xl-6 col-md-6 mb-3">
<label class="form-label">Nomer Kartu</label>
<input type="text" class="form-control kartu" placeholder="01234567...">
<input type="text" class="form-control form-control-sm kartu" placeholder="01234567...">
</div>
<div class="col-xl-6 col-md-6 mb-3">
<label class="form-label">Nomer Urut</label>
<input type="text" class="form-control nourut" placeholder="01234567...">
<input type="text" class="form-control form-control-sm nourut" placeholder="01234567...">
</div>
<hr>
{{-- <div class="table-responsive"> --}}
+6 -6
View File
@@ -10,20 +10,20 @@
<div class="custom-tab-1">
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link active" data-bs-toggle="tab" href="#home1"><i class="la la-user me-2"></i>Data Pengunjung</a>
<a class="nav-link active" data-bs-toggle="tab" href="#edit-data"><i class="la la-user me-2"></i>Data Pengunjung</a>
</li>
<li class="nav-item">
<a class="nav-link" data-bs-toggle="tab" href="#profile1"><i class="la la-home me-2"></i> Data Kendaraan</a>
<a class="nav-link" data-bs-toggle="tab" href="#edit-vehicle"><i class="la la-home me-2"></i> Data Kendaraan</a>
</li>
<li class="nav-item">
<a class="nav-link" data-bs-toggle="tab" href="#contact1"><i class="la la-phone me-2"></i>Data Akses</a>
<a class="nav-link" data-bs-toggle="tab" href="#edit-card"><i class="la la-phone me-2"></i>Data Akses</a>
</li>
</ul>
<form class="ubah-member" id="edit-member" methode="POST">
@csrf
@method('PUT')
<div class="tab-content">
<div class="tab-pane fade show active" id="home1" role="tabpanel">
<div class="tab-pane fade show active" id="edit-data" role="tabpanel">
<div class="pt-4">
<div class="row">
<div class="col-xl-6">
@@ -98,7 +98,7 @@
</div>
</div>
</div>
<div class="tab-pane fade" id="profile1">
<div class="tab-pane fade" id="edit-vehicle">
<div class="pt-4">
<h4>Tambahkan Kendaraan</h4>
<div class="row form-material">
@@ -146,7 +146,7 @@
</div>
</div>
</div>
<div class="tab-pane fade" id="contact1">
<div class="tab-pane fade" id="edit-card">
<div class="pt-4">
<h4>Tambahkan Kartu</h4>
<div class="row form-material">