diff --git a/app/Events/AutoSerahan.php b/app/Events/AutoSerahan.php new file mode 100644 index 0000000..a618636 --- /dev/null +++ b/app/Events/AutoSerahan.php @@ -0,0 +1,36 @@ +pengesahan = $pengesahan; + $this->id = $id; + $this->cawangan = $cawangan; + $this->kodlaluan = $kodlaluan; + } + + public function broadcastOn() + { + return ['autoserahan-notice']; + } + + public function broadcastAs() + { + return 'autoserahan-event'; + } +} \ No newline at end of file diff --git a/app/Http/Controllers/KhazanahController.php b/app/Http/Controllers/KhazanahController.php index 8cba09c..cd7faf8 100644 --- a/app/Http/Controllers/KhazanahController.php +++ b/app/Http/Controllers/KhazanahController.php @@ -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')); } @@ -4286,4 +4291,105 @@ 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){ + $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' => $request->teller, + 'amaun' => $request->amaun, + ])->json(); + + return response()->json([ + 'status' => 'success', + 'message' => 'Approval process completed successfully', + 'id' => $call_approval_v3['id'], + ]); + + } + + // 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' => $request->arraysend['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' => $request->arraysend['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'],$request->arraysend['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); + } + } + + } diff --git a/app/View/Components/AutoSerah.php b/app/View/Components/AutoSerah.php new file mode 100644 index 0000000..85365bc --- /dev/null +++ b/app/View/Components/AutoSerah.php @@ -0,0 +1,28 @@ + env('API_URL') + 'url' => env('API_URL'), + 'url_koop' => env('API_URL_KOOP','http://localhost:8000'), + 'url_pkb' => env('API_URL_PKB','http://localhost:8000'), ]; \ No newline at end of file diff --git a/resources/views/components/auto-serah.blade.php b/resources/views/components/auto-serah.blade.php new file mode 100644 index 0000000..9e6537e --- /dev/null +++ b/resources/views/components/auto-serah.blade.php @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/resources/views/khazanah/laporan/pendahuluanserahan.blade.php b/resources/views/khazanah/laporan/pendahuluanserahan.blade.php index 6d874fb..351eac7 100644 --- a/resources/views/khazanah/laporan/pendahuluanserahan.blade.php +++ b/resources/views/khazanah/laporan/pendahuluanserahan.blade.php @@ -102,14 +102,14 @@ - - +

diff --git a/resources/views/khazanah/pendahuluanserahanmain.blade.php b/resources/views/khazanah/pendahuluanserahanmain.blade.php index 8ba7064..5b0a596 100644 --- a/resources/views/khazanah/pendahuluanserahanmain.blade.php +++ b/resources/views/khazanah/pendahuluanserahanmain.blade.php @@ -3,8 +3,26 @@ @section('content') @include('modal.pendahuluanserahan') +@include('modal.autoserahan') @include('modal.denominasimodalpendahuluanserahan') +@if(count($proses) > 0) + +@endif
@@ -51,7 +69,7 @@ {{ $gldetail['descpt'] }} {{ ($gldetail['pendahuluan'] == 0 && ($gldetail['ktacct'] == '7000/102' || $gldetail['ktacct'] == '7000/106')) ? number_format($gldetail['amaun'],2) : number_format($gldetail['pendahuluan'],2) }} {{ ($gldetail['serahan'] == 0 && ($gldetail['dtacct'] == '1000/026' || $gldetail['dtacct'] == '1000/020' || $gldetail['dtacct'] == '1000/090')) ? number_format($gldetail['amaun'],2) : number_format($gldetail['serahan'],2) }} - @if($date === $gldetail['tarikh'] && !fnmatch('SERAHAN BAYAR ONLINE*',$gldetail['descpt'])) @else @endif + @if($date === $gldetail['tarikh'] && !fnmatch('SERAHAN BAYAR ONLINE*',$gldetail['descpt'])) @else @endif @endforeach @@ -61,6 +79,7 @@ +
@@ -205,25 +224,47 @@ } $('#pendahuluanserahanModal').on('shown.bs.modal', function (e) { + let input = $(e.relatedTarget); + let inputselected = input.data('input'); + + + if(inputselected == 'AutoSerahan') + { + $('#jenisserahan').val('auto'); + $('input[name="radwang"][value="pendahuluan"]').prop('disabled', true); + $('input[name="radwang"][value="serahan"]').prop('checked', true); + $('input[name="radwang"][value="serahan"]').prop('disabled', true); + $('#keterangan').val('Serahan Kepada V3'); + $('#keterangan').attr('readonly', true); + $('#dtacct').val('1000/010'); + $('#ktacct').val('1000/020'); + $('input[name="denominasi"]').attr('style','display: block'); + $('.denominasi').attr('style','display: block'); + }else{ + $('#jenisserahan').val('biasa'); + $('input[name="radwang"][value="pendahuluan"]').prop('disabled', false); + $('#bundle1').val(''); + $('#totalb1').val(0.00); + $('#bundle5').val(''); + $('#totalb5').val(0.00); + $('#bundle10').val(''); + $('#totalb10').val(0.00); + $('#bundle20').val(''); + $('#totalb20').val(0.00); + $('#bundle50').val(''); + $('#totalb50').val(0.00); + $('#bundle100').val(''); + $('#totalb100').val(0.00); + $('#amaunkiraan').val(''); + $('#dtacct').val(''); + $('#ktacct').val(''); + $('#keterangan').val(''); + $('#amaun').val(''); + $('#keterangan').attr('readonly', false); + $('input[name="radwang"]').prop('checked', false); + } + - $('#bundle1').val(''); - $('#totalb1').val(0.00); - $('#bundle5').val(''); - $('#totalb5').val(0.00); - $('#bundle10').val(''); - $('#totalb10').val(0.00); - $('#bundle20').val(''); - $('#totalb20').val(0.00); - $('#bundle50').val(''); - $('#totalb50').val(0.00); - $('#bundle100').val(''); - $('#totalb100').val(0.00); - $('#amaunkiraan').val(''); - $('#dtacct').val(''); - $('#ktacct').val(''); - $('#keterangan').val(''); - $('#amaun').val(''); - $('input[name="radwang"]').prop('checked', false); }); @@ -314,7 +355,7 @@ function funcbatal() { $('#denominasiHQModal').modal('hide'); - $('#pendahuluanserahanModal').modal('show'); + // $('#pendahuluanserahanModal').modal('show'); $("#terima_transaksi").prop('disabled', false); @@ -343,6 +384,7 @@ let dtacct = $('#dtacct').val(); let ktacct = $('#ktacct').val(); let auth_user = $('#auth_user').val(); //letak user + let jenisserahan = $('#jenisserahan').val(); // Denominasi bundle let bundle1 = $('#bundle1').val(); @@ -372,72 +414,316 @@ }); return false; } + let SwalPengesahan = ''; - Swal.fire({ - title: 'Memuatkan...', - allowEscapeKey: false, - allowOutsideClick: false, - didOpen: function () { - Swal.showLoading(); - $('#denominasiHQModal').modal('hide'); - } - }); + if(jenisserahan == 'biasa') + { + Swal.fire({ + title: 'Memuatkan...', + allowEscapeKey: false, + allowOutsideClick: false, + didOpen: function () { + Swal.showLoading(); + $('#denominasiHQModal').modal('hide'); + } + }); + }else{ + let SwalPengesahan = Swal.fire({ + title: 'Tunggu Pengesahan Daripada Operasi.', + icon: 'info', + width: 600, + padding: '3em', + background: '#fffff', + showCancelButton: false, + showConfirmButton: false, + allowOutsideClick: false, + allowEscapeKey: false, + allowEnterKey: false, + didOpen: function () { + $('#denominasiHQModal').modal('hide'); + } + }); + } - $.ajax({ - method: 'post', - url: '{{ route("khazanah.pendahuluanserahanHQ") }}', - data: { - "_token": "{{ csrf_token() }}", - 'amaun': amaun, - 'jenisgldetail': jenis, - 'keterangan': keterangan, - 'kodcaw': kodcaw, - 'teller': teller, - 'dtacct': dtacct, - 'ktacct': ktacct, - 'auth_user': auth_user, // mskkan auth_user - 'ambilansen1': sen1, - 'ambilansen5': sen5, - 'ambilansen10': sen10, - 'ambilansen20': sen20, - 'ambilansen50': sen50, - 'ambilanring1': ringgit1, - 'ambilanring5': ringgit5, - 'ambilanring10': ringgit10, - 'ambilanring20': ringgit20, - 'ambilanring50': ringgit50, - 'ambilanring100': ringgit100 - }, - success: function (data) { - if (data == 'LULUS') { + let array_send = { + amaun: amaun, + jenisgldetail: jenis, + keterangan: keterangan, + kodcaw: kodcaw, + teller: teller, + dtacct: dtacct, + ktacct: ktacct, + auth_user: auth_user, + ambilansen1: sen1, + ambilansen5: sen5, + ambilansen10: sen10, + ambilansen20: sen20, + ambilansen50: sen50, + ambilanring1: ringgit1, + ambilanring5: ringgit5, + ambilanring10: ringgit10, + ambilanring20: ringgit20, + ambilanring50: ringgit50, + ambilanring100: ringgit100 + }; + this.sendRequest(array_send,jenisserahan); + } + + function sendRequest(arraysend,jenisserahan){ + if(jenisserahan == 'biasa'){ + console.log(arraysend); + $.ajax({ + method: 'post', + url: '{{ route("khazanah.pendahuluanserahanHQ") }}', + data: { + "_token": "{{ csrf_token() }}", + 'amaun': arraysend['amaun'], + 'jenisgldetail': arraysend['jenisgldetail'], + 'keterangan': arraysend['keterangan'], + 'kodcaw': arraysend['kodcaw'], + 'teller': arraysend['teller'], + 'dtacct': arraysend['dtacct'], + 'ktacct': arraysend['ktacct'], + 'auth_user': arraysend['auth_user'], + 'ambilansen1': arraysend['ambilansen1'], + 'ambilansen5': arraysend['ambilansen5'], + 'ambilansen10': arraysend['ambilansen10'], + 'ambilansen20': arraysend['ambilansen20'], + 'ambilansen50': arraysend['ambilansen50'], + 'ambilanring1': arraysend['ambilanring1'], + 'ambilanring5': arraysend['ambilanring5'], + 'ambilanring10': arraysend['ambilanring10'], + 'ambilanring20': arraysend['ambilanring20'], + 'ambilanring50': arraysend['ambilanring50'], + 'ambilanring100': arraysend['ambilanring100'] + }, + success: function (data) { + if (data == 'LULUS') { + Swal.fire({ + icon: 'success', + title: 'Transaksi Berjaya', + allowEscapeKey: false, + allowOutsideClick: false + }).then(function () { + $('#denominasiHQModal').modal('hide'); + $('#pendahuluanserahanModal').modal('hide'); + location.reload(); + }); + } else if (data == 'GAGAL') { + Swal.fire({ + icon: 'error', + title: 'Transaksi Gagal', + allowEscapeKey: false, + allowOutsideClick: false + }).then(function () { + $('#denominasiHQModal').modal('hide'); + $('#pendahuluanserahanModal').modal('hide'); + $("#terima_transaksi").prop('disabled', false); + }); + } + }, + error: function (jqXHR, textStatus, errorThrown) { + console.log(textStatus, errorThrown); + } + }); + }else{ + let approvalid = ''; + $.ajax({ + method: 'post', + url: '{{ route("khazanah.autoserahan") }}', + data: { + "_token": "{{ csrf_token() }}", + 'arraysend': arraysend + }, + success:function(e){ + approvalid = e.id; + if(e.status == 'success'){ + Swal.update({ + text: 'Menunggu Pengesahan Daripada Operasi!', + }); + } + } + }); + + var pusher = new Pusher("{{ env('PUSHER_APP_KEY') }}", { + cluster: 'ap1', + encrypted: true + }); + + var channel = pusher.subscribe('autoserahan-notice'); + channel.bind('autoserahan-event', function(data) { + console.log(data,approvalid,kodcaw,teller); + if(data.pengesahan === 'Lulus' && data.id == approvalid && data.kodlaluan == teller) + { Swal.fire({ icon: 'success', - title: 'Transaksi Berjaya', - allowEscapeKey: false, - allowOutsideClick: false - }).then(function () { - $('#denominasiHQModal').modal('hide'); - $('#pendahuluanserahanModal').modal('hide'); - location.reload(); + title: 'Serahan V3/Auto Pendahuluan V2 Berjaya', + text: 'Operasi berjaya meluluskan Serahan ke V3 dan Auto Pendahuluan dari V2!' + }).then(function(){ + location.reload(); }); - } else if (data == 'GAGAL') { + }else if(data.pengesahan == 'Batal' && data.id == approvalid && data.kodlaluan == teller){ Swal.fire({ icon: 'error', - title: 'Transaksi Gagal', - allowEscapeKey: false, - allowOutsideClick: false - }).then(function () { - $('#denominasiHQModal').modal('hide'); - $('#pendahuluanserahanModal').modal('hide'); - $("#terima_transaksi").prop('disabled', false); + title: 'Serahan V3/Auto Pendahuluan V2 Dibatalkan', + text: 'Operasi membatalkan Serahan ke V3 dan Auto Pendahuluan dari V2!' + }).then(function(){ + location.reload(); }); } - }, - error: function (jqXHR, textStatus, errorThrown) { - console.log(textStatus, errorThrown); - } - }); + + }); + } + } + function deleteautoserahan(e){ + let recno = $(e).data('recno'); + let pend = $(e).data('pend'); + let ser = $(e).data('ser'); + + let SwalPengesahan = Swal.fire({ + title: 'Tunggu Pengesahan Daripada Operasi.', + icon: 'info', + width: 600, + padding: '3em', + background: '#fffff', + showCancelButton: false, + showConfirmButton: false, + allowOutsideClick: false, + allowEscapeKey: false, + allowEnterKey: false, + }); + + let approvalid = ''; + $.ajax({ + method: 'post', + url: '{{ route("khazanah.autoserahan") }}', + data: { + "_token": "{{ csrf_token() }}", + 'do_delete': true, + 'recno' : recno, + 'kodcaw' : kodcaw, + 'teller' : teller, + 'amaun' : (pend > 0 ) ? pend : ser + }, + success:function(e){ + approvalid = e.id; + if(e.status == 'success'){ + Swal.update({ + text: 'Menunggu Pengesahan Daripada Operasi!', + }); + } + } + }); + + var pusher = new Pusher("{{ env('PUSHER_APP_KEY') }}", { + cluster: 'ap1', + encrypted: true + }); + + var channel = pusher.subscribe('autoserahan-notice'); + channel.bind('autoserahan-event', function(data) { + console.log(data,approvalid,teller,kodcaw); + if(data.pengesahan === 'Lulus' && data.id == approvalid && data.kodlaluan == teller) + { + Swal.fire({ + icon: 'success', + title: 'Serahan V3/Auto Pendahuluan V2 Berjaya', + text: 'Operasi berjaya meluluskan Serahan ke V3 dan Auto Pendahuluan dari V2!' + }).then(function(){ + location.reload(); + }); + }else if(data.pengesahan == 'Batal' && data.id == approvalid && data.kodlaluan == teller){ + Swal.fire({ + icon: 'error', + title: 'Serahan V3/Auto Pendahuluan V2 Dibatalkan', + text: 'Operasi membatalkan Serahan ke V3 dan Auto Pendahuluan dari V2!' + }).then(function(){ + location.reload(); + }); + }else{ + Swal.fire({ + icon: 'error', + title: 'Auto Serahan Mengalami Ralat', + text: 'Auto Serahan tidak berjaya!' + }).then(function(){ + location.reload(); + }); + } + + + }); + } + + const getCurrentDate = () => { + const today = new Date(); + const day = String(today.getDate()).padStart(2, '0'); + const month = String(today.getMonth() + 1).padStart(2, '0'); + const year = today.getFullYear(); + + return `${day}/${month}/${year}`; + }; + + function triggerValue(){ + let form = $('form[name="autoserah"]'); + form.find('[name="tarikh"]').val(getCurrentDate()); + } + + $('#autoSerahanModal').on('shown.bs.modal', function () { + $('input[name="denominasi"]').attr('style','display: block'); + $('.denominasi').attr('style','display: block'); + triggerValue(); + }); + + function terima_autoserah(){ + let form = $('form[name="autoserah"]'); + + let amaun = form.find('[name="amaun"]').val(); + let keterangan = form.find('[name="keterangan"]').val(); + let dtacct = form.find('[name="dtacct"]').val(); + let ktacct = form.find('[name="ktacct"]').val(); + + if(!amaun){ + $("[name='erroramaun']").show(); + $("[name='erroramaun']").text("*Isikan amaun dalam input!"); + $("[name='amaun']").addClass('is-invalid'); + boolamaun = true; + }else{ + $("[name='erroramaun']").hide(); + $("[name='amaun']").removeClass('is-invalid'); + boolamaun = false; + } + + if(!keterangan){ + $("[name='errorketerangan']").show(); + $("[name='errorketerangan']").text("*Isikan keterangan dalam input!"); + $("[name='keterangan']").addClass('is-invalid'); + boolketerangan = true; + }else{ + $("[name='errorketerangan']").hide(); + $("[name='keterangan']").removeClass('is-invalid'); + boolketerangan = false; + } + + // If all validations pass + if(boolamaun === false && boolketerangan === false) { + // Carry all validated values, including auth_user + + $('#amaundiminta').val(amaun); + $('#denominasiHQModal').modal('show'); + $('#autoSerahanModal').modal('hide'); + $('#jenisjenis').val('serahan'); + $('#jenisserahan').val('auto'); + + return true; + }else{ + $("#terima_transaksi_autoserah").prop('disabled', false); + event.preventDefault(); + return false; + } + } + + @endsection diff --git a/resources/views/modal/autoserahan.blade.php b/resources/views/modal/autoserahan.blade.php new file mode 100644 index 0000000..ca56f53 --- /dev/null +++ b/resources/views/modal/autoserahan.blade.php @@ -0,0 +1,49 @@ + + diff --git a/resources/views/modal/denominasimodalpendahuluanserahan.blade.php b/resources/views/modal/denominasimodalpendahuluanserahan.blade.php index 0ba0096..7b7e068 100644 --- a/resources/views/modal/denominasimodalpendahuluanserahan.blade.php +++ b/resources/views/modal/denominasimodalpendahuluanserahan.blade.php @@ -132,6 +132,7 @@ + diff --git a/resources/views/print/laporan_pendahuluanserahan.blade.php b/resources/views/print/laporan_pendahuluanserahan.blade.php index 412e509..1f3371d 100644 --- a/resources/views/print/laporan_pendahuluanserahan.blade.php +++ b/resources/views/print/laporan_pendahuluanserahan.blade.php @@ -172,8 +172,10 @@ @php $reportNames = [ 'serahan' => 'LAPORAN SERAHAN HQ', + 'serahankepadav3' => 'LAPORAN SERAHAN KEPADA V3', 'pendahuluan' => 'LAPORAN PENDAHULUAN HQ', 'online' => 'LAPORAN SERAHAN ONLINE HQ', + 'serahankepadav3' => 'LAPORAN SERAHAN KEPADA V3', 'serahanlelong' => 'LAPORAN SERAHAN LELONG HQ', 'serahanonline' => 'LAPORAN SERAHAN DAN SERAHAN ONLINE HQ', 'all' => 'LAPORAN KESELURUHAN HQ' diff --git a/routes/web.php b/routes/web.php index d31216d..e6719ef 100644 --- a/routes/web.php +++ b/routes/web.php @@ -161,6 +161,8 @@ Route::post('/permohonan/simpan',['as'=>'permohonan.simpan','uses' => 'KhazanahC Route::get('/permohonan/status/{mohonid}',['as'=>'permohonan.status','uses' => 'KhazanahController@StatusPermohonan'])->middleware('auth','khazanah'); Route::post('/permohonan/cit',['as'=>'permohonan.cit','uses' => 'KhazanahController@CITPermohonan'])->middleware('auth','khazanah'); Route::post('/permohonan/download',['as'=>'permohonan.download','uses' => 'KhazanahController@DownloadFiles'])->middleware('auth','khazanah'); +Route::post('/khazanah/autoserahan',['as'=>'khazanah.autoserahan','uses'=>'KhazanahController@AutoSerahan'])->middleware('auth','khazanah'); + Route::post('/kakitangan/harian',['as'=>'kakitangan.harian','uses'=>'KakitanganController@kakitanganHarian'])->middleware('auth','khazanah'); Route::get('/lelong',['as'=>'lelong','uses'=>'LelongController@lelong']);