Files
mylesen/resources/views/admin/penjaja/partials/wangproses_nofail.blade.php

509 lines
22 KiB
PHP

@section('meta')
<meta name="csrf-token" content="{{ csrf_token() }}">
@endsection
<div class="row">
<div class="col-sm-12 col-md-8">
<div class="card mt-3">
<div class="card-header">
<h5 class="mb-0">Wang Proses</h5>
</div>
<div class="card-body">
<div class="form-group">
<label for="no_fail_lesen">No Fail Lesen</label>
<input type="text" class="form-control" id="no_fail_lesen" name="no_fail_lesen"
value="{{ old('no_fail_lesen', $permohonan->no_fail_lesen) }}" data-permohonan-id="{{ $permohonan->id }}"
{{ !is_null($permohonan->no_fail_lesen) ? 'disabled' : '' }} />
<small id="no_fail_status" class="text-muted"></small>
</div>
@if(is_null($permohonan->no_resit_wang_proses()))
<!-- PILIHAN JANA BIL -->
<div class="mb-3">
<label class="form-label fw-bold">Cara Jana Bil</label>
<div class="d-flex gap-4">
<div class="form-check">
<input class="form-check-input" type="radio" name="cara_jana" id="cara_jana_mylesen">
<label class="form-check-label" for="cara_jana_mylesen">
Automatik (mylesen)
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="cara_jana" id="cara_jana_epbt">
<label class="form-check-label" for="cara_jana_epbt">
Manual (epbt)
</label>
</div>
</div>
</div>
<!-- CARD GROUP -->
<div class="card-group" id="janaBilGroup">
<!-- CARD 1: AUTOMATIK -->
<div class="card border-success me-2" id="cardAuto" style="display:none;">
<div class="card-header bg-success text-white py-2">Jana Bil Automatik</div>
<div class="card-body">
<form id="formMylesen">
<div class="mb-2">
<label class="form-label">Keterangan</label>
<input type="text" id="keterangan" class="form-control"
value="PROSES PERMOHONAN LESEN PENJAJA SEMENTARA">
</div>
<div class="mb-2">
<label class="form-label">Kod Hasil</label>
<input type="text" id="kod_hasil" class="form-control"
value="H72407">
</div>
<div class="row">
<div class="col-md-6 mb-2">
<label class="form-label">Amaun (RM)</label>
<input type="number" id="amaun" class="form-control"
value="30">
</div>
<div class="col-md-6 mb-3">
<label class="form-label">Kuantiti</label>
<input type="number" id="qty" class="form-control"
value="1" readonly>
</div>
</div>
<button type="button" class="btn btn-success w-100"
id="btnJanaBil">
Jana Bil Automatik
</button>
</form>
</div>
</div>
<!-- CARD 2: MANUAL -->
<div class="card border-primary ms-2" id="cardManual" style="display:none;">
<div class="card-header bg-primary text-white py-2">Masukkan No Bil Manual</div>
<div class="card-body">
<form action="{{route('pt.simpan-wangproses')}}" method="post" id="formEPBT">
@csrf
<input type="hidden" name="permohonan_id" id="permohonan_id" value="{{$permohonan->id}}">
<label class="form-label">No Bil EPBT</label>
<div class="d-flex">
<input type="text" id="no_bil_pelbagai" name="no_bil_pelbagai"
class="form-control"
placeholder="BPELxxx">
<button type="submit"
class="btn btn-primary ms-2"
id="simpanbil"
disabled>
Simpan
</button>
</div>
</form>
</div>
</div>
</div>
@endif
<!-- SENARAI BIL -->
<hr class="my-4">
<h6 class="fw-bold">Senarai Bil</h6>
<div class="row">
@foreach($permohonan->bilpelbagais as $bp)
<div class="col-md-4">
<div class="card border-info mb-3">
<div class="card-header fw-bold text-info">
<h6 class="card-title fw-bold text-info">Bil: {{ $bp->no_akaun_bilpelbagai }}</h6>
</div>
<div class="card-body">
<p>{{ $bp->description }}</p>
<div>Amaun: RM {{ number_format($bp->amaun_bil(), 2) }}</div>
</div>
<div class="card-footer">
@if(is_null($bp->no_resit))
<h6 class="card-title fw-bold text-danger">Belum Bayar</h6>
@else
<h6 class="card-title fw-bold text-success">RESIT : {{ $bp->no_resit }}</h6>
@endif
</div>
</div>
</div>
@endforeach
</div>
</div>
</div>
</div>
<div class="col-sm-12 col-md-4">
<div class="card card-round">
<div class="card-header">
<div class="card-head-row card-tools-still-right">
<h4 class="card-title">Maklumat Fail</h4>
</div>
</div>
<div class="card-body">
@if(auth()->user()->hasRole(['pembantu tadbir', 'super'])&&($permohonan->status_progress == 'semakan bayaran proses'))
<form action="{{route('pt.simpan-nofail')}}" method="post">
@csrf
<input type="hidden" name="permohonan_id" id="permohonan_id" value="{{$permohonan->id}}">
@if(!is_null($permohonan->penempatan_id))
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="penempatan">Penempatan</label>
<input type="text" id="penempatan" class="form-control" readonly name="penempatan" value="{{$permohonan?->penempatan?->nama}}" >
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="no_petak">No Petak</label>
<input type="text" id="no_petak" class="form-control" name="no_petak" value="{{$permohonan?->no_petak}}" >
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="kawasan">Kawasan</label>
<input type="text" id="kawasan" class="form-control" readonly name="kawasan" value="{{$permohonan?->kawasan->nama}}" >
</div>
</div>
<div class="col-6">
<div class="form-group">
<label for="taman">Taman</label>
<input type="text" id="taman" class="form-control" readonly name="taman" value="{{$permohonan?->taman->nama}}" >
</div>
</div>
<div class="col-6">
<div class="form-group">
<label for="jalan">Jalan</label>
<input type="text" id="jalan" class="form-control" readonly name="jalan" value="{{$permohonan?->jalan?->nama}}" >
</div>
</div>
</div>
@else
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="kawasan">Kawasan</label>
<select id="kawasan" name="kawasan" class="form-select" required>
@foreach($kawasans as $kawasan)
<option value="{{$kawasan->id}}" {{ $permohonan?->kawasan_id == $kawasan->id ? 'selected' : ''}}>{{$kawasan->nama}}</option>
@endforeach
</select>
</div>
</div>
<div class="col-6">
<div class="form-group">
<label for="taman">Taman</label>
<select id="taman" name="taman" class="form-select" >
<option value="">{{$permohonan?->taman_id}}</option>
@foreach($tamans as $taman)
<option value="{{$taman->id}}" {{ $permohonan?->taman_id == $taman->id ? 'selected' : ''}}>{{$taman->nama}}</option>
@endforeach
</select>
</div>
</div>
<div class="col-6">
<div class="form-group">
<label for="jalan">Jalan</label>
<select id="jalan" class="form-select" name="jalan" >
<option value=""></option>
@foreach($jalans as $jalan)
<option value="{{$jalan->id}}" {{ $permohonan?->jalan_id == $jalan->id ? 'selected' : ''}}>{{$jalan->nama}}</option>
@endforeach
</select>
</div>
</div>
</div>
@endif
<div class="form-group">
<label for="no_akaun_lesen">No Akaun Lesen</label>
<input type="text" class="form-control" id="no_akaun_lesen" name="no_akaun_lesen"
value="{{ old('no_akaun_lesen', $permohonan->no_akaun_lesen) }}" />
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="jenis_jualan">Jenis Jualan</label>
<select id="jenis_jualan" name="jenis_jualan" class="form-select" required>
<option value="">{{$permohonan?->jenis_jualan_id}}</option>
@foreach($jenis_jualans as $jenis_jualan)
<option value="{{$jenis_jualan->id}}" {{ $permohonan?->jenis_jualan_id == $jenis_jualan->id ? 'selected' : ''}}>{{$jenis_jualan->nama}}</option>
@endforeach
</select>
</div>
</div>
</div>
<div class="form-group">
<input id="simpannofail" class="btn btn-sm btn-secondary" type="submit" name="simpannofail" value="Simpan" />
</div>
</form>
<hr>
<form action="{{route('pt.hantar-ppk')}}" method="post">
@csrf
<input type="hidden" name="permohonan_id" id="permohonan_id" value="{{$permohonan->id}}">
<div class="form-group">
<label class="form-check-label" for="flexRadioDefault1">
Serah kepada Penolong Pegawai Kesihatan
</label>
</div>
<div class="form-group">
<input id="simpan" class="btn btn-sm btn-secondary" type="submit" name="janabil" value="Hantar" />
</div>
</div>
</form>
@else
<div class="form-group">
<label for="no_fail_lesen">No Fail Lesen</label>
<input type="text" class="form-control" id="no_fail_lesen" disabled
value="{{ old('no_fail_lesen', $permohonan->no_fail_lesen) }}" />
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="jenis_perniagaan">Jenis Perniagaan</label>
<input type="text" class="form-control" id="jenis_perniagaan" disabled
value="{{ old('jenis_perniagaan', $permohonan->jenis_perniagaan) }}" />
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="kodkawasan">Kawasan</label>
<input type="text" class="form-control" id="kodkawasan" disabled
value="{{ old('kodkawasan', $permohonan->kodkawasan) }}" />
</div>
</div>
</div>
@endif
</div>
</div>
</div> <!-- /.col -->
</div> <!--end::Row-->
@section('js')
@if(auth()->user()->hasRole(['pembantu tadbir', 'super'])&&($permohonan->status_progress == 'baru'))
<script>
$(function () {
function hideAll() {
$("#cardAuto").hide();
$("#cardManual").hide();
}
hideAll();
// Auto
$("#cara_jana_mylesen").on("click", function(){
hideAll();
$("#cardAuto").show();
});
// Manual
$("#cara_jana_epbt").on("click", function(){
hideAll();
$("#cardManual").show();
});
// Enable simpan bila ada input
$("#no_bil_pelbagai").on("keyup", function(){
$("#simpanbil").prop("disabled", $(this).val().trim() === "");
});
// AJAX jana bil automatik
$("#btnJanaBil").on("click", function(){
let data = {
_token: "{{ csrf_token() }}",
permohonan_id: "{{ $permohonan->id }}",
keterangan: $("#keterangan").val(),
kod_hasil: $("#kod_hasil").val(),
amaun: $("#amaun").val(),
qty: $("#qty").val(),
};
$.post("{{ route('pt.jana-bil-automatik') }}", data, function(res){
if(res.success){
alert("Bil dijana: " + res.message);
location.reload();
} else {
alert("Gagal jana bil");
}
});
});
});
$(function () {
$.ajaxSetup({
headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }
});
let t = null;
$('#no_fail_lesen').on('input', function () {
const $el = $(this);
const permohonanId = $el.data('permohonan-id');
const noFailLesen = $el.val().trim();
clearTimeout(t);
t = setTimeout(function () {
$('#no_fail_status').text('Menyimpan...');
$.ajax({
url: `/lesen-penjaja/${permohonanId}/no-fail-lesen`,
method: 'POST',
dataType: 'json',
data: { no_fail_lesen: noFailLesen },
success: function (res) {
if (res.ok) {
$('#no_fail_status').text('Disimpan ✓');
} else {
$('#no_fail_status').text(res.message || 'Gagal simpan.');
}
},
error: function (xhr) {
let msg = 'Gagal simpan.';
if (xhr.status === 422 && xhr.responseJSON?.errors?.no_fail_lesen) {
msg = xhr.responseJSON.errors.no_fail_lesen[0];
} else if (xhr.responseJSON?.message) {
msg = xhr.responseJSON.message;
}
$('#no_fail_status').text(msg);
}
});
}, 400); // 0.4s debounce
});
});
</script>
@endif
@if(auth()->user()->hasRole(['pembantu tadbir', 'super'])&&($permohonan->status_progress == 'semakan bayaran proses'))
<script>
function loadKawasan() {
$.getJSON('/get_kawasan', function(data) {
$('#kawasan').append('<option value="">-- Sila Pilih Kawasan --</option>');
data.forEach(k => {
$('#kawasan').append(
$('<option>', {
value: k.id,
text: k.nama,
selected: k.id == defaultKawasanId
})
);
});
if (defaultKawasanId && defaultTamanId) {
loadTaman(defaultKawasanId, defaultTamanId);
}
});
}
function loadTaman(kawasanId, selectedId = null, done = null) {
$.getJSON('/get_taman', { kawasan_id: kawasanId }, function(data) {
$('#taman').empty().append('<option value="">-- Sila Pilih Taman --</option>');
data.forEach(t => {
$('#taman').append(
$('<option>', {
value: t.id,
text: t.nama,
selected: selectedId && (String(t.id) === String(selectedId))
})
);
});
$('#taman').prop('disabled', false);
// Kekalkan logic asal (default jalan) kalau kau still guna untuk edit page
if (selectedId && typeof defaultJalanId !== 'undefined' && defaultJalanId) {
loadJalan(selectedId, defaultJalanId);
}
if (typeof done === 'function') done();
});
}
function loadJalan(tamanId, selectedId = null, done = null) {
$.getJSON('/get_jalan', { taman_id: tamanId }, function(data) {
$('#jalan').empty().append('<option value="">-- Sila Pilih Jalan --</option>');
data.forEach(j => {
$('#jalan').append(
$('<option>', {
value: j.id,
text: j.nama,
selected: selectedId && (String(j.id) === String(selectedId))
})
);
});
$('#jalan').prop('disabled', false);
if (typeof done === 'function') done();
});
}
/* === EVENT LISTENER KAWASAN/TAMAN/JALAN === */
$("#kawasan").change(function() {
let kawasanId = $(this).val();
$('#taman').empty().append('<option value="">-- Sila Pilih Taman --</option>').prop('disabled', !kawasanId);
$('#jalan').empty().append('<option value="">-- Sila Pilih Jalan --</option>').prop('disabled', true);
if (kawasanId) loadTaman(kawasanId);
});
$("#taman").change(function() {
let tamanId = $(this).val();
let namaTaman = $(this).find("option:selected").text() || '';
let namaKawasan = $("#kawasan option:selected").text() || '';
$('#jalan').empty().append('<option value="">-- Sila Pilih Jalan --</option>').prop('disabled', !tamanId);
if (tamanId) {
loadJalan(tamanId);
// kalau ada penempatan, gabung bagi geocode lagi tepat
const q = namaTaman ? (namaTaman + "," + namaKawasan) : false;
if (q) {
$("#searchBox").val(q);
cariKoordinat();
}
}
});
$("#jalan").change(function() {
let textJalan = $(this).find("option:selected").text() || '';
let textTaman = $("#taman option:selected").text() || '';
if (textJalan) {
// susunan boleh ikut taste; ni aku letak jalan+taman+penempatan
const parts = [textJalan, textTaman].filter(Boolean);
$("#searchBox").val(parts.join(", "));
cariKoordinat();
}
});
</script>
@endif
@endsection