From f56a061d2a916b2ca106dd21378db8927f668cef Mon Sep 17 00:00:00 2001 From: Amirah Date: Tue, 5 Mar 2024 13:46:18 +0800 Subject: [PATCH] add report audit trail --- app/Http/Controllers/AkaunController.php | 40 +++ public/img/audittrail.png | Bin 0 -> 4615 bytes resources/js/Akaun/AuditTrail.vue | 123 ++++++++ resources/js/Akaun/Home.vue | 6 + resources/js/routes.js | 4 + .../views/akaun/laporan_auditTrail.blade.php | 279 ++++++++++++++++++ routes/web.php | 1 + 7 files changed, 453 insertions(+) create mode 100644 public/img/audittrail.png create mode 100644 resources/js/Akaun/AuditTrail.vue create mode 100644 resources/views/akaun/laporan_auditTrail.blade.php diff --git a/app/Http/Controllers/AkaunController.php b/app/Http/Controllers/AkaunController.php index b57c5b6..5fb633e 100644 --- a/app/Http/Controllers/AkaunController.php +++ b/app/Http/Controllers/AkaunController.php @@ -1537,4 +1537,44 @@ class AkaunController extends Controller } } } + + + public function cetaklaporan_auditTrail(Request $request) + { + $api_url = config('api.url'); + $auth_user = Auth::user(); + $current = Carbon::now(); + $current = new Carbon(); + $tarikh_cetak = $current->toDateString(); + + if($request->datetimepicker1 == null){ + $date = $current->toDateString(); + }else{ + $date = $request->datetimepicker1; + } + $cawangan=Http::get($api_url.'/api/cawangan/detail/'.$request->kodcaw)->json(); + $cawangan_detail=$cawangan[0]; + + + $audittrail = Http::get($api_url. '/api/laporanAuditTrail/',['tarikh' => $date,'kodcaw' => $cawangan_detail['kodcaw']])->json(); + + if(isset($request->jenis)) + { + if($request->jenis == 'pdf') + { + + $pdf = PDF::loadView('akaun.laporan_auditTrail', compact('audittrail','cawangan_detail','tarikh_cetak','date','api_url'))->setPaper('a4', 'potrait'); + return $pdf->download('laporan_auditTrail_' . $cawangan_detail['kodcaw'] .'_'. $date . '.pdf'); + } + else{ + + + return view('akaun.laporan_auditTrail', compact('audittrail','cawangan_detail','tarikh_cetak','date','api_url')); + + } + } + + } + + } diff --git a/public/img/audittrail.png b/public/img/audittrail.png new file mode 100644 index 0000000000000000000000000000000000000000..c9aab917edca240321b1501ae916ea578beb32db GIT binary patch literal 4615 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 C+d-88 literal 0 HcmV?d00001 diff --git a/resources/js/Akaun/AuditTrail.vue b/resources/js/Akaun/AuditTrail.vue new file mode 100644 index 0000000..83a9d5a --- /dev/null +++ b/resources/js/Akaun/AuditTrail.vue @@ -0,0 +1,123 @@ + + + + diff --git a/resources/js/Akaun/Home.vue b/resources/js/Akaun/Home.vue index e2e6cb6..e2b3b62 100644 --- a/resources/js/Akaun/Home.vue +++ b/resources/js/Akaun/Home.vue @@ -39,6 +39,12 @@

Stok Audit Combine

+
+ + Windster Logo +

Audit Trail

+
+
diff --git a/resources/js/routes.js b/resources/js/routes.js index 97986fc..728f033 100644 --- a/resources/js/routes.js +++ b/resources/js/routes.js @@ -30,6 +30,8 @@ import TuntutLelong from './Akaun/TuntutLelong' import Dashboard from './Dashboard/index' import BilanganPengadai from './Akaun/BilanganPengadai' import StokAuditCombine from './Akaun/StokAuditCombine' +import AuditTrail from './Akaun/AuditTrail' + @@ -95,6 +97,8 @@ export default new VueRouter({ { path: '/akaunhome/tuntutrugi', component: TuntutLelong }, { path: '/akaunhome/BilanganPengadai', component: BilanganPengadai }, { path: '/akaunhome/StokAuditCombine', component: StokAuditCombine }, + { path: '/akaunhome/AuditTrail', component: AuditTrail }, + diff --git a/resources/views/akaun/laporan_auditTrail.blade.php b/resources/views/akaun/laporan_auditTrail.blade.php new file mode 100644 index 0000000..5cbc960 --- /dev/null +++ b/resources/views/akaun/laporan_auditTrail.blade.php @@ -0,0 +1,279 @@ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LAPORAN AUDIT TRAIL
TARIKH CETAK: + @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_cetak); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo($formattedweddingdate); + @endphp +
TARIKH:@php + $myDateTime = DateTime::createFromFormat('Y-m-d', $date); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo($formattedweddingdate); + @endphp
+ +
+ + + + + + + + + + + + + + + + + @php $counter = 1; $totalamaun = 0; $jenis = ''; @endphp + @foreach($audittrail as $index=>$item) + + + + + + + + + + + + + + + + @php $counter++;@endphp + @endforeach +
BilTarikhMasaTellerPelulusActNorujukanPinj. LamaPinjamanUpahNotaNokpNorujukan Asal
{{ $counter }}{{ $item['tarikh'] }}{{ $item['masa'] }}{{ $item['users'] }}{{ $item['pelulus'] }}{{ $item['actions'] }}{{ $item['norujukan'] }}{{ number_format($item['oldpinjaman'],2) }}{{ number_format($item['newpinjaman'],2) }}{{ number_format($item['newupah'],2) }}{{ $item['nota'] }}{{ $item['nokp'] }}{{ $item['norujukanasal'] }}
+

+ +
+


+ + + + + + + + + + + + + + + + + + + +
.................................................................. .................................................................. ..................................................................
Disediakan Disemak Disahkan
\ No newline at end of file diff --git a/routes/web.php b/routes/web.php index fe46914..e9b1ee2 100644 --- a/routes/web.php +++ b/routes/web.php @@ -117,6 +117,7 @@ Route::get('/akaunhome/cetakonline',['as'=>'cetak.online','uses'=>'App\Http\Cont Route::get('/akaunhome/cetaktuntutrugi',['as'=>'cetak.tuntutrugilelong','uses'=>'App\Http\Controllers\AkaunController@cetak_tuntutrugilelong'])->middleware(['roleChecker:admin,akaun,operasi,kpo,callcenter']); Route::get('/akaunhome/cetakbilanganpengadai',['as'=>'cetak.bilpengadai','uses'=>'App\Http\Controllers\AkaunController@cetaklaporan_bilangan_pengadai'])->middleware(['roleChecker:admin,akaun,operasi,kpo,callcenter']); Route::get('/akaunhome/cetakstokauditCombine',['as'=>'cetak.stokauditCombine','uses'=>'App\Http\Controllers\AkaunController@cetaklaporan_stokaudit_combine'])->middleware(['roleChecker:admin,akaun,operasi,kpo,callcenter']); +Route::get('/akaunhome/cetakAuditTrail',['as'=>'cetak.cetakAuditTrail','uses'=>'App\Http\Controllers\AkaunController@cetaklaporan_auditTrail'])->middleware(['roleChecker:admin,akaun,operasi,kpo,callcenter']);