Merge remote-tracking branch 'origin/prod-kopkb' into annur-rebate

This commit is contained in:
nurafrinaalimi16
2026-09-01 11:08:05 +08:00
66 changed files with 10790 additions and 4036 deletions
+152 -19
View File
@@ -13,6 +13,7 @@ use App\Events\NotifikasiKelulusan;
use App\Events\NotifikasiUbahHapus;
use App\Events\NotifikasiAGH;
use App\Events\NotifikasiPetiBesi;
use App\Events\AutoSerahan;
use App\User;
use App\Cawangan;
@@ -215,7 +216,11 @@ class KhazanahController extends Controller
$denominasi=$denominasi[0];
}
return view('khazanah.pendahuluanserahanmain',compact('cawangan_info','listgldetail','denominasi'));
$proses = Http::withOptions(['verify' => config('app.api_verify')])->get( config('api.url_koop') .'/api/autoserahan/checkapproval',[
'pc_name' => $auth_user['name']
])->json();
return view('khazanah.pendahuluanserahanmain',compact('cawangan_info','listgldetail','denominasi','proses'));
}
@@ -570,15 +575,9 @@ class KhazanahController extends Controller
{
$auth_user = Auth::user();
$api_url = config('api.url');
$norujukan = $request->norujukan;
$pelulus = $request->pelulus;
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json();
$getlulus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/GetLulus/'. $auth_user['cawangan'],['norujukan' => $norujukan])->json();
if($request->khazanah != null)
{
if($request->batal != null)
@@ -587,22 +586,32 @@ class KhazanahController extends Controller
$updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/kepohonan/' . $auth_user['cawangan'] . '/' . $norujukan,[
"pembatalan" => $request->batal,
"komen" => $request->komenubahhapus,
"khazanah" => $request->khazanah
"khazanah" => $request->khazanah,
"recno" => isset($request->recno) ? $request->recno : null,
])->json();
if($updatelulus)
{
event(new NotifikasiUbahHapus($norujukan,"batal",$request->komenubahhapus,$request->teller));
if(isset($request->tagoperasi) && $request->tagoperasi == 1){
event(new NotifikasiKelulusan($norujukan,"batal",$request->recno,$request->komenubahhapus,$request->teller));
}else{
event(new NotifikasiUbahHapus($norujukan,"batal",$request->komenubahhapus,$request->teller));
}
}
}else{
$updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/kepohonan/' . $auth_user['cawangan'] . '/' . $norujukan,[
"khazanah" => $request->khazanah
"khazanah" => $request->khazanah,
"recno" => isset($request->recno) ? $request->recno : null,
])->json();
if($updatelulus)
{
event(new NotifikasiUbahHapus($norujukan,"lulus","tiada",$request->teller));
if(isset($request->tagoperasi) && $request->tagoperasi == 1){
event(new NotifikasiKelulusan($norujukan,"lulus",$request->recno,$request->komenubahhapus,$request->teller,1));
}else{
event(new NotifikasiUbahHapus($norujukan,"lulus","tiada",$request->teller));
}
}
}
}
@@ -3072,7 +3081,9 @@ class KhazanahController extends Controller
$cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$auth_user['cawangan'])->json();
$cawangan_detail=$cawangan[0];
return view('print.laporan_pendahuluanserahan', compact('pendser','cawangan_detail','tarikh_cetak','mula_date','hingga_date','api_url'));
$jenisLaporan = $request->radpendser;
return view('print.laporan_pendahuluanserahan', compact('pendser','cawangan_detail','tarikh_cetak','mula_date','hingga_date','api_url','jenisLaporan'));
}
public function laporanDenominasi()
@@ -4117,9 +4128,13 @@ class KhazanahController extends Controller
if($request->radaktif === 'aktif')
{
$stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhas/aktif/'. $auth_user['cawangan'],
// $stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhas/aktif/'. $auth_user['cawangan'],
$stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhasbynorujukan/aktif/'. $auth_user['cawangan'],
['daritempoh' => $daritempoh, 'hinggatempoh' => $hinggatempoh])->json();
return view('print.laporan_stokauditkhas', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info'));
$stokaudit = collect($stokaudit)->sortByDesc('norujukan')->values()->all();
// dd($stokaudit);
// return view('print.laporan_stokauditkhas', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info'));
return view('print.laporan_stokauditkhasbysag', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info'));
}
}
@@ -4137,11 +4152,13 @@ class KhazanahController extends Controller
$cawangan=Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$auth_user['cawangan'])->json();
$cawangan_detail=$cawangan[0];
$stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhas/aktif/'. $auth_user['cawangan'],['daritempoh' => $daritempoh, 'hinggatempoh' => $hinggatempoh])->json();
// $stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhas/aktif/'. $auth_user['cawangan'],['daritempoh' => $daritempoh, 'hinggatempoh' => $hinggatempoh])->json();
$stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhasbynorujukan/aktif/'. $auth_user['cawangan'],['daritempoh' => $daritempoh, 'hinggatempoh' => $hinggatempoh])->json();
$stokaudit = collect($stokaudit)->sortByDesc('norujukan')->values()->all();
if($request->type == 'excel')
{
return view('excel.excel_stokauditkhas', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info'));
// return view('excel.excel_stokauditkhas', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info'));
return view('excel.excel_stokauditkhasbysag', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info'));
}
elseif($request->type == 'whatsapp')
{
@@ -4160,8 +4177,11 @@ class KhazanahController extends Controller
}
else
{
$stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhas/aktif/'. $auth_user['cawangan'],['daritempoh' => $daritempoh, 'hinggatempoh' => $hinggatempoh])->json();
return view('pdf.pdf_stokauditkhas', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info'));
// $stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhas/aktif/'. $auth_user['cawangan'],['daritempoh' => $daritempoh, 'hinggatempoh' => $hinggatempoh])->json();
$stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhasbynorujukan/aktif/'. $auth_user['cawangan'],['daritempoh' => $daritempoh, 'hinggatempoh' => $hinggatempoh])->json();
$stokaudit = collect($stokaudit)->sortByDesc('norujukan')->values()->all();
// return view('pdf.pdf_stokauditkhas', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info'));
return view('pdf.pdf_stokauditkhasbysag', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info'));
}
}
@@ -4291,4 +4311,117 @@ class KhazanahController extends Controller
$val = preg_replace('/\.(?=.*\.)/', '', $val);
return floatval($val);
}
public function AutoSerahan(Request $request)
{
if(isset($request->do_delete) && $request->do_delete == true){
$teller = $request->teller;
if ($teller !== html_entity_decode($teller, ENT_QUOTES | ENT_HTML5, 'UTF-8'))
$teller = html_entity_decode($teller, ENT_QUOTES | ENT_HTML5, 'UTF-8');
$call_approval_v3 = Http::withOptions(['verify' => config('app.api_verify')])
->post(config('api.url_koop') . '/api/autoserahan/delete', [
'recno' => $request->recno,
'version' => 'v3',
'kodcaw' => $request->kodcaw,
'teller' => $teller,
'amaun' => $request->amaun,
])->json();
return response()->json([
'status' => 'success',
'message' => 'Approval process completed successfully',
'id' => $call_approval_v3['id'],
]);
}
$teller = $request->arraysend['teller'];
if ($teller !== html_entity_decode($teller, ENT_QUOTES | ENT_HTML5, 'UTF-8'))
$teller = html_entity_decode($teller, ENT_QUOTES | ENT_HTML5, 'UTF-8');
// Step 1: Call API v3 First
$call_approval_v3 = Http::withOptions(['verify' => config('app.api_verify')])
->post(config('api.url_koop') . '/api/autoserahan/create', [
'kodcaw' => $request->arraysend['kodcaw'],
'teller' => $teller,
'amaun' => $request->arraysend['amaun'],
'txtring1' => $request->arraysend['ambilanring1'],
'txtring5' => $request->arraysend['ambilanring5'],
'txtring10' => $request->arraysend['ambilanring10'],
'txtring20' => $request->arraysend['ambilanring20'],
'txtring50' => $request->arraysend['ambilanring50'],
'txtring100' => $request->arraysend['ambilanring100'],
'txtsen1' => $request->arraysend['ambilansen1'],
'txtsen5' => $request->arraysend['ambilansen5'],
'txtsen10' => $request->arraysend['ambilansen10'],
'txtsen20' => $request->arraysend['ambilansen20'],
'txtsen50' => $request->arraysend['ambilansen50'],
'jenis' => 'pendahuluan',
'action' => 'create',
'version' => 'v3',
])->json();
// Check if API v3 was successful before proceeding
if (!isset($call_approval_v3['id']) || $call_approval_v3['status'] !== 'success') {
return response()->json([
'status' => 'failed',
'message' => 'API v3 failed. Cannot proceed to API v2.',
'error' => $call_approval_v3
], 400);
}
// Step 2: Call API v2 using response from API v3
$call_approval_v2 = Http::withOptions(['verify' => config('app.api_verify')])
->post(config('api.url_pkb') . '/api/autoserahan/create', [
'id' => $call_approval_v3['id'], // Use ID from API v3 response
'kodcaw' => $request->arraysend['kodcaw'],
'teller' => $teller,
'amaun' => $request->arraysend['amaun'],
'txtring1' => $request->arraysend['ambilanring1'],
'txtring5' => $request->arraysend['ambilanring5'],
'txtring10' => $request->arraysend['ambilanring10'],
'txtring20' => $request->arraysend['ambilanring20'],
'txtring50' => $request->arraysend['ambilanring50'],
'txtring100' => $request->arraysend['ambilanring100'],
'txtsen1' => $request->arraysend['ambilansen1'],
'txtsen5' => $request->arraysend['ambilansen5'],
'txtsen10' => $request->arraysend['ambilansen10'],
'txtsen20' => $request->arraysend['ambilansen20'],
'txtsen50' => $request->arraysend['ambilansen50'],
'jenis' => 'serahan',
'version' => 'v2',
])->json();
$call_set_approval_v3 = Http::withOptions(['verify' => config('app.api_verify')])
->put(config('api.url_koop') . '/api/autoserahan/setapproval', [
'jenis' => 'create',
'id' => $call_approval_v3['id'],
'deno_id' => $call_approval_v2['denoid']
])->json();
// Step 3: Check if both API v3 and API v2 were successful
if ($call_approval_v2['status'] === 'success' && $call_approval_v3['status'] === 'success' && $call_set_approval_v3['status'] === 'success') {
event(new AutoSerahan("Operasi",$call_approval_v3['id'],$request->arraysend['kodcaw'],$teller));
return response()->json([
'status' => 'success',
'message' => 'Approval process completed successfully',
'id' => $call_approval_v3['id'],
]);
} else {
return response()->json([
'status' => 'failed',
'message' => 'One of the approvals failed',
], 400);
}
}
}