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:
@@ -0,0 +1,379 @@
|
||||
@extends('layouts.master')
|
||||
|
||||
@section('styles')
|
||||
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.8/css/jquery.dataTables.min.css">
|
||||
<style>
|
||||
thead .th {
|
||||
align-text: center;
|
||||
}
|
||||
</style>
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="container-fluid">
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center mb-3">
|
||||
<div>
|
||||
<h4 class="mb-1">Audit Report</h4>
|
||||
<small class="text-muted">
|
||||
Transaksi dengan status transaksi bermasalah
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{{-- FILTER --}}
|
||||
<div class="card">
|
||||
|
||||
<div class="card-body">
|
||||
|
||||
{{-- FILTER --}}
|
||||
<div class="row g-3 mb-3">
|
||||
|
||||
<div class="col-md-3">
|
||||
<label class="form-label">
|
||||
Tanggal Mulai
|
||||
</label>
|
||||
|
||||
<input
|
||||
type="date"
|
||||
id="start_date"
|
||||
class="form-control"
|
||||
value="{{ date('Y-m-d') }}"
|
||||
>
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
<label class="form-label">
|
||||
Tanggal Akhir
|
||||
</label>
|
||||
|
||||
<input
|
||||
type="date"
|
||||
id="end_date"
|
||||
class="form-control"
|
||||
value="{{ date('Y-m-d') }}"
|
||||
>
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
<label class="form-label">
|
||||
Status
|
||||
</label>
|
||||
|
||||
<select
|
||||
id="status_transaksi"
|
||||
class="form-select"
|
||||
>
|
||||
<option value="0">Semua</option>
|
||||
<option value="-1">Pembatalan</option>
|
||||
<option value="-2">Maintenance</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
<label class="form-label">
|
||||
Alasan
|
||||
</label>
|
||||
|
||||
<select
|
||||
id="filter_alasan"
|
||||
class="form-select"
|
||||
>
|
||||
<option value="1">
|
||||
Batal
|
||||
</option>
|
||||
|
||||
<option value="0">
|
||||
Semua
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-md-2 d-flex align-items-end">
|
||||
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-primary w-100"
|
||||
id="btn-search"
|
||||
>
|
||||
<i class="fas fa-search"></i>
|
||||
Cari
|
||||
</button>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{-- SUMMARY --}}
|
||||
<div class="row mb-3">
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="border rounded p-3">
|
||||
<small>Total Transaksi</small>
|
||||
|
||||
<h4 id="total-transaksi">
|
||||
0
|
||||
</h4>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="border rounded p-3">
|
||||
<small>Total Bayar</small>
|
||||
|
||||
<h4 id="total-bayar">
|
||||
Rp 0
|
||||
</h4>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{-- TABLE --}}
|
||||
<div class="table-responsive">
|
||||
|
||||
<table
|
||||
class="table table-bordered table-hover"
|
||||
id="audit-table"
|
||||
>
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Nomer Polisi</th>
|
||||
<th>Waktu Masuk</th>
|
||||
<th>Waktu Keluar</th>
|
||||
<th>Status</th>
|
||||
<th>Bayar Keluar</th>
|
||||
<th>Alasan</th>
|
||||
<th>Jenis Pembayaran</th>
|
||||
<th>Petugas</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody id="audit-table-body">
|
||||
|
||||
{{-- kosong saat pertama dibuka --}}
|
||||
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
|
||||
@section('javascript')
|
||||
<script src="https://cdn.datatables.net/1.13.8/js/jquery.dataTables.min.js"></script>
|
||||
<script>
|
||||
|
||||
$(function () {
|
||||
|
||||
$('#btn-search').on('click', function () {
|
||||
|
||||
const btn = $(this);
|
||||
|
||||
const startDate = $('#start_date').val();
|
||||
const endDate = $('#end_date').val();
|
||||
const status = $('#status_transaksi').val();
|
||||
const alasan = $('#filter_alasan').val();
|
||||
|
||||
if (!startDate || !endDate) {
|
||||
alert('Tanggal harus diisi');
|
||||
return;
|
||||
}
|
||||
|
||||
if (startDate > endDate) {
|
||||
alert(
|
||||
'Tanggal mulai tidak boleh lebih besar dari tanggal akhir'
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
|
||||
url: "{{ route('audit.data') }}",
|
||||
|
||||
type: "GET",
|
||||
|
||||
data: {
|
||||
start_date: startDate,
|
||||
end_date: endDate,
|
||||
status_transaksi: status,
|
||||
filter_alasan: alasan
|
||||
},
|
||||
|
||||
dataType: "json",
|
||||
|
||||
beforeSend: function () {
|
||||
|
||||
btn.prop('disabled', true);
|
||||
|
||||
$('#audit-table-body').html(`
|
||||
<tr>
|
||||
<td colspan="8"
|
||||
class="text-center">
|
||||
Memuat data...
|
||||
</td>
|
||||
</tr>
|
||||
`);
|
||||
|
||||
},
|
||||
|
||||
success: function (response) {
|
||||
|
||||
if (!response.response) {
|
||||
return;
|
||||
}
|
||||
|
||||
const rows = response.data;
|
||||
|
||||
$('#audit-table-body').empty();
|
||||
|
||||
if (rows.length === 0) {
|
||||
|
||||
$('#audit-table-body').html(`
|
||||
<tr>
|
||||
<td colspan="8"
|
||||
class="text-center">
|
||||
Tidak ada data
|
||||
</td>
|
||||
</tr>
|
||||
`);
|
||||
|
||||
} else {
|
||||
|
||||
rows.forEach(function (row) {
|
||||
|
||||
$('#audit-table-body').append(`
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="text-center">
|
||||
${row.id ?? '-'}
|
||||
</td>
|
||||
|
||||
<td class="text-center">
|
||||
${row.no_pol ?? '-'}
|
||||
</td>
|
||||
|
||||
<td class="text-center">
|
||||
${row.waktu_masuk ?? '-'}
|
||||
</td class="text-center">
|
||||
|
||||
<td class="text-center">
|
||||
${row.waktu_keluar ?? '-'}
|
||||
</td>
|
||||
|
||||
<td class="text-center">
|
||||
<span class="badge bg-danger">
|
||||
${row.status_transaksi ?? '-'}
|
||||
</span>
|
||||
</td>
|
||||
|
||||
<td class="text-end">
|
||||
Rp ${Number(
|
||||
row.bayar_keluar ?? 0
|
||||
).toLocaleString('id-ID')}
|
||||
</td>
|
||||
|
||||
<td class="text-center">
|
||||
${row.alasan ?? '-'}
|
||||
</td>
|
||||
|
||||
<td class="text-center">
|
||||
${row.cara_bayar == 2 ? 'Tunai' : 'Non Tunai'}
|
||||
</td>
|
||||
<td class="text-center">
|
||||
${row.operator ?? '-'}
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
|
||||
`);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
// SUMMARY
|
||||
$('#total-transaksi').text(
|
||||
Number(
|
||||
response.summary.total_transaksi
|
||||
).toLocaleString('id-ID')
|
||||
);
|
||||
|
||||
$('#total-bayar').text(
|
||||
'Rp ' +
|
||||
Number(
|
||||
response.summary.total_bayar
|
||||
).toLocaleString('id-ID')
|
||||
);
|
||||
|
||||
},
|
||||
|
||||
error: function (xhr) {
|
||||
|
||||
console.error(xhr.responseText);
|
||||
|
||||
$('#audit-table-body').html(`
|
||||
<tr>
|
||||
<td colspan="8"
|
||||
class="text-center text-danger">
|
||||
Gagal mengambil data
|
||||
</td>
|
||||
</tr>
|
||||
`);
|
||||
|
||||
},
|
||||
|
||||
complete: function () {
|
||||
|
||||
btn.prop('disabled', false);
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
function payment(value) {
|
||||
switch (value) {
|
||||
case 2:
|
||||
return 'Tunai';
|
||||
case 3:
|
||||
return 'Non Tunai';
|
||||
default:
|
||||
return 'Jenis Pembayaran Tidak ditemukan'
|
||||
}
|
||||
};
|
||||
|
||||
function vehicleStatus(value) {
|
||||
switch (value) {
|
||||
case 0:
|
||||
return 'Sudah Keluar';
|
||||
case 1:
|
||||
return 'Masih didalam';
|
||||
case -2:
|
||||
return 'Maintenance';
|
||||
default:
|
||||
return 'Tidak Ada'
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,143 @@
|
||||
@extends('layouts.master') {{-- sesuaikan dengan layout master project kamu --}}
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid py-4">
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center mb-3">
|
||||
<h4 class="mb-0">Data Stasiun Kerja</h4>
|
||||
<button type="button" class="btn btn-primary" id="btnTambah">
|
||||
+ Tambah Stasiun Kerja
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-hover align-middle" id="tabelStasiunKerja">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th>Kode</th>
|
||||
<th>Nama</th>
|
||||
<th>Margin</th>
|
||||
<th>SPV</th>
|
||||
<th>Target</th>
|
||||
<th>Lokasi</th>
|
||||
<th>Lantai</th>
|
||||
<th>Status</th>
|
||||
<th>Alamat</th>
|
||||
<th>Bank</th>
|
||||
<th>Telp</th>
|
||||
<th>Kode Akses</th>
|
||||
<th style="width: 130px;">Aksi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="tbodyStasiunKerja">
|
||||
{{-- diisi lewat JS --}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{{-- ===================== MODAL FORM ===================== --}}
|
||||
<div class="modal fade" id="modalStasiunKerja" tabindex="-1" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<form id="formStasiunKerja">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="modalStasiunKerjaTitle">Tambah Stasiun Kerja</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
<input type="hidden" id="inputMode" value="create">
|
||||
<input type="hidden" id="inputKodeOriginal" value="">
|
||||
|
||||
<div class="row g-3">
|
||||
<div class="col-md-4">
|
||||
<label class="form-label">Kode <span class="text-danger">*</span></label>
|
||||
<input type="text" class="form-control" id="inputKode" maxlength="50" required>
|
||||
<div class="invalid-feedback" data-error-for="kode"></div>
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<label class="form-label">Nama <span class="text-danger">*</span></label>
|
||||
<input type="text" class="form-control" id="inputNama" maxlength="255" required>
|
||||
<div class="invalid-feedback" data-error-for="nama"></div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
<label class="form-label">Margin</label>
|
||||
<input type="number" class="form-control" id="inputMargin">
|
||||
<div class="invalid-feedback" data-error-for="margin"></div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<label class="form-label">Target</label>
|
||||
<input type="number" class="form-control" id="inputTarget">
|
||||
<div class="invalid-feedback" data-error-for="target"></div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<label class="form-label">Status</label>
|
||||
<select class="form-select" id="inputStatus">
|
||||
<option value="1">Aktif</option>
|
||||
<option value="0">Nonaktif</option>
|
||||
</select>
|
||||
<div class="invalid-feedback" data-error-for="status"></div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<label class="form-label">Kode Akses</label>
|
||||
<input type="text" class="form-control" id="inputKodeAkses" maxlength="5">
|
||||
<div class="invalid-feedback" data-error-for="kode_akses"></div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<label class="form-label">SPV</label>
|
||||
<input type="text" class="form-control" id="inputSpv" maxlength="20">
|
||||
<div class="invalid-feedback" data-error-for="spv"></div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label class="form-label">ID Lokasi</label>
|
||||
<input type="text" class="form-control" id="inputIdLokasi" maxlength="10">
|
||||
<div class="invalid-feedback" data-error-for="id_lokasi"></div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label class="form-label">Lantai</label>
|
||||
<input type="text" class="form-control" id="inputLantai" maxlength="4">
|
||||
<div class="invalid-feedback" data-error-for="lantai"></div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<label class="form-label">Bank</label>
|
||||
<input type="text" class="form-control" id="inputBank" maxlength="64">
|
||||
<div class="invalid-feedback" data-error-for="bank"></div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label class="form-label">Telp</label>
|
||||
<input type="text" class="form-control" id="inputTelp" maxlength="32">
|
||||
<div class="invalid-feedback" data-error-for="telp"></div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12">
|
||||
<label class="form-label">Alamat</label>
|
||||
<textarea class="form-control" id="inputAlamat" rows="2" maxlength="255"></textarea>
|
||||
<div class="invalid-feedback" data-error-for="alamat"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
|
||||
<button type="submit" class="btn btn-primary" id="btnSimpan">Simpan</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@section('javascript')
|
||||
<script>
|
||||
// Endpoint diambil dari Laravel route(), disuntik ke JS supaya
|
||||
// tidak hardcode URL (menghindari masalah beda host/port seperti sebelumnya).
|
||||
window.STASIUNKERJA_ENDPOINT = "{{ url('/setup/master/stasiunkerja') }}";
|
||||
</script>
|
||||
<script src="{{ asset('js/setup/stasiunkerja.js') }}"></script>
|
||||
@endsection
|
||||
@@ -0,0 +1,150 @@
|
||||
@extends('layouts.master') {{-- sesuaikan dengan layout master project kamu --}}
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid py-4">
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center mb-3">
|
||||
<h4 class="mb-0">Data Tarif Stiker</h4>
|
||||
<button type="button" class="btn btn-primary" id="btnTambah">
|
||||
+ Tambah Tarif Stiker
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-hover align-middle" id="tabelTarifStiker">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th id="thTarifId" role="button" style="cursor:pointer; user-select:none; white-space:nowrap;">
|
||||
Tarif ID <span id="sortIconTarifId">▼</span>
|
||||
</th>
|
||||
<th>ID Mobil</th>
|
||||
<th>Jenis Langganan</th>
|
||||
<th>Tarif</th>
|
||||
<th>Jenis</th>
|
||||
<th>Jenis Member</th>
|
||||
<th>Langganan (Stasiun Kerja)</th>
|
||||
<th>Online</th>
|
||||
<th>Kode Akses</th>
|
||||
<th style="width: 130px;">Aksi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="tbodyTarifStiker">
|
||||
{{-- diisi lewat JS --}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{{-- ===================== MODAL FORM ===================== --}}
|
||||
<div class="modal fade" id="modalTarifStiker" tabindex="-1" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<form id="formTarifStiker">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="modalTarifStikerTitle">Tambah Tarif Stiker</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
<input type="hidden" id="inputMode" value="create">
|
||||
<input type="hidden" id="inputTarifIdOriginal" value="">
|
||||
|
||||
<div class="row g-3">
|
||||
<div class="col-md-4">
|
||||
<label class="form-label">Tarif ID</label>
|
||||
<input type="number" class="form-control" id="inputTarifId" placeholder="Kosongkan untuk auto">
|
||||
<div class="form-text">Kosongkan saat tambah data baru, akan digenerate otomatis.</div>
|
||||
<div class="invalid-feedback" data-error-for="tarif_id"></div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label class="form-label">ID Mobil <span class="text-danger">*</span></label>
|
||||
<input type="text" class="form-control" id="inputIdMobil" maxlength="10" required>
|
||||
<div class="invalid-feedback" data-error-for="id_mobil"></div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label class="form-label">Tarif <span class="text-danger">*</span></label>
|
||||
<input type="number" step="0.01" class="form-control" id="inputTarif" required>
|
||||
<div class="invalid-feedback" data-error-for="tarif"></div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<label class="form-label">Jenis Langganan <span class="text-danger">*</span></label>
|
||||
<select class="form-select" id="inputJenisLangganan" required>
|
||||
<option value="">-- Pilih Jenis Langganan --</option>
|
||||
@foreach ($jenisLanggananList as $jl)
|
||||
<option value="{{ $jl->id }}">{{ $jl->nama }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<div class="invalid-feedback" data-error-for="jenis_langganan"></div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label class="form-label">Langganan (Stasiun Kerja)</label>
|
||||
<select class="form-select" id="inputLangganan">
|
||||
<option value="">-- Tidak terikat stasiun kerja --</option>
|
||||
@foreach ($stasiunKerjaList as $sk)
|
||||
<option value="{{ $sk->kode }}">{{ $sk->nama }} ({{ $sk->kode }})</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<div class="invalid-feedback" data-error-for="langganan"></div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
<label class="form-label">Jenis</label>
|
||||
<input type="text" class="form-control" id="inputJenis" maxlength="30">
|
||||
<div class="invalid-feedback" data-error-for="jenis"></div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<label class="form-label">Jenis Member</label>
|
||||
<input type="text" class="form-control" id="inputJenisMember" maxlength="50">
|
||||
<div class="invalid-feedback" data-error-for="jenis_member"></div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<label class="form-label">Last Member</label>
|
||||
<input type="text" class="form-control" id="inputLastMember" maxlength="5">
|
||||
<div class="invalid-feedback" data-error-for="last_member"></div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<label class="form-label">Tgl Akhir</label>
|
||||
<input type="text" class="form-control" id="inputTglAkhir" maxlength="2">
|
||||
<div class="invalid-feedback" data-error-for="tgl_akhir"></div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<label class="form-label">Hitung Awal Bulan</label>
|
||||
<input type="number" class="form-control" id="inputHitungAwalBulan">
|
||||
<div class="invalid-feedback" data-error-for="hitung_awal_bulan"></div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label class="form-label">Kode Akses</label>
|
||||
<input type="text" class="form-control" id="inputKodeAkses" maxlength="5">
|
||||
<div class="invalid-feedback" data-error-for="kode_akses"></div>
|
||||
</div>
|
||||
<div class="col-md-4 d-flex align-items-end">
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input" type="checkbox" id="inputAvailableOnline">
|
||||
<label class="form-check-label" for="inputAvailableOnline">
|
||||
Tersedia Online
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
|
||||
<button type="submit" class="btn btn-primary" id="btnSimpan">Simpan</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@section('javascript')
|
||||
<script>
|
||||
window.TARIFSTIKER_ENDPOINT = "{{ url('/setup/master/tarif-stiker') }}";
|
||||
</script>
|
||||
<script src="{{ asset('js/setup/tarifstiker.js') }}"></script>
|
||||
@endsection
|
||||
Reference in New Issue
Block a user