Merge branch 'release/split' of https://bitbucket.org/arrahn-pkb/arrahn-portal into kopkb

This commit is contained in:
nurafrinaalimi16
2026-01-12 11:42:09 +08:00
75 changed files with 2846 additions and 519 deletions
+1 -1
View File
@@ -155,7 +155,7 @@
<div class="text-center mt-3" style="margin: 0% 10%;">
<a href="https://spare.arrahn.com.my/pembayaransegera" id="buttonspare" title="Pembayaran Pantas SPARE" style="color: #12B652; border: 1px solid #12B652;" class="btn my-4 mb-2" target="_blank">BAYARAN PANTAS (SPARE)</a href="#">
{{-- <a href="https://spare.arrahn.com.my/pembayaransegera" id="buttonspare" title="Pembayaran Pantas SPARE" style="color: #12B652; border: 1px solid #12B652;" class="btn my-4 mb-2" target="_blank">BAYARAN PANTAS (SPARE)</a href="#"> --}}
</div>
<p class="text-sm text-center">
<a href="{{ route('auth.registerfirst') }}">Pertama Kali</a>
+25 -1
View File
@@ -24,8 +24,20 @@
@endif
</div>
<div class="col-xs-6 col-xl-6">
<div class="form-group {{ $errors->has('password') ? ' has-danger' : '' }}">
<div class="form-group {{ $errors->has('password') ? ' has-danger' : '' }}" style="position: relative;">
<input type="password" placeholder="Katalaluan" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" id="login-password" name="password" required aria-required="true">
<span
class="input-group-text border-0 position-absolute end-0 top-0 h-100 d-flex align-items-center"
style="cursor:pointer; z-index: 3; border-radius: 0 0.375rem 0.375rem 0; border-left: none; border: 1px solid #ced4da; background: transparent; padding: 0 12px; height: 100%; display: flex; align-items: center; box-shadow: none; top: 0; bottom: 0;"
onclick="togglePasswordVisibility('login-password', 'eyeIcon-login-password')"
tabindex="0"
aria-label="Toggle password visibility"
>
<svg id="eyeIcon-login-password" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6c757d" class="bi bi-eye" viewBox="0 0 16 16">
<path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"/>
<path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"/>
</svg>
</span>
</div>
@if ($errors->has('password'))
<span class="invalid-feedback" style="display: block;margin-top:-10px !important;" role="alert">
@@ -109,5 +121,17 @@
slides[slideIndex - 1].style.display = "block";
setTimeout(showSlides, 10000); // Change image every 2 seconds
}
function togglePasswordVisibility(inputId, iconId) {
const passwordInput = document.getElementById(inputId);
const eyeIcon = document.getElementById(iconId);
if (passwordInput.type === 'password') {
passwordInput.type = 'text';
eyeIcon.setAttribute('fill', '#12B652');
} else {
passwordInput.type = 'password';
eyeIcon.setAttribute('fill', '#6c757d');
}
}
</script>
@endsection
+28 -2
View File
@@ -45,11 +45,23 @@
@endif
</div>
<div class="form-group{{ $errors->has('password') ? ' has-danger' : '' }}">
<div class="input-group input-group-alternative">
<div class="input-group input-group-alternative" style="position: relative;">
<div class="input-group-prepend">
<span class="input-group-text"><i class="ni ni-lock-circle-open"></i></span>
</div>
<input class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" placeholder="{{ __('Password') }}" type="password" value="secret" required>
<input class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" id="password" name="password" placeholder="{{ __('Password') }}" type="password" value="secret" required>
<span
class="input-group-text border-0 position-absolute end-0 top-0 h-100 d-flex align-items-center"
style="cursor:pointer; z-index: 3; border-radius: 0 0.375rem 0.375rem 0; border-left: none; border: 1px solid #ced4da; background: transparent; padding: 0 12px; height: 100%; display: flex; align-items: center; box-shadow: none; top: 0; bottom: 0;"
onclick="togglePasswordVisibility('password', 'eyeIcon-password')"
tabindex="0"
aria-label="Toggle password visibility"
>
<svg id="eyeIcon-password" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6c757d" class="bi bi-eye" viewBox="0 0 16 16">
<path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"/>
<path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"/>
</svg>
</span>
</div>
@if ($errors->has('password'))
<span class="invalid-feedback" style="display: block;" role="alert">
@@ -86,4 +98,18 @@
</div>
</div>
</div>
<script>
function togglePasswordVisibility(inputId, iconId) {
const passwordInput = document.getElementById(inputId);
const eyeIcon = document.getElementById(iconId);
if (passwordInput.type === 'password') {
passwordInput.type = 'text';
eyeIcon.setAttribute('fill', '#12B652');
} else {
passwordInput.type = 'password';
eyeIcon.setAttribute('fill', '#6c757d');
}
}
</script>
@endsection
@@ -16,8 +16,20 @@
<div class="form-group row">
<label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>
<div class="col-md-6">
<div class="col-md-6" style="position: relative;">
<input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="current-password">
<span
class="input-group-text border-0 position-absolute end-0 top-0 h-100 d-flex align-items-center"
style="cursor:pointer; z-index: 3; border-radius: 0 0.375rem 0.375rem 0; border-left: none; border: 1px solid #ced4da; background: transparent; padding: 0 12px; height: 100%; display: flex; align-items: center; box-shadow: none; top: 0; bottom: 0;"
onclick="togglePasswordVisibility('password', 'eyeIcon-password')"
tabindex="0"
aria-label="Toggle password visibility"
>
<svg id="eyeIcon-password" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6c757d" class="bi bi-eye" viewBox="0 0 16 16">
<path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"/>
<path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"/>
</svg>
</span>
@error('password')
<span class="invalid-feedback" role="alert">
@@ -46,4 +58,18 @@
</div>
</div>
</div>
<script>
function togglePasswordVisibility(inputId, iconId) {
const passwordInput = document.getElementById(inputId);
const eyeIcon = document.getElementById(iconId);
if (passwordInput.type === 'password') {
passwordInput.type = 'text';
eyeIcon.setAttribute('fill', '#12B652');
} else {
passwordInput.type = 'password';
eyeIcon.setAttribute('fill', '#6c757d');
}
}
</script>
@endsection
@@ -117,7 +117,7 @@ Sekiranya wujud di dalam fail 'SPAM', tukar emel kepada 'NOT SPAM' terlebih dahu
<button type="submit" class="btn bg-gradient-dark w-100 my-4 mb-2" style="background: #4A4E59;" onclick="showLoading()">Tetap Semula Kata Laluan</button>
</div>
<div class="text-center mt-3" style="margin: 0% 10%;">
<a href="https://spare.arrahn.com.my/pembayaransegera" id="buttonspare" title="Pembayaran Pantas SPARE" style="color: #12B652; border: 1px solid #12B652;" class="btn my-4 mb-2" target="_blank">Bayaran Pantas (SPARE)</a href="#">
{{-- <a href="https://spare.arrahn.com.my/pembayaransegera" id="buttonspare" title="Pembayaran Pantas SPARE" style="color: #12B652; border: 1px solid #12B652;" class="btn my-4 mb-2" target="_blank">Bayaran Pantas (SPARE)</a href="#"> --}}
</div>
<p class="text-sm text-center">
@@ -141,4 +141,4 @@ $(function() {
});
</script>
@endsection
@endsection
+39 -4
View File
@@ -19,8 +19,20 @@
</span>
@endif
<div class="input-group input-group-outline {{ $errors->has('password') ? ' has-danger' : '' }}">
<div class="input-group input-group-outline {{ $errors->has('password') ? ' has-danger' : '' }}" style="position: relative;">
<input id="password" onKeyUp="checkPasswordStrength();" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" placeholder="{{ __('Password') }}" type="password" required>
<span
class="input-group-text border-0 position-absolute end-0 top-0 h-100 d-flex align-items-center"
style="cursor:pointer; z-index: 3; border-radius: 0 0.375rem 0.375rem 0; border-left: none; border: 1px solid #ced4da; background: transparent; padding: 0 12px; height: 100%; display: flex; align-items: center; box-shadow: none; top: 0; bottom: 0;"
onclick="togglePasswordVisibility('password', 'eyeIcon-password')"
tabindex="0"
aria-label="Toggle password visibility"
>
<svg id="eyeIcon-password" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6c757d" class="bi bi-eye" viewBox="0 0 16 16">
<path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"/>
<path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"/>
</svg>
</span>
</div>
@if ($errors->has('password'))
<span class="invalid-feedback" role="alert">
@@ -31,11 +43,22 @@
<small>{{ __('password strength') }}: <span class="text-muted font-weight-700" id="password-strength-status">none</span></small>
</div>
<div class="input-group input-group-outline my-3">
<div class="input-group input-group-outline my-3" style="position: relative;">
<div class="input-group input-group-alternative">
<input class="form-control" placeholder="{{ __('Confirm Password') }}" type="password" name="password_confirmation" required>
<input class="form-control" id="password_confirmation" placeholder="{{ __('Confirm Password') }}" type="password" name="password_confirmation" required>
</div>
<span
class="input-group-text border-0 position-absolute end-0 top-0 h-100 d-flex align-items-center"
style="cursor:pointer; z-index: 3; border-radius: 0 0.375rem 0.375rem 0; border-left: none; border: 1px solid #ced4da; background: transparent; padding: 0 12px; height: 100%; display: flex; align-items: center; box-shadow: none; top: 0; bottom: 0;"
onclick="togglePasswordVisibility('password_confirmation', 'eyeIcon-password_confirmation')"
tabindex="0"
aria-label="Toggle password visibility"
>
<svg id="eyeIcon-password_confirmation" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6c757d" class="bi bi-eye" viewBox="0 0 16 16">
<path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"/>
<path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"/>
</svg>
</span>
</div>
<div class="text-center">
@@ -68,6 +91,18 @@
}
}
}
function togglePasswordVisibility(inputId, iconId) {
const passwordInput = document.getElementById(inputId);
const eyeIcon = document.getElementById(iconId);
if (passwordInput.type === 'password') {
passwordInput.type = 'text';
eyeIcon.setAttribute('fill', '#12B652');
} else {
passwordInput.type = 'password';
eyeIcon.setAttribute('fill', '#6c757d');
}
}
</script>
@endsection
@@ -181,7 +181,7 @@
<!-- Control Center for Material UI Kit: parallax effects, scripts for the example pages etc -->
<!-- Google Maps Plugin -->
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDTTfWur0PDbZWPr7Pmq8K3jiDp0_xUziI"></script>
{{-- <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDTTfWur0PDbZWPr7Pmq8K3jiDp0_xUziI"></script> --}}
<!-- <script src="{{ asset('assets/js/material-kit/material-kit.min.js?v=3.0.0') }}" type="text/javascript"></script> -->
<script>
@@ -155,7 +155,7 @@
<div class="text-center mt-3" style="margin: 0% 10%;">
<a href="https://spare.arrahn.com.my/pembayaransegera" id="buttonspare" title="Pembayaran Pantas SPARE" style="color: #12B652; border: 1px solid #12B652;" class="btn my-4 mb-2" target="_blank">BAYARAN PANTAS (SPARE)</a href="#">
{{-- <a href="https://spare.arrahn.com.my/pembayaransegera" id="buttonspare" title="Pembayaran Pantas SPARE" style="color: #12B652; border: 1px solid #12B652;" class="btn my-4 mb-2" target="_blank">BAYARAN PANTAS (SPARE)</a href="#"> --}}
</div>
<p class="text-sm text-center">
<a href="{{ route('login') }}">Log Masuk</a>
+39 -3
View File
@@ -45,11 +45,23 @@
<div class="row">
<div class="col-6 form-group{{ $errors->has('password') ? ' has-danger' : '' }}">
<div class="input-group ">
<div class="input-group" style="position: relative;">
<div class="input-group-prepend">
<span class="input-group-text"><i class="ni ni-lock-circle-open"></i></span>
</div>
<input id="password" onKeyUp="checkPasswordStrength();" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" placeholder="{{ __('Password') }}" type="password" name="password" required>
<span
class="input-group-text border-0 position-absolute end-0 top-0 h-100 d-flex align-items-center"
style="cursor:pointer; z-index: 3; border-radius: 0 0.375rem 0.375rem 0; border-left: none; border: 1px solid #ced4da; background: transparent; padding: 0 12px; height: 100%; display: flex; align-items: center; box-shadow: none; top: 0; bottom: 0;"
onclick="togglePasswordVisibility('password', 'eyeIcon-password')"
tabindex="0"
aria-label="Toggle password visibility"
>
<svg id="eyeIcon-password" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6c757d" class="bi bi-eye" viewBox="0 0 16 16">
<path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"/>
<path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"/>
</svg>
</span>
</div>
@if ($errors->has('password'))
<span class="invalid-feedback" style="display: block;" role="alert">
@@ -58,11 +70,23 @@
@endif
</div>
<div class="col-6 form-group">
<div class="input-group ">
<div class="input-group" style="position: relative;">
<div class="input-group-prepend">
<span class="input-group-text"><i class="ni ni-lock-circle-open"></i></span>
</div>
<input name="password_confirmation" class="form-control" placeholder="{{ __('Confirm Password') }}" type="password" required>
<input name="password_confirmation" id="password_confirmation" class="form-control" placeholder="{{ __('Confirm Password') }}" type="password" required>
<span
class="input-group-text border-0 position-absolute end-0 top-0 h-100 d-flex align-items-center"
style="cursor:pointer; z-index: 3; border-radius: 0 0.375rem 0.375rem 0; border-left: none; border: 1px solid #ced4da; background: transparent; padding: 0 12px; height: 100%; display: flex; align-items: center; box-shadow: none; top: 0; bottom: 0;"
onclick="togglePasswordVisibility('password_confirmation', 'eyeIcon-password_confirmation')"
tabindex="0"
aria-label="Toggle password visibility"
>
<svg id="eyeIcon-password_confirmation" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6c757d" class="bi bi-eye" viewBox="0 0 16 16">
<path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"/>
<path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"/>
</svg>
</span>
</div>
</div>
</div>
@@ -212,6 +236,18 @@
setTimeout(showSlides, 10000); // Change image every 2 seconds
}
function togglePasswordVisibility(inputId, iconId) {
const passwordInput = document.getElementById(inputId);
const eyeIcon = document.getElementById(iconId);
if (passwordInput.type === 'password') {
passwordInput.type = 'text';
eyeIcon.setAttribute('fill', '#12B652');
} else {
passwordInput.type = 'password';
eyeIcon.setAttribute('fill', '#6c757d');
}
}
</script>
<!-- END : LOGIN PAGE 5-2 -->
<!--[if lt IE 9]>
+39 -3
View File
@@ -31,8 +31,20 @@
@endif
<!-- password -->
<div class="input-group input-group-outline {{ $errors->has('password') ? ' has-danger' : '' }}">
<div class="input-group input-group-outline {{ $errors->has('password') ? ' has-danger' : '' }}" style="position: relative;">
<input id="password" onKeyUp="checkPasswordStrength();" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" placeholder="{{ __('Kata Laluan') }}" type="password" name="password" required>
<span
class="input-group-text border-0 position-absolute end-0 top-0 h-100 d-flex align-items-center"
style="cursor:pointer; z-index: 3; border-radius: 0 0.375rem 0.375rem 0; border-left: none; border: 1px solid #ced4da; background: transparent; padding: 0 12px; height: 100%; display: flex; align-items: center; box-shadow: none; top: 0; bottom: 0;"
onclick="togglePasswordVisibility('password', 'eyeIcon-password')"
tabindex="0"
aria-label="Toggle password visibility"
>
<svg id="eyeIcon-password" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6c757d" class="bi bi-eye" viewBox="0 0 16 16">
<path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"/>
<path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"/>
</svg>
</span>
</div>
@if ($errors->has('password'))
<span class="invalid-feedback" style="display: block;" role="alert">
@@ -44,8 +56,20 @@
</div>
<!-- confirmation password -->
<div class="input-group input-group-outline mb-3">
<input name="password_confirmation" class="form-control" placeholder="{{ __('Sahkan Kata Laluan') }}" type="password" required>
<div class="input-group input-group-outline mb-3" style="position: relative;">
<input name="password_confirmation" id="password_confirmation" class="form-control" placeholder="{{ __('Sahkan Kata Laluan') }}" type="password" required>
<span
class="input-group-text border-0 position-absolute end-0 top-0 h-100 d-flex align-items-center"
style="cursor:pointer; z-index: 3; border-radius: 0 0.375rem 0.375rem 0; border-left: none; border: 1px solid #ced4da; background: transparent; padding: 0 12px; height: 100%; display: flex; align-items: center; box-shadow: none; top: 0; bottom: 0;"
onclick="togglePasswordVisibility('password_confirmation', 'eyeIcon-password_confirmation')"
tabindex="0"
aria-label="Toggle password visibility"
>
<svg id="eyeIcon-password_confirmation" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6c757d" class="bi bi-eye" viewBox="0 0 16 16">
<path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"/>
<path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"/>
</svg>
</span>
</div>
<div>
@@ -178,5 +202,17 @@
// slides[slideIndex - 1].style.display = "block";
// setTimeout(showSlides, 10000); // Change image every 2 seconds
// }
function togglePasswordVisibility(inputId, iconId) {
const passwordInput = document.getElementById(inputId);
const eyeIcon = document.getElementById(iconId);
if (passwordInput.type === 'password') {
passwordInput.type = 'text';
eyeIcon.setAttribute('fill', '#12B652');
} else {
passwordInput.type = 'password';
eyeIcon.setAttribute('fill', '#6c757d');
}
}
</script>
@endsection
@@ -0,0 +1,29 @@
@props([
'title' => '',
'subtitle' => '',
'icon' => '',
'iconState' => 'info',
'cardBackgroundState' => 'white',
'link' => '#',
])
<div class="col-xl-3 col-lg-6" >
<div class="card card-stats mb-4 mb-xl-0 {{ 'bg-'.$cardBackgroundState}}">
<div class="card-body">
<div class="row">
<div class="col">
<h6 class="card-title text-uppercase mb-0 {{ $cardBackgroundState == 'white' ? 'text-muted' : 'text-white' }}">{{ $title }}</h6>
<span class="h5 font-weight-bold mb-0 {{ $cardBackgroundState == 'white' ? 'text-black' : 'text-white' }}">{{ $subtitle }}</span>
</div>
<div class="col-auto text-center">
<a href="{{ $link }}">
<div class="icon icon-shape bg-{{ $iconState }} rounded-circle shadow text-center">
<i class="{{ $icon }}"></i>
</div>
</a>
<br>
</div>
</div>
</div>
</div>
</div>
@@ -10,10 +10,90 @@
.card-header {
padding: 1rem !important;
}
.blurred {
filter: blur(2px); /* Apply a blur effect */
opacity: 0.5; /* Slight transparency */
/*pointer-events: none; */
}
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
input[type="number"] {
-moz-appearance: textfield;
}
@media (max-width: 768px) { /* Target screens smaller than tablets */
.sticky-footer {
position: fixed;
bottom: 0;
left: 0;
right: 0;
background-color: white; /* Adjust to match your theme */
height:100px;
box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.1); /* Optional shadow for better visibility */
padding: 10px; /* Add some padding for spacing */
z-index: 1000; /* Ensure it stays above other content */
text-align: center; /* Center align buttons */
}
.sticky-footer .btn {
width: 45%; /* Ensure buttons fit well side-by-side */
margin: 0 5px; /* Add spacing between buttons */
}
.loader-arrahn {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: 9999;
}
.loader-arrahn img {
width: 100px; /* Image size */
}
.loader-arrahn:before {
content: '';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 120px;
height: 120px;
background-color: rgba(0, 0, 0, 0.8);
border-radius: 50%;
z-index: -1;
}
.overlay-arrahn {
position: fixed;
z-index: 9998;
width: 100%;
height: 100%;
top: 0;
left: 0;
background-color: rgba(0, 0, 0, 0.5);
overflow: hidden;
}
}
</style>
<script>let redirect_home_var="{{ route('buffer') }}";</script>
<title>Bayar SAG | Portal Pelanggan</title>
<div class="container">
<div>
<div id="load-arrahn" class="d-none">
<div class="overlay-arrahn"></div>
<div class="loader-arrahn text-center">
<img src="{{ asset('argon/img/brand/ar-rahn-take-2.gif') }}">
</div>
</div>
<form name="formpayment" method="post" action="{{ route('payment.engine') }}">
@csrf
@@ -27,46 +107,38 @@
</div>
<div class="row justify-content-center">
<div class="col-md-10 col-sm-12">
<div class="d-md-flex">
<div class="col-sm-12 col-md-9">
@if($list_pkb)
<div class="col-md-11 col-sm-12 mb-4" id="divpkb">
<div class="card shadow">
<div class="card-header mb-4 bg-dark border-0">
<div class="card-header mb-4 bg-dark border-0" onclick="document.getElementById('pkb').click()">
<div class="row align-items-center">
<div class="d-flex">
<h4 class="text-white" style="margin-right: 1%;">Pembayaran</h4>
<i class="fas fa-clipboard-list fa-2x text-white"></i>
<h4 class="text-white" style="margin-right: 1%;">PKB</h4>
<div class="ms-auto">
<small class="text-white mr-2 font-weight-bold d-none d-md-inline">*sila tick di sini untuk memilih bayaran.</small>
<input type="radio" id="pkb" name="radpembayaran" value="pkb" class="ms-auto" style="width: 30px; height: 30px;" />
</div>
</div>
</div>
</div>
<div class="form">
<div style="overflow-x: auto;">
<table class="table align-items-left" id="selepas_tawarruq" style="width: 100%;">
<thead class="thead-light">
<!-- <div style="margin-bottom: 15px; text-align: left;">
<i class="text-danger" style="font-size:12px;">Klik 'Klik Di Sini' untuk Pilihan Bayaran</i><br>
<i class="text-danger" style="font-size:12px;">Amaun Semasa -> Amaun Keuntungan Semasa Sahaja.</i><br>
<i class="text-danger" style="font-size:12px;">Amaun Lain -> Amaun Ansuran Pembiayaan & Amaun Keuntungan Semasa, Sila Masukkan Amaun</i>
</div> -->
<tr style="text-align: center;">
<!-- <th width="10%">No</th> -->
<th width="10%">No <br>Rujukan</th>
<th width="10%">No Rujukan</th>
<th width="10%">Tarikh Akhir</th>
<th width="10%">Bayaran</th>
<th width="10%">Baki <br>Pembiayaan</th>
<!-- <th width="10%">Pembiayaan Asal</th>
<th width="10%">Tempoh</th> -->
<th width="10%">Baki Pembiayaan</th>
</tr>
</thead>
@php $counter = 1;$jenisbayaran = 'tawarruq'; $totalupahasal = 1; $errorcount = 0; @endphp
@foreach($arraybayar as $index=>$bayar)
@foreach($list_pkb as $index=>$bayar)
@if($bayar['hargajualan'] != '')
<tbody class="list" style="text-align: center;">
<tr>
<!-- <td>
{{ $counter }}
</td> -->
<td>
{{ $bayar['norujukan'] }}
</td>
@@ -96,38 +168,17 @@
}
@endphp
<!-- <td>
<select name="sltbayaran" value="{{ old('sltbayaran') ? old('sltbayaran') : '' }}" class="form-control mb-2" data-upah="{{ $upahtawarruq }}" data-jenis="tawarruq" style="text-align: center; border: revert;">
<option selected disabled></option>
<option value="fixed">Amaun Semasa</option>
<option value="otheramount">Amaun Lain</option>
</select>
<input type="text" value="{{ old('txtbayarantawarruq') ? old('txtbayarantawarruq') : '' }}" data-bakipjm="{{ $bayar['bakipjm'] }}" data-taglel="{{ $bayar['taglel'] }}" data-upah="{{ $upahtawarruq }}" data-nm="{{ $bayar['nilaimarhun'] }}" data-jenis="tawarruq" name="txtbayarantawarruq" class="form-control txtbayaran" style="text-align: center; border: outset;" />
<input type="hidden" name="txtbayaranhidden[]" class="bayaran" style="text-align: center;" />
<input type="hidden" name="txtjenisbayaran[]" value="{{ $jenisbayaran }}" style="text-align: center;" />
<input type="hidden" name="txtnorujukanhidden[]" value="{{ $bayar['norujukan'] }}" style="text-align: center;" />
<input type="hidden" name="txtkodcawhidden[]" value="{{ $bayar['kodcaw'] }}" style="text-align: center;" />
</td>-->
<td><input name="txtbayarantawarruq" type="number" step="0.01" value="{{ sprintf('%0.2f', $upahtawarruq) }}" class="form-control" style="text-align: center; border: outset;" data-bakipjm="{{ $bayar['bakipjm'] }}" data-upah="{{ $upahtawarruq }}" data-nm="{{ $bayar['nilaimarhun'] }}" data-taglel="{{ $bayar['taglel'] }}">
<td><input name="txtbayarantawarruq" type="number" step="0.01" value="{{ sprintf('%0.2f', $upahtawarruq) }}" class="form-control" style="text-align: center; border: outset; -moz-appearance: textfield;-webkit-appearance: none;appearance: none;" data-bakipjm="{{ $bayar['bakipjm'] }}" data-upah="{{ $upahtawarruq }}" data-nm="{{ $bayar['nilaimarhun'] }}" data-taglel="{{ $bayar['taglel'] }}">
<input type="hidden" name="txtbayaranhidden[]" value="{{ $upahtawarruq }}" class="bayaran" style="text-align: center;" />
<input type="hidden" name="txtjenisbayaran[]" value="{{ $jenisbayaran }}" style="text-align: center;" />
<input type="hidden" name="txtnorujukanhidden[]" value="{{ $bayar['norujukan'] }}" style="text-align: center;" />
<input type="hidden" name="txtkodcawhidden[]" value="{{ $bayar['kodcaw'] }}" style="text-align: center;" />
<input type="hidden" name="txtcompany" value="pkb"/>
</td>
<td>
<input style="border: none; text-align: center;" type="text" value="{{ number_format($bayar['bakipjm'],2) }}" class="bakibaru" readonly>
</td>
<!-- <td>
{{ number_format($bayar['pinjaman'],2) }}
</td>
<td>
{{ $bayar['tempoh'] }}
</td> -->
</tr>
</tbody>
@php $counter++; @endphp
@@ -138,54 +189,197 @@
</div>
</div>
<div class="row pb-4 font-weight-light">
<div class="col-6">
<label style="text-transform: uppercase; text-align: center;"><strong>Fi Pengurusan</strong></label>
</div>
<div class="col-6">
<span class="text-primary"><strong>RM<span>1.00</span></strong></span>
<span class="text-danger d-none" id="spanamarankosong">*Jangan biarkan kotak bayaran ditinggalkan kosong, Sila masukkan amaun!</span>
</div>
</div>
@endif
@if($list_koop)
<div class="col-md-11 col-sm-12" id="divkopkb">
<div class="card shadow">
<div class="card-header mb-4 bg-dark border-0" onclick="document.getElementById('kopkb').click()">
<div class="row align-items-center">
<div class="d-flex">
<h4 class="text-white" style="margin-right: 1%;">KOPKB</h4>
<div class="ms-auto">
<small class="text-white mr-2 font-weight-bold d-none d-md-inline">*sila tick di sini untuk memilih bayaran.</small>
<input type="radio" id="kopkb" name="radpembayaran" value="kopkb" class="ms-auto" style="width: 30px; height: 30px;" />
</div>
</div>
</div>
</div>
<div class="row pb-4 font-weight-light">
<div class="col-6">
<label style="text-transform: uppercase; text-align: center;"><strong>Jumlah Keseluruhan</strong></label>
<div class="form">
<div style="overflow-x: auto;">
<table class="table align-items-left" id="selepas_tawarruq_koop" style="width: 100%;">
<thead class="thead-light">
<tr style="text-align: center;">
<th width="10%">No <br>Rujukan</th>
<th width="10%">Tarikh Akhir</th>
<th width="10%">Bayaran</th>
<th width="10%">Baki <br>Pembiayaan</th>
</tr>
</thead>
@php $counter = 1;$jenisbayaran = 'tawarruq'; $totalupahasal = 1; $errorcount = 0; @endphp
@foreach($list_koop as $index=>$bayar)
@if($bayar['hargajualan'] != '')
<tbody class="list" style="text-align: center;">
<tr>
<td>
{{ $bayar['norujukan'] }}
</td>
@php
$t_matang = strtotime($bayar['t_matang']);
$t_akhir = date("d/m/Y", $t_matang);
if($bayar['lelong_tawarruq'] == 0)
{
$t_matang = strtotime($bayar['t_matang1']);
$t_akhir = date("d/m/Y", $t_matang);
}
@endphp
<td>
{{ $t_akhir }}
</td>
@php
$upahtawarruq = $bayar['upah_tawarruq'];
$upahtawarruq = floatval(str_replace(',','',$upahtawarruq));
$totalupahasal = $totalupahasal + $upahtawarruq;
if(floatval($upahtawarruq) == 0){
$errorcount++;
}
@endphp
<td><input name="txtbayarantawarruq" type="number" step="0.01" value="{{ sprintf('%0.2f', $upahtawarruq) }}" class="form-control" style="text-align: center; border: outset;" data-bakipjm="{{ $bayar['bakipjm'] }}" data-upah="{{ $upahtawarruq }}" data-nm="{{ $bayar['nilaimarhun'] }}" data-taglel="{{ $bayar['taglel'] }}">
<input type="hidden" name="txtbayaranhidden[]" value="{{ $upahtawarruq }}" class="bayaran" style="text-align: center;" />
<input type="hidden" name="txtjenisbayaran[]" value="{{ $jenisbayaran }}" style="text-align: center;" />
<input type="hidden" name="txtnorujukanhidden[]" value="{{ $bayar['norujukan'] }}" style="text-align: center;" />
<input type="hidden" name="txtkodcawhidden[]" value="{{ $bayar['kodcaw'] }}" style="text-align: center;" />
<input type="hidden" name="txtcompany" value="kopkb"/>
</td>
<td>
<input style="border: none; text-align: center;" type="text" value="{{ number_format($bayar['bakipjm'],2) }}" class="bakibaru" readonly>
</td>
</tr>
</tbody>
@php $counter++; @endphp
@endif
@endforeach
</table>
<hr>
</div>
<div class="col-6">
<span class="text-primary"><strong>RM<span id="spanjumlah">{{ number_format($totalupahasal,2) }}</span></strong></span>
</div>
</div>
<span class="text-danger d-none" id="spanamarankosong">*Jangan biarkan kotak bayaran ditinggalkan kosong, Sila masukkan amaun!</span>
</div>
</div>
@endif
<div class="col-md-10 col-sm-12">
</div>
<div class="d-none d-sm-none d-md-block col-xl-3">
<div class="col-md-12">
<div class="card shadow">
<div class="form" style="text-align: center;">
<div class="card-header mb-4 bg-dark border-0">
<div class="row align-items-center">
<div class="d-flex">
<h4 class="text-white" style="margin-right: 1%;">Pembayaran</h4>
<i class="ms-auto fas fa-shopping-cart fa-2x text-white"></i>
</div>
</div>
</div>
<div class="card-body">
<div class="row pb-4 font-weight-light">
<div class="col-8">
<label style="text-transform: uppercase; text-align: center;"><strong>Fi Pengurusan</strong></label>
</div>
<div class="col-4">
<span class="text-primary"><strong>RM<span>1.00</span></strong></span>
</div>
</div>
<div class="row pb-4 font-weight-light">
<div class="col-8">
<label style="text-transform: uppercase; text-align: center;"><strong>Jumlah Keseluruhan</strong></label>
</div>
<div class="col-4">
<span class="text-primary"><strong>RM<span id="spanjumlah">1.00</span></strong></span>
</div>
</div>
</div>
</div>
<!-- <div class="d-flex justify-content-between col-12 mt-3 align-self-end"> -->
<div class="d-flex justify-content-center col-12 mt-3 align-self-end">
<a href="{{ route('home') }}" type="button" class="btn btn-danger">Batal</a>&nbsp;
<!-- <button type="submit" id="bayarsbmt" class="btn btn-primary" disabled onclick="loadingbtn();">Bayar</button> -->
@if($totalupahasal == 1.00 || $errorcount > 0)
<button type="submit" id="bayarsbmt" class="btn btn-primary" disabled onclick="loadingbtn();">Bayar</button>
@else
<button type="submit" id="bayarsbmt" class="btn btn-primary" onclick="loadingbtn();">Bayar</button>
@endif
<div class="col-md-12 col-sm-12">
<div class="card shadow">
<div class="form" style="text-align: center;">
</div>
</div>
<!-- <div class="d-flex justify-content-between col-12 mt-3 align-self-end"> -->
<div class="d-flex justify-content-center col-12 mt-3 align-self-end">
<a onclick="deleteCarts()" type="button" class="cursor-pointer btn btn-danger">Batal</a>&nbsp;
<!-- <button type="submit" id="bayarsbmt" class="btn btn-primary" disabled onclick="loadingbtn();">Bayar</button> -->
@if($totalupahasal == 1.00 || $errorcount > 0)
<button type="submit" id="bayarsbmt" class="btn btn-primary" disabled onclick="loadingbtn();">Bayar</button>
@else
<button type="submit" id="bayarsbmt" class="btn btn-primary" onclick="loadingbtn();">Bayar</button>
@endif
</div>
</div>
</div>
</div>
</div>
<small>*sila klik bayar untuk transaksi bayaran berikutnya.</small>
<!-- Sticky Footer for Mobile View -->
<div class="sticky-footer d-sm-block d-md-none">
<div>
<div class="d-sm-flex">
<div class="font-weight-light small d-flex">
<div class="col-3">
<label style="text-transform: uppercase; text-align: center;font-size: 10px;"><strong>Fi Pengurusan</strong></label>
</div>
<div class="col-3">
<span class="text-primary"><strong>RM<span>1.00</span></strong></span>
</div>
<div class="col-3">
<label style="text-transform: uppercase; text-align: center;font-size: 10px;"><strong>Jumlah Keseluruhan</strong></label>
</div>
<div class="col-3">
<span class="text-primary"><strong>RM<span id="spanjumlah-phone">1.00</span></strong></span>
</div>
</div>
</div>
</div>
<div class="">
<a onclick="deleteCarts()" type="button" class="cursor-pointer btn btn-danger">Batal</a>&nbsp;
@if($totalupahasal == 1.00 || $errorcount > 0)
<button type="submit" id="bayarsbmt-phone" class="btn btn-primary" disabled onclick="loadingbtn();">Bayar</button>
@else
<button type="submit" id="bayarsbmt-phone" class="btn btn-primary" onclick="loadingbtn();">Bayar</button>
@endif
</div>
</div>
</form>
</div>
<script src="{{ asset('js/miscellaneous/cart.js') }}?v={{ filemtime(public_path('js/miscellaneous/cart.js')) }}"></script>
<script>
$(document).ready(function() {
/*check radio button enabled*/
checked_rad();
$(window).keydown(function(event) {
if (event.keyCode == 13) {
event.preventDefault();
@@ -193,13 +387,6 @@
}
});
$('#selepas_tawarruq > tbody > tr').each(function() {
$(this).find("td:gt(0)").each(function() {
// console.log($(this).html());
console.log($("input[name=txtbayarantawarruq]").val());
});
});
});
const formatter = new Intl.NumberFormat('en-US', {
@@ -235,6 +422,23 @@
"pagingType": "simple",
"paging": false
});
var selepastawarruq_kooptable = $('#selepas_tawarruq_koop').DataTable({
"bLengthChange": false,
"bFilter": false,
"bInfo": false,
language: {
'paginate': {
'previous': '<span class="fas fa-backward"></span>',
'next': '<span class="fas fa-forward"></span>'
}
},
"scrollX": true,
"pageLength": 10,
"pagingType": "simple",
"paging": false
});
// var selepastawarruqtable = $('#ringkasan_bayaran').DataTable({
// "bLengthChange": false,
@@ -270,37 +474,6 @@
}
});
$("input[name=txtbayaranarrahn]").change(function(e) {
let upah = $(this).data('upah');
let pinjaman = $(this).data('pinjaman');
let jenis = $(this).data('jenis');
let nm = $(this).data('nm');
let taglel = $(this).data('taglel');
let bayar = Number(this.value);
let errorlebih = nm - (nm * 0.1);
if (bayar > parseFloat(errorlebih)) {
$("#bayarsbmt").prop('disabled', false);
Swal.fire(
'Amaran!',
'Baki Pembiayaan tidak boleh kurang 10% daripada Nilai Marhun',
'error'
)
$(this).val(upah);
$(this).closest('tr').find('.bayaran').val(upah);
calculateall(jenis, taglel);
return false;
}
$(this).closest('tr').find('.bayaran').val(this.value);
calculateall(jenis, taglel);
});
$("input[name=txtbayarantawarruq]").change(function(e) {
// $("input[name=txtbayarantawarruq]").click(function(e) {
@@ -392,30 +565,43 @@
var sumtawarruq = 0;
var sum = 0;
var counterrorbayar = 0;
var selectedRadio = document.querySelector('input[name="radpembayaran"]:checked');
$('#belum_tawarruq').find('input[name=txtbayaranarrahn]').each(function() {
sumarrahn += parseFloat(this.value) || 0;
if (!selectedRadio) {
return;
}
if (this.value <= 0 || this.value == '') {
counterrorbayar++;
}
if(selectedRadio.value == 'kopkb'){
$('#selepas_tawarruq_koop').find('input[name=txtbayarantawarruq]').each(function(index) {
});
var bayaranselepas = (this.value * 100) / 10;
// bayaranselepas = Math.round(bayaranselepas);
bayaranselepas = bayaranselepas / 10;
$('#selepas_tawarruq').find('input[name=txtbayarantawarruq]').each(function(index) {
$('#spantransaksi' + (index + 1)).text(formatter.format(bayaranselepas));
var bayaranselepas = (this.value * 100) / 10;
// bayaranselepas = Math.round(bayaranselepas);
bayaranselepas = bayaranselepas / 10;
sumtawarruq += parseFloat(bayaranselepas) || 0;
$('#spantransaksi' + (index + 1)).text(formatter.format(bayaranselepas));
if (this.value <= 0 || this.value == '') {
counterrorbayar++;
}
});
}else{
$('#selepas_tawarruq').find('input[name=txtbayarantawarruq]').each(function(index) {
sumtawarruq += parseFloat(bayaranselepas) || 0;
var bayaranselepas = (this.value * 100) / 10;
// bayaranselepas = Math.round(bayaranselepas);
bayaranselepas = bayaranselepas / 10;
if (this.value <= 0 || this.value == '') {
counterrorbayar++;
}
});
$('#spantransaksi' + (index + 1)).text(formatter.format(bayaranselepas));
sumtawarruq += parseFloat(bayaranselepas) || 0;
if (this.value <= 0 || this.value == '') {
counterrorbayar++;
}
});
}
sum = sumarrahn + sumtawarruq;
sum = (sum * 100) / 10;
@@ -425,14 +611,18 @@
if (counterrorbayar > 0) {
$('#spanamarankosong').removeClass("d-none");
$("#bayarsbmt").prop('disabled', true);
$("#bayarsbmt-phone").prop('disabled', true);
} else {
$('#spanamarankosong').addClass("d-none");
$("#bayarsbmt").prop('disabled', false);
$("#bayarsbmt-phone").prop('disabled', false);
}
$("#spanbayaranarrahn").text(sumarrahn.toFixed(2));
$("#spanbayarantawarruq").text(sumtawarruq.toFixed(2));
$('#spanjumlah').text(formatter.format(sum + 1));
$('#spanjumlah-phone').text(formatter.format(sum + 1));
}
if (document.addEventListener) {
@@ -450,7 +640,8 @@
<script>
document.addEventListener('DOMContentLoaded', function() {
var inputs = document.querySelectorAll('input[name="txtbayarantawarruq"]');
var inputs = document.querySelectorAll('input[name="txtbayarantawarruq"]:not([disabled])');
Array.from(inputs).forEach(function(input) {
var timer;
@@ -458,9 +649,9 @@
input.addEventListener('input', function() {
const stringHasPoint = input.value.indexOf('.') !== -1;
const stringHasMoreThanTwoDecimal = input.value.split('.')[1].length > 2;
const lastDecimalIsNotZeroOrFive = input.value.split('.')[1].slice(-1) !== '0' && input.value.split('.')[1].slice(-1) !== '5';
const stringHasTwoDecimalNumber = input.value.split('.')[1].length === 2;
const stringHasMoreThanTwoDecimal = (stringHasPoint) ? input.value.split('.')[1].length > 2 : false;
const lastDecimalIsNotZeroOrFive = (stringHasPoint) ? input.value.split('.')[1].slice(-1) !== '0' && input.value.split('.')[1].slice(-1) !== '5' : false;
const stringHasTwoDecimalNumber = (stringHasPoint) ? input.value.split('.')[1].length === 2 : false;
if (stringHasPoint && stringHasMoreThanTwoDecimal) {
input.value = input.value.split('.')[0] + '.' + input.value.split('.')[1].substring(0, 2);
@@ -95,7 +95,7 @@
}
}
$koskeuntungan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/upahtawarruq/' . $bt['kodcaw'] . '/' . $bt['norujukan'])->json();
$koskeuntungan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/upahtawarruq/' . $bt['kodcaw'] . '/' . $bt['norujukan'],['jeniskeuntungan' => ($bt['tagbaru'] == 1) ? 'onepercent' : 'asal'])->json();
$keuntungan_1bln = $bt['pinjaman'] * ($bt['kadarupah'] / 100);
$ten_percent = floatval($bt['nilaimarhun']) * 0.1;
$baki_pinjaman = floatval($bt['bakipjm']);
@@ -194,7 +194,6 @@
let berat = $(e).data('berat');
let nm = $(e).data('nm');
console.log(pinjaman,upah12,bakipjm,berat,nm);
$('#pembiayaan').text('RM ' + pinjaman);
$('#bpembiayaan').text('RM ' + bakipjm);
+10
View File
@@ -151,6 +151,16 @@
</script>
@enderror
@if (session('errorvalidate'))
<script>
Swal.fire(
"Pembayaran Gagal.",
"{{ session('errorvalidate') }}",
'error'
)
</script>
@endif
@if (\Session::has('error'))
<script>
Swal.fire(
@@ -693,7 +693,6 @@ var hargaemastable = $('#harga_emas').DataTable({
dataType: "json",
success: function(data) {
namacawangan = data[0].namacaw;
console.log(namacawangan);
namacawangan = namacawangan.toLowerCase().substring(8).replace(/\b[a-z]/g, function(value) {
return value.toUpperCase();
});
@@ -835,7 +834,6 @@ var hargaemastable = $('#harga_emas').DataTable({
async: false,
dataType: "json",
success: function(data) {
console.log(data);
for(i in data){
datalelong.push(data[i]);
}
+156 -8
View File
@@ -2,6 +2,57 @@
@section('content')
<title>Home | Portal Pelanggan</title>
<style>
@keyframes marquee {
0% {
transform: translateX(0);
}
100% {
transform: translateX(-100%);
}
}
.marquee-div-container {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 9999;
background: linear-gradient(90deg, #dc3545, #fd7e14);
padding: 10px 0;
box-shadow: 0 2px 10px rgba(0,0,0,0.2);
}
.marquee-text-display {
display: inline-block;
padding-left: 100%;
animation: marquee 30s linear infinite;
color: white;
font-weight: 500;
font-size: 16px;
}
/* Add padding to body to prevent content from hiding under marquee */
body {
padding-top: 30px;
}
</style>
<div class="marquee-div-container">
<div class="marquee-container" style="overflow: hidden; white-space: nowrap;">
<div class="marquee-text marquee-text-display">
⚠️ Tuan/Puan diminta hadir ke cawangan Ar-Rahn bagi pembayaran keuntungan SAG terpilih kerana transaksi tidak dapat dilakukan melalui ArRahnPay buat sementara waktu susulan kerja penaiktarafan sistem ⚠️
</div>
</div>
</div>
<div id="load-arrahn" class="d-none">
<div class="overlay-arrahn"></div>
<div class="loader-arrahn text-center">
<img src="{{ asset('argon/img/brand/ar-rahn-take-2.gif') }}">
</div>
</div>
<div class="row mt-n9 top-0">
<x-dashboard-card
title="Jum. Pembiayaan Semasa"
@@ -61,6 +112,17 @@
</script>
@enderror
@if (session('errorvalidate'))
<script>
Swal.fire(
"Pembayaran Gagal.",
"{{ session('errorvalidate') }}",
'error'
)
</script>
@endif
@if (\Session::has('error'))
<script>
Swal.fire(
@@ -83,6 +145,21 @@
@endif
<br>
<div class="d-flex justify-content-center mb-4">
<x-dashboard-card-small
title="Baki Lelong"
:subtitle="number_format($customerLelong['bakilelong'] ?? 0, 2)"
icon="fas fa-chart-bar"
iconState="danger"
/>
<x-dashboard-card-small
title="Rugi Lelong"
:subtitle="number_format($customerLelong['rugilelong'] ?? 0, 2)"
icon="fas fa-chart-bar"
iconState="warning"
/>
</div>
@if (request()->get('filter') == 'pembiayaan-akan-dilelong')
<x-dashboard-notification>
<x-dashboard-notification.item content="1. Sekiranya Lelongan Anda Dalam Tempoh Kontrak Lanjutan (Mencapai 12 Bulan), Urusan Penebusan Hanya Dibenarkan Di Kaunter Cawangan Selewatnya-lewatnya 3 Hari Sebelum Tarikh Lelong." />
@@ -137,27 +214,29 @@
});
let totalSagInCart = [];
let updateSagInCart = function(norujukan){
let totaltagSyarikat = [];
let updateSagInCart = function(norujukan,syarikat){
let isNorujukanIsAlreadyInCart = totalSagInCart.includes(norujukan);
if(isNorujukanIsAlreadyInCart){
totalSagInCart = totalSagInCart.filter(x => x != norujukan);
}
let index = totalSagInCart.indexOf(norujukan);
totalSagInCart = totalSagInCart.filter(x => x != norujukan);
totaltagSyarikat.splice(index, 1);
}
if(! isNorujukanIsAlreadyInCart){
totalSagInCart.push(norujukan);
totaltagSyarikat.push(syarikat);
}
};
// Add event listener to checkboxes to update total count customer wants to pay
$('#main-table').on('input', 'input[type="checkbox"][name="chkboxsag[]"]', function(el) {
let norujukan = el.target.dataset.norujukan;
let tagsyarikat = el.target.dataset.syarikat;
let isNorujukanIsChecked = el.target.checked;
updateSagInCart(norujukan);
updateSagInCart(norujukan,tagsyarikat);
document.getElementById('totalsag').innerHTML = totalSagInCart.length;
});
@@ -172,8 +251,77 @@
totalSagInCartInput.value = JSON.stringify(totalSagInCart);
event.target.appendChild(totalSagInCartInput);
event.target.submit();
let listSyarikatinCartInput = document.createElement('input');
listSyarikatinCartInput.type = 'hidden';
listSyarikatinCartInput.name = 'listSyarikatinCartInput';
listSyarikatinCartInput.value = JSON.stringify(totaltagSyarikat);
event.target.appendChild(listSyarikatinCartInput);
(async () => {
const cartsAvailable = await checkCarts();
if (!cartsAvailable || (typeof cartsAvailable === 'object' && Object.keys(cartsAvailable).length === 0)) {
// console.log('No carts available or an error occurred.');
const loader = document.getElementById('load-arrahn');
loader.classList.remove('d-none');
event.target.submit();
return;
}
Swal.fire({
title: "Troli Anda Masih Ada Lagi?",
showDenyButton: true,
showCancelButton: false,
confirmButtonText: "Pergi Ke Troli",
denyButtonText: `Buang Troli`,
allowOutsideClick: false,
allowEscapeKey: false,
}).then((result) => {
const loader = document.getElementById('load-arrahn');
loader.classList.remove('d-none');
if (result.isDenied) {
let remove_carts = fetch('/deletecarts', {method: 'GET', headers: {'Content-Type': 'application/json','Accept': 'application/json'}})
.then(response => {
if (!response.ok) {
throw new Error('HTTP error ' + response.status);
}
return response.json();
})
.catch(error => console.error(error));
}
event.target.submit();
});
})();
});
const checkCarts = async () => {
try {
const response = await fetch('/showcarts-available', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
},
});
if (!response.ok) {
throw new Error('HTTP error ' + response.status);
}
const data = await response.json();
return data;
} catch (error) {
console.error('Error fetching carts:', error);
return null;
}
};
window.addEventListener('pageshow', (event) => {
const loader = document.getElementById('load-arrahn');
if (loader) {
loader.classList.add('d-none');
}
});
</script>
@endsection
@@ -13,6 +13,12 @@
<!-- <div style="text-align: center;"><img src="{{ asset('/argon/img/brand/arrahnpay3.png') }}" style="text-align: center;"></div> -->
<h6 style="text-align: center; margin-bottom: 10%;">Log Masuk</h6>
@if(session('logsemula'))
<div class="alert alert-primary text-center font-weight-bold" style="font-size: 13px;color:white;">
{{ session('logsemula') }}
</div>
@endif
<form role="#" method="post" enctype="multipart/form-data" class="login-form" novalidate="novalidate">
@csrf
<div class="input-group input-group-outline my-3 {{ $errors->has('email') ? ' has-danger' : '' }}">
@@ -24,8 +30,41 @@
</span>
@endif
<div class="input-group input-group-outline mb-3">
<input placeholder="Kata Laluan" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" type="password" name="password" id="login-password">
<div class="input-group input-group-outline mb-3 position-relative">
<input
placeholder="Kata Laluan"
class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}"
type="password"
name="password"
id="login-password"
autocomplete="current-password"
style="padding-right: 2.5rem;"
>
<span
class="input-group-text border-0 position-absolute end-0 top-0 h-100 d-flex align-items-center"
style="cursor:pointer; z-index: 3; border-radius: 0 0.375rem 0.375rem 0; border-left: none; border: 1px solid #ced4da; background: transparent; padding: 0 12px; height: 100%; display: flex; align-items: center; box-shadow: none; top: 0; bottom: 0;"
onclick="togglePasswordVisibility()"
tabindex="0"
aria-label="Toggle password visibility"
>
<svg id="eyeIcon" xmlns="http://www.w3.org/2000/svg" width="22" height="22" fill="#6c757d" viewBox="0 0 16 16" style="transition: fill 0.2s; pointer-events: none;">
<path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8M1.173 8a13 13 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5s3.879 1.168 5.168 2.457A13 13 0 0 1 14.828 8q-.086.13-.195.288c-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5s-3.879-1.168-5.168-2.457A13 13 0 0 1 1.172 8z"/>
<path id="eyeIconInner" d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5M4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0"/>
</svg>
</span>
<script>
function togglePasswordVisibility() {
const passwordInput = document.getElementById('login-password');
const eyeIcon = document.getElementById('eyeIcon');
if (passwordInput.type === 'password') {
passwordInput.type = 'text';
eyeIcon.setAttribute('fill', '#12B652');
} else {
passwordInput.type = 'password';
eyeIcon.setAttribute('fill', '#6c757d');
}
}
</script>
</div>
@if ($errors->has('password'))
<span class="invalid-feedback" style="display: block;margin-top:-10px !important;" role="alert">
@@ -41,7 +80,7 @@
<button type="submit" class="btn bg-gradient-dark w-100 my-4 mb-2" onclick="loadingbtn();this.disabled=true;this.form.submit();" style="background: #4A4E59;">Masuk</button>
</div>
<div class="text-center mt-3" style="margin: 0% 10%;">
<a href="https://spare.arrahn.com.my/pembayaransegera" id="buttonspare" title="Pembayaran Pantas SPARE" style="color: #12B652; border: 1px solid #12B652;" class="btn my-4 mb-2" target="_blank">Bayaran Pantas (SPARE)</a href="#">
{{-- <a href="https://spare.arrahn.com.my/pembayaransegera" id="buttonspare" title="Pembayaran Pantas SPARE" style="color: #12B652; border: 1px solid #12B652;" class="btn my-4 mb-2" target="_blank">Bayaran Pantas (SPARE)</a href="#"> --}}
<!-- <a href="http://e-arrahn.test/pembayaransegera" id="buttonspare" title="Pembayaran Pantas SPARE" style="color: #12B652; border: 1px solid #12B652;" class="btn my-4 mb-2" target="_blank">Bayaran Pantas (SPARE)</a href="#"> -->
</div>
<p class="text-sm text-center">
@@ -71,12 +71,9 @@
<!-- Control Center for Material UI Kit: parallax effects, scripts for the example pages etc -->
<!-- Google Maps Plugin -->
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDTTfWur0PDbZWPr7Pmq8K3jiDp0_xUziI"></script>
{{-- <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDTTfWur0PDbZWPr7Pmq8K3jiDp0_xUziI"></script> --}}
<script src="{{ asset('assets/js/material-kit/material-kit.min.js?v=3.0.0') }}" type="text/javascript"></script>
<script>
</script>
<script>
if (document.getElementsByClassName('page-header')) {
window.onscroll = debounce(function() {
+40 -1
View File
@@ -12,7 +12,10 @@
<link href="{{ asset('css/nucleo-icons.css') }}" rel="stylesheet">
<link href="{{ asset('css/nucleo-svg.css') }}" rel="stylesheet">
<script src="https://kit.fontawesome.com/42d5adcbca.js" crossorigin="anonymous"></script>
{{-- <script src="https://kit.fontawesome.com/42d5adcbca.js" crossorigin="anonymous"></script> --}}
<link href="{{ asset('css/nucleo-svg.css') }}" rel="stylesheet">
<link href="{{ asset('argon') }}/vendor/@fortawesome/fontawesome-free/css/all.min.css" rel="stylesheet">
<link href="{{ asset('argon/css/dataTables.bootstrap4.min.css') }}" rel="stylesheet">
<script src="{{ asset('argon') }}/vendor/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
@@ -61,6 +64,42 @@
opacity: 0.8;
display: flex;
}
.loader-arrahn {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: 9999;
}
.loader-arrahn img {
width: 100px; /* Image size */
}
.loader-arrahn:before {
content: '';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 120px;
height: 120px;
background-color: rgba(0, 0, 0, 0.8);
border-radius: 50%;
z-index: -1;
}
.overlay-arrahn {
position: fixed;
z-index: 9998;
width: 100%;
height: 100%;
top: 0;
left: 0;
background-color: rgba(0, 0, 0, 0.5);
overflow: hidden;
}
</style>
@@ -1,66 +1,51 @@
<!-- <div class="container position-sticky z-index-sticky top-0">
<div class="row">
<div class="col-12">
<nav class="navbar navbar-expand-lg position-absolute top-0 z-index-3 w-100 shadow-none my-3 navbar-transparent ">
<div class="container">
<a class="navbar-brand text-white " href="#home" rel="tooltip" title="Designed and Coded by Creative Tim" data-placement="bottom">
MOHAMAD HAFIZUDDIN BIN HANAFI
</a>
<button class="navbar-toggler shadow-none ms-2" type="button" data-bs-toggle="collapse" data-bs-target="#navigation" aria-controls="navigation" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon mt-2">
<span class="navbar-toggler-bar bar1"></span>
<span class="navbar-toggler-bar bar2"></span>
<span class="navbar-toggler-bar bar3"></span>
</span>
</button>
<div class="collapse navbar-collapse w-100 pt-3 pb-2 py-lg-0 ms-lg-12 ps-lg-5" id="navigation">
<ul class="navbar-nav navbar-nav-hover ms-auto">
<li class="nav-item ms-lg-auto">
<a class="nav-link nav-link-icon me-2" href="#rekodpembelian">
<i class="fa fa-list-alt me-1"></i>
<p class="d-inline text-sm z-index-1 font-weight-bold" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Senarai Rekod Gadaian & Tebusan">Rekod Pembelian</p>
</a>
</li>
<li class="nav-item ms-lg-auto">
<a class="nav-link nav-link-icon me-2" href="#pemabayaran">
<i class="fa fa-money me-1"></i>
<p class="d-inline text-sm z-index-1 font-weight-bold" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Transaksi Pembayaran Upah">Pembayaran</p>
</a>
</li>
<li class="nav-item ms-lg-auto">
<a class="nav-link nav-link-icon me-2" href="#tebus">
<i class="fa fa-exchange me-1"></i>
<p class="d-inline text-sm z-index-1 font-weight-bold" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Tebus Marhun">Tebus</p>
</a>
</li>
<li class="nav-item ms-lg-auto">
<a class="nav-link nav-link-icon me-2" href="#analisa">
<i class="fa fa-line-chart me-1"></i>
<p class="d-inline text-sm z-index-1 font-weight-bold" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Analisa Marhun">Analisa</p>
</a>
</li>
<li class="nav-item ms-lg-auto">
<a class="nav-link nav-link-icon me-2" href="#analisa">
<i class="fa fa-microchip me-1"></i>
<p class="d-inline text-sm z-index-1 font-weight-bold" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Function Seterusnya">Next</p>
</a>
</li>
<li class="nav-item ms-lg-auto">
<a class="nav-link nav-link-icon me-2" href="portalprofile">
<i class="fa fa-user me-1"></i>
<p class="d-inline text-sm z-index-1 font-weight-bold" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Tetapan Profile">Profil</p>
</a>
</li>
<li class="nav-item my-auto ms-3 ms-lg-0">
<a href="loginportal" class="btn btn-sm bg-white mb-0 me-1 mt-2 mt-md-0">Log out</a>
</li>
</ul>
</div>
</div>
</nav>
</div>
<style>
.loader-arrahn {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: 9999;
}
.loader-arrahn img {
width: 100px; /* Image size */
}
.loader-arrahn:before {
content: '';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 120px;
height: 120px;
background-color: rgba(0, 0, 0, 0.8);
border-radius: 50%;
z-index: -1;
}
.overlay-arrahn {
position: fixed;
z-index: 9998;
width: 100%;
height: 100%;
top: 0;
left: 0;
background-color: rgba(0, 0, 0, 0.5);
overflow: hidden;
}
</style>
<script> let routetrolley = '{{ route("payment.action") }}';let csrftoken = '{{ csrf_token() }}';</script>
<script src="{{ asset('js/miscellaneous/navigation-trolley.js') }}"></script>
<div id="load-arrahn" class="d-none">
<div class="overlay-arrahn"></div>
<div class="loader-arrahn text-center">
<img src="{{ asset('argon/img/brand/ar-rahn-take-2.gif') }}">
</div>
</div> -->
</div>
<div class="container position-sticky z-index-sticky top-0">
<div class="row">
<div class="col-12">
@@ -78,24 +63,6 @@
</button>
<div class="collapse navbar-collapse pt-3 pb-2 py-lg-0 w-100" id="navigation">
<ul class="navbar-nav navbar-nav-hover ms-auto">
{{-- <li class="nav-item ms-lg-auto">
<a class="nav-link nav-link-icon me-2" href="{{ route('semaksag') }}">
<i class="fa fa-list-alt me-1"></i>
<p class="d-inline text-sm z-index-1 font-weight-bold" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Senarai Rekod Gadaian & Tebusan">Rekod Pembelian</p>
</a>
</li>
<li class="nav-item ms-lg-auto">
<a class="nav-link nav-link-icon me-2" href="{{ route('pembayaransag') }}">
<i class="fa fa-money me-1"></i>
<p class="d-inline text-sm z-index-1 font-weight-bold" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Transaksi Pembayaran Upah">Pembayaran</p>
</a>
</li>
<li class="nav-item ms-lg-auto">
<a class="nav-link nav-link-icon me-2" href="{{ route('analisa.index') }}">
<i class="fa fa-line-chart me-1"></i>
<p class="d-inline text-sm z-index-1 font-weight-bold" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Analisa Marhun">Analisa</p>
</a>
</li> --}}
<li class="nav-item ms-lg-auto">
<a class="nav-link nav-link-icon me-2" href="{{ route('profile.edit') }}">
<i class="fa fa-user me-1"></i>
@@ -108,6 +75,12 @@
<p class="d-inline text-sm z-index-1 font-weight-bold" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Manual Pengguna">Manual Pengguna</p>
</a>
</li>
<li class="nav-item ms-lg-auto">
<a id="a-redirect" class="nav-link nav-link-icon me-2 cursor-pointer" onclick="redirectTrolley()">
<i class="fa fa-shopping-cart"></i>
<p class="d-inline text-sm z-index-1 font-weight-bold" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Troli">Troli <span id="cart-count" class="badge bg-danger ms-1">0</span></p>
</a>
</li>
<li class="nav-item my-auto ms-3 ms-lg-0">
<a href="{{ route('logout') }}" class="btn btn-sm bg-white border mb-0 me-1 mt-2 mt-md-0" onclick="event.preventDefault();document.getElementById('logout-form').submit();">
<span>{{ __('LOG KELUAR') }}</span>
@@ -14,11 +14,12 @@
<td>
<input type="checkbox" name="chkboxsag[]" value="{{ $data->norujukan }}"
id="sag-{{ $loop->iteration }}" data-norujukan="{{ $data->norujukan }}"
{{ $data->disabled_payment ? 'disabled' : '' }} />
data-syarikat="{{ $data->tag_syarikat }}" {{ $data->disabled_payment ? 'disabled' : '' }} />
</td>
<td>
<a href="#" class="marhun-detail-link">
<span class="text-sm text-info">{{ $data->norujukan }}</span>
<input type="hidden" name="tag_syarikat" value="{{ $data->tag_syarikat }}"/>
</a>
</td>
<td>{{ $data->t_lelong_formatted }}</td>
@@ -12,16 +12,18 @@
</tr>
</thead>
<tbody class="list">
{{-- {{ dd($pembiayaan) }} --}}
@foreach ($pembiayaan as $data)
<tr>
<td>
<input type="checkbox" name="chkboxsag[]" value="{{ $data->norujukan }}"
id="sag-{{ $loop->iteration }}" data-norujukan="{{ $data->norujukan }}"
{{ $data->disabled_payment ? 'disabled' : '' }} />
data-syarikat="{{ $data->tag_syarikat }}" {{ $data->disabled_payment ? 'disabled' : '' }} />
</td>
<td>
<a href="#" class="marhun-detail-link">
<span class="text-sm text-info">{{ $data->norujukan }}</span>
<input type="hidden" name="tag_syarikat" value="{{ $data->tag_syarikat }}"/>
</a>
</td>
<td class="hide-xs">{{ $data->tempoh }}</td>
@@ -35,4 +37,4 @@
</tbody>
</table>
<i class="hide-xs text-success" style="font-size:12px;">"Swipe" ke kiri</i>
</div>
</div>
+53 -3
View File
@@ -117,9 +117,21 @@
</div>
<div class="col-12">
<div class="form-group{{ $errors->has('old_password') ? ' has-danger' : '' }} input-group input-group-static mb-4">
<div class="form-group{{ $errors->has('old_password') ? ' has-danger' : '' }} input-group input-group-static mb-4" style="position: relative;">
<label class="form-control-label" for="input-current-password">{{ __('Kata Laluan Semasa') }}</label>
<input type="password" name="old_password" id="input-current-password" class="form-control form-control-alternative{{ $errors->has('old_password') ? ' is-invalid' : '' }}" placeholder="Kata laluan Semasa" value="" required>
<span
class="input-group-text border-0 position-absolute end-0 top-50 translate-middle-y d-flex align-items-center"
style="cursor:pointer; z-index: 3; border-radius: 0 0.375rem 0.375rem 0; border-left: none; border: 1px solid #ced4da; background: transparent; padding: 0 12px; height: calc(100% - 26px); display: flex; align-items: center; box-shadow: none;"
onclick="togglePasswordVisibility('input-current-password', 'eyeIcon-current-password')"
tabindex="0"
aria-label="Toggle password visibility"
>
<svg id="eyeIcon-current-password" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6c757d" class="bi bi-eye" viewBox="0 0 16 16">
<path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"/>
<path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"/>
</svg>
</span>
@if ($errors->has('old_password'))
<span class="invalid-feedback" role="alert">
@@ -130,9 +142,21 @@
</div>
<div class="col-12">
<div class="form-group{{ $errors->has('password') ? ' has-danger' : '' }} input-group input-group-static mb-4">
<div class="form-group{{ $errors->has('password') ? ' has-danger' : '' }} input-group input-group-static mb-4" style="position: relative;">
<label class="form-control-label" for="input-password">{{ __('Kata Laluan Baharu') }}</label>
<input type="password" name="password" id="input-password" class="form-control form-control-alternative{{ $errors->has('password') ? ' is-invalid' : '' }}" placeholder="Masukkan kata laluan baharu" value="" required>
<span
class="input-group-text border-0 position-absolute end-0 top-50 translate-middle-y d-flex align-items-center"
style="cursor:pointer; z-index: 3; border-radius: 0 0.375rem 0.375rem 0; border-left: none; border: 1px solid #ced4da; background: transparent; padding: 0 12px; height: calc(100% - 26px); display: flex; align-items: center; box-shadow: none;"
onclick="togglePasswordVisibility('input-password', 'eyeIcon-new-password')"
tabindex="0"
aria-label="Toggle password visibility"
>
<svg id="eyeIcon-new-password" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6c757d" class="bi bi-eye" viewBox="0 0 16 16">
<path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"/>
<path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"/>
</svg>
</span>
@if ($errors->has('password'))
<span class="invalid-feedback" role="alert">
@@ -140,9 +164,21 @@
</span>
@endif
</div>
<div class="form-group input-group input-group-static mb-4">
<div class="form-group input-group input-group-static mb-4" style="position: relative;">
<label class="form-control-label" for="input-password-confirmation">{{ __('Sahkan Kata Laluan Baharu') }}</label>
<input type="password" name="password_confirmation" id="input-password-confirmation" class="form-control form-control-alternative" placeholder="Mengesahkan kata laluan baharu" value="" required>
<span
class="input-group-text border-0 position-absolute end-0 top-50 translate-middle-y d-flex align-items-center"
style="cursor:pointer; z-index: 3; border-radius: 0 0.375rem 0.375rem 0; border-left: none; border: 1px solid #ced4da; background: transparent; padding: 0 12px; height: calc(100% - 26px); display: flex; align-items: center; box-shadow: none;"
onclick="togglePasswordVisibility('input-password-confirmation', 'eyeIcon-confirm-password')"
tabindex="0"
aria-label="Toggle password visibility"
>
<svg id="eyeIcon-confirm-password" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6c757d" class="bi bi-eye" viewBox="0 0 16 16">
<path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"/>
<path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"/>
</svg>
</span>
</div>
</div>
@@ -171,4 +207,18 @@
</div>
</div>
<script>
function togglePasswordVisibility(inputId, iconId) {
const passwordInput = document.getElementById(inputId);
const eyeIcon = document.getElementById(iconId);
if (passwordInput.type === 'password') {
passwordInput.type = 'text';
eyeIcon.setAttribute('fill', '#12B652');
} else {
passwordInput.type = 'password';
eyeIcon.setAttribute('fill', '#6c757d');
}
}
</script>
@endsection
@@ -234,7 +234,6 @@
let berat = $(e).data('berat');
let nm = $(e).data('nm');
console.log(pinjaman,upah12,bakipjm,berat,nm);
$('#pembiayaan').text('RM ' + pinjaman);
$('#bpemb').text('RM ' + bakipjm);
+1 -1
View File
@@ -28,7 +28,7 @@
<!-- Control Center for Material UI Kit: parallax effects, scripts for the example pages etc -->
<!-- Google Maps Plugin -->
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDTTfWur0PDbZWPr7Pmq8K3jiDp0_xUziI"></script>
{{-- <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDTTfWur0PDbZWPr7Pmq8K3jiDp0_xUziI"></script> --}}
<script src="{{ asset('assets/js/material-kit/material-kit.min.js?v=3.0.0') }}" type="text/javascript"></script>
<script>
+71
View File
@@ -0,0 +1,71 @@
<!DOCTYPE html>
<html>
<head>
<title>Log Viewer Login</title>
<style>
html, body {
height: 100%;
margin: 0;
}
body {
display: flex;
align-items: center;
justify-content: center;
font-family: sans-serif;
background-color: #f9f9f9;
}
.login-container {
padding: 2rem;
border: 1px solid #ccc;
border-radius: 8px;
background-color: white;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
text-align: center;
}
input[type="password"] {
padding: 0.5rem;
width: 100%;
margin-top: 1rem;
margin-bottom: 1rem;
border: 1px solid #ccc;
border-radius: 4px;
}
button {
padding: 0.5rem 1rem;
background-color: #4CAF50;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
}
button:hover {
background-color: #45a049;
}
.error {
color: red;
margin-bottom: 1rem;
}
</style>
</head>
<body>
<div class="login-container">
<h2>Masukkan Kata Laluan Untuk Akses</h2>
@if (session('error'))
<p class="error">{{ session('error') }}</p>
@endif
<form method="POST" action="{{ route('log-login') }}">
@csrf
<input type="password" name="password" placeholder="Kata Laluan" required />
<button type="submit">Masuk</button>
</form>
</div>
</body>
</html>
+25 -26
View File
@@ -1,6 +1,6 @@
<link href="{{ asset('css/customportal.css') }}" rel="stylesheet">
<div id="marhunLoader" class="loader" style="display: none;"></div>
{{-- <div id="marhunLoader" class="loader" style="display: none;"></div> --}}
<div class="modal animate__animated animate__bounceInDown" id="marhunModal">
<div class="modal-dialog modal-lg modal-dialog-centered">
@@ -208,20 +208,18 @@
@push('additional_js_scripts')
<script>
const showMarhunDetailModal = async function(event) {
const showMarhunDetailModal = async function (event, tagsyarikat) {
event.preventDefault();
document.getElementById('marhunLoader').style.display = 'flex';
const norujukan = event.target.innerHTML;
const loader = document.getElementById('load-arrahn');
loader.classList.remove('d-none');
try {
const response = await fetch(`/api/pembiayaan-modal-data/${norujukan}/${tagsyarikat}`);
const data = await response.json();
const data = await fetch('/api/pembiayaan-modal-data/' + norujukan).then(x => x.json());
const formatter = new Intl.NumberFormat('en-US', {
minimumFractionDigits: 2
});
const formatter = new Intl.NumberFormat('en-US', { minimumFractionDigits: 2 });
$('#pembiayaan').text('RM' + formatter.format(data.gadaianDetails.pinjaman));
$('#bpembiayaan').text('RM' + formatter.format(data.gadaianDetails.bakipjm));
@@ -238,21 +236,20 @@
$('#pinjaman_modal').val(data.gadaianDetails.pinjaman);
$('#marhunModal').modal('show');
const table_bayaran_history = $('#tablehistorybayaran').DataTable();
const table_marhun = $('#biasa').DataTable();
$('#tablehistorybayaran').DataTable().clear().destroy();
let table_bayaran_history = $('#tablehistorybayaran').DataTable();
$('#biasa').DataTable().clear().destroy();
let table_marhun = $('#biasa').DataTable();
table_bayaran_history.clear();
data.bayaranHistoryDetails.forEach((x, index) => {
table_bayaran_history.row.add([
index + 1,
x.created_at,
`RM ${x.duit_masuk} <a target='_blank' href="${x.resit_ansuran_link}" class='btn btn-info btn-sm'><span class='fas fa-print'></span></a>`,
]).draw(false)
`RM ${x.duit_masuk} <a target='_blank' href="${x.resit_ansuran_link}" class='btn btn-info btn-sm'><span class='fas fa-print'></span></a>`,
]);
});
table_bayaran_history.draw();
table_marhun.clear();
data.marhunDetails.forEach((x, index) => {
table_marhun.row.add([
index + 1,
@@ -260,16 +257,14 @@
x.berat,
x.karat,
`RM ${formatter.format(x.n_marhun)}`,
x.nota
]).draw(false)
x.nota,
]);
});
document.getElementById('marhunLoader').style.display = 'none';
table_marhun.draw();
} catch (error) {
console.error('Error fetching data:', error);
// Hide loader in case of error
document.getElementById('marhunLoader').style.display = 'none';
} finally {
loader.classList.add('d-none');
}
};
@@ -277,7 +272,11 @@
$('#main-table').on('click', 'a.marhun-detail-link', function(e) {
showMarhunDetailModal(e)
const loader = document.getElementById('load-arrahn');
loader.classList.remove('d-none');
const tag_syarikat = $(this).find('input[name="tag_syarikat"]').val();
showMarhunDetailModal(e,tag_syarikat)
});
});
@@ -290,5 +289,5 @@
document.querySelector('#marhunModal').addEventListener('hidden.bs.modal', function(e) {
document.querySelector('#marhunModal .modal-header a[aria-controls="pills-marhun"]').click();
});
</script>')
</script>
@endpush
+1 -1
View File
@@ -467,7 +467,7 @@
<script src="../assets/vendor/jquery.scrollbar/jquery.scrollbar.min.js"></script>
<script src="../assets/vendor/jquery-scroll-lock/dist/jquery-scrollLock.min.js"></script>
<!-- Optional JS -->
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDTTfWur0PDbZWPr7Pmq8K3jiDp0_xUziI"></script>
{{-- <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDTTfWur0PDbZWPr7Pmq8K3jiDp0_xUziI"></script> --}}
<!-- Argon JS -->
<script src="../assets/js/argon.js?v=1.2.0"></script>
</body>
@@ -158,7 +158,7 @@
</td>
<td>
@php
$upahtawarruq = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/upahtawarruq/'. $bayar['kodcaw'] . '/' . $bayar['norujukan'])->json();
$upahtawarruq = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/upahtawarruq/'. $bayar['kodcaw'] . '/' . $bayar['norujukan'],['jeniskeuntungan' => ($bayar['tagbaru'] == 1) ? 'onepercent' : 'asal'])->json();
@endphp
{{ $upahtawarruq }}
</td>
@@ -0,0 +1,99 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>{{ config('app.name') }} | Pembayaran Berjaya</title>
<!-- Tell the browser to be responsive to screen width -->
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<link href="{{ mix('css/app.css') }}" rel="stylesheet">
<style>
.card_shadow{
box-shadow:0 0 6px 0 rgb(0 0 0 / 20%);
border-radius:4px;
}
hr.dashed {
border-top: 1px dashed;
}
</style>
</head>
<body>
<div style="font-family: Arial, sans-serif; font-size: 12px; margin: 20px;">
<div style="text-align: center; margin-bottom: 20px;">
<img src="{{ asset('argon') }}/img/brand/arrahnlogo.png" height="50" alt="Logo Ar Rahn" />
<img src="{{ asset('argon') }}/img/brand/nama.png" height="50" alt="Logo Ar Rahn" />
</div>
<div style="margin-bottom: 10px;">
<small>Pelanggan yang dihargai,</small>
</div>
<div style="margin-bottom: 20px;">
<small>Terima kasih kerana menggunakan perkhidmatan kami.</small>
</div>
<hr />
<div style="display: flex; justify-content: space-between; margin-bottom: 10px;">
<div>Status Bayaran</div>
<div style="color: #4BB543;">Berjaya</div>
</div>
<hr style="border-style: dashed;" />
<div style="display: flex; justify-content: space-between; margin-bottom: 10px;">
<div>ID Transaksi</div>
<div>{{ $payment_details['reference_no'] }}</div>
</div>
<hr style="border-style: dashed;" />
<div style="display: flex; justify-content: space-between; margin-bottom: 10px;">
<div>No. Surat Akuan Gadai</div>
<div>{{ $payment_details['norujukan'] }}</div>
</div>
<hr style="border-style: dashed;" />
<div style="display: flex; justify-content: space-between; margin-bottom: 10px;">
<div>Nama Pelanggan</div>
<div>{{ $payment_details['customer_name'] }}</div>
</div>
<hr style="border-style: dashed;" />
<div style="display: flex; justify-content: space-between; margin-bottom: 10px;">
<div>Tarikh Transaksi</div>
@php
$myDateTime = DateTime::createFromFormat('Y-m-d', $payment_details['tarikh'] );
$formattedweddingdate = $myDateTime->format('d/m/Y');
@endphp
<div>{{ $formattedweddingdate . ' ' . $payment_details['masa'] }}</div>
</div>
<hr style="border-style: dashed;" />
<div style="display: flex; justify-content: space-between; margin-bottom: 10px;">
<div>Jumlah Bayaran</div>
<div>RM {{ number_format($payment_details['total_payment'], 2) }}</div>
</div>
@if($gadai['hargajualan'] == 0)
<hr style="border-style: dashed;" />
<div style="display: flex; justify-content: space-between; margin-bottom: 10px; color: red;">
<div>Tarikh Lanjutan</div>
<div>31/12/2021</div>
</div>
@endif
<hr />
<div style="color: red; margin-bottom: 10px;">
<small>Sebarang pembayaran akan dikemaskini selepas <b>1 Jam</b> sebaik pembayaran dilakukan</small>
</div>
<div style="margin-bottom: 20px;">
<small>Nota: Resit ini adalah cetakan komputer dan tandatangan tidak diperlukan.</small>
</div>
<div style="text-align: center; margin-top: 20px;">
<small><b>{{ $cawangan_detail['namacaw'] }}</b></small><br />
<small>{{ $cawangan_detail['alamat1'] . ' ' . $cawangan_detail['alamat2'] }}</small>
</div>
</div>
<script>
window.print();
setTimeout(function () {
window.close();
}, 100);
</script>
</body>
</html>
@@ -126,12 +126,19 @@
</div>
</div>
</div>
<div class="row justify-content-center">
<div class="col-12 text-center" id="rem">
<a class="btn btn-primary"onclick="loadingbtn();" href="{{ route('home') }}">Kembali Muka Hadapan</a>
<button class="btn btn-primary" onclick="cetakresit()">Cetak Resit</button>
<form method="POST" name="generateresit" action="{{ route('resit.pdf') }}" target="_blank" id="myForm">
<div class="row justify-content-center">
<div class="col-12 text-center" id="rem">
@csrf
<input type="hidden" name="billplzid" value="{{ $payment_details['billplz_id'] }}">
<input type="hidden" name="norujukan" value="{{ $payment_details['norujukan'] }}">
<input type="hidden" name="company" value="{{ $company }}">
<input type="hidden" name="jenis" value="pdf">
<a class="btn btn-primary"onclick="loadingbtn();" href="{{ route('home') }}">Kembali Muka Hadapan</a>
<button class="btn btn-primary" onclick="cetakresit()">Cetak Resit</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
@@ -139,13 +146,11 @@
<script>
function cetakresit()
{
let hiding = document.getElementById("rem");
hiding.style.display = "none";
window.print();
hiding.style.display = "block";
}
{
let form = document.getElementById("myForm");
form.submit();
}
</script>
</body>
@@ -36,10 +36,46 @@
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
<center>
<span class="far fa-check-circle fa-6x" style="color:green;"></span>
<h4 class="text-success mt-1 mb-1">Pembayaran Berjaya</h4>
@if($exist_carts)
<span class="text-dark">
Terima kasih atas pembayaran! Anda akan dibawa ke troli dalam masa <span id="remaining">10</span> saat.
</span>
<script>
let remainingElement = document.getElementById('remaining');
let remainingSeconds = parseInt(remainingElement.textContent, 10);
const remaining_countdown = () => {
if (remainingSeconds > 0) {
remainingSeconds--;
remainingElement.textContent = remainingSeconds;
} else {
clearInterval(interval);
let form = document.createElement('form');
form.method = 'POST';
form.action = '{{ route("payment.action") }}';
let csrfInput = document.createElement('input');
csrfInput.type = 'hidden';
csrfInput.name = '_token';
csrfInput.value = '{{ csrf_token() }}';
form.appendChild(csrfInput);
let redirectInput = document.createElement('input');
redirectInput.type = 'hidden';
redirectInput.name = 'redirect_trolley';
redirectInput.value = 'trolley';
form.appendChild(redirectInput);
document.body.appendChild(form);
form.submit();
}
};
const interval = setInterval(remaining_countdown, 1000);
</script>
@endif
<div class="row mb-4" style="margin-top:10px;">
<div class="col-12 text-dark"><small>*Sebarang pembayaran akan dikemaskini selepas <b>1 Jam</b></small></div>
</div>
@@ -190,7 +190,7 @@
}
}
$koskeuntungan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/upahtawarruq/' . $bt['kodcaw'] . '/' . $bt['norujukan'])->json();
$koskeuntungan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/upahtawarruq/' . $bt['kodcaw'] . '/' . $bt['norujukan'],['jeniskeuntungan' => ($bt['tagbaru'] == 1) ? 'onepercent' : 'asal'])->json();
$keuntungan_1bln = $bt['pinjaman'] * ($bt['kadarupah'] / 100);
$ten_percent = floatval($bt['nilaimarhun']) * 0.1;
$baki_pinjaman = floatval($bt['bakipjm']);
+78 -41
View File
@@ -55,7 +55,8 @@
}
#nosiri {
text-align: right;
text-align: left;
padding-left: 13px;
font-family: Arial, Helvetica, sans-serif;
border-collapse: collapse;
width: 100%;
@@ -67,8 +68,16 @@
}
#title p {
/*
width: 700px;
font-size: 13px;
vertical-align: text-top; */
height: 30px;
vertical-align: text-top;
text-align: center;
font-size: 13px;
font-family: "Times New Roman", Times, serif;
font-weight: bold;
}
#details {
@@ -88,13 +97,23 @@
}
#details td {
width: 25%;
text-wrap: nowrap;
}
#detail {
width: 100%;
}
#detail td {
text-align: justify; /
padding: 5px;
}
#note {
font-family: Arial, Helvetica, sans-serif;
border-collapse: collapse;
width: 100%;
font-size: 12px;
font-size: 10px;
font-weight: bold;
}
@@ -103,6 +122,17 @@
}
</style>
<style>
#detail {
width: 100%;
font-size: 12px;
}
.custom-box {
width: 16px;
height: 16px;
}
</style>
<body>
<table style="width:100%;">
<tr>
@@ -124,11 +154,22 @@
</div>
</td>
<td>
<div id="nosiri">
<p>Tarikh Cetak: {{$tarikh_cetak}}</p>
<p>No Siri: {{$nosiri}}</p>
</div>
</td>
<div style="display: flex; align-items: center;">
<div style="margin-left: 15px;">
@php
echo '<img src="data:image/png;base64,' .
DNS1D::getBarcodePNG($gadai_details['norujukan'], 'C128', 1, 30) .
'" alt="barcode" />';
@endphp
</div>
<div id="nosiri">
<p>Tarikh Cetak: {{$tarikh_cetak}}</p>
<p>No Siri: {{$nosiri}}</p>
<p>Cetakan: Ar-Rahn Pay</p>
</div>
</div>
</td>
</tr>
</table>
<div class="grid-container flex-print" style="margin-bottom: 10px;">
@@ -171,39 +212,36 @@
<table id="details" style="margin-top:20px; width:100%;">
<tr>
<td colspan="2">
Saya seperti nama di atas, ingin memaklumkan kepada Ar-Rahn Koperasi Permodalan Kelantan Berhad
bagi Cawangan {{ $cawangan_detail['namacaw'] }}, bahawa saya tidak dapat hadir untuk melakukan transaksi:
</td>
</tr>
<table>
<tr>
<td colspan="2">
<span>
<th><input type="checkbox"></td>
<th>Penyelesaian Penuh</td>
</span>
Saya seperti nama di atas, ingin memaklumkan kepada Ar-Rahn Koperasi Permodalan Kelantan Berhad
bagi Cawangan {{ $cawangan_detail['namacaw'] }}, bahawa saya tidak dapat hadir untuk melakukan transaksi:
</td>
<!-- <td colspan="2">
<span>
<th><input type="checkbox"></td>
<th>Penyelesaian Penuh dan Permohonan Pembiayaan Baru</td>
</span>
</td> -->
</tr>
</table>
<table id="details" style="margin-top:20px;">
<tr>
<td colspan="2">1. Saya melantik nama dibawah sebagai wakil bagi pihak saya untuk transaksi sebagaimana di atas. Maklumat wakil adalah seperti berikut:</td>
</tr>
</table>
<table id="detail" style="margin-top:10px;">
<tr>
<td colspan="2">2. Saya mengaku tidak akan membuat apa-apa Tuntutan @ Ganti Rugi atas kebarangkalian @ kerugian yang berlaku disebabkan perlantikan wakil bagi apa-apa transaksi sebagai wakil saya.
<td >
<input type="checkbox" id="agree-box" class="custom-box"><strong>Penyelesaian Penuh</strong>
<input type="checkbox" id="agree-box" class="custom-box"><strong>Penyelesaian Penuh dan Permohonan Pembiayaan Baru</strong>
</td>
</tr>
</table>
<table id="details" style="margin-top:20px;">
<table id="details" style="margin-top:20px; width:100%;">
<tr>
<td colspan="2">
1. Saya melantik nama dibawah sebagai wakil bagi pihak saya untuk transaksi sebagaimana di atas. Maklumat wakil adalah seperti
berikut:
</td>
</tr>
<tr>
<td colspan="2">2. Saya mengaku tidak akan membuat apa-apa Tuntutan @ Ganti Rugi atas kebarangkalian @
kerugian yang berlaku disebabkan perlantikan wakil bagi apa-apa transaksi sebagai wakil saya.
</td>
</tr>
</table>
<table id="details" style="margin-top:10px;">
<tr>
<th style="width: 180px">Nama </td>
<td>:</td>
@@ -228,16 +266,16 @@
<table id="details" style="margin-top:10px; width: 100%; text-align: left;">
<tr>
<th style="width: 33%;">Tandatangan Pelanggan</th>
<th style="width: 33%;">Tandatangan Wakil</th>
<th style="width: 33%; height:50px;">Tandatangan Pelanggan</th>
<th style="width: 33%; height:50px;">Tandatangan Wakil</th>
</tr>
<tr>
<td style="padding: 10px;">
<td style="padding: 10px; height:50px;" >
___________________________________<br>
Nama : {{$customer_detail['nama']}}<br>
Tarikh :
</td>
<td style="padding: 10px;">
<td style="padding: 10px; height:50px;">
___________________________________<br>
Nama : <br>
Tarikh :
@@ -247,10 +285,10 @@
<table id="details" style="margin-top:10px; width: 100%; text-align: left;">
<tr>
<th style="width: 33%;">Tandatangan Pengurus Cawangan</th>
<th style="width: 33%; height:50px;">Tandatangan Pengurus Cawangan</th>
</tr>
<tr>
<td style="padding: 10px;">
<td style="padding: 10px; height:50px;">
___________________________________<br>
Nama : <br>
Tarikh :
@@ -262,13 +300,12 @@
<div id="note">
<p>*Penting:</p>
<p>&nbsp; a) Sila lampirkan bersama:</p>
<p>&nbsp;a) Sila lampirkan bersama:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; i. Salinan kad pengenalan diri pelanggan dan kad pengenalan diri wakil yang dilantik.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; ii. SAG asal pelanggan</p>
<p>&nbsp;b) Pastikan tandatangan pelanggan adalah sama dengan tandatangan di Surat Akuan Gadai.</p>
<p>&nbsp;b) Pastikan tandatangan pelanggan di dalam Surat Perlantikan Wakil ini adalah sama dengan tandatangan di Surat Akuan Gadai.</p>
</div>
</table>
</body>
+53 -3
View File
@@ -98,9 +98,21 @@
@endif
<div class="pl-lg-4">
<div class="form-group{{ $errors->has('old_password') ? ' has-danger' : '' }}">
<div class="form-group{{ $errors->has('old_password') ? ' has-danger' : '' }}" style="position: relative;">
<label class="form-control-label" for="input-current-password">{{ __('Current Password') }}</label>
<input type="password" name="old_password" id="input-current-password" class="form-control form-control-alternative{{ $errors->has('old_password') ? ' is-invalid' : '' }}" placeholder="{{ __('Current Password') }}" value="" required>
<span
class="input-group-text border-0 position-absolute end-0 top-50 translate-middle-y d-flex align-items-center"
style="cursor:pointer; z-index: 3; border-radius: 0 0.375rem 0.375rem 0; border-left: none; border: 1px solid #ced4da; background: transparent; padding: 0 12px; height: calc(100% - 26px); display: flex; align-items: center; box-shadow: none;"
onclick="togglePasswordVisibility('input-current-password', 'eyeIcon-current-password')"
tabindex="0"
aria-label="Toggle password visibility"
>
<svg id="eyeIcon-current-password" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6c757d" class="bi bi-eye" viewBox="0 0 16 16">
<path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"/>
<path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"/>
</svg>
</span>
@if ($errors->has('old_password'))
<span class="invalid-feedback" role="alert">
@@ -108,9 +120,21 @@
</span>
@endif
</div>
<div class="form-group{{ $errors->has('password') ? ' has-danger' : '' }}">
<div class="form-group{{ $errors->has('password') ? ' has-danger' : '' }}" style="position: relative;">
<label class="form-control-label" for="input-password">{{ __('New Password') }}</label>
<input type="password" name="password" id="input-password" class="form-control form-control-alternative{{ $errors->has('password') ? ' is-invalid' : '' }}" placeholder="{{ __('New Password') }}" value="" required>
<span
class="input-group-text border-0 position-absolute end-0 top-50 translate-middle-y d-flex align-items-center"
style="cursor:pointer; z-index: 3; border-radius: 0 0.375rem 0.375rem 0; border-left: none; border: 1px solid #ced4da; background: transparent; padding: 0 12px; height: calc(100% - 26px); display: flex; align-items: center; box-shadow: none;"
onclick="togglePasswordVisibility('input-password', 'eyeIcon-new-password')"
tabindex="0"
aria-label="Toggle password visibility"
>
<svg id="eyeIcon-new-password" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6c757d" class="bi bi-eye" viewBox="0 0 16 16">
<path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"/>
<path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"/>
</svg>
</span>
@if ($errors->has('password'))
<span class="invalid-feedback" role="alert">
@@ -118,9 +142,21 @@
</span>
@endif
</div>
<div class="form-group">
<div class="form-group" style="position: relative;">
<label class="form-control-label" for="input-password-confirmation">{{ __('Confirm New Password') }}</label>
<input type="password" name="password_confirmation" id="input-password-confirmation" class="form-control form-control-alternative" placeholder="{{ __('Confirm New Password') }}" value="" required>
<span
class="input-group-text border-0 position-absolute end-0 top-50 translate-middle-y d-flex align-items-center"
style="cursor:pointer; z-index: 3; border-radius: 0 0.375rem 0.375rem 0; border-left: none; border: 1px solid #ced4da; background: transparent; padding: 0 12px; height: calc(100% - 26px); display: flex; align-items: center; box-shadow: none;"
onclick="togglePasswordVisibility('input-password-confirmation', 'eyeIcon-confirm-password')"
tabindex="0"
aria-label="Toggle password visibility"
>
<svg id="eyeIcon-confirm-password" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6c757d" class="bi bi-eye" viewBox="0 0 16 16">
<path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"/>
<path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"/>
</svg>
</span>
</div>
<div class="text-center">
@@ -137,4 +173,18 @@
{{-- @include('layouts.footers.auth') --}}
</div>
<script>
function togglePasswordVisibility(inputId, iconId) {
const passwordInput = document.getElementById(inputId);
const eyeIcon = document.getElementById(iconId);
if (passwordInput.type === 'password') {
passwordInput.type = 'text';
eyeIcon.setAttribute('fill', '#12B652');
} else {
passwordInput.type = 'password';
eyeIcon.setAttribute('fill', '#6c757d');
}
}
</script>
@endsection