Files
kaunter/resources/views/gadaian/v2/index.blade.php
T

2302 lines
112 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@extends('layouts.app')
@section('content')
@include('modal.editmarhun')
@php
if($customer_info['kpbaru'] != null){
$noic = $customer_info['kpbaru'];
}else{
$noic = $customer_info['kplama'];
}
$gadai_session = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/check/sag',['kodcaw'=>$cawangan_info['kodcaw'],'norujukan'=>$norujukan,'nokp'=>$noic])->json();
$outstanding_semasa = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/gadai/customers/'. $noic .'/outstandingsemasa/'.$cawangan_info['kodcaw'])->json();
@endphp
@if($gadai_session != null)
<div class="p-4">
<div class="row justify-content-center">
<div class="col-md-12 col-lg-12">
<nav aria-label="breadcrumb">
<ol class="breadcrumb pb-3">
<li class="breadcrumb-item"><a href="#">Home</a></li>
<li class="breadcrumb-item"><a href="#">Pelanggan</a></li>
<li class="breadcrumb-item active" aria-current="page">Pembiayaan</li>
</ol>
</nav>
<div class="form-group row col-12">
<input type="hidden" name="kodcaw" id="kodcaw" value="{{$cawangan_info['kodcaw']}}">
<input type="hidden" name="nokp" id="nokp" value="{{ $customer_info['kpbaru'] }}">
</div>
<div class="col-12 mb-2">
<div class="form-group row">
<div class="col-6 text-left">
<div class="form-group row">
<div class="col-md-4">
<b>No Rujukan</b>
</div>
<div class="col-md-8">
<input type="text" class="form-control" name="norujukan" id="norujukan" readonly value="{{ $norujukan }}">
</div>
</div>
</div>
<div class="col-6 text-left">
<div class="form-group row">
<div class="col-md-4">
<b>Baki Limit Pembiayaan</b>
</div>
<div class="col-md-8">
@php
$limit_pinjaman_semasa = 300000 - $outstanding_semasa;
@endphp
<input type="text" class="form-control" name="limit_pinjaman" id="limit_pinjaman" readonly value="{{ number_format($limit_pinjaman_semasa,2) }}">
</div>
</div>
</div>
<div class="col-12 text-right">
<button type="button" style="margin:auto" class="btn btn-primary" data-toggle="modal" data-target="#daftar_marhun">Daftar Marhun</button>
</div>
</div>
</div>
<div class="card">
<div class="card-body">
<!-- Toggle Button -->
<div class="mb-3">
<button type="button" class="btn btn-info" id="toggleTableBtn">
<i class="fas fa-exchange-alt"></i> Papar Margin
</button>
</div>
<!-- Main Marhun Table -->
<table class="table table-striped table-hover text-center" id="myTable">
<thead class="thead-dark">
<tr>
<th>Bil</th>
<th>Recno</th>
<th>Marhun</th>
<th>Nilai Marhun</th>
<th>Karat</th>
<th>Berat</th>
<th>Kuantiti</th>
<th>Nota</th>
<th>Harga</th>
<th>Batu Permata</th>
<th>Berat Permata</th>
<th>Tindakan</th>
</tr>
</thead>
<tfoot class="thead-dark">
<th colspan="3" class="text-center">Jumlah</th>
<th id="totalnilaimarhuntable"></th>
<th></th>
<th id="totalberattable"></th>
<th id="totalkuantititable"></th>
<th colspan="5"></th>
</tfoot>
</table>
<!-- Margin Summary Table (Hidden by default) -->
<table class="table table-striped table-hover text-center" id="marginTable" style="display: none;">
<thead class="thead-dark">
<tr>
<th>Bil</th>
<th>Karat</th>
<th>Nilai Marhun</th>
<th>Margin Teller (%)</th>
<th>Margin PC (%)</th>
<th>Pembiayaan Teller</th>
<th>Pembiayaan PC</th>
</tr>
</thead>
<tbody id="marginTableBody">
<!-- Data will be populated by JavaScript -->
</tbody>
<tfoot class="thead-dark">
<tr>
<th>Jumlah</th>
<th></th>
<th id="totalNilaiMarhunMargin"></th>
<th></th>
<th></th>
<th id="totalNilaiTellerMargin"></th>
<th id="totalNilaiPCMargin"></th>
</tr>
</tfoot>
</table>
</div>
</div>
<div class="card">
<div class="card-body">
<form name="gadaistore" action="{{ route('gadai.store') }}" method='post' onsubmit="return verifyGadai(this)">
<!-- <form action="{{ route('gadai.store') }}" method='post' name="gadaistore" id="gadaistore"> -->
@csrf
<div class="col-12 form-group row">
<div class="col-md-5">
<div class="form-group row">
<div class="col-5">
Pembiayaan Maks
</div>
<div class="col-7 input-group">
<input type="text" style="height:50px !important" class="form-control" readonly name="pembiayaan_max_teller" id="pembiayaan_max_teller">
<div class="input-group-append">
<span class="input-group-text span-pinjaman-max"></span>
</div>
</div>
</diV>
</div>
<div class="col-4">
<div class="form-group row">
<div class="col-md-6">
Pendapatan Sebulan
</div>
<div class="col-md-6">
<input type="text" class="form-control" readonly name="keuntungan_sebulan" id="keuntungan_sebulan">
</div>
</diV>
</div>
<div class="col-3">
<div class="form-group row">
<div class="col-md-6">
Lain-Lain Caj
</div>
<div class="col-md-6">
<input type="text" class="form-control" readonly name="ujrah" id="ujrah">
</div>
</div>
</div>
{{-- <div class="col-1">
<div class="form-group row">
</div>
</div> --}}
<div class="col-md-5">
<div class="form-group row">
<div class="col-5">
Pembiayaan
</div>
<div class="col-7 input-group">
<input type="text" class="form-control" onpaste="return false;" ondrop="return false;" onkeypress="return validateFloatKeyPress(this,event);" name="pinjaman" id="pinjaman">
<div class="input-group-append">
<span class="input-group-text span-pinjaman">0 %</span>
</div>
</div>
</diV>
</div>
<div class="col-4">
<div class="form-group row">
<div class="col-md-6">
Pendapatan 6 Bulan
</div>
<div class="col-md-6">
<input type="text" class="form-control" readonly name="keuntungan_6bln" id="keuntungan_6bln">
</div>
</diV>
</div>
<div class="col-3">
<div class="form-group row">
<div class="col-md-6">
Keuntungan
</div>
<div class="col-md-6">
<input type="text" class="form-control" readonly name="onepercent" id="onepercent">
</div>
</div>
</div>
<div class="col-5">
<div class="form-group row">
<div class="col-md-5">
Pembiayaan Maks Pelulus
</div>
<div class="col-md-7 input-group">
<input type="text" class="form-control" readonly name="pembiyaan_max_pelulus" id="pembiyaan_max_pelulus">
<div class="input-group-append">
<span class="input-group-text span-pinjaman-max-pelulus"></span>
</div>
</div>
</diV>
</div>
<div class="col-12" id="cara_terima_section" style="display:none;">
<hr>
<div class="form-group row">
<div class="col-md-3">
Cara Terima Pembiayaan
</div>
<div class="col-md-9">
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="cara_terima" id="cara_terima_tunai" value="TUNAI" checked>
<label class="form-check-label" for="cara_terima_tunai">Tunai</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="cara_terima" id="cara_terima_online" value="ONLINE">
<label class="form-check-label" for="cara_terima_online">Online (Akaun Bank)</label>
</div>
<small class="form-text text-muted">Pilihan Online untuk pembiayaan RM5,000 RM50,000 sahaja.</small>
</div>
</div>
<div id="bank_online_section" style="display:none;">
<div class="form-group row">
<div class="col-md-3">Modal Online</div>
<div class="col-md-9">
<div id="modal_online_status" class="mb-1">Memeriksa baki...</div>
</div>
</div>
<div class="form-group row">
<div class="col-md-3">Bank</div>
<div class="col-md-4">
@php
$banks_list = Http::withOptions(['verify' => config('app.api_verify')])
->get($api_url . '/api/bank')
->json();
@endphp
<select class="form-control" name="kodbank" id="gadai_kodbank">
<option value="">-- Pilih Bank --</option>
@foreach ($banks_list as $banks)
<option value="{{ $banks['abbreviation'] }}"
{{ ($customer_info['kodbank'] ?? '') == $banks['abbreviation'] ? 'selected' : '' }}
data-nama="{{ $banks['name'] }}">
{{ $banks['name'] }}
</option>
@endforeach
</select>
</div>
<div class="col-md-2">No. Akaun</div>
<div class="col-md-3">
<input type="text" class="form-control" name="noakaun" id="gadai_noakaun"
value="{{ $customer_info['noakaun'] ?? '' }}">
</div>
</div>
<div class="form-group row">
<div class="col-md-3">Nama Akaun</div>
<div class="col-md-9">
<input type="text" class="form-control" name="nama_akaun" id="gadai_nama_akaun"
value="{{ $customer_info['nama'] ?? '' }}">
<input type="hidden" name="nama_bank" id="gadai_nama_bank" value="">
<input type="hidden" name="nama_pelanggan" value="{{ $customer_info['nama'] ?? '' }}">
<input type="hidden" name="nopelanggan" id="nopelanggan" value="{{ $customer_info['nopelanggan'] ?? '' }}">
</div>
</div>
</div>
</div>
<div class="col-12">
<input type="text" name="norujukan_gadai" id="norujukan_gadai" value="{{ $norujukan }}" hidden>
<input type="text" name="marhun_detail" id="marhun_detail" value="" hidden>
<input type="text" name="total_berat" id="total_berat" value="" hidden>
<input type="text" name="kadarkeuntungan" id="kadarkeuntungan" value="" hidden>
<input type="text" name="kuantiti_marhun" id="kuantiti_marhun" value="" hidden>
<input type="text" name="total_nilai_marhun" id="total_nilai_marhun" value="" hidden>
<input type="text" name="nokp" id="nokp" value="{{ !empty($customer_info['kpbaru']) ? $customer_info['kpbaru'] : ($customer_info['kplama'] ?? '') }}" hidden>
<a href="{{ route('gadai.batal',['norujukan'=>$norujukan]) }}" class="float-right btn btn-danger mr-2">Batal</a>
<input type="submit" name="terima_gadai" id="terima_gadai" class="float-right btn btn-primary mr-2" value="Terima">
</div>
</div>
</form>
</div>
</div>
<!-- modal daftar marhun-->
<div class="modal fade" id="daftar_marhun" tabindex="-1" data-backdrop="static" aria-labelledby="ModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="ModalLabel">Daftar Marhun</h5>
</div>
<div class="modal-body">
<form action="" id="maklumat_marhun" method="post">
<div class="row justify-content-center">
<div class="col-md-6">
<div class="form-group row">
<input type="hidden" name="kodcaw" id="kodcaw" value="">
<div class="col-md-4">No Rujukan</div>
<div class="col-md-8"><input class="form-control" type="text" name="norujukan_marhun" id="norujukan_marhun" value="{{ $norujukan }}"></div>
<div class="col-md-4">Marhun</div>
<div class="col-md-8">
<select class="form-control" name="marhun" id="marhun">
<option disabled selected value> -- Pilih Jenis Marhun -- </option>
</select>
</div>
<div class="col-md-12">
<div class="form-group">
<label>Nota</label>
<select name="nota" id="nota" class="select2 form-control" multiple="multiple" data-placeholder="Nota Tambahan" style="width: 100%;">
<option value="Rosak">Rosak</option>
<option value="Putus">Putus</option>
<option value="Patah">Patah</option>
<option value="Sebelah">Sebelah</option>
</select>
</div>
</div>
<div class="col-md-4">Kuantiti</div>
<div class="col-md-8">
<input class="form-control" name="kuantiti" id="kuantiti" type="text" pattern="\d*" maxlength="2" disabled>
</div>
<div class="col-md-4">Karat</div>
<div class="col-md-8">
<select class="form-control" name="karat" id="karat">
<option disabled selected value> -- Pilih Karat -- </option>
</select>
</div>
<div class="col-md-4">Berat Bersih</div>
<div class="col-md-8"><input class="form-control" type="text" name="berat_emas" id="berat_emas"></div>
<div class="col-md-4">Harga</div>
<div class="col-md-8"><input class="form-control" type="text" name="harga" id="harga" readonly></div>
<div class="col-md-4">Nilai Marhun</div>
<div class="col-md-8"><input class="form-control" type="text" name="nilai_marhun" id="nilai_marhun" readonly></div>
<div class="col-md-4">Bilangan Marhun</div>
<div class="col-md-8"><input class="form-control" type="text" name="bilangan_marhun" id="bilangan_marhun" readonly></div>
<div class="col-md-4">Jumlah Kuantiti</div>
<div class="col-md-8"><input class="form-control" type="text" name="bilangan_jumlah_kuantiti" id="bilangan_jumlah_kuantiti" readonly></div>
<div class="col-md-4">Jumlah Nilai Marhun</div>
<div class="col-md-8"><input class="form-control" type="text" name="jumlah_nilai_marhun" id="jumlah_nilai_marhun" readonly></div>
</div>
</div>
<div class="col-md-6" id="col_right" style="display: none">
<div class="form-group row">
<div class="col-md-12">
<div class="form-group">
<div class="d-flex justify-content-between">
<span>Ada Batu Permata?</span>
<div>
<label for="tagpermata">Ya</label>
<input type="checkbox" id="tagpermata" name="tagpermata">
</div>
</div>
</div>
</div>
<div class="d-flex" id="divanggaran" style="visibility: hidden">
<div class="col-8">Anggaran Berat Permata</div>
<div class="col-4"><input class="form-control" type="text" name="beratpermata" id="beratpermata" autocomplete="off"></div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<div class="form-group row">
<input class="btn btn-primary mr-2" type="button" name="tambah_marhun" id="tambah_marhun" value="Tambah">
<input class="btn btn-primary mr-2" type="button" name="terima_marhun" id="terima_marhun" value="Terima">
<button type="button" class="btn btn-danger" name="batal_marhun" id="batal_marhun">Batal</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
@else
@php
header("Refresh:0");
@endphp
@endif
<script src="{{ asset('js/rounded-methods.js') }}"></script>
<script>
var api_url = "{{ api_url_for_browser() }}";
var kodcaw_ujrah = "<?php echo $cawangan_info['kodcaw'] ?>";
$('form input').keydown(function (e) {
if (e.keyCode == 13) {
e.preventDefault();
return false;
}
});
function disableF5(e) { if ((e.which || e.keyCode) == 116) e.preventDefault(); };
$(document).ready( function () {
$(document).on("keydown", disableF5);
var norujukan = $('#norujukan').val();
getMarhun(norujukan);
$.ajax({
method:'GET',
url: api_url + '/api/jemas',
success:function(data){
$.each(data,function(index,jemas){
$("#marhun").append(new Option(jemas['descpt'], jemas['marhun']));
})
}
});
$.ajax({
method:'GET',
url: api_url + '/api/harga_emas',
success:function(data){
$.each(data,function(index,harga_emas){
var text = harga_emas['karat']+' - '+harga_emas['keterangan'];
$("#karat").append(new Option(text, harga_emas['karat']));
})
}
});
});
function getMarhun(norujukan){
$.ajax({
method:'GET',
url: api_url + '/api/marhun/'+norujukan,
success:function(data){
marhuntable(data);
}
});
}
let arrayBatuPermata = [
'DNR',
'SYE',
'WFR',
'G/B',
];
$('#marhun').change(function(){
var marhun = this.value;
if (!arrayBatuPermata.includes(marhun)) {
$("#col_right").css("display", "block");
} else {
$("#col_right").css("display", "none");
$('#tagpermata').prop('checked', false);
$("#divanggaran").css("visibility", "hidden");
$('#beratpermata').val("");
}
var marh = $(this).find(':selected').val();
$('#kuantiti').val('');
$('#karat').val('');
if(marh == 'G/B' || marh == 'WFR' || marh == 'SYE' || marh == 'DNR'){
if(marh == 'DNR' || marh == 'SYE'){
$('#karat option').show();
$('#karat option').not('[value="21.0K"]').not('[value="22.0K"]').not('[value="23.0K"]').not('[value="24.0K"]').not('[value="24.0Kgb"]').not(':first').hide();
}else{
$('#karat option').show();
$('#karat option').not('[value="21.0K"]').not('[value="22.0K"]').not('[value="23.0K"]').not('[value="24.0K"]').not('[value="24.0Kgb"]').not(':first').hide();
}
$('#text-berat').html('Berat Keseluruhan');
$('#kuantiti').attr('disabled', false);
}else{
$('#karat option').show();
$('#text-berat').html('Berat');
$('#kuantiti').attr('disabled', true);
}
});
$('#tagpermata').change(function () {
if($('#tagpermata').is(':checked')) {
$("#divanggaran").css("visibility", "visible");
} else {
$("#divanggaran").css("visibility", "hidden");
$('#beratpermata').val("");
}
});
$('#tagpermataedit').change(function () {
if($('#tagpermataedit').is(':checked')) {
$(".div_anggaran_edit").css("display", "block");
} else {
$(".div_anggaran_edit").css("display", "none");
$('#beratpermataedit').val("");
}
});
$('#marhun_edit').change(function(){
var marhun = this.value;
if (!arrayBatuPermata.includes(marhun)) {
$(".col_edit_permata").css("display", "block");
} else {
$(".col_edit_permata").css("display", "none");
$('#tagpermataedit').prop('checked', false);
$(".div_anggaran_edit").css("display", "none");
$('#beratpermataedit').val("");
}
if(marhun == 'G/B' || marhun == 'WFR' || marhun == 'SYE' || marhun == 'DNR'){
if(marhun == 'DNR' || marhun == 'SYE'){
$('#sltkarat option').show();
$('#sltkarat option').not('[value="21.0K"]').not('[value="22.0K"]').not('[value="23.0K"]').not('[value="24.0K"]').not('[value="24.0Kgb"]').not(':first').hide();
}else{
$('#sltkarat option').show();
$('#sltkarat option').not('[value="21.0K"]').not('[value="22.0K"]').not('[value="23.0K"]').not('[value="24.0K"]').not('[value="24.0Kgb"]').not(':first').hide();
}
$('#text-berat').html('Berat Keseluruhan');
$('#kuantiti_edit').attr('disabled', false);
}else{
$('#kuantiti_edit').val(1);
$('#sltkarat option').show();
$('#text-berat').html('Berat');
$('#kuantiti_edit').attr('disabled', true);
}
});
$('#karat').change(function(){
var karat = this.value;
karat = karat.replace(/\./g,'-');
var berat = $('#berat_emas').val();
getHargaEmas(karat,berat)
});
$('#berat_emas').on('input',function(){
var berat = this.value;
var karat = $('#karat').val();
karat = karat.replace(/\./g,'-');
getHargaEmas(karat,berat);
})
$('#batal_marhun').click(function(){
$('#nota').val('').trigger("change");
$('#tagpermata').prop("checked", false);
$("#col_right").css("display", "none");
$("#divanggaran").css("visibility", "hidden");
$('#beratpermata').val("");
$('#marhun').val(0);
$('#karat').val(0);
$('#berat_emas').val("");
$('#harga').val("");
$('#nilai_marhun').val("");
$('#daftar_marhun').modal('hide');
})
function getHargaEmas(karat,berat){
$.ajax({
method:'GET',
url: api_url + '/api/harga_emas/'+karat,
success:function(data){
var nilai_marhun = data['harga'] * berat;
$('#harga').val(data['harga']);
$('#nilai_marhun').val(formatter.format(nilai_marhun));
}
})
}
var tablemarhun = $('#myTable').DataTable({
"ordering": false,
"columnDefs": [{
"targets": [1],
"visible": false,
"searchable": false
},
{
"targets": [7],
"visible": true,
"searchable": false
}
],
"language": {
"lengthMenu": "Papar _MENU_ rekod setiap halaman",
"zeroRecords": "Tiada rekod dijumpai",
"info": "Memapar halaman _PAGE_ dari _PAGES_",
"infoEmpty": "Tiada rekod tersedia",
"infoFiltered": "(ditapis dari _MAX_ jumlah rekod)",
"search": "Cari:",
"paginate": {
"first": "Pertama",
"last": "Akhir",
"next": "Seterusnya",
"previous": "Sebelumnya"
}
},
});
$(".select2").select2({
dropdownParent: $('#daftar_marhun'),
tags: true,
tokenSeparators: [',', ' '],
allowClear: true,
closeOnSelect: false
});
$(".select2_daftar_batu_permata").select2({
dropdownParent: $('#daftar_marhun'),
tags: true,
tokenSeparators: [',', ' '],
allowClear: true,
closeOnSelect: false
});
$(".select2_nota").select2({
dropdownParent: $('#editMarhunModal'),
tags: true,
tokenSeparators: [',', ' '],
allowClear: true,
closeOnSelect: false
});
$('#nota_edit').select2({
tags: true,
placeholder: "Select or add options",
width: 'resolve'
});
$(".select2_batupermata").select2({
dropdownParent: $('#editMarhunModal'),
tags: true,
tokenSeparators: [',', ' '],
allowClear: true,
closeOnSelect: false
});
var total_nilai_marhun = 0;
var total_berat = 0;
var total_kuantiti = 0;
var kadarupah = 0;
var jumlah_marhun = 0;
var jumlah_nilai_marhun = 0;
var pinjaman_pelulus = 0;
var pinjaman_teller = 0;
function marhuntable(data) {
var counter = 1;
total_nilai_marhun = 0;
total_berat = 0;
total_kuantiti = 0;
var marhun_details = '';
var array_mutu = [];
jumlah_nilai_marhun = 0;
tablemarhun.clear().draw();
$.each(data, function(index, marhun) {
$.each(marhun, function(index, marhun_detail) {
total_nilai_marhun = total_nilai_marhun + Number(marhun_detail['n_marhun']);
total_berat = total_berat + Number(marhun_detail['berat']);
marhun_details = marhun_details + marhun_detail['bil'] + " " + marhun_detail['marhun'] + ",";
jumlah_nilai_marhun += Number(marhun_detail['n_marhun']);
status_tag_permata = marhun_detail['tag_permata'] == 1 ? 'Ada' : '';
total_kuantiti += Number(marhun_detail['bil']);
array_mutu.push([marhun_detail['karat'], marhun_detail['n_marhun']]);
tablemarhun.row.add([
counter,
marhun_detail['recno'],
marhun_detail['marhun'],
formatter.format(marhun_detail['n_marhun']),
marhun_detail['karat'],
formatter.format(marhun_detail['berat']),
marhun_detail['bil'],
marhun_detail['nota'],
marhun_detail['harga'],
status_tag_permata,
marhun_detail['berat_batu_permata'],
"<div class='buttonpunya text-center'><button onclick='editmarhun(this)' class='btn btn-primary'><i class='fas fa-edit'></i></button> <button onclick='deletemarhun(this)' class='btn btn-danger'><i class='fas fa-trash-alt'></i></button></div>"
]).draw();
counter = counter + 1;
});
});
$('#totalberattable').text(formatter.format(total_berat));
$('#totalkuantititable').text(total_kuantiti);
$('#totalnilaimarhuntable').text(formatter.format(jumlah_nilai_marhun));
$('#bilangan_marhun').val(formatter.format(counter - 1));
$('#bilangan_jumlah_kuantiti').val(formatter.format(total_kuantiti));
$('#jumlah_nilai_marhun').val(formatter.format(jumlah_nilai_marhun));
$.ajax({
method:'GET',
url: api_url + '/api/kadarujrah',
async:false,
data:{
'nokp': $('#nokp').val(),
'nilaimarhun' : total_nilai_marhun,
'kodcaw' : kodcaw_ujrah
},
success:function(data){
kadarupah = data;
}
});
$('#total_nilai_marhun').val(formatter.format(total_nilai_marhun));
$('#marhun_detail').val(marhun_details);
$('#total_berat').val(formatter.format(total_berat));
$('#kadarkeuntungan').val(formatter.format(kadarupah));
$('#kuantiti_marhun').val(formatter.format(jumlah_marhun));
var max_teller = 0;
var max_pelulus = 0;
$.ajax({
method: 'GET',
url: api_url + '/api/maxpinjaman',
data: {
'mutu': array_mutu,
'total_nilai_marhun': total_nilai_marhun,
},
success: function(data) {
$.each(data, function(index, pinjaman) {
if (pinjaman['user_type'] == 'teller') {
pinjaman_teller = Number(pinjaman['max']);
max_teller = pinjaman['teller_pinjaman'];
}
if (pinjaman['user_type'] == 'khazanah') {
pinjaman_pelulus = Number(pinjaman['max']);
max_pelulus = pinjaman['pc_pinjaman'];
}
});
$('.span-pinjaman-max-pelulus').text(formatter.format(pinjaman_pelulus) + ' %');
$('.span-pinjaman-max').text(formatter.format(pinjaman_teller) + ' %');
$('#pembiayaan_max_teller').val(formatter.format(max_teller));
$('#pembiyaan_max_pelulus').val(formatter.format(max_pelulus));
}
});
}
$('#pinjaman').on('input',function(){
var pinjaman = Number(this.value);
var nilaimarhun = Number($('#jumlah_nilai_marhun').val());
var nokp = $('#nokp').val();
//console.log('DEBUG NOKP:', nokp, kadarupah);
toggleCaraTerima(pinjaman);
// var keuntungan_sebulan = pinjaman * kadarupah;
// var keuntungan_6bln = keuntungan_sebulan * 6;
percent_pinjaman = (Number(pinjaman)/Number(total_nilai_marhun))*100;
let array_keuntungan = [];
$.ajax({
method:'POST',
url: api_url + '/api/onepercent',
async:false,
data:{
'nokp': nokp,
'nilaimarhun' : total_nilai_marhun,
'pembiayaan' : pinjaman,
'kadarujrah' : kadarupah,
'margin' : percent_pinjaman,
'kodcaw' : "{{ Auth::user()->cawangan }}"
},
success:function(data){
array_keuntungan = data;
}
});
var keuntungan_sebulan = getRoundedMethod(array_keuntungan['keuntungan']);
var keuntungan_6bln = getRoundedMethod(keuntungan_sebulan * 6);
$('.span-pinjaman').text(formatter.format(percent_pinjaman.toFixed(2)) + ' %');
$('#keuntungan_sebulan').val(formatter.format(keuntungan_sebulan.toFixed(2)));
$('#keuntungan_6bln').val(formatter.format(keuntungan_6bln.toFixed(2)));
$('#ujrah').val(formatter.format(getRoundedMethod(array_keuntungan['ujrah']).toFixed(2)));
$('#onepercent').val(formatter.format(getRoundedMethod(array_keuntungan['onepercent']).toFixed(2)));
});
const formatter = new Intl.NumberFormat('en-US', {
minimumFractionDigits: 2
});
$('#terima_marhun').click(function(){
$("#tambah_marhun").prop('disabled', true);
$("#terima_marhun").prop('disabled', true);
var kodcaw = $('#kodcaw').val();
var norujukan = $('#norujukan').val();
var marhun = $('#marhun').val();
var karat = $('#karat').val();
var berat_emas = $('#berat_emas').val();
var harga = $('#harga').val();
var nilaimarhun = $('#nilai_marhun').val();
var bilangan_marhun_daftar = Number($('#bilangan_marhun').val());
var nilai_marhun = Number(nilaimarhun.replace(/[^0-9.-]+/g,""));
var nota_array = $('#nota').val();
var berat_permata = $('#beratpermata').val();
var tag_permata = $('input[id=tagpermata]').is(':checked') ? 1 : 0;
var kuantiti = $('#kuantiti').val();
if(kuantiti > 10)
{
$("#tambah_marhun").prop('disabled', false);
$("#terima_marhun").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Kuantiti tidak boleh melebihi 10'
});
event.preventDefault();
return false;
}
if(nota_array != null){
var nota = nota_array.toString();
}else{
var nota = '';
}
if(marhun == null && karat == null && berat_emas == ''){
$("#tambah_marhun").prop('disabled', false);
$("#terima_marhun").prop('disabled', false);
$('#daftar_marhun').modal('hide');
}
else{
if(marhun == null){
$("#tambah_marhun").prop('disabled', false);
$("#terima_marhun").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Sila Pilih Marhun'
});
event.preventDefault();
return false;
}else{
if(karat == null){
$("#tambah_marhun").prop('disabled', false);
$("#terima_marhun").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Sila Pilih Karat'
});
event.preventDefault();
return false;
}else{
if($.isNumeric(berat_emas) == false){
$("#tambah_marhun").prop('disabled', false);
$("#terima_marhun").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Sila Masukkan Berat Marhun'
});
event.preventDefault();
return false;
}else{
var resultValidation = validateBatuPermata(tag_permata, berat_permata);
if(resultValidation == false) {
return false;
}
if(bilangan_marhun_daftar<10){
//new added 190624 filter if gadaian already exist pinjaman not null
$.ajax({
method:'get',
url: api_url + '/api/gadai/norujukan/' + kodcaw + '/' + norujukan,
success:function(data)
{
var checking = Object.keys(data[0]).length;
if (data[0]['pinjaman'] > 0) {
$("#tambah_marhun").prop('disabled', false);
$("#terima_marhun").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Tidak Berjaya',
text: 'Maklumat Pembiayaan Telah Wujud. Sila Tekan Batal.'
});
event.preventDefault();
return false;
} else {
$.ajax({
method:'POST',
url: api_url + '/api/marhun/'+kodcaw,
dataType:'json',
data: {
'norujukan': norujukan,
'marhun' : marhun,
'nota':nota,
'tag_permata':tag_permata,
'berat_batu_permata':berat_permata,
'karat' : karat,
'berat_emas' :berat_emas,
'harga' : harga,
'nilai_marhun' : nilai_marhun,
'teller' : "{{ Auth::user()->name }}",
'kuantiti' : (kuantiti) ? kuantiti : 1
},
success:function(data){
$("#tambah_marhun").prop('disabled', false);
$("#terima_marhun").prop('disabled', false);
$('#nota').val('').trigger("change");
$('#beratpermata').val("");
$('#marhun').val(0);
$('#karat').val(0);
$('#berat_emas').val("");
$('#harga').val("");
$('#nilai_marhun').val("");
$('#daftar_marhun').modal('hide');
$("#col_right").css("display", "none");
$('#tagpermata').prop('checked', false);
$('#beratpermata').val("");
$("#divanggaran").css("visibility", "hidden");
$('#kuantiti').val("");
$('#kuantiti').attr('disabled', true);
jumlah_marhun += 1;
jumlah_nilai_marhun += Number(nilai_marhun);
$('#bilangan_marhun').val(formatter.format(jumlah_marhun));
$('#jumlah_nilai_marhun').val(formatter.format(jumlah_nilai_marhun));
getMarhun(norujukan);
},
error: function(xhRequest, ErrorText, thrownError){
$("#tambah_marhun").prop('disabled', false);
$("#terima_marhun").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Tambah Marhun Tidak Berjaya'
});
console.log(xhRequest);
}
});
}
}
});
//end new added 190624
}else{
$("#tambah_marhun").prop('disabled', false);
$("#terima_marhun").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Hanya 10 Marhun dibenarkan dalam 1 SAG'
});
$('#daftar_marhun').modal('hide');
}
}
}
}
}
});
$('#tambah_marhun').click(function(){
$("#tambah_marhun").prop('disabled', true);
$("#terima_marhun").prop('disabled', true);
var kodcaw = $('#kodcaw').val();
var norujukan = $('#norujukan').val();
var marhun = $('#marhun').val();
var karat = $('#karat').val();
var berat_emas = $('#berat_emas').val();
var harga = $('#harga').val();
var nilaimarhun = $('#nilai_marhun').val();
var bilangan_marhun_daftar = Number($('#bilangan_marhun').val());
var nilai_marhun = Number(nilaimarhun.replace(/[^0-9.-]+/g,""));
var nota_array = $('#nota').val();
var batu_permata_array = $('#batupermata').val();
var tag_permata = $('input[id=tagpermata]').is(':checked') ? 1 : 0;
var beratpermata = $('#beratpermata').val();
var kuantiti = $('#kuantiti').val();
if(kuantiti > 10)
{
$("#tambah_marhun").prop('disabled', false);
$("#terima_marhun").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Kuantiti tidak boleh melebihi 10'
});
event.preventDefault();
return false;
}
if(nota_array != null){
var nota = nota_array.toString();
}else{
var nota = '';
}
if(marhun == null){
$("#tambah_marhun").prop('disabled', false);
$("#terima_marhun").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Sila Pilih Marhun'
});
event.preventDefault();
return false;
}else{
if(karat == null){
$("#tambah_marhun").prop('disabled', false);
$("#terima_marhun").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Sila Pilih Karat'
});
event.preventDefault();
return false;
}else{
if($.isNumeric(berat_emas) == false){
$("#tambah_marhun").prop('disabled', false);
$("#terima_marhun").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Sila Masukkan Berat Marhun'
});
event.preventDefault();
return false;
}else{
var resultValidation = validateBatuPermata(tag_permata, beratpermata);
if(resultValidation == false) {
return false;
}
if(bilangan_marhun_daftar < 10){
//new added 190624 filter if gadaian already registered pinjaman > 0
$.ajax({
method:'get',
url: api_url + '/api/gadai/norujukan/' + kodcaw + '/' + norujukan,
success:function(data)
{
var checking = Object.keys(data[0]).length;
if (data[0]['pinjaman'] > 0) {
$("#tambah_marhun").prop('disabled', false);
$("#terima_marhun").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Tidak Berjaya',
text: 'Maklumat Pembiayaan Telah Wujud. Sila Tekan Batal.'
});
event.preventDefault();
return false;
} else {
$.ajax({
method:'POST',
url: api_url + '/api/marhun/'+kodcaw,
dataType:'json',
data: {
'norujukan': norujukan,
'marhun' : marhun,
'nota':nota,
'tag_permata':tag_permata,
'berat_batu_permata':beratpermata,
'karat' : karat,
'berat_emas' :berat_emas,
'harga' : harga,
'nilai_marhun' : nilai_marhun,
'teller' : "{{ Auth::user()->name }}",
'kuantiti' : (kuantiti) ? kuantiti : 1
},
success:function(data){
$("#tambah_marhun").prop('disabled', false);
$("#terima_marhun").prop('disabled', false);
$('#nota').val('').trigger("change");
$('#batupermata').val('').trigger("change");
$('#beratpermata').val("");
$('#marhun').val(0);
$('#karat').val(0);
$('#berat_emas').val("");
$('#harga').val("");
$('#nilai_marhun').val("");
$('#kuantiti').val("");
$('#kuantiti').attr('disabled', true);
$("#col_right").css("display", "none");
$('#tagpermata').prop('checked', false);
$('#beratpermata').val("");
$("#divanggaran").css("visibility", "hidden");
jumlah_marhun += 1;
jumlah_nilai_marhun += Number(nilai_marhun);
$('#bilangan_marhun').val(formatter.format(jumlah_marhun));
$('#jumlah_nilai_marhun').val(formatter.format(jumlah_nilai_marhun));
getMarhun(norujukan);
},
error: function(xhRequest, ErrorText, thrownError){
$("#tambah_marhun").prop('disabled', false);
$("#terima_marhun").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Tambah Marhun Tidak Berjaya'
});
console.log(xhRequest);
}
});
}
}
});
//end new added 190624
}else{
$("#tambah_marhun").prop('disabled', false);
$("#terima_marhun").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Hanya 10 Marhun dibenarkan dalam 1 SAG'
});
}
}
}
}
});
function validateBatuPermata(tag, berat) {
function countDecimalPlaces(value) {
const match = value.match(/(?:\.(\d+))?$/);
if (!match || !match[1]) {
return 0;
}
return match[1].length;
}
function validateInput(inputValue) {
const decimalPlaces = countDecimalPlaces(inputValue);
return decimalPlaces <= 2;
}
if(tag == 1) {
if(berat == '') {
$("#tambah_marhun").prop('disabled', false);
$("#terima_marhun").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Sila Isi Anggaran Berat Permata'
});
event.preventDefault();
return false;
} else if($.isNumeric(berat) == false) {
$("#tambah_marhun").prop('disabled', false);
$("#terima_marhun").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Sila Semak Semula Berat Permata'
});
event.preventDefault();
return false;
} else if(berat <= 0) {
$("#tambah_marhun").prop('disabled', false);
$("#terima_marhun").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Nilai berat permata mesti lebih besar daripada ' + berat,
});
event.preventDefault();
return false;
} else if(!validateInput(berat)) {
$("#tambah_marhun").prop('disabled', false);
$("#terima_marhun").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Hanya 2 titik perpuluhan dibenarkan untuk berat batu permata'
});
event.preventDefault();
return false;
} else {
return true;
}
} else if(berat != '') {
if($.isNumeric(berat) == false) {
$("#tambah_marhun").prop('disabled', false);
$("#terima_marhun").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Sila Semak Semula Berat Permata'
});
event.preventDefault();
return false;
}
if(berat <= 0) {
$("#tambah_marhun").prop('disabled', false);
$("#terima_marhun").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Nilai berat permata mesti lebih besar daripada ' + berat,
});
event.preventDefault();
return false;
}
if(!validateInput(berat)) {
$("#tambah_marhun").prop('disabled', false);
$("#terima_marhun").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Hanya 2 titik perpuluhan dibenarkan untuk berat batu permata'
});
event.preventDefault();
return false;
}
} else {
return true;
}
}
function getDataCawangan(){
let header = {
'pragma': 'no-cache',
'cache-control': 'no-store',
};
let kodcaw = $('#kodcaw').val();
let teller = "{{ Auth::user()->name }}";
let apiUrl = api_url + '/api/GetCurrentTunai/' + kodcaw + '?kodlaluan=' + teller;
return fetch(apiUrl, {
header: header,
})
.then(response => response.json());
}
function toggleCaraTerima(pinjaman) {
if (pinjaman >= 5000 && pinjaman <= 50000) {
$('#cara_terima_section').show();
toggleBankOnlineSection();
} else {
$('#cara_terima_section').hide();
$('#bank_online_section').hide();
$('#cara_terima_tunai').prop('checked', true);
}
}
function toggleBankOnlineSection() {
if ($('input[name="cara_terima"]:checked').val() === 'ONLINE') {
$('#bank_online_section').show();
var nama = $('#gadai_kodbank option:selected').data('nama') || '';
$('#gadai_nama_bank').val(nama);
refreshModalOnlineStatus();
} else {
$('#bank_online_section').hide();
}
}
$(document).on('change', 'input[name="cara_terima"]', function () {
toggleBankOnlineSection();
});
$(document).on('change', '#gadai_kodbank', function () {
$('#gadai_nama_bank').val($('#gadai_kodbank option:selected').data('nama') || '');
});
async function getModalOnline() {
let kodcaw = $('#kodcaw').val();
let apiUrl = api_url + '/api/modal-online/' + kodcaw;
return $.ajax({
method: 'GET',
url: apiUrl,
dataType: 'json',
});
}
async function refreshModalOnlineStatus() {
var $el = $('#modal_online_status');
$el.removeClass('text-success text-danger text-warning text-muted').addClass('text-muted').text('Memeriksa baki...');
try {
var modal = await getModalOnline();
var pending = modal.pending_request || null;
var closed = Number(modal.ditutup || 0) === 1;
var missing = !!modal.missing;
var baki = Number(modal.baki || 0);
var had = Number(modal.had || 0) + Number(modal.tambah || 0);
if (closed) {
$el.removeClass('text-muted').addClass('text-danger')
.text('Modal online hari ini sudah ditutup (EOD). Gadai online tidak dibenarkan.');
return modal;
}
if (pending) {
$el.removeClass('text-muted').addClass('text-warning')
.text('Menunggu kelulusan Operasi: RM ' + formatter.format(Number(pending.amaun || 0)) +
' (' + (pending.dimohon_oleh || '-') + ').');
} else if (missing) {
$el.removeClass('text-muted').addClass('text-danger')
.text('Belum ada had hari ini. Sila hubungi PC.');
} else {
$el.removeClass('text-muted').addClass('text-success')
.text('Baki RM ' + formatter.format(baki) + ' / Had RM ' + formatter.format(had));
}
return modal;
} catch (e) {
$el.removeClass('text-muted').addClass('text-danger').text('Gagal semak modal online.');
return null;
}
}
async function checkDisbursementFloat(pinjaman) {
var cara = $('input[name="cara_terima"]:checked').val() || 'TUNAI';
if (!(pinjaman >= 5000 && pinjaman <= 50000)) {
cara = 'TUNAI';
}
if (cara === 'ONLINE') {
var kodbank = $('#gadai_kodbank').val();
var noakaun = ($('#gadai_noakaun').val() || '').trim();
$('#gadai_nama_bank').val($('#gadai_kodbank option:selected').data('nama') || '');
if (!kodbank || !noakaun) {
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Sila lengkapkan maklumat bank untuk pembayaran online.'
});
return false;
}
var modal;
try {
modal = await getModalOnline();
} catch (e) {
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Gagal semak modal online. Sila cuba lagi.'
});
return false;
}
if (Number(modal.ditutup || 0) === 1) {
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Modal online hari ini sudah ditutup (EOD). Sila pilih Tunai.'
});
return false;
}
if (modal.pending_request) {
Swal.fire({
icon: 'info',
title: 'Menunggu Operasi',
text: 'Permohonan RM ' + formatter.format(Number(modal.pending_request.amaun || 0)) +
' masih PENDING. Sila tunggu kelulusan Operasi atau pilih Tunai.'
});
return false;
}
if (modal.missing) {
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Belum ada had modal online hari ini. Sila hubungi PC.'
});
return false;
}
if (Number(modal.baki || 0) < pinjaman) {
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Baki modal online tidak mencukupi. Sila hubungi PC untuk mohon tambah modal, atau pilih Tunai.'
});
return false;
}
return true;
}
let dataCawangan = await getDataCawangan();
let bakiAkhir = dataCawangan.baki;
if (bakiAkhir < pinjaman) {
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Baki Akhir Tunai Lebih Rendah Daripada Nilai Marhun Yang Ingin Digadaikan. Sila Tambah Pendahuluan di Laman Aliran Tunai Segera. '
});
return false;
}
return true;
}
async function verifyGadai(func){
$("#terima_gadai").prop('disabled', true);
if (typeof event !== 'undefined' && event && event.preventDefault) {
event.preventDefault();
}
var kodcaw = $('#kodcaw').val();
var nokp = $('#nokp').val();
var nopelanggan = $('#nopelanggan').val();
var norujukan = $('#norujukan').val();
var pinjaman = Number($('#pinjaman').val());
var total_nilai_marhun = $('#total_nilai_marhun').val();
var nilai_marhun_total = Number(total_nilai_marhun.replace(/[^0-9.-]+/g,""));
var count_error = 0;
var pembiayaan_max_teller = $('#pembiayaan_max_teller').val();
var pembiayaan_max_teller = Number(pembiayaan_max_teller.replace(/[^0-9.-]+/g,""));
var pembiyaan_max_pelulus = $('#pembiyaan_max_pelulus').val();
var pembiyaan_max_pelulus = Number(pembiyaan_max_pelulus.replace(/[^0-9.-]+/g,""));
var min_pinjaman = nilai_marhun_total * 0.10;
var max_pinjaman = pembiyaan_max_pelulus;
var outstanding_semasa = Number("{{ $outstanding_semasa }}");
let teller = "{{ Auth::user()->name }}";
let bakiakhir = 0;
var kodcaw = $('#kodcaw').val();
if(pinjaman == 0){
$("#terima_gadai").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Pembiayaan Tidak Lengkap'
});
return false;
}
let floatOk = await checkDisbursementFloat(pinjaman);
if (!floatOk) {
$("#terima_gadai").prop('disabled', false);
return false;
}
if(true){
if($.isNumeric(pinjaman) == false){
$("#terima_gadai").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Sila Masukkan Nombor Sahaja'
});
event.preventDefault();
return false;
}
if(pinjaman < min_pinjaman){
$("#terima_gadai").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Sila Masukan Pembiayaan, Minimal Pembiayaan ialah RM '+ formatter.format(min_pinjaman)
});
event.preventDefault();
return false;
}else if(pinjaman > max_pinjaman){
$("#terima_gadai").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Pinjaman Melebihi Margin Yang Dibenarkan'
});
event.preventDefault();
return false;
}else{
if(outstanding_semasa+pinjaman >= 300000){
$("#terima_gadai").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Had Pembiayaan',
text: 'Outstanding Pembiayaan Pelanggan Telah Melebihi Had'
});
event.preventDefault();
return false;
}else{
$.ajax({
method:'get',
url: api_url + '/api/komuditi/check',
success:function(data){
var check_komuditi = Object.keys(data).length;
if(check_komuditi == 0){
$("#terima_gadai").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Unit Komuditi Berbaki Minumum',
text: 'Sila Hubungi Operasi Untuk Membuat Pembelian Komuditi'
});
event.preventDefault();
return false;
}else{
if(Number(data['unit_komuditi']) < pinjaman){
$("#terima_gadai").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Baki Unit Komuditi Tidak Mencukupi',
text: 'Sila Hubungi Operasi Untuk Membuat Pembelian Komuditi'
});
event.preventDefault();
return false;
}
else{
if(pinjaman >= 10000 && pinjaman <= Number(pembiyaan_max_pelulus)){
//new added
$.ajax({
method:'get',
url: api_url + '/api/gadai/norujukan/' + kodcaw + '/' + norujukan,
success:function(data)
{
var checking = Object.keys(data[0]).length;
if (data[0]['pinjaman'] > 0) {
$("#terima_gadai").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Tidak Berjaya',
text: 'Maklumat Pembiayaan Telah Wujud. Sila Tekan Batal.'
});
event.preventDefault();
return false;
} else {
//insert code asal
const swalWithBootstrapButtons = Swal.mixin({
customClass: {
confirmButton: 'btn btn-success',
cancelButton: 'btn btn-danger'
},
buttonsStyling: false
});
if(pinjaman > Number(pembiyaan_max_pelulus)){
var errortext = "Tetapan margin melebihi " + pinjaman_pelulus + "% untuk Operasi!";
}
if(pinjaman >= 10000){
var errortext = "Pinjaman Melebihi 10,000";
}
swalWithBootstrapButtons.fire({
title: 'Dapatkan Pengesahan Operasi',
text: errortext,
icon: 'info',
showCancelButton: true,
confirmButtonText: 'Hantar',
cancelButtonText: 'Batal',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
let norujukan = $('#norujukan').val();
let nm = parseFloat($('#total_nilai_marhun').val().replace(/[^0-9.-]+/g,""));let ber = $('#total_berat').val();let marg = $('.span-pinjaman').text();
let status = errortext;
let jumpinjam = $('#pinjaman').val();
let teller = "{{ Auth::user()->name }}";
Swal.fire({
title: 'Tunggu Pengesahan Daripada Khazanah-Operasi.',
icon: 'info',
width: 600,
padding: '3em',
background: '#fffff',
showCancelButton: false,
showConfirmButton: false,
allowOutsideClick: false,
allowEscapeKey: false,
allowEnterKey: false
})
let siricreated = 0;
$.ajax({
method:'post',
url: "{{ route('operasi.createkelulusan') }}",
data: {
"_token": "{{ csrf_token() }}",
"norujukan" : norujukan,
"komen" : '',
"margin" : marg,
"berat" : ber,
"nilaimarhun" : nm,
"status" : status,
"jumpinjam" : jumpinjam,
"teller" : teller
},
success:function(data){
siricreated = data;
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(xhr.responseText);
}
});
var pusher = new Pusher("{{ env('PUSHER_APP_KEY') }}", {
cluster: 'ap1',
encrypted: true
});
var channel = pusher.subscribe('notice-kelulusan');
channel.bind('my-kelulusan', function(data) {
if(data.norujukan == norujukan && data.siri == siricreated && data.teller == teller)
{
if(data.kelulusan == 'lulus')
{
Swal.fire({
icon: 'success',
title: 'Telah Disahkan',
text: `Komen : ${data.komen}`
}).then(function(){
$(func).attr("onSubmit","return true;");
$(func).submit();
return true;
});
}
else if(data.kelulusan == 'batal')
{
Swal.fire({
icon: 'warning',
title: 'Telah Dibatalkan',
text: `Komen : ${data.komen}`
}).then(function(){
$("#terima_gadai").prop('disabled', false);
return false;
});
}
}
});
}else if (result.dismiss === Swal.DismissReason.cancel){
$("#terima_gadai").prop('disabled', false);
swalWithBootstrapButtons.fire(
'Batal',
'Maklumat Pembiayaan Tidak Berjaya Disimpan',
'error'
)
}
});
event.preventDefault();
return false;
//end insert code asal
}
}
});
//end new added
}else if(pinjaman > Number(pembiayaan_max_teller)){
//new added
$.ajax({
method:'get',
url: api_url + '/api/gadai/norujukan/' + kodcaw + '/' + norujukan,
success:function(data)
{
var checking = Object.keys(data[0]).length;
if (data[0]['pinjaman'] > 0) {
$("#terima_gadai").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Tidak Berjaya',
text: 'Maklumat Pembiayaan Telah Wujud. Sila Tekan Batal.'
});
event.preventDefault();
return false;
} else {
//insert code asal
const swalWithBootstrapButtons = Swal.mixin({
customClass: {
confirmButton: 'btn btn-success',
cancelButton: 'btn btn-danger'
},
buttonsStyling: false
});
swalWithBootstrapButtons.fire({
title: 'Dapatkan Pengesahan Khazanah',
text: "Tetapan Margin Melebihi Limit Maksima Teller!",
icon: 'info',
showCancelButton: true,
confirmButtonText: 'Hantar',
cancelButtonText: 'Batal',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
let norujukan = $('#norujukan').val();
let nm = parseFloat($('#total_nilai_marhun').val().replace(/[^0-9.-]+/g, ""));
let ber = $('#total_berat').val();
let marg = $('.span-pinjaman').text();
let status = "Tetapan Margin Melebihi Limit Maksima Teller: " + pinjaman_teller + "%";
let jumpinjam = $('#pinjaman').val();
let teller = "{{ Auth::user()->name }}";
Swal.fire({
title: 'Tunggu Pengesahan Daripada Khazanah.',
icon: 'info',
width: 600,
padding: '3em',
background: '#fffff',
showCancelButton: false,
showConfirmButton: false,
allowOutsideClick: false,
allowEscapeKey: false,
allowEnterKey: false
})
let siricreated = 0;
$.ajax({
method:'post',
url: "{{ route('khazanah.createkelulusan') }}",
data: {
"_token": "{{ csrf_token() }}",
"norujukan" : norujukan,
"komen" : '',
"margin" : marg,
"berat" : ber,
"nilaimarhun" : nm,
"status" : status,
"jumpinjam" : jumpinjam,
"teller" : teller
},
success:function(data){
siricreated = data;
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(xhr.responseText);
}
});
//Try Pusher
var pusher = new Pusher("{{ env('PUSHER_APP_KEY') }}", {
cluster: 'ap1',
encrypted: true
});
var channel = pusher.subscribe('notice-kelulusan');
channel.bind('my-kelulusan', function(data) {
// let message = JSON.stringify(data);
if(data.norujukan == norujukan && data.siri == siricreated && data.teller == teller)
{
if(data.kelulusan == 'lulus')
{
Swal.fire({
icon: 'success',
title: 'Telah Disahkan'
}).then(function(){
$(func).attr("onSubmit","return true;");
$(func).submit();
return true;
});
}
else if(data.kelulusan == 'batal')
{
Swal.fire({
icon: 'warning',
title: 'Telah Dibatalkan'
}).then(function(){
$("#terima_gadai").prop('disabled', false);
return false;
});
}
}
});
} else if (result.dismiss === Swal.DismissReason.cancel) {
$("#terima_gadai").prop('disabled', false);
swalWithBootstrapButtons.fire(
'Batal',
'Maklumat Pembiayaan Tidak Berjaya Disimpan',
'error'
)
}
});
event.preventDefault();
return false;
//end insert code asal
}
}
});
//end new added
}
else if( pinjaman < 10000 && pinjaman <= Number(pembiayaan_max_teller)){
//new added
$.ajax({
method:'get',
url: api_url + '/api/gadai/norujukan/' + kodcaw + '/' + norujukan,
success:function(data)
{
var checking = Object.keys(data[0]).length;
if (data[0]['pinjaman'] > 0) {
$("#terima_gadai").prop('disabled', false);
Swal.fire({
icon: 'error',
title: 'Tidak Berjaya',
text: 'Maklumat Pembiayaan Telah Wujud. Sila Tekan Batal.'
});
event.preventDefault();
return false;
} else {
//insert code asal
Swal.fire({
icon: 'success',
title: 'Berjaya!',
text: 'Pembiayaan Berjaya Disimpan'
});
$(func).attr("onSubmit","return true;");
$(func).submit();
return true;
//end insert code asal
}
}
});
//end new added
}
}
}
}
});
}
}
}
}
function deletemarhun(e){
let marhun = $(e).closest('tr').children('td:eq(1)').text();let selectedrow = $(e).closest('tr');let recnozz = tablemarhun.row(selectedrow).data();
let norujuk = $('#norujukan').val();
$.ajax({
method: 'put',
url: '{{ route("gadai.editmarhun") }}',
data: {
"_token": "{{ csrf_token() }}",
"norujukan": norujuk,
"recno": recnozz[1],
"teller": "{{ Auth::user()->name }}"
},
success: function(data) {
location.reload();
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(xhr.responseText);
}
});
}
function editmarhun(e){
let norujuk = $('#norujukan').val();
let selectedrow = $(e).closest('tr');
let recno = tablemarhun.row(selectedrow).data();
let nm = recno[3];
let karat = recno[4];
let berat = recno[5];
let harga = recno[8];
let nota = recno[7];
let tag_permata_edit = recno[8];
let beratpermata = recno[10];
let kuantiti = recno[6];
let jenismarhun = recno[2];
var res = nota.split(",");
// if(jenismarhun == 'G/B' || jenismarhun == 'WFR' || jenismarhun == 'SYE' || jenismarhun == 'DNR'){
// $('#kuantiti_modal').attr('disabled', false);
// $(".div_kuantiti_edit").css("display", "block");
// $(".div_column_kuantiti_edit").css("display", "block");
// $('#kuantiti_edit').val(kuantiti);
// }else{
// $('#kuantiti_modal').attr('disabled', false);
// $(".div_kuantiti_edit").css("display", "none");
// $(".div_column_kuantiti_edit").css("display", "none");
// $('#kuantiti_edit').val(1);
// }
if (!arrayBatuPermata.includes(jenismarhun)) {
$(".col_edit_permata").css("display", "block");
if(beratpermata != null) {
$('#tagpermataedit').prop('checked', true);
$(".div_anggaran_edit").css("display", "block");
$('#beratpermataedit').val(beratpermata);
} else {
$('#tagpermataedit').prop('checked', false);
$(".div_anggaran_edit").css("display", "none");
$('#beratpermataedit').val("");
}
} else {
$(".col_edit_permata").css("display", "none");
$('#tagpermataedit').prop('checked', false);
$(".div_anggaran_edit").css("display", "none");
$('#beratpermataedit').val("");
}
$.ajax({
method:'GET',
url: api_url + '/api/jemas',
success:function(data){
$.each(data,function(index,jemas){
$("#marhun_edit").append(new Option(jemas['descpt'], jemas['marhun']));
res.forEach(function(value) {
if ($('#nota_edit').find("option[value='" + value + "']").length === 0) {
let newOption = new Option(value, value, true, true);
$('#nota_edit').append(newOption).trigger('change');
}
});
$('#nota_edit').val(res).trigger('change');
$('#kuantiti_edit').val(kuantiti);
$('#sltkarat').val(karat);
$('#marhun_edit').val(jenismarhun);
$('#berat_edit').val(berat);
$('#nilaimarhun_edit').val(nm);
$('#harga_edit').val(harga);
$('#norujukedit').val(norujuk);
$('#recnoedit').val(recno[1]);
$('#editMarhunModal').modal();
})
}
});
}
$('#terima_edit').on('click',function(){
var nota_edit = $('#nota_edit').val();
var tagpermata_edit = $('input[id=tagpermataedit]').is(':checked') ? 1 : 0;
var beratpermata_edit = $('#beratpermataedit').val();
var norujukedit = $('#norujukedit').val();
var recnoedit = $('#recnoedit').val();
var marhun_edit = $('#marhun_edit').val();
var sltkarat = $('#sltkarat').val();
var berat_edit = $('#berat_edit').val();
var harga_edit = $('#harga_edit').val();
var nilaimarhun_edit = $('#nilaimarhun_edit').val();
var nilai_marhun_edit = Number(nilaimarhun_edit.replace(/[^0-9.-]+/g,""));
var kuantiti = $('#kuantiti_edit').val();
if(nota_edit != null){
var nota = nota_edit.toString();
}else{
var nota = '';
}
if(kuantiti > 10)
{
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Kuantiti tidak boleh melebihi 10'
});
event.preventDefault();
return false;
}
var resultValidation = validateBatuPermata(tagpermata_edit, beratpermata_edit);
if(resultValidation == false) {
return false;
}
if($.isNumeric(berat_edit) == false){
Swal.fire({
icon: 'error',
title: 'Amaran!',
text: 'Sila Masukkan Berat Marhun'
});
event.preventDefault();
return false;
}else{
$.ajax({
method:'put',
url: api_url + '/api/gadai/ubah/marhun/' + "{{ $cawangan_info['kodcaw'] }}" + '/' + norujukedit,
datatype:'json',
data:{
'recno' : recnoedit,
'karat' : sltkarat,
'berat' : berat_edit,
'harga' : harga_edit,
'n_marhun' : nilai_marhun_edit,
'marhun' : marhun_edit,
'nota' : nota,
'tag_permata' : tagpermata_edit,
'berat_batu_permata' : beratpermata_edit,
"teller": "{{ Auth::user()->name }}",
"kuantiti" : (kuantiti) ? kuantiti : 1
},
success:function(data){
getMarhun(norujukedit);
$('#editMarhunModal').modal('hide');
}
})
}
});
$("#sltkarat").change(function(e){
let hargaref = $(this).find(':selected').data('harga');
let ber = parseFloat($('#berat_edit').val());
let total = ber * hargaref;
$('#nilaimarhun_edit').val(formatter.format(total));
$('#harga_edit').val(hargaref);
});
function calculationharga(e){
let berat = $(e).val();
let total = 0;
let harga = $('#harga_edit').val();
total = berat * harga;
$('#nilaimarhun_edit').val(formatter.format(total));
}
function validateFloatKeyPress(el, evt) {
var charCode = (evt.which) ? evt.which : event.keyCode;
var number = el.value;
let keypress = evt.key;
// Split the current value by dot to check the number of decimal places
var numberParts = number.split('.');
// Check if the pressed key is a valid character for a floating-point number
if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
// Check if there is already a dot, and the pressed key is another dot
if (numberParts.length > 1 && charCode == 46) {
return false;
}
// Get the caret position in the input field
var caratPos = getSelectionStart(el);
// Get the position of the existing dot
var dotPos = el.value.indexOf(".");
// Check if the caret is after the existing dot, and there are more than 2 digits after the dot
if (caratPos > dotPos && dotPos > -1 && (numberParts[1] && numberParts[1].length > 1)) {
return false;
}
// If the last digit is not 5 or 0, disallow the input
if (numberParts[1] && numberParts[1].length === 1 && !['0', '5'].includes(keypress)) {
return false;
}
return true;
}
function getSelectionStart(o) {
if (o.createTextRange) {
var r = document.selection.createRange().duplicate()
r.moveEnd('character', o.value.length)
if (r.text == '') return o.value.length
return o.value.lastIndexOf(r.text)
} else return o.selectionStart
}
$("#marhun_edit").change(function(e){
var marh = $(this).find(':selected').val();
$('#kuantiti_modal').val('');
if(marh == 'G/B' || marh == 'WFR' || marh == 'SYE' || marh == 'DNR'){
if(marh == 'DNR' || marh == 'SYE'){
$('#sltkarat option').show();
$('#sltkarat option').not('[value="21.0K"]').not('[value="22.0K"]').not('[value="23.0K"]').not('[value="24.0K"]').not('[value="24.0Kgb"]').not(':first').hide();
}else{
$('#sltkarat option').show();
$('#sltkarat option').not('[value="21.0K"]').not('[value="22.0K"]').not('[value="23.0K"]').not('[value="24.0K"]').not('[value="24.0Kgb"]').not(':first').hide();
}
$('#text_berat_modal').html('Berat Keseluruhan');
$('#kuantiti_modal').attr('disabled', false);
}else{
$('#text_berat_modal').html('Berat');
$('#kuantiti_modal').attr('disabled', true);
}
});
// Toggle Table Functionality
let isMarginTableVisible = false;
$('#toggleTableBtn').on('click', function() {
if (!isMarginTableVisible) {
// Check if main table has data before showing margin table
let tableData = $('#myTable').DataTable().data();
if (tableData.length === 0) {
Swal.fire({
icon: 'warning',
title: 'Amaran!',
text: 'Tiada data marhun untuk papar margin. Sila daftar marhun terlebih dahulu.'
});
return;
}
// Show margin table, hide main table
$('#myTable_wrapper').hide();
$('#marginTable').show();
$(this).html('<i class="fas fa-exchange-alt"></i> Papar Marhun');
loadMarginData();
isMarginTableVisible = true;
// Disable Daftar Marhun button when margin table is visible
$('button[data-target="#daftar_marhun"]').prop('disabled', true);
} else {
// Show main table, hide margin table
$('#marginTable_wrapper').hide();
$('#myTable_wrapper').show();
$(this).html('<i class="fas fa-exchange-alt"></i> Papar Margin');
isMarginTableVisible = false;
// Enable Daftar Marhun button when main table is visible
$('button[data-target="#daftar_marhun"]').prop('disabled', false);
}
});
function loadMarginData() {
let marginData = [];
let totalNilaiMarhun = 0;
let totalNilaiTeller = 0;
let totalNilaiPC = 0;
// Process each individual row from the main table
let rowsData = [];
tablemarhun.rows().data().each(function(row, index) {
console.log(row);
let recno = row[1]; // Recno column
let karat = row[4]; // Karat column
let nilaiMarhun = parseFloat(row[3].replace(/[^0-9.-]+/g, "")); // Nilai Marhun column
rowsData.push({
index: index,
recno: recno,
karat: karat,
nilaiMarhun: nilaiMarhun
});
});
let bil = 1;
let processedCount = 0;
let totalEntries = rowsData.length;
rowsData.forEach((rowData) => {
// Call API to get margin data for each individual item
$.ajax({
url: '{{ api_url_for_browser() }}/api/maxmutuemas/specific',
type: 'GET',
data: { karat: rowData.karat, nilaimarhun: rowData.nilaiMarhun },
success: function(response) {
if (response && response.karat) {
let nilaiTeller = parseFloat(response.maxteller) || 0;
let nilaiPC = parseFloat(response.maxpc) || 0;
marginData.push({
index: rowData.index,
bil: rowData.index + 1,
recno: rowData.recno,
karat: rowData.karat,
nilaiMarhun: rowData.nilaiMarhun,
marginTeller: response.teller,
marginPC: response.pc,
nilaiTeller: nilaiTeller,
nilaiPC: nilaiPC
});
totalNilaiMarhun += rowData.nilaiMarhun;
totalNilaiTeller += nilaiTeller;
totalNilaiPC += nilaiPC;
}
processedCount++;
if (processedCount === totalEntries) {
// Sort by original index to maintain order
marginData.sort((a, b) => a.index - b.index);
populateMarginTable(marginData, totalNilaiMarhun, totalNilaiTeller, totalNilaiPC);
}
},
error: function() {
processedCount++;
if (processedCount === totalEntries) {
// Sort by original index to maintain order
marginData.sort((a, b) => a.index - b.index);
populateMarginTable(marginData, totalNilaiMarhun, totalNilaiTeller, totalNilaiPC);
}
}
});
});
}
let marginDataTable = null;
function populateMarginTable(data, totalMarhun, totalTeller, totalPC) {
// If DataTable already exists, destroy it first
if (marginDataTable !== null) {
marginDataTable.destroy();
marginDataTable = null;
}
let tbody = $('#marginTableBody');
tbody.empty();
data.forEach(function(item) {
let row = `
<tr>
<td>${item.bil}</td>
<td>${item.karat}</td>
<td>RM${item.nilaiMarhun.toLocaleString('en-MY', {minimumFractionDigits: 2, maximumFractionDigits: 2})}</td>
<td>${item.marginTeller}%</td>
<td>${item.marginPC}%</td>
<td>RM${item.nilaiTeller.toLocaleString('en-MY', {minimumFractionDigits: 2, maximumFractionDigits: 2})}</td>
<td>RM${item.nilaiPC.toLocaleString('en-MY', {minimumFractionDigits: 2, maximumFractionDigits: 2})}</td>
</tr>
`;
tbody.append(row);
});
// Initialize DataTable
marginDataTable = $('#marginTable').DataTable({
"pageLength": 10,
"ordering": false,
"order": [[ 0, "asc" ]],
"responsive": true,
"language": {
"lengthMenu": "Papar _MENU_ rekod setiap halaman",
"zeroRecords": "Tiada rekod dijumpai",
"info": "Memapar halaman _PAGE_ dari _PAGES_",
"infoEmpty": "Tiada rekod tersedia",
"infoFiltered": "(ditapis dari _MAX_ jumlah rekod)",
"search": "Cari:",
"paginate": {
"first": "Pertama",
"last": "Akhir",
"next": "Seterusnya",
"previous": "Sebelumnya"
}
},
"footerCallback": function (row, data, start, end, display) {
// Update footer totals
$('#totalNilaiMarhunMargin').text('RM' + totalMarhun.toLocaleString('en-MY', {minimumFractionDigits: 2, maximumFractionDigits: 2}));
$('#totalNilaiTellerMargin').text('RM' + totalTeller.toLocaleString('en-MY', {minimumFractionDigits: 2, maximumFractionDigits: 2}));
$('#totalNilaiPCMargin').text('RM' + totalPC.toLocaleString('en-MY', {minimumFractionDigits: 2, maximumFractionDigits: 2}));
}
});
}
</script>
@endsection