Compare commits
91 Commits
3d3a7f35f9
...
prod-annur
| Author | SHA1 | Date | |
|---|---|---|---|
| d6df3e744c | |||
| 166215b989 | |||
| f895ddb404 | |||
| ac519f7a5f | |||
| 71537d4deb | |||
| a555406b2b | |||
| 3c9b224ad2 | |||
| aa8647aad4 | |||
| e4d50e9e1c | |||
| 23408d327c | |||
| 59efddb005 | |||
| e1f17472eb | |||
| 8512205b87 | |||
| 7175d0dbcf | |||
| 15575dc8c0 | |||
| 03a0142066 | |||
| 5e7fe8c3ab | |||
| 358baf3453 | |||
| 7eebd79397 | |||
| f7dd2fae7b | |||
| b8cc3f38cc | |||
| c06e33bc1c | |||
| b95f68bd3f | |||
| c989197e76 | |||
| e3424e9161 | |||
| da06ff709c | |||
| d6b4685f54 | |||
| 173ce892b9 | |||
| 6af434360d | |||
| aaf784ad79 | |||
| 3456059db4 | |||
| cd9f83e21f | |||
| 1e174a48b6 | |||
| 80b8fd3a24 | |||
| 71990e7582 | |||
| 31dc30ed60 | |||
| bb8bcae8e8 | |||
| 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 |
@@ -0,0 +1,50 @@
|
||||
APP_NAME=Laravel
|
||||
APP_ENV=local
|
||||
APP_KEY=base64:WRTHcFTq5YARKVdA8YDUzsh9Ue8vD63ivgZgXNNBiGo=
|
||||
APP_DEBUG=true
|
||||
APP_URL=http://ujrahkopkb.erahn.com.my
|
||||
API_URL=http://apiujrah-kopkb.erahn.com.my
|
||||
#API_ARRAHNBID=http://lelong.test/api/
|
||||
|
||||
LOG_CHANNEL=stack
|
||||
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOST=127.0.0.1
|
||||
DB_PORT=3306
|
||||
DB_DATABASE=kaunter_erahn
|
||||
DB_USERNAME=spider
|
||||
DB_PASSWORD=G0dz!ll4
|
||||
|
||||
BROADCAST_DRIVER=pusher
|
||||
CACHE_DRIVER=file
|
||||
QUEUE_CONNECTION=sync
|
||||
SESSION_DRIVER=file
|
||||
SESSION_LIFETIME=120
|
||||
|
||||
REDIS_HOST=127.0.0.1
|
||||
REDIS_PASSWORD=null
|
||||
REDIS_PORT=6379
|
||||
|
||||
PUSHER_APP_ID=1132718
|
||||
PUSHER_APP_KEY=26b0ec2f297f94b7aa9b
|
||||
PUSHER_APP_SECRET=421b61fb5a8ecce477a6
|
||||
|
||||
MAIL_MAILER=smtp
|
||||
MAIL_HOST=smtp.mailtrap.io
|
||||
MAIL_PORT=2525
|
||||
MAIL_USERNAME=null
|
||||
MAIL_PASSWORD=null
|
||||
MAIL_ENCRYPTION=null
|
||||
MAIL_FROM_ADDRESS=null
|
||||
MAIL_FROM_NAME="${APP_NAME}"
|
||||
|
||||
AWS_ACCESS_KEY_ID=
|
||||
AWS_SECRET_ACCESS_KEY=
|
||||
AWS_DEFAULT_REGION=us-east-1
|
||||
AWS_BUCKET=
|
||||
|
||||
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
|
||||
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
|
||||
|
||||
MYKAD_READER_PORT=8085
|
||||
MYKAD_READER_ENABLED_CAWANGAN='' # IF NO CAWANGAN STATED, ALL CAWANGAN IS ENABLED
|
||||
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace App\Events;
|
||||
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Foundation\Events\Dispatchable;
|
||||
use Illuminate\Broadcasting\InteractsWithSockets;
|
||||
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
|
||||
|
||||
class NotifikasiAnggota implements ShouldBroadcast
|
||||
{
|
||||
use Dispatchable, InteractsWithSockets, SerializesModels;
|
||||
|
||||
public $nokp;
|
||||
public $status; // DILULUSKAN atau DITOLAK
|
||||
public $komen;
|
||||
public $tagoperasi;
|
||||
|
||||
public function __construct($nokp, $status, $komen, $tagoperasi = null)
|
||||
{
|
||||
$this->nokp = $nokp;
|
||||
$this->status = strtoupper($status); // pastikan huruf besar DILULUSKAN/DITOLAK
|
||||
$this->komen = $komen;
|
||||
$this->tagoperasi = $tagoperasi;
|
||||
}
|
||||
|
||||
public function broadcastOn()
|
||||
{
|
||||
return ['notice-anggota'];
|
||||
}
|
||||
|
||||
public function broadcastAs()
|
||||
{
|
||||
return 'my-anggota';
|
||||
}
|
||||
|
||||
public function broadcastWith()
|
||||
{
|
||||
return [
|
||||
'noic' => $this->nokp,
|
||||
'status' => $this->status, // ikut format API updateAnggota
|
||||
'komen' => $this->komen,
|
||||
'tagoperasi' => $this->tagoperasi,
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -14,6 +14,7 @@ use Illuminate\Support\Facades\Auth;
|
||||
use Twilio\Rest\Client;
|
||||
use App\Komoditi;
|
||||
use App\Events\Dashboard\PelangganNotify;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
use Carbon\Carbon;
|
||||
|
||||
@@ -24,7 +25,7 @@ class CustomersController extends Controller
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('auth');
|
||||
$this->customerService = New CustomerService();
|
||||
$this->customerService = new CustomerService();
|
||||
}
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
@@ -38,84 +39,241 @@ class CustomersController extends Controller
|
||||
$api_url = config('api.url');
|
||||
$auth_user = Auth::user();
|
||||
$idtype = 'nokp';
|
||||
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json();
|
||||
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json();
|
||||
$bank = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/bank')->json();
|
||||
$pekerjaan = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/pekerjaan')->json();
|
||||
$blacklist_search = false;
|
||||
|
||||
return view('customers.' . $cawangan_info['version'] . '.index',compact('search','blacklist_search','cawangan_info','bank','api_url','idtype','pekerjaan'));
|
||||
return view('customers.' . $cawangan_info['version'] . '.index', compact('search', 'blacklist_search', 'cawangan_info', 'bank', 'api_url', 'idtype', 'pekerjaan'));
|
||||
}
|
||||
|
||||
public function info(Request $request){
|
||||
public function info(Request $request)
|
||||
{
|
||||
$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();
|
||||
|
||||
$customer_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. Session::get('noic'))->json();
|
||||
// dd($customer_info);
|
||||
$pekerjaan = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/pekerjaan')->json();
|
||||
// 🔹 Panggil maklumat cawangan
|
||||
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])
|
||||
->get($api_url . '/api/cawangan/' . $auth_user['cawangan'])
|
||||
->json();
|
||||
|
||||
// 🔹 Panggil maklumat pelanggan (customer)
|
||||
$customer_info = Http::withOptions(['verify' => config('app.api_verify')])
|
||||
->get($api_url . '/api/customers/' . Session::get('noic'))
|
||||
->json();
|
||||
|
||||
// 🔹 Panggil maklumat pekerjaan
|
||||
$pekerjaan = Http::withOptions(['verify' => config('app.api_verify')])
|
||||
->get($api_url . '/api/pekerjaan')
|
||||
->json();
|
||||
|
||||
$komoditi = Komoditi::first();
|
||||
$min_komoditi = $komoditi['min_komoditi'];
|
||||
|
||||
$bakilelong = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/bakilelong/cawangan/' . $auth_user['cawangan'] . '/' . Session::get('noic') . '/baki')->json();
|
||||
$rugilelong = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/bakilelong/cawangan/' . $auth_user['cawangan'] . '/' . Session::get('noic') . '/rugi')->json();
|
||||
// 🔹 Panggil baki lelong
|
||||
$bakilelong = Http::withOptions(['verify' => config('app.api_verify')])
|
||||
->get($api_url . '/api/bakilelong/cawangan/' . $auth_user['cawangan'] . '/' . Session::get('noic') . '/baki')
|
||||
->json();
|
||||
|
||||
// 🔹 Panggil rugi lelong
|
||||
$rugilelong = Http::withOptions(['verify' => config('app.api_verify')])
|
||||
->get($api_url . '/api/bakilelong/cawangan/' . $auth_user['cawangan'] . '/' . Session::get('noic') . '/rugi')
|
||||
->json();
|
||||
|
||||
// 🔹 Reset session sementara
|
||||
$request->session()->forget('page_reload');
|
||||
$request->session()->forget('norujukan');
|
||||
|
||||
$customer_page = ($cawangan_info['version'] == 'v1') ? 'customers.v1.info' : 'customers.v2.info';
|
||||
$customer_page = ($cawangan_info['version'] == 'v1')
|
||||
? 'customers.v1.info'
|
||||
: 'customers.v2.info';
|
||||
|
||||
$getApprovalError = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getApproval',[
|
||||
'kodcaw' => $auth_user['cawangan'],
|
||||
'teller' => $auth_user['name'],
|
||||
])->json();
|
||||
// Logik papar butang "Assign sebagai Anggota"
|
||||
$showAssignAnggotaBtn = false;
|
||||
$noic = Session::get('noic');
|
||||
|
||||
if($request->tebus_auto_tawarruq_berjaya === 'true'){
|
||||
if (!empty($customer_info)) {
|
||||
|
||||
$anggota_info = Http::withOptions(['verify' => config('app.api_verify')])
|
||||
->get($api_url . '/api/customer/anggota', [
|
||||
'noic' => $noic
|
||||
])
|
||||
->json();
|
||||
$isAnggotaExist = isset($anggota_info) && !empty($anggota_info) && !isset($anggota_info['message']);
|
||||
|
||||
if ($isAnggotaExist && isset($customer_info['tag_anggota']) && $customer_info['tag_anggota'] == 0) {
|
||||
$showAssignAnggotaBtn = true;
|
||||
}
|
||||
}
|
||||
|
||||
$getApprovalError = Http::withOptions(['verify' => config('app.api_verify')])
|
||||
->get($api_url . '/api/getApproval', [
|
||||
'kodcaw' => $auth_user['cawangan'],
|
||||
'teller' => $auth_user['name'],
|
||||
])
|
||||
->json();
|
||||
|
||||
if ($request->tebus_auto_tawarruq_berjaya === 'true') {
|
||||
$request->session()->flash('activate_tab', 'SAG_baru');
|
||||
}
|
||||
|
||||
return view($customer_page,compact('cawangan_info','api_url','customer_info','bakilelong','rugilelong','min_komoditi','pekerjaan','getApprovalError'));
|
||||
return view($customer_page, compact(
|
||||
'cawangan_info',
|
||||
'api_url',
|
||||
'customer_info',
|
||||
'bakilelong',
|
||||
'rugilelong',
|
||||
'min_komoditi',
|
||||
'pekerjaan',
|
||||
'getApprovalError',
|
||||
'showAssignAnggotaBtn'
|
||||
));
|
||||
}
|
||||
|
||||
public function search(Request $request){
|
||||
// dd($request->all());
|
||||
|
||||
public function search(Request $request)
|
||||
{
|
||||
$noic = $request->noic;
|
||||
$idtype = $request->customerIDType;
|
||||
Session::put('noic', $noic);
|
||||
|
||||
$api_url = config('api.url');
|
||||
$auth_user = Auth::user();
|
||||
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json();
|
||||
$bank = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/bank')->json();
|
||||
$customer_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $noic)->json();
|
||||
$pekerjaan = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/pekerjaan')->json();
|
||||
|
||||
$blacklist = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customer/blacklist',[
|
||||
'nokp' => $noic
|
||||
])->json();
|
||||
// if($customers_info){
|
||||
// $customer_info = $customers_info[0];
|
||||
// }else{
|
||||
// $customer_info = $customers_info;
|
||||
// }
|
||||
// Dapatkan maklumat asas
|
||||
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])
|
||||
->get($api_url . '/api/cawangan/' . $auth_user['cawangan'])
|
||||
->json();
|
||||
|
||||
$bank = Http::withOptions(['verify' => config('app.api_verify')])
|
||||
->get($api_url . '/api/bank')
|
||||
->json();
|
||||
|
||||
$customer_info = Http::withOptions(['verify' => config('app.api_verify')])
|
||||
->get($api_url . '/api/customers/' . $noic)
|
||||
->json();
|
||||
|
||||
$pekerjaan = Http::withOptions(['verify' => config('app.api_verify')])
|
||||
->get($api_url . '/api/pekerjaan')
|
||||
->json();
|
||||
|
||||
$blacklist = Http::withOptions(['verify' => config('app.api_verify')])
|
||||
->get($api_url . '/api/customer/blacklist', ['nokp' => $noic])
|
||||
->json();
|
||||
|
||||
// Reset session lama
|
||||
$request->session()->forget('page_reload');
|
||||
$request->session()->forget('norujukan');
|
||||
|
||||
$blacklist_search = false;
|
||||
$search = true;
|
||||
if($customer_info){
|
||||
if($blacklist){
|
||||
|
||||
// SEMAK STATUS ANGGOTA DAN PELANGGAN
|
||||
$isAnggota = false;
|
||||
$isPelanggan = false;
|
||||
$isNewCustomer = false;
|
||||
$showAssignAnggotaBtn = false;
|
||||
$showDaftarPelangganBtn = false;
|
||||
|
||||
// Semak dalam sistem anggota
|
||||
$anggota_info = Http::withOptions(['verify' => config('app.api_verify')])
|
||||
->get(config('api.url') . '/api/customer/anggota', [
|
||||
'noic' => $noic
|
||||
])
|
||||
->json();
|
||||
|
||||
// Semak betul-betul jika ada rekod anggota
|
||||
if (!empty($anggota_info) && isset($anggota_info['data']) && !empty($anggota_info['data'])) {
|
||||
$isAnggota = true;
|
||||
} elseif (isset($anggota_info['noic']) && !empty($anggota_info['noic'])) {
|
||||
$isAnggota = true;
|
||||
}
|
||||
|
||||
if ($customer_info && isset($customer_info['id'])) {
|
||||
$isPelanggan = true;
|
||||
}
|
||||
|
||||
// Tentukan butang mana nak paparkan (logik diperbetulkan)
|
||||
if ($isPelanggan && !$isAnggota) {
|
||||
// Pelanggan dah berdaftar tapi bukan anggota koperasi
|
||||
$showAssignAnggotaBtn = true;
|
||||
} elseif ($isAnggota && !$isPelanggan) {
|
||||
// Anggota koperasi tapi belum berdaftar sebagai pelanggan
|
||||
$showDaftarPelangganBtn = true;
|
||||
} elseif (!$isAnggota && !$isPelanggan) {
|
||||
// Bukan anggota dan bukan pelanggan (pelanggan baru)
|
||||
$showDaftarPelangganBtn = true;
|
||||
$isNewCustomer = true;
|
||||
}
|
||||
|
||||
//Debug log untuk semak nilai sebenar
|
||||
// Log::info('DEBUG CUSTOMER STATUS', [
|
||||
// 'noic' => $noic,
|
||||
// 'isAnggota' => $isAnggota,
|
||||
// 'isPelanggan' => $isPelanggan,
|
||||
// 'isNewCustomer' => $isNewCustomer,
|
||||
// 'showAssignAnggotaBtn' => $showAssignAnggotaBtn,
|
||||
// 'showDaftarPelangganBtn' => $showDaftarPelangganBtn,
|
||||
// ]);
|
||||
|
||||
if ($customer_info) {
|
||||
// Ada maklumat pelanggan
|
||||
if ($blacklist) {
|
||||
$blacklist_search = true;
|
||||
return view('customers.' . $cawangan_info['version'] .'.index',compact('blacklist_search','customer_info','search','noic','cawangan_info','bank','api_url','idtype'));
|
||||
}else{
|
||||
Session::put('customer_info',$customer_info);
|
||||
return redirect()->route('customer_info')->with( ['customer_info' => $customer_info,'cawangan_info'=>$cawangan_info,'api_url'=>$api_url]);
|
||||
return view('customers.' . $cawangan_info['version'] . '.index', compact(
|
||||
'blacklist_search',
|
||||
'customer_info',
|
||||
'search',
|
||||
'noic',
|
||||
'cawangan_info',
|
||||
'bank',
|
||||
'api_url',
|
||||
'idtype',
|
||||
'isAnggota',
|
||||
'isPelanggan',
|
||||
'isNewCustomer',
|
||||
'showAssignAnggotaBtn',
|
||||
'showDaftarPelangganBtn',
|
||||
'auth_user'
|
||||
));
|
||||
} else {
|
||||
// Simpan dalam session & redirect ke paparan info pelanggan
|
||||
Session::put('customer_info', $customer_info);
|
||||
return redirect()->route('customer_info')->with([
|
||||
'customer_info' => $customer_info,
|
||||
'cawangan_info' => $cawangan_info,
|
||||
'api_url' => $api_url,
|
||||
'isAnggota' => $isAnggota,
|
||||
'isPelanggan' => $isPelanggan,
|
||||
'isNewCustomer' => $isNewCustomer,
|
||||
'showAssignAnggotaBtn' => $showAssignAnggotaBtn,
|
||||
'showDaftarPelangganBtn' => $showDaftarPelangganBtn,
|
||||
'auth_user' => $auth_user
|
||||
]);
|
||||
}
|
||||
}else{
|
||||
if($blacklist){
|
||||
} else {
|
||||
// Tiada customer dalam sistem
|
||||
if ($blacklist) {
|
||||
$blacklist_search = true;
|
||||
return view('customers.' . $cawangan_info['version'] . '.index',compact('blacklist_search','customer_info','search','noic','cawangan_info','bank','api_url','idtype','pekerjaan'));
|
||||
}else{
|
||||
return view('customers.' . $cawangan_info['version'] . '.index',compact('blacklist_search','customer_info','search','noic','cawangan_info','bank','api_url','idtype','pekerjaan'));
|
||||
}
|
||||
|
||||
return view('customers.' . $cawangan_info['version'] . '.index', compact(
|
||||
'blacklist_search',
|
||||
'customer_info',
|
||||
'search',
|
||||
'noic',
|
||||
'cawangan_info',
|
||||
'bank',
|
||||
'api_url',
|
||||
'idtype',
|
||||
'pekerjaan',
|
||||
'isAnggota',
|
||||
'isPelanggan',
|
||||
'isNewCustomer',
|
||||
'showAssignAnggotaBtn',
|
||||
'showDaftarPelangganBtn',
|
||||
'auth_user'
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -123,9 +281,9 @@ class CustomersController extends Controller
|
||||
public function cari(Request $request)
|
||||
{
|
||||
$api_url = config('api.url');
|
||||
$customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $request->icno)->json();
|
||||
$customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $request->icno)->json();
|
||||
|
||||
if(sizeof($customers_info) > 0)
|
||||
if (sizeof($customers_info) > 0)
|
||||
return $customers_info;
|
||||
else
|
||||
return response(["no-data"], 200);
|
||||
@@ -149,60 +307,58 @@ class CustomersController extends Controller
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
if($request->idtype == 'nokp'){
|
||||
if ($request->idtype == 'nokp') {
|
||||
$nokpbaru = $request->noic;
|
||||
$nokplama = '';
|
||||
}elseif($request->idtype == 'passport'){
|
||||
} elseif ($request->idtype == 'passport') {
|
||||
$nokpbaru = '';
|
||||
$nokplama = $request->noic;
|
||||
}
|
||||
if($request->warganegara){
|
||||
if ($request->warganegara) {
|
||||
$warganegara = 'Y';
|
||||
}else{
|
||||
} else {
|
||||
$warganegara = 'N';
|
||||
}
|
||||
if($request->bumiputera){
|
||||
if ($request->bumiputera) {
|
||||
$bumiputera = 'Y';
|
||||
}else{
|
||||
} else {
|
||||
$bumiputera = 'N';
|
||||
}
|
||||
if($request->jantina == 'Lelaki'){
|
||||
if ($request->jantina == 'Lelaki') {
|
||||
$jantina = 'L';
|
||||
}elseif($request->jantina == 'Perempuan'){
|
||||
} elseif ($request->jantina == 'Perempuan') {
|
||||
$jantina = 'P';
|
||||
}
|
||||
$split_date = explode('/',$request->tarikh_lahir);
|
||||
$split_date = explode('/', $request->tarikh_lahir);
|
||||
|
||||
$tarikh_lahir = $split_date[2].'-'.$split_date[1].'-'.$split_date[0];
|
||||
$tarikh_lahir = $split_date[2] . '-' . $split_date[1] . '-' . $split_date[0];
|
||||
$tarikhlahir = Carbon::parse($tarikh_lahir);
|
||||
$auth_user = Auth::user();
|
||||
$latest_customer = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/latest/' . $auth_user['cawangan'])->json();
|
||||
|
||||
if($latest_customer == null){
|
||||
if ($latest_customer == null) {
|
||||
$nosiri_latest = 1;
|
||||
}
|
||||
else{
|
||||
$nosiri_latest = $latest_customer['nosiri']+1;
|
||||
} else {
|
||||
$nosiri_latest = $latest_customer['nosiri'] + 1;
|
||||
}
|
||||
|
||||
$count = sprintf("%08d", $nosiri_latest);
|
||||
|
||||
$no_pelanggan = $request->bangsa . substr($request->noic,6,2).'-'.$count;
|
||||
$no_pelanggan = $request->bangsa . substr($request->noic, 6, 2) . '-' . $count;
|
||||
$detail_poskod = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/poskod/' . $request->poskod)->json();
|
||||
|
||||
if(empty($detail_poskod)){
|
||||
if (empty($detail_poskod)) {
|
||||
|
||||
$detail_poskod = Http::withOptions(['verify' => config('app.api_verify')])
|
||||
->post(config('api.url') . '/api/poskod', [
|
||||
'poskod' => $request->poskod,
|
||||
'koddaerah' => $request->koddaerah,
|
||||
'kodnegeri' => $request->kodnegeri,
|
||||
'user' => auth()->user(),
|
||||
])->json();
|
||||
|
||||
->post(config('api.url') . '/api/poskod', [
|
||||
'poskod' => $request->poskod,
|
||||
'koddaerah' => $request->koddaerah,
|
||||
'kodnegeri' => $request->kodnegeri,
|
||||
'user' => auth()->user(),
|
||||
])->json();
|
||||
}
|
||||
|
||||
$customer_info = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/customers/create/'. $auth_user['cawangan'],[
|
||||
$customer_info = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/customers/create/' . $auth_user['cawangan'], [
|
||||
'kodcaw' => $auth_user['cawangan'],
|
||||
'nopelanggan' => $no_pelanggan,
|
||||
'nokpbaru' => $nokpbaru,
|
||||
@@ -224,61 +380,117 @@ class CustomersController extends Controller
|
||||
'teller' => $auth_user['name'],
|
||||
'telefon2' => $request->alternate_phone,
|
||||
'nosiri' => $nosiri_latest,
|
||||
'nota'=>$request->nota,
|
||||
'kodkerja'=>$request->pekerjaan,
|
||||
'nota_pekerjaan'=>$request->nota_pekerjaan,
|
||||
'notaarcc'=>$request->notaarcc,
|
||||
'tujuangadai'=>$request->tujuan_gadai,
|
||||
'nota' => $request->nota,
|
||||
'kodkerja' => $request->pekerjaan,
|
||||
'nota_pekerjaan' => $request->nota_pekerjaan,
|
||||
'notaarcc' => $request->notaarcc,
|
||||
'tujuangadai' => $request->tujuan_gadai,
|
||||
]);
|
||||
|
||||
Session::put('customer_info', $customer_info);
|
||||
Session::put('noic', $request->noic);
|
||||
|
||||
event(new PelangganNotify('lulus',$auth_user['cawangan']));
|
||||
return redirect()->route('customer_info')->with( ['customer_info' => $customer_info] );
|
||||
event(new PelangganNotify('lulus', $auth_user['cawangan']));
|
||||
return redirect()->route('customer_info')->with(['customer_info' => $customer_info]);
|
||||
}
|
||||
|
||||
public function getOTP(Request $request){
|
||||
public function getOTP(Request $request)
|
||||
{
|
||||
$auth_user = Auth::user();
|
||||
$expired = Carbon::now();
|
||||
$expired = new Carbon();
|
||||
$expired = $expired->addHours(24);
|
||||
$currentDateTime = Carbon::now();
|
||||
|
||||
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json();
|
||||
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json();
|
||||
$nama_cawangan = $cawangan_info["details_caw"];
|
||||
|
||||
$nokp = $request->noic_otp;
|
||||
$customer = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/customers/'.$nokp)->json();
|
||||
$recipient = '6'.$customer['telefon'];
|
||||
$customer = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $nokp)->json();
|
||||
$recipient = '6' . $customer['telefon'];
|
||||
// $recipient = '60189025461';
|
||||
//pembinaan token
|
||||
function token($length) {
|
||||
function token($length)
|
||||
{
|
||||
$characters = array(
|
||||
"A","B","C","D","E","F","G","H","J","K","L","M",
|
||||
"N","P","Q","R","S","T","U","V","W","X","Y","Z",
|
||||
"a","b","c","d","e","f","g","h","i","j","k","m",
|
||||
"n","o","p","q","r","s","t","u","v","w","x","y","z",
|
||||
"1","2","3","4","5","6","7","8","9");
|
||||
"A",
|
||||
"B",
|
||||
"C",
|
||||
"D",
|
||||
"E",
|
||||
"F",
|
||||
"G",
|
||||
"H",
|
||||
"J",
|
||||
"K",
|
||||
"L",
|
||||
"M",
|
||||
"N",
|
||||
"P",
|
||||
"Q",
|
||||
"R",
|
||||
"S",
|
||||
"T",
|
||||
"U",
|
||||
"V",
|
||||
"W",
|
||||
"X",
|
||||
"Y",
|
||||
"Z",
|
||||
"a",
|
||||
"b",
|
||||
"c",
|
||||
"d",
|
||||
"e",
|
||||
"f",
|
||||
"g",
|
||||
"h",
|
||||
"i",
|
||||
"j",
|
||||
"k",
|
||||
"m",
|
||||
"n",
|
||||
"o",
|
||||
"p",
|
||||
"q",
|
||||
"r",
|
||||
"s",
|
||||
"t",
|
||||
"u",
|
||||
"v",
|
||||
"w",
|
||||
"x",
|
||||
"y",
|
||||
"z",
|
||||
"1",
|
||||
"2",
|
||||
"3",
|
||||
"4",
|
||||
"5",
|
||||
"6",
|
||||
"7",
|
||||
"8",
|
||||
"9"
|
||||
);
|
||||
if ($length < 0 || $length > count($characters)) return null;
|
||||
shuffle($characters);
|
||||
return implode("", array_slice($characters, 0, $length));
|
||||
}
|
||||
|
||||
$otp_token = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/otp/' . $nokp) ->json();
|
||||
$otp_token_used = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/otp/used/' . $nokp) ->json();
|
||||
$otp_token = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/otp/' . $nokp)->json();
|
||||
$otp_token_used = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/otp/used/' . $nokp)->json();
|
||||
|
||||
if (is_array($otp_token) || is_object($otp_token)){
|
||||
if($otp_token){
|
||||
if (is_array($otp_token) || is_object($otp_token)) {
|
||||
if ($otp_token) {
|
||||
return response(['error' => "OTP Akaun Telah Di Jana"]);
|
||||
}else{
|
||||
if (is_array($otp_token_used) || is_object($otp_token_used)){
|
||||
if($otp_token_used){
|
||||
} else {
|
||||
if (is_array($otp_token_used) || is_object($otp_token_used)) {
|
||||
if ($otp_token_used) {
|
||||
return response(['error' => "Pelanggan Sudah Mendaftar Pada Customer Portal"]);
|
||||
}else{
|
||||
} else {
|
||||
$random = token(6);
|
||||
|
||||
$otp_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url'). '/api/otp/generateotp/' . $nokp,[
|
||||
$otp_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/otp/generateotp/' . $nokp, [
|
||||
'otptoken' => $random,
|
||||
'expired' => $expired,
|
||||
'kodcaw' => $auth_user['cawangan']
|
||||
@@ -286,12 +498,12 @@ class CustomersController extends Controller
|
||||
// $message = "Your OTP code is " . $random;
|
||||
$message = 'AR-RAHN PKB ' . $nama_cawangan . ' : OTP: ' . $random . ' ' . $currentDateTime . '. AR-RAHN CARELINE CENTRE 1300-22-4343';
|
||||
$this->sendWhatsAppMessage($message, $recipient);
|
||||
return response()->json(['otp'=>$random]);
|
||||
return response()->json(['otp' => $random]);
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
$random = token(6);
|
||||
|
||||
$otp_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url'). '/api/otp/generateotp/' . $nokp,[
|
||||
$otp_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/otp/generateotp/' . $nokp, [
|
||||
'otptoken' => $random,
|
||||
'expired' => $expired,
|
||||
'kodcaw' => $auth_user['cawangan']
|
||||
@@ -299,17 +511,17 @@ class CustomersController extends Controller
|
||||
// $message = "Your OTP code is " . $random;
|
||||
$message = 'AR-RAHN PKB ' . $nama_cawangan . ' : OTP: ' . $random . ' ' . $currentDateTime . '. AR-RAHN CARELINE CENTRE 1300-22-4343';
|
||||
$this->sendWhatsAppMessage($message, $recipient);
|
||||
return response()->json(['otp'=>$random]);
|
||||
return response()->json(['otp' => $random]);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
if (is_array($otp_token_used) || is_object($otp_token_used)){
|
||||
if($otp_token_used){
|
||||
} else {
|
||||
if (is_array($otp_token_used) || is_object($otp_token_used)) {
|
||||
if ($otp_token_used) {
|
||||
return response(['error' => "Pelanggan Sudah Mendaftar Pada Customer Portal"]);
|
||||
}else{
|
||||
} else {
|
||||
$random = token(6);
|
||||
|
||||
$otp_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url'). '/api/otp/generateotp/' . $nokp,[
|
||||
$otp_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/otp/generateotp/' . $nokp, [
|
||||
'otptoken' => $random,
|
||||
'expired' => $expired,
|
||||
'kodcaw' => $auth_user['cawangan']
|
||||
@@ -317,12 +529,12 @@ class CustomersController extends Controller
|
||||
// $message = "Your OTP code is " . $random;
|
||||
$message = 'AR-RAHN PKB ' . $nama_cawangan . ' : OTP: ' . $random . ' ' . $currentDateTime . '. AR-RAHN CARELINE CENTRE 1300-22-4343';
|
||||
$this->sendWhatsAppMessage($message, $recipient);
|
||||
return response()->json(['otp'=>$random]);
|
||||
return response()->json(['otp' => $random]);
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
$random = token(6);
|
||||
|
||||
$otp_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url'). '/api/otp/generateotp/' . $nokp,[
|
||||
$otp_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/otp/generateotp/' . $nokp, [
|
||||
'otptoken' => $random,
|
||||
'expired' => $expired,
|
||||
'kodcaw' => $auth_user['cawangan']
|
||||
@@ -330,23 +542,36 @@ class CustomersController extends Controller
|
||||
// $message = "Your OTP code is " . $random;
|
||||
$message = 'AR-RAHN PKB ' . $nama_cawangan . ' : OTP: ' . $random . ' ' . $currentDateTime . '. AR-RAHN CARELINE CENTRE 1300-22-4343';
|
||||
$this->sendWhatsAppMessage($message, $recipient);
|
||||
return response()->json(['otp'=>$random]);
|
||||
return response()->json(['otp' => $random]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function sendWhatsAppMessage(string $message, string $recipient)
|
||||
{
|
||||
$status = Http::withOptions(['verify' => config('app.api_verify')])->get('http://gateway.onewaysms.com.my:10001/api.aspx',[
|
||||
$status = Http::withOptions(['verify' => config('app.api_verify')])->get('http://gateway.onewaysms.com.my:10001/api.aspx', [
|
||||
'apiusername' => 'APIUK330HDAFO',
|
||||
'apipassword' => 'APIUK330HDAFOUK330',
|
||||
'senderid' => 'INFO',
|
||||
'mobileno' => $recipient,
|
||||
'message'=> $message,
|
||||
'languagetype'=> 1
|
||||
'message' => $message,
|
||||
'languagetype' => 1
|
||||
]);
|
||||
|
||||
return ($status);
|
||||
}
|
||||
|
||||
public function assignAnggota(Request $request)
|
||||
{
|
||||
$noic = $request->noic;
|
||||
|
||||
$response = Http::withOptions(['verify' => config('app.api_verify')])
|
||||
->put(config('api.url') . '/api/customers/' . $noic . '/assign-anggota');
|
||||
|
||||
if ($response->successful()) {
|
||||
return redirect()->back()->with('success', 'Pelanggan berjaya ditandakan sebagai anggota koperasi.');
|
||||
} else {
|
||||
return redirect()->back()->with('error', 'Gagal mengemaskini status anggota. Sila cuba semula.');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2459,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();
|
||||
$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();
|
||||
$rebetpromo = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/RebetPromoCalculation/' . $auth_user['cawangan'],['tarikh' => $tarikh_imbangan2])->json();
|
||||
|
||||
//Tanggungan Semasa
|
||||
$panjar = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/CalculationPanjar/' . $auth_user['cawangan'],['tarikh' => $tarikh_imbangan2])->json();
|
||||
@@ -2469,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();
|
||||
$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();
|
||||
$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
|
||||
@@ -2520,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($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($rebetpromo > 0) array_push($hartasemasa,['glcode' => '5000/242','descpt' => 'Diskaun Promosi', 'amaun' => ($rebetpromo * -1)]);
|
||||
|
||||
|
||||
$totalhartasemasa = 0;
|
||||
foreach($hartasemasa as $index => $hs)
|
||||
@@ -2551,6 +2556,8 @@ class KhazanahController extends Controller
|
||||
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($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;
|
||||
foreach($tanggungansemasa as $index => $ts)
|
||||
@@ -2856,7 +2863,7 @@ class KhazanahController extends Controller
|
||||
event(new NotifikasiAGH($auth_user['cawangan'],'Tak boleh generate dah kerana sudah digenerate dah.','error',$auth_user['name']));
|
||||
$daftar = 400;
|
||||
}else{
|
||||
$daftarpolis = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/api/polis/create/',[
|
||||
$daftarpolis = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/api/polis/create',[
|
||||
|
||||
'kodcaw' =>$auth_user['cawangan'],
|
||||
'norujukan' => $request->norujukanhidden,
|
||||
@@ -3933,9 +3940,9 @@ class KhazanahController extends Controller
|
||||
$totalhartasemasa = $array_ig->sum_harta;
|
||||
$totaltanggungansemasa = $array_ig->sum_tanggungan;
|
||||
|
||||
if($this->floatvalue(number_format($totalhartasemasa,2)) != $this->floatvalue(number_format($totaltanggungansemasa,2))){
|
||||
return redirect()->route('laporan.imbangdugaakru')->with('error','Imbangduga tidak sama. Sila berhubung dengan pihak IT');
|
||||
}
|
||||
// if($this->floatvalue(number_format($totalhartasemasa,2)) != $this->floatvalue(number_format($totaltanggungansemasa,2))){
|
||||
// return redirect()->route('laporan.imbangdugaakru')->with('error','Imbangduga tidak sama. Sila berhubung dengan pihak IT');
|
||||
// }
|
||||
|
||||
return view('print.laporan_imbangduga-akru',compact('tarikh_imbangan', 'tarikh_imbangan2','hartasemasa','tanggungansemasa','totalhartasemasa','totaltanggungansemasa','tarikh_cetak','cawangan_info','cawangan','api_url','cawangan_detail'));
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ namespace App\Http\Controllers;
|
||||
use App\Events\OperasiNotice;
|
||||
use App\Events\StatusLiked;
|
||||
use App\Events\NotifikasiKelulusan;
|
||||
use App\Events\NotifikasiAnggota;
|
||||
use App\Events\Dashboard\KomoditiNotify;
|
||||
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
@@ -25,31 +26,29 @@ class OperasiController extends Controller
|
||||
$this->middleware('auth');
|
||||
}
|
||||
|
||||
public function kelulusan(Request $request){
|
||||
public function kelulusan(Request $request)
|
||||
{
|
||||
$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();
|
||||
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json();
|
||||
|
||||
$kelulusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/ListOperasi/')->json();
|
||||
|
||||
$arraykelulusan = [];
|
||||
|
||||
|
||||
foreach($kelulusan as $index=>$lulus)
|
||||
{
|
||||
foreach($lulus['kelulusanall'] as $index=>$kel)
|
||||
{
|
||||
array_push($arraykelulusan,["cawangan" => $lulus['cawangan'], "cawangankod" => $lulus['cawangankod'],"namateller" => $kel['teller'], 'siri' => $kel['siri'] , "norujukan" => $kel['norujukan'], 'pinjaman' => $kel['jumpinj'],'komen' => $kel['komen'], 'nilaimarhun' => ($kel['nilaimarhun'] ?? '-'), 'berat' => ($kel['berat'] ?? '-'),'margin' => ($kel['margin'] ?? '-'), 'status' => ($kel['status'] ?? '-'), 'pelulus' => $kel['pelulus']]);
|
||||
foreach ($kelulusan as $index => $lulus) {
|
||||
foreach ($lulus['kelulusanall'] as $index => $kel) {
|
||||
array_push($arraykelulusan, ["cawangan" => $lulus['cawangan'], "cawangankod" => $lulus['cawangankod'], "namateller" => $kel['teller'], 'siri' => $kel['siri'], "norujukan" => $kel['norujukan'], 'pinjaman' => $kel['jumpinj'], 'komen' => $kel['komen'], 'nilaimarhun' => ($kel['nilaimarhun'] ?? '-'), 'berat' => ($kel['berat'] ?? '-'), 'margin' => ($kel['margin'] ?? '-'), 'status' => ($kel['status'] ?? '-'), 'pelulus' => $kel['pelulus']]);
|
||||
}
|
||||
|
||||
foreach($lulus['kelulusanMohonid'] as $index=>$mohon)
|
||||
{
|
||||
array_push($arraykelulusan,["mohonid" => true,"ansuran" => $mohon['ansuran'],"cawangan" => $lulus['cawangan'], "cawangankod" => $lulus['cawangankod'],"namateller" => $mohon['teller'], 'recno' => $mohon['recno'] , "norujukan" => $mohon['norujukan'], 'pinjaman' => $mohon['pinjaman'],'komen' => $mohon['katalaluan'], 'nilaimarhun' => ($mohon['nilaimarhun'] ?? '-'), 'berat' => ($mohon['berat'] ?? '-'),'margin' => ($mohon['margin'] ?? '-'), 'status' => ($mohon['mohon'] ?? '-')]);
|
||||
foreach ($lulus['kelulusanMohonid'] as $index => $mohon) {
|
||||
array_push($arraykelulusan, ["mohonid" => true, "ansuran" => $mohon['ansuran'], "cawangan" => $lulus['cawangan'], "cawangankod" => $lulus['cawangankod'], "namateller" => $mohon['teller'], 'recno' => $mohon['recno'], "norujukan" => $mohon['norujukan'], 'pinjaman' => $mohon['pinjaman'], 'komen' => $mohon['katalaluan'], 'nilaimarhun' => ($mohon['nilaimarhun'] ?? '-'), 'berat' => ($mohon['berat'] ?? '-'), 'margin' => ($mohon['margin'] ?? '-'), 'status' => ($mohon['mohon'] ?? '-')]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return view('operasi.kelulusan',compact('cawangan_info','api_url','arraykelulusan'));
|
||||
return view('operasi.kelulusan', compact('cawangan_info', 'api_url', 'arraykelulusan'));
|
||||
}
|
||||
|
||||
public function getkelulusan(Request $request)
|
||||
@@ -59,16 +58,13 @@ class OperasiController extends Controller
|
||||
|
||||
$norujukan = $request->norujukan;
|
||||
|
||||
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json();
|
||||
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json();
|
||||
|
||||
$kelulusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/SenaraiDahLulus/' . $auth_user['cawangan'] . '/' . $norujukan)->json();
|
||||
|
||||
if(sizeof($kelulusan) > 0)
|
||||
{
|
||||
if (sizeof($kelulusan) > 0) {
|
||||
$kelulusan = $kelulusan[0]['masalulus'];
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
$kelulusan = '';
|
||||
}
|
||||
|
||||
@@ -84,21 +80,20 @@ class OperasiController extends Controller
|
||||
$norujukan = $request->norujukan;
|
||||
|
||||
|
||||
if($request->pembatalan == null)
|
||||
{
|
||||
if(!$request->taglulus){
|
||||
$updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusanKomen/' . $request->kodcaw . '/' . $norujukan,[
|
||||
if ($request->pembatalan == null) {
|
||||
if (!$request->taglulus) {
|
||||
$updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusanKomen/' . $request->kodcaw . '/' . $norujukan, [
|
||||
"komen" => $request->komenkelulusan,
|
||||
'siri' => $request->siri
|
||||
])->json();
|
||||
|
||||
$updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/' . $request->kodcaw . '/' . $norujukan,[
|
||||
$updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/' . $request->kodcaw . '/' . $norujukan, [
|
||||
'sahkan' => 1,
|
||||
'namaoperasi' => $request->namaoperasi,
|
||||
'siri' => $request->siri
|
||||
])->json();
|
||||
}else{
|
||||
$updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateHapusAnsuran',[
|
||||
} else {
|
||||
$updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateHapusAnsuran', [
|
||||
'siri' => $request->siri,
|
||||
"kodcaw" => $request->kodcaw,
|
||||
"norujukan" => $request->norujukan,
|
||||
@@ -108,26 +103,23 @@ class OperasiController extends Controller
|
||||
}
|
||||
|
||||
|
||||
if($updatelulus)
|
||||
{
|
||||
event(new NotifikasiKelulusan($norujukan,"lulus",$request->siri,$request->komenkelulusan,$request->teller));
|
||||
if ($updatelulus) {
|
||||
event(new NotifikasiKelulusan($norujukan, "lulus", $request->siri, $request->komenkelulusan, $request->teller));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!$request->taglulus){
|
||||
$updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusanKomen/' . $request->kodcaw . '/' . $norujukan,[
|
||||
} else {
|
||||
if (!$request->taglulus) {
|
||||
$updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusanKomen/' . $request->kodcaw . '/' . $norujukan, [
|
||||
"komen" => $request->komenkelulusan,
|
||||
'siri' => $request->siri
|
||||
])->json();
|
||||
|
||||
$updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/' . $request->kodcaw . '/' . $norujukan,[
|
||||
$updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/' . $request->kodcaw . '/' . $norujukan, [
|
||||
'sahkan' => 2,
|
||||
'namaoperasi' => $request->namaoperasi,
|
||||
'siri' => $request->siri
|
||||
])->json();
|
||||
}else{
|
||||
$updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateHapusAnsuran',[
|
||||
} else {
|
||||
$updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateHapusAnsuran', [
|
||||
'siri' => $request->siri,
|
||||
"kodcaw" => $request->kodcaw,
|
||||
"norujukan" => $request->norujukan,
|
||||
@@ -136,18 +128,100 @@ class OperasiController extends Controller
|
||||
])->json();
|
||||
}
|
||||
|
||||
if($updatelulus)
|
||||
{
|
||||
event(new NotifikasiKelulusan($norujukan,"batal",$request->siri,$request->komenkelulusan,$request->teller));
|
||||
if ($updatelulus) {
|
||||
event(new NotifikasiKelulusan($norujukan, "batal", $request->siri, $request->komenkelulusan, $request->teller));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return response()->json($updatelulus,200);
|
||||
return response()->json($updatelulus, 200);
|
||||
}
|
||||
|
||||
public function updatekelulusananggota(Request $request)
|
||||
{
|
||||
$auth_user = Auth::user();
|
||||
$api_url = config('api.url');
|
||||
|
||||
// Data asas
|
||||
$nokp = $request->nokp;
|
||||
$kodcaw = $request->kodcaw;
|
||||
$komen = $request->komenkelulusan;
|
||||
$namaoperasi = $request->namaoperasi;
|
||||
$taglulus = $request->taglulus; // contoh: 'Y' = lulus, 'N' = batal
|
||||
|
||||
// 1️⃣ Tentukan status kelulusan
|
||||
$status = ($taglulus == 'Y') ? 1 : 2; // 1 = Lulus, 2 = Batal/Tolak
|
||||
|
||||
try {
|
||||
// 2️⃣ Panggil API baru — ikut route baru dengan {kodcaw}
|
||||
$endpoint = $api_url . '/api/UpdateKelulusanAnggota/' . $kodcaw;
|
||||
|
||||
$payload = [
|
||||
'nokp' => $nokp,
|
||||
'komenkelulusan' => $komen,
|
||||
'namaoperasi' => $namaoperasi,
|
||||
'sahkan' => $status
|
||||
];
|
||||
|
||||
Log::info('Menghantar permintaan ke API UpdateKelulusanAnggota', [
|
||||
'endpoint' => $endpoint,
|
||||
'payload' => $payload
|
||||
]);
|
||||
|
||||
$response = Http::withOptions(['verify' => config('app.api_verify')])
|
||||
->put($endpoint, $payload);
|
||||
|
||||
$updatelulus = $response->json();
|
||||
|
||||
// 3️⃣ Log hasil respon API
|
||||
Log::info('Respon dari API UpdateKelulusanAnggota', [
|
||||
'status' => $response->status(),
|
||||
'body' => $updatelulus
|
||||
]);
|
||||
|
||||
// 4️⃣ Jika berjaya, cipta event notifikasi
|
||||
if ($response->successful() && $updatelulus && isset($updatelulus['success']) && $updatelulus['success'] === true) {
|
||||
// $jenis = ($status == 1) ? 'lulus' : 'batal';
|
||||
// event(new NotifikasiAnggota($nokp, $jenis, null, $komen, $namaoperasi));
|
||||
|
||||
$statusText = ($status == 1) ? 'DILULUSKAN' : 'DITOLAK';
|
||||
event(new NotifikasiAnggota($nokp, $statusText, $komen, $namaoperasi));
|
||||
|
||||
|
||||
Log::info('Event NotifikasiAnggota dispatched', [
|
||||
'nokp' => $nokp,
|
||||
'komen' => $komen,
|
||||
'namaoperasi' => $namaoperasi
|
||||
]);
|
||||
} else {
|
||||
Log::warning('Gagal kemas kini kelulusan anggota', [
|
||||
'nokp' => $nokp,
|
||||
'kodcaw' => $kodcaw,
|
||||
'response' => $updatelulus
|
||||
]);
|
||||
}
|
||||
|
||||
return response()->json($updatelulus, $response->status());
|
||||
} catch (\Exception $e) {
|
||||
Log::error('Ralat UpdateKelulusanAnggota (frontend)', [
|
||||
'message' => $e->getMessage(),
|
||||
'line' => $e->getLine()
|
||||
]);
|
||||
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'Ralat semasa menghantar kelulusan anggota.',
|
||||
'error' => $e->getMessage()
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public function createkelulusan(Request $request)
|
||||
{
|
||||
$auth_user = Auth::user();
|
||||
@@ -158,14 +232,13 @@ class OperasiController extends Controller
|
||||
|
||||
$norujukan = $request->norujukan;
|
||||
|
||||
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json();
|
||||
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json();
|
||||
|
||||
$getsiri = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/ListLatestLulus/'. $auth_user['cawangan'] . '/' . $norujukan)->json();
|
||||
$getsiri = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/ListLatestLulus/' . $auth_user['cawangan'] . '/' . $norujukan)->json();
|
||||
|
||||
if(isset($getsiri['siri']))
|
||||
{
|
||||
if (isset($getsiri['siri'])) {
|
||||
$siri = $getsiri['siri'] + 1;
|
||||
}else{
|
||||
} else {
|
||||
$siri = 1;
|
||||
}
|
||||
|
||||
@@ -185,57 +258,110 @@ class OperasiController extends Controller
|
||||
|
||||
])->json();
|
||||
|
||||
event(new StatusLiked($auth_user['cawangan'],$auth_user['name']));
|
||||
event(new StatusLiked($auth_user['cawangan'], $auth_user['name']));
|
||||
|
||||
return response()->json($siri,201);
|
||||
return response()->json($siri, 201);
|
||||
}
|
||||
|
||||
|
||||
public function createkelulusanAnggota(Request $request)
|
||||
{
|
||||
try {
|
||||
$auth_user = Auth::user();
|
||||
$api_url = config('api.url');
|
||||
$current = Carbon::now();
|
||||
|
||||
Log::info('createkelulusanAnggota', $request->all());
|
||||
|
||||
// Dapatkan maklumat cawangan
|
||||
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])
|
||||
->get($api_url . '/api/cawangan/' . $auth_user['cawangan'])
|
||||
->json();
|
||||
|
||||
// Generate siri baru
|
||||
$getsiri = Http::withOptions(['verify' => config('app.api_verify')])
|
||||
->get($api_url . '/api/ListLatestLulus/' . $auth_user['cawangan'] . '/anggota')
|
||||
->json();
|
||||
|
||||
$siri = isset($getsiri['siri']) ? $getsiri['siri'] + 1 : 1;
|
||||
|
||||
// Hantar ke API
|
||||
$createlulus = Http::withOptions(['verify' => config('app.api_verify')])
|
||||
->post($api_url . '/api/CreateKelulusanAnggota/' . $auth_user['cawangan'] . '/roles/operasi', [
|
||||
'komen' => $request->komen,
|
||||
'date_mohon' => $current->toDateString(),
|
||||
'siri' => $siri,
|
||||
'nokp' => $request->nokp,
|
||||
'teller' => $request->teller,
|
||||
'peloperasi' => 'operasi'
|
||||
])
|
||||
->json();
|
||||
|
||||
event(new StatusLiked($auth_user['cawangan'], $auth_user['name']));
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => 'Permohonan kelulusan anggota berjaya dihantar.',
|
||||
'siri' => $siri,
|
||||
'data' => $createlulus,
|
||||
], 201);
|
||||
|
||||
Log::info('🛰️ API CreateKelulusanAnggota Response:', [
|
||||
'status' => $response->status(),
|
||||
'body' => $response->body(),
|
||||
]);
|
||||
} catch (\Throwable $th) {
|
||||
Log::error('❌ createkelulusanAnggota error: ' . $th->getMessage());
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => $th->getMessage(),
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
|
||||
public function mintakatalaluansemula(Request $request)
|
||||
{
|
||||
|
||||
if(Hash::check($request->passsemula, Auth::user()->password))
|
||||
{
|
||||
if (Hash::check($request->passsemula, Auth::user()->password)) {
|
||||
return "True";
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
return "False";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function parameter()
|
||||
{
|
||||
$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();
|
||||
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json();
|
||||
|
||||
return view('operasi.parameter',compact('cawangan_info','api_url'));
|
||||
return view('operasi.parameter', compact('cawangan_info', 'api_url'));
|
||||
}
|
||||
|
||||
public function hargaemas()
|
||||
{
|
||||
$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();
|
||||
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json();
|
||||
$harga_emas = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/harga_emas/')->json();
|
||||
|
||||
return view('operasi.hargaemas',compact('cawangan_info','api_url','harga_emas'));
|
||||
return view('operasi.hargaemas', compact('cawangan_info', 'api_url', 'harga_emas'));
|
||||
}
|
||||
|
||||
public function margin(){
|
||||
public function margin()
|
||||
{
|
||||
$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();
|
||||
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json();
|
||||
$margin_pembiayaan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/maxpinjaman')->json();
|
||||
return view('operasi.margin_pembiayaan',compact('cawangan_info','api_url','margin_pembiayaan'));
|
||||
return view('operasi.margin_pembiayaan', compact('cawangan_info', 'api_url', 'margin_pembiayaan'));
|
||||
}
|
||||
|
||||
public function kelulusanrekodlepas()
|
||||
{
|
||||
$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();
|
||||
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json();
|
||||
|
||||
//declare array baru
|
||||
$arraykelulusan = [];
|
||||
@@ -243,29 +369,36 @@ class OperasiController extends Controller
|
||||
$kelulusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/ListOperasiKelulusan/')->json();
|
||||
|
||||
|
||||
foreach($kelulusan as $index=>$k)
|
||||
{
|
||||
foreach($k['kelulusanall'] as $index1=>$kel)
|
||||
{
|
||||
$komen = explode("|",$kel['komen']);
|
||||
foreach ($kelulusan as $index => $k) {
|
||||
foreach ($k['kelulusanall'] as $index1 => $kel) {
|
||||
$komen = explode("|", $kel['komen']);
|
||||
|
||||
$results=array_search("",$komen,true);
|
||||
if($results !== false) {
|
||||
$results = array_search("", $komen, true);
|
||||
if ($results !== false) {
|
||||
unset($komen[$results]);
|
||||
}
|
||||
|
||||
array_push($arraykelulusan,['norujukan' => $kel['norujukan'], 'pinjaman' => $kel['jumpinj'], 'nilaimarhun' => ($komen[1] ?? $kel['nilaimarhun'] ?? '-'), 'berat' => ($komen[2] ?? $kel['berat'] ?? '-'),'margin' => ($komen[3] ?? $kel['margin'] ?? '-'), 'komen' => ($komen[0] ?? $kel['komen'] ?? '-'), 'status' => ($kel['status'] ?? '-'), 'pelulus' => $kel['operasi'],]);
|
||||
|
||||
array_push($arraykelulusan, ['norujukan' => $kel['norujukan'], 'pinjaman' => $kel['jumpinj'], 'nilaimarhun' => ($komen[1] ?? $kel['nilaimarhun'] ?? '-'), 'berat' => ($komen[2] ?? $kel['berat'] ?? '-'), 'margin' => ($komen[3] ?? $kel['margin'] ?? '-'), 'komen' => ($komen[0] ?? $kel['komen'] ?? '-'), 'status' => ($kel['status'] ?? '-'), 'pelulus' => $kel['operasi'],]);
|
||||
}
|
||||
}
|
||||
|
||||
return view('operasi.rekodtelahlulus',compact('cawangan_info','api_url','arraykelulusan'));
|
||||
|
||||
return view('operasi.rekodtelahlulus', compact('cawangan_info', 'api_url', 'arraykelulusan'));
|
||||
}
|
||||
|
||||
public function notifyKomoditi()
|
||||
{
|
||||
$auth_user = Auth::user();
|
||||
event(new KomoditiNotify('lulus',$auth_user['cawangan']));
|
||||
event(new KomoditiNotify('lulus', $auth_user['cawangan']));
|
||||
}
|
||||
|
||||
public function kelulusananggota(Request $request)
|
||||
{
|
||||
$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();
|
||||
|
||||
$arraykelulusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/list/approval/anggota')->json();
|
||||
|
||||
return view('operasi.kelulusan_anggota', compact('cawangan_info', 'api_url', 'arraykelulusan'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -278,167 +278,6 @@ class PenebusanController extends Controller
|
||||
$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////
|
||||
///////////////////////
|
||||
@@ -509,16 +348,252 @@ class PenebusanController extends Controller
|
||||
'totalbayaran' => $request->totalbayaran,
|
||||
"duitpelanggan" => $request->bayaran,
|
||||
"bakipelanggan" => $request->bakipelanggan,
|
||||
"noic" => $request->noic,
|
||||
"jenisAT" => $request->jenisAT,
|
||||
])->json();
|
||||
if($updatetebus['result'] == 'success'){
|
||||
$alirantunai = new AliranTunaiController();
|
||||
event(new TebusNotify('lulus',Auth::user()->cawangan));
|
||||
event(new GadaiNotify('lulus',Auth::user()->cawangan));
|
||||
$alirantunai->alirantunaiTebusAutoTawarruq($request);
|
||||
|
||||
if($updatetebus == 'duplicate'){
|
||||
return response()->json('duplicate');
|
||||
}
|
||||
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)
|
||||
@@ -618,7 +693,7 @@ class PenebusanController extends Controller
|
||||
'tag_permata' => $array1['tag_permata'],
|
||||
'berat_batu_permata' => $array1['berat_batu_permata'],
|
||||
'nilai_marhun' => $array1['n_marhun'],
|
||||
'kuantiti' => $array1['bil']
|
||||
'kuantiti' => $array1['bil']
|
||||
])->json();
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace App\Imports;
|
||||
|
||||
use App\Anggota;
|
||||
use Maatwebsite\Excel\Concerns\ToModel;
|
||||
|
||||
class AnggotaImport implements ToModel
|
||||
{
|
||||
/**
|
||||
* @param array $row
|
||||
*
|
||||
* @return \Illuminate\Database\Eloquent\Model|null
|
||||
*/
|
||||
public function model(array $row)
|
||||
{
|
||||
return new Anggota([
|
||||
//
|
||||
'noic' => $row['noic'],
|
||||
'nama' => $row['nama'],
|
||||
'status' => $row['status'] ?? 'aktif',
|
||||
]);
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
return [
|
||||
'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'),
|
||||
];
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 43 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 34 KiB |
@@ -71,12 +71,27 @@
|
||||
</form>
|
||||
</div>
|
||||
@if($search == true && $blacklist_search == false)
|
||||
<div class="text-center mt-3">
|
||||
<button type="button" style="margin:auto" class="btn btn-primary" onclick="newcustomer()">
|
||||
Daftar Pelanggan
|
||||
</button>
|
||||
</div>
|
||||
@endif
|
||||
<div class="text-center mt-3">
|
||||
|
||||
{{-- ✅ Jika anggota tapi belum daftar pelanggan --}}
|
||||
@if(isset($showDaftarPelangganBtn) && $showDaftarPelangganBtn)
|
||||
<button type="button" style="margin:auto" class="btn btn-success" onclick="newcustomer()">
|
||||
Daftar Pelanggan
|
||||
</button>
|
||||
@endif
|
||||
|
||||
{{-- ✅ Jika pelanggan dah ada tapi belum anggota --}}
|
||||
@if(isset($showAssignAnggotaBtn) && $showAssignAnggotaBtn)
|
||||
<form action="{{ route('customers.assignAnggota') }}" method="POST" style="display:inline-block;">
|
||||
@csrf
|
||||
<input type="hidden" name="noic" value="{{ $noic }}">
|
||||
<button type="submit" class="btn btn-primary">Assign sebagai Anggota</button>
|
||||
</form>
|
||||
@endif
|
||||
|
||||
</div>
|
||||
@endif
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- Modal No KP -->
|
||||
@@ -478,42 +493,73 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var api_url = "<?php echo $api_url ?>";
|
||||
var search = "<?php echo $search ?>";
|
||||
var type_id = "<?php echo $idtype ?>";
|
||||
var blacklist_search = "<?php echo $blacklist_search ?>";
|
||||
var api_url = @json($api_url ?? '');
|
||||
var search = @json($search ?? false);
|
||||
var type_id = @json($idtype ?? '');
|
||||
var isAnggota = @json($isAnggota ?? false);
|
||||
var isPelanggan = @json($isPelanggan ?? false);
|
||||
var blacklist_search = @json($blacklist_search ?? false);
|
||||
var showAssignAnggotaBtn = @json($showAssignAnggotaBtn ?? false);
|
||||
var showDaftarPelangganBtn = @json($showDaftarPelangganBtn ?? false);
|
||||
|
||||
$(document).ready(function(){
|
||||
// Datepicker
|
||||
$('#passport_tarikh_lahir').datepicker({
|
||||
format: 'dd/mm/yyyy',
|
||||
endDate: new Date()
|
||||
});
|
||||
|
||||
var noic = $('#noic').val();
|
||||
identifyIC(noic);
|
||||
|
||||
if(search == true){
|
||||
if(blacklist_search == true){
|
||||
Swal.fire({
|
||||
icon: 'warning',
|
||||
title: 'Amaran!',
|
||||
text: 'Pelanggan telah disenarai hitamkan dari Pembiayaan'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}else{
|
||||
Swal.fire({
|
||||
icon: 'info',
|
||||
title: 'Pelanggan Tiada Dalam Rekod!',
|
||||
text: 'Sila Daftar Pelanggan'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
|
||||
if (typeof identifyIC === 'function') {
|
||||
identifyIC(noic);
|
||||
}
|
||||
|
||||
// Debug: Papar semua nilai dalam console
|
||||
console.log({
|
||||
search,
|
||||
blacklist_search,
|
||||
showAssignAnggotaBtn,
|
||||
showDaftarPelangganBtn
|
||||
});
|
||||
|
||||
// Logik amaran SweetAlert
|
||||
if (search === true) {
|
||||
if (blacklist_search === true) {
|
||||
Swal.fire({
|
||||
icon: 'warning',
|
||||
title: 'Amaran!',
|
||||
text: 'Pelanggan telah disenarai hitamkan dari Pembiayaan.'
|
||||
});
|
||||
}
|
||||
else if (isAnggota && !isPelanggan) {
|
||||
Swal.fire({
|
||||
icon: 'info',
|
||||
title: 'Anggota Belum Didaftarkan!',
|
||||
text: 'Pelanggan ini adalah anggota koperasi tetapi belum berdaftar sebagai pelanggan.'
|
||||
});
|
||||
}
|
||||
else if (isPelanggan && !isAnggota) {
|
||||
Swal.fire({
|
||||
icon: 'info',
|
||||
title: 'Pelanggan Bukan Anggota!',
|
||||
text: 'Pelanggan ini berdaftar tetapi belum menjadi anggota koperasi.'
|
||||
});
|
||||
}
|
||||
else if (!isAnggota && !isPelanggan) {
|
||||
Swal.fire({
|
||||
icon: 'info',
|
||||
title: 'Pelanggan Tiada Dalam Rekod!',
|
||||
text: 'Sila Daftar Pelanggan.'
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
function calculatePassportAge(){
|
||||
var passport_lahir = $('#passport_tarikh_lahir').val();
|
||||
var split_date = passport_lahir.split('/');
|
||||
|
||||
+3021
-2551
File diff suppressed because it is too large
Load Diff
@@ -876,7 +876,7 @@
|
||||
'harga' : harga_edit,
|
||||
'n_marhun' : nilai_marhun_edit,
|
||||
'marhun' : marhun_edit,
|
||||
// 'nota' : nota,
|
||||
'nota' : nota,
|
||||
'tag_permata' : tagpermata_edit,
|
||||
'berat_batu_permata' : beratpermata_edit,
|
||||
"teller": "{{ Auth::user()->name }}",
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
<div class="form-group row col-12">
|
||||
<input type="hidden" name="kodcaw" id="kodcaw" value="{{$cawangan_info['kodcaw']}}">
|
||||
<input type="hidden" name="nokp" id="nokp" value="{{ $customer_info['kpbaru'] }}">
|
||||
<input type="hidden" name="tag_anggota" id="tag_anggota" value="{{ $customer_info['tag_anggota'] ?? 0 }}">
|
||||
|
||||
</div>
|
||||
<div class="col-12 mb-2">
|
||||
@@ -180,6 +181,17 @@
|
||||
</div>
|
||||
</diV>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-group row">
|
||||
<div class="col-md-6">
|
||||
Kadar Rebet
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<input type="text" class="form-control" readonly name="rebate" id="rebate">
|
||||
<input type="text" class="form-control" readonly name="kadar_rebate" id="kadar_rebate">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<input type="text" name="norujukan_gadai" id="norujukan_gadai" value="{{ $norujukan }}" hidden>
|
||||
<input type="text" name="marhun_detail" id="marhun_detail" value="" hidden>
|
||||
@@ -187,6 +199,7 @@
|
||||
<input type="text" name="kadarkeuntungan" id="kadarkeuntungan" value="" hidden>
|
||||
<input type="text" name="kuantiti_marhun" id="kuantiti_marhun" value="" hidden>
|
||||
<input type="text" name="total_nilai_marhun" id="total_nilai_marhun" value="" hidden>
|
||||
<input type="text" name="nokp" id="nokp" value="{{ !empty($customer_info['kpbaru']) ? $customer_info['kpbaru'] : ($customer_info['kplama'] ?? '') }}" hidden>
|
||||
<a href="{{ route('gadai.batal',['norujukan'=>$norujukan]) }}" class="float-right btn btn-danger mr-2">Batal</a>
|
||||
<input type="submit" name="terima_gadai" id="terima_gadai" class="float-right btn btn-primary mr-2" value="Terima">
|
||||
</div>
|
||||
@@ -582,17 +595,23 @@
|
||||
// }
|
||||
|
||||
$.ajax({
|
||||
method:'GET',
|
||||
url: api_url + '/api/kadarujrah',
|
||||
async:false,
|
||||
data:{
|
||||
'nilaimarhun' : total_nilai_marhun,
|
||||
'kodcaw' : kodcaw_ujrah
|
||||
},
|
||||
success:function(data){
|
||||
kadarupah = data;
|
||||
}
|
||||
});
|
||||
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);
|
||||
@@ -625,6 +644,9 @@
|
||||
$('#pinjaman').on('input',function(){
|
||||
var pinjaman = Number(this.value);
|
||||
var nilaimarhun = Number($('#jumlah_nilai_marhun').val());
|
||||
var nokp = $('#nokp').val();
|
||||
//console.log('DEBUG NOKP:', nokp, kadarupah);
|
||||
|
||||
|
||||
// var keuntungan_sebulan = pinjaman * kadarupah;
|
||||
// var keuntungan_6bln = keuntungan_sebulan * 6;
|
||||
@@ -638,6 +660,7 @@
|
||||
url: api_url + '/api/onepercent',
|
||||
async:false,
|
||||
data:{
|
||||
'nokp': nokp,
|
||||
'nilaimarhun' : total_nilai_marhun,
|
||||
'pembiayaan' : pinjaman,
|
||||
'kadarujrah' : kadarupah,
|
||||
@@ -651,12 +674,35 @@
|
||||
|
||||
var keuntungan_sebulan = getRoundedMethod(array_keuntungan['keuntungan']);
|
||||
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)) + ' %');
|
||||
$('#keuntungan_sebulan').val(formatter.format(keuntungan_sebulan.toFixed(2)));
|
||||
$('#keuntungan_6bln').val(formatter.format(keuntungan_6bln.toFixed(2)));
|
||||
$('#ujrah').val(formatter.format(getRoundedMethod(array_keuntungan['ujrah']).toFixed(2)));
|
||||
$('#onepercent').val(formatter.format(getRoundedMethod(array_keuntungan['onepercent']).toFixed(2)));
|
||||
$('#rebate').val(formatter.format(rebate.toFixed(2))); // Correctly displaying rebate
|
||||
$('#kadar_rebate').val(formatter.format(kadar_rebate.toFixed(2)) + ' %');
|
||||
|
||||
});
|
||||
|
||||
@@ -1162,10 +1208,10 @@
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Pembiayaan Tidak Lengkap'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
|
||||
let dataCawangan = await getDataCawangan();
|
||||
let bakiAkhir = dataCawangan.baki;
|
||||
|
||||
@@ -274,11 +274,9 @@
|
||||
<div class="row">
|
||||
<a href="{{ route('lelong') }}" class="btn btn-info btn-lg btn-block mb-3">Lelong</a>
|
||||
</div>
|
||||
@if(Auth::user()->cawangan == '011237')
|
||||
<div class="row">
|
||||
<a href="{{ url('panjar') }}" class="btn btn-info btn-lg btn-block mb-3">Perbelanjaan</a>
|
||||
</div>
|
||||
@endif
|
||||
<div class="row">
|
||||
<a href="{{ url('alirantunai') }}" class="btn btn-info btn-lg btn-block mb-3">Aliran
|
||||
Tunai</a>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
@section('content')
|
||||
<div class="container">
|
||||
<div class="row justify-content-center mt-5">
|
||||
<div class="col-md-8">
|
||||
<div class="col-md-12">
|
||||
<div class="card">
|
||||
|
||||
<nav aria-label="breadcrumb">
|
||||
@@ -14,6 +14,7 @@
|
||||
</nav>
|
||||
|
||||
<div class="card-body text-center">
|
||||
<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">Kelulusan</a>
|
||||
<a href="{{ route('daftar.kakitangan') }}" class="btn btn-info btn-lg">Kakitangan</a>
|
||||
<a href="{{ route('parameter') }}" class="btn btn-info btn-lg">Parameter</a>
|
||||
|
||||
@@ -189,6 +189,10 @@
|
||||
<a href="{{ route('laporan.notisperingatan') }}"
|
||||
class="btn btn-dark btn-lg btn-block mb-3 custom-btn">Notis Peringatan</a>
|
||||
</div>
|
||||
<div class="row">
|
||||
<a href="{{ route('laporan.imbangduga') }}"
|
||||
class="btn btn-dark btn-lg btn-block mb-3 custom-btn">Imbang Duga</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,518 @@
|
||||
@extends('layouts.app_operasi')
|
||||
|
||||
@section('content')
|
||||
<div class="container col-12">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-12">
|
||||
<div class="card">
|
||||
<nav aria-label="breadcrumb">
|
||||
<ol class="breadcrumb pb-3">
|
||||
<li class="breadcrumb-item"><a href="{{ url('/') }}">Home</a></li>
|
||||
<li class="breadcrumb-item active" aria-current="page">Kelulusan Anggota</li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<div class="card-body text-center">
|
||||
|
||||
<div class="row mb-4">
|
||||
<div class="col-2 justify-content-start">
|
||||
</div>
|
||||
<div class="col-8 mt-3 justify-content-center">
|
||||
</div>
|
||||
<div class="col-2">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class='table mt-2 table-striped table-hover' id='table-kelulusan' style="width:100%;">
|
||||
<thead class="thead-dark">
|
||||
<tr>
|
||||
<th>Cawangan</th>
|
||||
<th>No Kad Pengenalan</th>
|
||||
<th>Nama Anggota</th>
|
||||
<th>Status</th>
|
||||
<th>Tarikh/Masa</th>
|
||||
<th>Tindakan</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($arraykelulusan as $index => $k)
|
||||
@foreach ($k['kelulusanall'] as $indexapp => $approval)
|
||||
@php
|
||||
$status = strtolower($approval['status'] ?? '');
|
||||
$statusLabel = $approval['status'] ?? '—';
|
||||
|
||||
// Gunakan strpos() supaya compatible dengan PHP 7.x juga
|
||||
if (
|
||||
strpos($status, 'lulus') !== false ||
|
||||
strpos($status, 'diluluskan') !== false ||
|
||||
strpos($status, 'selesai') !== false
|
||||
) {
|
||||
$statusStyle = 'background-color:#7ee4b8; color:white;';
|
||||
} elseif (
|
||||
strpos($status, 'tolak') !== false ||
|
||||
strpos($status, 'batal') !== false
|
||||
) {
|
||||
$statusStyle = 'background-color:#f58c8c; color:white;';
|
||||
} elseif (
|
||||
strpos($status, 'menunggu') !== false ||
|
||||
strpos($status, 'pending') !== false
|
||||
) {
|
||||
$statusStyle = 'background-color:#ffd166; color:#333;';
|
||||
} else {
|
||||
$statusStyle = 'background-color:#d1d5db; color:#333;';
|
||||
}
|
||||
@endphp
|
||||
|
||||
<tr>
|
||||
<td>{{ $k['cawangan'] }}</td>
|
||||
<td>{{ $approval['nokp'] }}</td>
|
||||
<td>{{ $approval['nama'] ?? '-' }}</td>
|
||||
<td>
|
||||
<span class="px-3 py-2 d-inline-block text-center fw-bold"
|
||||
style="{{ $statusStyle }} border-radius:8px; min-width:130px; display:inline-block;">
|
||||
{{ $statusLabel }}
|
||||
</span>
|
||||
</td>
|
||||
<td>{{ \Carbon\Carbon::parse($approval['created_at'])->timezone('Asia/Kuala_Lumpur')->format('d/m/Y h:i A') }}
|
||||
</td>
|
||||
<td>
|
||||
@if ($statusLabel != 'DILULUSKAN')
|
||||
<!-- Button Lulus -->
|
||||
<button class="btn btn-success btn-sm me-2"
|
||||
onclick="updatelulusAnggota(this)"
|
||||
data-nokp="{{ $approval['nokp'] }}"
|
||||
data-kodcaw="{{ $k['cawangankod'] }}" data-taglulus="Y"
|
||||
title="Lulus Anggota">
|
||||
<i class="fas fa-thumbs-up"></i>
|
||||
</button>
|
||||
|
||||
<!-- Button Tolak -->
|
||||
<button class="btn btn-danger btn-sm" onclick="updatelulusAnggota(this)"
|
||||
data-nokp="{{ $approval['nokp'] }}"
|
||||
data-kodcaw="{{ $k['cawangankod'] }}" data-taglulus="N"
|
||||
title="Batal / Tolak Kelulusan">
|
||||
<i class="fas fa-thumbs-down"></i>
|
||||
</button>
|
||||
@endif
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
@endforeach
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
var tablekelulusan = $('#table-kelulusan').DataTable({
|
||||
"scrollX": true
|
||||
});
|
||||
|
||||
let api = "{{ config('api.url') }}";
|
||||
|
||||
const formatter = new Intl.NumberFormat('en-US', {
|
||||
minimumFractionDigits: 2
|
||||
});
|
||||
|
||||
var audio = new Audio("{{ asset('sound/3.wav') }}");
|
||||
|
||||
if (tablekelulusan.data().any()) {
|
||||
audio.play();
|
||||
audio.addEventListener('ended', function() {
|
||||
this.currentTime = 0;
|
||||
this.play();
|
||||
}, false);
|
||||
} else {
|
||||
audio.loop = false;
|
||||
audio.muted = true;
|
||||
}
|
||||
|
||||
|
||||
$('#kelulusanmodal').on('show.bs.modal', function(event) {
|
||||
let button = $(event.relatedTarget);
|
||||
let norujukan = $(button).data('norujukan');
|
||||
let kodcaw = $(button).data('kodcawangan');
|
||||
|
||||
$.ajax({
|
||||
method: 'GET',
|
||||
url: api + '/api/gadai/norujukan/' + norujukan,
|
||||
dataType: 'json',
|
||||
success: function(datagadaiwithnorujukan) {
|
||||
|
||||
let nokp = datagadaiwithnorujukan[0][0].nokp;
|
||||
|
||||
$.ajax({
|
||||
method: 'GET',
|
||||
url: api + '/api/customers/' + nokp,
|
||||
dataType: 'json',
|
||||
success: function(datagadaiwithnokp) {
|
||||
|
||||
let nama = datagadaiwithnokp.nama;
|
||||
|
||||
$('#namalanjut').text(nama);
|
||||
$('#nokplanjut').text(nokp);
|
||||
|
||||
$.ajax({
|
||||
method: 'GET',
|
||||
url: api + '/api/gadai/customers/' + nokp +
|
||||
'/outstandingsemasa/' + kodcaw,
|
||||
dataType: 'json',
|
||||
success: function(outstandingsemasa) {
|
||||
|
||||
$('#pinjterkumpul').text('RM' + formatter
|
||||
.format(outstandingsemasa));
|
||||
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
var err = eval("(" + xhr.responseText +
|
||||
")");
|
||||
alert(xhr.responseText);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
$.ajax({
|
||||
method: 'GET',
|
||||
url: api + '/api/customers/' + nokp + '/gadai/belum_tebus',
|
||||
dataType: 'json',
|
||||
success: function(data) {
|
||||
let bilanganaktif = 0;
|
||||
if (data == null) {
|
||||
bilanganaktif = 0;
|
||||
} else {
|
||||
bilanganaktif = data[0].length;
|
||||
}
|
||||
|
||||
$('#bilaktif').text(bilanganaktif);
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$.ajax({
|
||||
method: 'GET',
|
||||
url: api + '/api/customers/' + nokp + '/gadai/lelong',
|
||||
dataType: 'json',
|
||||
success: function(data) {
|
||||
|
||||
let bilanganlelong = 0;
|
||||
|
||||
if (data == null) {
|
||||
bilanganlelong = 0;
|
||||
} else {
|
||||
bilanganlelong = data.length;
|
||||
}
|
||||
|
||||
|
||||
$('#billelong').text(bilanganlelong);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
async function updatelulus(e) {
|
||||
console.log(e);
|
||||
return;
|
||||
|
||||
const {
|
||||
value: katalaluan
|
||||
} = await Swal.fire({
|
||||
title: 'Masukkan Katalaluan Semula',
|
||||
input: 'password',
|
||||
inputPlaceholder: 'Katalaluan',
|
||||
confirmButtonText: 'Hantar',
|
||||
showCancelButton: true,
|
||||
cancelButtonText: 'Batal',
|
||||
allowOutsideClick: true
|
||||
})
|
||||
|
||||
let dataminta = '';
|
||||
|
||||
$.ajax({
|
||||
method: 'get',
|
||||
url: "{{ route('operasi.getmintasemulakelulusan') }}",
|
||||
async: false,
|
||||
data: {
|
||||
passsemula: katalaluan
|
||||
},
|
||||
success: function(data) {
|
||||
if (data == "False") {
|
||||
dataminta = data;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (dataminta == 'False') {
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Pengesahan Katalaluan Tidak Berjaya'
|
||||
})
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
|
||||
// var { value: komenkelulusan } = await Swal.fire({
|
||||
// title: 'Masukkan Komen!',
|
||||
// input: 'radio',
|
||||
// customClass: {
|
||||
// input: 'custom-radio'
|
||||
// },
|
||||
// inputOptions: {
|
||||
// 'Pelanggan Baru': 'Pelanggan Baru',
|
||||
// 'Pelanggan Tetap': 'Pelanggan Tetap',
|
||||
// 'Rekod Gadaian Baik': 'Rekod Gadaian Baik',
|
||||
// 'Lain2': 'Lain-Lain'
|
||||
// },
|
||||
// confirmButtonText: 'Hantar',
|
||||
// showCancelButton:false,
|
||||
// allowOutsideClick: false
|
||||
// })
|
||||
|
||||
// if(komenkelulusan === 'Lain2')
|
||||
// {
|
||||
// var { value: komenkelulusan } = await Swal.fire({
|
||||
// title: 'Masukkan Komen!',
|
||||
// input: 'text',
|
||||
// inputPlaceholder: 'Komen',
|
||||
// confirmButtonText: 'Hantar',
|
||||
// showCancelButton:false,
|
||||
// allowOutsideClick: false
|
||||
// });
|
||||
// }
|
||||
|
||||
const {
|
||||
value: komenkelulusan
|
||||
} = await Swal.fire({
|
||||
title: 'Masukkan Komen!',
|
||||
input: 'text',
|
||||
inputPlaceholder: 'Komen',
|
||||
confirmButtonText: 'Hantar',
|
||||
showCancelButton: false,
|
||||
allowOutsideClick: false
|
||||
})
|
||||
|
||||
let norujukan = $(e).data('norujukan');
|
||||
let cawangankod = $(e).data('kodcaw');
|
||||
let siri = $(e).data('siri');
|
||||
let namaoperasi = "{{ Auth::user()->name }}";
|
||||
let teller = $(e).closest('tr').children('td:eq(2)').text();
|
||||
let taglulus = $(e).data('taglulus');
|
||||
|
||||
teller = String(teller);
|
||||
|
||||
$.ajax({
|
||||
method: 'put',
|
||||
url: "{{ route('operasi.updatekelulusan') }}",
|
||||
data: {
|
||||
"_token": "{{ csrf_token() }}",
|
||||
"taglulus": taglulus,
|
||||
"norujukan": norujukan,
|
||||
"kodcaw": cawangankod,
|
||||
"komenkelulusan": komenkelulusan,
|
||||
"siri": siri,
|
||||
'namaoperasi': namaoperasi,
|
||||
'teller': teller
|
||||
},
|
||||
success: function(data) {
|
||||
console.log(data);
|
||||
Swal.fire({
|
||||
icon: 'success',
|
||||
title: 'Pengesahan Berjaya'
|
||||
}).then(function() {
|
||||
location.reload();
|
||||
});
|
||||
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
var err = eval("(" + xhr.responseText + ")");
|
||||
alert(xhr.responseText);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
async function updatelulusAnggota(e) {
|
||||
|
||||
// 1️⃣ Semak katalaluan semula
|
||||
const {
|
||||
value: katalaluan
|
||||
} = await Swal.fire({
|
||||
title: 'Masukkan Katalaluan Semula',
|
||||
input: 'password',
|
||||
inputPlaceholder: 'Katalaluan',
|
||||
confirmButtonText: 'Hantar',
|
||||
showCancelButton: true,
|
||||
cancelButtonText: 'Batal',
|
||||
allowOutsideClick: true
|
||||
});
|
||||
|
||||
if (!katalaluan) return;
|
||||
|
||||
let sah = true;
|
||||
await $.ajax({
|
||||
method: 'get',
|
||||
url: "{{ route('operasi.getmintasemulakelulusan') }}",
|
||||
async: false,
|
||||
data: {
|
||||
passsemula: katalaluan
|
||||
},
|
||||
success: function(data) {
|
||||
if (data == "False") sah = false;
|
||||
}
|
||||
});
|
||||
|
||||
if (!sah) {
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Pengesahan Katalaluan Tidak Berjaya'
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
// 2️⃣ Dapatkan komen kelulusan
|
||||
const {
|
||||
value: komenkelulusan
|
||||
} = await Swal.fire({
|
||||
title: 'Masukkan Komen Kelulusan',
|
||||
input: 'text',
|
||||
inputPlaceholder: 'Contoh: Anggota layak diluluskan',
|
||||
confirmButtonText: 'Hantar',
|
||||
showCancelButton: false,
|
||||
allowOutsideClick: false
|
||||
});
|
||||
|
||||
// 3️⃣ Ambil data daripada butang / row
|
||||
let nokp = $(e).data('nokp'); // data-nokp perlu ada dalam butang
|
||||
let kodcaw = $(e).data('kodcaw');
|
||||
let siri = $(e).data('siri');
|
||||
let taglulus = $(e).data('taglulus');
|
||||
let namaoperasi = "{{ Auth::user()->name }}";
|
||||
|
||||
// 4️⃣ Hantar ke backend (route khas kelulusan anggota)
|
||||
$.ajax({
|
||||
method: 'put',
|
||||
url: "{{ route('operasi.updatekelulusananggota') }}",
|
||||
data: {
|
||||
"_token": "{{ csrf_token() }}",
|
||||
"nokp": nokp,
|
||||
"kodcaw": kodcaw,
|
||||
"siri": siri,
|
||||
"taglulus": taglulus,
|
||||
"komenkelulusan": komenkelulusan,
|
||||
"namaoperasi": namaoperasi
|
||||
},
|
||||
success: function(data) {
|
||||
Swal.fire({
|
||||
icon: 'success',
|
||||
title: 'Kelulusan Anggota Berjaya'
|
||||
}).then(function() {
|
||||
location.reload();
|
||||
});
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
alert("Ralat: " + xhr.responseText);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
async function updatebatal(e) {
|
||||
const {
|
||||
value: katalaluan
|
||||
} = await Swal.fire({
|
||||
title: 'Masukkan Katalaluan Semula',
|
||||
input: 'password',
|
||||
inputPlaceholder: 'Katalaluan',
|
||||
confirmButtonText: 'Hantar',
|
||||
showCancelButton: true,
|
||||
cancelButtonText: 'Batal',
|
||||
allowOutsideClick: true
|
||||
})
|
||||
|
||||
let dataminta = '';
|
||||
|
||||
$.ajax({
|
||||
method: 'get',
|
||||
url: "{{ route('operasi.getmintasemulakelulusan') }}",
|
||||
async: false,
|
||||
data: {
|
||||
passsemula: katalaluan
|
||||
},
|
||||
success: function(data) {
|
||||
if (data == "False") {
|
||||
dataminta = data;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (dataminta == 'False') {
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Pengesahan Katalaluan Tidak Berjaya'
|
||||
})
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
|
||||
const {
|
||||
value: komenkelulusan
|
||||
} = await Swal.fire({
|
||||
title: 'Masukkan Komen',
|
||||
input: 'text',
|
||||
inputPlaceholder: 'Komen',
|
||||
confirmButtonText: 'Hantar',
|
||||
showCancelButton: false,
|
||||
allowOutsideClick: false
|
||||
})
|
||||
|
||||
let norujukan = $(e).data('norujukan');
|
||||
let siri = $(e).data('siri');
|
||||
let cawangankod = $(e).data('kodcaw');
|
||||
let namaoperasi = "{{ Auth::user()->name }}";
|
||||
let teller = $(e).closest('tr').children('td:eq(2)').text();
|
||||
|
||||
teller = String(teller);
|
||||
|
||||
$.ajax({
|
||||
method: 'put',
|
||||
url: "{{ route('operasi.updatekelulusan') }}",
|
||||
data: {
|
||||
"_token": "{{ csrf_token() }}",
|
||||
"norujukan": norujukan,
|
||||
"siri": siri,
|
||||
"kodcaw": cawangankod,
|
||||
"komenkelulusan": komenkelulusan,
|
||||
"pembatalan": "batal",
|
||||
'namaoperasi': namaoperasi,
|
||||
'teller': teller
|
||||
},
|
||||
success: function(data) {
|
||||
Swal.fire({
|
||||
icon: 'success',
|
||||
title: 'Pengesahan Berjaya'
|
||||
}).then(function() {
|
||||
location.reload();
|
||||
|
||||
});
|
||||
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
var err = eval("(" + xhr.responseText + ")");
|
||||
alert(xhr.responseText);
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
@endsection
|
||||
@@ -208,6 +208,15 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- <div class="form-group row">
|
||||
<div class="col-4">
|
||||
JUMLAH PERLU DIBAYAR SELEPAS DISKAUN (RM)
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<input type="text" id="jumlahselepasdiskaun" class="form-control" readonly/>
|
||||
</div>
|
||||
</div> --}}
|
||||
|
||||
<div>
|
||||
<fieldset class="scheduler-border">
|
||||
<div class="form-group row" id="divduitPelanggan">
|
||||
@@ -312,6 +321,16 @@
|
||||
<input type="text" id="jumlahtelahdibayar" class="form-control" readonly/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row" id="divtelahdibayar">
|
||||
<div class="col-4">
|
||||
REBET DISKAUN (RM)
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<input type="text" id="jumlahDiskaun" value="{{ number_format($gadai['diskaun'],2) }}" class="form-control" readonly/>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -328,6 +347,14 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<div class="col-4">
|
||||
JUMLAH PERLU DIBAYAR SELEPAS DISKAUN (RM)
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<input type="text" id="perludibayarAkhir" class="form-control" readonly/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<fieldset class="scheduler-border">
|
||||
@@ -428,6 +455,15 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row" id="divtelahdibayar">
|
||||
<div class="col-4">
|
||||
REBET DISKAUN (RM)
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<input type="text" id="jumlahDiskaun" value="{{ number_format($gadai['diskaun'],2) }}" class="form-control" readonly/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="divbakipinjaman">
|
||||
<div class="form-group row">
|
||||
<div class="col-4">
|
||||
@@ -453,7 +489,7 @@
|
||||
<input type="text" id="jumlahtelahdibayar" class="form-control" readonly/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group row" id="divbayaran">
|
||||
<div class="col-4">
|
||||
@@ -561,6 +597,16 @@
|
||||
<div class="col-8">
|
||||
<input type="text" id="jumlahupah" class="form-control" readonly/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row" id="divtelahdibayar">
|
||||
<div class="col-4">
|
||||
REBET DISKAUN (RM)
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<input type="text" id="jumlahDiskaun" value="{{ number_format($gadai['diskaun'],2) }}" class="form-control" readonly/>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -1217,7 +1263,7 @@
|
||||
break;
|
||||
case "A":
|
||||
var jumupah = parseFloat($('#jumlahupah').val().replace(/[^0-9.-]+/g,""));
|
||||
// var jumupahrebet = parseFloat($('#bayaranditerima').val().replace(/[^0-9.-]+/g,""));
|
||||
// var jumupahrebet = parseFloat($('#bayaranditerima').val().replace(/[^0-9.-]+/g,""));
|
||||
|
||||
elem_jenisA.prependTo(".infotransaksi");
|
||||
$('#jenisAT').remove();
|
||||
@@ -1395,8 +1441,17 @@
|
||||
dataType: 'json',
|
||||
async:false,
|
||||
success:function(harga_tebus){
|
||||
$('#perludibayar').val(formatter.format(harga_tebus));
|
||||
}
|
||||
// // Ambil nilai diskaun
|
||||
// let diskaun = parseFloat($('#jumlahDiskaun').val().replace(/,/g, '')) || 0;
|
||||
|
||||
// // Tolak diskaun terus dari harga tebus
|
||||
// let harga_tebus_akhir = parseFloat(harga_tebus) - diskaun;
|
||||
|
||||
// // Set balik ke input 'PERLU DIBAYAR'
|
||||
$('#perludibayar').val(formatter.format(harga_tebus));
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
// Telah dibayar
|
||||
@@ -1554,69 +1609,76 @@
|
||||
|
||||
function bayarkey(e){
|
||||
|
||||
$('#bakiPelanggan').val('0.00');
|
||||
$('#duitPelanggan').val('');
|
||||
$('#bakiPelanggan').val('0.00');
|
||||
$('#duitPelanggan').val('');
|
||||
|
||||
if($('#sltjenistebus').find(":selected").val() == 'S'){
|
||||
let byr = $(e).val().replace(/[^0-9.-]+/g,"");
|
||||
let total = 0;
|
||||
let pdbyr = 0;
|
||||
let totalseparuh = 0;
|
||||
let totalnilaimarhunseparuh = 0;
|
||||
var nmsemasa = parseFloat("{{ $nilaihargasemasa }}");
|
||||
let upah = parseFloat($('#jumlahupah').val());
|
||||
let ujrahrebet = parseFloat($('#jumujrahrebet').val().replace(/[^0-9.-]+/g,""));
|
||||
let onepercentrebet = parseFloat($('#jumonepercentrebet').val().replace(/[^0-9.-]+/g,""));
|
||||
if($('#sltjenistebus').find(":selected").val() == 'S'){
|
||||
let byr = $(e).val().replace(/[^0-9.-]+/g,"");
|
||||
let total = 0;
|
||||
let pdbyr = 0;
|
||||
let totalseparuh = 0;
|
||||
let totalnilaimarhunseparuh = 0;
|
||||
var nmsemasa = parseFloat("{{ $nilaihargasemasa }}");
|
||||
let upah = parseFloat($('#jumlahupah').val());
|
||||
let ujrahrebet = parseFloat($('#jumujrahrebet').val().replace(/[^0-9.-]+/g,""));
|
||||
let onepercentrebet = parseFloat($('#jumonepercentrebet').val().replace(/[^0-9.-]+/g,""));
|
||||
|
||||
let rebet = ujrahrebet + onepercentrebet;
|
||||
let rebet = ujrahrebet + onepercentrebet;
|
||||
|
||||
$.each( array_nm, function( index, value ) {
|
||||
totalnilaimarhunseparuh += parseFloat(value);
|
||||
});
|
||||
$.each( array_nm, function( index, value ) {
|
||||
totalnilaimarhunseparuh += parseFloat(value);
|
||||
});
|
||||
|
||||
pdbyr = parseFloat(byr);
|
||||
total = $('#pinjaman').val().replace(/[^0-9.-]+/g,"") - (pdbyr - upah + rebet);
|
||||
let totaldibayar = parseFloat($('#pinjaman').val().replace(/[^0-9.-]+/g,"")) + (upah - rebet);
|
||||
pdbyr = parseFloat(byr);
|
||||
total = $('#pinjaman').val().replace(/[^0-9.-]+/g,"") - (pdbyr - upah + rebet);
|
||||
let totaldibayar = parseFloat($('#pinjaman').val().replace(/[^0-9.-]+/g,"")) + (upah - rebet);
|
||||
|
||||
let bakinm = nmsemasa - totalnilaimarhunseparuh;
|
||||
let bakinm = nmsemasa - totalnilaimarhunseparuh;
|
||||
|
||||
let totalkurang = bayaranseparuhasal + (upah - rebet);
|
||||
let tenpercentmarhun = bakinm * 0.1;
|
||||
let tenpercentblock = getRoundedMethod(tenpercentmarhun);
|
||||
let totalkurang = bayaranseparuhasal + (upah - rebet);
|
||||
let tenpercentmarhun = bakinm * 0.1;
|
||||
let tenpercentblock = getRoundedMethod(tenpercentmarhun);
|
||||
|
||||
|
||||
var totalcalculate = ((total/bakinm)*100);
|
||||
var totalcalculate = ((total/bakinm)*100);
|
||||
|
||||
if(byr < totalkurang){
|
||||
let test = totalkurang - (upah + rebet);
|
||||
if(byr < totalkurang){
|
||||
let test = totalkurang - (upah + rebet);
|
||||
|
||||
let bakipjm = parseFloat($('#pinjaman').val().replace(/[^0-9.-]+/g,"")) - (bayaranseparuhasal);
|
||||
totalcalculate = ((bakipjm/bakinm) * 100);
|
||||
|
||||
$(e).val(formatter.format(totalkurang.toFixed(2)));
|
||||
$('#bakipinjaman').val(formatter.format(bakipjm.toFixed(2)));
|
||||
$('#basic-separuh').text(formatter.format(Number(totalcalculate.toFixed(2))));
|
||||
return false;
|
||||
}
|
||||
|
||||
if(total < tenpercentblock){
|
||||
let temptotal = totaldibayar - tenpercentblock;
|
||||
let tempbakipjm = $('#pinjaman').val().replace(/[^0-9.-]+/g,"") - (temptotal - upah + rebet);
|
||||
|
||||
totalcalculate = ((tempbakipjm/bakinm) * 100);
|
||||
$(e).val(formatter.format(temptotal.toFixed(2)));
|
||||
$('#bakipinjaman').val(formatter.format(tempbakipjm.toFixed(2)));
|
||||
$('#basic-separuh').text(formatter.format(Number(totalcalculate.toFixed(2))));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
$('#bakipinjaman').val(total.toFixed(2));
|
||||
$('#basic-separuh').text(Number(totalcalculate.toFixed(2)));
|
||||
}
|
||||
let bakipjm = parseFloat($('#pinjaman').val().replace(/[^0-9.-]+/g,"")) - (bayaranseparuhasal);
|
||||
totalcalculate = ((bakipjm/bakinm) * 100);
|
||||
|
||||
$(e).val(formatter.format(totalkurang.toFixed(2)));
|
||||
$('#bakipinjaman').val(formatter.format(bakipjm.toFixed(2)));
|
||||
$('#basic-separuh').text(formatter.format(Number(totalcalculate.toFixed(2))));
|
||||
return false;
|
||||
}
|
||||
|
||||
if(total < tenpercentblock){
|
||||
let temptotal = totaldibayar - tenpercentblock;
|
||||
let tempbakipjm = $('#pinjaman').val().replace(/[^0-9.-]+/g,"") - (temptotal - upah + rebet);
|
||||
|
||||
totalcalculate = ((tempbakipjm/bakinm) * 100);
|
||||
$(e).val(formatter.format(temptotal.toFixed(2)));
|
||||
$('#bakipinjaman').val(formatter.format(tempbakipjm.toFixed(2)));
|
||||
$('#basic-separuh').text(formatter.format(Number(totalcalculate.toFixed(2))));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
$('#bakipinjaman').val(total.toFixed(2));
|
||||
$('#basic-separuh').text(Number(totalcalculate.toFixed(2)));
|
||||
}
|
||||
}
|
||||
|
||||
function kiraPerluDibayarSelepasDiskaun() {
|
||||
var perluDibayar = parseFloat(document.getElementById("perludibayar").value.replace(/,/g, '')) || 0;
|
||||
var diskaun = parseFloat(document.getElementById("jumlahDiskaun").value.replace(/,/g, '')) || 0;
|
||||
|
||||
var akhir = perluDibayar - diskaun;
|
||||
document.getElementById("perludibayarAkhir").value = akhir.toFixed(2);
|
||||
}
|
||||
function bayartawarruq(e){
|
||||
var keuntungan = parseFloat($('#jumlahupah').val().replace(/[^0-9.-]+/g,""));
|
||||
var bayaran = parseFloat(e.value);
|
||||
@@ -1835,6 +1897,25 @@
|
||||
jeniskeuntungan = "asal";
|
||||
}
|
||||
|
||||
//kira rebet diskaun
|
||||
|
||||
// let diskaun
|
||||
// if (pinjaman < 20000) {
|
||||
// diskaun = jumupah * 0.05;
|
||||
|
||||
// } else if (pinjaman >= 20000 && pinjaman <= 50000) {
|
||||
// diskaun = jumupah * 0.10;
|
||||
|
||||
// } else if (pinjaman > 50000 && pinjaman <= 100000) {
|
||||
// diskaun = jumupah * 0.15;
|
||||
|
||||
// } else {
|
||||
// diskaun = jumupah * 0.20;
|
||||
|
||||
// }
|
||||
|
||||
//$('#jumdiskaun').val(formatter.format(diskaun.toFixed(2)));
|
||||
|
||||
var nopelanggan = "{{ $gadai['nopelanggan'] }}";
|
||||
var jenistebus = $('#sltjenistebus').find(":selected").val();
|
||||
var jbg = "{{ $gadai['tempoh'] }}";
|
||||
@@ -1850,6 +1931,7 @@
|
||||
var nowakil = nw;
|
||||
var duitpelanggan = $('#duitPelanggan').val().replace(/[^0-9.-]+/g,"");
|
||||
var bakipelanggan = $('#bakiPelanggan').val().replace(/[^0-9.-]+/g,"");
|
||||
//var diskaun = $('#diskaun').val().replace(/[^0-9.-]+/g,"");
|
||||
|
||||
|
||||
if(Number(duitpelanggan) < Number(bakipinjaman)){
|
||||
@@ -1878,6 +1960,7 @@
|
||||
"addpinjaman" : addpinjaman,
|
||||
"bakipinjaman" : bakipinjaman,
|
||||
"bakiupah" : bakiupah,
|
||||
//"diskaun": diskaun,
|
||||
"historygadaian" : historygadaian,
|
||||
"marhun" : marhun,
|
||||
"nowakil" : nowakil,
|
||||
@@ -1979,10 +2062,27 @@
|
||||
|
||||
let hadbayaransuran = (parseFloat("{{ $gadai['nilaimarhun']}}") * 0.1);
|
||||
|
||||
//kira rebet diskaun
|
||||
// let diskaun
|
||||
// if (pinjaman < 20000) {
|
||||
// diskaun = jumupah * 0.05;
|
||||
|
||||
// } else if (pinjaman >= 20000 && pinjaman <= 50000) {
|
||||
// diskaun = jumupah * 0.10;
|
||||
|
||||
// } else if (pinjaman > 50000 && pinjaman <= 100000) {
|
||||
// diskaun = jumupah * 0.15;
|
||||
|
||||
// } else {
|
||||
// diskaun = jumupah * 0.20;
|
||||
|
||||
// }
|
||||
|
||||
var bayar = Number(parseFloat($('#bayaran').val().replace(/[^0-9.-]+/g,"")).toFixed(2));
|
||||
var bakipinjam = parseFloat("{{ $gadai['bakipjm'] }}") - hadbayaransuran + jumupah;
|
||||
var duitpelanggan = parseFloat($('#duitPelanggan').val().replace(/[^0-9.-]+/g,""));
|
||||
var bakipelanggan = parseFloat($('#bakiPelanggan').val().replace(/[^0-9.-]+/g,""));
|
||||
//var diskaun = parseFloat($('#diskaun').val().replace(/[^0-9.-]+/g,""));
|
||||
|
||||
if(isNaN(duitpelanggan)) duitpelanggan = 0;
|
||||
|
||||
|
||||
@@ -230,6 +230,7 @@
|
||||
<th>Lain-Lain Caj (RM)</th>
|
||||
<th>Keuntungan 1% (RM)</th>
|
||||
<th>Keuntungan</th>
|
||||
<th>Diskaun Rebet</th>
|
||||
<th>Peratus (%)</th>
|
||||
</tr>
|
||||
@php
|
||||
@@ -301,6 +302,7 @@
|
||||
<td>{{ number_format($item['ujrah']*12,2) }}</td>
|
||||
<td>{{ number_format($item['onepercent']*12,2) }}</td>
|
||||
<td>{{ number_format($item['upah12'],2) }}</td>
|
||||
<td>{{ number_format($item['diskaun'],2) }}</td>
|
||||
<td>{{ $item['percentpinj'] }}</td>
|
||||
</tr>
|
||||
@php $counter++; @endphp
|
||||
|
||||
@@ -201,8 +201,8 @@
|
||||
@foreach($senaraipelanggan as $index=>$item)
|
||||
<tr>
|
||||
<td>{{ $counter }}</td>
|
||||
<td>{{$item['kpbaru']}}</td>
|
||||
<td>{{$item['nama']}}</td>
|
||||
<td>{{ !empty($item['kpbaru']) ? $item['kpbaru'] : $item['kplama'] }}</td>
|
||||
<td>{{ $item['nama']}}</td>
|
||||
|
||||
</tr>
|
||||
@php $counter++;@endphp
|
||||
|
||||
@@ -241,6 +241,7 @@
|
||||
<th>B.Pembiayaan(RM)</th>
|
||||
<th>Lain-Lain Caj (RM)</th>
|
||||
<th>Untung 1% (RM)</th>
|
||||
<th>Diskaun Rebet (RM)</th>
|
||||
<th>Pendapatan(RM)</th>
|
||||
<th>Bayaran(RM)</th>
|
||||
<th>Jumlah(RM)</th>
|
||||
@@ -254,6 +255,7 @@
|
||||
$totalupah = 0;
|
||||
$totalujrah = 0;
|
||||
$totalonepercent = 0;
|
||||
$totaldiskaunrebate = 0;
|
||||
@endphp
|
||||
|
||||
@foreach ($tebus as $index => $item)
|
||||
@@ -266,6 +268,7 @@
|
||||
$totalnm += $item['nilaimarhun'];
|
||||
$totalujrah += $item['ujrah'];
|
||||
$totalonepercent += $item['onepercent'];
|
||||
$totaldiskaunrebate += $item['diskaun_rebate'];
|
||||
|
||||
@endphp
|
||||
|
||||
@@ -282,6 +285,7 @@
|
||||
$totalbayaranteller = 0;
|
||||
$totalujrahteller = 0;
|
||||
$totalonepercentteller = 0;
|
||||
$totaldiskaunrebateteller = 0;
|
||||
@endphp
|
||||
@endif
|
||||
@else
|
||||
@@ -297,6 +301,7 @@
|
||||
$totaljumlahteller = 0;
|
||||
$totalujrahteller = 0;
|
||||
$totalonepercentteller = 0;
|
||||
$totaldiskaunrebateteller = 0;
|
||||
@endphp
|
||||
@endif
|
||||
|
||||
@@ -337,6 +342,7 @@
|
||||
<td>{{ number_format($item['ujrah'], 2) }}</td>
|
||||
<td>{{ number_format($item['onepercent'], 2) }}</td>
|
||||
{{-- <td>{{ number_format($item['bakiupah'], 2) }}</td> --}}
|
||||
<td>{{ number_format($item['diskaun_rebate'], 2) }}</td>
|
||||
<td>
|
||||
@php
|
||||
if ($item['tagbaru']) {
|
||||
@@ -371,6 +377,7 @@
|
||||
$totalbayaranteller += $item['bakipjm']; //
|
||||
$totalujrahteller += $item['ujrah'];
|
||||
$totalonepercentteller += $item['onepercent'];
|
||||
$totaldiskaunrebateteller += $item['diskaun_rebate'];
|
||||
@endphp
|
||||
|
||||
@php
|
||||
@@ -388,6 +395,7 @@
|
||||
<td><b>{{ number_format($totalpinjamanteller, 2) }} </b></td>
|
||||
<td><b>{{ number_format($totalujrahteller, 2) }} </b></td>
|
||||
<td><b>{{ number_format($totalonepercentteller, 2) }} </b></td>
|
||||
<td><b>{{ number_format($totaldiskaunrebateteller, 2) }} </b></td>
|
||||
<td><b>{{ number_format($totalupahteller, 2) }} </b></td>
|
||||
<td><b>{{ number_format($totalbayaranteller, 2) }} </b></td>
|
||||
<td><b>{{ number_format($totaljumlahteller, 2) }} </b></td>
|
||||
@@ -402,6 +410,7 @@
|
||||
$totaljumlahteller = 0;
|
||||
$totalujrahteller = 0;
|
||||
$totalonepercentteller = 0;
|
||||
$totaldiskaunrebateteller = 0;
|
||||
@endphp
|
||||
@endif
|
||||
@else
|
||||
@@ -412,6 +421,7 @@
|
||||
<td><b>{{ number_format($totalpinjamanteller, 2) }} </b></td>
|
||||
<td><b>{{ number_format($totalujrahteller, 2) }} </b></td>
|
||||
<td><b>{{ number_format($totalonepercentteller, 2) }} </b></td>
|
||||
<td><b>{{ number_format($totaldiskaunrebateteller, 2) }} </b></td>
|
||||
<td><b>{{ number_format($totalupahteller, 2) }} </b></td>
|
||||
<td><b>{{ number_format($totalbayaranteller, 2) }} </b></td>
|
||||
<td><b>{{ number_format($totaljumlahteller, 2) }} </b></td>
|
||||
|
||||
@@ -625,7 +625,7 @@
|
||||
<table id="payment" class="{{ sizeof($wakil) != 0 ? 'custom-table-right' : '' }}">
|
||||
<tr>
|
||||
<td style="width:10px">Baki Pembiayaan</td>
|
||||
<td style="width:10px">: RM {{ number_format($gadai['bakipjm'], 2) }} </td>
|
||||
<td style="width:10px">: <strong>RM {{ number_format($gadai['bakipjm'], 2) }} </td></strong>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:10px">Keuntungan</td>
|
||||
@@ -646,8 +646,17 @@
|
||||
<td style="width:10px">: RM
|
||||
{{ number_format($totalrebate['ujrah'], 2) }} </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td></td>
|
||||
<td style="width:10px">Jumlah Keuntungan + Lain-Lain Caj</td>
|
||||
<td style="width:10px">: <strong>RM
|
||||
{{ number_format($penebusan['onepercent'] + $penebusan['ujrah'], 2) }}</strong>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:10px">(-) Diskaun Promosi</td>
|
||||
<td style="width:10px">: RM
|
||||
{{ number_format($gadai['diskaun'], 2) }} </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
@@ -855,7 +864,7 @@
|
||||
<table id="payment" class="{{ sizeof($wakil) != 0 ? 'custom-table-right' : '' }}">
|
||||
<tr>
|
||||
<td style="width:10px">Baki Pembiayaan</td>
|
||||
<td style="width:10px">: RM {{ number_format($gadai['bakipjm'], 2) }} </td>
|
||||
<td style="width:10px">: <strong>RM {{ number_format($gadai['bakipjm'], 2) }} </strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:10px">Keuntungan</td>
|
||||
@@ -876,6 +885,18 @@
|
||||
<td style="width:10px">: RM
|
||||
{{ number_format($totalrebate['ujrah'], 2) }} </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="width:10px">Jumlah Keuntungan + Lain-Lain Caj</td>
|
||||
<td style="width:10px">: <strong>RM
|
||||
{{ number_format($penebusan['onepercent'] + $penebusan['ujrah'], 2) }}</strong>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:10px">(-) Diskaun Promosi</td>
|
||||
<td style="width:10px">: RM
|
||||
{{ number_format($gadai['diskaun'], 2) }} </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -10,18 +10,20 @@
|
||||
});
|
||||
</script>
|
||||
<style>
|
||||
.grid-container {
|
||||
display: grid;
|
||||
grid: 75px / 33% 33% 33%;
|
||||
padding-top: 10px;
|
||||
}
|
||||
.grid-container {
|
||||
display: grid;
|
||||
grid-template-columns: 45% 25% 30%;
|
||||
align-items: start;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
#header_surat1 {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
width: 100%;
|
||||
font-size: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
#header_surat1 {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
#header_surat1 p {
|
||||
margin: 2px;
|
||||
@@ -107,7 +109,7 @@
|
||||
|
||||
<div class="grid-container" style="margin-bottom: 10px">
|
||||
<div id="header_surat1">
|
||||
<p style="text-wrap:nowrap">KOPERASI PERMODALAN KELANTAN BERHAD (D-5-0228)</p>
|
||||
<p style="word-break: break-word;">KOPERASI PERMODALAN KELANTAN BERHAD (D-5-0228)</p>
|
||||
<p>{{ $cawangan_detail['namacaw'] }}</p>
|
||||
<p style="text-wrap:nowrap">{{ $cawangan_detail['alamat1'] }}</p>
|
||||
<p>{{ $cawangan_detail['alamat2'] }}</p>
|
||||
|
||||
+7
-1
@@ -110,6 +110,7 @@ Route::post('/createwakil',['as'=>'wakil.create','uses'=>'PenebusanController@cr
|
||||
Route::get('/firstwakil',['as'=>'wakil.first','uses'=>'PenebusanController@getfirstWakil'])->middleware('auth','teller');
|
||||
Route::get('/history',['as'=>'gadai.history','uses'=>'GadaianController@history'])->middleware('auth','teller');
|
||||
Route::get('/history/khazanah',['as'=>'gadai.history.khazanah','uses'=>'GadaianController@history'])->middleware('auth','khazanah');
|
||||
Route::post('/customer/assign-anggota', ['as' => 'customer.assignAnggota','uses' => 'CustomersController@assignAnggota'])->middleware('auth', 'teller');
|
||||
|
||||
//Kemaskini Upah
|
||||
Route::get('/kemaskiniupah',['as'=>'kemaskini.upah','uses'=>'AliranTunaiController@kemaskiniupah'])->middleware('auth','teller');
|
||||
@@ -185,7 +186,7 @@ Route::get('/capaian',['as'=>'khazanah.capaian','uses'=>'KhazanahController@capa
|
||||
Route::get('/alirantunai',['as'=>'khazanah.alirantunai','uses'=>'KhazanahController@alirantunai'])->middleware('auth','khazanah');
|
||||
Route::get('/pelangganan',['as'=>'khazanah.pelangganan','uses'=>'KhazanahController@pelanggan'])->middleware('auth','khazanah');
|
||||
Route::get('/bajet',['as'=>'khazanah.bajet','uses'=>'KhazanahController@bajet'])->middleware('auth','khazanah');
|
||||
//Route::get('/panjar',['as'=>'khazanah.panjar','uses'=>'KhazanahController@panjar'])->middleware('auth','khazanah');
|
||||
Route::get('/panjar',['as'=>'khazanah.panjar','uses'=>'KhazanahController@panjar'])->middleware('auth','khazanah');
|
||||
Route::get('/getkelulusan',['as'=>'khazanah.getkelulusan','uses'=>'KhazanahController@getkelulusan'])->middleware('auth','teller');
|
||||
Route::post('/createkelulusan',['as'=>'khazanah.createkelulusan','uses'=>'KhazanahController@createkelulusan'])->middleware('auth','teller');
|
||||
Route::put('/updatekelulusan',['as'=>'khazanah.updatekelulusan','uses'=>'KhazanahController@updatekelulusan'])->middleware('auth','khazanah');
|
||||
@@ -203,6 +204,8 @@ Route::post('/deletependahuluanserahan',['as'=>'khazanah.deletependser','uses'=>
|
||||
//Ubah dan Hapus
|
||||
Route::get('/getkelulu',['as'=>'teller.getkelulusan','uses'=>'GadaianController@getkelulusan'])->middleware('auth','teller');
|
||||
Route::post('/createkelulu',['as'=>'teller.createkelulusan','uses'=>'GadaianController@createkelulusan'])->middleware('auth');
|
||||
Route::post('/createkeluluanggota',['as'=>'teller.createkelulusan-anggota','uses'=>'GadaianController@createkelulusanAnggota'])->middleware('auth');
|
||||
|
||||
Route::put('/updatekelulu',['as'=>'teller.updatekelulusan','uses'=>'GadaianController@updatekelulusan'])->middleware('auth','khazanah');
|
||||
|
||||
|
||||
@@ -334,9 +337,12 @@ Route::post('/barcodescanned',['as'=>'barcode.scanned','uses'=>'KhazanahControll
|
||||
|
||||
//Operasi
|
||||
Route::get('/operasi/kelulusan','OperasiController@kelulusan')->name('operasi.kelulusan')->middleware('auth','operasi');
|
||||
Route::get('/operasi/kelulusan/anggota','OperasiController@kelulusanAnggota')->name('operasi.kelulusananggota')->middleware('auth','operasi');
|
||||
Route::post('/operasi/createkelulusan',['as'=>'operasi.createkelulusan','uses'=>'OperasiController@createkelulusan'])->middleware('auth','teller');
|
||||
Route::post('/operasi/createkelulusan-anggota',['as'=>'operasi.createkelulusan-anggota','uses'=>'OperasiController@createkelulusanAnggota'])->middleware('auth','teller');
|
||||
Route::get('/operasi/getkelulusan',['as'=>'operasi.getkelulusan','uses'=>'OperasiController@getkelulusan'])->middleware('auth','teller');
|
||||
Route::put('/operasi/updatekelulusan',['as'=>'operasi.updatekelulusan','uses'=>'OperasiController@updatekelulusan'])->middleware('auth','operasi');
|
||||
Route::put('/operasi/updatekelulusananggota',['as'=>'operasi.updatekelulusananggota','uses'=>'OperasiController@updatekelulusananggota'])->middleware('auth','operasi');
|
||||
Route::get('/operasi/parameter','OperasiController@parameter')->name('parameter')->middleware('auth','operasi');
|
||||
Route::get('/operasi/hargaemas',['as'=>'operasi.hargaemas','uses'=>'OperasiController@hargaemas'])->middleware('auth','operasi');
|
||||
Route::post('/operasi/hargaemas/update',['as'=>'hargaemas.update','uses'=>'OperasiController@updatehargaemas'])->middleware('auth','operasi');
|
||||
|
||||
Reference in New Issue
Block a user