@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace App\Events;
|
||||
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Foundation\Events\Dispatchable;
|
||||
use Illuminate\Broadcasting\InteractsWithSockets;
|
||||
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
|
||||
|
||||
class AutoSerahan implements ShouldBroadcast
|
||||
{
|
||||
use Dispatchable, InteractsWithSockets, SerializesModels;
|
||||
|
||||
public $pengesahan;
|
||||
public $cawangan;
|
||||
public $kodlaluan;
|
||||
public $id;
|
||||
|
||||
public function __construct($pengesahan,$id,$cawangan,$kodlaluan)
|
||||
{
|
||||
$this->pengesahan = $pengesahan;
|
||||
$this->id = $id;
|
||||
$this->cawangan = $cawangan;
|
||||
$this->kodlaluan = $kodlaluan;
|
||||
}
|
||||
|
||||
public function broadcastOn()
|
||||
{
|
||||
return ['autoserahan-notice'];
|
||||
}
|
||||
|
||||
public function broadcastAs()
|
||||
{
|
||||
return 'autoserahan-event';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,238 @@
|
||||
<?php
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Events\AutoSerahan;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Illuminate\Pagination\LengthAwarePaginator;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Carbon\Carbon;
|
||||
class AutoSerahanController extends Controller
|
||||
{
|
||||
public function index(Request $request)
|
||||
{
|
||||
$response = Http::get(config('api.url') . '/api/autoserahan/list', [
|
||||
'page' => request('page', 1) // Get current page from request
|
||||
])->json();
|
||||
|
||||
$items = $response['data'] ?? []; // Data array
|
||||
$total = $response['total'] ?? 0; // Total items
|
||||
$perPage = $response['per_page'] ?? 10; // Items per page
|
||||
$currentPage = $response['current_page'] ?? 1; // Current page
|
||||
|
||||
usort($items, function ($a, $b) {
|
||||
return strtotime($b['created_at']) <=> strtotime($a['created_at']); // descending
|
||||
});
|
||||
|
||||
$items = array_map(function ($item) {
|
||||
$time_created = Carbon::parse($item['created_at']);
|
||||
|
||||
$item['cawangan_name'] = $this->CawanganKod($item['kodcaw']);
|
||||
$item['tarikh'] = $time_created->toDateString();
|
||||
$item['masa'] = $time_created->format('h:i A');
|
||||
|
||||
return $item;
|
||||
}, $items);
|
||||
|
||||
// Create Laravel paginator
|
||||
$list = new LengthAwarePaginator($items, $total, $perPage, $currentPage, [
|
||||
'path' => request()->url(), // Current URL
|
||||
'query' => request()->query(), // Append other query params
|
||||
]);
|
||||
return view('autoserahan.index', compact('list'));
|
||||
}
|
||||
|
||||
public function record(Request $request){
|
||||
|
||||
$response = Http::get(config('api.url') . '/api/autoserahan/allrecord', [
|
||||
'page' => request('page', 1),
|
||||
'kodcaw' => request('kodcaw', null),
|
||||
'tarikh_mula' => request('tarikh_mula', null),
|
||||
'tarikh_hingga' => request('tarikh_hingga', null),
|
||||
'masa_mula' => request('masa_mula', null),
|
||||
'masa_hingga' => request('masa_hingga', null),
|
||||
'status' => request('status', null),
|
||||
'transaksi' => request('transaksi', null),
|
||||
])->json();
|
||||
|
||||
|
||||
$items = $response['data'] ?? []; // Data array
|
||||
$total = $response['total'] ?? 0; // Total items
|
||||
$perPage = $response['per_page'] ?? 10; // Items per page
|
||||
$currentPage = $response['current_page'] ?? 1; // Current page
|
||||
|
||||
usort($items, function ($a, $b) {
|
||||
return strtotime($b['created_at']) <=> strtotime($a['created_at']); // descending
|
||||
});
|
||||
|
||||
$items = array_map(function ($item) {
|
||||
$time_created = Carbon::parse($item['created_at']);
|
||||
|
||||
$item['cawangan_name'] = $this->CawanganKod($item['kodcaw']);
|
||||
$item['tarikh'] = $time_created->toDateString();
|
||||
$item['masa'] = $time_created->format('h:i A');
|
||||
|
||||
return $item;
|
||||
}, $items);
|
||||
|
||||
$list = new LengthAwarePaginator($items, $total, $perPage, $currentPage, [
|
||||
'path' => request()->url(), // Current URL
|
||||
'query' => request()->query(), // Append other query params
|
||||
]);
|
||||
|
||||
$filteredCawangan = $this->listkodcaw();
|
||||
|
||||
return view('autoserahan.rekod', compact('list','filteredCawangan'));
|
||||
}
|
||||
|
||||
public function getList(Request $request){
|
||||
// Fetch paginated data from API
|
||||
$response = Http::get(config('api.url') . '/api/autoserahan/list', [
|
||||
'page' => request('page', 1) // Get current page from request
|
||||
])->json();
|
||||
|
||||
|
||||
// Extract pagination details
|
||||
$items = $response['data'] ?? []; // Data array
|
||||
$total = $response['total'] ?? 0; // Total items
|
||||
$perPage = $response['per_page'] ?? 10; // Items per page
|
||||
$currentPage = $response['current_page'] ?? 1; // Current page
|
||||
|
||||
usort($items, function ($a, $b) {
|
||||
return strtotime($b['created_at']) <=> strtotime($a['created_at']); // descending
|
||||
});
|
||||
|
||||
$items = array_map(function ($item) {
|
||||
$time_created = Carbon::parse($item['created_at']);
|
||||
|
||||
$item['cawangan_name'] = $this->CawanganKod($item['kodcaw']);
|
||||
$item['tarikh'] = $time_created->toDateString();
|
||||
$item['masa'] = $time_created->format('h:i A');
|
||||
|
||||
return $item;
|
||||
}, $items);
|
||||
|
||||
// Create Laravel paginator
|
||||
$list = new LengthAwarePaginator($items, $total, $perPage, $currentPage, [
|
||||
'path' => request()->url(), // Current URL
|
||||
'query' => request()->query(), // Append other query params
|
||||
]);
|
||||
|
||||
return response()->json($list);
|
||||
}
|
||||
|
||||
public function approve(Request $request)
|
||||
{
|
||||
$response = Http::put(config('api.url') . '/api/autoserahan/approve', [
|
||||
'id' => $request->id,
|
||||
'kodcaw' => $request->kodcaw,
|
||||
'teller' => $request->teller,
|
||||
'amaun' => $request->amaun,
|
||||
'sendApproval' => 'ACCEPTED',
|
||||
'operasi_name' => auth()->user()->name,
|
||||
])->json();
|
||||
Log::debug($response);
|
||||
if($response['approve_status'] == 'approved'){
|
||||
$approvalserahan = Http::get(config('api.url_koop') . '/api/autoserahan/get', [
|
||||
'id' => $request->id,
|
||||
'kodcaw' => $request->kodcaw
|
||||
])->json();
|
||||
|
||||
if($approvalserahan['action'] == 'create'){
|
||||
$pendahuluan = Http::put(config('api.url_koop') . '/api/autoserahan/pendahuluan', [
|
||||
'id' => $request->id,
|
||||
'kodcaw' => $request->kodcaw,
|
||||
'teller' => $request->teller,
|
||||
'amaun' => $request->amaun,
|
||||
'denopendser_id' => $approvalserahan['denopendser_id_v3']
|
||||
])->json();
|
||||
|
||||
$serahan = Http::put(config('api.url_pkb') . '/api/autoserahan/serahan', [
|
||||
'id' => $request->id,
|
||||
'kodcaw' => $request->kodcaw,
|
||||
'teller' => $request->teller,
|
||||
'amaun' => $request->amaun,
|
||||
'denopendser_id' => $approvalserahan['denopendser_id_v2']
|
||||
])->json();
|
||||
Log::error($serahan);
|
||||
|
||||
$call_set_approval_v3 = Http::withOptions(['verify' => config('app.api_verify')])
|
||||
->put(config('api.url_koop') . '/api/autoserahan/setapproval', [
|
||||
'id' => $request->id,
|
||||
'jenis' => 'rewrite',
|
||||
'gldetail_id' => $serahan['gldetail_id']
|
||||
])->json();
|
||||
}else{
|
||||
$pendahuluan = Http::put(config('api.url_koop') . '/api/autoserahan/delete/pendahuluan', [
|
||||
'array_approval' => $approvalserahan,
|
||||
'kodcaw' => $request->kodcaw,
|
||||
'teller' => $request->teller,
|
||||
'amaun' => $request->amaun,
|
||||
])->json();
|
||||
|
||||
Log::info($pendahuluan);
|
||||
|
||||
$serahan = Http::put(config('api.url_pkb') . '/api/autoserahan/delete/serahan', [
|
||||
'array_approval' => $approvalserahan,
|
||||
'kodcaw' => $request->kodcaw,
|
||||
'teller' => $request->teller,
|
||||
'amaun' => $request->amaun,
|
||||
])->json();
|
||||
|
||||
Log::info($serahan);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
if($response['status'] == 'success'){
|
||||
event(new AutoSerahan("Lulus",$request->id,$request->kodcaw,$request->teller));
|
||||
return redirect()->route('autoserahan')->with('success', 'Serahan approved successfully');
|
||||
}else{
|
||||
event(new AutoSerahan("Error",$request->id,$request->kodcaw,$request->teller));
|
||||
return redirect()->route('autoserahan')->with('error', 'Serahan approved failed');
|
||||
}
|
||||
}
|
||||
|
||||
public function reject(Request $request)
|
||||
{
|
||||
$response = Http::put(config('api.url') . '/api/autoserahan/approve', [
|
||||
'id' => $request->id,
|
||||
'kodcaw' => $request->kodcaw,
|
||||
'teller' => $request->teller,
|
||||
'amaun' => $request->amaun,
|
||||
'sendApproval' => 'REJECTED',
|
||||
'operasi_name' => auth()->user()->name,
|
||||
])->json();
|
||||
|
||||
if($response['status'] == 'success'){
|
||||
event(new AutoSerahan("Batal",$request->id,$request->kodcaw,$request->teller));
|
||||
return redirect()->route('autoserahan')->with('success', 'Serahan rejected successfully');
|
||||
}else{
|
||||
event(new AutoSerahan("Error",$request->id,$request->kodcaw,$request->teller));
|
||||
return redirect()->route('autoserahan')->with('error', 'Serahan rejected failed');
|
||||
}
|
||||
}
|
||||
|
||||
private function listkodcaw(){
|
||||
$cawangan = Http::get(config('api.url_koop') . '/api/cawangan/')->json();
|
||||
|
||||
// Extract only kodcaw and details_caw
|
||||
$filteredCawangan = array_map(function ($item) {
|
||||
return [
|
||||
'kodcaw' => $item['kodcaw'],
|
||||
'details_caw' => $item['details_caw']
|
||||
];
|
||||
}, $cawangan);
|
||||
|
||||
return $filteredCawangan;
|
||||
}
|
||||
|
||||
private function CawanganKod($kodcaw) {
|
||||
$cawangan = Http::get(config('api.url_koop') . '/api/cawangan/' . $kodcaw)->json();
|
||||
|
||||
|
||||
|
||||
return $cawangan['details_caw'] ?? 'Undefined';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user