diff --git a/.env.prod b/.env.prod new file mode 100644 index 0000000..2a4e713 --- /dev/null +++ b/.env.prod @@ -0,0 +1,70 @@ +APP_NAME=Laravel +APP_ENV=production +#APP_KEY=base64:x3sTPftRy/BL+DsI7+jXtiiCtUxO9Bei0OcjM15I1rQ= +APP_KEY=WbPGkYNmXZ6ZQplGlvl0iZ7zyW1b09xa +APP_DEBUG=false +APP_URL=http://admin.arrahn +API_ARRAHN_PORTAL_URL=https://pay.arrahn.com.my +API_URL=http://apiujrah.arrahn + +LOG_CHANNEL=stack + +DB_CONNECTION=mysql +DB_HOST=172.16.4.102 +DB_PORT=3306 +DB_DATABASE=kaunterpkb +DB_USERNAME=zone2 +DB_PASSWORD=G0dz!ll4@2020 + +BROADCAST_DRIVER=pusher +CACHE_DRIVER=file +QUEUE_CONNECTION=sync +SESSION_DRIVER=file +SESSION_LIFETIME=480 + +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_MAILER=smtp +MAIL_HOST=smtp.mailtrap.io +MAIL_PORT=2525 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_ENCRYPTION=null +MAIL_FROM_ADDRESS=null +MAIL_FROM_NAME="${APP_NAME}" + +AWS_ACCESS_KEY_ID= +AWS_SECRET_ACCESS_KEY= +AWS_DEFAULT_REGION=us-east-1 +AWS_BUCKET= + +#PUSHER_APP_ID=1132716 +#PUSHER_APP_KEY=27b70f118373dcb31ab3 +#PUSHER_APP_SECRET=ef2e62ddbc1647979bf4 + +#PUSHER_APP_ID=1220266 +#PUSHER_APP_KEY=3fb52a0bf6cc1363c736 +#PUSHER_APP_SECRET=0a27feb7c4b2f0177467 + +#PUSHER_APP_ID=4163674 +#PUSHER_APP_KEY=3nqb1ss0jlhi9w9vpi8v +#PUSHER_APP_SECRET=7dfx03w2i7ue0z6qoit3 + +PUSHER_APP_ID=1220266 +PUSHER_APP_KEY=da67a7e1a3a138b9b28e +PUSHER_APP_SECRET=114c38f6edcf085e4d7f + +MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" +MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" +# MIX_API_URL=http://api.arrahn +MIX_API_URL=http://apiujrah.arrahn +MIX_API_URL_ZONE1=http://apiujrah.arrahn +MIX_API_URL_ZONE2=http://apiujrah.arrahn +MIX_API_URL_ZONE3=http://apiujrah.arrahn + + +#TWILIO_WHATSAPP_NUMBER="+14155238886" +#TWILIO_SID="AC0b21863a1f21c39f153f9f7ce2551479" +#TWILIO_AUTH_TOKEN="ce474f07f586b3b150bf15a560e6d3b3" diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..9a03714 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +10 \ No newline at end of file diff --git a/app/Http/Controllers/WTDController.php b/app/Http/Controllers/WTDController.php index 7ad1bee..927702d 100644 --- a/app/Http/Controllers/WTDController.php +++ b/app/Http/Controllers/WTDController.php @@ -19,8 +19,8 @@ class WTDController extends Controller // $this->middleware('auth'); // } - public function index(){ - + public function index() + { return view('wtd.index'); } @@ -30,27 +30,25 @@ class WTDController extends Controller $norujukan = json_decode($request->norujukan); - $tuntutbaki = Http::get(config('api.url').'/admin/wtd/senarai',['norujukan' => $norujukan,'kodcaw' => $request->cawangan])->json(); + $tuntutbaki = Http::get(config('api.url') . '/admin/wtd/senarai', ['norujukan' => $norujukan, 'kodcaw' => $request->cawangan])->json(); - $cawangan=Http::get(config('api.url').'/api/cawangan/detail/'. $request->cawangan)->json(); - $cawangan_detail=$cawangan[0]; + $cawangan = Http::get(config('api.url') . '/api/cawangan/detail/' . $request->cawangan)->json(); + $cawangan_detail = $cawangan[0]; $current = Carbon::now(); $tarikh_cetak = $current->toDateString(); $api_url = config('api.url'); - $mula = $request->mula; + $mula = $request->mula; $hingga = $request->hingga; // $myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_cetak); // $tarikhcetakan = $myDateTime->format('d-m-Y'); - - if(isset($request->jenis)) - { - if($request->jenis == 'pdf') - { - $pdf = PDF::loadView('wtd.cetakan', compact('tuntutbaki','cawangan_detail','tarikh_cetak','api_url','mula','hingga'))->setPaper('a4', 'potrait'); - return $pdf->download('wtd_' . $request->cawangan .'_'. $tarikh_cetak . '.pdf'); - }else{ - return view('wtd.cetakanexcel', compact('tuntutbaki','cawangan_detail','tarikh_cetak','api_url','mula','hingga')); + + if (isset($request->jenis)) { + if ($request->jenis == 'pdf') { + $pdf = PDF::loadView('wtd.cetakan', compact('tuntutbaki', 'cawangan_detail', 'tarikh_cetak', 'api_url', 'mula', 'hingga'))->setPaper('a4', 'potrait'); + return $pdf->download('wtd_' . $request->cawangan . '_' . $tarikh_cetak . '.pdf'); + } else { + return view('wtd.cetakanexcel', compact('tuntutbaki', 'cawangan_detail', 'tarikh_cetak', 'api_url', 'mula', 'hingga')); } } } @@ -61,21 +59,123 @@ class WTDController extends Controller $current = Carbon::now(); $tarikh_cetak = $current->toDateString(); - $cawangan=Http::get(config('api.url').'/api/cawangan/detail/'. $request->cawangan)->json(); - $cawangan_detail=$cawangan[0]; + $cawangan = Http::get(config('api.url') . '/api/cawangan/detail/' . $request->cawangan)->json(); + $cawangan_detail = $cawangan[0]; - $wtdDalamProses = Http::get(config('api.url'). '/admin/wtd/dalamproses' ,['batchno' => $request->batchno,'kodcaw' => $request->cawangan])->json(); - if(isset($request->jenis)) - { - if($request->jenis == 'pdf') - { - $pdf = PDF::loadView('wtd.dalamprosespdf', compact('tarikh_cetak','cawangan_detail','wtdDalamProses','api_url'))->setPaper('a4', 'landscape'); - return $pdf->download('wtd_' . $request->cawangan .'_'. $tarikh_cetak . '.pdf'); - }else{ + $wtdDalamProses = Http::get(config('api.url') . '/admin/wtd/dalamproses', ['batchno' => $request->batchno, 'kodcaw' => $request->cawangan])->json(); + if (isset($request->jenis)) { + if ($request->jenis == 'pdf') { + $pdf = PDF::loadView('wtd.dalamprosespdf', compact('tarikh_cetak', 'cawangan_detail', 'wtdDalamProses', 'api_url'))->setPaper('a4', 'landscape'); + return $pdf->download('wtd_' . $request->cawangan . '_' . $tarikh_cetak . '.pdf'); + } else { - return view('wtd.dalamprosesexcel', compact('tarikh_cetak','cawangan_detail','wtdDalamProses','api_url')); + return view('wtd.dalamprosesexcel', compact('tarikh_cetak', 'cawangan_detail', 'wtdDalamProses', 'api_url')); } } } + + public function janaSimulasi(Request $request) + { + $cawangan = Http::get(config('api.url') . '/api/cawangan/')->json(); + + return view('wtd.simulasi.janaSimulasi', compact('cawangan')); + } + + public function showSimulasi(Request $request) + { + $request->validate([ + 'kodcaw' => 'required', + 'tahun' => 'required', + ], [ + 'kodcaw.required' => 'Sila Pilih Cawangan Terlebih Dahulu.', + 'tahun.required' => 'Sila Masukkan Tahun Terlebih Dahulu.', + ]); + + $senaraiSimulasi = Http::get(config('api.url') . '/admin/wtd/janaSimulasi', ['kodcaw' => $request->kodcaw, 'tahun' => $request->tahun])->json(); + + $year = $request->tahun; + + // dd($senaraiSimulasi, $request->kodcaw, $request->tahun); + + return view('wtd.simulasi.show', compact('senaraiSimulasi', 'year')); + } + + public function showRekod(Request $request) + { + $bulan = $request->input('month'); + $bulanNumber = date('n', strtotime($bulan)); + + $rekod = Http::get(config('api.url') . '/admin/wtd/rekodSimulasi', ['kodcaw' => $request->kodcaw, 'month' => $bulanNumber, 'year' => $request->year])->json(); + + $totalBaki = collect($rekod)->sum('baki'); + + // dd($rekod, $bulanNumber, $totalBaki, $bulan); + + return view('wtd.simulasi.rekod', compact('bulan', 'rekod', 'totalBaki')); + } + + public function prosesWTD(Request $request) + { + // dd($request->input()); + $request->validate([ + 'data.*.bulan' => 'required|string', + 'data.*.jumlah_norujukan' => 'required|numeric', + 'data.*.pembiayaan' => 'required|numeric', + 'data.*.baki' => 'required|numeric', + 'data.*.selected' => 'nullable', + ]); + + // Process the selected data + $data = $request->input('data', []); + $insertedRecords = []; + $kodcaw = $request->data[0]['kodcaw']; + + foreach ($data as $item) { + if (isset($item['selected'])) { + $insertedRecords[] = [ + 'bulan' => $item['bulan'], + 'tahun' => $request->tahun, + 'kodcaw' => $kodcaw, + 'jumlah_sag' => $item['jumlah_norujukan'], + 'pembiayaan' => $item['pembiayaan'], + 'baki' => $item['baki'], + 'created_at' => now(), + 'updated_at' => now(), + ]; + } + } + $response = Http::post(config('api.url') . '/admin/wtd/prosesSimulasi', [ + 'input' => $insertedRecords + ])->json(); + + // dd($data, $insertedRecords, $kodcaw, $response); + + return view('wtd.simulasi.pengesahan', compact('insertedRecords', 'response', 'kodcaw')); + } + + public function pengesahanSimulasi(Request $request) + { + $response = Http::post(config('api.url') . '/admin/wtd/pengesahanSimulasi', [ + 'records' => $request->records, + 'kodcaw' => $request->kodcaw, + ])->json(); + + return view('wtd.index'); + } + + public function serahbaki() + { + return view('wtd.simulasi.serahbaki'); + } + + public function simulasiToDraft(Request $request) + { + $response = Http::post(config('api.url') . '/admin/wtd/simulasiToDraft', [ + 'bulan' => $request->bulan, + + ])->json(); + + dd($response); + } } diff --git a/app/View/Components/JanaSimulasi.php b/app/View/Components/JanaSimulasi.php new file mode 100644 index 0000000..d54a7af --- /dev/null +++ b/app/View/Components/JanaSimulasi.php @@ -0,0 +1,28 @@ + + * @license MIT + */ + +/*! + * Vue.js v2.7.8 + * (c) 2014-2022 Evan You + * Released under the MIT License. + */ + +/*! + * jQuery JavaScript Library v3.6.0 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2021-03-02T17:08Z + */ + +/*! + * vue-friendly-iframe v0.20.0 (https://github.com/officert/vue-friendly-iframe) + * (c) 2021 Tim Officer + * Released under the MIT License. + */ + +/*! + * vuex v3.6.2 + * (c) 2021 Evan You + * @license MIT + */ + +/*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ + +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ + +/*! svg.draggable.js - v2.2.2 - 2019-01-08 + * https://github.com/svgdotjs/svg.draggable.js + * Copyright (c) 2019 Wout Fierens; Licensed MIT */ + +/*! svg.filter.js - v2.0.2 - 2016-02-24 + * https://github.com/wout/svg.filter.js + * Copyright (c) 2016 Wout Fierens; Licensed MIT */ + +/** + * @license + * Lodash + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ + +/**! + * @fileOverview Kickass library to create and place poppers near their reference elements. + * @version 1.16.1 + * @license + * Copyright (c) 2016 Federico Zivolo and contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +//! moment.js diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 1cc3d6f..2d60117 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -1,4 +1,4 @@ { - "/js/app.js": "/js/app.js?id=41f31e4c4d0a3f1615de3f2a5b78988c", - "/css/app.css": "/css/app.css?id=9cdabf7932d415c4f5598da3580b0fa1" + "/js/app.js": "/js/app.js", + "/css/app.css": "/css/app.css" } diff --git a/resources/js/WTD/selection.vue b/resources/js/WTD/selection.vue index 70c1c51..0c368c7 100644 --- a/resources/js/WTD/selection.vue +++ b/resources/js/WTD/selection.vue @@ -2,12 +2,17 @@
+ + + + - + +
diff --git a/resources/js/components/Cawangan.vue b/resources/js/components/Cawangan.vue index a9d3621..a26cc5c 100644 --- a/resources/js/components/Cawangan.vue +++ b/resources/js/components/Cawangan.vue @@ -1,5 +1,5 @@