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
220 lines
12 KiB
PHP
220 lines
12 KiB
PHP
@extends('layouts.master')
|
|
|
|
@section('styles')
|
|
<!--<link rel="stylesheet" href="{{ asset('vendors/bootstrap-datepicker/bootstrap-datepicker.min.css') }}">-->
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css">
|
|
<style>
|
|
.datepicker.dropdown-menu {
|
|
z-index: 1090 !important; /* di atas z-index modal (1055) */
|
|
}
|
|
.card-body label {
|
|
font-size: 13px;
|
|
color: #6c757d;
|
|
}
|
|
|
|
.card-body .form-control,
|
|
.card-body .form-select {
|
|
font-size: 14px;
|
|
}
|
|
|
|
#search-button {
|
|
font-weight: 600;
|
|
letter-spacing: .3px;
|
|
}
|
|
|
|
.table-selectable tbody tr {
|
|
cursor: pointer;
|
|
transition: 0.15s;
|
|
}
|
|
|
|
.table-selectable tbody tr:hover {
|
|
background-color: #f2f6ff;
|
|
}
|
|
|
|
.table-selectable tbody tr.selected {
|
|
background-color: #0d6efd !important;
|
|
color: #fff;
|
|
}
|
|
|
|
.table-selectable tbody tr.selected td {
|
|
color: #fff !important;
|
|
}
|
|
</style>
|
|
@endsection
|
|
|
|
@section('content')
|
|
<!-- partial -->
|
|
<div class="container-fluid page-body-wrapper">
|
|
<div class="main-panel">
|
|
<div class="content-wrapper">
|
|
<div class="row">
|
|
<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>
|
|
|
|
<!-- 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>
|
|
|
|
<input type="text" class="form-control form-control-sm" name="search_value" id="search-value" placeholder="Masukkan kata kunci...">
|
|
</div>
|
|
|
|
<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>
|
|
|
|
<!-- 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>
|
|
|
|
<!-- 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>
|
|
|
|
<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>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-10 grid-margin stretch-card">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<h4 class="card-title">Transaksi Stiker / Langganan</h4>
|
|
<div class="d-flex justify-content-between align-items-center mb-2">
|
|
<div>
|
|
<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="#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>
|
|
</div>
|
|
</div>
|
|
<div class="table-responsive pt-3">
|
|
<table class="table table-basic table-selectable" id="example" data-url="{{ route('getMember') }}">
|
|
<thead>
|
|
<tr>
|
|
<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;" 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>
|
|
</thead>
|
|
<tbody>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- ADD MEMMBER MODAL -->
|
|
@include('stiker.tambah-stiker')
|
|
@include('stiker.extend-stiker')
|
|
@include('stiker.ubah-stiker')
|
|
@include('stiker.details-stiker')
|
|
<!-- END MEMMBER MODAL -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@endsection
|
|
|
|
@section('javascript')
|
|
<!--********* Scripts *********-->
|
|
<!-- Datatable -->
|
|
<!--********* Scripts *********-->
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.5/jquery.validate.js"></script>
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/metisMenu/3.0.7/metisMenu.min.js"></script>
|
|
<script src="{{asset ('vendor/moment/moment.min.js') }}"></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>
|
|
<script src="{{asset ('vendor/bootstrap-select/dist/js/bootstrap-select.min.js') }}"></script>
|
|
<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/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
|
|
@endsection
|