577 lines
33 KiB
PHP
577 lines
33 KiB
PHP
@extends('layouts.app')
|
|
|
|
@section('content')
|
|
<style>
|
|
.search-card {
|
|
overflow-x: auto;
|
|
border: 1px solid #dee2e6;
|
|
;
|
|
padding: 10px;
|
|
border-top: none;
|
|
}
|
|
|
|
.reset-button-style {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.select-norujukan-style {
|
|
color: #3490dc;
|
|
text-decoration: underline;
|
|
white-space: nowrap;
|
|
cursor: pointer;
|
|
}
|
|
</style>
|
|
<div class="container-fluid">
|
|
<div class="row ">
|
|
<div class="col mx-auto p-4">
|
|
<div class="card">
|
|
<div class="card-header header-style">
|
|
<div class="header-style-title">
|
|
Analisa Gadaian
|
|
</div>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="col">
|
|
<ul class="nav nav-tabs" id="myTab" role="tablist">
|
|
<li class="nav-item">
|
|
<a class="nav-link active" onclick="clearInput()" id="custom-tab" data-toggle="tab" href="#custom-search" role="tab" aria-controls="custom-search" aria-selected="false">
|
|
Carian Custom
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" onclick="clearInput()" id="nokp-tab" data-toggle="tab" href="#nokp-search" role="tab" aria-controls="nokp-search" aria-selected="false">
|
|
Carian No KP
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" onclick="clearInput()" id="norujukan-tab" data-toggle="tab" href="#norujukan-search" role="tab" aria-controls="norujukan-search" aria-selected="false">
|
|
Carian No Rujukan
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
|
|
<div class="form-group row" hidden>
|
|
<label class="col-4 col-form-label">Nama</label>
|
|
<div class="col">
|
|
<div class="input-group">
|
|
<input type="text" class="form-control" name="nama_pelanggan" id="nama_pelanggan">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<form id="form-id">
|
|
<div class="tab-content search-card" id="myTabContent">
|
|
<div class="tab-pane fade show active" id="custom-search" role="tabpanel" aria-labelledby="custom-tab">
|
|
<div>
|
|
<div class="form-group row">
|
|
<label class="col-4 col-form-label">JBG</label>
|
|
<div class="col-4">
|
|
<select class="custom-select" id="jbg">
|
|
<option selected value="5">5 & 5.5</option>
|
|
<option value="6">6 & 6.5</option>
|
|
<option value="7">7 & 7.5</option>
|
|
<option value="8">8 & 8.5</option>
|
|
<option value="9">9 & 9.5</option>
|
|
<option value="10">10 & 10.5</option>
|
|
<option value="11">11 & 11.5</option>
|
|
<option value="12">>=12</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="form-group row">
|
|
<label class="col-4 col-form-label">Pembiayaan</label>
|
|
<div class="col-4">
|
|
<select class="custom-select" id="pinjaman">
|
|
<option selected value="1000.00">
|
|
<= 1,000.00</option>
|
|
<option value="1000.01">1,000.01 - 2,000.00</option>
|
|
<option value="2000.01">2,000.01 - 3,000.00</option>
|
|
<option value="3000.01">3,000.01 - 4,000.00</option>
|
|
<option value="4000.01">4,000.01 - 5,000.00</option>
|
|
<option value="5000.01">5,000.01 - 6,000.00</option>
|
|
<option value="6000.01">6,000.01 - 7,000.00</option>
|
|
<option value="7000.01">7,000.01 - 8,000.00</option>
|
|
<option value="8000.01">8,000.01 - 9,000.00</option>
|
|
<option value="9000.01">9,000.01 - 10,000.00</option>
|
|
<option value="10000.01">>= 10,000.01</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="tab-pane fade" id="nokp-search" role="tabpanel" aria-labelledby="nokp-tab">
|
|
<div class="form-group row">
|
|
<label class="col-4 col-form-label">No KP</label>
|
|
<div class="col-4">
|
|
<div class="input-group">
|
|
<input type="text" class="form-control" name="no_kp_pelanggan" id="no_kp_pelanggan">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="tab-pane fade" id="norujukan-search" role="tabpanel" aria-labelledby="jananorujukan-tab">
|
|
<div class="form-group row">
|
|
<label class="col-4 col-form-label">No Rujukan</label>
|
|
<div class="col-4">
|
|
<div class="input-group">
|
|
<input type="text" class="form-control" name="no_rujukan" id="no_rujukan">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- <div class="form-group row">
|
|
<label class="col-4 col-form-label">Baki Lelong</label>
|
|
<div class="col col-form-label">
|
|
<div class="form-check form-check-inline">
|
|
<input class="form-check-input" type="radio" name="pilihan_baki_lelong" id="pilihan_baki_lelong" value="semua" checked>
|
|
<label class="form-check-label" for="exampleRadios1">
|
|
Semua
|
|
</label>
|
|
</div>
|
|
<div class="form-check form-check-inline">
|
|
<input class="form-check-input" type="radio" name="pilihan_baki_lelong" id="pilihan_baki_lelong" value="positif">
|
|
<label class="form-check-label" for="exampleRadios2">
|
|
Baki Lelong
|
|
</label>
|
|
</div>
|
|
<div class="form-check form-check-inline">
|
|
<input class="form-check-input" type="radio" name="pilihan_baki_lelong" id="pilihan_baki_lelong" value="negatif">
|
|
<label class="form-check-label" for="exampleRadios3">
|
|
Rugi Lelong
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div> -->
|
|
<div class="form-group row">
|
|
<label class="col-4 col-form-label">Baki Lelong</label>
|
|
<div class="col-4">
|
|
<select class="custom-select" id="pilihan_baki_lelong">
|
|
<option selected value="semua">Semua</option>
|
|
<option value="positif">Baki Sahaja</option>
|
|
<option value="negatif">Rugi Sahaja</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="d-flex justify-content-between">
|
|
<button class="btn btn-primary" type="submit" onclick="doForecast()">Cari</button>
|
|
<button type="button" class="btn btn-outline-success" data-toggle="modal" data-target="#hargaemaslelong">
|
|
Harga Emas Lelongan
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
<button class="btn mt-4 btn-outline-danger reset-button-style" onclick="resetForecast()">Padam Keputusan Carian <span class="material-symbols-rounded ml-1" style="font-size: 16px;">arrow_downward</span></button>
|
|
|
|
<div class="modal fade" id="perincianMaklumatModal" tabindex="-1" data-backdrop="static" data-keyboard="false" aria-labelledby="perincianMaklumatModalLabel" aria-hidden="true">
|
|
<div class="modal-dialog modal-xl modal-dialog-centered modal-dialog-scrollable">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="perincianMaklumatModalLabel">Perincian Maklumat</h5>
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="row">
|
|
<div class="col-lg-6 col-md-12">
|
|
<h5 class="mb-4">Maklumat Pelanggan</h5>
|
|
<div class="form-group row">
|
|
<label class="col-6 col-form-label">Nama</label>
|
|
<div class="col-6">
|
|
<div class="input-group">
|
|
<input type="text" id="textNama" readonly class="form-control bg-light">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="form-group row">
|
|
<label class="col-6 col-form-label">No KP</label>
|
|
<div class="col-6">
|
|
<div class="input-group">
|
|
<input type="text" id="textNokp" readonly class="form-control bg-light">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="form-group row">
|
|
<label class="col-6 col-form-label">Telefon</label>
|
|
<div class="col-6">
|
|
<div class="input-group">
|
|
<input type="text" id="textTelefon" readonly class="form-control bg-light">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="form-group row">
|
|
<label class="col-6 col-form-label">Alamat 1</label>
|
|
<div class="col-6">
|
|
<div class="input-group">
|
|
<input type="text" id="textAlamat1" readonly class="form-control bg-light">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-6 col-md-12">
|
|
<h5 class="mb-4">Maklumat Gadaian</h5>
|
|
<div class="form-group row">
|
|
<label class="col-6 col-form-label">No Rujukan</label>
|
|
<div class="col-6">
|
|
<div class="input-group">
|
|
<input type="text" id="textNorujukan" readonly class="form-control bg-light">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="form-group row">
|
|
<label class="col-6 col-form-label">Pembiayaan Asal</label>
|
|
<div class="col-6">
|
|
<div class="input-group">
|
|
<div class="input-group-prepend">
|
|
<div class="input-group-text">RM</div>
|
|
</div>
|
|
<input type="text" id="textPembiayaanAsal" readonly class="form-control bg-light">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="form-group row">
|
|
<label class="col-6 col-form-label">Baki Pembiayaan</label>
|
|
<div class="col-6">
|
|
<div class="input-group">
|
|
<div class="input-group-prepend">
|
|
<div class="input-group-text">RM</div>
|
|
</div>
|
|
<input type="text" id="textBakiPembiayaan" readonly class="form-control bg-light">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="form-group row">
|
|
<label class="col-6 col-form-label">Berat Keseluruhan</label>
|
|
<div class="col-6">
|
|
<div class="input-group">
|
|
<input type="text" id="textBerat" readonly class="form-control bg-light">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<table class="table text-center table-bordered table-sm" id="marhun-table">
|
|
<thead>
|
|
<tr class="table-info">
|
|
<th>Bil</th>
|
|
<th>Marhun</th>
|
|
<th>Karat</th>
|
|
<th>Berat</th>
|
|
<th>Harga Lelong</th>
|
|
</tr>
|
|
</thead>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Kembali</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="modal fade" id="hargaemaslelong" tabindex="-1" data-backdrop="static" data-keyboard="false" aria-labelledby="hargaEmasLelongModalLabel" aria-hidden="true">
|
|
<div class="modal-dialog modal-dialog-centered">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="hargaEmasLelongModalLabel">Harga Emas Lelongan</h5>
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="row">
|
|
<div class="col">
|
|
<div class="alert alert-primary">
|
|
Harga emas lelongan dalam analisa gadaian ini adalah berdasarkan data <strong style="text-decoration: underline;">terkini</strong> yang dikemaskini oleh operasi.
|
|
<!-- <span><br>Kemaskini pada: {{ $lel_karat_all[0]->updated_at }}</span> -->
|
|
</div>
|
|
<div class="form-group row">
|
|
<label class="col-5 col-form-label">Batch Lelong</label>
|
|
<div class="col">
|
|
<div class="input-group">
|
|
<input type="text" readonly class="form-control bg-light" value="{{$lelong->id}}">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="form-group row">
|
|
<label class="col-5 col-form-label">Tarikh Lelong</label>
|
|
<div class="col">
|
|
<div class="input-group">
|
|
<input type="text" readonly class="form-control bg-light" value="{{$lelong->tarikh_lelong}}">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="form-group row">
|
|
<label class="col-5 col-form-label">Caj Lelong</label>
|
|
<div class="col">
|
|
<div class="input-group">
|
|
<input type="text" readonly class="form-control bg-light" value="{{$lelong->cajlelong}}">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="form-group row">
|
|
<label class="col-5 col-form-label">Kemaskini</label>
|
|
<div class="col">
|
|
<div class="input-group">
|
|
<input type="text" readonly class="form-control bg-light" value="{{ $lel_karat_all[0]->updated_at }}">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- </div>
|
|
<div class="col-lg-6 col-md-12"> -->
|
|
<table class="table text-center table-bordered table-sm">
|
|
<thead class="bg-info">
|
|
<tr>
|
|
<th>Karat</th>
|
|
<th>Harga</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach($lel_karat_all as $lel_karat)
|
|
<tr>
|
|
<td>{{ $lel_karat->karat }}</td>
|
|
<td>RM{{ $lel_karat->harga2 }}</td>
|
|
</tr>
|
|
</tbody>
|
|
@endforeach
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Kembali</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="mt-4" style="overflow-x: auto;">
|
|
<table class="table text-center table-hover table-bordered" id="main-table">
|
|
<thead class="bg-primary text-center text-white">
|
|
<tr>
|
|
<th>Bil</th>
|
|
<th>Nama</th>
|
|
<th>No KP</th>
|
|
<th>No Rujukan</th>
|
|
<th>%</th>
|
|
<th>JBG</th>
|
|
<th>Baki Pembiayaan</th>
|
|
<th>Keuntungan Semasa</th>
|
|
<th>Caj Lelong</th>
|
|
<th>Harga Asas</th>
|
|
<th>Baki Lelong Semasa</th>
|
|
<th>Keuntungan 9 Bulan</th>
|
|
<th>Harga Emas 2nd</th>
|
|
</tr>
|
|
</thead>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
window.kodcaw = "<?php echo "$user->kodcaw" ?>";
|
|
var cajLelong = "<?php echo "$lelong->cajlelong" ?>";
|
|
var lelKarat = @json($lel_karat_all);
|
|
let homeUrl = "{{ route('home') }}";
|
|
|
|
const formatter = new Intl.NumberFormat('en-US', {
|
|
minimumFractionDigits: 2
|
|
});
|
|
|
|
var mainTable = $('#main-table').DataTable({
|
|
"pageLength": 10000
|
|
});
|
|
var marhunTable = $('#marhun-table').DataTable({
|
|
// "pageLength": 10000
|
|
paging: false,
|
|
ordering: false,
|
|
info: false,
|
|
searching: false,
|
|
});
|
|
|
|
// $(document).ready(function() {
|
|
// var table = $('#main-table').DataTable({
|
|
// ajax: 'data/arrays.txt',
|
|
// columnDefs: [{
|
|
// targets: -1,
|
|
// data: null,
|
|
// defaultContent: '<button>Click!</button>',
|
|
// }, ],
|
|
// });
|
|
|
|
$('#main-table tbody').on('click', '.click-norujukan', function() {
|
|
marhunTable.clear().draw();
|
|
var data = mainTable.row($(this).parents('tr')).data()[13];
|
|
$('#perincianMaklumatModal').modal('show');
|
|
$('#textNama').val(data.customer_detail.nama);
|
|
$('#textNokp').val(data.customer_detail.nokp);
|
|
$('#textTelefon').val(data.customer_detail.telefon);
|
|
$('#textAlamat1').val(data.customer_detail.alamat1);
|
|
$('#textNorujukan').val(data.norujukan);
|
|
$('#textPembiayaanAsal').val(data.pinjaman);
|
|
$('#textBakiPembiayaan').val(data.bakipjm);
|
|
$('#textBerat').val(data.berat);
|
|
console.log(data.gadai_marhun);
|
|
var marhunIteration = 1;
|
|
for (var e of data.gadai_marhun) {
|
|
console.log(marhunIteration);
|
|
marhunTable.row.add([
|
|
marhunIteration,
|
|
e.marhun,
|
|
e.karat,
|
|
e.berat,
|
|
formatter.format(e.harga_marhun_lelong),
|
|
]).draw();
|
|
console.log(marhunIteration);
|
|
marhunIteration = marhunIteration + 1;
|
|
console.log(marhunIteration);
|
|
|
|
};
|
|
});
|
|
// });
|
|
|
|
$("#form-id").submit(function(e) {
|
|
return false;
|
|
});
|
|
|
|
|
|
|
|
function clearInput() {
|
|
document.getElementById('jbg').value = '5';
|
|
document.getElementById('pinjaman').value = '1000.00';
|
|
document.getElementById('no_kp_pelanggan').value = '';
|
|
document.getElementById('no_rujukan').value = '';
|
|
document.getElementById('pilihan_baki_lelong').value = 'semua';
|
|
}
|
|
|
|
function resetForecast() {
|
|
$.confirm({
|
|
title: 'Padam Keputusan Carian',
|
|
content: 'Adakah anda pasti? <br>Tindakan ini tidak dapat dikembalikan.',
|
|
type: 'red',
|
|
buttons: {
|
|
Kembali: function() {},
|
|
Padam: {
|
|
btnClass: 'btn-red',
|
|
keys: ['enter'],
|
|
action: function() {
|
|
mainTable.clear().draw();
|
|
}
|
|
},
|
|
}
|
|
});
|
|
}
|
|
|
|
function doForecast() {
|
|
mainTable.clear().draw();
|
|
mainTable.search('').draw();
|
|
mainTable.draw().order([
|
|
[0, 'asc']
|
|
]);
|
|
|
|
var searchType = $("#myTabContent div.active").attr("id");
|
|
var namaPelanggan = document.getElementById('nama_pelanggan').value.trim();
|
|
var noKp = document.getElementById('no_kp_pelanggan').value.trim();
|
|
var noRujukan = document.getElementById('no_rujukan').value;
|
|
var jbg = $('#jbg').find(":selected").val();
|
|
var pinjaman = $('#pinjaman').find(":selected").val();
|
|
var pilihanBakiLelong = $('#pilihan_baki_lelong').find(":selected").val();
|
|
|
|
if (searchType == 'nokp-search' && noKp == "") {
|
|
$.alert({
|
|
title: '<span style="color:red">Carian Gagal.</span>',
|
|
type: 'red',
|
|
content: 'Sila isi no kad pengenalan.',
|
|
buttons: {
|
|
ok: {
|
|
keys: ['enter']
|
|
},
|
|
}
|
|
});
|
|
} else if (searchType == 'norujukan-search' && noRujukan == "") {
|
|
$.alert({
|
|
title: '<span style="color:red">Carian Gagal.</span>',
|
|
type: 'red',
|
|
content: 'Sila isi no rujukan.',
|
|
buttons: {
|
|
ok: {
|
|
keys: ['enter']
|
|
},
|
|
}
|
|
});
|
|
} else {
|
|
|
|
$.confirm({
|
|
content: function() {
|
|
var self = this;
|
|
return $.ajax({
|
|
url: '{{ route("report.searchforecastgadaian") }}',
|
|
method: 'GET',
|
|
data: {
|
|
"kodcaw": window.kodcaw,
|
|
"lel_karat": lelKarat,
|
|
"caj_lelong": cajLelong,
|
|
"search_type": searchType,
|
|
"nama": namaPelanggan,
|
|
"nokp": noKp,
|
|
"norujukan": noRujukan,
|
|
"jbg": jbg,
|
|
"pinjaman": pinjaman,
|
|
"pilihan_baki_lelong": pilihanBakiLelong,
|
|
},
|
|
}).done(function(response) {
|
|
if (response.success == true) {
|
|
console.log(response);
|
|
var loopIteration = 1;
|
|
for (var data of response.array_gadai) {
|
|
mainTable.row.add([
|
|
loopIteration,
|
|
data.customer_detail.nama,
|
|
data.nokp,
|
|
"<div class='select-norujukan-style click-norujukan'>" + data.norujukan + "</div>",
|
|
data.percentpinj,
|
|
data.tempoh,
|
|
formatter.format(data.bakipjm),
|
|
data.keuntungan_semasa,
|
|
formatter.format(data.caj_lelong),
|
|
formatter.format(data.harga_asas),
|
|
(data.baki_lelong > 0) ? "<strong style='color:green;'>" + formatter.format(data.baki_lelong) + "</strong>" : "<strong style='color:red;'>" + formatter.format(data.baki_lelong) + "</strong>",
|
|
formatter.format(data.keuntungan_9_bulan),
|
|
formatter.format(data.harga_sandaran),
|
|
data
|
|
]).draw();
|
|
loopIteration += 1;
|
|
}
|
|
self.setTitle('<span style="color:green;">Carian Berjaya.</span>');
|
|
self.setContent('Jumlah: ' + response.array_gadai.length);
|
|
} else {
|
|
mainTable.clear().draw();
|
|
self.setTitle('Carian Berjaya.');
|
|
self.setContent('Tiada data.');
|
|
self.setContentAppend('<br>Sila kemaskini carian anda.');
|
|
}
|
|
|
|
}).fail(function(response) {
|
|
if (response.status == 401) {
|
|
window.location.replace(homeUrl);
|
|
}
|
|
alert(response);
|
|
self.setTitle('<span style="color:red;">Carian Gagal.</span>');
|
|
self.setContent('Sila minimumkan data carian.');
|
|
});
|
|
},
|
|
buttons: {
|
|
ok: {
|
|
keys: ['enter']
|
|
},
|
|
}
|
|
});
|
|
}
|
|
}
|
|
</script>
|
|
|
|
@endsection |