405 lines
16 KiB
PHP
405 lines
16 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
|
|
//Events
|
|
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;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Http;
|
|
use Illuminate\Support\Facades\Hash;
|
|
|
|
|
|
use Carbon\Carbon;
|
|
use Illuminate\Support\Facades\Log;
|
|
|
|
class OperasiController extends Controller
|
|
{
|
|
public function __construct()
|
|
{
|
|
$this->middleware('auth');
|
|
}
|
|
|
|
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();
|
|
|
|
$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 ($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'));
|
|
}
|
|
|
|
public function getkelulusan(Request $request)
|
|
{
|
|
$auth_user = Auth::user();
|
|
$api_url = config('api.url');
|
|
|
|
$norujukan = $request->norujukan;
|
|
|
|
$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) {
|
|
$kelulusan = $kelulusan[0]['masalulus'];
|
|
} else {
|
|
$kelulusan = '';
|
|
}
|
|
|
|
return response($kelulusan);
|
|
}
|
|
|
|
public function updatekelulusan(Request $request)
|
|
{
|
|
$auth_user = Auth::user();
|
|
|
|
$api_url = config('api.url');
|
|
|
|
$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, [
|
|
"komen" => $request->komenkelulusan,
|
|
'siri' => $request->siri
|
|
])->json();
|
|
|
|
$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', [
|
|
'siri' => $request->siri,
|
|
"kodcaw" => $request->kodcaw,
|
|
"norujukan" => $request->norujukan,
|
|
'namaoperasi' => $request->namaoperasi,
|
|
'sahkan' => 1,
|
|
])->json();
|
|
}
|
|
|
|
|
|
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, [
|
|
"komen" => $request->komenkelulusan,
|
|
'siri' => $request->siri
|
|
])->json();
|
|
|
|
$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', [
|
|
'siri' => $request->siri,
|
|
"kodcaw" => $request->kodcaw,
|
|
"norujukan" => $request->norujukan,
|
|
'namaoperasi' => $request->namaoperasi,
|
|
'sahkan' => 2,
|
|
])->json();
|
|
}
|
|
|
|
if ($updatelulus) {
|
|
event(new NotifikasiKelulusan($norujukan, "batal", $request->siri, $request->komenkelulusan, $request->teller));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
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();
|
|
$api_url = config('api.url');
|
|
|
|
$current = Carbon::now();
|
|
$current = new Carbon();
|
|
|
|
$norujukan = $request->norujukan;
|
|
|
|
$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();
|
|
|
|
if (isset($getsiri['siri'])) {
|
|
$siri = $getsiri['siri'] + 1;
|
|
} else {
|
|
$siri = 1;
|
|
}
|
|
|
|
$createlulus = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/CreateKelulusan/' . $auth_user['cawangan'] . '/' . $norujukan . '/roles/operasi', [
|
|
'komen' => $request->komen,
|
|
'dategadai' => $current->toDateString(),
|
|
'bilgadai' => 1,
|
|
'siri' => $siri,
|
|
'margin' => $request->margin,
|
|
'berat' => $request->berat,
|
|
'nilaimarhun' => $request->nilaimarhun,
|
|
'status' => $request->status,
|
|
'jumpinjam' => $request->jumpinjam,
|
|
'jenistebus' => "G",
|
|
'teller' => $request->teller,
|
|
'peloperasi' => "operasi"
|
|
|
|
])->json();
|
|
|
|
event(new StatusLiked($auth_user['cawangan'], $auth_user['name']));
|
|
|
|
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)) {
|
|
return "True";
|
|
} 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();
|
|
|
|
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();
|
|
$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'));
|
|
}
|
|
|
|
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();
|
|
$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'));
|
|
}
|
|
|
|
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();
|
|
|
|
//declare array baru
|
|
$arraykelulusan = [];
|
|
|
|
$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']);
|
|
|
|
$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'],]);
|
|
}
|
|
}
|
|
|
|
return view('operasi.rekodtelahlulus', compact('cawangan_info', 'api_url', 'arraykelulusan'));
|
|
}
|
|
|
|
public function notifyKomoditi()
|
|
{
|
|
$auth_user = Auth::user();
|
|
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'));
|
|
}
|
|
}
|