46c7cc08a7
2. bug fix when table 0 marhun must cannot press papar margin. 3. bug fix when in papar margin display must cannot press daftar marhun. 4. change bersih to bersih in editmarhun
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'));
|
|
}
|
|
}
|