update all controller frontend for kadar anggota koperasi

This commit is contained in:
nurafrinaalimi16
2025-11-10 18:41:42 +08:00
parent 68918b56a1
commit bb8bcae8e8
6 changed files with 941 additions and 428 deletions
+47
View File
@@ -0,0 +1,47 @@
<?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 $siri;
public $komen;
public $tagoperasi;
public function __construct($nokp, $status, $siri, $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,
];
}
}
+271 -41
View File
@@ -14,6 +14,7 @@ use Illuminate\Support\Facades\Auth;
use Twilio\Rest\Client; use Twilio\Rest\Client;
use App\Komoditi; use App\Komoditi;
use App\Events\Dashboard\PelangganNotify; use App\Events\Dashboard\PelangganNotify;
use Illuminate\Support\Facades\Log;
use Carbon\Carbon; use Carbon\Carbon;
@@ -24,7 +25,7 @@ class CustomersController extends Controller
public function __construct() public function __construct()
{ {
$this->middleware('auth'); $this->middleware('auth');
$this->customerService = New CustomerService(); $this->customerService = new CustomerService();
} }
/** /**
* Display a listing of the resource. * Display a listing of the resource.
@@ -46,76 +47,238 @@ class CustomersController extends Controller
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(); $auth_user = Auth::user();
$api_url = config('api.url'); $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(); // 🔹 Panggil maklumat cawangan
// dd($customer_info); $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])
$pekerjaan = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/pekerjaan')->json(); ->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(); $komoditi = Komoditi::first();
$min_komoditi = $komoditi['min_komoditi']; $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(); // 🔹 Panggil baki lelong
$rugilelong = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/bakilelong/cawangan/' . $auth_user['cawangan'] . '/' . Session::get('noic') . '/rugi')->json(); $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('page_reload');
$request->session()->forget('norujukan'); $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',[ // Logik papar butang "Assign sebagai Anggota"
$showAssignAnggotaBtn = false;
$noic = Session::get('noic');
if (!empty($customer_info)) {
// 🔹 Panggil API anggota
$anggota_info = Http::withOptions(['verify' => config('app.api_verify')])
->get($api_url . '/api/customer/anggota', [
'noic' => $noic
])
->json();
// 🔹 Semak jika ada data anggota dan belum di-tag sebagai anggota
$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;
}
}
// Return ke view
$getApprovalError = Http::withOptions(['verify' => config('app.api_verify')])
->get($api_url . '/api/getApproval', [
'kodcaw' => $auth_user['cawangan'], 'kodcaw' => $auth_user['cawangan'],
'teller' => $auth_user['name'], 'teller' => $auth_user['name'],
])->json(); ])
->json();
if ($request->tebus_auto_tawarruq_berjaya === 'true') { if ($request->tebus_auto_tawarruq_berjaya === 'true') {
$request->session()->flash('activate_tab', 'SAG_baru'); $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; $noic = $request->noic;
$idtype = $request->customerIDType; $idtype = $request->customerIDType;
Session::put('noic', $noic); Session::put('noic', $noic);
$api_url = config('api.url'); $api_url = config('api.url');
$auth_user = Auth::user(); $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',[ // Dapatkan maklumat asas
'nokp' => $noic $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])
])->json(); ->get($api_url . '/api/cawangan/' . $auth_user['cawangan'])
// if($customers_info){ ->json();
// $customer_info = $customers_info[0];
// }else{ $bank = Http::withOptions(['verify' => config('app.api_verify')])
// $customer_info = $customers_info; ->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('page_reload');
$request->session()->forget('norujukan'); $request->session()->forget('norujukan');
$blacklist_search = false; $blacklist_search = false;
$search = true; $search = true;
// 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,
]);
// PROSES PAPARAN MENGIKUT HASIL CARIAN
if ($customer_info) { if ($customer_info) {
// Ada maklumat pelanggan
if ($blacklist) { if ($blacklist) {
$blacklist_search = true; $blacklist_search = true;
return view('customers.' . $cawangan_info['version'] .'.index',compact('blacklist_search','customer_info','search','noic','cawangan_info','bank','api_url','idtype')); 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 { } else {
// Simpan dalam session & redirect ke paparan info pelanggan
Session::put('customer_info', $customer_info); 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 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 { } else {
// Tiada customer dalam sistem
if ($blacklist) { if ($blacklist) {
$blacklist_search = true; $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'
));
} }
} }
@@ -180,8 +343,7 @@ class CustomersController extends Controller
if ($latest_customer == null) { if ($latest_customer == null) {
$nosiri_latest = 1; $nosiri_latest = 1;
} } else {
else{
$nosiri_latest = $latest_customer['nosiri'] + 1; $nosiri_latest = $latest_customer['nosiri'] + 1;
} }
@@ -199,7 +361,6 @@ class CustomersController extends Controller
'kodnegeri' => $request->kodnegeri, 'kodnegeri' => $request->kodnegeri,
'user' => auth()->user(), 'user' => auth()->user(),
])->json(); ])->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'], [
@@ -238,7 +399,8 @@ class CustomersController extends Controller
return redirect()->route('customer_info')->with(['customer_info' => $customer_info]); return redirect()->route('customer_info')->with(['customer_info' => $customer_info]);
} }
public function getOTP(Request $request){ public function getOTP(Request $request)
{
$auth_user = Auth::user(); $auth_user = Auth::user();
$expired = Carbon::now(); $expired = Carbon::now();
$expired = new Carbon(); $expired = new Carbon();
@@ -253,13 +415,68 @@ class CustomersController extends Controller
$recipient = '6' . $customer['telefon']; $recipient = '6' . $customer['telefon'];
// $recipient = '60189025461'; // $recipient = '60189025461';
//pembinaan token //pembinaan token
function token($length) { function token($length)
{
$characters = array( $characters = array(
"A","B","C","D","E","F","G","H","J","K","L","M", "A",
"N","P","Q","R","S","T","U","V","W","X","Y","Z", "B",
"a","b","c","d","e","f","g","h","i","j","k","m", "C",
"n","o","p","q","r","s","t","u","v","w","x","y","z", "D",
"1","2","3","4","5","6","7","8","9"); "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; if ($length < 0 || $length > count($characters)) return null;
shuffle($characters); shuffle($characters);
return implode("", array_slice($characters, 0, $length)); return implode("", array_slice($characters, 0, $length));
@@ -349,4 +566,17 @@ class CustomersController extends Controller
return ($status); 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.');
}
}
} }
+125 -52
View File
@@ -18,6 +18,8 @@ use Carbon\Carbon;
use App\Http\Controllers\AliranTunaiController; use App\Http\Controllers\AliranTunaiController;
use App\User; use App\User;
use Illuminate\Support\Facades\Log;
class GadaianController extends Controller class GadaianController extends Controller
{ {
public $AliranTunaiController; public $AliranTunaiController;
@@ -26,11 +28,12 @@ class GadaianController extends Controller
public function __construct() public function __construct()
{ {
$this->middleware('auth'); $this->middleware('auth');
$this->customerService = New CustomerService(); $this->customerService = new CustomerService();
$this->AliranTunaiController = New AliranTunaiController(); $this->AliranTunaiController = new AliranTunaiController();
} }
public function index(Request $request){ public function index(Request $request)
{
$api_url = config('api.url'); $api_url = config('api.url');
$current = Carbon::now(); $current = Carbon::now();
@@ -95,7 +98,8 @@ class GadaianController extends Controller
return view('gadaian.' . $cawangan_info['version'] . '.index', compact('customer_info', 'limit_pinjaman_semasa', 'cawangan_info', 'norujukan', 'api_url', 'current')); return view('gadaian.' . $cawangan_info['version'] . '.index', compact('customer_info', 'limit_pinjaman_semasa', 'cawangan_info', 'norujukan', 'api_url', 'current'));
} }
public function edit(Request $request,$norujukan){ public function edit(Request $request, $norujukan)
{
$api_url = config('api.url'); $api_url = config('api.url');
$current = Carbon::now(); $current = Carbon::now();
@@ -122,7 +126,8 @@ class GadaianController extends Controller
return view('gadaian.' . $cawangan_info['version'] . '.edit', compact('customer_info', 'gadaiannorujukan', 'limit_pinjaman_semasa', 'cawangan_info', 'norujukan', 'api_url')); return view('gadaian.' . $cawangan_info['version'] . '.edit', compact('customer_info', 'gadaiannorujukan', 'limit_pinjaman_semasa', 'cawangan_info', 'norujukan', 'api_url'));
} }
public function editmarhun(Request $request){ public function editmarhun(Request $request)
{
$api_url = config('api.url'); $api_url = config('api.url');
@@ -135,7 +140,8 @@ class GadaianController extends Controller
return $gadaiannorujukan; return $gadaiannorujukan;
} }
public function ubahmarhun(Request $request){ public function ubahmarhun(Request $request)
{
$api_url = config('api.url'); $api_url = config('api.url');
@@ -153,7 +159,8 @@ class GadaianController extends Controller
return redirect()->back(); return redirect()->back();
} }
public function store(Request $request){ public function store(Request $request)
{
$auth_user = Auth::user(); $auth_user = Auth::user();
//$total_nilai_marhun = $request->total_nilai_marhun; //$total_nilai_marhun = $request->total_nilai_marhun;
//need to get total nilai marhun by api get from table marhun //need to get total nilai marhun by api get from table marhun
@@ -171,6 +178,7 @@ class GadaianController extends Controller
$keuntungan12bulan = $keuntungan_sebln * 12; $keuntungan12bulan = $keuntungan_sebln * 12;
$hargajualan = $request->pinjaman + $keuntungan12bulan; $hargajualan = $request->pinjaman + $keuntungan12bulan;
Log::info('DEBUG NOKP:' . $request->nokp);
$gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/norujukan/' . $auth_user['cawangan'] . '/' . $request->norujukan_gadai, [ $gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/norujukan/' . $auth_user['cawangan'] . '/' . $request->norujukan_gadai, [
'kodcaw' => $auth_user['cawangan'], 'kodcaw' => $auth_user['cawangan'],
'nilaimarhun' => round($total_nilai_marhun, 2), 'nilaimarhun' => round($total_nilai_marhun, 2),
@@ -189,6 +197,7 @@ class GadaianController extends Controller
'ujrah' => $ujrah, 'ujrah' => $ujrah,
'onepercent' => $onepercent, 'onepercent' => $onepercent,
'margin_semasa' => $margin_pinjaman, 'margin_semasa' => $margin_pinjaman,
'nokp' => $request->nokp,
])->json(); ])->json();
@@ -210,7 +219,8 @@ class GadaianController extends Controller
return redirect()->route('customer_info'); return redirect()->route('customer_info');
} }
public function editstore(Request $request){ public function editstore(Request $request)
{
$auth_user = Auth::user(); $auth_user = Auth::user();
$total_nilai_marhun = $request->total_nilai_marhun; $total_nilai_marhun = $request->total_nilai_marhun;
@@ -257,7 +267,8 @@ class GadaianController extends Controller
return redirect()->route('customer_info'); return redirect()->route('customer_info');
} }
public function batal(Request $request){ public function batal(Request $request)
{
$norujukan = $request->norujukan; $norujukan = $request->norujukan;
$auth_user = Auth::user(); $auth_user = Auth::user();
@@ -267,7 +278,8 @@ class GadaianController extends Controller
return redirect()->route('customer_info'); return redirect()->route('customer_info');
} }
public function batalmarhun(Request $request){ public function batalmarhun(Request $request)
{
$norujukan = $request->norujukan; $norujukan = $request->norujukan;
$auth_user = Auth::user(); $auth_user = Auth::user();
@@ -278,7 +290,8 @@ class GadaianController extends Controller
// return redirect()->route('customer_info'); // return redirect()->route('customer_info');
} }
public function cetakSAG(Request $request){ public function cetakSAG(Request $request)
{
$auth_user = Auth::user(); $auth_user = Auth::user();
$gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/norujukan/cetak/' . $auth_user['cawangan'] . '/' . $request->norujukan_modal); $gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/norujukan/cetak/' . $auth_user['cawangan'] . '/' . $request->norujukan_modal);
@@ -286,7 +299,8 @@ class GadaianController extends Controller
return redirect()->route('home'); return redirect()->route('home');
} }
public function serahMarhun(Request $request){ public function serahMarhun(Request $request)
{
$auth_user = Auth::user(); $auth_user = Auth::user();
$norujukan_serah = $request->norujukanpilih; $norujukan_serah = $request->norujukanpilih;
@@ -310,7 +324,8 @@ class GadaianController extends Controller
return redirect()->route('home'); return redirect()->route('home');
} }
public function printSAG(Request $request){ public function printSAG(Request $request)
{
$norujukan = $request->norujukan_modal; $norujukan = $request->norujukan_modal;
$auth_user = Auth::user(); $auth_user = Auth::user();
$auth_username = $auth_user['name']; $auth_username = $auth_user['name'];
@@ -320,13 +335,11 @@ class GadaianController extends Controller
$gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $auth_user['cawangan'] . '/' . $norujukan)->json(); $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $auth_user['cawangan'] . '/' . $norujukan)->json();
$gadai_detail = $gadai[0]; $gadai_detail = $gadai[0];
if(isset($request->jenisprint)) if (isset($request->jenisprint)) {
{
$cetak_sag = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/norujukan/cetak/' . $auth_user['cawangan'] . '/' . $norujukan, [ $cetak_sag = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/norujukan/cetak/' . $auth_user['cawangan'] . '/' . $norujukan, [
'penilai' => $auth_user['name'] 'penilai' => $auth_user['name']
]); ]);
} }
$kakitangan = User::where([['role_harian', 'khazanah'], ['cawangan', $kodcaw]])->first(); $kakitangan = User::where([['role_harian', 'khazanah'], ['cawangan', $kodcaw]])->first();
@@ -484,8 +497,7 @@ class GadaianController extends Controller
$transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/' . $id)->json(); $transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/' . $id)->json();
foreach($transaction as $trans) foreach ($transaction as $trans) {
{
$totaltransaction += $trans['duit_masuk']; $totaltransaction += $trans['duit_masuk'];
} }
@@ -528,8 +540,7 @@ class GadaianController extends Controller
$transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/' . $id)->json(); $transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/' . $id)->json();
foreach($transaction as $trans) foreach ($transaction as $trans) {
{
$totaltransaction += $trans['duit_masuk']; $totaltransaction += $trans['duit_masuk'];
} }
@@ -577,8 +588,7 @@ class GadaianController extends Controller
$transaction_tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/' . $id)->json(); $transaction_tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/' . $id)->json();
foreach($transaction as $trans) foreach ($transaction as $trans) {
{
$totaltransaction += $trans['duit_masuk']; $totaltransaction += $trans['duit_masuk'];
} }
@@ -643,15 +653,12 @@ class GadaianController extends Controller
// dd($penebusan['nowakil']); // dd($penebusan['nowakil']);
if($penebusan['nowakil'] != 0) if ($penebusan['nowakil'] != 0) {
{
$wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $penebusan['nowakil'])->json(); $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $penebusan['nowakil'])->json();
if (sizeof($wakil) != 0) if (sizeof($wakil) != 0)
$wakil = $wakil[0]; $wakil = $wakil[0];
} } else {
else
{
$wakil = []; $wakil = [];
} }
@@ -682,9 +689,7 @@ class GadaianController extends Controller
if (sizeof($wakil) != 0) { if (sizeof($wakil) != 0) {
$wakil = $wakil[0]; $wakil = $wakil[0];
} }
} } else {
else
{
$wakil = []; $wakil = [];
} }
@@ -720,17 +725,14 @@ class GadaianController extends Controller
// dd($penebusan['nowakil']); // dd($penebusan['nowakil']);
$surat_wakil = []; $surat_wakil = [];
if($penebusan['nowakil'] != 0) if ($penebusan['nowakil'] != 0) {
{
$wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $penebusan['nowakil'])->json(); $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $penebusan['nowakil'])->json();
if (sizeof($wakil) != 0) { if (sizeof($wakil) != 0) {
$wakil = $wakil[0]; $wakil = $wakil[0];
$surat_wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getsuratwakil/' . $auth_user['cawangan'] . '/' . $id)->json(); $surat_wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getsuratwakil/' . $auth_user['cawangan'] . '/' . $id)->json();
} }
} } else {
else
{
$wakil = []; $wakil = [];
} }
@@ -747,28 +749,23 @@ class GadaianController extends Controller
$gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $request->norujukan)->json(); $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $request->norujukan)->json();
if(sizeof($gadai) > 0) if (sizeof($gadai) > 0) {
{
$history = $gadai[0][0]['historygadaian']; $history = $gadai[0][0]['historygadaian'];
$dahtebus = $gadai[0][0]['sttebus']; $dahtebus = $gadai[0][0]['sttebus'];
$norujukan = $gadai[0][0]['norujukan']; $norujukan = $gadai[0][0]['norujukan'];
} }
$count = 0; $count = 0;
$arrayhist = []; $arrayhist = [];
while($history != "0" && $history != '' || $dahtebus == 'T') while ($history != "0" && $history != '' || $dahtebus == 'T') {
{ if ($history != "0" && $history != '') {
if($history != "0" && $history != '')
{
$gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $history)->json(); $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $history)->json();
$tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'], [ $tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'], [
"norujukan" => $history "norujukan" => $history
])->json(); ])->json();
if(sizeof($gadai) > 0) if (sizeof($gadai) > 0) {
{
if ($history == $gadai[0][0]['historygadaian']) if ($history == $gadai[0][0]['historygadaian'])
$history = 0; $history = 0;
else { else {
@@ -778,9 +775,7 @@ class GadaianController extends Controller
} }
$count++; $count++;
} else {
}
else{
$gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $norujukan)->json(); $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $norujukan)->json();
$tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'], [ $tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'], [
"norujukan" => $norujukan "norujukan" => $norujukan
@@ -810,12 +805,9 @@ class GadaianController extends Controller
"norujukan" => $norujukan "norujukan" => $norujukan
])->json(); ])->json();
if(sizeof($kelulusan) > 0) if (sizeof($kelulusan) > 0) {
{
$kelulusan = $kelulusan['benar']; $kelulusan = $kelulusan['benar'];
} } else {
else
{
$kelulusan = ''; $kelulusan = '';
} }
@@ -869,6 +861,87 @@ class GadaianController extends Controller
return response()->json($createlulus, 201); return response()->json($createlulus, 201);
} }
public function createkelulusanAnggota(Request $request)
{
$auth_user = Auth::user();
$api_url = config('api.url');
$verify_ssl = config('app.api_verify');
// 🔸 Validasi asas
$request->validate([
'norujukan' => 'required|string',
'noic' => 'required|string',
'komen' => 'required|string',
'teller' => 'required|string',
]);
$norujukan = $request->norujukan;
$current = Carbon::now();
// 1️⃣ Dapatkan info cawangan
$cawangan_info = Http::withOptions(['verify' => $verify_ssl])
->get("{$api_url}/api/cawangan/{$auth_user->cawangan}")
->json();
if (empty($cawangan_info)) {
return response()->json(['message' => 'Maklumat cawangan tidak ditemui.'], 404);
}
// 2️⃣ Dapatkan siri terkini (supaya sistem tahu kelulusan ke berapa)
$getsiri = Http::withOptions(['verify' => $verify_ssl])
->get("{$api_url}/api/ListLatestLulus/{$auth_user->cawangan}/{$norujukan}")
->json();
$siri = isset($getsiri['siri']) ? ((int) $getsiri['siri'] + 1) : 1;
$createlulus = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/CreateLulus/' . $auth_user['cawangan'] . '/' . $norujukan, [
'mohon' => $request->mohon,
'teller' => $auth_user['name'],
'komen' => $request->komen,
'status' => $request->status,
'ansuran' => $request->ansuran,
'tagoperasi' => ($request->tagoperasi) ? $request->tagoperasi : 0,
])->json();
// 3️⃣ Hantar permohonan ke API utama
$payload = [
'komen' => $request->komen,
'dategadai' => $current->toDateString(),
'bilgadai' => 1,
'siri' => $siri,
'status' => 'TUNGGU KELULUSAN OPERASI',
'teller' => $request->teller,
'peloperasi' => 'operasi',
'mohon' => 'Assign Anggota',
'noic' => $request->noic,
'jenistebus' => 'A', // “A” = anggota
'tagoperasi' => 1, // 1 = tunggu kelulusan operasi
];
$createLulus = Http::withOptions(['verify' => $verify_ssl])
->post("{$api_url}/api/CreateKelulusanAnggota/{$auth_user->cawangan}/{$norujukan}/roles/operasi", $payload)
->json();
// 4️⃣ Jika API gagal
if (isset($createLulus['error']) || !$createLulus) {
return response()->json([
'message' => 'Gagal menghantar permohonan kelulusan operasi.',
'error' => $createLulus['error'] ?? $createLulus
], 500);
}
// 5️⃣ Trigger event untuk notifikasi operasi
event(new StatusLiked($auth_user->cawangan, $auth_user->name));
// 6️⃣ Hantar respon berjaya
return response()->json([
'message' => 'Permohonan kelulusan operasi (Assign Anggota) berjaya dihantar.',
'siri' => $siri,
'api_response' => $createLulus,
], 201);
}
///END KELULUSAN/// ///END KELULUSAN///
} }
+169 -36
View File
@@ -7,6 +7,7 @@ namespace App\Http\Controllers;
use App\Events\OperasiNotice; use App\Events\OperasiNotice;
use App\Events\StatusLiked; use App\Events\StatusLiked;
use App\Events\NotifikasiKelulusan; use App\Events\NotifikasiKelulusan;
use App\Events\NotifikasiAnggota;
use App\Events\Dashboard\KomoditiNotify; use App\Events\Dashboard\KomoditiNotify;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
@@ -25,7 +26,8 @@ class OperasiController extends Controller
$this->middleware('auth'); $this->middleware('auth');
} }
public function kelulusan(Request $request){ public function kelulusan(Request $request)
{
$auth_user = Auth::user(); $auth_user = Auth::user();
$api_url = config('api.url'); $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();
@@ -35,15 +37,12 @@ class OperasiController extends Controller
$arraykelulusan = []; $arraykelulusan = [];
foreach($kelulusan as $index=>$lulus) foreach ($kelulusan as $index => $lulus) {
{ foreach ($lulus['kelulusanall'] as $index => $kel) {
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']]); 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) 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'] ?? '-')]); 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'] ?? '-')]);
} }
} }
@@ -63,12 +62,9 @@ class OperasiController extends Controller
$kelulusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/SenaraiDahLulus/' . $auth_user['cawangan'] . '/' . $norujukan)->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']; $kelulusan = $kelulusan[0]['masalulus'];
} } else {
else
{
$kelulusan = ''; $kelulusan = '';
} }
@@ -84,8 +80,7 @@ class OperasiController extends Controller
$norujukan = $request->norujukan; $norujukan = $request->norujukan;
if($request->pembatalan == null) if ($request->pembatalan == null) {
{
if (!$request->taglulus) { if (!$request->taglulus) {
$updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusanKomen/' . $request->kodcaw . '/' . $norujukan, [ $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusanKomen/' . $request->kodcaw . '/' . $norujukan, [
"komen" => $request->komenkelulusan, "komen" => $request->komenkelulusan,
@@ -108,13 +103,10 @@ class OperasiController extends Controller
} }
if($updatelulus) if ($updatelulus) {
{
event(new NotifikasiKelulusan($norujukan, "lulus", $request->siri, $request->komenkelulusan, $request->teller)); event(new NotifikasiKelulusan($norujukan, "lulus", $request->siri, $request->komenkelulusan, $request->teller));
} }
} } else {
else
{
if (!$request->taglulus) { if (!$request->taglulus) {
$updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusanKomen/' . $request->kodcaw . '/' . $norujukan, [ $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusanKomen/' . $request->kodcaw . '/' . $norujukan, [
"komen" => $request->komenkelulusan, "komen" => $request->komenkelulusan,
@@ -136,8 +128,7 @@ class OperasiController extends Controller
])->json(); ])->json();
} }
if($updatelulus) if ($updatelulus) {
{
event(new NotifikasiKelulusan($norujukan, "batal", $request->siri, $request->komenkelulusan, $request->teller)); event(new NotifikasiKelulusan($norujukan, "batal", $request->siri, $request->komenkelulusan, $request->teller));
} }
} }
@@ -148,6 +139,89 @@ class OperasiController extends Controller
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) public function createkelulusan(Request $request)
{ {
$auth_user = Auth::user(); $auth_user = Auth::user();
@@ -162,8 +236,7 @@ class OperasiController extends Controller
$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; $siri = $getsiri['siri'] + 1;
} else { } else {
$siri = 1; $siri = 1;
@@ -190,18 +263,70 @@ class OperasiController extends Controller
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) public function mintakatalaluansemula(Request $request)
{ {
if(Hash::check($request->passsemula, Auth::user()->password)) if (Hash::check($request->passsemula, Auth::user()->password)) {
{
return "True"; return "True";
} } else {
else
{
return "False"; return "False";
} }
} }
public function parameter() public function parameter()
@@ -223,7 +348,8 @@ class OperasiController extends Controller
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(); $auth_user = Auth::user();
$api_url = config('api.url'); $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();
@@ -243,10 +369,8 @@ class OperasiController extends Controller
$kelulusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/ListOperasiKelulusan/')->json(); $kelulusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/ListOperasiKelulusan/')->json();
foreach($kelulusan as $index=>$k) foreach ($kelulusan as $index => $k) {
{ foreach ($k['kelulusanall'] as $index1 => $kel) {
foreach($k['kelulusanall'] as $index1=>$kel)
{
$komen = explode("|", $kel['komen']); $komen = explode("|", $kel['komen']);
$results = array_search("", $komen, true); $results = array_search("", $komen, true);
@@ -255,12 +379,10 @@ class OperasiController extends Controller
} }
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() public function notifyKomoditi()
@@ -268,4 +390,15 @@ class OperasiController extends Controller
$auth_user = Auth::user(); $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'));
}
} }
+24
View File
@@ -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',
]);
}
}
+6
View File
@@ -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('/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',['as'=>'gadai.history','uses'=>'GadaianController@history'])->middleware('auth','teller');
Route::get('/history/khazanah',['as'=>'gadai.history.khazanah','uses'=>'GadaianController@history'])->middleware('auth','khazanah'); 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 //Kemaskini Upah
Route::get('/kemaskiniupah',['as'=>'kemaskini.upah','uses'=>'AliranTunaiController@kemaskiniupah'])->middleware('auth','teller'); Route::get('/kemaskiniupah',['as'=>'kemaskini.upah','uses'=>'AliranTunaiController@kemaskiniupah'])->middleware('auth','teller');
@@ -203,6 +204,8 @@ Route::post('/deletependahuluanserahan',['as'=>'khazanah.deletependser','uses'=>
//Ubah dan Hapus //Ubah dan Hapus
Route::get('/getkelulu',['as'=>'teller.getkelulusan','uses'=>'GadaianController@getkelulusan'])->middleware('auth','teller'); 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('/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'); 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 //Operasi
Route::get('/operasi/kelulusan','OperasiController@kelulusan')->name('operasi.kelulusan')->middleware('auth','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',['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::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/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/parameter','OperasiController@parameter')->name('parameter')->middleware('auth','operasi');
Route::get('/operasi/hargaemas',['as'=>'operasi.hargaemas','uses'=>'OperasiController@hargaemas'])->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'); Route::post('/operasi/hargaemas/update',['as'=>'hargaemas.update','uses'=>'OperasiController@updatehargaemas'])->middleware('auth','operasi');