Compare commits
67 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d6df3e744c | |||
| 166215b989 | |||
| f895ddb404 | |||
| ac519f7a5f | |||
| 71537d4deb | |||
| a555406b2b | |||
| 3c9b224ad2 | |||
| aa8647aad4 | |||
| e4d50e9e1c | |||
| 23408d327c | |||
| 59efddb005 | |||
| e1f17472eb | |||
| 8512205b87 | |||
| 1ba51d1158 | |||
| e95e7671ed | |||
| 1d4c5d47f3 | |||
| 4e5d6d4d3d | |||
| 7718b137c7 | |||
| 41bacebd54 | |||
| 302584f137 | |||
| 4ed8067239 | |||
| a0a50b42a0 | |||
| 14677ea777 | |||
| 9e840c0439 | |||
| 3d66712c4e | |||
| 1058ece282 | |||
| e5666e1106 | |||
| 59b0118100 | |||
| 9a40c39349 | |||
| cbd8ea5c52 | |||
| 34c06649b7 | |||
| 6974e48b6e | |||
| d52eee991b | |||
| f2ee3b8031 | |||
| ce6c2c4f3e | |||
| a0ed815f8e | |||
| 330cbadeff | |||
| fcc61171c5 | |||
| 31aaca59a9 | |||
| ae417aa90d | |||
| 60aac19737 | |||
| 7927e102df | |||
| 887922b7da | |||
| 5606c892e3 | |||
| ef9882c9c4 | |||
| a709104090 | |||
| d20cfa1214 | |||
| 1983de4e3b | |||
| c77e619be5 | |||
| c388782650 | |||
| d671b634ea | |||
| 36cfb10315 | |||
| 4e67e10d0d | |||
| 3d1b4c7643 | |||
| e9f8c7ac30 | |||
| 5a8bc6dfed | |||
| 4dc4a53cdb | |||
| e31411ae71 | |||
| 365b614020 | |||
| 9128bdbc85 | |||
| 85510305e3 | |||
| b2dfd421a7 | |||
| fc15e555ec | |||
| 9031e8d7d8 | |||
| 1ba4a1fe19 | |||
| a2350d36f3 | |||
| 9307ea5e1d |
@@ -1,11 +0,0 @@
|
|||||||
.git
|
|
||||||
node_modules
|
|
||||||
vendor
|
|
||||||
storage/logs
|
|
||||||
storage/framework/cache
|
|
||||||
storage/framework/sessions
|
|
||||||
storage/framework/views
|
|
||||||
storage/debugbar
|
|
||||||
npm-debug.log
|
|
||||||
Dockerfile
|
|
||||||
docker-compose.yml
|
|
||||||
+7
-11
@@ -1,23 +1,19 @@
|
|||||||
APP_NAME=Laravel
|
APP_NAME=Laravel
|
||||||
APP_ENV=local
|
APP_ENV=local
|
||||||
APP_KEY=base64:O1XZDqK4H6+3GdrODgCaLr2l+OoWvgVhYr0GJ1KizW8=
|
APP_KEY=base64:WRTHcFTq5YARKVdA8YDUzsh9Ue8vD63ivgZgXNNBiGo=
|
||||||
APP_DEBUG=true
|
APP_DEBUG=true
|
||||||
APP_URL=http://localhost
|
APP_URL=http://ujrahkopkb.erahn.com.my
|
||||||
# API_URL=http://api-annurv2.test
|
API_URL=http://apiujrah-kopkb.erahn.com.my
|
||||||
API_URL=http://host.docker.internal:8080
|
#API_ARRAHNBID=http://lelong.test/api/
|
||||||
API_URL_KOOP=http://host.docker.internal:8080
|
|
||||||
API_URL_PKB=http://host.docker.internal:8080
|
|
||||||
API_ARRAHNBID=http://lelong.test/api/
|
|
||||||
|
|
||||||
LOG_CHANNEL=stack
|
LOG_CHANNEL=stack
|
||||||
LOG_LEVEL=debug
|
|
||||||
|
|
||||||
DB_CONNECTION=mysql
|
DB_CONNECTION=mysql
|
||||||
DB_HOST=mysql
|
DB_HOST=127.0.0.1
|
||||||
DB_PORT=3306
|
DB_PORT=3306
|
||||||
DB_DATABASE=kaunter_erahn
|
DB_DATABASE=kaunter_erahn
|
||||||
DB_USERNAME=kaunteruser
|
DB_USERNAME=spider
|
||||||
DB_PASSWORD=password
|
DB_PASSWORD=G0dz!ll4
|
||||||
|
|
||||||
BROADCAST_DRIVER=pusher
|
BROADCAST_DRIVER=pusher
|
||||||
CACHE_DRIVER=file
|
CACHE_DRIVER=file
|
||||||
+1
-1
@@ -11,5 +11,5 @@ Homestead.yaml
|
|||||||
npm-debug.log
|
npm-debug.log
|
||||||
yarn-error.log
|
yarn-error.log
|
||||||
/.vscode
|
/.vscode
|
||||||
|
docker-compose.yml
|
||||||
docker_src/
|
docker_src/
|
||||||
**/.DS_Store
|
|
||||||
@@ -1,51 +1 @@
|
|||||||
If you does't know what is this you probably in wrong project
|
If you does't know what is this you probably in wrong project
|
||||||
|
|
||||||
```sql
|
|
||||||
--- for all ip
|
|
||||||
CREATE USER 'kaunteruser'@'%' IDENTIFIED BY 'your_password';
|
|
||||||
|
|
||||||
--- for specific ip
|
|
||||||
CREATE USER 'kaunteruser'@'localhost' IDENTIFIED BY 'your_password';
|
|
||||||
|
|
||||||
GRANT ALL PRIVILEGES ON kaunter_erahn.* TO 'kaunteruser'@'%';
|
|
||||||
FLUSH PRIVILEGES;
|
|
||||||
```
|
|
||||||
|
|
||||||
# ADDITIONAL NOTE
|
|
||||||
|
|
||||||
## customers/v2/index.blade.php is modal to register customer
|
|
||||||
|
|
||||||
## Min Komoditi = RM5000
|
|
||||||
|
|
||||||
# System Flowchart
|
|
||||||
|
|
||||||
## Proses Gadaian
|
|
||||||
1) Pelanggan datang bawa marhun
|
|
||||||
2) Teller daftar maklumat pelanggan jika pelanggan baharu
|
|
||||||
3) Serah marhun ke penilai untuk timbang
|
|
||||||
4) Teller daftar marhun di sistem berdasarkan maklumat dari penilai
|
|
||||||
5) Penilai print SAG dan serah marhun ke Khazanah (PC/PPC) - __khazanah can still scan still scan though__
|
|
||||||
6) Khazanah scan barcode dekat SAG untuk masuk ke dalam peti besi
|
|
||||||
* table involved - gadai.semakbarcode (default is blank, after is Lulus)
|
|
||||||
7) DONE
|
|
||||||
|
|
||||||
## Setup new branch command:
|
|
||||||
1. Duplicate previous branch table - use erahn_{{name}}
|
|
||||||
```sql
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
SET SESSION group_concat_max_len = 1000000;
|
|
||||||
|
|
||||||
SELECT GROUP_CONCAT(
|
|
||||||
CONCAT('TRUNCATE TABLE `', table_name, '`')
|
|
||||||
SEPARATOR '; '
|
|
||||||
) INTO @sql
|
|
||||||
FROM information_schema.tables
|
|
||||||
WHERE table_schema = DATABASE();
|
|
||||||
|
|
||||||
SELECT @sql; --- copy the output and paste it
|
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
```
|
|
||||||
2. Add new cawangan kod on master_erahn.arrahn_master_db and and kaunter_erahn.cawangan
|
|
||||||
3. Register new cawangan detail in erahn_{{name}}.cawangan
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
## CAWANGAN XTRA - X0301
|
|
||||||
- WAN NUR FATIN NATASYA BINTI W M AZHARI - PENILAI
|
|
||||||
- MOHAMAD KHAIRULNIZAN BIN JUSOF - TELLER
|
|
||||||
- MOHAMAD AZUHAIDIE BIN AHMAD - PPC
|
|
||||||
- WAN NURUL AMIRA BINTI WAN HARON - PC
|
|
||||||
|
|
||||||
## Akaun
|
|
||||||
- admin@test.com
|
|
||||||
- admin2@test.com
|
|
||||||
|
|
||||||
Module Gadai Online:
|
|
||||||
- Langkah 1
|
|
||||||
- Langkah 2
|
|
||||||
[x] PC akan tekan submit, then customer akan masuk ke senarai online mengikut batch
|
|
||||||
[x] PC boleh semak list customer yang pilih gadai online
|
|
||||||
- Langkah 3 (Operasi)
|
|
||||||
[x] dapat dalam bentuk list
|
|
||||||
[x] Apa jadi kalau operasi reject? - patah balik ke pc, untuk pc buat semakan balik
|
|
||||||
- Langkah 4
|
|
||||||
- Langkah 5
|
|
||||||
- Langkah 6
|
|
||||||
- Langkah 7
|
|
||||||
[x] Macam mana PC nak tahu pembayaran berjaya (Tally PAID page)
|
|
||||||
[x] Kalau online, dia kena upload kat mana (Operasi: PAID + bukti)
|
|
||||||
- Langkah 8
|
|
||||||
[x] PC semak senarai pelanggan gadai tu tally atau tak
|
|
||||||
[ ] PC tekan butang blast ke (tanda selesai ada; WhatsApp/SMS belum wire)
|
|
||||||
+4
-67
@@ -1,83 +1,20 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App;
|
namespace App;
|
||||||
|
|
||||||
use DateTime;
|
use DateTime;
|
||||||
|
|
||||||
class Helper
|
class Helper
|
||||||
{
|
{
|
||||||
|
|
||||||
public static function formatNumber($amount)
|
public static function formatNumber($amount)
|
||||||
{
|
{
|
||||||
return number_format($amount, 2, '.', ',');
|
$formattedAmount = number_format($amount, 2, '.', ',');
|
||||||
|
|
||||||
|
return $formattedAmount;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function formatDate($date_string)
|
public static function formatDate($date_string)
|
||||||
{
|
{
|
||||||
return (new DateTime($date_string))->format("d-m-Y");
|
return (new DateTime($date_string))->format("d-m-Y");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function terbilangBm(int $number): string
|
|
||||||
{
|
|
||||||
$units = [
|
|
||||||
0 => 'kosong',
|
|
||||||
1 => 'satu',
|
|
||||||
2 => 'dua',
|
|
||||||
3 => 'tiga',
|
|
||||||
4 => 'empat',
|
|
||||||
5 => 'lima',
|
|
||||||
6 => 'enam',
|
|
||||||
7 => 'tujuh',
|
|
||||||
8 => 'lapan',
|
|
||||||
9 => 'sembilan',
|
|
||||||
10 => 'sepuluh',
|
|
||||||
11 => 'sebelas'
|
|
||||||
];
|
|
||||||
|
|
||||||
if ($number < 0) return 'negatif ' . self::terbilangBm(abs($number));
|
|
||||||
if ($number < 12) return $units[$number];
|
|
||||||
if ($number < 20) return self::terbilangBm($number - 10) . ' belas';
|
|
||||||
if ($number < 100) {
|
|
||||||
$tens = intdiv($number, 10);
|
|
||||||
$rest = $number % 10;
|
|
||||||
return self::terbilangBm($tens) . ' puluh' . ($rest ? ' ' . self::terbilangBm($rest) : '');
|
|
||||||
}
|
|
||||||
if ($number < 200) return 'seratus' . ($number > 100 ? ' ' . self::terbilangBm($number - 100) : '');
|
|
||||||
if ($number < 1000) {
|
|
||||||
$hundreds = intdiv($number, 100);
|
|
||||||
$rest = $number % 100;
|
|
||||||
return self::terbilangBm($hundreds) . ' ratus' . ($rest ? ' ' . self::terbilangBm($rest) : '');
|
|
||||||
}
|
|
||||||
if ($number < 2000) return 'seribu' . ($number > 1000 ? ' ' . self::terbilangBm($number - 1000) : '');
|
|
||||||
if ($number < 1000000) {
|
|
||||||
$thousands = intdiv($number, 1000);
|
|
||||||
$rest = $number % 1000;
|
|
||||||
return self::terbilangBm($thousands) . ' ribu' . ($rest ? ' ' . self::terbilangBm($rest) : '');
|
|
||||||
}
|
|
||||||
if ($number < 1000000000) {
|
|
||||||
$millions = intdiv($number, 1000000);
|
|
||||||
$rest = $number % 1000000;
|
|
||||||
return self::terbilangBm($millions) . ' juta' . ($rest ? ' ' . self::terbilangBm($rest) : '');
|
|
||||||
}
|
|
||||||
return 'terlalu besar';
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function ringgitTerbilang($amount, bool $tambahSahaja = true): string
|
|
||||||
{
|
|
||||||
$formatted = number_format((float)$amount, 2, '.', '');
|
|
||||||
[$ringgitStr, $senStr] = explode('.', $formatted);
|
|
||||||
|
|
||||||
$ringgit = (int)$ringgitStr;
|
|
||||||
$sen = (int)$senStr;
|
|
||||||
|
|
||||||
$parts = [];
|
|
||||||
$parts[] = self::terbilangBm($ringgit) . ' ringgit';
|
|
||||||
|
|
||||||
if ($sen > 0) {
|
|
||||||
$parts[] = 'dan ' . self::terbilangBm($sen) . ' sen';
|
|
||||||
} elseif ($tambahSahaja) {
|
|
||||||
$parts[] = 'sahaja';
|
|
||||||
}
|
|
||||||
|
|
||||||
return trim(preg_replace('/\s+/', ' ', implode(' ', $parts)));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,14 +2,12 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\User;
|
|
||||||
use App\Cawangan;
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Services\CustomerService;
|
use App\Services\CustomerService;
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
use Illuminate\Support\Facades\Http;
|
|
||||||
use Illuminate\Support\Facades\Session;
|
use Illuminate\Support\Facades\Session;
|
||||||
|
use Illuminate\Support\Facades\Http;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
|
||||||
class AliranTunaiController extends Controller
|
class AliranTunaiController extends Controller
|
||||||
@@ -601,7 +599,7 @@ class AliranTunaiController extends Controller
|
|||||||
return response($updateTunai);
|
return response($updateTunai);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function LaporanAliranTunai($teller, Request $request)
|
public function LaporanAliranTunai($teller)
|
||||||
{
|
{
|
||||||
$auth_user = Auth::user();
|
$auth_user = Auth::user();
|
||||||
$api_url = config('api.url');
|
$api_url = config('api.url');
|
||||||
@@ -613,6 +611,8 @@ class AliranTunaiController extends Controller
|
|||||||
$cawangan=Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$auth_user['cawangan'])->json();
|
$cawangan=Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$auth_user['cawangan'])->json();
|
||||||
$cawangan_detail=$cawangan[0];
|
$cawangan_detail=$cawangan[0];
|
||||||
|
|
||||||
|
$tarikh_cetak = $current->toDateString();
|
||||||
|
|
||||||
$cawangan=Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$auth_user['cawangan'])->json();
|
$cawangan=Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$auth_user['cawangan'])->json();
|
||||||
|
|
||||||
$alirantunai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/GetCurrentTunai/' . $auth_user['cawangan'],['kodlaluan' => $auth_user['name']])->json();
|
$alirantunai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/GetCurrentTunai/' . $auth_user['cawangan'],['kodlaluan' => $auth_user['name']])->json();
|
||||||
@@ -621,67 +621,7 @@ class AliranTunaiController extends Controller
|
|||||||
|
|
||||||
$teller = $auth_user['name'];
|
$teller = $auth_user['name'];
|
||||||
|
|
||||||
$bakiLelong = Http::withOptions(['verify' =>config('app.api_verify')])->get(config('api.url') . '/api/lelong/bakilelongbyteller/'.$auth_user['cawangan'],[
|
return view('aliran_tunai.laporan.laporanalirantunai',compact('tarikh_cetak','cawangan_info','cawangan','api_url','cawangan_detail','addtunai','alirantunai','teller'));
|
||||||
'tarikh' => $request->datetimepicker1
|
|
||||||
])->json();
|
|
||||||
|
|
||||||
return view('aliran_tunai.laporan.laporanalirantunai',compact('tarikh_cetak','cawangan_info','cawangan','api_url','cawangan_detail','addtunai','alirantunai','teller', 'bakiLelong'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function laporanAliranTunaiTeller()
|
|
||||||
{
|
|
||||||
$auth_user = Auth::user();
|
|
||||||
$api_url = config('api.url');
|
|
||||||
|
|
||||||
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json();
|
|
||||||
|
|
||||||
return view('khazanah.laporan.alirantunai', compact('api_url', 'cawangan_info'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function cetakLaporanAliranTunaiTeller(Request $request)
|
|
||||||
{
|
|
||||||
$api_url = config('api_url');
|
|
||||||
$auth_user = Auth::user();
|
|
||||||
|
|
||||||
$current = Carbon::now();
|
|
||||||
$current = new Carbon();
|
|
||||||
|
|
||||||
$tarikh_cetak = $current->toDateString();
|
|
||||||
if($request->datetimepicker1 == null){
|
|
||||||
$tarikh = $current->toDateString();
|
|
||||||
}else{
|
|
||||||
$split_date = explode('-',$request->datetimepicker1);
|
|
||||||
$tarikh = $split_date[2] . '-' . $split_date[1] . '-' . $split_date[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json();
|
|
||||||
$cawangan=Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$auth_user['cawangan'])->json();
|
|
||||||
$cawangan_detail=$cawangan[0];
|
|
||||||
|
|
||||||
$addtunai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getAddTunai/' . $auth_user['cawangan'] . '/kodlaluan/',['kodlaluan' => $auth_user['name']])->json();
|
|
||||||
|
|
||||||
$teller = $auth_user['name'];
|
|
||||||
|
|
||||||
$bakiLelong = Http::withOptions(['verify' =>config('app.api_verify')])->get(config('api.url') . '/api/lelong/bakilelongbyteller/'.$auth_user['cawangan'],[
|
|
||||||
'tarikh' => $tarikh,
|
|
||||||
'kodlaluan' => $auth_user['name']
|
|
||||||
])->json();
|
|
||||||
|
|
||||||
$tunai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getTunaiByTarikh/',[
|
|
||||||
'kodlaluan' => $auth_user['name'],
|
|
||||||
'kodcaw' => $auth_user['cawangan'],
|
|
||||||
'tarikh' => $tarikh
|
|
||||||
])->json();
|
|
||||||
|
|
||||||
if(!$tunai)
|
|
||||||
{
|
|
||||||
return redirect()->back()->with('errormessage', 'Tiada data pada tarikh tersebut.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$jumlahTambah = $tunai['tambah'] + $tunai['masuk'] + $bakiLelong['rugi_lelong'];
|
|
||||||
$jumlahTolak = $tunai['kurang'] + $tunai['keluar'] + $bakiLelong['baki_lelong'];
|
|
||||||
|
|
||||||
return view('aliran_tunai.laporan.laporanalirantunai',compact('tarikh_cetak','cawangan_info','cawangan','api_url','cawangan_detail','addtunai','tunai','teller', 'bakiLelong', 'jumlahTambah', 'jumlahTolak'));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function LaporanTunaiTeller(Request $request){
|
public function LaporanTunaiTeller(Request $request){
|
||||||
|
|||||||
@@ -1,52 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Auth;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\User;
|
|
||||||
use Illuminate\Http\RedirectResponse;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Support\Facades\Gate;
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
|
|
||||||
class ImpersonateController extends Controller
|
|
||||||
{
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->middleware('auth');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function impersonate(Request $request, $id): RedirectResponse
|
|
||||||
{
|
|
||||||
Gate::authorize('impersonate');
|
|
||||||
|
|
||||||
$impersonator = $request->user();
|
|
||||||
$id = (int) $id;
|
|
||||||
$target = User::findOrFail($id);
|
|
||||||
|
|
||||||
if ($target->id === $request->user()->id) {
|
|
||||||
return back()->with('error', 'Tidak boleh impersonate diri sendiri.');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (method_exists($target, 'canBeImpersonated') && !$target->canBeImpersonated()) {
|
|
||||||
return back()->with('error', 'Akaun ini tidak boleh di-impersonate.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$request->user()->impersonate($target);
|
|
||||||
|
|
||||||
return redirect()->route('home');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function leave(Request $request): RedirectResponse
|
|
||||||
{
|
|
||||||
if ($request->user() && method_exists($request->user(), 'isImpersonated') && $request->user()->isImpersonated()) {
|
|
||||||
$impersonated = $request->user();
|
|
||||||
$impersonator = method_exists($impersonated, 'impersonator') ? $impersonated->impersonator() : null;
|
|
||||||
|
|
||||||
$request->user()->leaveImpersonation();
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->route('home');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -60,7 +60,9 @@ class LoginController extends Controller
|
|||||||
'password' => 'required|string',
|
'password' => 'required|string',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if ($this->attemptWebLogin($request)) {
|
$credentials = $request->only('email', 'password');
|
||||||
|
|
||||||
|
if (Auth::guard('web')->attempt($credentials)) {
|
||||||
|
|
||||||
$auth_user = Auth::guard('web')->user();
|
$auth_user = Auth::guard('web')->user();
|
||||||
$api_url = config('api.url');
|
$api_url = config('api.url');
|
||||||
@@ -101,7 +103,9 @@ class LoginController extends Controller
|
|||||||
'password' => 'required|string',
|
'password' => 'required|string',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if ($this->attemptDashboardLogin($request)) {
|
$credentials = $request->only('email', 'password');
|
||||||
|
|
||||||
|
if (Auth::guard('dashboard')->attempt($credentials,true)) {
|
||||||
$auth_user = Auth::guard('dashboard')->user();
|
$auth_user = Auth::guard('dashboard')->user();
|
||||||
|
|
||||||
$user_login['nama'] = $auth_user['name'];
|
$user_login['nama'] = $auth_user['name'];
|
||||||
@@ -183,42 +187,4 @@ class LoginController extends Controller
|
|||||||
|
|
||||||
return response()->json($kakitangan,200);
|
return response()->json($kakitangan,200);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* In local environment, log in by email only (password ignored).
|
|
||||||
*/
|
|
||||||
private function attemptWebLogin(Request $request): bool
|
|
||||||
{
|
|
||||||
if (app()->environment('local')) {
|
|
||||||
$user = User::where('email', $request->email)->first();
|
|
||||||
if ($user) {
|
|
||||||
Auth::guard('web')->login($user);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return Auth::guard('web')->attempt($request->only('email', 'password'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* In local environment, log in by email only (password ignored).
|
|
||||||
*/
|
|
||||||
private function attemptDashboardLogin(Request $request): bool
|
|
||||||
{
|
|
||||||
if (app()->environment('local')) {
|
|
||||||
$user = Dashboard::where('email', $request->email)->first();
|
|
||||||
if ($user) {
|
|
||||||
Auth::guard('dashboard')->login($user, true);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return Auth::guard('dashboard')->attempt($request->only('email', 'password'), true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -201,6 +201,8 @@ class GadaianController extends Controller
|
|||||||
'onepercent' => $onepercent,
|
'onepercent' => $onepercent,
|
||||||
'margin_semasa' => $margin_pinjaman,
|
'margin_semasa' => $margin_pinjaman,
|
||||||
'nokp' => $request->nokp,
|
'nokp' => $request->nokp,
|
||||||
|
'kadar_rebate' => $request->kadar_rebate,
|
||||||
|
'rebate' => $request->rebate
|
||||||
])->json();
|
])->json();
|
||||||
|
|
||||||
|
|
||||||
@@ -211,50 +213,13 @@ class GadaianController extends Controller
|
|||||||
'teller' => $auth_user['name']
|
'teller' => $auth_user['name']
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$caraTerima = strtoupper((string) $request->input('cara_terima', 'TUNAI'));
|
$this->AliranTunaiController->alirantunaiGadai($request, $auth_user['name']);
|
||||||
$pinjamanAmt = round((float) $request->pinjaman, 2);
|
|
||||||
|
|
||||||
// Online only for RM5k–50k; otherwise force cash path.
|
|
||||||
if ($caraTerima === 'ONLINE' && ($pinjamanAmt < 5000 || $pinjamanAmt > 50000)) {
|
|
||||||
$caraTerima = 'TUNAI';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($caraTerima === 'ONLINE') {
|
|
||||||
$online = Http::withOptions(['verify' => config('app.api_verify')])
|
|
||||||
->asForm()
|
|
||||||
->post(config('api.url') . '/api/pembiayaan-online/' . $auth_user['cawangan'], [
|
|
||||||
'norujukan' => $request->norujukan_gadai,
|
|
||||||
'nokp' => $request->nokp,
|
|
||||||
'pinjaman' => $pinjamanAmt,
|
|
||||||
'kodbank' => $request->kodbank,
|
|
||||||
'noakaun' => $request->noakaun,
|
|
||||||
'nama_bank' => $request->nama_bank,
|
|
||||||
'nama_akaun' => $request->nama_akaun ?: $request->nama_pelanggan,
|
|
||||||
'nama_pelanggan' => $request->nama_pelanggan,
|
|
||||||
'nopelanggan' => $request->nopelanggan,
|
|
||||||
'created_by' => $auth_user['name'],
|
|
||||||
'update_customer_bank' => true,
|
|
||||||
]);
|
|
||||||
|
|
||||||
if (!$online->successful()) {
|
|
||||||
$body = $online->json();
|
|
||||||
$msg = is_array($body) && isset($body['message'])
|
|
||||||
? $body['message']
|
|
||||||
: 'Gagal daftar pembiayaan online. Sila cuba lagi.';
|
|
||||||
return redirect()->back()->with('error', $msg);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$this->AliranTunaiController->alirantunaiGadai($request, $auth_user['name']);
|
|
||||||
}
|
|
||||||
|
|
||||||
event(new GadaiNotify('lulus', $auth_user['cawangan']));
|
event(new GadaiNotify('lulus', $auth_user['cawangan']));
|
||||||
|
|
||||||
$request->session()->forget('page_reload');
|
$request->session()->forget('page_reload');
|
||||||
$request->session()->forget('norujukan');
|
$request->session()->forget('norujukan');
|
||||||
$request->session()->flash('activate_tab', 'SAG_baru');
|
$request->session()->flash('activate_tab', 'SAG_baru');
|
||||||
if ($caraTerima === 'ONLINE') {
|
|
||||||
$request->session()->flash('message', 'Gadai berjaya. Pembiayaan online menunggu semakan PC.');
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->route('customer_info');
|
return redirect()->route('customer_info');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -505,9 +505,6 @@ class KhazanahController extends Controller
|
|||||||
|
|
||||||
public function mintakatalaluansemula(Request $request)
|
public function mintakatalaluansemula(Request $request)
|
||||||
{
|
{
|
||||||
if (app()->environment('local')) {
|
|
||||||
return "True";
|
|
||||||
}
|
|
||||||
|
|
||||||
if(Hash::check($request->passsemula, Auth::user()->password))
|
if(Hash::check($request->passsemula, Auth::user()->password))
|
||||||
{
|
{
|
||||||
@@ -2462,6 +2459,7 @@ class KhazanahController extends Controller
|
|||||||
$penghutangkaki = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/PenghutangKakitangan/' . $auth_user['cawangan'],['tarikh' => $tarikh_imbangan2])->json();
|
$penghutangkaki = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/PenghutangKakitangan/' . $auth_user['cawangan'],['tarikh' => $tarikh_imbangan2])->json();
|
||||||
$untungrugi = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/UntungRugiCalculation/' . $auth_user['cawangan'],['tarikh' => $tarikh_imbangan2])->json();
|
$untungrugi = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/UntungRugiCalculation/' . $auth_user['cawangan'],['tarikh' => $tarikh_imbangan2])->json();
|
||||||
$bayaranpendahuluan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/BayaranPendahuluan/' . $auth_user['cawangan'],['tarikh' => $tarikh_imbangan2])->json();
|
$bayaranpendahuluan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/BayaranPendahuluan/' . $auth_user['cawangan'],['tarikh' => $tarikh_imbangan2])->json();
|
||||||
|
$rebetpromo = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/RebetPromoCalculation/' . $auth_user['cawangan'],['tarikh' => $tarikh_imbangan2])->json();
|
||||||
|
|
||||||
//Tanggungan Semasa
|
//Tanggungan Semasa
|
||||||
$panjar = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/CalculationPanjar/' . $auth_user['cawangan'],['tarikh' => $tarikh_imbangan2])->json();
|
$panjar = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/CalculationPanjar/' . $auth_user['cawangan'],['tarikh' => $tarikh_imbangan2])->json();
|
||||||
@@ -2472,6 +2470,8 @@ class KhazanahController extends Controller
|
|||||||
$cajperkhidmatan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cajperkhidmatanterkumpul/' . $auth_user['cawangan'],['tarikh' => $tarikh_imbangan2])->json();
|
$cajperkhidmatan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cajperkhidmatanterkumpul/' . $auth_user['cawangan'],['tarikh' => $tarikh_imbangan2])->json();
|
||||||
$hapuskira = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/CalculationHapusKira/' . $auth_user['cawangan'],['tarikh' => $tarikh_imbangan2])->json();
|
$hapuskira = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/CalculationHapusKira/' . $auth_user['cawangan'],['tarikh' => $tarikh_imbangan2])->json();
|
||||||
$xtra = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/Xtra/' . $auth_user['cawangan'],['tarikh' => $tarikh_imbangan2])->json();
|
$xtra = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/Xtra/' . $auth_user['cawangan'],['tarikh' => $tarikh_imbangan2])->json();
|
||||||
|
$rebetpromo = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/RebetPromoCalculation/' . $auth_user['cawangan'],['tarikh' => $tarikh_imbangan2])->json();
|
||||||
|
$pelarasanrebate = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/PelarasanRebate/' . $auth_user['cawangan'],['tarikh' => $tarikh_imbangan2])->json();
|
||||||
|
|
||||||
|
|
||||||
//TunaiDitangan Sementara Upah
|
//TunaiDitangan Sementara Upah
|
||||||
@@ -2523,6 +2523,8 @@ class KhazanahController extends Controller
|
|||||||
if($imbangduga['pindahkekpkb'] > 0) array_push($hartasemasa,['glcode' => '1000/090','descpt' => 'Pindah Ke KPKB(IP)', 'amaun' => $imbangduga['pindahkekpkb']]);
|
if($imbangduga['pindahkekpkb'] > 0) array_push($hartasemasa,['glcode' => '1000/090','descpt' => 'Pindah Ke KPKB(IP)', 'amaun' => $imbangduga['pindahkekpkb']]);
|
||||||
if($peruntukanhapuskira > 0) array_push($hartasemasa,['glcode' => '1000/015','descpt' => 'Peruntukan Hapus Kira', 'amaun' => $peruntukanhapuskira]);
|
if($peruntukanhapuskira > 0) array_push($hartasemasa,['glcode' => '1000/015','descpt' => 'Peruntukan Hapus Kira', 'amaun' => $peruntukanhapuskira]);
|
||||||
if($belian1stop > 0) array_push($hartasemasa,['glcode' => '8000/501','descpt' => 'Belian 1 Stop', 'amaun' => $belian1stop]);
|
if($belian1stop > 0) array_push($hartasemasa,['glcode' => '8000/501','descpt' => 'Belian 1 Stop', 'amaun' => $belian1stop]);
|
||||||
|
if($rebetpromo > 0) array_push($hartasemasa,['glcode' => '5000/242','descpt' => 'Diskaun Promosi', 'amaun' => ($rebetpromo * -1)]);
|
||||||
|
|
||||||
|
|
||||||
$totalhartasemasa = 0;
|
$totalhartasemasa = 0;
|
||||||
foreach($hartasemasa as $index => $hs)
|
foreach($hartasemasa as $index => $hs)
|
||||||
@@ -2554,6 +2556,8 @@ class KhazanahController extends Controller
|
|||||||
if($utgterkumpulxtra > 0) array_push($tanggungansemasa,['glcode' => '7000/201','descpt' => 'Untung/Rugi Terkumpul Xtra','amaun' => $utgterkumpulxtra]);
|
if($utgterkumpulxtra > 0) array_push($tanggungansemasa,['glcode' => '7000/201','descpt' => 'Untung/Rugi Terkumpul Xtra','amaun' => $utgterkumpulxtra]);
|
||||||
if($jualan1stop > 0) array_push($tanggungansemasa,['glcode' => '9000/501','descpt' => 'Jualan 1 Stop','amaun' => $jualan1stop]);
|
if($jualan1stop > 0) array_push($tanggungansemasa,['glcode' => '9000/501','descpt' => 'Jualan 1 Stop','amaun' => $jualan1stop]);
|
||||||
if($hapuskira > 0) array_push($tanggungansemasa,['glcode' => '3000/011','descpt' => 'Hapus Kira','amaun' => -$hapuskira]);
|
if($hapuskira > 0) array_push($tanggungansemasa,['glcode' => '3000/011','descpt' => 'Hapus Kira','amaun' => -$hapuskira]);
|
||||||
|
if($rebetpromo > 0) array_push($tanggungansemasa,['glcode' => '5000/242','descpt' => 'Diskaun Promosi', 'amaun' => ($rebetpromo * -1)]);
|
||||||
|
if($pelarasanrebate > 0) array_push($tanggungansemasa,['glcode' => '5000/243','descpt' => 'Pelarasan Rebate', 'amaun' => ($pelarasanrebate * -1)]);
|
||||||
|
|
||||||
$totaltanggungansemasa = 0;
|
$totaltanggungansemasa = 0;
|
||||||
foreach($tanggungansemasa as $index => $ts)
|
foreach($tanggungansemasa as $index => $ts)
|
||||||
@@ -4420,274 +4424,4 @@ class KhazanahController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function pampasanDetail($id)
|
|
||||||
{
|
|
||||||
$auth_user = Auth::user();
|
|
||||||
$api_url = config('api.url');
|
|
||||||
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])
|
|
||||||
->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$gadai = Http::withOptions(['verify' => config('app.api_verify')])
|
|
||||||
->get(config('api.url') . '/api/gadai/norujukan/' . '011237' . '/' . $id)
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$gadai_info = is_array($gadai) && isset($gadai[0]) ? $gadai[0] : $gadai;
|
|
||||||
|
|
||||||
$customer_info = null;
|
|
||||||
if(isset($gadai_info['nokp'])) {
|
|
||||||
$customer = Http::withOptions(['verify' => config('app.api_verify')])
|
|
||||||
->get(config('api.url') . '/api/customers/' . $gadai_info['nokp'])
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$customer_info = null;
|
|
||||||
if (isset($gadai_info['nokp'])) {
|
|
||||||
$customer = Http::withOptions(['verify' => config('app.api_verify')])
|
|
||||||
->get(config('api.url') . '/api/customers/' . $gadai_info['nokp'])
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$customer_info = is_array($customer) && isset($customer[0]) ? $customer[0] : $customer;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$barang_kes = Http::withOptions(['verify' => config('app.api_verify')])
|
|
||||||
->get(config('api.url') . '/api/palsu/laporan/', ['kodcaw' => $auth_user['cawangan']])
|
|
||||||
->json();
|
|
||||||
|
|
||||||
// You may need to adjust the array index if the API returns an array of results
|
|
||||||
$gadai_info = is_array($gadai) && isset($gadai[0]) ? $gadai[0] : $gadai;
|
|
||||||
// $pampasan_info = is_array($pampasan) && isset($pampasan[0]) ? $pampasan[0] : $pampasan;
|
|
||||||
|
|
||||||
$barang_kes_collection = collect($barang_kes);
|
|
||||||
$barang_kes_info = $barang_kes_collection->where('norujukan', '=', $id)->first();
|
|
||||||
|
|
||||||
$customer_info = null;
|
|
||||||
if (isset($gadai_info['nokp'])) {
|
|
||||||
$customer = Http::withOptions(['verify' => config('app.api_verify')])
|
|
||||||
->get(config('api.url') . '/api/customers/' . $gadai_info['nokp'])
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$customer_info = is_array($customer) && isset($customer[0]) ? $customer[0] : $customer;
|
|
||||||
}
|
|
||||||
|
|
||||||
$denominasi = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/DenominasiController/' . $auth_user['cawangan'])->json();
|
|
||||||
|
|
||||||
if (sizeof($denominasi) == 0) {
|
|
||||||
$denominasi = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/DenominasiCreate/' . $auth_user['cawangan'])->json();
|
|
||||||
} else {
|
|
||||||
$denominasi = $denominasi[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
$pampasan = Http::withOptions(['verify' => config('app.api_verify')])
|
|
||||||
->get(config('api.url') . '/api/pampasan', ['kodcaw' => '011237', 'norujukan' => $id])
|
|
||||||
->json()['data'][0];
|
|
||||||
|
|
||||||
$baucerno = $pampasan['baucerno'];
|
|
||||||
$nilaimarhun = $barang_kes_info['nilaimarhun'] ?? 0;
|
|
||||||
$pembiayaan = $barang_kes_info['pembiayaan'] ?? 0;
|
|
||||||
$untung = $barang_kes_info['untung'] ?? 0;
|
|
||||||
|
|
||||||
|
|
||||||
$jumlah_tebus = Http::withOptions(['verify' => config('app.api_verify')])
|
|
||||||
->get(config('api.url') . '/api/tebus/norujukan/' . $auth_user['cawangan'] . '/' . $id)
|
|
||||||
->json()[0]['bakipjm'];
|
|
||||||
|
|
||||||
$jumlah_pampasan = $nilaimarhun - $pembiayaan - $untung;
|
|
||||||
|
|
||||||
$jumlahPanjar = $jumlah_tebus + $jumlah_pampasan;
|
|
||||||
|
|
||||||
return view('khazanah.pampasan_detail', compact('gadai_info', 'barang_kes_info', 'cawangan_info', 'customer_info', 'baucerno', 'denominasi', 'jumlah_pampasan', 'jumlah_tebus', 'jumlahPanjar'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function initiatePampasan(Request $request)
|
|
||||||
{
|
|
||||||
$norujukan = $request->input('norujukan');
|
|
||||||
$teller = auth()->user()->name;
|
|
||||||
$kodcaw = auth()->user()->cawangan;
|
|
||||||
$baucerno = $this->generateBaucer($kodcaw);
|
|
||||||
|
|
||||||
$response = Http::post(config('api.url') . '/api/pampasan/initiatePampasan', [
|
|
||||||
'norujukan' => $norujukan,
|
|
||||||
'kodcaw' => $kodcaw,
|
|
||||||
'teller' => $teller,
|
|
||||||
'baucerno' => $baucerno,
|
|
||||||
]);
|
|
||||||
|
|
||||||
if ($response->failed()) {
|
|
||||||
throw new \Exception("HTTP error! status: " . $response->status(), 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
$result = $response->json();
|
|
||||||
|
|
||||||
// $jumlah_pampasan = $nilaimarhun - $pembiayaan - $untung;
|
|
||||||
// $jumlahTebus = $pembiayaan + $untung;
|
|
||||||
// $jumlahPanjar = $jumlah_pampasan + $jumlahTebus;
|
|
||||||
|
|
||||||
//return view('khazanah.pampasan_detail', compact('gadai_info', 'pampasan_info', 'cawangan_info', 'customer_info','baucerno', 'denominasi','jumlah_pampasan', 'jumlahTebus', 'jumlahPanjar') );
|
|
||||||
return response()->json($result);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function generateBaucer($kodcaw)
|
|
||||||
{
|
|
||||||
$data = Http::withOptions(['verify' => config('app.api_verify')])
|
|
||||||
->get(config('api.url').'/api/SenaraiPanjar/list/' . $kodcaw)
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$today = now();
|
|
||||||
$dd = $today->format('d');
|
|
||||||
$mm = $today->format('m');
|
|
||||||
$yy = $today->format('y');
|
|
||||||
|
|
||||||
$recno = $data['recno'] ?? 0;
|
|
||||||
|
|
||||||
$baucerno = 'B' . $yy . $mm . $dd . '-' . str_pad($recno, 4, '0', STR_PAD_LEFT);
|
|
||||||
|
|
||||||
return $baucerno;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function terimaPampasan(Request $request)
|
|
||||||
{
|
|
||||||
$responsePampasan = Http::withOptions(['verify' => config('app.api_verify')])
|
|
||||||
->post(config('api.url') . '/api/pampasan/terimaPampasan',[
|
|
||||||
"norujukan" => $request->norujukan,
|
|
||||||
"kodcaw" => auth()->user()->cawangan,
|
|
||||||
"jumlah_pampasan" => $request->jumlahpampasan,
|
|
||||||
"teller" => auth()->user()->name,
|
|
||||||
"denominasi" => $request->denominasi,
|
|
||||||
]
|
|
||||||
)->json();
|
|
||||||
|
|
||||||
$jumlahTebus = Http::withOptions(['verify' => config('app.api_verify')])
|
|
||||||
->get(config('api.url') . '/api/tebus/norujukan/' . auth()->user()->cawangan .'/'.$request->norujukan)->json()[0]['bakipjm'];
|
|
||||||
$bayaranPanjar = $request->jumlahpampasan + $jumlahTebus;
|
|
||||||
|
|
||||||
|
|
||||||
$responsePanjar = Http::withOptions(['verify' => config('app.api_verify')])
|
|
||||||
->post(
|
|
||||||
config('api.url') . '/api/panjar/createpanjar/' . auth()->user()->cawangan,
|
|
||||||
array_merge(
|
|
||||||
[
|
|
||||||
'tarikhbil' => now()->format('Y-m-d'),
|
|
||||||
'jenismodal' => 'belanjaam',
|
|
||||||
'deskripsi' => 'BAYARAN PAMPASAN ' . '(' . $request->norujukan . ')',
|
|
||||||
'bayaran' => $bayaranPanjar,
|
|
||||||
'kodlaluan' => auth()->user()->name,
|
|
||||||
'baucer' => $responsePampasan['data']['baucerno'],
|
|
||||||
'tuntutan' => auth()->user()->name
|
|
||||||
],
|
|
||||||
$request->denominasi
|
|
||||||
|
|
||||||
)
|
|
||||||
)->json();
|
|
||||||
|
|
||||||
if ($responsePampasan['success'] == true) {
|
|
||||||
return redirect()->route('pampasan.resit', ["pampasan" => $responsePampasan['data']]);
|
|
||||||
} else
|
|
||||||
return redirect()->route('khazanah.panjar')->with('pampasaninformation', ['status' => 'error', 'message' => 'Baki perubatan tidak mencukupi.']);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function resitPampasan(Request $request)
|
|
||||||
{
|
|
||||||
$pampasan = $request->pampasan;
|
|
||||||
$kodcaw = $pampasan['kodcaw'];
|
|
||||||
$norujukan = $pampasan['norujukan'] ?? null;
|
|
||||||
|
|
||||||
if ($norujukan) {
|
|
||||||
$gadai_info = Http::withOptions(['verify' => config('app.api_verify')])
|
|
||||||
->get(config('api.url') . '/api/gadai/norujukan/' . $kodcaw . '/' . $norujukan)
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$gadai_info = is_array($gadai_info) && isset($gadai_info[0]) ? $gadai_info[0] : $gadai_info;
|
|
||||||
|
|
||||||
$customer_info = null;
|
|
||||||
if (isset($gadai_info['nokp'])) {
|
|
||||||
$customer = Http::withOptions(['verify' => config('app.api_verify')])
|
|
||||||
->get(config('api.url') . '/api/customers/' . $gadai_info['nokp'])
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$customer_info = is_array($customer) && isset($customer[0]) ? $customer[0] : $customer;
|
|
||||||
}
|
|
||||||
|
|
||||||
$pampasan_info = Http::withOptions(['verify' => config('app.api_verify')])
|
|
||||||
->get(config('api.url') . '/api/palsu/laporan/', ['kodcaw' => $kodcaw])
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$norujukan = $norujukan;
|
|
||||||
|
|
||||||
$pampasan_info = collect($pampasan_info)->firstWhere('norujukan', $norujukan);
|
|
||||||
|
|
||||||
$nilaimarhun = $pampasan_info['nilaimarhun'] ?? 0;
|
|
||||||
$pembiayaan = $pampasan_info['pembiayaan'] ?? 0;
|
|
||||||
$untung = $pampasan_info['untung'] ?? 0;
|
|
||||||
|
|
||||||
$jumlah_pampasan = $nilaimarhun - $pembiayaan - $untung;
|
|
||||||
|
|
||||||
$status = Http::withOptions(['verify' => config('app.api_verify')])
|
|
||||||
->put(config('api.url') . '/api/pampasan/updateStatusPampasan', ['kodcaw' => $kodcaw, 'norujukan' => $norujukan])
|
|
||||||
->json();
|
|
||||||
|
|
||||||
// dd($pampasan_info, $nilaimarhun, $pembiayaan, $untung, $jumlah_pampasan);
|
|
||||||
|
|
||||||
// dd($norujukan);
|
|
||||||
|
|
||||||
return view('print.resit.resitpampasan', compact(
|
|
||||||
'pampasan',
|
|
||||||
'gadai_info',
|
|
||||||
'customer_info',
|
|
||||||
'pampasan_info',
|
|
||||||
'nilaimarhun',
|
|
||||||
'pembiayaan',
|
|
||||||
'untung',
|
|
||||||
'jumlah_pampasan',
|
|
||||||
'status'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function suratPampasan(Request $request, $norujukan)
|
|
||||||
{
|
|
||||||
$auth_user = Auth::user();
|
|
||||||
|
|
||||||
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])
|
|
||||||
->get(config('api.url') . '/api/cawangan/'.$auth_user['cawangan'])->json();
|
|
||||||
|
|
||||||
$gadai = Http::withOptions(['verify' => config('app.api_verify')])
|
|
||||||
->get(config('api.url') . '/api/gadai/norujukan/' . '011237' . '/' . $norujukan)
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$gadai_info = is_array($gadai) && isset($gadai[0]) ? $gadai[0] : $gadai;
|
|
||||||
|
|
||||||
$customer_info = null;
|
|
||||||
if(isset($gadai_info['nokp'])) {
|
|
||||||
$customer = Http::withOptions(['verify' => config('app.api_verify')])
|
|
||||||
->get(config('api.url') . '/api/customers/' . $gadai_info['nokp'])
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$customer_info = is_array($customer) && isset($customer[0]) ? $customer[0] : $customer;
|
|
||||||
}
|
|
||||||
|
|
||||||
$pampasan = Http::withOptions(['verify' => config('app.api_verify')])
|
|
||||||
->get(config('api.url') . '/api/palsu/laporan/' , ['kodcaw'=>'011237'])
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$pampasan_collection = collect($pampasan);
|
|
||||||
|
|
||||||
$pampasan_info = $pampasan_collection->where('norujukan', '=', $norujukan)->first();
|
|
||||||
|
|
||||||
|
|
||||||
if (!$pampasan_info) {
|
|
||||||
abort(404, 'Maklumat pampasan tidak dijumpai untuk no rujukan tersebut.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$nilaimarhun = $pampasan_info['nilaimarhun'] ?? 0;
|
|
||||||
$pembiayaan = $pampasan_info['pembiayaan'] ?? 0;
|
|
||||||
$untung = $pampasan_info['untung'] ?? 0;
|
|
||||||
|
|
||||||
$jumlah_pampasan = $nilaimarhun - $pembiayaan - $untung;
|
|
||||||
$jumlah = $pampasan_info['jumlah_pampasan'] ?? 0;
|
|
||||||
$jumlah_pampasan_terbilang = Helper::ringgitTerbilang($jumlah_pampasan);
|
|
||||||
|
|
||||||
return view('print.surat_pampasan', compact('cawangan_info', 'gadai', 'gadai_info', 'customer_info', 'pampasan', 'pampasan_info','jumlah_pampasan_terbilang', 'jumlah_pampasan'));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -99,15 +99,6 @@ class LelongController extends Controller
|
|||||||
public function transaksituntutbaki(Request $request){
|
public function transaksituntutbaki(Request $request){
|
||||||
|
|
||||||
$auth_user = Auth::user();
|
$auth_user = Auth::user();
|
||||||
|
|
||||||
$aliranTunaiController = new AliranTunaiController();
|
|
||||||
$checkCashBox = $aliranTunaiController->periksaAliranTunai($request);
|
|
||||||
|
|
||||||
if($checkCashBox->getContent() !== 'sama')
|
|
||||||
{
|
|
||||||
return response('kemaskini', 200);
|
|
||||||
}
|
|
||||||
|
|
||||||
$lelong = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/TuntutBaki/resit/' . $auth_user['cawangan'] . '/' . $request->norujukan)->json();
|
$lelong = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/TuntutBaki/resit/' . $auth_user['cawangan'] . '/' . $request->norujukan)->json();
|
||||||
|
|
||||||
if($lelong)
|
if($lelong)
|
||||||
@@ -115,18 +106,6 @@ class LelongController extends Controller
|
|||||||
return response('Berjaya');
|
return response('Berjaya');
|
||||||
}
|
}
|
||||||
|
|
||||||
$getTunai2=Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/GetCurrentTunai/'.$auth_user['cawangan'],['kodlaluan' => $request->teller])->json();
|
|
||||||
|
|
||||||
$keluar = $getTunai2['keluar'];
|
|
||||||
$baki = $getTunai2['baki'];
|
|
||||||
$masuk = $getTunai2['masuk'];
|
|
||||||
|
|
||||||
$bakiakhir = $baki;
|
|
||||||
|
|
||||||
if(($bakiakhir < $request->jumlah) && $request->jenis == 'T'){
|
|
||||||
return response('Baki tidak mencukupi', 200);
|
|
||||||
}
|
|
||||||
|
|
||||||
$tuntutbaki = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/Tuntutbakisimpan/' . $auth_user['cawangan'], [
|
$tuntutbaki = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/Tuntutbakisimpan/' . $auth_user['cawangan'], [
|
||||||
'batchno' => $request->batchno,
|
'batchno' => $request->batchno,
|
||||||
'jenis' => $request->jenis,
|
'jenis' => $request->jenis,
|
||||||
@@ -143,6 +122,14 @@ class LelongController extends Controller
|
|||||||
|
|
||||||
$updatetuntutbaki = Http::withOptions(['verify' => config('app.api_verify')])->put( config('api.url').'/api/tuntutbakiupdate/' . $auth_user['cawangan'] . '/' . $request->norujukan);
|
$updatetuntutbaki = Http::withOptions(['verify' => config('app.api_verify')])->put( config('api.url').'/api/tuntutbakiupdate/' . $auth_user['cawangan'] . '/' . $request->norujukan);
|
||||||
|
|
||||||
|
$getTunai2=Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/GetCurrentTunai/'.$auth_user['cawangan'],['kodlaluan' => $request->teller])->json();
|
||||||
|
|
||||||
|
$keluar = $getTunai2['keluar'];
|
||||||
|
$baki = $getTunai2['baki'];
|
||||||
|
$masuk = $getTunai2['masuk'];
|
||||||
|
|
||||||
|
$bakiakhir = $baki;
|
||||||
|
|
||||||
if($request->jenis == 'T')
|
if($request->jenis == 'T')
|
||||||
{
|
{
|
||||||
$bakiakhir -= $request->jumlah;
|
$bakiakhir -= $request->jumlah;
|
||||||
|
|||||||
@@ -321,9 +321,6 @@ class OperasiController extends Controller
|
|||||||
|
|
||||||
public function mintakatalaluansemula(Request $request)
|
public function mintakatalaluansemula(Request $request)
|
||||||
{
|
{
|
||||||
if (app()->environment('local')) {
|
|
||||||
return "True";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Hash::check($request->passsemula, Auth::user()->password)) {
|
if (Hash::check($request->passsemula, Auth::user()->password)) {
|
||||||
return "True";
|
return "True";
|
||||||
|
|||||||
@@ -1,744 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
use Illuminate\Support\Facades\Http;
|
|
||||||
|
|
||||||
class PembiayaanOnlineController extends Controller
|
|
||||||
{
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->middleware('auth');
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function api()
|
|
||||||
{
|
|
||||||
return Http::withOptions(['verify' => config('app.api_verify')]);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function kodcaw()
|
|
||||||
{
|
|
||||||
return Auth::user()->cawangan;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* PC senarai queue + batch history.
|
|
||||||
*/
|
|
||||||
public function index(Request $request)
|
|
||||||
{
|
|
||||||
$auth_user = Auth::user();
|
|
||||||
$kodcaw = $this->kodcaw();
|
|
||||||
$api_url = config('api.url');
|
|
||||||
|
|
||||||
$cawangan_info = $this->api()
|
|
||||||
->get($api_url . '/api/cawangan/' . $kodcaw)
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$queue = $this->api()
|
|
||||||
->get($api_url . '/api/pembiayaan-online/' . $kodcaw . '/queue')
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$batches = $this->api()
|
|
||||||
->get($api_url . '/api/pembiayaan-online/' . $kodcaw . '/batches')
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$banks = $this->api()->get($api_url . '/api/bank')->json();
|
|
||||||
if (!is_array($banks)) {
|
|
||||||
$banks = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
$modal = $this->api()
|
|
||||||
->get($api_url . '/api/modal-online/' . $kodcaw)
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$lines = $queue['data'] ?? [];
|
|
||||||
$slot = $queue['slot_cadangan'] ?? null;
|
|
||||||
if (!is_array($batches)) {
|
|
||||||
$batches = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
return view('pembiayaan_online.pc.senarai', compact(
|
|
||||||
'auth_user',
|
|
||||||
'kodcaw',
|
|
||||||
'api_url',
|
|
||||||
'cawangan_info',
|
|
||||||
'lines',
|
|
||||||
'batches',
|
|
||||||
'banks',
|
|
||||||
'modal',
|
|
||||||
'slot',
|
|
||||||
'queue'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update bank/docs for a queue line.
|
|
||||||
*/
|
|
||||||
public function updateLine(Request $request, $id)
|
|
||||||
{
|
|
||||||
$kodcaw = $this->kodcaw();
|
|
||||||
$api_url = config('api.url');
|
|
||||||
|
|
||||||
$payload = [
|
|
||||||
'kodbank' => $request->input('kodbank'),
|
|
||||||
'noakaun' => $request->input('noakaun'),
|
|
||||||
'nama_bank' => $request->input('nama_bank'),
|
|
||||||
'nama_akaun' => $request->input('nama_akaun'),
|
|
||||||
'nota' => $request->input('nota'),
|
|
||||||
'update_customer_bank' => true,
|
|
||||||
];
|
|
||||||
|
|
||||||
$res = $this->api()
|
|
||||||
->asForm()
|
|
||||||
->put($api_url . '/api/pembiayaan-online/' . $kodcaw . '/lines/' . $id, $payload);
|
|
||||||
|
|
||||||
if (!$res->successful()) {
|
|
||||||
$body = $res->json();
|
|
||||||
$msg = is_array($body) && isset($body['message']) ? $body['message'] : 'Gagal kemaskini rekod.';
|
|
||||||
return redirect()->back()->with('error', $msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->route('pembiayaan.online.pc')->with('message', 'Rekod dikemaskini.');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Submit selected lines as a batch to Operasi.
|
|
||||||
*/
|
|
||||||
public function submitBatch(Request $request)
|
|
||||||
{
|
|
||||||
$kodcaw = $this->kodcaw();
|
|
||||||
$api_url = config('api.url');
|
|
||||||
$auth_user = Auth::user();
|
|
||||||
|
|
||||||
$ids = $request->input('ids', []);
|
|
||||||
if (!is_array($ids)) {
|
|
||||||
$ids = array_filter(explode(',', (string) $ids));
|
|
||||||
}
|
|
||||||
|
|
||||||
$res = $this->api()
|
|
||||||
->asForm()
|
|
||||||
->post($api_url . '/api/pembiayaan-online/' . $kodcaw . '/batches/submit', [
|
|
||||||
'ids' => $ids,
|
|
||||||
'pc_submitted_by' => $auth_user['name'],
|
|
||||||
'slot' => $request->input('slot'),
|
|
||||||
]);
|
|
||||||
|
|
||||||
if (!$res->successful()) {
|
|
||||||
$body = $res->json();
|
|
||||||
$msg = is_array($body) && isset($body['message']) ? $body['message'] : 'Gagal hantar batch.';
|
|
||||||
return redirect()->back()->with('error', $msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
$batchNo = $res->json()['batch']['batch_no'] ?? '';
|
|
||||||
return redirect()->route('pembiayaan.online.pc')
|
|
||||||
->with('message', 'Batch dihantar ke Operasi' . ($batchNo ? ': ' . $batchNo : '.'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Batch detail.
|
|
||||||
*/
|
|
||||||
public function showBatch($batchId)
|
|
||||||
{
|
|
||||||
$kodcaw = $this->kodcaw();
|
|
||||||
$api_url = config('api.url');
|
|
||||||
|
|
||||||
$cawangan_info = $this->api()
|
|
||||||
->get($api_url . '/api/cawangan/' . $kodcaw)
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$detail = $this->api()
|
|
||||||
->get($api_url . '/api/pembiayaan-online/' . $kodcaw . '/batches/' . $batchId)
|
|
||||||
->json();
|
|
||||||
|
|
||||||
if (!is_array($detail) || empty($detail['batch'])) {
|
|
||||||
return redirect()->route('pembiayaan.online.pc')->with('error', 'Batch tidak dijumpai.');
|
|
||||||
}
|
|
||||||
|
|
||||||
return view('pembiayaan_online.pc.batch', [
|
|
||||||
'batch' => $detail['batch'],
|
|
||||||
'lines' => $detail['lines'] ?? [],
|
|
||||||
'kodcaw' => $kodcaw,
|
|
||||||
'api_url' => $api_url,
|
|
||||||
'cawangan_info' => $cawangan_info,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* PC: senarai PAID untuk tally + blast.
|
|
||||||
*/
|
|
||||||
public function paidIndex(Request $request)
|
|
||||||
{
|
|
||||||
$auth_user = Auth::user();
|
|
||||||
$kodcaw = $this->kodcaw();
|
|
||||||
$api_url = config('api.url');
|
|
||||||
$blastFilter = $request->input('blast_sent', '0');
|
|
||||||
|
|
||||||
$cawangan_info = $this->api()
|
|
||||||
->get($api_url . '/api/cawangan/' . $kodcaw)
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$query = [];
|
|
||||||
if ($blastFilter !== 'all' && $blastFilter !== '') {
|
|
||||||
$query['blast_sent'] = $blastFilter;
|
|
||||||
}
|
|
||||||
|
|
||||||
$paid = $this->api()
|
|
||||||
->get($api_url . '/api/pembiayaan-online/' . $kodcaw . '/paid', $query)
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$lines = $paid['data'] ?? [];
|
|
||||||
if (!is_array($lines)) {
|
|
||||||
$lines = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
$bilangan = $paid['bilangan'] ?? count($lines);
|
|
||||||
$jumlah = $paid['jumlah'] ?? 0;
|
|
||||||
|
|
||||||
return view('pembiayaan_online.pc.paid', compact(
|
|
||||||
'auth_user',
|
|
||||||
'kodcaw',
|
|
||||||
'api_url',
|
|
||||||
'cawangan_info',
|
|
||||||
'lines',
|
|
||||||
'bilangan',
|
|
||||||
'jumlah',
|
|
||||||
'blastFilter'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* PC: view/download bukti bayaran inline.
|
|
||||||
*/
|
|
||||||
public function viewBukti($id)
|
|
||||||
{
|
|
||||||
$kodcaw = $this->kodcaw();
|
|
||||||
$res = $this->api()
|
|
||||||
->get(config('api.url') . '/api/pembiayaan-online/' . $kodcaw . '/lines/' . $id . '/bukti');
|
|
||||||
|
|
||||||
if (!$res->successful()) {
|
|
||||||
$body = $res->json();
|
|
||||||
$msg = is_array($body) && isset($body['message']) ? $body['message'] : 'Bukti tidak dijumpai.';
|
|
||||||
return redirect()->back()->with('error', $msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
$payload = $res->json();
|
|
||||||
$bukti = $payload['bukti'] ?? null;
|
|
||||||
if (!$bukti || empty($bukti['data'])) {
|
|
||||||
return redirect()->back()->with('error', 'Fail bukti kosong.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$raw = $bukti['data'];
|
|
||||||
if (strpos($raw, 'base64,') !== false) {
|
|
||||||
$raw = substr($raw, strpos($raw, 'base64,') + 7);
|
|
||||||
}
|
|
||||||
$binary = base64_decode($raw, true);
|
|
||||||
if ($binary === false) {
|
|
||||||
$binary = base64_decode($bukti['data']);
|
|
||||||
}
|
|
||||||
|
|
||||||
$type = $bukti['type'] ?? 'application/octet-stream';
|
|
||||||
$filename = $bukti['filename'] ?? ('bukti-' . $id);
|
|
||||||
|
|
||||||
return response($binary, 200, [
|
|
||||||
'Content-Type' => $type,
|
|
||||||
'Content-Disposition' => 'inline; filename="' . $filename . '"',
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* PC: tanda rekod PAID sebagai selesai semak / blast.
|
|
||||||
*/
|
|
||||||
public function markBlast(Request $request)
|
|
||||||
{
|
|
||||||
$kodcaw = $this->kodcaw();
|
|
||||||
$ids = $request->input('ids', []);
|
|
||||||
if (!is_array($ids)) {
|
|
||||||
$ids = array_filter(explode(',', (string) $ids));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (count($ids) === 0) {
|
|
||||||
return redirect()->back()->with('error', 'Sila pilih sekurang-kurangnya satu rekod.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$res = $this->api()
|
|
||||||
->asForm()
|
|
||||||
->post(config('api.url') . '/api/pembiayaan-online/' . $kodcaw . '/paid/blast', [
|
|
||||||
'ids' => $ids,
|
|
||||||
'blast_by' => Auth::user()['name'],
|
|
||||||
]);
|
|
||||||
|
|
||||||
if (!$res->successful()) {
|
|
||||||
$body = $res->json();
|
|
||||||
$msg = is_array($body) && isset($body['message']) ? $body['message'] : 'Gagal tanda selesai.';
|
|
||||||
return redirect()->back()->with('error', $msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
$n = $res->json()['dikemaskini'] ?? count($ids);
|
|
||||||
return redirect()
|
|
||||||
->route('pembiayaan.online.pc.paid')
|
|
||||||
->with('message', $n . ' rekod ditanda selesai semak/blast.');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Operasi: senarai batch semua cawangan.
|
|
||||||
*/
|
|
||||||
public function operasiIndex(Request $request)
|
|
||||||
{
|
|
||||||
$auth_user = Auth::user();
|
|
||||||
$api_url = config('api.url');
|
|
||||||
$status = $request->input('status', 'SUBMITTED');
|
|
||||||
$tarikh = $request->input('tarikh');
|
|
||||||
|
|
||||||
$query = ['status' => $status];
|
|
||||||
if ($tarikh) {
|
|
||||||
$query['tarikh'] = $tarikh;
|
|
||||||
}
|
|
||||||
|
|
||||||
$res = $this->api()
|
|
||||||
->get($api_url . '/api/pembiayaan-online/operasi/batches', $query)
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$batches = $res['data'] ?? [];
|
|
||||||
if (!is_array($batches)) {
|
|
||||||
$batches = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
return view('pembiayaan_online.operasi.senarai', compact(
|
|
||||||
'auth_user',
|
|
||||||
'api_url',
|
|
||||||
'batches',
|
|
||||||
'status',
|
|
||||||
'tarikh'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Operasi: detail batch + lines.
|
|
||||||
*/
|
|
||||||
public function operasiShowBatch($kodcaw, $batchId)
|
|
||||||
{
|
|
||||||
$auth_user = Auth::user();
|
|
||||||
$api_url = config('api.url');
|
|
||||||
|
|
||||||
$cawangan_info = $this->api()
|
|
||||||
->get($api_url . '/api/cawangan/' . $kodcaw)
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$detail = $this->api()
|
|
||||||
->get($api_url . '/api/pembiayaan-online/operasi/' . $kodcaw . '/batches/' . $batchId)
|
|
||||||
->json();
|
|
||||||
|
|
||||||
if (!is_array($detail) || empty($detail['batch'])) {
|
|
||||||
return redirect()
|
|
||||||
->route('pembiayaan.online.operasi')
|
|
||||||
->with('error', 'Batch tidak dijumpai.');
|
|
||||||
}
|
|
||||||
|
|
||||||
return view('pembiayaan_online.operasi.batch', [
|
|
||||||
'auth_user' => $auth_user,
|
|
||||||
'batch' => $detail['batch'],
|
|
||||||
'lines' => $detail['lines'] ?? [],
|
|
||||||
'kodcaw' => $kodcaw,
|
|
||||||
'api_url' => $api_url,
|
|
||||||
'cawangan_info' => $cawangan_info,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function operasiApproveLine(Request $request, $kodcaw, $id)
|
|
||||||
{
|
|
||||||
$res = $this->api()
|
|
||||||
->asForm()
|
|
||||||
->post(config('api.url') . '/api/pembiayaan-online/operasi/' . $kodcaw . '/lines/' . $id . '/approve', [
|
|
||||||
'ops_by' => Auth::user()['name'],
|
|
||||||
]);
|
|
||||||
|
|
||||||
return $this->opsRedirect($res, $kodcaw, $request->input('batch_id'), 'Rekod diluluskan.');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function operasiRejectLine(Request $request, $kodcaw, $id)
|
|
||||||
{
|
|
||||||
$reason = trim((string) $request->input('reject_reason', ''));
|
|
||||||
if ($reason === '') {
|
|
||||||
return redirect()->back()->with('error', 'Sebab tolak diperlukan.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$res = $this->api()
|
|
||||||
->asForm()
|
|
||||||
->post(config('api.url') . '/api/pembiayaan-online/operasi/' . $kodcaw . '/lines/' . $id . '/reject', [
|
|
||||||
'ops_by' => Auth::user()['name'],
|
|
||||||
'reject_reason' => $reason,
|
|
||||||
]);
|
|
||||||
|
|
||||||
return $this->opsRedirect($res, $kodcaw, $request->input('batch_id'), 'Rekod ditolak. Dikembalikan ke PC.');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function operasiApproveBatch(Request $request, $kodcaw, $batchId)
|
|
||||||
{
|
|
||||||
$res = $this->api()
|
|
||||||
->asForm()
|
|
||||||
->post(config('api.url') . '/api/pembiayaan-online/operasi/' . $kodcaw . '/batches/' . $batchId . '/approve', [
|
|
||||||
'ops_by' => Auth::user()['name'],
|
|
||||||
]);
|
|
||||||
|
|
||||||
return $this->opsRedirect($res, $kodcaw, $batchId, 'Semua rekod menunggu dalam batch diluluskan.');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function operasiMarkPaid(Request $request, $kodcaw, $id)
|
|
||||||
{
|
|
||||||
$payload = $this->buildPaidPayload($request);
|
|
||||||
if (isset($payload['error'])) {
|
|
||||||
return redirect()->back()->with('error', $payload['error']);
|
|
||||||
}
|
|
||||||
|
|
||||||
$res = $this->api()
|
|
||||||
->asForm()
|
|
||||||
->post(config('api.url') . '/api/pembiayaan-online/operasi/' . $kodcaw . '/lines/' . $id . '/paid', $payload);
|
|
||||||
|
|
||||||
return $this->opsRedirect($res, $kodcaw, $request->input('batch_id'), 'Rekod ditanda PAID.');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function operasiMarkPaidBatch(Request $request, $kodcaw, $batchId)
|
|
||||||
{
|
|
||||||
$payload = $this->buildPaidPayload($request);
|
|
||||||
if (isset($payload['error'])) {
|
|
||||||
return redirect()->back()->with('error', $payload['error']);
|
|
||||||
}
|
|
||||||
|
|
||||||
$res = $this->api()
|
|
||||||
->asForm()
|
|
||||||
->post(config('api.url') . '/api/pembiayaan-online/operasi/' . $kodcaw . '/batches/' . $batchId . '/paid', $payload);
|
|
||||||
|
|
||||||
return $this->opsRedirect($res, $kodcaw, $batchId, 'Rekod APPROVED dalam batch ditanda PAID.');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
protected function buildPaidPayload(Request $request)
|
|
||||||
{
|
|
||||||
$noRujukan = trim((string) $request->input('no_rujukan_bayaran', ''));
|
|
||||||
if ($noRujukan === '') {
|
|
||||||
return ['error' => 'No. rujukan bayaran diperlukan.'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$request->hasFile('bukti')) {
|
|
||||||
return ['error' => 'Fail bukti bayaran diperlukan.'];
|
|
||||||
}
|
|
||||||
|
|
||||||
$file = $request->file('bukti');
|
|
||||||
if (!$file->isValid()) {
|
|
||||||
return ['error' => 'Fail bukti tidak sah.'];
|
|
||||||
}
|
|
||||||
|
|
||||||
$raw = base64_encode(file_get_contents($file->getRealPath()));
|
|
||||||
$mime = $file->getMimeType() ?: 'application/octet-stream';
|
|
||||||
|
|
||||||
return [
|
|
||||||
'ops_by' => Auth::user()['name'],
|
|
||||||
'no_rujukan_bayaran' => $noRujukan,
|
|
||||||
'tarikh_bayaran' => $request->input('tarikh_bayaran') ?: date('Y-m-d'),
|
|
||||||
'bukti_data' => $raw,
|
|
||||||
'bukti_filename' => $file->getClientOriginalName(),
|
|
||||||
'bukti_type' => $mime,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function opsRedirect($res, $kodcaw, $batchId, $successMsg)
|
|
||||||
{
|
|
||||||
$batchId = $batchId ?: null;
|
|
||||||
|
|
||||||
if (!$res->successful()) {
|
|
||||||
$body = $res->json();
|
|
||||||
$msg = is_array($body) && isset($body['message']) ? $body['message'] : 'Tindakan gagal.';
|
|
||||||
return redirect()->back()->with('error', $msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($batchId) {
|
|
||||||
return redirect()
|
|
||||||
->route('pembiayaan.online.operasi.batch', ['kodcaw' => $kodcaw, 'batchId' => $batchId])
|
|
||||||
->with('message', $successMsg);
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->route('pembiayaan.online.operasi')->with('message', $successMsg);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* PC: modal online float + top-up request form/history.
|
|
||||||
*/
|
|
||||||
public function topupIndex(Request $request)
|
|
||||||
{
|
|
||||||
$auth_user = Auth::user();
|
|
||||||
$kodcaw = $this->kodcaw();
|
|
||||||
$api_url = config('api.url');
|
|
||||||
$status = $request->input('status', '');
|
|
||||||
|
|
||||||
$cawangan_info = $this->api()
|
|
||||||
->get($api_url . '/api/cawangan/' . $kodcaw)
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$modal = $this->api()
|
|
||||||
->get($api_url . '/api/modal-online/' . $kodcaw)
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$query = [];
|
|
||||||
if ($status !== '' && $status !== 'all') {
|
|
||||||
$query['status'] = $status;
|
|
||||||
}
|
|
||||||
|
|
||||||
$reqRes = $this->api()
|
|
||||||
->get($api_url . '/api/modal-online/' . $kodcaw . '/topup/requests', $query)
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$requests = $reqRes['data'] ?? [];
|
|
||||||
if (!is_array($requests)) {
|
|
||||||
$requests = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
$pendingRes = $this->api()
|
|
||||||
->get($api_url . '/api/modal-online/' . $kodcaw . '/topup/requests', ['status' => 'PENDING'])
|
|
||||||
->json();
|
|
||||||
$pendingList = $pendingRes['data'] ?? [];
|
|
||||||
$hasPending = is_array($pendingList) && count($pendingList) > 0;
|
|
||||||
$isMissing = !empty($modal['missing']);
|
|
||||||
$pendingRequest = $modal['pending_request'] ?? null;
|
|
||||||
if (!$pendingRequest && $hasPending) {
|
|
||||||
$pendingRequest = $pendingList[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
return view('pembiayaan_online.pc.topup', compact(
|
|
||||||
'auth_user',
|
|
||||||
'kodcaw',
|
|
||||||
'api_url',
|
|
||||||
'cawangan_info',
|
|
||||||
'modal',
|
|
||||||
'requests',
|
|
||||||
'status',
|
|
||||||
'hasPending',
|
|
||||||
'isMissing',
|
|
||||||
'pendingRequest'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* PC: submit top-up request.
|
|
||||||
*/
|
|
||||||
public function topupRequest(Request $request)
|
|
||||||
{
|
|
||||||
$kodcaw = $this->kodcaw();
|
|
||||||
$amaun = (float) $request->input('amaun', 0);
|
|
||||||
|
|
||||||
if ($amaun <= 0) {
|
|
||||||
return redirect()->back()->with('error', 'Amaun mesti lebih daripada 0.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$res = $this->api()
|
|
||||||
->asForm()
|
|
||||||
->post(config('api.url') . '/api/modal-online/' . $kodcaw . '/topup/request', [
|
|
||||||
'amaun' => $amaun,
|
|
||||||
'dimohon_oleh' => Auth::user()['name'],
|
|
||||||
'nota' => $request->input('nota'),
|
|
||||||
]);
|
|
||||||
|
|
||||||
if (!$res->successful()) {
|
|
||||||
$body = $res->json();
|
|
||||||
$msg = is_array($body) && isset($body['message']) ? $body['message'] : 'Gagal hantar permohonan.';
|
|
||||||
return redirect()->back()->with('error', $msg)->withInput();
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()
|
|
||||||
->route('pembiayaan.online.pc.topup')
|
|
||||||
->with('message', 'Permohonan modal online dihantar. Menunggu kelulusan Operasi.');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Operasi: senarai permohonan tambah modal online.
|
|
||||||
*/
|
|
||||||
public function operasiTopupIndex(Request $request)
|
|
||||||
{
|
|
||||||
$auth_user = Auth::user();
|
|
||||||
$api_url = config('api.url');
|
|
||||||
$status = $request->input('status', 'PENDING');
|
|
||||||
$tarikh = $request->input('tarikh');
|
|
||||||
|
|
||||||
$query = [];
|
|
||||||
if ($status === 'all') {
|
|
||||||
$query['status'] = 'all';
|
|
||||||
} elseif ($status !== '' && $status !== null) {
|
|
||||||
$query['status'] = $status;
|
|
||||||
} else {
|
|
||||||
$query['status'] = 'PENDING';
|
|
||||||
}
|
|
||||||
if ($tarikh) {
|
|
||||||
$query['tarikh'] = $tarikh;
|
|
||||||
}
|
|
||||||
|
|
||||||
$res = $this->api()
|
|
||||||
->get($api_url . '/api/modal-online/operasi/topup/requests', $query)
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$requests = $res['data'] ?? [];
|
|
||||||
if (!is_array($requests)) {
|
|
||||||
$requests = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
return view('pembiayaan_online.operasi.topup', compact(
|
|
||||||
'auth_user',
|
|
||||||
'api_url',
|
|
||||||
'requests',
|
|
||||||
'status',
|
|
||||||
'tarikh'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function operasiTopupApprove(Request $request, $id)
|
|
||||||
{
|
|
||||||
$amaun = $request->input('amaun');
|
|
||||||
if ($amaun !== null && $amaun !== '' && (float) $amaun <= 0) {
|
|
||||||
return redirect()->back()->with('error', 'Amaun diluluskan mesti lebih daripada 0.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$res = $this->api()
|
|
||||||
->asForm()
|
|
||||||
->post(config('api.url') . '/api/modal-online/operasi/topup/' . $id . '/approve', [
|
|
||||||
'diluluskan_oleh' => Auth::user()['name'],
|
|
||||||
'nota' => $request->input('nota'),
|
|
||||||
'amaun' => $amaun,
|
|
||||||
]);
|
|
||||||
|
|
||||||
if (!$res->successful()) {
|
|
||||||
$body = $res->json();
|
|
||||||
$msg = is_array($body) && isset($body['message']) ? $body['message'] : 'Gagal lulus permohonan.';
|
|
||||||
return redirect()->back()->with('error', $msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
$amaunLulus = $res->json()['request']['amaun'] ?? $amaun;
|
|
||||||
return redirect()
|
|
||||||
->route('pembiayaan.online.operasi.topup')
|
|
||||||
->with('message', 'Permohonan diluluskan RM ' . number_format((float) $amaunLulus, 2) . '. Modal online cawangan dikemas kini.');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function operasiTopupReject(Request $request, $id)
|
|
||||||
{
|
|
||||||
$res = $this->api()
|
|
||||||
->asForm()
|
|
||||||
->post(config('api.url') . '/api/modal-online/operasi/topup/' . $id . '/reject', [
|
|
||||||
'diluluskan_oleh' => Auth::user()['name'],
|
|
||||||
'nota' => $request->input('nota'),
|
|
||||||
]);
|
|
||||||
|
|
||||||
if (!$res->successful()) {
|
|
||||||
$body = $res->json();
|
|
||||||
$msg = is_array($body) && isset($body['message']) ? $body['message'] : 'Gagal tolak permohonan.';
|
|
||||||
return redirect()->back()->with('error', $msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()
|
|
||||||
->route('pembiayaan.online.operasi.topup')
|
|
||||||
->with('message', 'Permohonan ditolak.');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* PC: EOD close branch modal online.
|
|
||||||
*/
|
|
||||||
public function closeModal(Request $request)
|
|
||||||
{
|
|
||||||
$kodcaw = $this->kodcaw();
|
|
||||||
|
|
||||||
$res = $this->api()
|
|
||||||
->asForm()
|
|
||||||
->post(config('api.url') . '/api/modal-online/' . $kodcaw . '/close', [
|
|
||||||
'ditutup_oleh' => Auth::user()['name'],
|
|
||||||
]);
|
|
||||||
|
|
||||||
if (!$res->successful()) {
|
|
||||||
$body = $res->json();
|
|
||||||
$msg = is_array($body) && isset($body['message']) ? $body['message'] : 'Gagal tutup modal online.';
|
|
||||||
return redirect()->back()->with('error', $msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
$dikembalikan = $res->json()['dikembalikan'] ?? 0;
|
|
||||||
return redirect()
|
|
||||||
->route('pembiayaan.online.pc.topup')
|
|
||||||
->with('message', 'Modal online ditutup. Baki dikembalikan RM ' . number_format((float) $dikembalikan, 2) . '.');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Operasi: EOD dashboard semua cawangan.
|
|
||||||
*/
|
|
||||||
public function operasiEodIndex(Request $request)
|
|
||||||
{
|
|
||||||
$auth_user = Auth::user();
|
|
||||||
$api_url = config('api.url');
|
|
||||||
$tarikh = $request->input('tarikh') ?: date('Y-m-d');
|
|
||||||
|
|
||||||
$res = $this->api()
|
|
||||||
->get($api_url . '/api/modal-online/operasi/eod', [
|
|
||||||
'zone' => 'all',
|
|
||||||
'tarikh' => $tarikh,
|
|
||||||
])
|
|
||||||
->json();
|
|
||||||
|
|
||||||
$rows = $res['data'] ?? [];
|
|
||||||
if (!is_array($rows)) {
|
|
||||||
$rows = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
$summary = [
|
|
||||||
'open' => $res['open'] ?? 0,
|
|
||||||
'closed' => $res['closed'] ?? 0,
|
|
||||||
'missing' => $res['missing'] ?? 0,
|
|
||||||
'bilangan' => $res['bilangan'] ?? count($rows),
|
|
||||||
];
|
|
||||||
|
|
||||||
return view('pembiayaan_online.operasi.eod', compact(
|
|
||||||
'auth_user',
|
|
||||||
'api_url',
|
|
||||||
'rows',
|
|
||||||
'tarikh',
|
|
||||||
'summary'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function operasiCloseModal(Request $request, $kodcaw)
|
|
||||||
{
|
|
||||||
$res = $this->api()
|
|
||||||
->asForm()
|
|
||||||
->post(config('api.url') . '/api/modal-online/' . $kodcaw . '/close', [
|
|
||||||
'ditutup_oleh' => Auth::user()['name'],
|
|
||||||
]);
|
|
||||||
|
|
||||||
if (!$res->successful()) {
|
|
||||||
$body = $res->json();
|
|
||||||
$msg = is_array($body) && isset($body['message']) ? $body['message'] : 'Gagal tutup modal online.';
|
|
||||||
return redirect()->back()->with('error', $msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()
|
|
||||||
->route('pembiayaan.online.operasi.eod')
|
|
||||||
->with('message', 'Modal online ' . $kodcaw . ' ditutup.');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function operasiCloseAllModal(Request $request)
|
|
||||||
{
|
|
||||||
$res = $this->api()
|
|
||||||
->asForm()
|
|
||||||
->post(config('api.url') . '/api/modal-online/operasi/eod/close-all', [
|
|
||||||
'ditutup_oleh' => Auth::user()['name'],
|
|
||||||
'zone' => 'all',
|
|
||||||
]);
|
|
||||||
|
|
||||||
if (!$res->successful()) {
|
|
||||||
$body = $res->json();
|
|
||||||
$msg = is_array($body) && isset($body['message']) ? $body['message'] : 'Gagal tutup semua modal online.';
|
|
||||||
return redirect()->back()->with('error', $msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
$closed = $res->json()['closed'] ?? 0;
|
|
||||||
$skipped = $res->json()['skipped'] ?? 0;
|
|
||||||
return redirect()
|
|
||||||
->route('pembiayaan.online.operasi.eod')
|
|
||||||
->with('message', 'EOD selesai: ' . $closed . ' ditutup, ' . $skipped . ' sudah ditutup.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -46,10 +46,7 @@ class PenebusanController extends Controller
|
|||||||
$nilaihargasemasa = $this->tukaranhargaemas($norujukan);
|
$nilaihargasemasa = $this->tukaranhargaemas($norujukan);
|
||||||
|
|
||||||
$pertambahpinjaman = 0.80;
|
$pertambahpinjaman = 0.80;
|
||||||
|
return view('penebusan.' . $cawangan_info['version'] . '.index',compact('cawangan_info','api_url','gadai','marhun','nama','nilaihargasemasa','pertambahpinjaman'));
|
||||||
$pampasan = $this->getPampasanByNorujukan($norujukan);
|
|
||||||
|
|
||||||
return view('penebusan.' . $cawangan_info['version'] . '.index',compact('cawangan_info','api_url','gadai','marhun','nama','nilaihargasemasa','pertambahpinjaman', 'pampasan'));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function tebuspenuh(Request $request)
|
public function tebuspenuh(Request $request)
|
||||||
@@ -281,167 +278,6 @@ class PenebusanController extends Controller
|
|||||||
$auth_user = Auth::user();
|
$auth_user = Auth::user();
|
||||||
|
|
||||||
|
|
||||||
////////////////////////
|
|
||||||
/// UPDATE TEBUS API////
|
|
||||||
///////////////////////
|
|
||||||
$updatetebus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url').'/api/updatetebus/'. $auth_user['cawangan'] .'/' . $request->norujukan,[
|
|
||||||
'nopelanggan' => $request->nopelanggan,
|
|
||||||
'jenistebus' => $request->jenistebus,
|
|
||||||
'jbg' => $request->jbg,
|
|
||||||
'kadarupah' => $request->kadarupah,
|
|
||||||
'nilai_marhun' => $request->nilai_marhun,
|
|
||||||
'pinjaman' => $request->pinjaman_lama,
|
|
||||||
'ansuran' => $request->ansuran,
|
|
||||||
'nowakil' => $request->nowakil,
|
|
||||||
'addpinjaman'=> $request->addpinjaman,
|
|
||||||
'bakipinjaman' => $request->bakipinjaman,
|
|
||||||
'bakiupah' => $request->bakiupah,
|
|
||||||
'historygadaian' => $request->historygadaian,
|
|
||||||
'marhun' => $request->marhun,
|
|
||||||
'jenisbayarantebus' => $request->jenisbayarantebus,
|
|
||||||
'jeniskeuntungan' => $request->jeniskeuntungan,
|
|
||||||
'teller' => $request->teller,
|
|
||||||
"duitpelanggan" => $request->bayaran,
|
|
||||||
"bakipelanggan" => $request->bakipelanggan,
|
|
||||||
])->json();
|
|
||||||
|
|
||||||
if($updatetebus == 'duplicate'){
|
|
||||||
return response()->json('duplicate');
|
|
||||||
}
|
|
||||||
|
|
||||||
//////////////////////
|
|
||||||
/// MAKING NEW SAG////
|
|
||||||
/////////////////////
|
|
||||||
|
|
||||||
$gadai_transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/'. $auth_user['cawangan'] . '/' . $current->toDateString())->json();
|
|
||||||
if($gadai_transaction){
|
|
||||||
$new_sirig = $gadai_transaction['sirig'] + 1;
|
|
||||||
|
|
||||||
}else{
|
|
||||||
$new_sirig = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
$new_transaction = sprintf("%04d",$new_sirig);
|
|
||||||
$norujukanbaru = strtoupper($auth_user['cawangan']) . $curent_year . $curent_month . $current_day . '-' .$new_transaction;
|
|
||||||
|
|
||||||
$gadai = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/api/gadai/'.$auth_user['cawangan'],[
|
|
||||||
'norujukan' => $norujukanbaru,
|
|
||||||
'nopelanggan' => $request->nopelanggan,
|
|
||||||
'nokp' => $request->noic,
|
|
||||||
'sirig' => $new_sirig
|
|
||||||
]);
|
|
||||||
|
|
||||||
///////////////////////////
|
|
||||||
/// MARHUN UPDATE TABLE////
|
|
||||||
//////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
$arraymarhunbaru = [];
|
|
||||||
|
|
||||||
$marhunsediada = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/marhun/'. $request->norujukan)->json();
|
|
||||||
|
|
||||||
$marhunyangdiambil = $marhunsediada[0];
|
|
||||||
foreach($marhunyangdiambil as $index=>$marhunloop)
|
|
||||||
{
|
|
||||||
$karatbaru = str_replace('.','-',$marhunloop['karat']);
|
|
||||||
$hargabaru = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/harga_emas/'. $karatbaru)->json();
|
|
||||||
|
|
||||||
$nilaimarhun = (floatval($hargabaru['harga']) * floatval($marhunloop['berat']));
|
|
||||||
|
|
||||||
array_push($arraymarhunbaru, ["bil" => $marhunloop['bil'],"tag_permata" => $marhunloop['tag_permata'],"berat_batu_permata" => $marhunloop['berat_batu_permata'],"marhun" => $marhunloop['marhun'],"nota" => $marhunloop['nota'],"karat" => $marhunloop['karat'], "berat" => $marhunloop['berat'], "harga" => $hargabaru['harga'], "n_marhun" => $nilaimarhun]);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach($arraymarhunbaru as $array1){
|
|
||||||
$updatemarhun = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/api/marhun/'. $auth_user['cawangan'],[
|
|
||||||
'norujukan' => $norujukanbaru,
|
|
||||||
'marhun' => $array1['marhun'],
|
|
||||||
'nota' => $array1['nota'],
|
|
||||||
'karat' => $array1['karat'],
|
|
||||||
'berat_emas' => $array1['berat'],
|
|
||||||
'harga' => $array1['harga'],
|
|
||||||
'tag_permata' => $array1['tag_permata'],
|
|
||||||
'berat_batu_permata' => $array1['berat_batu_permata'],
|
|
||||||
'kuantiti' => $array1['bil']
|
|
||||||
])->json();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//////////////////////
|
|
||||||
////Update SAG BARU///
|
|
||||||
/////////////////////
|
|
||||||
|
|
||||||
$total_nilai_marhun = $request->nilai_marhun;
|
|
||||||
$margin_pinjaman = $request->pinjaman / $total_nilai_marhun;
|
|
||||||
$kadarupah = $request->kadarkeuntungan * 100;
|
|
||||||
|
|
||||||
$onepercent = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/api/onepercent',[
|
|
||||||
'pembiayaan' => $request->pinjaman,
|
|
||||||
'nilaimarhun' => $total_nilai_marhun,
|
|
||||||
'kadarujrah' => $request->kadarkeuntungan,
|
|
||||||
'margin' => ($margin_pinjaman*100),
|
|
||||||
'kodcaw' => Auth::user()->cawangan
|
|
||||||
])->json();
|
|
||||||
|
|
||||||
$keuntungan_sebln = $onepercent['keuntungan'];
|
|
||||||
$keuntungan_sebln = str_replace(',','',$keuntungan_sebln);
|
|
||||||
$keuntungan6bulan = $keuntungan_sebln * 6;
|
|
||||||
$keuntungan12bulan = $keuntungan_sebln * 12;
|
|
||||||
$hargajualan = $request->pinjaman + $keuntungan12bulan;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url').'/api/gadai/norujukan/'. $auth_user['cawangan'] .'/' . $norujukanbaru,[
|
|
||||||
'kodcaw' => $auth_user['cawangan'],
|
|
||||||
'nilaimarhun' => round($total_nilai_marhun, 2),
|
|
||||||
'berat' => round($request->total_berat, 2),
|
|
||||||
'pinjaman' => round($request->pinjaman, 2),
|
|
||||||
'kadarupah' => round($kadarupah, 2),
|
|
||||||
'marhun' => $request->marhun,
|
|
||||||
'percentpinj' => $margin_pinjaman,
|
|
||||||
'teller'=> $auth_user['name'],
|
|
||||||
'upah6' => $keuntungan6bulan,
|
|
||||||
'upah12' => $keuntungan12bulan,
|
|
||||||
'hargajualan' => $hargajualan,
|
|
||||||
'kuantiti_marhun' => $request->kuantiti_marhun
|
|
||||||
])->json();
|
|
||||||
|
|
||||||
$komuditi = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url').'/api/komuditi/transaksi',[
|
|
||||||
'unit_komuditi' => round($request->pinjaman, 2),
|
|
||||||
'norujukan' => $norujukanbaru,
|
|
||||||
'kodcaw' => $auth_user['cawangan'],
|
|
||||||
'teller' => $auth_user['name']
|
|
||||||
]);
|
|
||||||
|
|
||||||
////////////////////////////
|
|
||||||
////Update History Gadaian///
|
|
||||||
////////////////////////////
|
|
||||||
|
|
||||||
$updatehistorygadaian = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url').'/api/gadai/updatehistory/'. $auth_user['cawangan'] .'/' . $norujukanbaru,[
|
|
||||||
'historygadaian' => $request->norujukan,
|
|
||||||
'jenistebus' => $request->jenistebus,
|
|
||||||
])->json();
|
|
||||||
|
|
||||||
|
|
||||||
event(new TebusNotify('lulus',Auth::user()->cawangan));
|
|
||||||
event(new GadaiNotify('lulus',Auth::user()->cawangan));
|
|
||||||
$this->AliranTunaiController->alirantunaiTebus($request);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function tambahpinjaman_latest(Request $request)
|
|
||||||
{
|
|
||||||
$api_url = config('api.url');
|
|
||||||
$current = Carbon::now();
|
|
||||||
$current = new Carbon();
|
|
||||||
$curent_year = substr($current->year,2,2);
|
|
||||||
$curent_month = sprintf("%02d", $current->month);
|
|
||||||
$current_day = sprintf("%02d", $current->day);
|
|
||||||
|
|
||||||
$auth_user = Auth::user();
|
|
||||||
|
|
||||||
|
|
||||||
////////////////////////
|
////////////////////////
|
||||||
/// UPDATE TEBUS API////
|
/// UPDATE TEBUS API////
|
||||||
///////////////////////
|
///////////////////////
|
||||||
@@ -512,16 +348,252 @@ class PenebusanController extends Controller
|
|||||||
'totalbayaran' => $request->totalbayaran,
|
'totalbayaran' => $request->totalbayaran,
|
||||||
"duitpelanggan" => $request->bayaran,
|
"duitpelanggan" => $request->bayaran,
|
||||||
"bakipelanggan" => $request->bakipelanggan,
|
"bakipelanggan" => $request->bakipelanggan,
|
||||||
"noic" => $request->noic,
|
|
||||||
"jenisAT" => $request->jenisAT,
|
|
||||||
])->json();
|
])->json();
|
||||||
if($updatetebus['result'] == 'success'){
|
|
||||||
$alirantunai = new AliranTunaiController();
|
if($updatetebus == 'duplicate'){
|
||||||
event(new TebusNotify('lulus',Auth::user()->cawangan));
|
return response()->json('duplicate');
|
||||||
event(new GadaiNotify('lulus',Auth::user()->cawangan));
|
|
||||||
$alirantunai->alirantunaiTebusAutoTawarruq($request);
|
|
||||||
}
|
}
|
||||||
return response()->json($updatetebus['result'],200);
|
|
||||||
|
//////////////////////
|
||||||
|
/// MAKING NEW SAG////
|
||||||
|
/////////////////////
|
||||||
|
$gadai_transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/'. $auth_user['cawangan'] . '/' . $current->toDateString())->json();
|
||||||
|
if($gadai_transaction){
|
||||||
|
$new_sirig = $gadai_transaction['sirig'] + 1;
|
||||||
|
|
||||||
|
}else{
|
||||||
|
$new_sirig = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
$new_transaction = sprintf("%04d",$new_sirig);
|
||||||
|
$norujukanbaru = strtoupper($auth_user['cawangan']) . $curent_year . $curent_month . $current_day . '-' .$new_transaction;
|
||||||
|
|
||||||
|
$gadai = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/api/gadai/'.$auth_user['cawangan'],[
|
||||||
|
'norujukan' => $norujukanbaru,
|
||||||
|
'nopelanggan' => $request->nopelanggan,
|
||||||
|
'nokp' => $request->noic,
|
||||||
|
'sirig' => $new_sirig
|
||||||
|
]);
|
||||||
|
|
||||||
|
///////////////////////////
|
||||||
|
/// MARHUN UPDATE TABLE////
|
||||||
|
//////////////////////////
|
||||||
|
|
||||||
|
$arraymarhunbaru = [];
|
||||||
|
|
||||||
|
$marhunsediada = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/marhun/'. $request->norujukan)->json();
|
||||||
|
|
||||||
|
$marhunyangdiambil = $marhunsediada[0];
|
||||||
|
foreach($marhunyangdiambil as $index=>$marhunloop)
|
||||||
|
{
|
||||||
|
$karatbaru = str_replace('.','-',$marhunloop['karat']);
|
||||||
|
$hargabaru = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/harga_emas/'. $karatbaru)->json();
|
||||||
|
|
||||||
|
$harga = ($request->jenisAT == 'hargalama') ? $marhunloop['harga'] : $hargabaru['harga'];
|
||||||
|
$nilaimarhun = (floatval($harga) * floatval($marhunloop['berat']));
|
||||||
|
|
||||||
|
array_push($arraymarhunbaru, ["bil" => $marhunloop['bil'],"tag_permata" => $marhunloop['tag_permata'],"berat_batu_permata" => $marhunloop['berat_batu_permata'],"marhun" => $marhunloop['marhun'],"nota" => $marhunloop['nota'],"karat" => $marhunloop['karat'], "berat" => $marhunloop['berat'], "harga" => $harga, "n_marhun" => $nilaimarhun]);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach($arraymarhunbaru as $array1){
|
||||||
|
$updatemarhun = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/api/marhun/'. $auth_user['cawangan'],[
|
||||||
|
'norujukan' => $norujukanbaru,
|
||||||
|
'marhun' => $array1['marhun'],
|
||||||
|
'nota' => $array1['nota'],
|
||||||
|
'karat' => $array1['karat'],
|
||||||
|
'berat_emas' => $array1['berat'],
|
||||||
|
'harga' => $array1['harga'],
|
||||||
|
'nilai_marhun' => $array1['n_marhun'],
|
||||||
|
'tag_permata' => $array1['tag_permata'],
|
||||||
|
'berat_batu_permata' => $array1['berat_batu_permata'],
|
||||||
|
'jenisAT' => $request->jenisAT,
|
||||||
|
'kuantiti' => $array1['bil']
|
||||||
|
])->json();
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////////
|
||||||
|
////Update SAG BARU///
|
||||||
|
/////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
$total_nilai_marhun = $request->total_nilai_marhun;
|
||||||
|
$margin_pinjaman = ($request->pinjaman / $total_nilai_marhun);
|
||||||
|
|
||||||
|
$onepercent = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/api/onepercent',[
|
||||||
|
'pembiayaan' => $request->pinjaman,
|
||||||
|
'nilaimarhun' => $total_nilai_marhun,
|
||||||
|
'kadarujrah' => $request->kadarkeuntungan,
|
||||||
|
'margin' => ($margin_pinjaman*100),
|
||||||
|
'kodcaw' => Auth::user()->cawangan
|
||||||
|
])->json();
|
||||||
|
|
||||||
|
$keuntungan_sebln = $onepercent['keuntungan'];
|
||||||
|
$keuntungan_sebln = str_replace(',','',$keuntungan_sebln);
|
||||||
|
|
||||||
|
$kadarupah = $request->kadarkeuntungan * 100;
|
||||||
|
$keuntungan6bulan = $keuntungan_sebln * 6;
|
||||||
|
$keuntungan12bulan = $keuntungan_sebln * 12;
|
||||||
|
$hargajualan = $request->pinjaman + $keuntungan12bulan;
|
||||||
|
|
||||||
|
|
||||||
|
$gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url').'/api/gadai/norujukan/'. $auth_user['cawangan'] .'/' . $norujukanbaru,[
|
||||||
|
'kodcaw' => $auth_user['cawangan'],
|
||||||
|
'nilaimarhun' => round($total_nilai_marhun, 2),
|
||||||
|
'berat' => round($request->total_berat, 2),
|
||||||
|
'pinjaman' => round($request->pinjaman, 2),
|
||||||
|
'kadarupah' => round($kadarupah, 2),
|
||||||
|
'marhun' => $request->marhun_detail,
|
||||||
|
'percentpinj' => $margin_pinjaman,
|
||||||
|
'teller'=> $auth_user['name'],
|
||||||
|
'upah6' => $keuntungan6bulan,
|
||||||
|
'upah12' => $keuntungan12bulan,
|
||||||
|
'hargajualan' => $hargajualan,
|
||||||
|
'kuantiti_marhun' => $request->kuantiti_marhun,
|
||||||
|
]);
|
||||||
|
|
||||||
|
|
||||||
|
$komuditi = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url').'/api/komuditi/transaksi',[
|
||||||
|
'unit_komuditi' => round($request->pinjaman, 2),
|
||||||
|
'norujukan' => $norujukanbaru,
|
||||||
|
'kodcaw' => $auth_user['cawangan'],
|
||||||
|
'teller' => $auth_user['name']
|
||||||
|
]);
|
||||||
|
|
||||||
|
////////////////////////////
|
||||||
|
////Update History Gadaian///
|
||||||
|
////////////////////////////
|
||||||
|
|
||||||
|
$updatehistorygadaian = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url').'/api/gadai/updatehistory/'. $auth_user['cawangan'] .'/' . $norujukanbaru,[
|
||||||
|
'historygadaian' => $request->norujukan,
|
||||||
|
'jenistebus' => $request->jenistebus,
|
||||||
|
])->json();
|
||||||
|
|
||||||
|
if($updatetebus == 'duplicate'){
|
||||||
|
return response()->json('duplicate');
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////////
|
||||||
|
/// MAKING NEW SAG////
|
||||||
|
/////////////////////
|
||||||
|
$gadai_transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/'. $auth_user['cawangan'] . '/' . $current->toDateString())->json();
|
||||||
|
if($gadai_transaction){
|
||||||
|
$new_sirig = $gadai_transaction['sirig'] + 1;
|
||||||
|
|
||||||
|
}else{
|
||||||
|
$new_sirig = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
$new_transaction = sprintf("%04d",$new_sirig);
|
||||||
|
$norujukanbaru = strtoupper($auth_user['cawangan']) . $curent_year . $curent_month . $current_day . '-' .$new_transaction;
|
||||||
|
|
||||||
|
$gadai = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/api/gadai/'.$auth_user['cawangan'],[
|
||||||
|
'norujukan' => $norujukanbaru,
|
||||||
|
'nopelanggan' => $request->nopelanggan,
|
||||||
|
'nokp' => $request->noic,
|
||||||
|
'sirig' => $new_sirig
|
||||||
|
]);
|
||||||
|
|
||||||
|
///////////////////////////
|
||||||
|
/// MARHUN UPDATE TABLE////
|
||||||
|
//////////////////////////
|
||||||
|
|
||||||
|
$arraymarhunbaru = [];
|
||||||
|
|
||||||
|
$marhunsediada = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/marhun/'. $request->norujukan)->json();
|
||||||
|
|
||||||
|
$marhunyangdiambil = $marhunsediada[0];
|
||||||
|
foreach($marhunyangdiambil as $index=>$marhunloop)
|
||||||
|
{
|
||||||
|
$karatbaru = str_replace('.','-',$marhunloop['karat']);
|
||||||
|
$hargabaru = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/harga_emas/'. $karatbaru)->json();
|
||||||
|
|
||||||
|
$harga = ($request->jenisAT == 'hargalama') ? $marhunloop['harga'] : $hargabaru['harga'];
|
||||||
|
$nilaimarhun = (floatval($harga) * floatval($marhunloop['berat']));
|
||||||
|
|
||||||
|
array_push($arraymarhunbaru, ["bil" => $marhunloop['bil'],"tag_permata" => $marhunloop['tag_permata'],"berat_batu_permata" => $marhunloop['berat_batu_permata'],"marhun" => $marhunloop['marhun'],"nota" => $marhunloop['nota'],"karat" => $marhunloop['karat'], "berat" => $marhunloop['berat'], "harga" => $harga, "n_marhun" => $nilaimarhun]);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach($arraymarhunbaru as $array1){
|
||||||
|
$updatemarhun = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/api/marhun/'. $auth_user['cawangan'],[
|
||||||
|
'norujukan' => $norujukanbaru,
|
||||||
|
'marhun' => $array1['marhun'],
|
||||||
|
'nota' => $array1['nota'],
|
||||||
|
'karat' => $array1['karat'],
|
||||||
|
'berat_emas' => $array1['berat'],
|
||||||
|
'harga' => $array1['harga'],
|
||||||
|
'nilai_marhun' => $array1['n_marhun'],
|
||||||
|
'tag_permata' => $array1['tag_permata'],
|
||||||
|
'berat_batu_permata' => $array1['berat_batu_permata'],
|
||||||
|
'jenisAT' => $request->jenisAT,
|
||||||
|
'kuantiti' => $array1['bil']
|
||||||
|
])->json();
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////////
|
||||||
|
////Update SAG BARU///
|
||||||
|
/////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
$total_nilai_marhun = $request->total_nilai_marhun;
|
||||||
|
$margin_pinjaman = ($request->pinjaman / $total_nilai_marhun);
|
||||||
|
|
||||||
|
$onepercent = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/api/onepercent',[
|
||||||
|
'pembiayaan' => $request->pinjaman,
|
||||||
|
'nilaimarhun' => $total_nilai_marhun,
|
||||||
|
'kadarujrah' => $request->kadarkeuntungan,
|
||||||
|
'margin' => ($margin_pinjaman*100),
|
||||||
|
'kodcaw' => Auth::user()->cawangan
|
||||||
|
])->json();
|
||||||
|
|
||||||
|
$keuntungan_sebln = $onepercent['keuntungan'];
|
||||||
|
$keuntungan_sebln = str_replace(',','',$keuntungan_sebln);
|
||||||
|
|
||||||
|
$kadarupah = $request->kadarkeuntungan * 100;
|
||||||
|
$keuntungan6bulan = $keuntungan_sebln * 6;
|
||||||
|
$keuntungan12bulan = $keuntungan_sebln * 12;
|
||||||
|
$hargajualan = $request->pinjaman + $keuntungan12bulan;
|
||||||
|
|
||||||
|
|
||||||
|
$gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url').'/api/gadai/norujukan/'. $auth_user['cawangan'] .'/' . $norujukanbaru,[
|
||||||
|
'kodcaw' => $auth_user['cawangan'],
|
||||||
|
'nilaimarhun' => round($total_nilai_marhun, 2),
|
||||||
|
'berat' => round($request->total_berat, 2),
|
||||||
|
'pinjaman' => round($request->pinjaman, 2),
|
||||||
|
'kadarupah' => round($kadarupah, 2),
|
||||||
|
'marhun' => $request->marhun_detail,
|
||||||
|
'percentpinj' => $margin_pinjaman,
|
||||||
|
'teller'=> $auth_user['name'],
|
||||||
|
'upah6' => $keuntungan6bulan,
|
||||||
|
'upah12' => $keuntungan12bulan,
|
||||||
|
'hargajualan' => $hargajualan,
|
||||||
|
'kuantiti_marhun' => $request->kuantiti_marhun,
|
||||||
|
]);
|
||||||
|
|
||||||
|
|
||||||
|
$komuditi = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url').'/api/komuditi/transaksi',[
|
||||||
|
'unit_komuditi' => round($request->pinjaman, 2),
|
||||||
|
'norujukan' => $norujukanbaru,
|
||||||
|
'kodcaw' => $auth_user['cawangan'],
|
||||||
|
'teller' => $auth_user['name']
|
||||||
|
]);
|
||||||
|
|
||||||
|
////////////////////////////
|
||||||
|
////Update History Gadaian///
|
||||||
|
////////////////////////////
|
||||||
|
|
||||||
|
$updatehistorygadaian = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url').'/api/gadai/updatehistory/'. $auth_user['cawangan'] .'/' . $norujukanbaru,[
|
||||||
|
'historygadaian' => $request->norujukan,
|
||||||
|
'jenistebus' => $request->jenistebus,
|
||||||
|
])->json();
|
||||||
|
|
||||||
|
|
||||||
|
$alirantunai = new AliranTunaiController();
|
||||||
|
event(new TebusNotify('lulus',Auth::user()->cawangan));
|
||||||
|
event(new GadaiNotify('lulus',Auth::user()->cawangan));
|
||||||
|
$alirantunai->alirantunaiTebusAutoTawarruq($request);
|
||||||
|
|
||||||
|
return response()->json($updatemarhun,200);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function tebusseparuh(Request $request)
|
public function tebusseparuh(Request $request)
|
||||||
@@ -621,7 +693,7 @@ class PenebusanController extends Controller
|
|||||||
'tag_permata' => $array1['tag_permata'],
|
'tag_permata' => $array1['tag_permata'],
|
||||||
'berat_batu_permata' => $array1['berat_batu_permata'],
|
'berat_batu_permata' => $array1['berat_batu_permata'],
|
||||||
'nilai_marhun' => $array1['n_marhun'],
|
'nilai_marhun' => $array1['n_marhun'],
|
||||||
'kuantiti' => $array1['bil']
|
'kuantiti' => $array1['bil']
|
||||||
])->json();
|
])->json();
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -789,26 +861,4 @@ class PenebusanController extends Controller
|
|||||||
return view($view, compact('cawangan_info','api_url','gadai','marhun','nama','nilaihargasemasa'));
|
return view($view, compact('cawangan_info','api_url','gadai','marhun','nama','nilaihargasemasa'));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPampasanByNorujukan($norujukan)
|
|
||||||
{
|
|
||||||
$auth_user = Auth::user();
|
|
||||||
|
|
||||||
$pampasanListResponse = Http::get(config('api.url'). '/api/palsu/laporan', [
|
|
||||||
'kodcaw' => $auth_user['cawangan'],
|
|
||||||
'status' => 'all',
|
|
||||||
]);
|
|
||||||
|
|
||||||
if($pampasanListResponse->failed()){
|
|
||||||
throw new \Exception("Something wrong with API", 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
$pampasanList = array_filter($pampasanListResponse->json(), function($pampasan) use($norujukan){
|
|
||||||
return $pampasan['norujukan'] == $norujukan;
|
|
||||||
});
|
|
||||||
|
|
||||||
$pampasan = sizeof($pampasanList) == 0 ? null : array_pop($pampasanList);
|
|
||||||
|
|
||||||
return $pampasan;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,6 +72,5 @@ class Kernel extends HttpKernel
|
|||||||
'admin' => 'App\Http\Middleware\Admin',
|
'admin' => 'App\Http\Middleware\Admin',
|
||||||
'audit' => 'App\Http\Middleware\Audit',
|
'audit' => 'App\Http\Middleware\Audit',
|
||||||
'masteradmin' => 'App\Http\Middleware\Masteradmin',
|
'masteradmin' => 'App\Http\Middleware\Masteradmin',
|
||||||
'role' => 'App\Http\Middleware\RoleAccess',
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,71 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Middleware;
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
use Closure;
|
|
||||||
|
|
||||||
class RoleAccess
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Handle an incoming request.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @param \Closure $next
|
|
||||||
* @param string ...$roles
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public function handle($request, Closure $next, ...$roles)
|
|
||||||
{
|
|
||||||
if (!Auth::check()) {
|
|
||||||
return redirect('/login');
|
|
||||||
}
|
|
||||||
|
|
||||||
$user = Auth::user();
|
|
||||||
$userRole = $user->roles;
|
|
||||||
$userRoleHarian = $user->role_harian ?? null;
|
|
||||||
|
|
||||||
// Check each allowed role
|
|
||||||
foreach ($roles as $role) {
|
|
||||||
switch ($role) {
|
|
||||||
case 'teller':
|
|
||||||
if ($userRoleHarian == 'teller' || $userRole == 'teller') {
|
|
||||||
return $next($request);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'khazanah':
|
|
||||||
if ($userRole == 'pc' || $userRole == 'ppc') {
|
|
||||||
return $next($request);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'admin':
|
|
||||||
if ($userRole == 'admin') {
|
|
||||||
return $next($request);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'penilai':
|
|
||||||
if ($userRole == 'penilai') {
|
|
||||||
return $next($request);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'operasi':
|
|
||||||
if ($userRole == 'operasi') {
|
|
||||||
return $next($request);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'audit':
|
|
||||||
if ($userRole == 'audit') {
|
|
||||||
return $next($request);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// If no roles matched, deny access
|
|
||||||
abort(403, 'Access denied. Required roles: ' . implode(', ', $roles));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -25,8 +25,6 @@ class AuthServiceProvider extends ServiceProvider
|
|||||||
{
|
{
|
||||||
$this->registerPolicies();
|
$this->registerPolicies();
|
||||||
|
|
||||||
Gate::define('impersonate', function ($user) {
|
//
|
||||||
return $user->canImpersonate();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,11 +6,9 @@ use Illuminate\Contracts\Auth\MustVerifyEmail;
|
|||||||
use Illuminate\Database\Eloquent\Relations\HasOne;
|
use Illuminate\Database\Eloquent\Relations\HasOne;
|
||||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||||
use Illuminate\Notifications\Notifiable;
|
use Illuminate\Notifications\Notifiable;
|
||||||
use Lab404\Impersonate\Models\Impersonate;
|
|
||||||
|
|
||||||
class User extends Authenticatable
|
class User extends Authenticatable
|
||||||
{
|
{
|
||||||
use Impersonate;
|
|
||||||
use Notifiable;
|
use Notifiable;
|
||||||
|
|
||||||
protected $guard = 'web';
|
protected $guard = 'web';
|
||||||
@@ -45,14 +43,4 @@ class User extends Authenticatable
|
|||||||
{
|
{
|
||||||
return $this->hasOne(Cawangan::class, 'kodcaw', 'cawangan');
|
return $this->hasOne(Cawangan::class, 'kodcaw', 'cawangan');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function canImpersonate(): bool
|
|
||||||
{
|
|
||||||
return in_array($this->roles ?? '', ['admin'], true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function canBeImpersonated(): bool
|
|
||||||
{
|
|
||||||
return ($this->roles ?? '') !== 'admin';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
if (!function_exists('api_url_for_browser')) {
|
|
||||||
/**
|
|
||||||
* Base URL for JavaScript in the browser, derived from API_URL (config api.url).
|
|
||||||
* Docker dev often uses host.docker.internal for PHP→host; browsers may not resolve it.
|
|
||||||
* Same host-mapped port is reachable at 127.0.0.1. Production URLs are unchanged.
|
|
||||||
*/
|
|
||||||
function api_url_for_browser(): string
|
|
||||||
{
|
|
||||||
$url = rtrim((string) config('api.url'), '/');
|
|
||||||
|
|
||||||
return str_ireplace('host.docker.internal', '127.0.0.1', $url);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -14,7 +14,6 @@
|
|||||||
"fruitcake/laravel-cors": "^2.0",
|
"fruitcake/laravel-cors": "^2.0",
|
||||||
"guzzlehttp/guzzle": "^6.3",
|
"guzzlehttp/guzzle": "^6.3",
|
||||||
"jeroennoten/laravel-adminlte": "^3.5",
|
"jeroennoten/laravel-adminlte": "^3.5",
|
||||||
"lab404/laravel-impersonate": "^1.7",
|
|
||||||
"laravel/framework": "^7.24",
|
"laravel/framework": "^7.24",
|
||||||
"laravel/tinker": "^2.0",
|
"laravel/tinker": "^2.0",
|
||||||
"laravel/ui": "^2.4",
|
"laravel/ui": "^2.4",
|
||||||
@@ -52,9 +51,6 @@
|
|||||||
"classmap": [
|
"classmap": [
|
||||||
"database/seeds",
|
"database/seeds",
|
||||||
"database/factories"
|
"database/factories"
|
||||||
],
|
|
||||||
"files": [
|
|
||||||
"app/helpers.php"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"autoload-dev": {
|
"autoload-dev": {
|
||||||
|
|||||||
Generated
+4
-71
@@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "fa66321247398a94dc8b7f8099bb184e",
|
"content-hash": "bfd66ab0246126c4f2cc7bbeeacca4ec",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "almasaeed2010/adminlte",
|
"name": "almasaeed2010/adminlte",
|
||||||
@@ -1293,73 +1293,6 @@
|
|||||||
},
|
},
|
||||||
"time": "2022-05-18T14:12:47+00:00"
|
"time": "2022-05-18T14:12:47+00:00"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "lab404/laravel-impersonate",
|
|
||||||
"version": "1.7.8",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/404labfr/laravel-impersonate.git",
|
|
||||||
"reference": "0008a39da8914cc946b6a5ed211230708ee736b3"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/404labfr/laravel-impersonate/zipball/0008a39da8914cc946b6a5ed211230708ee736b3",
|
|
||||||
"reference": "0008a39da8914cc946b6a5ed211230708ee736b3",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"laravel/framework": "^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0 | ^11.0 | ^12.0 | ^13.0",
|
|
||||||
"php": "^7.2 | ^8.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"mockery/mockery": "^1.3.3",
|
|
||||||
"orchestra/testbench": "^4.0 | ^5.0 | ^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0 | ^11.0",
|
|
||||||
"phpunit/phpunit": "^7.5 | ^8.0 | ^9.0 | ^10.0 | ^11.0"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"laravel": {
|
|
||||||
"providers": [
|
|
||||||
"Lab404\\Impersonate\\ImpersonateServiceProvider"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"files": [
|
|
||||||
"src/helpers.php"
|
|
||||||
],
|
|
||||||
"psr-4": {
|
|
||||||
"Lab404\\Impersonate\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Marceau Casals",
|
|
||||||
"email": "marceau@casals.fr"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Laravel Impersonate is a plugin that allows to you to authenticate as your users.",
|
|
||||||
"keywords": [
|
|
||||||
"auth",
|
|
||||||
"impersonate",
|
|
||||||
"impersonation",
|
|
||||||
"laravel",
|
|
||||||
"laravel-package",
|
|
||||||
"laravel-plugin",
|
|
||||||
"package",
|
|
||||||
"plugin",
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/404labfr/laravel-impersonate/issues",
|
|
||||||
"source": "https://github.com/404labfr/laravel-impersonate/tree/1.7.8"
|
|
||||||
},
|
|
||||||
"time": "2026-03-17T15:24:14+00:00"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "laravel/framework",
|
"name": "laravel/framework",
|
||||||
"version": "v7.30.6",
|
"version": "v7.30.6",
|
||||||
@@ -9080,12 +9013,12 @@
|
|||||||
],
|
],
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"minimum-stability": "dev",
|
"minimum-stability": "dev",
|
||||||
"stability-flags": {},
|
"stability-flags": [],
|
||||||
"prefer-stable": true,
|
"prefer-stable": true,
|
||||||
"prefer-lowest": false,
|
"prefer-lowest": false,
|
||||||
"platform": {
|
"platform": {
|
||||||
"php": "^7.2.5"
|
"php": "^7.2.5"
|
||||||
},
|
},
|
||||||
"platform-dev": {},
|
"platform-dev": [],
|
||||||
"plugin-api-version": "2.9.0"
|
"plugin-api-version": "2.3.0"
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
return [
|
return [
|
||||||
'url' => env('API_URL'),
|
'url' => env('API_URL'),
|
||||||
'url_koop' => env('API_URL_KOOP','http://localhost:8000'),
|
'url_koop' => env('API_URL_KOOP','https://apiujrah.erahn.com.my'),
|
||||||
'url_pkb' => env('API_URL_PKB','http://localhost:8000'),
|
'url_pkb' => env('API_URL_PKB','http://localhost:8000'),
|
||||||
];
|
];
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
services:
|
|
||||||
app:
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: docker/php/Dockerfile
|
|
||||||
working_dir: /var/www/html
|
|
||||||
volumes:
|
|
||||||
- ./:/var/www/html:cached
|
|
||||||
environment:
|
|
||||||
APP_ENV: local
|
|
||||||
APP_DEBUG: "true"
|
|
||||||
# Lets PHP resolve host.docker.internal to the host machine (Linux Docker; Desktop already provides this).
|
|
||||||
extra_hosts:
|
|
||||||
- "host.docker.internal:host-gateway"
|
|
||||||
depends_on:
|
|
||||||
- mysql
|
|
||||||
|
|
||||||
web:
|
|
||||||
image: nginx:1.25-alpine
|
|
||||||
ports:
|
|
||||||
- "8081:80"
|
|
||||||
volumes:
|
|
||||||
- ./:/var/www/html:cached
|
|
||||||
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
|
|
||||||
depends_on:
|
|
||||||
- app
|
|
||||||
|
|
||||||
mysql:
|
|
||||||
image: mysql:8.0
|
|
||||||
command: --default-authentication-plugin=mysql_native_password
|
|
||||||
ports:
|
|
||||||
- "3307:3306"
|
|
||||||
environment:
|
|
||||||
MYSQL_DATABASE: kaunter_erahn
|
|
||||||
MYSQL_USER: kaunteruser
|
|
||||||
MYSQL_PASSWORD: password
|
|
||||||
MYSQL_ROOT_PASSWORD: root
|
|
||||||
volumes:
|
|
||||||
- mysql_data:/var/lib/mysql
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
mysql_data:
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
server {
|
|
||||||
listen 80;
|
|
||||||
server_name _;
|
|
||||||
|
|
||||||
root /var/www/html/public;
|
|
||||||
index index.php index.html;
|
|
||||||
|
|
||||||
charset utf-8;
|
|
||||||
|
|
||||||
location / {
|
|
||||||
try_files $uri $uri/ /index.php?$query_string;
|
|
||||||
}
|
|
||||||
|
|
||||||
location ~ \.php$ {
|
|
||||||
include fastcgi_params;
|
|
||||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
|
||||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
|
||||||
fastcgi_pass app:9000;
|
|
||||||
fastcgi_index index.php;
|
|
||||||
}
|
|
||||||
|
|
||||||
location ~ /\.(?!well-known).* {
|
|
||||||
deny all;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
FROM php:7.4-fpm
|
|
||||||
|
|
||||||
WORKDIR /var/www/html
|
|
||||||
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get install -y --no-install-recommends \
|
|
||||||
git \
|
|
||||||
pkg-config \
|
|
||||||
unzip \
|
|
||||||
libonig-dev \
|
|
||||||
libzip-dev \
|
|
||||||
libpng-dev \
|
|
||||||
libjpeg62-turbo-dev \
|
|
||||||
libfreetype6-dev \
|
|
||||||
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
|
|
||||||
&& docker-php-ext-install -j"$(nproc)" \
|
|
||||||
pdo_mysql \
|
|
||||||
mbstring \
|
|
||||||
bcmath \
|
|
||||||
zip \
|
|
||||||
exif \
|
|
||||||
gd \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer
|
|
||||||
|
|
||||||
COPY docker/php/php.ini /usr/local/etc/php/conf.d/app.ini
|
|
||||||
|
|
||||||
RUN usermod -u 1000 www-data && groupmod -g 1000 www-data
|
|
||||||
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
memory_limit=512M
|
|
||||||
upload_max_filesize=50M
|
|
||||||
post_max_size=50M
|
|
||||||
max_execution_time=120
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 34 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 112 KiB |
Vendored
-30
@@ -1,30 +0,0 @@
|
|||||||
/**
|
|
||||||
* First we will load all of this project's JavaScript dependencies which
|
|
||||||
* includes Vue and other libraries. It is a great starting point when
|
|
||||||
* building robust, powerful web applications using Vue and Laravel.
|
|
||||||
*/
|
|
||||||
|
|
||||||
require('./bootstrap');
|
|
||||||
|
|
||||||
window.Vue = require('vue');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The following block of code may be used to automatically register your
|
|
||||||
* Vue components. It will recursively scan this directory for the Vue
|
|
||||||
* components and automatically register them with their "basename".
|
|
||||||
*
|
|
||||||
* Eg. ./components/ExampleComponent.vue -> <example-component></example-component>
|
|
||||||
*/
|
|
||||||
|
|
||||||
// const files = require.context('./', true, /\.vue$/i)
|
|
||||||
// files.keys().map(key => Vue.component(key.split('/').pop().split('.')[0], files(key).default))
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Next, we will create a fresh Vue application instance and attach it to
|
|
||||||
* the page. Then, you may begin adding components to this application
|
|
||||||
* or customize the JavaScript scaffolding to fit your unique needs.
|
|
||||||
*/
|
|
||||||
|
|
||||||
const app = new Vue({
|
|
||||||
el: '#app',
|
|
||||||
});
|
|
||||||
Vendored
+3
-3
@@ -35,7 +35,7 @@ window.Pusher = require('pusher-js');
|
|||||||
|
|
||||||
window.Echo = new Echo({
|
window.Echo = new Echo({
|
||||||
broadcaster: 'pusher',
|
broadcaster: 'pusher',
|
||||||
key: process.env.MIX_PUSHER_APP_KEY,
|
key: '26b0ec2f297f94b7aa9b',
|
||||||
cluster: process.env.MIX_PUSHER_APP_CLUSTER,
|
cluster: 'ap1',
|
||||||
forceTLS: false
|
forceTLS: true
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -306,7 +306,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var search = "<?php echo $search ?>";
|
var search = "<?php echo $search ?>";
|
||||||
var type_id = "<?php echo $idtype ?>";
|
var type_id = "<?php echo $idtype ?>";
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
|
|||||||
@@ -157,7 +157,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var ppc = "{{ Auth::user()->name }}";
|
var ppc = "{{ Auth::user()->name }}";
|
||||||
var ic_asal = "{{ $customer_info['kpbaru'] != null ? $customer_info['kpbaru'] : $customer_info['kplama'] }}"
|
var ic_asal = "{{ $customer_info['kpbaru'] != null ? $customer_info['kpbaru'] : $customer_info['kplama'] }}"
|
||||||
|
|
||||||
|
|||||||
@@ -48,6 +48,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
</script>
|
</script>
|
||||||
@endsection
|
@endsection
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row justify-content-center">
|
<div class="row justify-content-center">
|
||||||
@php $auth_user = Auth::user();@endphp
|
@php $auth_user = Auth::user();@endphp
|
||||||
<input type="hidden" id="api" value="{{ api_url_for_browser() }}"/>
|
<input type="hidden" id="api" value="{{ $api_url }}"/>
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
|
|
||||||
|
|
||||||
@@ -348,7 +348,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
var tableaddtunai = $('#tableaddtunai').DataTable({
|
var tableaddtunai = $('#tableaddtunai').DataTable({
|
||||||
@@ -558,10 +558,14 @@
|
|||||||
|
|
||||||
function cetaklaporanalirantunai()
|
function cetaklaporanalirantunai()
|
||||||
{
|
{
|
||||||
let urlroute = '{{ route("laporan.alirantunai") }}';
|
let teller = "{{ Auth::user()->name }}";
|
||||||
window.location.href = api_url + urlroute;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
let urlroute = '{{ route("laporan.alirantunai", ":id") }}';
|
||||||
|
urlroute = urlroute.replace(':id', teller);
|
||||||
|
|
||||||
|
window.open(urlroute, '_blank');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
function cetakserahankeseluruhan()
|
function cetakserahankeseluruhan()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,298 +1,211 @@
|
|||||||
<style>
|
<html>
|
||||||
#header {
|
<head>
|
||||||
font-family: Arial, Helvetica, sans-serif;
|
<style>
|
||||||
border-collapse: collapse;
|
.header{
|
||||||
width: 100%;
|
font-size:12px;
|
||||||
}
|
font-weight: bold;
|
||||||
|
margin-left:40px;
|
||||||
|
|
||||||
#header td, #customers th {
|
}
|
||||||
|
|
||||||
padding:4px;
|
body {
|
||||||
font-size:10px;
|
background: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
#header tr:nth-child(even){background-color: #ffffff;}
|
page {
|
||||||
|
background: white;
|
||||||
#header tr:hover {background-color: #ddd;}
|
display: block;
|
||||||
|
margin: 0 auto;
|
||||||
#header th {
|
margin-bottom: 0.5cm;
|
||||||
padding-top: 12px;
|
/* box-shadow: 0 0 0.5cm rgba(0,0,0,0.5); */
|
||||||
padding-bottom: 12px;
|
}
|
||||||
text-align: left;
|
|
||||||
padding:4px;
|
|
||||||
color:black;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<style>
|
|
||||||
#scan {
|
|
||||||
font-family: Arial, Helvetica, sans-serif;
|
|
||||||
border-collapse: collapse;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#scan td, #scan th {
|
|
||||||
|
|
||||||
padding: 8px;
|
|
||||||
font-size:11px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#scan tr:nth-child(even){background-color: #ffffff;}
|
|
||||||
|
|
||||||
#scan tr:hover {background-color: #ddd;}
|
|
||||||
|
|
||||||
#scan th {
|
|
||||||
padding-top: 12px;
|
|
||||||
padding-bottom: 12px;
|
|
||||||
text-align: left;
|
|
||||||
padding:4px;
|
|
||||||
color:black;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
|
|
||||||
<style>
|
|
||||||
#scan {
|
|
||||||
font-family: Arial, Helvetica, sans-serif;
|
|
||||||
border-collapse: collapse;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#scan td, #scan th {
|
|
||||||
border-collapse: collapse;
|
|
||||||
padding: 8px;
|
|
||||||
font-size:11px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#scan tr:nth-child(even){background-color: #ffffff;}
|
|
||||||
|
|
||||||
#scan tr:hover {background-color: #ddd;}
|
|
||||||
|
|
||||||
#scan th {
|
|
||||||
border-collapse: collapse;
|
|
||||||
padding-top: 12px;
|
|
||||||
padding-bottom: 12px;
|
|
||||||
text-align: left;
|
|
||||||
padding:4px;
|
|
||||||
color:black;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<style>
|
|
||||||
#details {
|
|
||||||
font-family: Arial, Helvetica, sans-serif;
|
|
||||||
border-collapse: collapse;
|
|
||||||
width: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#details td, #details th {
|
|
||||||
|
|
||||||
padding: 8px;
|
|
||||||
font-size:11px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#details tr:nth-child(even){background-color: #ffffff;}
|
|
||||||
|
|
||||||
#details tr:hover {background-color: #ddd;}
|
|
||||||
|
|
||||||
#details th {
|
|
||||||
padding-top: 12px;
|
|
||||||
font-style:bold;
|
|
||||||
padding-bottom: 12px;
|
|
||||||
text-align: left;
|
|
||||||
padding:4px;
|
|
||||||
color:black;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
#sign {
|
|
||||||
font-family: Arial, Helvetica, sans-serif;
|
|
||||||
border-collapse: collapse;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#sign td, #sign th {
|
|
||||||
|
|
||||||
padding: 8px;
|
|
||||||
font-size:11px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
#sign tr:nth-child(even){background-color: #ffffff;}
|
|
||||||
|
|
||||||
#sign tr:hover {background-color: #ddd;}
|
|
||||||
|
|
||||||
#sign th {
|
|
||||||
padding-top: 12px;
|
|
||||||
padding-bottom: 12px;
|
|
||||||
text-align: left;
|
|
||||||
padding:4px;
|
|
||||||
color:black;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
|
|
||||||
<table id="header">
|
|
||||||
<tr>
|
|
||||||
<th rowspan="4" style="width:50px"><br><img src="{{ asset('img/ARRAHN1.png') }}" style="width:70px"></img></th>
|
|
||||||
<th colspan="1">KOPERASI PERMODALAN KELANTAN BERHAD</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>{{ $cawangan_detail['namacaw'] }}</td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>{{ $cawangan_detail['alamat1'] }}</td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>{{ $cawangan_detail['alamat2'].' No Tel : '. $cawangan_detail['notel'].' No Faks : '. $cawangan_detail['nofaks'] }}</td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<table id="scan">
|
|
||||||
<tr>
|
|
||||||
<th colspan="3" style="
|
|
||||||
text-align: left;
|
|
||||||
font-size: 16px;
|
|
||||||
font-weight: bold;
|
|
||||||
text-transform: uppercase;
|
|
||||||
padding-top: 10px;
|
|
||||||
padding-bottom: 10px;
|
|
||||||
letter-spacing: 0.5px;
|
|
||||||
">
|
|
||||||
LAPORAN ALIRAN TUNAI TELLER
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="width:100px"><b>TARIKH:</b></td>
|
|
||||||
<td><b>
|
|
||||||
@php
|
|
||||||
$tarikhTeller = DateTime::createFromFormat('Y-m-d', $tunai['tarikh']);
|
|
||||||
echo $tarikhTeller->format('d-m-Y');
|
|
||||||
@endphp
|
|
||||||
</b></td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td><b>TARIKH CETAK:</b></td>
|
|
||||||
<td><b>
|
|
||||||
@php
|
|
||||||
$myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_cetak);
|
|
||||||
$formattedweddingdate = $myDateTime->format('d-m-Y');
|
|
||||||
echo $formattedweddingdate;
|
|
||||||
@endphp
|
|
||||||
</b></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<br>
|
|
||||||
<table id="details">
|
|
||||||
<tr>
|
|
||||||
<th>BAKI AWAL</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Baki Awal</td>
|
|
||||||
<td>:</td>
|
|
||||||
<td>RM {{ number_format($tunai['bakiawal'],2) }}</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<th>TAMBAH</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Pendahuluan</td>
|
|
||||||
<td>:</td>
|
|
||||||
<td>RM {{ number_format($tunai['tambah'],2) }}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Pen. Pembiayaan / Keuntungan</td>
|
|
||||||
<td>:</td>
|
|
||||||
<td>RM {{ number_format($tunai['masuk'],2) }}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Kerugian Baki Lelong</td>
|
|
||||||
<td>:</td>
|
|
||||||
<td>RM {{ number_format($bakiLelong['rugi_lelong'],2) }}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Jumlah</td>
|
|
||||||
<td>:</td>
|
|
||||||
<td>RM {{ number_format($jumlahTambah,2) }}</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<th>TOLAK</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Serahan</td>
|
|
||||||
<td>:</td>
|
|
||||||
<td>RM {{ number_format($tunai['kurang'],2) }}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Pembiayaan</td>
|
|
||||||
<td>:</td>
|
|
||||||
<td>RM {{ number_format($tunai['keluar'],2) }}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Baki Lelong</td>
|
|
||||||
<td>:</td>
|
|
||||||
<td>RM {{ number_format($bakiLelong['baki_lelong'],2) }}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Jumlah</td>
|
|
||||||
<td>:</td>
|
|
||||||
<td>RM {{ number_format($jumlahTolak,2) }}</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr><th>BAKI AKHIR</th></tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3" style="
|
|
||||||
border: 2px solid black;
|
|
||||||
text-align: center;
|
|
||||||
background-color: #f8f8f8;
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 13px;
|
|
||||||
padding: 10px;
|
|
||||||
">
|
|
||||||
BAKI AKHIR TELLER: RM {{ number_format($tunai['bakiawal'] + $jumlahTambah - $jumlahTolak,2) }}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
<table id="sign">
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2"> .................................................................. </td>
|
|
||||||
<td> </td>
|
|
||||||
<td colspan="2">.................................................................. </td>
|
|
||||||
<td> </td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2"><B> DI SEMAK</B> </td>
|
|
||||||
<td> </td>
|
|
||||||
<td colspan="2"><B>DI SAHKAN </B></td>
|
|
||||||
<td> </td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
|
page[size="A4"] {
|
||||||
|
width: 21cm;
|
||||||
|
/* height: 29.7cm; */
|
||||||
|
}
|
||||||
|
|
||||||
|
page[size="A4"][layout="landscape"] {
|
||||||
|
width: 29.7cm;
|
||||||
|
height: 21cm;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media print {
|
||||||
|
body, page {
|
||||||
|
margin: 0;
|
||||||
|
box-shadow: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.middleheader{
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container{
|
||||||
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
|
width: 25%;
|
||||||
|
border: 2px solid gray;
|
||||||
|
border-radius: 15px;
|
||||||
|
padding: 5px 10px 10px 30px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#header {
|
||||||
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
|
border-collapse: collapse;
|
||||||
|
width: 100%;
|
||||||
|
margin-left:40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#header td, #customer th {
|
||||||
|
padding:4px;
|
||||||
|
font-size:10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#header tr:nth-child(even){
|
||||||
|
background-color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* #header tr:hover {
|
||||||
|
background-color: #ddd;
|
||||||
|
} */
|
||||||
|
|
||||||
|
#header th {
|
||||||
|
padding-top: 12px;
|
||||||
|
padding-bottom: 12px;
|
||||||
|
text-align: left;
|
||||||
|
padding:4px;
|
||||||
|
color:black;
|
||||||
|
}
|
||||||
|
|
||||||
|
.statements{
|
||||||
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
|
border-collapse: collapse;
|
||||||
|
width: 95%;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
.statements th{
|
||||||
|
font-size:14px;
|
||||||
|
background-color: #f9ca24;
|
||||||
|
border:1px solid gray;
|
||||||
|
color:black;
|
||||||
|
padding:4px 10px 4px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.statements td{
|
||||||
|
border:1px solid gray;
|
||||||
|
padding:4px 4px 4px 4px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.center{
|
||||||
|
position: fixed;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
width: 100%;
|
||||||
|
color: white;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body onload="window.print()">
|
||||||
|
<page size="A4">
|
||||||
|
<h6 class="header">SULIT DAN PERSENDIRIAN</h6>
|
||||||
|
<table id="header">
|
||||||
|
<tr>
|
||||||
|
<th rowspan="4" style="width:50px"><br><img src="{{ asset('img/icon_pkb.png') }}" style="width:70px"></img></th>
|
||||||
|
<th colspan="1">KOPERASI PERMODALAN KELANTAN BERHAD</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>{{ $cawangan_detail['namacaw'] }}</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>{{ $cawangan_detail['alamat1'] }}</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>{{ $cawangan_detail['alamat2'].' No Tel : '. $cawangan_detail['notel'].' No Faks : '. $cawangan_detail['nofaks'] }}</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
<h6 class="middleheader">PENYATA ALIRAN TUNAI : {{ $teller }}</h6>
|
||||||
|
|
||||||
|
<div class="row" style="display: flex; justify-content: start;">
|
||||||
|
<div class="container" style="flex: 1; margin-left: 20px;">
|
||||||
|
<h3>Baki Awal</h3>
|
||||||
|
<span>RM {{ number_format($alirantunai['bakiawal'], 2) }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container" style="flex: 1; margin-left: 10px;">
|
||||||
|
<h3>Pendahuluan</h3>
|
||||||
|
<span>RM {{ number_format($alirantunai['tambah'], 2) }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container" style="flex: 1; margin-left: 10px;">
|
||||||
|
<h3>Penyelesaian Pem.</h3>
|
||||||
|
<span>RM {{ number_format($alirantunai['masuk'], 2) }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row" style="display: flex; justify-content: start; margin-top: 20px;">
|
||||||
|
<div class="container" style="flex: 1; margin-left: 20px;">
|
||||||
|
<h3>Baki Tunai Semasa</h3>
|
||||||
|
<span>RM {{ number_format($alirantunai['baki'], 2) }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container" style="flex: 1; margin-left: 10px;">
|
||||||
|
<h3>Serahan</h3>
|
||||||
|
<span>RM {{ number_format($alirantunai['kurang'], 2) }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container" style="flex: 1; margin-left: 10px;">
|
||||||
|
<h3>Pembiayaan</h3>
|
||||||
|
<span>RM {{ number_format($alirantunai['keluar'], 2) }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<h6 class="middleheader" style="margin-bottom:-5px;">KEMASUKAN TUNAI</h6>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<table class="statements">
|
||||||
|
<tr>
|
||||||
|
<th>TARIKH</th>
|
||||||
|
<th>DEBIT (RM)</th>
|
||||||
|
<th>KREDIT (RM)</th>
|
||||||
|
<th>NOTA</th>
|
||||||
|
</tr>
|
||||||
|
@php $totaltambah = 0; $totalkurang = 0; @endphp
|
||||||
|
@foreach($addtunai as $index=>$ad)
|
||||||
|
@php $totaltambah += $ad['tambah']; $totalkurang += $ad['kurang']; @endphp
|
||||||
|
<tr style="text-align:center;">
|
||||||
|
<td>{{ $ad['tarikh'] }}</td>
|
||||||
|
<td>{{ number_format($ad['tambah'],2) }}</td>
|
||||||
|
<td>{{ number_format($ad['kurang'],2) }}</td>
|
||||||
|
<td>{{ $ad['nota'] }}</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
<tr style="text-align:center;">
|
||||||
|
<td style="font-weight:bold;">JUMLAH</td>
|
||||||
|
<td>{{ number_format($totaltambah,2) }}</td>
|
||||||
|
<td>{{ number_format($totalkurang,2) }}</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -228,7 +228,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "{{ $api_url }}";
|
||||||
// var kodcaw = "{{ $kodcaw }}";
|
// var kodcaw = "{{ $kodcaw }}";
|
||||||
// var notisid = "{{ $notisid }}";
|
// var notisid = "{{ $notisid }}";
|
||||||
//var nokp = "{{ $noic }}";
|
//var nokp = "{{ $noic }}";
|
||||||
|
|||||||
@@ -389,7 +389,7 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var search = "<?php echo $search ?>";
|
var search = "<?php echo $search ?>";
|
||||||
var type_id = "<?php echo $idtype ?>";
|
var type_id = "<?php echo $idtype ?>";
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
|
|||||||
@@ -387,7 +387,7 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var search = "<?php echo $search ?>";
|
var search = "<?php echo $search ?>";
|
||||||
var type_id = "<?php echo $idtype ?>";
|
var type_id = "<?php echo $idtype ?>";
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
|
|||||||
@@ -413,7 +413,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
var api_arrahnbid = "<?php echo config('app.api_arrahnbid') ?>";
|
var api_arrahnbid = "<?php echo config('app.api_arrahnbid') ?>";
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "{{ $cawangan_info['kodcaw'] }}";
|
var kodcaw = "{{ $cawangan_info['kodcaw'] }}";
|
||||||
var tagarrahnbid = "{{ $cawangan_info['tagarrahnbid'] }}";
|
var tagarrahnbid = "{{ $cawangan_info['tagarrahnbid'] }}";
|
||||||
|
|
||||||
|
|||||||
@@ -1099,7 +1099,7 @@
|
|||||||
|
|
||||||
|
|
||||||
let pertambahpinjaman = "{{ $pertambahpinjaman }}";
|
let pertambahpinjaman = "{{ $pertambahpinjaman }}";
|
||||||
var api = "{{ api_url_for_browser() }}";
|
var api = '<?php echo $api_url ?>';
|
||||||
let nw = 0;
|
let nw = 0;
|
||||||
let jenisAT = 'none';
|
let jenisAT = 'none';
|
||||||
|
|
||||||
|
|||||||
@@ -542,7 +542,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
var api_arrahnbid = "<?php echo config('app.api_arrahnbid') ?>";
|
var api_arrahnbid = "<?php echo config('app.api_arrahnbid') ?>";
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "{{ $cawangan_info['kodcaw'] }}";
|
var kodcaw = "{{ $cawangan_info['kodcaw'] }}";
|
||||||
var tagarrahnbid = "{{ $cawangan_info['tagarrahnbid'] }}";
|
var tagarrahnbid = "{{ $cawangan_info['tagarrahnbid'] }}";
|
||||||
|
|
||||||
|
|||||||
@@ -473,7 +473,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var search = "<?php echo $search ?>";
|
var search = "<?php echo $search ?>";
|
||||||
var type_id = "<?php echo $idtype ?>";
|
var type_id = "<?php echo $idtype ?>";
|
||||||
var blacklist_search = "<?php echo $blacklist_search ?>";
|
var blacklist_search = "<?php echo $blacklist_search ?>";
|
||||||
|
|||||||
@@ -422,7 +422,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
var api_arrahnbid = "<?php echo config('app.api_arrahnbid') ?>";
|
var api_arrahnbid = "<?php echo config('app.api_arrahnbid') ?>";
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "{{ $cawangan_info['kodcaw'] }}";
|
var kodcaw = "{{ $cawangan_info['kodcaw'] }}";
|
||||||
var tagarrahnbid = "{{ $cawangan_info['tagarrahnbid'] }}";
|
var tagarrahnbid = "{{ $cawangan_info['tagarrahnbid'] }}";
|
||||||
var min_komoditi = "{{ $min_komoditi }}";
|
var min_komoditi = "{{ $min_komoditi }}";
|
||||||
|
|||||||
@@ -102,7 +102,7 @@
|
|||||||
<h5 class="modal-title" id="ModalLabel">Daftar Pelanggan</h5>
|
<h5 class="modal-title" id="ModalLabel">Daftar Pelanggan</h5>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<form name="form-store" action="{{ route('customer.store') }}" onsubmit="verifycustomer()" method="POST">
|
<form action="{{ route('customer.store') }}" onsubmit="verifycustomer()" method="POST">
|
||||||
@csrf
|
@csrf
|
||||||
<div class="row form-group">
|
<div class="row form-group">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
@@ -373,7 +373,7 @@
|
|||||||
<h5 class="modal-title" id="ModalLabel">Daftar Pelanggan</h5>
|
<h5 class="modal-title" id="ModalLabel">Daftar Pelanggan</h5>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<form name="form-store" action="{{ route('customer.store') }}" onsubmit="verifycustomerpassport()" method="POST">
|
<form action="{{ route('customer.store') }}" onsubmit="verifycustomerpassport()" method="POST">
|
||||||
@csrf
|
@csrf
|
||||||
<div class="row form-group">
|
<div class="row form-group">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
@@ -495,12 +495,12 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = @json($api_url ?? '');
|
||||||
var search = "<?php echo $search ?>";
|
var search = @json($search ?? false);
|
||||||
var type_id = "<?php echo $idtype ?>";
|
var type_id = @json($idtype ?? '');
|
||||||
var blacklist_search = "<?php echo $blacklist_search ?>";
|
|
||||||
var isAnggota = @json($isAnggota ?? false);
|
var isAnggota = @json($isAnggota ?? false);
|
||||||
var isPelanggan = @json($isPelanggan ?? false);
|
var isPelanggan = @json($isPelanggan ?? false);
|
||||||
|
var blacklist_search = @json($blacklist_search ?? false);
|
||||||
var showAssignAnggotaBtn = @json($showAssignAnggotaBtn ?? false);
|
var showAssignAnggotaBtn = @json($showAssignAnggotaBtn ?? false);
|
||||||
var showDaftarPelangganBtn = @json($showDaftarPelangganBtn ?? false);
|
var showDaftarPelangganBtn = @json($showDaftarPelangganBtn ?? false);
|
||||||
|
|
||||||
@@ -525,38 +525,36 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Logik amaran SweetAlert
|
// Logik amaran SweetAlert
|
||||||
if("{{ auth()->user()->cawangan }}" == 'X0301'){
|
if (search === true) {
|
||||||
if (search === true) {
|
if (blacklist_search === true) {
|
||||||
if (blacklist_search === true) {
|
Swal.fire({
|
||||||
Swal.fire({
|
icon: 'warning',
|
||||||
icon: 'warning',
|
title: 'Amaran!',
|
||||||
title: 'Amaran!',
|
text: 'Pelanggan telah disenarai hitamkan dari Pembiayaan.'
|
||||||
text: 'Pelanggan telah disenarai hitamkan dari Pembiayaan.'
|
});
|
||||||
});
|
}
|
||||||
}
|
else if (isAnggota && !isPelanggan) {
|
||||||
else if (isAnggota && !isPelanggan) {
|
Swal.fire({
|
||||||
Swal.fire({
|
icon: 'info',
|
||||||
icon: 'info',
|
title: 'Anggota Belum Didaftarkan!',
|
||||||
title: 'Anggota Belum Didaftarkan!',
|
text: 'Pelanggan ini adalah anggota koperasi tetapi belum berdaftar sebagai pelanggan.'
|
||||||
text: 'Pelanggan ini adalah anggota koperasi tetapi belum berdaftar sebagai pelanggan.'
|
});
|
||||||
});
|
}
|
||||||
}
|
else if (isPelanggan && !isAnggota) {
|
||||||
else if (isPelanggan && !isAnggota) {
|
Swal.fire({
|
||||||
Swal.fire({
|
icon: 'info',
|
||||||
icon: 'info',
|
title: 'Pelanggan Bukan Anggota!',
|
||||||
title: 'Pelanggan Bukan Anggota!',
|
text: 'Pelanggan ini berdaftar tetapi belum menjadi anggota koperasi.'
|
||||||
text: 'Pelanggan ini berdaftar tetapi belum menjadi anggota koperasi.'
|
});
|
||||||
});
|
}
|
||||||
}
|
else if (!isAnggota && !isPelanggan) {
|
||||||
else if (!isAnggota && !isPelanggan) {
|
Swal.fire({
|
||||||
Swal.fire({
|
icon: 'info',
|
||||||
icon: 'info',
|
title: 'Pelanggan Tiada Dalam Rekod!',
|
||||||
title: 'Pelanggan Tiada Dalam Rekod!',
|
text: 'Sila Daftar Pelanggan.'
|
||||||
text: 'Sila Daftar Pelanggan.'
|
});
|
||||||
});
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1394,21 +1392,6 @@
|
|||||||
$('#pekerjaan-lain').val('');
|
$('#pekerjaan-lain').val('');
|
||||||
lainContainer.hide();
|
lainContainer.hide();
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
|
||||||
document.getElementsByName('form-store')[0].addEventListener('keypress', function(e) {
|
|
||||||
// Jika tekan Enter
|
|
||||||
if (e.key === 'Enter') {
|
|
||||||
|
|
||||||
// Jika bukan butang submit dan bukan textarea
|
|
||||||
const tag = e.target.tagName.toLowerCase();
|
|
||||||
const type = e.target.type ? e.target.type.toLowerCase() : '';
|
|
||||||
|
|
||||||
if (tag !== 'textarea' && type !== 'submit') {
|
|
||||||
e.preventDefault();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
@push('additional_scripts')
|
@push('additional_scripts')
|
||||||
|
|||||||
@@ -75,7 +75,8 @@
|
|||||||
->json();
|
->json();
|
||||||
@endphp
|
@endphp
|
||||||
<input type="text" class="form-control" name="outstanding_semasa"
|
<input type="text" class="form-control" name="outstanding_semasa"
|
||||||
id="outstanding_semasa" readonly value="{{ number_format($outstanding_semasa, 2) }}">
|
id="outstanding_semasa" readonly
|
||||||
|
value="{{ number_format($outstanding_semasa, 2) }}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -157,7 +158,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<!-- Butang Assign Sebagai Anggota -->
|
<!-- Butang Assign Sebagai Anggota -->
|
||||||
@if (isset($showAssignAnggotaBtn) && $showAssignAnggotaBtn && auth()->user()->cawangan == 'X0301')
|
@if (isset($showAssignAnggotaBtn) && $showAssignAnggotaBtn)
|
||||||
<div class="m-0 p-2">
|
<div class="m-0 p-2">
|
||||||
<button type="button" class="btn btn-success d-flex align-items-center"
|
<button type="button" class="btn btn-success d-flex align-items-center"
|
||||||
data-noic="{{ $noic }}" onclick="assignAnggota(this)">
|
data-noic="{{ $noic }}" onclick="assignAnggota(this)">
|
||||||
@@ -230,6 +231,7 @@
|
|||||||
|
|
||||||
// 4️⃣ Hantar permohonan ke backend (Laravel)
|
// 4️⃣ Hantar permohonan ke backend (Laravel)
|
||||||
const response = await fetch("{{ route('operasi.createkelulusan-anggota') }}", {
|
const response = await fetch("{{ route('operasi.createkelulusan-anggota') }}", {
|
||||||
|
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: {
|
headers: {
|
||||||
"Content-Type": "application/json",
|
"Content-Type": "application/json",
|
||||||
@@ -237,14 +239,15 @@
|
|||||||
},
|
},
|
||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
mohon: "Assign Anggota",
|
mohon: "Assign Anggota",
|
||||||
nokp: noic,
|
noic: noic,
|
||||||
norujukan: norujukan,
|
norujukan: norujukan,
|
||||||
komen: komen,
|
komen: komen,
|
||||||
teller: "{{ Auth::user()->name }}",
|
teller: "{{ Auth::user()->name }}",
|
||||||
tagoperasi: 1 // 1 = tunggu kelulusan operasi
|
tagoperasi: 1 // 1 = tunggu kelulusan operasi
|
||||||
})
|
})
|
||||||
|
|
||||||
|
console.log(`Response: ${response}`);
|
||||||
});
|
});
|
||||||
console.log(`Response: ${response}`);
|
|
||||||
|
|
||||||
const result = await response.json();
|
const result = await response.json();
|
||||||
|
|
||||||
@@ -361,31 +364,31 @@
|
|||||||
data-toggle="tab" href="#nav-tawarruq" role="tab" aria-controls="nav-tawarruq"
|
data-toggle="tab" href="#nav-tawarruq" role="tab" aria-controls="nav-tawarruq"
|
||||||
aria-selected="{{ $aria_selected_SAG_baru }}">SAG Baru</a>
|
aria-selected="{{ $aria_selected_SAG_baru }}">SAG Baru</a>
|
||||||
<a class="nav-item nav-link {{ $activate_tab_SAG_lama }}" " id="nav-xtawarruq-tab" data-toggle="tab" href="#nav-xtawarruq" role="tab" aria-controls="nav-xtawarruq" aria-selected="{{ $aria_selected_SAG_lama }}"><span id="textnavsag">SAG Lama</span></a>
|
<a class="nav-item nav-link {{ $activate_tab_SAG_lama }}" " id="nav-xtawarruq-tab" data-toggle="tab" href="#nav-xtawarruq" role="tab" aria-controls="nav-xtawarruq" aria-selected="{{ $aria_selected_SAG_lama }}"><span id="textnavsag">SAG Lama</span></a>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
<div class="tab-content" id="navtawarruqdannottawarruq">
|
<div class="tab-content" id="navtawarruqdannottawarruq">
|
||||||
<div class="tab-pane fade {{ $activate_pane_SAG_baru }}" id="nav-tawarruq" role="tabpanel" aria-labelledby="nav-tawarruq-tab">
|
<div class="tab-pane fade {{ $activate_pane_SAG_baru }}" id="nav-tawarruq" role="tabpanel" aria-labelledby="nav-tawarruq-tab">
|
||||||
<table class="table table-striped table-hover" id="myTable">
|
<table class="table table-striped table-hover" id="myTable">
|
||||||
<thead class="thead-dark">
|
<thead class="thead-dark">
|
||||||
<tr>
|
<tr>
|
||||||
<th>Bil</th>
|
<th>Bil</th>
|
||||||
<th>No Rujukan</th>
|
<th>No Rujukan</th>
|
||||||
<th>Tarikh Pembiayaan</th>
|
<th>Tarikh Pembiayaan</th>
|
||||||
<th>Tarikh Matang</th>
|
<th>Tarikh Matang</th>
|
||||||
<th>Baki Harga Jualan</th>
|
<th>Baki Harga Jualan</th>
|
||||||
<th>Baki Pembiayaan</th>
|
<th>Baki Pembiayaan</th>
|
||||||
<th>Margin</th>
|
<th>Margin</th>
|
||||||
<th>Tempoh</th>
|
<th>Tempoh</th>
|
||||||
<th>Keuntungan</th>
|
<th>Keuntungan</th>
|
||||||
<th>Lelong</th>
|
<th>Lelong</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane fade {{ $activate_pane_SAG_lama }}" id="nav-xtawarruq" role="tabpanel" aria-labelledby="nav-xtawarruq-tab">
|
<div class="tab-pane fade {{ $activate_pane_SAG_lama }}" id="nav-xtawarruq" role="tabpanel" aria-labelledby="nav-xtawarruq-tab">
|
||||||
<table id="xtawarruq" class="table table-striped table-hover">
|
<table id="xtawarruq" class="table table-striped table-hover">
|
||||||
<thead class="thead-dark">
|
<thead class="thead-dark">
|
||||||
{{-- <tr>
|
{{-- <tr>
|
||||||
<th>Bil</th>
|
<th>Bil</th>
|
||||||
<th>No Rujukan</th>
|
<th>No Rujukan</th>
|
||||||
<th>Tarikh Gadai</th>
|
<th>Tarikh Gadai</th>
|
||||||
@@ -395,139 +398,139 @@
|
|||||||
<th>Tempoh</th>
|
<th>Tempoh</th>
|
||||||
<th>Lelong</th>
|
<th>Lelong</th>
|
||||||
</tr> --}}
|
</tr> --}}
|
||||||
<tr>
|
<tr>
|
||||||
<th>Bil</th>
|
<th>Bil</th>
|
||||||
<th>No Rujukan</th>
|
<th>No Rujukan</th>
|
||||||
<th>Tarikh Pembiayaan</th>
|
<th>Tarikh Pembiayaan</th>
|
||||||
<th>Tarikh Matang</th>
|
<th>Tarikh Matang</th>
|
||||||
<th>Baki Harga Jualan</th>
|
<th>Baki Harga Jualan</th>
|
||||||
<th>Baki Pembiayaan</th>
|
<th>Baki Pembiayaan</th>
|
||||||
<th>Margin</th>
|
<th>Margin</th>
|
||||||
<th>Tempoh</th>
|
<th>Tempoh</th>
|
||||||
<th>Keuntungan</th>
|
<th>Keuntungan</th>
|
||||||
<th>Lelong</th>
|
<th>Lelong</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
</table>
|
</table>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{-- Sudah Tebus --}}
|
||||||
|
|
||||||
|
<table id="dahtebusTable" class="table table-striped table-hover">
|
||||||
|
<thead class="thead-dark">
|
||||||
|
<tr>
|
||||||
|
<th>Bil</th>
|
||||||
|
<th>No Rujukan</th>
|
||||||
|
<th>Tarikh Penyelesaian Pembiayaan</th>
|
||||||
|
<th>Baki Pembiayaan</th>
|
||||||
|
<th>Margin</th>
|
||||||
|
<th>Tempoh</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<table id="lelongTable" class="table table-striped table-hover">
|
||||||
|
<thead class="thead-dark">
|
||||||
|
<tr>
|
||||||
|
<th>Bil</th>
|
||||||
|
<th>No Rujukan</th>
|
||||||
|
<th>Tarikh Lelong</th>
|
||||||
|
<th>Tarikh Tuntut</th>
|
||||||
|
<th>Pembiayaan</th>
|
||||||
|
<th>Harga Jual</th>
|
||||||
|
<th>Jum Tuntut/Bayar</th>
|
||||||
|
<th>Keuntungan</th>
|
||||||
|
<th>Caj Lelong</th>
|
||||||
|
<th>Status Tuntutan</th>
|
||||||
|
<th>Cetak</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div class="text-center">
|
||||||
|
<button class="btn btn-primary" onclick="ubahfunc(this)" id="button-edit-gadaian">Ubah</button>
|
||||||
|
<button class="btn btn-primary" onclick="hapusfunc()">Hapus</button>
|
||||||
|
<button class="btn btn-primary" onclick="histfunc()">Rekod Pembiayaan</button>
|
||||||
|
<button class="btn btn-primary" onclick="removeansuran(this)" id="button-remove-ansuran">Hapus Ansuran</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{-- Sudah Tebus --}}
|
|
||||||
|
|
||||||
<table id="dahtebusTable" class="table table-striped table-hover">
|
|
||||||
<thead class="thead-dark">
|
|
||||||
<tr>
|
|
||||||
<th>Bil</th>
|
|
||||||
<th>No Rujukan</th>
|
|
||||||
<th>Tarikh Penyelesaian Pembiayaan</th>
|
|
||||||
<th>Baki Pembiayaan</th>
|
|
||||||
<th>Margin</th>
|
|
||||||
<th>Tempoh</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<table id="lelongTable" class="table table-striped table-hover">
|
|
||||||
<thead class="thead-dark">
|
|
||||||
<tr>
|
|
||||||
<th>Bil</th>
|
|
||||||
<th>No Rujukan</th>
|
|
||||||
<th>Tarikh Lelong</th>
|
|
||||||
<th>Tarikh Tuntut</th>
|
|
||||||
<th>Pembiayaan</th>
|
|
||||||
<th>Harga Jual</th>
|
|
||||||
<th>Jum Tuntut/Bayar</th>
|
|
||||||
<th>Keuntungan</th>
|
|
||||||
<th>Caj Lelong</th>
|
|
||||||
<th>Status Tuntutan</th>
|
|
||||||
<th>Cetak</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<div class="text-center">
|
|
||||||
<button class="btn btn-primary" onclick="ubahfunc(this)" id="button-edit-gadaian">Ubah</button>
|
|
||||||
<button class="btn btn-primary" onclick="hapusfunc()">Hapus</button>
|
|
||||||
<button class="btn btn-primary" onclick="histfunc()">Rekod Pembiayaan</button>
|
|
||||||
<button class="btn btn-primary" onclick="removeansuran(this)" id="button-remove-ansuran">Hapus Ansuran</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Modal -->
|
<!-- Modal -->
|
||||||
<div class="modal fade" id="customer_detail" tabindex="-1" aria-labelledby="customer_detailLabel" aria-hidden="true">
|
<div class="modal fade" id="customer_detail" tabindex="-1" aria-labelledby="customer_detailLabel" aria-hidden="true">
|
||||||
<div class="modal-dialog modal-dialog-centered modal-xl">
|
<div class="modal-dialog modal-dialog-centered modal-xl">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h5 class="modal-title" id="customer_detailLabel">Maklumat Pelanggan</h5>
|
<h5 class="modal-title" id="customer_detailLabel">Maklumat Pelanggan</h5>
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||||
<span aria-hidden="true">×</span>
|
<span aria-hidden="true">×</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<form id="kemaskiniform">
|
<form id="kemaskiniform">
|
||||||
<div class='row form-group'>
|
<div class='row form-group'>
|
||||||
<div class='col-md-6'>
|
<div class='col-md-6'>
|
||||||
<div class='form-group row col-md-12'>
|
<div class='form-group row col-md-12'>
|
||||||
<div class='col-md-5'>
|
<div class='col-md-5'>
|
||||||
Nama
|
Nama
|
||||||
|
</div>
|
||||||
|
<div class='col-md-7'>
|
||||||
|
<input type="text" readonly name='nama' id='nama' value="{{ $customer_info['nama'] }}" class='form-control'>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class='col-md-7'>
|
<div class='form-group row col-md-12'>
|
||||||
<input type="text" readonly name='nama' id='nama' value="{{ $customer_info['nama'] }}" class='form-control'>
|
<div class='col-md-5'>
|
||||||
|
No KP
|
||||||
|
</div>
|
||||||
|
<div class='col-md-7'>
|
||||||
|
<input type="text" readonly name='icno' id='icno' value="{{ $customer_info['kpbaru'] ? $customer_info['kpbaru'] : $customer_info['kplama'] }}" class='form-control'>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class='form-group row col-md-12'>
|
||||||
<div class='form-group row col-md-12'>
|
<div class='col-md-5'>
|
||||||
<div class='col-md-5'>
|
No Pelanggan
|
||||||
No KP
|
</div>
|
||||||
|
<div class='col-md-7'>
|
||||||
|
<input type="text" readonly name='nopelanggan' id='nopelanggan' value="{{ $customer_info['nopelanggan'] }}" class='form-control'>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class='col-md-7'>
|
<div class='form-group row col-md-12'>
|
||||||
<input type="text" readonly name='icno' id='icno' value="{{ $customer_info['kpbaru'] ? $customer_info['kpbaru'] : $customer_info['kplama'] }}" class='form-control'>
|
<div class='col-md-5'>
|
||||||
|
No Telefon 1
|
||||||
|
</div>
|
||||||
|
<div class='col-md-7'>
|
||||||
|
<input type="text" readonly name='' id='telefon' value="{{ $customer_info['telefon'] ? $customer_info['telefon'] : '' }}" class='form-control'>
|
||||||
|
<span id="errortelefon" style="color:red;"></span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class='form-group row col-md-12'>
|
||||||
<div class='form-group row col-md-12'>
|
<div class='col-md-5'>
|
||||||
<div class='col-md-5'>
|
No Telefon 2
|
||||||
No Pelanggan
|
</div>
|
||||||
|
<div class='col-md-7'>
|
||||||
|
<input type="text" readonly name='telefon2' id='telefon2' value="{{ $customer_info['telefon2'] ? $customer_info['telefon2'] : '' }}" class='form-control'>
|
||||||
|
<span id="errortelefon2" style="color:red;"></span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class='col-md-7'>
|
<div class='form-group row col-md-12'>
|
||||||
<input type="text" readonly name='nopelanggan' id='nopelanggan' value="{{ $customer_info['nopelanggan'] }}" class='form-control'>
|
<div class='col-md-5'>
|
||||||
</div>
|
Bank
|
||||||
</div>
|
</div>
|
||||||
<div class='form-group row col-md-12'>
|
<div class='col-md-7'>
|
||||||
<div class='col-md-5'>
|
@php
|
||||||
No Telefon 1
|
$bank = Http::withOptions(['verify' => config('app.api_verify')])
|
||||||
</div>
|
->get($api_url . '/api/bank')
|
||||||
<div class='col-md-7'>
|
->json();
|
||||||
<input type="text" readonly name='' id='telefon' value="{{ $customer_info['telefon'] ? $customer_info['telefon'] : '' }}" class='form-control'>
|
@endphp
|
||||||
<span id="errortelefon" style="color:red;"></span>
|
<select class="form-control" name="kodbank" data-placeholder="Pilih Bank" id="kodbank" disabled="true">
|
||||||
</div>
|
<option value="-" selected disabled>-</option>
|
||||||
</div>
|
@foreach ($bank as $banks)
|
||||||
<div class='form-group row col-md-12'>
|
|
||||||
<div class='col-md-5'>
|
|
||||||
No Telefon 2
|
|
||||||
</div>
|
|
||||||
<div class='col-md-7'>
|
|
||||||
<input type="text" readonly name='telefon2' id='telefon2' value="{{ $customer_info['telefon2'] ? $customer_info['telefon2'] : '' }}" class='form-control'>
|
|
||||||
<span id="errortelefon2" style="color:red;"></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class='form-group row col-md-12'>
|
|
||||||
<div class='col-md-5'>
|
|
||||||
Bank
|
|
||||||
</div>
|
|
||||||
<div class='col-md-7'>
|
|
||||||
@php
|
|
||||||
$bank = Http::withOptions(['verify' => config('app.api_verify')])
|
|
||||||
->get($api_url . '/api/bank')
|
|
||||||
->json();
|
|
||||||
@endphp
|
|
||||||
<select class="form-control" name="kodbank" data-placeholder="Pilih Bank" id="kodbank" disabled="true">
|
|
||||||
<option value="-" selected disabled>-</option>
|
|
||||||
@foreach ($bank as $banks)
|
|
||||||
<option value="{{ $banks['abbreviation'] }}"
|
<option value="{{ $banks['abbreviation'] }}"
|
||||||
{{ $banks['abbreviation'] == $customer_info['kodbank'] ? 'selected' : '' }}>
|
{{ $banks['abbreviation'] == $customer_info['kodbank'] ? 'selected' : '' }}>
|
||||||
{{ $banks['name'] }}</option>
|
{{ $banks['name'] }}</option>
|
||||||
@@ -714,7 +717,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
var api_arrahnbid = "<?php echo config('app.api_arrahnbid'); ?>";
|
var api_arrahnbid = "<?php echo config('app.api_arrahnbid'); ?>";
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url; ?>";
|
||||||
var kodcaw = "{{ $cawangan_info['kodcaw'] }}";
|
var kodcaw = "{{ $cawangan_info['kodcaw'] }}";
|
||||||
var tagarrahnbid = "{{ $cawangan_info['tagarrahnbid'] }}";
|
var tagarrahnbid = "{{ $cawangan_info['tagarrahnbid'] }}";
|
||||||
var min_komoditi = "{{ $min_komoditi }}";
|
var min_komoditi = "{{ $min_komoditi }}";
|
||||||
@@ -969,7 +972,7 @@
|
|||||||
var channel = pusher.subscribe(
|
var channel = pusher.subscribe(
|
||||||
'notice-kelulusan');
|
'notice-kelulusan');
|
||||||
channel.bind('my-kelulusan', function(
|
channel.bind('my-kelulusan', function(
|
||||||
data) {
|
data) {
|
||||||
|
|
||||||
|
|
||||||
if (data.norujukan ==
|
if (data.norujukan ==
|
||||||
@@ -993,7 +996,7 @@
|
|||||||
},
|
},
|
||||||
success: function(
|
success: function(
|
||||||
data
|
data
|
||||||
) {
|
) {
|
||||||
location
|
location
|
||||||
.reload();
|
.reload();
|
||||||
|
|
||||||
@@ -1002,17 +1005,18 @@
|
|||||||
xhr,
|
xhr,
|
||||||
status,
|
status,
|
||||||
error
|
error
|
||||||
) {
|
) {
|
||||||
var err =
|
var err =
|
||||||
eval(
|
eval(
|
||||||
"(" +
|
"(" +
|
||||||
xhr
|
xhr
|
||||||
.responseText +
|
.responseText +
|
||||||
")"
|
")"
|
||||||
);
|
);
|
||||||
alert
|
alert
|
||||||
(xhr
|
(xhr
|
||||||
.responseText);
|
.responseText
|
||||||
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -1240,7 +1244,7 @@
|
|||||||
'RM ' + formatter.format(gadai_detail['bakipjm']),
|
'RM ' + formatter.format(gadai_detail['bakipjm']),
|
||||||
(((Number(gadai_detail['pinjaman']) / Number(gadai_detail[
|
(((Number(gadai_detail['pinjaman']) / Number(gadai_detail[
|
||||||
'nilaimarhun'])) * 100).toFixed(2)).toLocaleString(
|
'nilaimarhun'])) * 100).toFixed(2)).toLocaleString(
|
||||||
"en-GB") + '%',
|
"en-GB") + '%',
|
||||||
gadai_detail['tempoh']
|
gadai_detail['tempoh']
|
||||||
]).draw();
|
]).draw();
|
||||||
} else if (jenistebus == "lelong") {
|
} else if (jenistebus == "lelong") {
|
||||||
@@ -1271,7 +1275,7 @@
|
|||||||
'<a href="#" onclick="checktuntutbaki(this)" data-norujukan=' +
|
'<a href="#" onclick="checktuntutbaki(this)" data-norujukan=' +
|
||||||
gadai_detail['norujukan'] + ' data-tarikhtuntut=' +
|
gadai_detail['norujukan'] + ' data-tarikhtuntut=' +
|
||||||
gadai_detail['trkhtuntut'] + '>' + gadai_detail[
|
gadai_detail['trkhtuntut'] + '>' + gadai_detail[
|
||||||
'norujukan'] + '</a>',
|
'norujukan'] + '</a>',
|
||||||
gadai_detail['t_lelong'],
|
gadai_detail['t_lelong'],
|
||||||
gadai_detail['trkhtuntut'],
|
gadai_detail['trkhtuntut'],
|
||||||
'RM ' + formatter.format(gadai_detail['pinjaman']),
|
'RM ' + formatter.format(gadai_detail['pinjaman']),
|
||||||
@@ -1288,7 +1292,7 @@
|
|||||||
'<a href="#" onclick="checktuntutbaki(this)" data-norujukan=' +
|
'<a href="#" onclick="checktuntutbaki(this)" data-norujukan=' +
|
||||||
gadai_detail['norujukan'] + ' data-tarikhtuntut=' +
|
gadai_detail['norujukan'] + ' data-tarikhtuntut=' +
|
||||||
gadai_detail['trkhtuntut'] + '>' + gadai_detail[
|
gadai_detail['trkhtuntut'] + '>' + gadai_detail[
|
||||||
'norujukan'] + '</a>',
|
'norujukan'] + '</a>',
|
||||||
gadai_detail['t_lelong'],
|
gadai_detail['t_lelong'],
|
||||||
gadai_detail['trkhtuntut'],
|
gadai_detail['trkhtuntut'],
|
||||||
'RM ' + formatter.format(gadai_detail['pinjaman']),
|
'RM ' + formatter.format(gadai_detail['pinjaman']),
|
||||||
@@ -2162,10 +2166,10 @@
|
|||||||
cancelButtonText: 'Salah',
|
cancelButtonText: 'Salah',
|
||||||
reverseButtons: true
|
reverseButtons: true
|
||||||
}).then((
|
}).then((
|
||||||
result) => {
|
result) => {
|
||||||
if (result
|
if (result
|
||||||
.isConfirmed
|
.isConfirmed
|
||||||
) {
|
) {
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
method: 'put',
|
method: 'put',
|
||||||
@@ -2179,11 +2183,11 @@
|
|||||||
},
|
},
|
||||||
success: function(
|
success: function(
|
||||||
data
|
data
|
||||||
) {
|
) {
|
||||||
|
|
||||||
if (data ===
|
if (data ===
|
||||||
1
|
1
|
||||||
) {
|
) {
|
||||||
Swal.fire({
|
Swal.fire({
|
||||||
icon: 'success',
|
icon: 'success',
|
||||||
title: 'Berjaya!',
|
title: 'Berjaya!',
|
||||||
@@ -2218,7 +2222,7 @@
|
|||||||
Swal
|
Swal
|
||||||
.DismissReason
|
.DismissReason
|
||||||
.cancel
|
.cancel
|
||||||
) {
|
) {
|
||||||
PengesahanAkhirWakil
|
PengesahanAkhirWakil
|
||||||
.fire(
|
.fire(
|
||||||
'Batal',
|
'Batal',
|
||||||
@@ -2240,12 +2244,12 @@
|
|||||||
daftarwakilfunction
|
daftarwakilfunction
|
||||||
(amaun,
|
(amaun,
|
||||||
norujukan
|
norujukan
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
error: function(xhr, status,
|
error: function(xhr, status,
|
||||||
error) {
|
error) {
|
||||||
var err = eval("(" + xhr
|
var err = eval("(" + xhr
|
||||||
.responseText + ")");
|
.responseText + ")");
|
||||||
alert(xhr.responseText);
|
alert(xhr.responseText);
|
||||||
@@ -2477,7 +2481,7 @@
|
|||||||
success: function(data) {},
|
success: function(data) {},
|
||||||
error: function(xhr, status, error) {
|
error: function(xhr, status, error) {
|
||||||
var err = eval("(" + xhr.responseText +
|
var err = eval("(" + xhr.responseText +
|
||||||
")");
|
")");
|
||||||
alert(xhr.responseText);
|
alert(xhr.responseText);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -2525,7 +2529,7 @@
|
|||||||
location
|
location
|
||||||
.reload();
|
.reload();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
swalWithBootstrapButtons
|
swalWithBootstrapButtons
|
||||||
.fire(
|
.fire(
|
||||||
@@ -2538,7 +2542,7 @@
|
|||||||
location
|
location
|
||||||
.reload();
|
.reload();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -2552,10 +2556,10 @@
|
|||||||
xhr
|
xhr
|
||||||
.responseText +
|
.responseText +
|
||||||
")"
|
")"
|
||||||
);
|
);
|
||||||
alert(xhr
|
alert(xhr
|
||||||
.responseText
|
.responseText
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return true;
|
return true;
|
||||||
@@ -2714,10 +2718,10 @@
|
|||||||
'Maklumat Pembiayaan telah dihapuskan.',
|
'Maklumat Pembiayaan telah dihapuskan.',
|
||||||
'success'
|
'success'
|
||||||
).then(
|
).then(
|
||||||
function() {
|
function() {
|
||||||
location
|
location
|
||||||
.reload();
|
.reload();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
getPusherResponse();
|
getPusherResponse();
|
||||||
|
|
||||||
async function getPusherResponse(){
|
async function getPusherResponse(){
|
||||||
let api_url = "{{ api_url_for_browser() }}";
|
let api_url = "<?php echo $api_url ?>";
|
||||||
const jsonData = {
|
const jsonData = {
|
||||||
norujukan: "{{ $errorapproval['norujukan'] }}",
|
norujukan: "{{ $errorapproval['norujukan'] }}",
|
||||||
kodcaw: "{{ Auth::user()->cawangan }}",
|
kodcaw: "{{ Auth::user()->cawangan }}",
|
||||||
|
|||||||
@@ -215,7 +215,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
$('form input').keydown(function (e) {
|
$('form input').keydown(function (e) {
|
||||||
if (e.keyCode == 13) {
|
if (e.keyCode == 13) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|||||||
@@ -242,7 +242,7 @@
|
|||||||
@endphp
|
@endphp
|
||||||
@endif
|
@endif
|
||||||
<script>
|
<script>
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
$('form input').keydown(function (e) {
|
$('form input').keydown(function (e) {
|
||||||
if (e.keyCode == 13) {
|
if (e.keyCode == 13) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|||||||
@@ -24,9 +24,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-12 text-right mb-2">
|
<div class="col-12 text-right mb-2">
|
||||||
<button type="button" style="margin:auto" class="btn btn-primary" data-toggle="modal" data-target="#daftar_marhun">Daftar Marhun</button>
|
<button type="button" style="margin:auto" class="btn btn-primary" data-toggle="modal" data-target="#daftar_marhun">Daftar Marhun</button>
|
||||||
<button type="button" id="toggleTableBtn" class="btn btn-info ml-2">
|
|
||||||
<i class="fas fa-exchange-alt"></i> Papar Margin
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
@@ -56,33 +53,6 @@
|
|||||||
<th colspan="5"></th>
|
<th colspan="5"></th>
|
||||||
</tfoot>
|
</tfoot>
|
||||||
</table>
|
</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>Nilai Marhun Teller</th>
|
|
||||||
<th>Nilai Marhun PC</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody id="marginTableBody">
|
|
||||||
<!-- Dynamic content will be inserted here -->
|
|
||||||
</tbody>
|
|
||||||
<tfoot class="thead-success">
|
|
||||||
<tr>
|
|
||||||
<th colspan="2" class="text-center">Jumlah</th>
|
|
||||||
<th id="totalNilaiMarhunMargin"></th>
|
|
||||||
<th colspan="2"></th>
|
|
||||||
<th id="totalNilaiTellerMargin"></th>
|
|
||||||
<th id="totalNilaiPCMargin"></th>
|
|
||||||
</tr>
|
|
||||||
</tfoot>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="card">
|
<div class="card">
|
||||||
@@ -326,7 +296,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<script src="{{ asset('js/rounded-methods.js') }}"></script>
|
<script src="{{ asset('js/rounded-methods.js') }}"></script>
|
||||||
<script>
|
<script>
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw_ujrah = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw_ujrah = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
$('form input').keydown(function (e) {
|
$('form input').keydown(function (e) {
|
||||||
@@ -541,21 +511,7 @@
|
|||||||
"visible": false,
|
"visible": false,
|
||||||
"searchable": false
|
"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({
|
$(".select2").select2({
|
||||||
@@ -611,7 +567,6 @@
|
|||||||
total_berat = 0;
|
total_berat = 0;
|
||||||
total_kuantiti = 0;
|
total_kuantiti = 0;
|
||||||
var marhun_details = '';
|
var marhun_details = '';
|
||||||
var array_mutu = [];
|
|
||||||
tablemarhun.clear().draw();
|
tablemarhun.clear().draw();
|
||||||
$.each(data,function(index,marhun){
|
$.each(data,function(index,marhun){
|
||||||
$.each(marhun,function(index,marhun_detail){
|
$.each(marhun,function(index,marhun_detail){
|
||||||
@@ -621,7 +576,6 @@
|
|||||||
jumlah_nilai_marhun += Number(marhun_detail['n_marhun']);
|
jumlah_nilai_marhun += Number(marhun_detail['n_marhun']);
|
||||||
status_tag_permata = marhun_detail['tag_permata'] == 1 ? 'Ada' : '';
|
status_tag_permata = marhun_detail['tag_permata'] == 1 ? 'Ada' : '';
|
||||||
total_kuantiti += Number(marhun_detail['bil']);
|
total_kuantiti += Number(marhun_detail['bil']);
|
||||||
array_mutu.push([marhun_detail['karat'], marhun_detail['n_marhun']]);
|
|
||||||
tablemarhun.row.add([
|
tablemarhun.row.add([
|
||||||
counter,
|
counter,
|
||||||
marhun_detail['recno'],
|
marhun_detail['recno'],
|
||||||
@@ -634,7 +588,7 @@
|
|||||||
marhun_detail['harga'],
|
marhun_detail['harga'],
|
||||||
status_tag_permata,
|
status_tag_permata,
|
||||||
marhun_detail['berat_batu_permata'],
|
marhun_detail['berat_batu_permata'],
|
||||||
"<div class='buttonpunya text-center'><button onclick='viewmarhun(this)' class='btn btn-info'><i class='fas fa-eye'></i></button> <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>"
|
"<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();
|
]).draw();
|
||||||
count++;
|
count++;
|
||||||
counter = counter + 1;
|
counter = counter + 1;
|
||||||
@@ -647,7 +601,7 @@
|
|||||||
$('#bilangan_jumlah_kuantiti').val(formatter.format(total_kuantiti));
|
$('#bilangan_jumlah_kuantiti').val(formatter.format(total_kuantiti));
|
||||||
$('#jumlah_nilai_marhun').val(formatter.format(jumlah_nilai_marhun));
|
$('#jumlah_nilai_marhun').val(formatter.format(jumlah_nilai_marhun));
|
||||||
if (count == 1){
|
if (count == 1){
|
||||||
$('.buttonpunya').html("<button onclick='viewmarhun(this)' class='btn btn-info'><i class='fas fa-eye'></i></button> <button onclick='editmarhun(this)' class='btn btn-primary'><i class='fas fa-edit'></i></button>");
|
$('.buttonpunya').html("<button onclick='editmarhun(this)' class='btn btn-primary'><i class='fas fa-edit'></i></button>");
|
||||||
}
|
}
|
||||||
|
|
||||||
// if(total_nilai_marhun > 0 && total_nilai_marhun < 401){
|
// if(total_nilai_marhun > 0 && total_nilai_marhun < 401){
|
||||||
@@ -702,32 +656,25 @@
|
|||||||
$('#keuntungan_sebulan').val(formatter.format(keuntungan_sebulan.toFixed(2)));
|
$('#keuntungan_sebulan').val(formatter.format(keuntungan_sebulan.toFixed(2)));
|
||||||
$('#keuntungan_6bln').val(formatter.format(keuntungan_6bln.toFixed(2)));
|
$('#keuntungan_6bln').val(formatter.format(keuntungan_6bln.toFixed(2)));
|
||||||
|
|
||||||
var max_teller = 0;
|
|
||||||
var max_pelulus = 0;
|
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
method:'GET',
|
method:'GET',
|
||||||
url: api_url + '/api/maxpinjaman',
|
url: api_url + '/api/maxpinjaman',
|
||||||
data: {
|
|
||||||
'mutu': array_mutu,
|
|
||||||
'total_nilai_marhun': total_nilai_marhun,
|
|
||||||
},
|
|
||||||
success:function(data){
|
success:function(data){
|
||||||
|
|
||||||
$.each(data,function(index,pinjaman){
|
$.each(data,function(index,pinjaman){
|
||||||
if (pinjaman['user_type'] == 'teller') {
|
if(pinjaman['user_type'] == 'teller'){
|
||||||
pinjaman_teller = Number(pinjaman['max']);
|
pinjaman_teller = Number(pinjaman['max']);
|
||||||
max_teller = pinjaman['teller_pinjaman'];
|
|
||||||
}
|
}
|
||||||
if (pinjaman['user_type'] == 'khazanah') {
|
if(pinjaman['user_type'] == 'khazanah'){
|
||||||
pinjaman_pelulus = Number(pinjaman['max']);
|
pinjaman_pelulus = Number(pinjaman['max']);
|
||||||
max_pelulus = pinjaman['pc_pinjaman'];
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
$('.span-pinjaman-max-pelulus').text(formatter.format(pinjaman_pelulus) + ' %');
|
$('.span-pinjaman-max-pelulus').text(formatter.format(pinjaman_pelulus) + ' %');
|
||||||
$('.span-pinjaman-max').text(formatter.format(pinjaman_teller) + ' %');
|
$('.span-pinjaman-max').text(formatter.format(pinjaman_teller) + ' %');
|
||||||
|
var max_teller = total_nilai_marhun * (pinjaman_teller/100);
|
||||||
|
var max_pelulus = total_nilai_marhun * (pinjaman_pelulus/100);
|
||||||
$('#pembiayaan_max_teller').val(formatter.format(max_teller));
|
$('#pembiayaan_max_teller').val(formatter.format(max_teller));
|
||||||
$('#pembiyaan_max_pelulus').val(formatter.format(max_pelulus));
|
$('#pembiyaan_max_pelulus').val(formatter.format(max_pelulus.toFixed(2)));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -754,103 +701,6 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function viewmarhun(e){
|
|
||||||
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 kuantiti = recno[6];
|
|
||||||
let jenismarhun = recno[2];
|
|
||||||
let beratpermata = recno[10];
|
|
||||||
|
|
||||||
// Call API to get specific MaxMutuEmas data by karat
|
|
||||||
$.ajax({
|
|
||||||
url: '{{ api_url_for_browser() }}/api/maxmutuemas/specific',
|
|
||||||
type: 'GET',
|
|
||||||
data: { karat: karat, nilaimarhun: nm },
|
|
||||||
success: function(response) {
|
|
||||||
let marginInfo = '';
|
|
||||||
let marginTable = '';
|
|
||||||
if (response && response.karat) {
|
|
||||||
marginTable = `
|
|
||||||
<table class="table table-bordered table-sm mt-3">
|
|
||||||
<thead class="thead-light">
|
|
||||||
<tr><th colspan="2" class="text-center"><strong>Maklumat Margin</strong></th></tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr><td><strong>Margin Teller</strong></td><td>${response.teller}%</td></tr>
|
|
||||||
<tr><td><strong>Margin PC</strong></td><td>${response.pc}%</td></tr>
|
|
||||||
<tr><td><strong>Nilai Marhun Teller</strong></td><td>RM${parseFloat(response.maxteller).toLocaleString('en-MY', {minimumFractionDigits: 2, maximumFractionDigits: 2})}</td></tr>
|
|
||||||
<tr><td><strong>Nilai Marhun PC</strong></td><td>RM${parseFloat(response.maxpc).toLocaleString('en-MY', {minimumFractionDigits: 2, maximumFractionDigits: 2})}</td></tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
`;
|
|
||||||
}
|
|
||||||
|
|
||||||
let details = `
|
|
||||||
<table class="table table-bordered table-sm">
|
|
||||||
<thead class="thead-light">
|
|
||||||
<tr><th colspan="2" class="text-center"><strong>Maklumat Marhun</strong></th></tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr><td><strong>Jenis Marhun</strong></td><td>${jenismarhun}</td></tr>
|
|
||||||
<tr><td><strong>Nilai Marhun Asal</strong></td><td>${nm}</td></tr>
|
|
||||||
<tr><td><strong>Karat</strong></td><td>${karat}</td></tr>
|
|
||||||
<tr><td><strong>Berat</strong></td><td>${berat}g</td></tr>
|
|
||||||
<tr><td><strong>Kuantiti</strong></td><td>${kuantiti}</td></tr>
|
|
||||||
<tr><td><strong>Harga</strong></td><td>RM${harga}</td></tr>
|
|
||||||
<tr><td><strong>Nota</strong></td><td>${nota}</td></tr>
|
|
||||||
<tr><td><strong>Berat Batu Permata</strong></td><td>${beratpermata}g</td></tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
${marginTable}
|
|
||||||
`;
|
|
||||||
|
|
||||||
Swal.fire({
|
|
||||||
title: 'Maklumat Marhun & Margin',
|
|
||||||
html: details,
|
|
||||||
icon: 'info',
|
|
||||||
confirmButtonText: 'OK',
|
|
||||||
width: '600px'
|
|
||||||
});
|
|
||||||
},
|
|
||||||
error: function(xhr) {
|
|
||||||
// If API call fails, show basic marhun info only
|
|
||||||
let details = `
|
|
||||||
<table class="table table-bordered table-sm">
|
|
||||||
<thead class="thead-light">
|
|
||||||
<tr><th colspan="2" class="text-center"><strong>Maklumat Marhun</strong></th></tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr><td><strong>Jenis Marhun</strong></td><td>${jenismarhun}</td></tr>
|
|
||||||
<tr><td><strong>Nama</strong></td><td>${nm}</td></tr>
|
|
||||||
<tr><td><strong>Karat</strong></td><td>${karat}</td></tr>
|
|
||||||
<tr><td><strong>Berat</strong></td><td>${berat}g</td></tr>
|
|
||||||
<tr><td><strong>Kuantiti</strong></td><td>${kuantiti}</td></tr>
|
|
||||||
<tr><td><strong>Harga</strong></td><td>RM${harga}</td></tr>
|
|
||||||
<tr><td><strong>Nota</strong></td><td>${nota}</td></tr>
|
|
||||||
<tr><td><strong>Berat Batu Permata</strong></td><td>${beratpermata}g</td></tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<div class="alert alert-warning text-center">
|
|
||||||
<em>Maklumat margin tidak tersedia</em>
|
|
||||||
</div>
|
|
||||||
`;
|
|
||||||
|
|
||||||
Swal.fire({
|
|
||||||
title: 'Maklumat Marhun',
|
|
||||||
html: details,
|
|
||||||
icon: 'info',
|
|
||||||
confirmButtonText: 'OK',
|
|
||||||
width: '600px'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function editmarhun(e){
|
function editmarhun(e){
|
||||||
let norujuk = $('#norujukan').val();
|
let norujuk = $('#norujukan').val();
|
||||||
let selectedrow = $(e).closest('tr');
|
let selectedrow = $(e).closest('tr');
|
||||||
@@ -1652,7 +1502,7 @@
|
|||||||
|
|
||||||
swalWithBootstrapButtons.fire({
|
swalWithBootstrapButtons.fire({
|
||||||
title: 'Dapatkan Pengesahan Daripada Khazanah?',
|
title: 'Dapatkan Pengesahan Daripada Khazanah?',
|
||||||
text: "Tetapan Margin Melebihi Limit Maksima Teller!",
|
text: "Tetapan margin melebihi" + pinjaman_teller + "% untuk Khazanah!",
|
||||||
icon: 'info',
|
icon: 'info',
|
||||||
showCancelButton: true,
|
showCancelButton: true,
|
||||||
confirmButtonText: 'Hantar',
|
confirmButtonText: 'Hantar',
|
||||||
@@ -1664,7 +1514,7 @@
|
|||||||
let norujukan = $('#norujukan').val();
|
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 nm = parseFloat($('#total_nilai_marhun').val().replace(/[^0-9.-]+/g,""));let ber = $('#total_berat').val();let marg = $('.span-pinjaman').text();
|
||||||
// let komen = "Pembiayaan Melebihi Margin 70%|" + nm + "|" + ber + "|" + marg + "|";
|
// let komen = "Pembiayaan Melebihi Margin 70%|" + nm + "|" + ber + "|" + marg + "|";
|
||||||
let status = "Tetapan Margin Melebihi Limit Maksima Teller: " + pinjaman_teller + "%";
|
let status = "Pembiayaan Melebihi Margin " + pinjaman_teller + "%";
|
||||||
let jumpinjam = $('#pinjaman').val();
|
let jumpinjam = $('#pinjaman').val();
|
||||||
let teller = "{{ Auth::user()->name }}";
|
let teller = "{{ Auth::user()->name }}";
|
||||||
|
|
||||||
@@ -1768,153 +1618,5 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Toggle Table Functionality
|
|
||||||
let isMarginTableVisible = false;
|
|
||||||
|
|
||||||
$('#toggleTableBtn').on('click', function() {
|
|
||||||
if (!isMarginTableVisible) {
|
|
||||||
// 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;
|
|
||||||
} 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;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
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) {
|
|
||||||
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>
|
</script>
|
||||||
@endsection
|
@endsection
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
@if($gadai_session != null)
|
@if($gadai_session != null)
|
||||||
<div class="p-4">
|
<div class="container">
|
||||||
<div class="row justify-content-center">
|
<div class="row justify-content-center">
|
||||||
<div class="col-md-12 col-lg-12">
|
<div class="col-md-12 col-lg-12">
|
||||||
|
|
||||||
@@ -29,6 +29,7 @@
|
|||||||
<div class="form-group row col-12">
|
<div class="form-group row col-12">
|
||||||
<input type="hidden" name="kodcaw" id="kodcaw" value="{{$cawangan_info['kodcaw']}}">
|
<input type="hidden" name="kodcaw" id="kodcaw" value="{{$cawangan_info['kodcaw']}}">
|
||||||
<input type="hidden" name="nokp" id="nokp" value="{{ $customer_info['kpbaru'] }}">
|
<input type="hidden" name="nokp" id="nokp" value="{{ $customer_info['kpbaru'] }}">
|
||||||
|
<input type="hidden" name="tag_anggota" id="tag_anggota" value="{{ $customer_info['tag_anggota'] ?? 0 }}">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 mb-2">
|
<div class="col-12 mb-2">
|
||||||
@@ -63,14 +64,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body">
|
<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">
|
<table class="table table-striped table-hover text-center" id="myTable">
|
||||||
<thead class="thead-dark">
|
<thead class="thead-dark">
|
||||||
<tr>
|
<tr>
|
||||||
@@ -97,35 +90,6 @@
|
|||||||
<th colspan="5"></th>
|
<th colspan="5"></th>
|
||||||
</tfoot>
|
</tfoot>
|
||||||
</table>
|
</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>
|
</div>
|
||||||
<div class="card">
|
<div class="card">
|
||||||
@@ -217,65 +181,14 @@
|
|||||||
</div>
|
</div>
|
||||||
</diV>
|
</diV>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12" id="cara_terima_section" style="display:none;">
|
<div class="col-4">
|
||||||
<hr>
|
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<div class="col-md-3">
|
<div class="col-md-6">
|
||||||
Cara Terima Pembiayaan
|
Kadar Rebet
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-9">
|
<div class="col-md-6">
|
||||||
<div class="form-check form-check-inline">
|
<input type="text" class="form-control" readonly name="rebate" id="rebate">
|
||||||
<input class="form-check-input" type="radio" name="cara_terima" id="cara_terima_tunai" value="TUNAI" checked>
|
<input type="text" class="form-control" readonly name="kadar_rebate" id="kadar_rebate">
|
||||||
<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>
|
||||||
</div>
|
</div>
|
||||||
@@ -393,7 +306,7 @@
|
|||||||
@endif
|
@endif
|
||||||
<script src="{{ asset('js/rounded-methods.js') }}"></script>
|
<script src="{{ asset('js/rounded-methods.js') }}"></script>
|
||||||
<script>
|
<script>
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw_ujrah = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw_ujrah = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
$('form input').keydown(function (e) {
|
$('form input').keydown(function (e) {
|
||||||
if (e.keyCode == 13) {
|
if (e.keyCode == 13) {
|
||||||
@@ -572,34 +485,21 @@
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
var tablemarhun = $('#myTable').DataTable({
|
var tablemarhun = $('#myTable').DataTable({
|
||||||
"ordering": false,
|
"ordering": false,
|
||||||
"columnDefs": [{
|
"columnDefs": [
|
||||||
"targets": [1],
|
{
|
||||||
"visible": false,
|
"targets": [ 1 ],
|
||||||
"searchable": false
|
"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"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
});
|
{
|
||||||
|
"targets": [ 7 ],
|
||||||
|
"visible": false,
|
||||||
|
"searchable": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
$(".select2").select2({
|
$(".select2").select2({
|
||||||
dropdownParent: $('#daftar_marhun'),
|
dropdownParent: $('#daftar_marhun'),
|
||||||
@@ -639,106 +539,107 @@
|
|||||||
closeOnSelect: false
|
closeOnSelect: false
|
||||||
});
|
});
|
||||||
|
|
||||||
var total_nilai_marhun = 0;
|
var total_nilai_marhun = 0;
|
||||||
var total_berat = 0;
|
var total_berat = 0;
|
||||||
var total_kuantiti = 0;
|
var total_kuantiti = 0;
|
||||||
var kadarupah = 0;
|
var kadarupah = 0;
|
||||||
var jumlah_marhun = 0;
|
var jumlah_marhun = 0;
|
||||||
var jumlah_nilai_marhun = 0;
|
var jumlah_nilai_marhun = 0;
|
||||||
var pinjaman_pelulus = 0;
|
var pinjaman_pelulus = 0;
|
||||||
var pinjaman_teller = 0;
|
var pinjaman_teller = 0;
|
||||||
|
function marhuntable(data){
|
||||||
function marhuntable(data) {
|
var counter = 1;
|
||||||
var counter = 1;
|
total_nilai_marhun = 0;
|
||||||
total_nilai_marhun = 0;
|
total_berat = 0;
|
||||||
total_berat = 0;
|
total_kuantiti = 0;
|
||||||
total_kuantiti = 0;
|
var marhun_details = '';
|
||||||
var marhun_details = '';
|
jumlah_nilai_marhun = 0;
|
||||||
var array_mutu = [];
|
tablemarhun.clear().draw();
|
||||||
jumlah_nilai_marhun = 0;
|
$.each(data,function(index,marhun){
|
||||||
tablemarhun.clear().draw();
|
$.each(marhun,function(index,marhun_detail){
|
||||||
$.each(data, function(index, marhun) {
|
total_nilai_marhun = total_nilai_marhun + Number(marhun_detail['n_marhun']);
|
||||||
$.each(marhun, function(index, marhun_detail) {
|
total_berat = total_berat + Number(marhun_detail['berat']);
|
||||||
total_nilai_marhun = total_nilai_marhun + Number(marhun_detail['n_marhun']);
|
marhun_details = marhun_details + marhun_detail['bil'] + " " + marhun_detail['marhun'] +",";
|
||||||
total_berat = total_berat + Number(marhun_detail['berat']);
|
jumlah_nilai_marhun += Number(marhun_detail['n_marhun']);
|
||||||
marhun_details = marhun_details + marhun_detail['bil'] + " " + marhun_detail['marhun'] + ",";
|
status_tag_permata = marhun_detail['tag_permata'] == 1 ? 'Ada' : '';
|
||||||
jumlah_nilai_marhun += Number(marhun_detail['n_marhun']);
|
total_kuantiti += Number(marhun_detail['bil']);
|
||||||
status_tag_permata = marhun_detail['tag_permata'] == 1 ? 'Ada' : '';
|
tablemarhun.row.add([
|
||||||
total_kuantiti += Number(marhun_detail['bil']);
|
counter,
|
||||||
array_mutu.push([marhun_detail['karat'], marhun_detail['n_marhun']]);
|
marhun_detail['recno'],
|
||||||
tablemarhun.row.add([
|
marhun_detail['marhun'],
|
||||||
counter,
|
formatter.format(marhun_detail['n_marhun']),
|
||||||
marhun_detail['recno'],
|
marhun_detail['karat'],
|
||||||
marhun_detail['marhun'],
|
formatter.format(marhun_detail['berat']),
|
||||||
formatter.format(marhun_detail['n_marhun']),
|
marhun_detail['bil'],
|
||||||
marhun_detail['karat'],
|
marhun_detail['nota'],
|
||||||
formatter.format(marhun_detail['berat']),
|
marhun_detail['harga'],
|
||||||
marhun_detail['bil'],
|
status_tag_permata,
|
||||||
marhun_detail['nota'],
|
marhun_detail['berat_batu_permata'],
|
||||||
marhun_detail['harga'],
|
"<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>"
|
||||||
status_tag_permata,
|
]).draw();
|
||||||
marhun_detail['berat_batu_permata'],
|
counter = counter + 1;
|
||||||
"<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);
|
$('#totalberattable').text(formatter.format(total_berat));
|
||||||
$('#totalnilaimarhuntable').text(formatter.format(jumlah_nilai_marhun));
|
$('#totalkuantititable').text(total_kuantiti);
|
||||||
$('#bilangan_marhun').val(formatter.format(counter - 1));
|
$('#totalnilaimarhuntable').text(formatter.format(jumlah_nilai_marhun));
|
||||||
$('#bilangan_jumlah_kuantiti').val(formatter.format(total_kuantiti));
|
$('#bilangan_marhun').val(formatter.format(counter-1));
|
||||||
$('#jumlah_nilai_marhun').val(formatter.format(jumlah_nilai_marhun));
|
$('#bilangan_jumlah_kuantiti').val(formatter.format(total_kuantiti));
|
||||||
|
$('#jumlah_nilai_marhun').val(formatter.format(jumlah_nilai_marhun));
|
||||||
|
// if(total_nilai_marhun > 0 && total_nilai_marhun < 401){
|
||||||
|
// kadarupah = 1.2/100;
|
||||||
|
// }else if(total_nilai_marhun >= 401 && total_nilai_marhun < 2001){
|
||||||
|
// kadarupah = 1.5/100;
|
||||||
|
// }else if(total_nilai_marhun >= 2001 ){
|
||||||
|
// kadarupah = 1.7/100;
|
||||||
|
// }
|
||||||
|
|
||||||
|
$.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;
|
||||||
|
|
||||||
|
// Jika anggota (tag_anggota = 1), kadar ujrah dipaksa 0.00
|
||||||
|
if(Number($('#tag_anggota').val()) === 1){
|
||||||
|
kadarupah = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#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));
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
method:'GET',
|
method:'GET',
|
||||||
url: api_url + '/api/kadarujrah',
|
url: api_url + '/api/maxpinjaman',
|
||||||
async:false,
|
|
||||||
data:{
|
|
||||||
'nokp': $('#nokp').val(),
|
|
||||||
'nilaimarhun' : total_nilai_marhun,
|
|
||||||
'kodcaw' : kodcaw_ujrah
|
|
||||||
},
|
|
||||||
success:function(data){
|
success:function(data){
|
||||||
kadarupah = data;
|
$.each(data,function(index,pinjaman){
|
||||||
|
if(pinjaman['user_type'] == 'teller'){
|
||||||
|
pinjaman_teller = Number(pinjaman['max']);
|
||||||
|
}
|
||||||
|
if(pinjaman['user_type'] == 'khazanah'){
|
||||||
|
pinjaman_pelulus = Number(pinjaman['max']);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$('.span-pinjaman-max-pelulus').text(formatter.format(pinjaman_pelulus) + ' %');
|
||||||
|
$('.span-pinjaman-max').text(formatter.format(pinjaman_teller) + ' %');
|
||||||
|
var max_teller = total_nilai_marhun * (pinjaman_teller/100);
|
||||||
|
var max_pelulus = total_nilai_marhun * (pinjaman_pelulus/100);
|
||||||
|
$('#pembiayaan_max_teller').val(formatter.format(max_teller.toFixed(2)));
|
||||||
|
$('#pembiyaan_max_pelulus').val(formatter.format(max_pelulus.toFixed(2)));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
$('#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(){
|
$('#pinjaman').on('input',function(){
|
||||||
var pinjaman = Number(this.value);
|
var pinjaman = Number(this.value);
|
||||||
@@ -746,7 +647,6 @@
|
|||||||
var nokp = $('#nokp').val();
|
var nokp = $('#nokp').val();
|
||||||
//console.log('DEBUG NOKP:', nokp, kadarupah);
|
//console.log('DEBUG NOKP:', nokp, kadarupah);
|
||||||
|
|
||||||
toggleCaraTerima(pinjaman);
|
|
||||||
|
|
||||||
// var keuntungan_sebulan = pinjaman * kadarupah;
|
// var keuntungan_sebulan = pinjaman * kadarupah;
|
||||||
// var keuntungan_6bln = keuntungan_sebulan * 6;
|
// var keuntungan_6bln = keuntungan_sebulan * 6;
|
||||||
@@ -774,12 +674,35 @@
|
|||||||
|
|
||||||
var keuntungan_sebulan = getRoundedMethod(array_keuntungan['keuntungan']);
|
var keuntungan_sebulan = getRoundedMethod(array_keuntungan['keuntungan']);
|
||||||
var keuntungan_6bln = getRoundedMethod(keuntungan_sebulan * 6);
|
var keuntungan_6bln = getRoundedMethod(keuntungan_sebulan * 6);
|
||||||
|
var ujrah = getRoundedMethod(array_keuntungan['ujrah']);
|
||||||
|
var onepercent = getRoundedMethod(array_keuntungan['onepercent']);
|
||||||
|
|
||||||
|
// **Rebate Calculation**
|
||||||
|
let rebate, kadar_rebate;
|
||||||
|
if (pinjaman < 20000) {
|
||||||
|
rebate = keuntungan_sebulan * 0.05;
|
||||||
|
kadar_rebate = 5;
|
||||||
|
} else if (pinjaman >= 20000 && pinjaman <= 50000) {
|
||||||
|
rebate = keuntungan_sebulan * 0.10;
|
||||||
|
kadar_rebate = 10;
|
||||||
|
} else if (pinjaman > 50000 && pinjaman <= 100000) {
|
||||||
|
rebate = keuntungan_sebulan * 0.15;
|
||||||
|
kadar_rebate = 15;
|
||||||
|
} else {
|
||||||
|
rebate = keuntungan_sebulan * 0.20;
|
||||||
|
kadar_rebate = 20;
|
||||||
|
}
|
||||||
|
|
||||||
|
rebate = getRoundedMethod(rebate); // ✅ Round rebate before displaying
|
||||||
|
|
||||||
|
// **Display values**
|
||||||
$('.span-pinjaman').text(formatter.format(percent_pinjaman.toFixed(2)) + ' %');
|
$('.span-pinjaman').text(formatter.format(percent_pinjaman.toFixed(2)) + ' %');
|
||||||
$('#keuntungan_sebulan').val(formatter.format(keuntungan_sebulan.toFixed(2)));
|
$('#keuntungan_sebulan').val(formatter.format(keuntungan_sebulan.toFixed(2)));
|
||||||
$('#keuntungan_6bln').val(formatter.format(keuntungan_6bln.toFixed(2)));
|
$('#keuntungan_6bln').val(formatter.format(keuntungan_6bln.toFixed(2)));
|
||||||
$('#ujrah').val(formatter.format(getRoundedMethod(array_keuntungan['ujrah']).toFixed(2)));
|
$('#ujrah').val(formatter.format(getRoundedMethod(array_keuntungan['ujrah']).toFixed(2)));
|
||||||
$('#onepercent').val(formatter.format(getRoundedMethod(array_keuntungan['onepercent']).toFixed(2)));
|
$('#onepercent').val(formatter.format(getRoundedMethod(array_keuntungan['onepercent']).toFixed(2)));
|
||||||
|
$('#rebate').val(formatter.format(rebate.toFixed(2))); // Correctly displaying rebate
|
||||||
|
$('#kadar_rebate').val(formatter.format(kadar_rebate.toFixed(2)) + ' %');
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -982,9 +905,8 @@
|
|||||||
var batu_permata_array = $('#batupermata').val();
|
var batu_permata_array = $('#batupermata').val();
|
||||||
var tag_permata = $('input[id=tagpermata]').is(':checked') ? 1 : 0;
|
var tag_permata = $('input[id=tagpermata]').is(':checked') ? 1 : 0;
|
||||||
|
|
||||||
var beratpermata = $('#beratpermata').val();
|
var beratpermata = $('#beratpermata').val();
|
||||||
var kuantiti = $('#kuantiti').val();
|
var kuantiti = $('#kuantiti').val();
|
||||||
|
|
||||||
|
|
||||||
if(kuantiti > 10)
|
if(kuantiti > 10)
|
||||||
{
|
{
|
||||||
@@ -1258,170 +1180,9 @@
|
|||||||
.then(response => response.json());
|
.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){
|
async function verifyGadai(func){
|
||||||
$("#terima_gadai").prop('disabled', true);
|
$("#terima_gadai").prop('disabled', true);
|
||||||
if (typeof event !== 'undefined' && event && event.preventDefault) {
|
event.preventDefault();
|
||||||
event.preventDefault();
|
|
||||||
}
|
|
||||||
var kodcaw = $('#kodcaw').val();
|
var kodcaw = $('#kodcaw').val();
|
||||||
var nokp = $('#nokp').val();
|
var nokp = $('#nokp').val();
|
||||||
var nopelanggan = $('#nopelanggan').val();
|
var nopelanggan = $('#nopelanggan').val();
|
||||||
@@ -1448,16 +1209,23 @@
|
|||||||
title: 'Amaran!',
|
title: 'Amaran!',
|
||||||
text: 'Pembiayaan Tidak Lengkap'
|
text: 'Pembiayaan Tidak Lengkap'
|
||||||
});
|
});
|
||||||
|
event.preventDefault();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
let floatOk = await checkDisbursementFloat(pinjaman);
|
let dataCawangan = await getDataCawangan();
|
||||||
if (!floatOk) {
|
let bakiAkhir = dataCawangan.baki;
|
||||||
$("#terima_gadai").prop('disabled', false);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(true){
|
if(bakiAkhir < pinjaman){
|
||||||
|
$("#terima_gadai").prop('disabled', false);
|
||||||
|
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. '
|
||||||
|
});
|
||||||
|
event.preventDefault();
|
||||||
|
return false;
|
||||||
|
}else{
|
||||||
|
|
||||||
if($.isNumeric(pinjaman) == false){
|
if($.isNumeric(pinjaman) == false){
|
||||||
$("#terima_gadai").prop('disabled', false);
|
$("#terima_gadai").prop('disabled', false);
|
||||||
@@ -1703,24 +1471,22 @@
|
|||||||
buttonsStyling: false
|
buttonsStyling: false
|
||||||
});
|
});
|
||||||
|
|
||||||
swalWithBootstrapButtons.fire({
|
swalWithBootstrapButtons.fire({
|
||||||
title: 'Dapatkan Pengesahan Khazanah',
|
title: 'Dapatkan Pengesahan Khazanah',
|
||||||
text: "Tetapan Margin Melebihi Limit Maksima Teller!",
|
text: "Tetapan margin melebihi " + pinjaman_teller + "% untuk Khazanah!",
|
||||||
icon: 'info',
|
icon: 'info',
|
||||||
showCancelButton: true,
|
showCancelButton: true,
|
||||||
confirmButtonText: 'Hantar',
|
confirmButtonText: 'Hantar',
|
||||||
cancelButtonText: 'Batal',
|
cancelButtonText: 'Batal',
|
||||||
reverseButtons: true
|
reverseButtons: true
|
||||||
}).then((result) => {
|
}).then((result) => {
|
||||||
if (result.isConfirmed) {
|
if (result.isConfirmed) {
|
||||||
|
|
||||||
let norujukan = $('#norujukan').val();
|
let norujukan = $('#norujukan').val();
|
||||||
let nm = parseFloat($('#total_nilai_marhun').val().replace(/[^0-9.-]+/g, ""));
|
let nm = parseFloat($('#total_nilai_marhun').val().replace(/[^0-9.-]+/g,""));let ber = $('#total_berat').val();let marg = $('.span-pinjaman').text();
|
||||||
let ber = $('#total_berat').val();
|
let status = "Pembiayaan Melebihi Margin " + pinjaman_teller + "%";
|
||||||
let marg = $('.span-pinjaman').text();
|
let jumpinjam = $('#pinjaman').val();
|
||||||
let status = "Tetapan Margin Melebihi Limit Maksima Teller: " + pinjaman_teller + "%";
|
let teller = "{{ Auth::user()->name }}";
|
||||||
let jumpinjam = $('#pinjaman').val();
|
|
||||||
let teller = "{{ Auth::user()->name }}";
|
|
||||||
|
|
||||||
Swal.fire({
|
Swal.fire({
|
||||||
title: 'Tunggu Pengesahan Daripada Khazanah.',
|
title: 'Tunggu Pengesahan Daripada Khazanah.',
|
||||||
@@ -1878,24 +1644,23 @@
|
|||||||
let marhun = $(e).closest('tr').children('td:eq(1)').text();let selectedrow = $(e).closest('tr');let recnozz = tablemarhun.row(selectedrow).data();
|
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();
|
let norujuk = $('#norujukan').val();
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
method: 'put',
|
method: 'put',
|
||||||
url: '{{ route("gadai.editmarhun") }}',
|
url: '{{ route("gadai.editmarhun") }}',
|
||||||
data: {
|
data: {
|
||||||
"_token": "{{ csrf_token() }}",
|
"_token": "{{ csrf_token() }}",
|
||||||
"norujukan": norujuk,
|
"norujukan" : norujuk,
|
||||||
"recno": recnozz[1],
|
"recno" : recnozz[1],
|
||||||
"teller": "{{ Auth::user()->name }}"
|
"teller": "{{ Auth::user()->name }}"
|
||||||
},
|
},
|
||||||
success: function(data) {
|
success:function(data){
|
||||||
location.reload();
|
location.reload();
|
||||||
},
|
},error: function(xhr, status, error) {
|
||||||
error: function(xhr, status, error) {
|
var err = eval("(" + xhr.responseText + ")");
|
||||||
var err = eval("(" + xhr.responseText + ")");
|
alert(xhr.responseText);
|
||||||
alert(xhr.responseText);
|
}
|
||||||
}
|
});
|
||||||
});
|
}
|
||||||
}
|
|
||||||
|
|
||||||
function editmarhun(e){
|
function editmarhun(e){
|
||||||
let norujuk = $('#norujukan').val();
|
let norujuk = $('#norujukan').val();
|
||||||
@@ -2133,169 +1898,5 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// 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>
|
</script>
|
||||||
@endsection
|
@endsection
|
||||||
|
|||||||
@@ -262,10 +262,6 @@
|
|||||||
<a href="{{ url('pendahuluanserahan') }}"
|
<a href="{{ url('pendahuluanserahan') }}"
|
||||||
class="btn btn-info btn-lg btn-block mb-3">Pendahuluan - Serahan</a>
|
class="btn btn-info btn-lg btn-block mb-3">Pendahuluan - Serahan</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
|
||||||
<a href="{{ route('pembiayaan.online.pc') }}"
|
|
||||||
class="btn btn-info btn-lg btn-block mb-3">Pembiayaan Online</a>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<a href="{{ route('khazanah.indexwakil') }}"
|
<a href="{{ route('khazanah.indexwakil') }}"
|
||||||
class="btn btn-info btn-lg btn-block mb-3">Surat Wakil</a>
|
class="btn btn-info btn-lg btn-block mb-3">Surat Wakil</a>
|
||||||
@@ -324,7 +320,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
let api = "{{ api_url_for_browser() }}";
|
let api = "{{ config('api.url') }}";
|
||||||
let kodcaw = "{{ Auth::user()->cawangan }}";
|
let kodcaw = "{{ Auth::user()->cawangan }}";
|
||||||
|
|
||||||
const initialambilan = [
|
const initialambilan = [
|
||||||
|
|||||||
@@ -14,18 +14,13 @@
|
|||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<div class="card-body text-center">
|
<div class="card-body text-center">
|
||||||
<a href="{{ route('operasi.kelulusananggota') }}" class="btn btn-info btn-lg d-inline-block m-1">Kelulusan Anggota</a>
|
<a href="{{ route('operasi.kelulusananggota') }}" class="btn btn-info btn-lg">Kelulusan Anggota</a>
|
||||||
<a href="{{ route('operasi.kelulusan') }}" class="btn btn-info btn-lg d-inline-block m-1">Kelulusan</a>
|
<a href="{{ route('operasi.kelulusan') }}" class="btn btn-info btn-lg">Kelulusan</a>
|
||||||
<a href="{{ route('pembiayaan.online.operasi') }}" class="btn btn-info btn-lg d-inline-block m-1">Pembiayaan Online</a>
|
<a href="{{ route('daftar.kakitangan') }}" class="btn btn-info btn-lg">Kakitangan</a>
|
||||||
<a href="{{ route('pembiayaan.online.operasi.topup') }}" class="btn btn-info btn-lg d-inline-block m-1">Modal Online</a>
|
<a href="{{ route('parameter') }}" class="btn btn-info btn-lg">Parameter</a>
|
||||||
<a href="{{ route('pembiayaan.online.operasi.eod') }}" class="btn btn-info btn-lg d-inline-block m-1">EOD Modal Online</a>
|
<a href="{{ route('komuditi') }}" class="btn btn-info btn-lg">Komoditi</a>
|
||||||
<a href="{{ route('daftar.kakitangan') }}" class="btn btn-info btn-lg d-inline-block m-1">Kakitangan</a>
|
<a href="{{ route('perubatan') }}" class="btn btn-info btn-lg">Perubatan</a>
|
||||||
<a href="{{ route('parameter') }}" class="btn btn-info btn-lg d-inline-block m-1">Parameter</a>
|
|
||||||
<a href="{{ route('komuditi') }}" class="btn btn-info btn-lg d-inline-block m-1">Komoditi</a>
|
|
||||||
<a href="{{ route('perubatan') }}" class="btn btn-info btn-lg d-inline-block m-1">Perubatan</a>
|
|
||||||
<a href="{{ route('operasi.laporan.audit') }}" class="btn btn-info btn-lg d-inline-block m-1">Laporan Audit</a>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,46 +0,0 @@
|
|||||||
@extends('layouts.app_operasi')
|
|
||||||
|
|
||||||
@section('content')
|
|
||||||
<div class="container">
|
|
||||||
<div class="row justify-content-center mt-5">
|
|
||||||
<div class="col-md-10">
|
|
||||||
<div class="card">
|
|
||||||
<nav aria-label="breadcrumb">
|
|
||||||
<ol class="breadcrumb pb-3">
|
|
||||||
<li class="breadcrumb-item"><a href="{{ route('home') }}">Home</a></li>
|
|
||||||
<li class="breadcrumb-item active" aria-current="page">Laporan Audit</li>
|
|
||||||
</ol>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<div class="card-header">
|
|
||||||
<h4 class="text-center">Laporan Audit</h4>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="card-body">
|
|
||||||
<form action="{{ route('operasi.audittrail.laporancetak') }}" method="GET">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-6">
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="dateaudit">Tarikh Mula:</label>
|
|
||||||
<input type="date" class="form-control" id="dateaudit" name="dateaudit" required>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6">
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="dateaudit_till">Tarikh Akhir:</label>
|
|
||||||
<input type="date" class="form-control" id="dateaudit_till" name="dateaudit_till" required>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="text-center">
|
|
||||||
<button type="submit" class="btn btn-info btn-lg">
|
|
||||||
<i class="fas fa-route"></i> Generate Audit Trail
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@endsection
|
|
||||||
@@ -267,7 +267,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var cawangan = "{{ Auth::user()->cawangan }}";
|
var cawangan = "{{ Auth::user()->cawangan }}";
|
||||||
var teller = "{{ Auth::user()->name }}";
|
var teller = "{{ Auth::user()->name }}";
|
||||||
|
|
||||||
|
|||||||
@@ -18,9 +18,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
let teller = "{{ Auth::user()->name }}";
|
let teller = "{{ Auth::user()->name }}";
|
||||||
let kodcaw = "{{ Auth::user()->cawangan }}";
|
let kodcaw = "{{ Auth::user()->cawangan }}";
|
||||||
|
|
||||||
function pelangganclick()
|
function pelangganclick()
|
||||||
{
|
{
|
||||||
// $getTunai2=Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/GetCurrentTunai/'.$auth_user['cawangan'],['kodlaluan' => $kodlaluan])->json();
|
// $getTunai2=Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/GetCurrentTunai/'.$auth_user['cawangan'],['kodlaluan' => $kodlaluan])->json();
|
||||||
|
|||||||
@@ -74,7 +74,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
var tablecustomers = $('#myTable').DataTable({
|
var tablecustomers = $('#myTable').DataTable({
|
||||||
|
|||||||
@@ -315,7 +315,7 @@
|
|||||||
const d = new Date();
|
const d = new Date();
|
||||||
let tahunsemasa = d.getFullYear();
|
let tahunsemasa = d.getFullYear();
|
||||||
let pusherenv = "{{ env('PUSHER_APP_KEY') }}";
|
let pusherenv = "{{ env('PUSHER_APP_KEY') }}";
|
||||||
let api_url = "{{ api_url_for_browser() }}";
|
let api_url = "{{ $api_url }}";
|
||||||
|
|
||||||
const formatter = new Intl.NumberFormat('en-US', {
|
const formatter = new Intl.NumberFormat('en-US', {
|
||||||
minimumFractionDigits: 2
|
minimumFractionDigits: 2
|
||||||
|
|||||||
@@ -230,7 +230,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var cawangan = "{{ Auth::user()->cawangan }}";
|
var cawangan = "{{ Auth::user()->cawangan }}";
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -318,7 +318,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var search = "<?php echo $search ?>";
|
var search = "<?php echo $search ?>";
|
||||||
var type_id = "<?php echo $idtype ?>";
|
var type_id = "<?php echo $idtype ?>";
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
|
|||||||
@@ -410,7 +410,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "{{ $cawangan_info['kodcaw'] }}";
|
var kodcaw = "{{ $cawangan_info['kodcaw'] }}";
|
||||||
var ppc = "{{ Auth::user()->name }}";
|
var ppc = "{{ Auth::user()->name }}";
|
||||||
var tagarrahnbid = "{{ $cawangan_info['tagarrahnbid'] }}";
|
var tagarrahnbid = "{{ $cawangan_info['tagarrahnbid'] }}";
|
||||||
|
|||||||
@@ -177,7 +177,7 @@
|
|||||||
"scrollX": true
|
"scrollX": true
|
||||||
});
|
});
|
||||||
|
|
||||||
let api = "{{ api_url_for_browser() }}";
|
let api = "{{ config('api.url') }}";
|
||||||
var kodcaw = "{{ Auth::user()->cawangan }}";
|
var kodcaw = "{{ Auth::user()->cawangan }}";
|
||||||
|
|
||||||
const formatter = new Intl.NumberFormat('en-US', {
|
const formatter = new Intl.NumberFormat('en-US', {
|
||||||
@@ -271,7 +271,7 @@
|
|||||||
|
|
||||||
async function updatelulus(e)
|
async function updatelulus(e)
|
||||||
{
|
{
|
||||||
let api = "{{ api_url_for_browser() }}";
|
let api = "{{ config('api.url') }}";
|
||||||
let kodcaw = "{{ Auth::user()->cawangan }}";
|
let kodcaw = "{{ Auth::user()->cawangan }}";
|
||||||
|
|
||||||
const { value: katalaluan } = await Swal.fire({
|
const { value: katalaluan } = await Swal.fire({
|
||||||
|
|||||||
@@ -299,7 +299,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
let api = "{{ api_url_for_browser() }}";
|
let api = "{{ config('api.url') }}";
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
|
|
||||||
|
|||||||
@@ -51,7 +51,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
var tablecustomers = $('#myTable').DataTable({
|
var tablecustomers = $('#myTable').DataTable({
|
||||||
|
|||||||
@@ -1,63 +0,0 @@
|
|||||||
@extends('layouts.app')
|
|
||||||
|
|
||||||
@section('content')
|
|
||||||
<div class="container">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-12">
|
|
||||||
<div class="card">
|
|
||||||
<nav aria-label="breadcrumb">
|
|
||||||
<ol class="breadcrumb pb-3">
|
|
||||||
<li class="breadcrumb-item"><a href="{{ route('home') }}">Home</a></li>
|
|
||||||
<li class="breadcrumb-item active" aria-current="page">Aliran Tunai</li>
|
|
||||||
</ol>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
@if(session()->has('errormessage'))
|
|
||||||
<div class="alert alert-danger">
|
|
||||||
{{ session()->get('errormessage') }}
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
|
|
||||||
<div class="card-body text-center">
|
|
||||||
<div class="row form-group">
|
|
||||||
<div class="col-md-2">
|
|
||||||
</div>
|
|
||||||
<div class="col-md-10">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-5">
|
|
||||||
<form action="{{ route('alirantunai.laporancetak') }}" method="post">
|
|
||||||
@csrf
|
|
||||||
<div class="input-group mb-3">
|
|
||||||
<div class="input-group-prepend">
|
|
||||||
<span class="input-group-text" id="basic-addon1">Tarikh</span>
|
|
||||||
</div>
|
|
||||||
<input type="text" class="form-control" placeholder="Pilih Tarikh" aria-label="Tarikh" id="datetimepicker1" name="datetimepicker1" aria-describedby="basic-addon1">
|
|
||||||
<input type="submit" class="btn btn-primary ml-md-5" id="submit_button" name="submit_button" value="Cetak">
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<script type="text/javascript">
|
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
|
||||||
|
|
||||||
$(document).ready( function () {
|
|
||||||
$('#datetimepicker1').datepicker({
|
|
||||||
format: 'dd-mm-yyyy'
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
var tablecustomers = $('#myTable').DataTable({
|
|
||||||
"ordering": false
|
|
||||||
});
|
|
||||||
|
|
||||||
</script>
|
|
||||||
@endsection
|
|
||||||
|
|
||||||
@@ -69,7 +69,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
var tabletebus = $('#myTable').DataTable({
|
var tabletebus = $('#myTable').DataTable({
|
||||||
|
|||||||
@@ -62,7 +62,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
var tablebatalgadai = $('#myTable').DataTable({
|
var tablebatalgadai = $('#myTable').DataTable({
|
||||||
|
|||||||
@@ -63,7 +63,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
var tablecustomers = $('#myTable').DataTable({
|
var tablecustomers = $('#myTable').DataTable({
|
||||||
|
|||||||
@@ -47,7 +47,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
var tablecustomers = $('#myTable').DataTable({
|
var tablecustomers = $('#myTable').DataTable({
|
||||||
|
|||||||
@@ -71,7 +71,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
var tablegadai = $('#myTable').DataTable({
|
var tablegadai = $('#myTable').DataTable({
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
$(document).ready( function () {
|
$(document).ready( function () {
|
||||||
|
|||||||
@@ -48,7 +48,7 @@
|
|||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
$(document).ready( function () {
|
$(document).ready( function () {
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
var tablebatalgadai = $('#myTable').DataTable({
|
var tablebatalgadai = $('#myTable').DataTable({
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
var tablecustomers = $('#myTable').DataTable({
|
var tablecustomers = $('#myTable').DataTable({
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
// alert(btoa(api_url));
|
// alert(btoa(api_url));
|
||||||
|
|||||||
@@ -54,7 +54,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
var tablecustomers = $('#myTable').DataTable({
|
var tablecustomers = $('#myTable').DataTable({
|
||||||
|
|||||||
@@ -69,7 +69,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
var tabletebus = $('#myTable').DataTable({
|
var tabletebus = $('#myTable').DataTable({
|
||||||
|
|||||||
@@ -70,7 +70,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
var panjartebus = $('#myTable').DataTable({
|
var panjartebus = $('#myTable').DataTable({
|
||||||
|
|||||||
@@ -47,7 +47,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
$(document).ready( function () {
|
$(document).ready( function () {
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
var tablecustomers = $('#myTable').DataTable({
|
var tablecustomers = $('#myTable').DataTable({
|
||||||
|
|||||||
@@ -48,7 +48,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
var tablecustomers = $('#myTable').DataTable({
|
var tablecustomers = $('#myTable').DataTable({
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
$(document).ready( function () {
|
$(document).ready( function () {
|
||||||
|
|||||||
@@ -77,7 +77,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
var tablecustomers = $('#myTable').DataTable({
|
var tablecustomers = $('#myTable').DataTable({
|
||||||
|
|||||||
@@ -76,7 +76,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
var tablecustomers = $('#myTable').DataTable({
|
var tablecustomers = $('#myTable').DataTable({
|
||||||
|
|||||||
@@ -68,7 +68,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
var tabletuntutbaki = $('#myTable').DataTable({
|
var tabletuntutbaki = $('#myTable').DataTable({
|
||||||
|
|||||||
@@ -72,7 +72,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
var advansurtable = $('#myTable').DataTable({
|
var advansurtable = $('#myTable').DataTable({
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
var tablecustomers = $('#myTable').DataTable({
|
var tablecustomers = $('#myTable').DataTable({
|
||||||
|
|||||||
@@ -78,7 +78,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
var tabletebus = $('#myTable').DataTable({
|
var tabletebus = $('#myTable').DataTable({
|
||||||
|
|||||||
@@ -80,7 +80,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
var tablegadai = $('#myTable').DataTable({
|
var tablegadai = $('#myTable').DataTable({
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
var kodcaw = "<?php echo $cawangan_info['kodcaw'] ?>";
|
||||||
|
|
||||||
var tablecustomers = $('#myTable').DataTable({
|
var tablecustomers = $('#myTable').DataTable({
|
||||||
|
|||||||
@@ -1,282 +0,0 @@
|
|||||||
@extends('layouts.app')
|
|
||||||
|
|
||||||
@section('content')
|
|
||||||
<div class="container">
|
|
||||||
<h2 class="text-center font-weight-bold my-4">PAMPASAN</h2>
|
|
||||||
<div class="row mb-4">
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label>NAMA</label>
|
|
||||||
<input type="text" class="form-control mb-2" value="{{ $customer_info['nama'] ?? '-' }}" readonly>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label>NO PELANGGAN</label>
|
|
||||||
<input type="text" class="form-control mb-2" value="{{ $gadai_info['nopelanggan'] ?? '-' }}" readonly>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label>NO RUJUKAN</label>
|
|
||||||
<input type="text" class="form-control mb-2" value="{{ $gadai_info['norujukan'] ?? '-' }}" readonly>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label>NO KAD PENGENALAN</label>
|
|
||||||
<input type="text" class="form-control mb-2" value="{{ $gadai_info['nokp'] ?? '-' }}" readonly>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="card p-4 mx-auto" style="max-width:900px;">
|
|
||||||
<div class="row mb-3">
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label>BAUCER NO</label>
|
|
||||||
<input type="text" class="form-control" value="{{ $baucerno ?? '-' }}" readonly>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label>NILAI MARHUN</label>
|
|
||||||
<input type="text" class="form-control"
|
|
||||||
value="RM {{ number_format($barang_kes_info['nilaimarhun'], 2) }}" readonly>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label>BAKI PEMBIAYAAN</label>
|
|
||||||
<input type="text" class="form-control"
|
|
||||||
value="RM {{ number_format($barang_kes_info['pembiayaan'], 2) }}" readonly>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label>KEUNTUNGAN</label>
|
|
||||||
<input type="text" class="form-control" value="RM {{ number_format($barang_kes_info['untung'], 2) }}"
|
|
||||||
readonly>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label>JUMLAH PAMPASAN</label>
|
|
||||||
@php
|
|
||||||
$nilaimarhun = floatval($barang_kes_info['nilaimarhun'] ?? 0);
|
|
||||||
$pembiayaan = floatval($barang_kes_info['pembiayaan'] ?? 0);
|
|
||||||
$untung = floatval($barang_kes_info['untung'] ?? 0);
|
|
||||||
$jumlah_pampasan = $nilaimarhun - $pembiayaan - $untung;
|
|
||||||
@endphp
|
|
||||||
<input type="text" class="form-control" value="RM {{ number_format($jumlah_pampasan, 2) }}" readonly>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label>JUMLAH TEBUS</label>
|
|
||||||
<input type="text" class="form-control" value="RM {{ number_format($jumlah_tebus, 2) }}" readonly>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-12 row mb-3 justify-content-center">
|
|
||||||
<div class="col-md-6 text-center">
|
|
||||||
<label><strong>JUMLAH PANJAR</strong></label>
|
|
||||||
<input type="text" class="form-control text-center"
|
|
||||||
value="RM {{ number_format($jumlahPanjar, 2) }}" readonly>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="row mb-3">
|
|
||||||
<div class="col-12">
|
|
||||||
<div class="alert alert-info text-center font-weight-bold" style="font-size: 1.2rem;">
|
|
||||||
Cara Pengiraan Jumlah Pampasan:<br>
|
|
||||||
<span style="font-size:1.3rem;">
|
|
||||||
<b>Jumlah Pampasan = Nilai Marhun - Baki Pembiayaan - Keuntungan</b>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-12 text-right">
|
|
||||||
<button type="button" class="btn btn-success mr-2" data-toggle="modal"
|
|
||||||
data-target="#denominasipampasan" data-jumlah="{{ $jumlah_pampasan }}">
|
|
||||||
DENO
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<button type="button" class="btn btn-danger" onclick="window.history.back()">BATAL</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
const formatter = new Intl.NumberFormat('en-US', {
|
|
||||||
minimumFractionDigits: 2
|
|
||||||
});
|
|
||||||
|
|
||||||
var arrayambilan = [
|
|
||||||
["bundle1", 0],
|
|
||||||
["bundle5", 0],
|
|
||||||
["bundle10", 0],
|
|
||||||
["bundle20", 0],
|
|
||||||
["bundle50", 0],
|
|
||||||
["bundle100", 0],
|
|
||||||
["sen1", 0],
|
|
||||||
["sen5", 0],
|
|
||||||
["sen10", 0],
|
|
||||||
["sen20", 0],
|
|
||||||
["sen50", 0],
|
|
||||||
["ringgit1", 0],
|
|
||||||
["ringgit5", 0],
|
|
||||||
["ringgit10", 0],
|
|
||||||
["ringgit20", 0],
|
|
||||||
["ringgit50", 0],
|
|
||||||
["ringgit100", 0]
|
|
||||||
];
|
|
||||||
|
|
||||||
function totalamount(idwang, bilangan) {
|
|
||||||
var amount = 0;
|
|
||||||
switch (idwang) {
|
|
||||||
case 'bundle1':
|
|
||||||
amount += (bilangan * 100);
|
|
||||||
break;
|
|
||||||
case 'bundle20':
|
|
||||||
amount += (bilangan * 1000);
|
|
||||||
break;
|
|
||||||
case 'bundle5':
|
|
||||||
amount += (bilangan * 500);
|
|
||||||
break;
|
|
||||||
case 'bundle50':
|
|
||||||
amount += (bilangan * 5000);
|
|
||||||
break;
|
|
||||||
case 'bundle10':
|
|
||||||
amount += (bilangan * 1000);
|
|
||||||
break;
|
|
||||||
case 'bundle100':
|
|
||||||
amount += (bilangan * 5000);
|
|
||||||
break;
|
|
||||||
case 'sen1':
|
|
||||||
amount += (bilangan * 0.01);
|
|
||||||
break;
|
|
||||||
case 'sen5':
|
|
||||||
amount += (bilangan * 0.05);
|
|
||||||
break;
|
|
||||||
case 'sen10':
|
|
||||||
amount += (bilangan * 0.10);
|
|
||||||
break;
|
|
||||||
case 'sen20':
|
|
||||||
amount += (bilangan * 0.20);
|
|
||||||
break;
|
|
||||||
case 'sen50':
|
|
||||||
amount += (bilangan * 0.50);
|
|
||||||
break;
|
|
||||||
case 'ringgit1':
|
|
||||||
amount += (bilangan * 1);
|
|
||||||
break;
|
|
||||||
case 'ringgit5':
|
|
||||||
amount += (bilangan * 5);
|
|
||||||
break;
|
|
||||||
case 'ringgit10':
|
|
||||||
amount += (bilangan * 10);
|
|
||||||
break;
|
|
||||||
case 'ringgit20':
|
|
||||||
amount += (bilangan * 20);
|
|
||||||
break;
|
|
||||||
case 'ringgit50':
|
|
||||||
amount += (bilangan * 50);
|
|
||||||
break;
|
|
||||||
case 'ringgit100':
|
|
||||||
amount += (bilangan * 100);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return amount;
|
|
||||||
}
|
|
||||||
|
|
||||||
function kiraanpanjar(datakeyin) {
|
|
||||||
var idkey = $(datakeyin).attr('id');
|
|
||||||
var valkey = $(datakeyin).val();
|
|
||||||
var amount = 0;
|
|
||||||
let amountkiraan = 0;
|
|
||||||
|
|
||||||
var validate = parseFloat($(datakeyin).data('amaun'));
|
|
||||||
|
|
||||||
$.each(arrayambilan, function(index, arr) {
|
|
||||||
if (arr[0] == idkey) {
|
|
||||||
|
|
||||||
arrayambilan[index][1] = totalamount(idkey, valkey);
|
|
||||||
}
|
|
||||||
|
|
||||||
amount += arr[1];
|
|
||||||
});
|
|
||||||
|
|
||||||
if (Number(valkey) > Number(validate)) {
|
|
||||||
Swal.fire({
|
|
||||||
icon: 'error',
|
|
||||||
title: 'Amaran',
|
|
||||||
text: 'Jumlah denominasi melebihi kadar'
|
|
||||||
});
|
|
||||||
$(datakeyin).val('');
|
|
||||||
} else {
|
|
||||||
|
|
||||||
$('#amaunkiraan').val(amount);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (idkey) {
|
|
||||||
case 'bundle1':
|
|
||||||
amountkiraan += (valkey * 100);
|
|
||||||
$('#totalb1').val(formatter.format(amountkiraan.toFixed(2)));
|
|
||||||
break;
|
|
||||||
case 'bundle20':
|
|
||||||
amountkiraan += (valkey * 1000);
|
|
||||||
$('#totalb20').val(formatter.format(amountkiraan.toFixed(2)));
|
|
||||||
break;
|
|
||||||
case 'bundle5':
|
|
||||||
amountkiraan += (valkey * 500);
|
|
||||||
$('#totalb5').val(formatter.format(amountkiraan.toFixed(2)));
|
|
||||||
break;
|
|
||||||
case 'bundle50':
|
|
||||||
amountkiraan += (valkey * 5000);
|
|
||||||
$('#totalb50').val(formatter.format(amountkiraan.toFixed(2)));
|
|
||||||
break;
|
|
||||||
case 'bundle10':
|
|
||||||
amountkiraan += (valkey * 1000);
|
|
||||||
$('#totalb10').val(formatter.format(amountkiraan.toFixed(2)));
|
|
||||||
break;
|
|
||||||
case 'bundle100':
|
|
||||||
amountkiraan += (valkey * 5000);
|
|
||||||
$('#totalb100').val(formatter.format(amountkiraan.toFixed(2)));
|
|
||||||
break;
|
|
||||||
case 'sen1':
|
|
||||||
amountkiraan += (valkey * 0.01);
|
|
||||||
$('#totalsen1').val(formatter.format(amountkiraan.toFixed(2)));
|
|
||||||
break;
|
|
||||||
case 'sen5':
|
|
||||||
amountkiraan += (valkey * 0.05);
|
|
||||||
$('#totalsen5').val(formatter.format(amountkiraan.toFixed(2)));
|
|
||||||
break;
|
|
||||||
case 'sen10':
|
|
||||||
amountkiraan += (valkey * 0.10);
|
|
||||||
$('#totalsen10').val(formatter.format(amountkiraan.toFixed(2)));
|
|
||||||
break;
|
|
||||||
case 'sen20':
|
|
||||||
amountkiraan += (valkey * 0.20);
|
|
||||||
$('#totalsen20').val(formatter.format(amountkiraan.toFixed(2)));
|
|
||||||
break;
|
|
||||||
case 'sen50':
|
|
||||||
amountkiraan += (valkey * 0.50);
|
|
||||||
$('#totalsen50').val(formatter.format(amountkiraan.toFixed(2)));
|
|
||||||
break;
|
|
||||||
case 'ringgit1':
|
|
||||||
amountkiraan += (valkey * 1);
|
|
||||||
$('#totalring1').val(formatter.format(amountkiraan.toFixed(2)));
|
|
||||||
break;
|
|
||||||
case 'ringgit5':
|
|
||||||
amountkiraan += (valkey * 5);
|
|
||||||
$('#totalring5').val(formatter.format(amountkiraan.toFixed(2)));
|
|
||||||
break;
|
|
||||||
case 'ringgit10':
|
|
||||||
amountkiraan += (valkey * 10);
|
|
||||||
$('#totalring10').val(formatter.format(amountkiraan.toFixed(2)));
|
|
||||||
break;
|
|
||||||
case 'ringgit20':
|
|
||||||
amountkiraan += (valkey * 20);
|
|
||||||
$('#totalring20').val(formatter.format(amountkiraan.toFixed(2)));
|
|
||||||
break;
|
|
||||||
case 'ringgit50':
|
|
||||||
amountkiraan += (valkey * 50);
|
|
||||||
$('#totalring50').val(formatter.format(amountkiraan.toFixed(2)));
|
|
||||||
break;
|
|
||||||
case 'ringgit100':
|
|
||||||
amountkiraan += (valkey * 100);
|
|
||||||
$('#totalring100').val(formatter.format(amountkiraan.toFixed(2)));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
@include('modal.denopampasan')
|
|
||||||
@endsection
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -134,7 +134,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "{{ Auth::user()->cawangan }}";
|
var kodcaw = "{{ Auth::user()->cawangan }}";
|
||||||
|
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
|
|||||||
@@ -304,7 +304,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
let api = "{{ api_url_for_browser() }}";
|
let api = "{{ config('api.url') }}";
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
|
|
||||||
|
|||||||
@@ -104,7 +104,7 @@
|
|||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
let api = "{{ api_url_for_browser() }}";
|
let api = "{{ config('api.url') }}";
|
||||||
let kodcaw = "{{ Auth::user()->cawangan }}";
|
let kodcaw = "{{ Auth::user()->cawangan }}";
|
||||||
let teller = "{{ Auth::user()->name }}";
|
let teller = "{{ Auth::user()->name }}";
|
||||||
|
|
||||||
|
|||||||
@@ -110,7 +110,7 @@
|
|||||||
"ordering": false
|
"ordering": false
|
||||||
});
|
});
|
||||||
|
|
||||||
var api_url = '{{ api_url_for_browser() }}';
|
var api_url = '{{ $api_url }}';
|
||||||
|
|
||||||
$('#PermohonanWang').on('hidden.bs.modal', function (e) {
|
$('#PermohonanWang').on('hidden.bs.modal', function (e) {
|
||||||
$(this)
|
$(this)
|
||||||
|
|||||||
@@ -81,7 +81,7 @@
|
|||||||
"ordering": false
|
"ordering": false
|
||||||
});
|
});
|
||||||
|
|
||||||
var api_url = '{{ api_url_for_browser() }}';
|
var api_url = '{{ $api_url }}';
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
@endsection
|
@endsection
|
||||||
|
|||||||
@@ -104,7 +104,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
var api_arrahnbid = "<?php echo config('app.api_arrahnbid') ?>";
|
var api_arrahnbid = "<?php echo config('app.api_arrahnbid') ?>";
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "{{ $cawangan_info['kodcaw'] }}";
|
var kodcaw = "{{ $cawangan_info['kodcaw'] }}";
|
||||||
var tagarrahnbid = "{{ $cawangan_info['tagarrahnbid'] }}";
|
var tagarrahnbid = "{{ $cawangan_info['tagarrahnbid'] }}";
|
||||||
|
|
||||||
|
|||||||
@@ -139,7 +139,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
var api_url = "{{ api_url_for_browser() }}";
|
var api_url = "<?php echo $api_url ?>";
|
||||||
var kodcaw = "{{ Auth::user()->cawangan }}";
|
var kodcaw = "{{ Auth::user()->cawangan }}";
|
||||||
|
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user