From a18f00c29ffdeb00ebc28965bf04cfc75cfc3ad5 Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Fri, 20 Jul 2018 10:26:18 +0800 Subject: [PATCH 01/45] added production env sample --- .env.prod | 80 ++++++++++++++++++++++++++++++ public/mix-manifest.json | 6 +-- resources/assets/js/pages/home.vue | 3 +- 3 files changed, 85 insertions(+), 4 deletions(-) create mode 100644 .env.prod diff --git a/.env.prod b/.env.prod new file mode 100644 index 00000000..4b60c95c --- /dev/null +++ b/.env.prod @@ -0,0 +1,80 @@ +APP_NAME=IZYIM +APP_ENV=production +APP_KEY=base64:Fu2YulXExzm9HJ5LgVmZUmcbRkchHkc82q02MorN5GQ= +APP_DEBUG=true +APP_URL=http://localhost + +LOG_CHANNEL=stack + +DB_CONNECTION=mysql +DB_HOST=mysql +DB_PORT=3306 +DB_DATABASE=default +DB_USERNAME=default +DB_PASSWORD=secret + +BROADCAST_DRIVER=log +CACHE_DRIVER=file +SESSION_DRIVER=file +SESSION_LIFETIME=120 +QUEUE_DRIVER=sync + +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_DRIVER=smtp +MAIL_HOST=smtp.mailtrap.io +MAIL_PORT=2525 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_ENCRYPTION=null + +PUSHER_APP_ID= +PUSHER_APP_KEY= +PUSHER_APP_SECRET= +PUSHER_APP_CLUSTER=mt1 + +MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" +MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" +APP_NAME=exchange +APP_ENV=local +APP_KEY=base64:Fu2YulXExzm9HJ5LgVmZUmcbRkchHkc82q02MorN5GQ= +APP_DEBUG=true +APP_URL=http://localhost + +LOG_CHANNEL=stack + +DB_CONNECTION=mysql +DB_HOST=mysql +DB_PORT=3306 +DB_DATABASE=default +DB_USERNAME=default +DB_PASSWORD=secret + +BROADCAST_DRIVER=log +CACHE_DRIVER=file +SESSION_DRIVER=file +SESSION_LIFETIME=120 +QUEUE_DRIVER=sync + +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_DRIVER=smtp +MAIL_HOST=smtp.mailtrap.io +MAIL_PORT=2525 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_ENCRYPTION=null + +PUSHER_APP_ID= +PUSHER_APP_KEY= +PUSHER_APP_SECRET= +PUSHER_APP_CLUSTER=mt1 + +MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" +MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" + +JWT_SECRET=FwYZ3SPFgjpEDqAwcaSIV6eEmQiMtGWt \ No newline at end of file diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 774f9597..06915eec 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -1,7 +1,7 @@ { - "/js/lang-zh-CN.c0da3973e52421a8cfe5.js": "/js/lang-zh-CN.c0da3973e52421a8cfe5.js", - "/js/lang-es.f4a1a5b4a30e92527b46.js": "/js/lang-es.f4a1a5b4a30e92527b46.js", - "/js/lang-en.0f790217417404ecc662.js": "/js/lang-en.0f790217417404ecc662.js", + "/js/lang-zh-CN.489521629fd49ac7628e.js": "/js/lang-zh-CN.489521629fd49ac7628e.js", + "/js/lang-es.459dcb868aa54d488979.js": "/js/lang-es.459dcb868aa54d488979.js", + "/js/lang-en.31386792460363b93c17.js": "/js/lang-en.31386792460363b93c17.js", "/js/app.js": "/js/app.js", "/css/app.css": "/css/app.css" } \ No newline at end of file diff --git a/resources/assets/js/pages/home.vue b/resources/assets/js/pages/home.vue index f1a88da0..092e563b 100644 --- a/resources/assets/js/pages/home.vue +++ b/resources/assets/js/pages/home.vue @@ -236,7 +236,8 @@
Refresh
- +
+
From aea6323a66880dba640680ef833697c92662fa86 Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Fri, 20 Jul 2018 10:59:32 +0800 Subject: [PATCH 02/45] fix other loading button not working --- resources/assets/js/pages/home.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/assets/js/pages/home.vue b/resources/assets/js/pages/home.vue index ce8b285a..99e51477 100644 --- a/resources/assets/js/pages/home.vue +++ b/resources/assets/js/pages/home.vue @@ -321,6 +321,7 @@ export default { x2_cash: null, x2_cheque: null, }, + loading: false, loading_btn: false, status: '', booking: { From e2cf3fecdd0c81fbec5672e06c778bc1c02de78b Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Fri, 20 Jul 2018 11:12:20 +0800 Subject: [PATCH 03/45] fix term1 no service charge fix navbar extra --- app/Http/Controllers/BookingController.php | 6 +++--- resources/assets/js/components/Navbar.vue | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index 5aae8aee..e5f350c3 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -283,7 +283,7 @@ class BookingController extends Controller } // Service charge (RMB) : if amount higher than 10,000, no service charge. if amount lower than 10,000, 20.00 service charge - if ($amount >= 10000 && ($term == 'x2_cash' || $term = 'x2_cheque' || $term = 'x2_ba')) { + if ($amount >= 10000 && ($term == 'x2_cash' || $term == 'x2_cheque' || $term == 'x2_ba')) { $svcharge = 0; } else { $svcharge = 20.00; @@ -583,8 +583,8 @@ class BookingController extends Controller ], 422); break; } - - if ($amount >= 10000 && ($term == 'x2_cash' || $term = 'x2_cheque' || $term = 'x2_ba')) { + + if (($amount >= 10000) && ($term == 'x2_cash' || $term == 'x2_cheque' || $term == 'x2_ba')) { $svcharge = 0; } else { $svcharge = 20.00; diff --git a/resources/assets/js/components/Navbar.vue b/resources/assets/js/components/Navbar.vue index ccbabb91..9d8d5729 100644 --- a/resources/assets/js/components/Navbar.vue +++ b/resources/assets/js/components/Navbar.vue @@ -57,7 +57,6 @@
- diff --git a/resources/assets/js/pages/home.vue b/resources/assets/js/pages/home.vue index 831868d0..4bd39d4b 100644 --- a/resources/assets/js/pages/home.vue +++ b/resources/assets/js/pages/home.vue @@ -441,7 +441,6 @@ export default { axios.get(this.url).then(response => { this.bookingTable = response.data.data $this.makePagination(response.data) - console.log(response) }) }, getRate() { @@ -490,7 +489,6 @@ export default { prev_page_url: data.prev_page_url } this.pagination = pagination - console.log(this.pagination) }, fetchPaginateBooking(url) { this.url = url @@ -530,7 +528,6 @@ export default { axios.post('api/booking/calculation', newConfirmation) .then((response) => { this.loading = false - console.log(response) this.bookingConfirmTable = response.data; this.bookingConfirmTable.payment_for = 'Full Payment';//For future purpose this.bookingConfirmTable.remark = '';//For future purpose diff --git a/routes/api.php b/routes/api.php index 93dde1a7..a2b2bda0 100644 --- a/routes/api.php +++ b/routes/api.php @@ -48,7 +48,7 @@ Route::group(['middleware' => 'auth:api'], function () { Route::patch('settings/password', 'Settings\PasswordController@update'); Route::get('notification/user', 'NotificationController@getUserMessage'); - Route::post('notification/read-notification', 'NotificationController@readNotification'); + Route::post('notification/read-notification/{notification_id}', 'NotificationController@readNotification'); // for both user and admin Route::get('active-bank', 'SettingActiveBankController@index'); From 4e0f1dbe0a6deffd00e74323565d3dc4b186d4ca Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Wed, 25 Jul 2018 16:22:53 +0800 Subject: [PATCH 21/45] removed vee-validate which causes cief bank details not showing in user upload bank slip added exception if userbankslip not save show error added tax rate to supplier booking added order number and payment for to booking seeder --- app/Http/Controllers/BookingController.php | 25 +++++++---- .../Controllers/BookingSupplierController.php | 45 ++++++++++++++++++- database/seeds/BookTableSeeder.php | 2 + package.json | 1 - resources/assets/js/app.js | 2 - .../js/pages/admin/booking/supplierReport.vue | 25 ++++++----- resources/assets/js/pages/auth/register.vue | 2 - .../js/pages/booking/uploadUserBankSlip.vue | 2 +- 8 files changed, 75 insertions(+), 29 deletions(-) diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index e03e922c..1ab412a6 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -417,19 +417,26 @@ class BookingController extends Controller 'user_bankslip', $bankslip_file, $unique_image_path ); - $user_bankslip = $booking->userBankSlip()->first(); + if($upload_path){ + $user_bankslip = $booking->userBankSlip()->first(); - // if user bankslip not exist, create new one - if(!$user_bankslip){ - $user_bankslip = new UserBankSlip; + // if user bankslip not exist, create new one + if(!$user_bankslip){ + $user_bankslip = new UserBankSlip; + } + $user_bankslip->booking_id = $booking->id; + $user_bankslip->bankslip_path = $upload_path; + $user_bankslip->transfer_amount = $request->input('transfer_amount'); + $user_bankslip->save(); + + + return response()->json(['message'=>"Success"],200); + } + else{ + return response()->json(['message' => 'File not uploaded. Please contact support'], 400); } - $user_bankslip->booking_id = $booking->id; - $user_bankslip->bankslip_path = $upload_path; - $user_bankslip->transfer_amount = $request->input('transfer_amount'); - $user_bankslip->save(); - return response()->json(['message'=>"Success"],200); } else { return response()->json(['message' => 'No file detected'], 400); diff --git a/app/Http/Controllers/BookingSupplierController.php b/app/Http/Controllers/BookingSupplierController.php index 38066bbc..709662a0 100644 --- a/app/Http/Controllers/BookingSupplierController.php +++ b/app/Http/Controllers/BookingSupplierController.php @@ -11,6 +11,7 @@ use App\UserBankSlip; use App\SettingBeneficiary; use App\SupplierBookingItem; use App\SettingSupplier; +use App\SettingTaxRate; use Illuminate\Http\Request; class BookingSupplierController extends Controller @@ -30,15 +31,53 @@ class BookingSupplierController extends Controller public function show($id) { $booking = Booking::where('id', $id)->first(); + $tax_rate = SettingTaxRate::latest()->first()->tax_rate; + $bankin_amount = round($booking->amount / $booking->rate, 2); if (!$booking){ return response()->json(['message' => 'Booking not found'], 404); } + switch ($booking->term) { + case "x1_cash": + $payment_method = "CASH"; + break; + case "x1_cheque": + + $payment_method = "CHEQUE"; + break; + case "x1_ba": + + $payment_method = "BA"; + break; + case "x2_cash": + + $payment_method = "CASH"; + break; + case "x2_cheque": + $payment_method = "CHEQUE"; + break; + case "x2_ba": + $payment_method = "BA"; + break; + default: + return response()->json([ + 'success' => false, + 'message' => 'Invalid input', + ], 422); + break; + } + $supplier_booking = $booking->supplierBooking()->first(); $dt = new \DateTime($supplier_booking->created_at); $supplier_booking->date = $dt->format('j F Y'); $supplier_booking->marking = $booking->user->marking; + $supplier_booking->payment_for = $booking->payment_for; + $supplier_booking->order_no = $booking->order_no; + $supplier_booking->payment_method = $payment_method; + $supplier_booking->tax_rate = $tax_rate; + $supplier_booking->rate = $booking->rate; + $supplier_booking->bankin_amount = $bankin_amount; return response()->json($supplier_booking ,200); @@ -57,10 +96,10 @@ class BookingSupplierController extends Controller // Calculation $amountInRMB = $transfer_amount * $rate; $billing = 0.015 * $transfer_amount; - $sales_tax = 0.10 * $transfer_amount; + $sales_tax = 0.0 * $transfer_amount; $gst = 0 * $transfer_amount; // do we still need this ? $customerBankInAmount = round($transfer_amount + $gst + $sales_tax + $billing,2); - $rmbBankAmount = $customerBankInAmount + $rebate; + $rmbBankAmount = round($customerBankInAmount + $rebate, 2); $user = Auth::user(); $supplier = SettingSupplier::find($supplier_id); @@ -90,6 +129,8 @@ class BookingSupplierController extends Controller $booking->status = 4; $booking->admin_status = 4; $booking->save(); + + return response()->json($bookingsupplier, 201); } diff --git a/database/seeds/BookTableSeeder.php b/database/seeds/BookTableSeeder.php index 5dfc3fd9..491032b7 100644 --- a/database/seeds/BookTableSeeder.php +++ b/database/seeds/BookTableSeeder.php @@ -36,6 +36,8 @@ class BookTableSeeder extends Seeder 'user_id' => $user->id, 'status' => 2, 'admin_status' => 2, + 'order_no' => '001', + 'payment_for' => 'FULL PAYMENT', 'created_at' => Carbon::now()->format('Y-m-d H:i:s'), 'updated_at' => Carbon::now()->format('Y-m-d H:i:s'), ]); diff --git a/package.json b/package.json index 74daa53f..33534d51 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,6 @@ "npm": "^6.0.1", "popper.js": "^1.14.1", "sweetalert2": "^7.15.1", - "vee-validate": "^2.1.0-beta.5", "vform": "^1.0.0", "vue": "^2.5.16", "vue-axios": "^2.1.1", diff --git a/resources/assets/js/app.js b/resources/assets/js/app.js index 5b2beb01..e0e5bcc2 100644 --- a/resources/assets/js/app.js +++ b/resources/assets/js/app.js @@ -10,7 +10,6 @@ import locale from 'element-ui/lib/locale/lang/en' import '~/plugins' import '~/components' -import VeeValidate from 'vee-validate'; const config = { errorBagName: 'errors', // change if property conflicts. fieldsBagName: 'fields', @@ -29,7 +28,6 @@ const config = { events: 'blur', inject: true }; -Vue.use(VeeValidate, config); Vue.config.productionTip = false diff --git a/resources/assets/js/pages/admin/booking/supplierReport.vue b/resources/assets/js/pages/admin/booking/supplierReport.vue index 310b3901..8020048b 100644 --- a/resources/assets/js/pages/admin/booking/supplierReport.vue +++ b/resources/assets/js/pages/admin/booking/supplierReport.vue @@ -452,7 +452,7 @@ ctx.textAlign = "right"; //// Row 1 ctx.fillText("Ref No. :", column1X, rowHeight[1] - 5); - ctx.fillText(binding.value.id, column3X, rowHeight[1] - 5); + ctx.fillText(binding.value.booking_id, column3X, rowHeight[1] - 5); //// Row 2 ctx.fillText("Date :", column1X, rowHeight[2] - 5); ctx.fillText(binding.value.date, column3X, rowHeight[2] - 5); @@ -465,10 +465,10 @@ ctx.font = "13px Arial"; //// Row 4 ctx.fillText("Payment For(Order No.) :", column1X, rowHeight[4] - 5); - ctx.fillText(binding.value.id, column3X, rowHeight[4] - 5); + ctx.fillText(binding.value.order_no, column3X, rowHeight[4] - 5); //// Row 4 ctx.fillText("Payment For :", column1X, rowHeight[5] - 5); - ctx.fillText("Full Payment", column3X, rowHeight[5] - 5); + ctx.fillText(binding.value.payment_for, column3X, rowHeight[5] - 5); //// Row 5 ctx.fillText("Payment Method :", column1X, rowHeight[6] - 5); ctx.fillText(binding.value.payment_method, column3X, rowHeight[6] - 5); @@ -506,19 +506,20 @@ //// Row 11 ctx.fillText("MYR/RM :", column1X, rowHeight[14] - 5); ctx.fillText("MYR", column2X, rowHeight[14] - 5); - ctx.fillText("4830.68", column3X, rowHeight[14] - 5); + ctx.fillText(binding.value.bankin_amount, column3X, rowHeight[14] - 5); //// Row 12 - ctx.fillText("Billing(1.0%) :", column1X, rowHeight[15] - 5); - ctx.fillText("MYR", column2X, rowHeight[15] - 5); - ctx.fillText(binding.value.billing_amount, column3X, rowHeight[15] - 5); + // ctx.fillText("Billing(1.0%) :", column1X, rowHeight[15] - 5); + // ctx.fillText("MYR", column2X, rowHeight[15] - 5); + // ctx.fillText(binding.value.billing_amount, column3X, rowHeight[15] - 5); //// Row 13 - ctx.fillText("+ SALES TAX (10%) :", column1X, rowHeight[16] - 5); + + ctx.fillText("+ TAX "+ binding.value.tax_rate + ":", column1X, rowHeight[16] - 5); ctx.fillText("MYR", column2X, rowHeight[16] - 5); ctx.fillText(binding.value.salestax_amount, column3X, rowHeight[16] - 5); - //// Row 14 - ctx.fillText("+ GST 6% :", column1X, rowHeight[17] - 15); - ctx.fillText("MYR", column2X, rowHeight[17] - 15); - ctx.fillText("289.84", column3X, rowHeight[17] - 15); + // //// Row 14 + // ctx.fillText("+ GST 6% :", column1X, rowHeight[17] - 15); + // ctx.fillText("MYR", column2X, rowHeight[17] - 15); + // ctx.fillText("289.84", column3X, rowHeight[17] - 15); //// Row 15 ctx.font = "bold 14px Arial"; ctx.fillText("Customer Bank In Amount :", column1X, rowHeight[18] - 5); diff --git a/resources/assets/js/pages/auth/register.vue b/resources/assets/js/pages/auth/register.vue index d80d1524..dc4dccd2 100644 --- a/resources/assets/js/pages/auth/register.vue +++ b/resources/assets/js/pages/auth/register.vue @@ -83,8 +83,6 @@ import Form from 'vform' import LoginWithGithub from '~/components/LoginWithGithub' import store from '~/store' import Vue from 'vue' -import VeeValidate from 'vee-validate'; -Vue.use(VeeValidate); export default { middleware: 'guest', diff --git a/resources/assets/js/pages/booking/uploadUserBankSlip.vue b/resources/assets/js/pages/booking/uploadUserBankSlip.vue index f4271e58..40fb2b0a 100644 --- a/resources/assets/js/pages/booking/uploadUserBankSlip.vue +++ b/resources/assets/js/pages/booking/uploadUserBankSlip.vue @@ -224,7 +224,7 @@ export default { console.log(error); this.$message({ showClose: true, - message: 'Fetch data fail', + message: 'Fetch bank details fail', type: 'error', duration: 10000 }); From 7e49714be67aeddada9b294a938966050813c5a1 Mon Sep 17 00:00:00 2001 From: lonetrinity Date: Wed, 25 Jul 2018 17:43:38 +0800 Subject: [PATCH 22/45] 70%done --- resources/assets/js/pages/settings/admin-marking-setting.vue | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/resources/assets/js/pages/settings/admin-marking-setting.vue b/resources/assets/js/pages/settings/admin-marking-setting.vue index 07bccc2d..491c9aa2 100644 --- a/resources/assets/js/pages/settings/admin-marking-setting.vue +++ b/resources/assets/js/pages/settings/admin-marking-setting.vue @@ -28,8 +28,9 @@
Cancel - Add New Data + Add New Data
+ Data Added Successfully

@@ -109,6 +110,7 @@ }, methods: { CreateMarking : function(formName){ + this.loading_btn = true this.AddDatadialogVisible = false; this.$refs[formName].validate((valid) => { if (valid) { From 293dfd6cd2e5fb1a978a4e20a0d8eb60fed9f9db Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Wed, 25 Jul 2018 22:33:14 +0800 Subject: [PATCH 23/45] temporary commented out rate and transfer amount from supplier booking --- app/Http/Controllers/BookingSupplierController.php | 5 ++--- database/seeds/BookTableSeeder.php | 4 ++-- .../js/pages/admin/booking/supplierBooking.vue | 14 ++++++-------- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/app/Http/Controllers/BookingSupplierController.php b/app/Http/Controllers/BookingSupplierController.php index 709662a0..94f87f37 100644 --- a/app/Http/Controllers/BookingSupplierController.php +++ b/app/Http/Controllers/BookingSupplierController.php @@ -87,10 +87,10 @@ class BookingSupplierController extends Controller // TODO : Multiple booking public function store(Request $request) { - $transfer_amount = $request->input("transfer_amount"); + //$transfer_amount = $request->input("transfer_amount"); $supplier_id = $request->input("supplier_id"); $booking_id = $request->input("booking_id"); - $rate = $request->input('rate'); + //$rate = $request->input('rate'); $rebate = $request->input('rebate'); // Calculation @@ -110,7 +110,6 @@ class BookingSupplierController extends Controller if (!$bookingsupplier){ $bookingsupplier = new SupplierBooking(); - } $bookingsupplier->supplier_id = $supplier->id; diff --git a/database/seeds/BookTableSeeder.php b/database/seeds/BookTableSeeder.php index 491032b7..9bbc0d9a 100644 --- a/database/seeds/BookTableSeeder.php +++ b/database/seeds/BookTableSeeder.php @@ -18,8 +18,8 @@ class BookTableSeeder extends Seeder $rate = Rate::all()->last(); DB::table('bookings')->insert([ - 'account_name' => 'milah', - 'account_num' => '99898', + 'account_name' => 'EXCHANGE SDN BHD', + 'account_num' => '99898239298123', 'bank_name' => 'maybank', 'bank_branch' => 'rembau', 'company_name' => 'ICEF', diff --git a/resources/assets/js/pages/admin/booking/supplierBooking.vue b/resources/assets/js/pages/admin/booking/supplierBooking.vue index dc4910c0..32042123 100644 --- a/resources/assets/js/pages/admin/booking/supplierBooking.vue +++ b/resources/assets/js/pages/admin/booking/supplierBooking.vue @@ -210,15 +210,15 @@ - + - + Generate Report @@ -260,7 +260,6 @@ supplier_options: null, supplierBookingForm: { supplier: null, - amount: null, rebate: null, rate: null, transfer_amount: null, @@ -333,10 +332,9 @@ let newReport = { booking_id: this.$route.params.id, supplier_id: this.supplierBookingForm.supplier, - amount: this.supplierBookingForm.amount, rebate: this.supplierBookingForm.rebate, - rate: this.supplierBookingForm.rate, - transfer_amount: this.supplierBookingForm.transfer_amount, + //rate: this.supplierBookingForm.rate, + //transfer_amount: this.supplierBookingForm.transfer_amount, } axios.post('/api/supplier-booking', newReport) From 45e8ce862051fccd290dba4aadf4e15f1a85b0f3 Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Thu, 26 Jul 2018 10:56:28 +0800 Subject: [PATCH 24/45] updated supplier calculation with latest format --- .../Controllers/BookingSupplierController.php | 95 +++++++------------ ...dd_fields_into_supplier_bookings_table.php | 32 +++++++ .../js/pages/admin/booking/supplierReport.vue | 24 +++-- 3 files changed, 82 insertions(+), 69 deletions(-) create mode 100644 database/migrations/2018_07_26_094305_add_fields_into_supplier_bookings_table.php diff --git a/app/Http/Controllers/BookingSupplierController.php b/app/Http/Controllers/BookingSupplierController.php index 94f87f37..607daf6b 100644 --- a/app/Http/Controllers/BookingSupplierController.php +++ b/app/Http/Controllers/BookingSupplierController.php @@ -31,7 +31,6 @@ class BookingSupplierController extends Controller public function show($id) { $booking = Booking::where('id', $id)->first(); - $tax_rate = SettingTaxRate::latest()->first()->tax_rate; $bankin_amount = round($booking->amount / $booking->rate, 2); if (!$booking){ @@ -75,10 +74,6 @@ class BookingSupplierController extends Controller $supplier_booking->payment_for = $booking->payment_for; $supplier_booking->order_no = $booking->order_no; $supplier_booking->payment_method = $payment_method; - $supplier_booking->tax_rate = $tax_rate; - $supplier_booking->rate = $booking->rate; - $supplier_booking->bankin_amount = $bankin_amount; - return response()->json($supplier_booking ,200); } @@ -92,19 +87,34 @@ class BookingSupplierController extends Controller $booking_id = $request->input("booking_id"); //$rate = $request->input('rate'); $rebate = $request->input('rebate'); - - // Calculation - $amountInRMB = $transfer_amount * $rate; - $billing = 0.015 * $transfer_amount; - $sales_tax = 0.0 * $transfer_amount; - $gst = 0 * $transfer_amount; // do we still need this ? - $customerBankInAmount = round($transfer_amount + $gst + $sales_tax + $billing,2); - $rmbBankAmount = round($customerBankInAmount + $rebate, 2); - - $user = Auth::user(); $supplier = SettingSupplier::find($supplier_id); $booking = Booking::find($booking_id); + + + // Calculation (backup) + // $amountInRMB = $transfer_amount * $rate; + // $billing = 0.015 * $transfer_amount; + // $sales_tax = 0.0 * $transfer_amount; + // $gst = 0 * $transfer_amount; // do we still need this ? + // $customerBankInAmount = round($transfer_amount + $gst + $sales_tax + $billing,2); + // $rmbBankAmount = round($customerBankInAmount + $rebate, 2); + + // Update: changes in 1.1 according to new supplier booking report + $transfer_amount = $booking->amount; + $rate = $booking->rate; + + $amount_in_myr = round($transfer_amount / $rate, 2); + $amountInRMB = $transfer_amount; + $tax_rate = SettingTaxRate::latest()->first()->tax_rate; + $sales_tax = round($tax_rate * $amount_in_myr - $amount_in_myr, 2); + $amount_after_tax = round($amount_in_myr * $tax_rate,2); + //$billing = 0.015 * $transfer_amount; + // + //$gst = 0 * $transfer_amount; // do we still need this ? + //$customerBankInAmount = round($transfer_amount + $gst + $sales_tax + $billing,2); + //$rmbBankAmount = round($customerBankInAmount + $rebate, 2); + // update existing booking supplier if exist $bookingsupplier = SupplierBooking::where('booking_id', $booking_id)->first(); @@ -113,14 +123,18 @@ class BookingSupplierController extends Controller } $bookingsupplier->supplier_id = $supplier->id; - $bookingsupplier->payment_method = $request->input('payment_method'); - $bookingsupplier->transfer_amount = $transfer_amount; + $bookingsupplier->amountInRMB = $amountInRMB; // TODO : rename to underscore + $bookingsupplier->amount_in_myr = $amount_in_myr; + $bookingsupplier->tax_rate = $tax_rate; + $bookingsupplier->amount_after_tax = $amount_after_tax; $bookingsupplier->rate = $rate; - $bookingsupplier->billing_amount = $billing; - $bookingsupplier->salestax_amount = $sales_tax; - $bookingsupplier->rebate = $rebate; - $bookingsupplier->amountInRMB = $amountInRMB; - $bookingsupplier->rmbBankAmount = $rmbBankAmount; + $bookingsupplier->rebate = $rebate; + $bookingsupplier->salestax_amount = $sales_tax; + //$bookingsupplier->payment_method = $request->input('payment_method'); // TODO : remove from db + //$bookingsupplier->transfer_amount = $transfer_amount; // TODO : remove from db + //$bookingsupplier->billing_amount = $billing; // TODO : remove from db + + //$bookingsupplier->rmbBankAmount = $rmbBankAmount; // TODO : remove from db $bookingsupplier->booking_id = $booking->id; $bookingsupplier->save(); @@ -134,43 +148,6 @@ class BookingSupplierController extends Controller return response()->json($bookingsupplier, 201); } - - public function update(Request $request, $id) - { - $bookingsupplier = SupplierBooking::find($id); - $bookingsupplier->payment_method = $request->input('payment_method'); - $bookingsupplier->transfer_amount = $request->input('transfer_amount'); - $bookingsupplier->rate = $request->input('rate'); - $bookingsupplier->rebate = $request->input('rebate'); - // calculation - $amountInRMB = $amount * $rate; - $billing = 0.015 * $amount; - $sales_tax = 0.10 * $amount; - $gst = 0 * $amount; - $customerBankInAmount = round($amount + $gst + $sales_tax + $billing,2); - $rmbBankAmount = $customerBankInAmount + $rebate; - - // save amount in rmb - $bookingsupplier->amountInRMB = $amountInRMB; - // save rmb bank amount - $bookingsupplier->rmbBankAmount = $rmbBankAmount; - $bookingsupplier->save(); - - /* For multiple booking */ - // $supplierbookingitems = $request->input("supplierbookingitem"); - // foreach ($bookings as $booking) - // { - // $update_supplierbookingitem = SupplierBookingItem::where('supplierbooking_id', $id)->first(); - // $update_supplierbookingitem->china_bankslip_url = $booking['china_bankslip_url']; - // $update_supplierbookingitem->bank_in_amount = $booking['bank_in_amount']; - // $update_supplierbookingitem->date = $booking['date']; - // $update_supplierbookingitem->details = $booking['details']; - // $update_supplierbookingitem->save(); - // } - return response()->json(['book_id'=>$book_id],201); - } - - public function report(Request $request, $id) { $supplier_booking = Booking::firstOrFail($id)->supplierBooking()->firstOrFail(); diff --git a/database/migrations/2018_07_26_094305_add_fields_into_supplier_bookings_table.php b/database/migrations/2018_07_26_094305_add_fields_into_supplier_bookings_table.php new file mode 100644 index 00000000..c7320caa --- /dev/null +++ b/database/migrations/2018_07_26_094305_add_fields_into_supplier_bookings_table.php @@ -0,0 +1,32 @@ +string('amount_in_myr')->nullable(); + $table->string('tax_rate')->nullable(); + $table->string('amount_after_tax')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +} diff --git a/resources/assets/js/pages/admin/booking/supplierReport.vue b/resources/assets/js/pages/admin/booking/supplierReport.vue index 8020048b..5c8d655e 100644 --- a/resources/assets/js/pages/admin/booking/supplierReport.vue +++ b/resources/assets/js/pages/admin/booking/supplierReport.vue @@ -480,13 +480,17 @@ ctx.fillText("MYR/RM :", column1X, rowHeight[9] - 5); ctx.fillText("MYR", column2X, rowHeight[9] - 5); ctx.font = "bold 14px Arial"; - ctx.fillText(binding.value.transfer_amount, column3X, rowHeight[9] - 5); + ctx.fillText(binding.value.amount_in_myr, column3X, rowHeight[9] - 5); ctx.font = "13px Arial"; //// Row 8 ctx.fillText("* RATE :", column1X, rowHeight[10] - 5); ctx.fillText(binding.value.rate, column3X, rowHeight[10] - 5); //// Row 9 - // Empty + ctx.fillText("REBATE :", column1X, rowHeight[11] - 5); + ctx.fillText("MYR", column2X, rowHeight[11] - 5); + ctx.font = "14px Arial"; + ctx.fillText(binding.value.rebate, column3X, rowHeight[11] - 5); + ctx.font = "13px Arial"; //// Row 10 ctx.font = "bold 14px Arial"; ctx.fillText("CNY", column2X, rowHeight[12] - 5); @@ -506,14 +510,14 @@ //// Row 11 ctx.fillText("MYR/RM :", column1X, rowHeight[14] - 5); ctx.fillText("MYR", column2X, rowHeight[14] - 5); - ctx.fillText(binding.value.bankin_amount, column3X, rowHeight[14] - 5); + ctx.fillText(binding.value.amount_in_myr, column3X, rowHeight[14] - 5); //// Row 12 // ctx.fillText("Billing(1.0%) :", column1X, rowHeight[15] - 5); // ctx.fillText("MYR", column2X, rowHeight[15] - 5); // ctx.fillText(binding.value.billing_amount, column3X, rowHeight[15] - 5); //// Row 13 - ctx.fillText("+ TAX "+ binding.value.tax_rate + ":", column1X, rowHeight[16] - 5); + ctx.fillText("+ TAX "+ (Math.round((binding.value.tax_rate * 100 - 100) * 100) / 100) + "% :", column1X, rowHeight[16] - 5); // TODO : Change to percentage ctx.fillText("MYR", column2X, rowHeight[16] - 5); ctx.fillText(binding.value.salestax_amount, column3X, rowHeight[16] - 5); // //// Row 14 @@ -522,10 +526,10 @@ // ctx.fillText("289.84", column3X, rowHeight[17] - 15); //// Row 15 ctx.font = "bold 14px Arial"; - ctx.fillText("Customer Bank In Amount :", column1X, rowHeight[18] - 5); + ctx.fillText("Bank In Amount :", column1X, rowHeight[18] - 5); ctx.fillStyle = "#0070D5"; ctx.fillText("MYR", column2X, rowHeight[18] - 5); - ctx.fillText(binding.value.amountInRMB, column3X, rowHeight[18] - 5); + ctx.fillText(binding.value.amount_after_tax, column3X, rowHeight[18] - 5); ctx.fillStyle = "#000000"; ctx.font = "13px Arial"; //line @@ -543,16 +547,16 @@ ctx.lineTo(column3X + 20, rowHeight[18] - 2); ctx.stroke(); //// Row 16 - ctx.fillText("Rebate :", column1X, rowHeight[19] - 25); - ctx.fillText("CNY", column2X, rowHeight[19] - 25); - ctx.fillText("224.68", column3X, rowHeight[19] - 25); + // ctx.fillText("Rebate :", column1X, rowHeight[19] - 25); + // ctx.fillText("CNY", column2X, rowHeight[19] - 25); + // ctx.fillText("224.68", column3X, rowHeight[19] - 25); //// Row 16 ctx.font = "bold 14px Arial"; ctx.fillText("Bank In to Account Below :", column1X, rowHeight[20] - 5); ctx.font = "bold italic 15px Arial"; ctx.fillStyle = "#0070D5"; ctx.fillText("CNY", column2X, rowHeight[20] - 5); - ctx.fillText("7692.17", column3X - 20, rowHeight[20] - 5); + ctx.fillText(binding.value.amountInRMB, column3X - 20, rowHeight[20] - 5); ctx.fillStyle = "#000000"; ctx.font = "13px Arial"; //// Row 17 From 74b84acf36c57ef33416c2719ff97d97454f2485 Mon Sep 17 00:00:00 2001 From: weiweitoo Date: Thu, 26 Jul 2018 10:58:56 +0800 Subject: [PATCH 25/45] add time_interval feature in notification --- .../Controllers/NotificationController.php | 7 +- app/Notification.php | 67 +++++++++++++++++++ resources/assets/js/components/Navbar.vue | 16 ++++- 3 files changed, 86 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/NotificationController.php b/app/Http/Controllers/NotificationController.php index 59846fee..00c8e722 100644 --- a/app/Http/Controllers/NotificationController.php +++ b/app/Http/Controllers/NotificationController.php @@ -42,8 +42,11 @@ class NotificationController extends Controller public function getUserMessage() { + $user_all_notification = Notification::Where("user_id",Auth::user()->id)->orderby('updated_at','desc')->get(); + + return response()->json([ - "message" =>Notification::Where("user_id",Auth::user()->id)->orderby('updated_at','desc')->get(), + "message" =>$user_all_notification, "unread_message" =>Notification::Where([ ["user_id",Auth::user()->id], ["is_read",0] @@ -57,4 +60,6 @@ class NotificationController extends Controller ->update(array('is_read' => 1)); return response()->json("Read message", 200); } + + } \ No newline at end of file diff --git a/app/Notification.php b/app/Notification.php index c9acda64..0ac7488f 100644 --- a/app/Notification.php +++ b/app/Notification.php @@ -7,4 +7,71 @@ use Illuminate\Database\Eloquent\Model; class Notification extends Model { protected $fillable = ['detail','user_id','is_read']; + protected $appends = ['time_interval']; + + public function getTimeIntervalAttribute() + { + $created_time = $this->created_at; + + date_default_timezone_set('Asia/Kuala_Lumpur'); //Change as per your default time + $str = strtotime($created_time); + $today = strtotime(date('Y-m-d H:i:s')); + + // It returns the time difference in Seconds... + $time_differnce = $today-$str; + + // To Calculate the time difference in Years... + $years = 60*60*24*365; + + // To Calculate the time difference in Months... + $months = 60*60*24*30; + + // To Calculate the time difference in Days... + $days = 60*60*24; + + // To Calculate the time difference in Hours... + $hours = 60*60; + + // To Calculate the time difference in Minutes... + $minutes = 60; + + if(intval($time_differnce/$years) > 1) + { + return intval($time_differnce/$years)." years ago"; + }else if(intval($time_differnce/$years) > 0) + { + return intval($time_differnce/$years)." year ago"; + }else if(intval($time_differnce/$months) > 1) + { + return intval($time_differnce/$months)." months ago"; + }else if(intval(($time_differnce/$months)) > 0) + { + return intval(($time_differnce/$months))." month ago"; + }else if(intval(($time_differnce/$days)) > 1) + { + return intval(($time_differnce/$days))." days ago"; + }else if (intval(($time_differnce/$days)) > 0) + { + return intval(($time_differnce/$days))." day ago"; + }else if (intval(($time_differnce/$hours)) > 1) + { + return intval(($time_differnce/$hours))." hours ago"; + }else if (intval(($time_differnce/$hours)) > 0) + { + return intval(($time_differnce/$hours))." hour ago"; + }else if (intval(($time_differnce/$minutes)) > 1) + { + return intval(($time_differnce/$minutes))." minutes ago"; + }else if (intval(($time_differnce/$minutes)) > 0) + { + return intval(($time_differnce/$minutes))." minute ago"; + }else if (intval(($time_differnce)) > 1) + { + return intval(($time_differnce))." seconds ago"; + }else + { + return "few seconds ago"; + } + } + } diff --git a/resources/assets/js/components/Navbar.vue b/resources/assets/js/components/Navbar.vue index bfe6afe3..8cdc5c99 100644 --- a/resources/assets/js/components/Navbar.vue +++ b/resources/assets/js/components/Navbar.vue @@ -22,7 +22,7 @@ - + @@ -119,6 +123,7 @@ export default { this.loadingNotification=false; this.notification = response.data; this.bellBadge = this.notification.unread_message.length; + console.log(response.data); }).catch((error) => { console.log(error) this.$router.push({ @@ -130,7 +135,6 @@ export default { axios .post('/api/notification/read-notification/'+notification_id) .then((response) => { - console.log(1211); this.getNotification(); }).catch((error) => { console.log(error) @@ -157,6 +161,12 @@ export default { overflow-y: scroll; overflow-x: hidden; } +.el-dropdown-menu__item { + line-height: 26px; +} +.opacity80{ + opacity: 0.8 ; +} ::-webkit-scrollbar { width: 0px; background: transparent; /* make scrollbar transparent */ From 2f63c27e67d5f964b025cef9b3585ee26cb75ae1 Mon Sep 17 00:00:00 2001 From: weiweitoo Date: Thu, 26 Jul 2018 11:06:28 +0800 Subject: [PATCH 26/45] Uodate store calculation --- app/Http/Controllers/BookingController.php | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index bf7256a2..28355215 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -297,21 +297,9 @@ class BookingController extends Controller $svcharge = 20.00; } - // initial rmb to myr amount - $RMBinMYR = (($amount + $svcharge) / $rate); - - // TODO : Should be remove this ? - // gst 0% - $gst = 0 * $RMBinMYR; - - // Sales tax : 10 % - $sales_tax = 0.10 * $RMBinMYR; - - // Billing fees : 1.5% - $billing = 0.015 * $RMBinMYR; - - // Bank in amount - $bia = round($RMBinMYR + $gst + $sales_tax + $billing, 2); + $bia = round(round($amount + $svcharge / $rate,2) + + round(round($amount + $svcharge / $rate,2) * $taxrate,2) + + round(($amount + $svcharge) * $billingChargeRate, 2) , 2); $booking = new Booking(); $booking->account_name = $request->input('account_name'); From 8f7a4ee6b630688b54024cc130b11401cf68762f Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Thu, 26 Jul 2018 11:22:03 +0800 Subject: [PATCH 27/45] changed get active bank from backend instead of frontend --- .../Controllers/BookingSupplierController.php | 18 +++++++++ .../js/pages/admin/booking/supplierReport.vue | 39 +++---------------- 2 files changed, 23 insertions(+), 34 deletions(-) diff --git a/app/Http/Controllers/BookingSupplierController.php b/app/Http/Controllers/BookingSupplierController.php index 607daf6b..800f6971 100644 --- a/app/Http/Controllers/BookingSupplierController.php +++ b/app/Http/Controllers/BookingSupplierController.php @@ -12,6 +12,7 @@ use App\SettingBeneficiary; use App\SupplierBookingItem; use App\SettingSupplier; use App\SettingTaxRate; +use App\SettingActiveBank; use Illuminate\Http\Request; class BookingSupplierController extends Controller @@ -67,6 +68,7 @@ class BookingSupplierController extends Controller break; } + $supplier_booking = $booking->supplierBooking()->first(); $dt = new \DateTime($supplier_booking->created_at); $supplier_booking->date = $dt->format('j F Y'); @@ -75,6 +77,22 @@ class BookingSupplierController extends Controller $supplier_booking->order_no = $booking->order_no; $supplier_booking->payment_method = $payment_method; + $active_bank = SettingActiveBank::first(); + + // if setting is set to use customer's beneficiary + if ($active_bank->beneficiary_id == 0){ + $supplier_booking->acc_name = $booking->account_name; + $supplier_booking->acc_no = $booking->account_num; // TODO : standardize acc_no + $supplier_booking->bank_name = $booking->bank_name; + } + + else{ + $beneficiary = SettingBeneficiary::find($active_bank->beneficiary_id); + $supplier_booking->acc_name = $beneficiary->company_name; + $supplier_booking->acc_no = $beneficiary->acc_no; + $supplier_booking->bank_name = $beneficiary->bank_name; + } + return response()->json($supplier_booking ,200); } diff --git a/resources/assets/js/pages/admin/booking/supplierReport.vue b/resources/assets/js/pages/admin/booking/supplierReport.vue index 5c8d655e..83e17a3a 100644 --- a/resources/assets/js/pages/admin/booking/supplierReport.vue +++ b/resources/assets/js/pages/admin/booking/supplierReport.vue @@ -313,43 +313,14 @@ axios.get('/api/supplier-booking/' + this.$route.params.id) .then((response) => { this.supplier_booking = response.data + loading.close() }).catch((error) => { console.log(error) this.$router.push({ name: 'notfound' }) + loading.close() }) - - axios.get('/api/active-bank') - .then((response) => { - axios.get('/api/setting-beneficiary/' + response.data.beneficiary_id) - .then((response) => { - loading.close(); - this.supplier_booking.china_bank_name = response.data.bank_name; - this.supplier_booking.china_company_name = response.data.company_name; - this.supplier_booking.china_acc_no = response.data.acc_no; - }) - .catch((error) => { - loading.close(); - console.log(error); - this.$message({ - showClose: true, - message: 'Fetch data fail', - type: 'error', - duration: 10000 - }); - }); - }) - .catch((error) => { - loading.close(); - console.log(error); - this.$message({ - showClose: true, - message: 'Fetch data fail', - type: 'error', - duration: 10000 - }); - }); }, methods: { downloadReport(){ @@ -578,9 +549,9 @@ ctx.font = "bold 14px Arial"; ctx.textAlign = "center"; ctx.fillText("China beneficiary Account", column2X - 40, rowHeight[22] - 80); - ctx.fillText("户名 : " + binding.value.china_company_name, column2X - 40, rowHeight[22] - 60); - ctx.fillText(binding.value.china_acc_no, column2X - 40, rowHeight[22] - 40); - ctx.fillText(binding.value.china_bank_name , column2X - 40, rowHeight[22] - 20); + ctx.fillText("户名 : " + binding.value.acc_name, column2X - 40, rowHeight[22] - 60); + ctx.fillText(binding.value.acc_no, column2X - 40, rowHeight[22] - 40); + ctx.fillText(binding.value.bank_name , column2X - 40, rowHeight[22] - 20); ctx.font = "13px Arial"; }, 1000,canvasElement,binding); From 81be224fca9c3b1394ff6c930389a0f9021f68c8 Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Thu, 26 Jul 2018 11:39:18 +0800 Subject: [PATCH 28/45] update currency note in booking calculation --- resources/assets/js/pages/home.vue | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/resources/assets/js/pages/home.vue b/resources/assets/js/pages/home.vue index 4bd39d4b..c31a127b 100644 --- a/resources/assets/js/pages/home.vue +++ b/resources/assets/js/pages/home.vue @@ -197,13 +197,13 @@ CNY/RMB : - RM {{ bookingConfirmTable.amount }} + CNY {{ bookingConfirmTable.amount }} + Service Charges : - RM {{ bookingConfirmTable.service_charge }} + CNY {{ bookingConfirmTable.service_charge }} @@ -215,25 +215,25 @@ - RM {{ bookingConfirmTable.subtotal }} + MYR {{ bookingConfirmTable.subtotal }} + Tax : - RM {{ bookingConfirmTable.taxAmount }} + MYR {{ bookingConfirmTable.taxAmount }} + Billing Charge : - RM {{ bookingConfirmTable.billingChargeAmount }} + MYR {{ bookingConfirmTable.billingChargeAmount }} Bank In Amount : - RM {{ bookingConfirmTable.bankin_amount }} + MYR {{ bookingConfirmTable.bankin_amount }} From 4ae97df8c5c3d69be0a84d3437db4e9f020e69ab Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Thu, 26 Jul 2018 11:42:17 +0800 Subject: [PATCH 29/45] fixed term1 fixed charge bug --- app/Http/Controllers/BookingController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index 28355215..fe14b372 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -291,7 +291,7 @@ class BookingController extends Controller } // Service charge (RMB) : if amount higher than 10,000, no service charge. if amount lower than 10,000, 20.00 service charge - if ($amount >= 10000 && ($term == 'x2_cash' || $term = 'x2_cheque' || $term = 'x2_ba')) { + if ($amount >= 10000 && ($term == 'x2_cash' || $term == 'x2_cheque' || $term == 'x2_ba')) { $svcharge = 0; } else { $svcharge = 20.00; @@ -589,7 +589,7 @@ class BookingController extends Controller break; } - if ($amount >= 10000 && ($term == 'x2_cash' || $term = 'x2_cheque' || $term = 'x2_ba')) { + if ($amount >= 10000 && ($term == 'x2_cash' || $term == 'x2_cheque' || $term == 'x2_ba')) { $svcharge = 0; } else { $svcharge = 20.00; From a06f57712d308721109283fcb9ab6298bb52f33c Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Thu, 26 Jul 2018 12:26:34 +0800 Subject: [PATCH 30/45] fix user booking calculation --- app/Http/Controllers/BookingController.php | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index fe14b372..72ae5813 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -595,9 +595,24 @@ class BookingController extends Controller $svcharge = 20.00; } - $subtotal = round($amount + $svcharge / $rate,2); - $taxAmount = round($subtotal * $taxrate,2); - $billingChargeAmount = round(($amount + $svcharge) * $billingChargeRate, 2); + $subtotal = round(($amount + $svcharge) / $rate,2); + + // TODO : refactor + if ($taxrate !=0){ + $taxAmount = round($subtotal * $taxrate - $subtotal,2); + } + else{ + $taxAmount = 0; + } + + if ($billingChargeRate !=0){ + $billingChargeAmount = round(($amount + $svcharge) * $billingChargeRate - ($amount + $svcharge), 2); + } + else{ + $billingChargeAmount = 0; + } + + $billingChargeAmount = round((($amount / $rate) * $billingChargeRate) - ($amount / $rate), 2); $bankin_amount = round($subtotal + $taxAmount + $billingChargeAmount , 2); return response()->json([ From 665a4faa91ee51e11e912ec036bb0db5a3912f9e Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Thu, 26 Jul 2018 14:47:48 +0800 Subject: [PATCH 31/45] fix beneficiary name and acc number display on booking confirmation --- app/Http/Controllers/BookingController.php | 2 ++ resources/assets/js/pages/home.vue | 10 +++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index 72ae5813..298367be 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -627,6 +627,8 @@ class BookingController extends Controller 'taxAmount' => $taxAmount, 'billingChargeAmount' => $billingChargeAmount, 'bankin_amount' => $bankin_amount, + 'acc_name' => $request->input('acc_name'), + 'acc_no' => $request->input('acc_no') ], 200); } diff --git a/resources/assets/js/pages/home.vue b/resources/assets/js/pages/home.vue index c31a127b..41c21d36 100644 --- a/resources/assets/js/pages/home.vue +++ b/resources/assets/js/pages/home.vue @@ -242,10 +242,8 @@ -
- {{index+1}}) {{ item.account_name }} {{ item.account_num }} -
-
+ Name : {{ bookingConfirmTable.acc_name }}
+ Account No. : {{ bookingConfirmTable.acc_no }} @@ -523,7 +521,9 @@ export default { if (valid) { let newConfirmation = { amount: this.booking.amount, - term: this.term + term: this.term, + acc_name: this.bookingForm.account_name, + acc_no: this.bookingForm.account_num } axios.post('api/booking/calculation', newConfirmation) .then((response) => { From fa049bfa7e68c01b6f05954f61f9c2260f51c11d Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Thu, 26 Jul 2018 15:15:18 +0800 Subject: [PATCH 32/45] fixed incorrect calculation when storing booking --- app/Http/Controllers/BookingController.php | 34 +++++++++++++++++----- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index 298367be..5c5fc19d 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -249,7 +249,9 @@ class BookingController extends Controller $term = $request->input('term'); $amount = $request->input("amount"); // in RMB $rates = Rate::orderby('updated_at','desc')->first(); - $creditLimit = SettingCredit::orderby('updated_at','desc')->first(); + $creditLimit = SettingCredit::orderby('updated_at','desc')->first(); + $taxrate = SettingTaxRate::latest()->first()->tax_rate; + $billingChargeRate = SettingBillingCharge::latest()->first()->billing_charge_rate; if (!$creditLimit){ return response()->json("Credit limit not set, please contact admin", 405); @@ -291,15 +293,31 @@ class BookingController extends Controller } // Service charge (RMB) : if amount higher than 10,000, no service charge. if amount lower than 10,000, 20.00 service charge - if ($amount >= 10000 && ($term == 'x2_cash' || $term == 'x2_cheque' || $term == 'x2_ba')) { + if ($amount >= 10000 && ($term == 'x2_cash' || $term == 'x2_cheque' || $term == 'x2_ba')) { $svcharge = 0; } else { $svcharge = 20.00; } - - $bia = round(round($amount + $svcharge / $rate,2) - + round(round($amount + $svcharge / $rate,2) * $taxrate,2) - + round(($amount + $svcharge) * $billingChargeRate, 2) , 2); + + $subtotal = round(($amount + $svcharge) / $rate,2); + + // TODO : refactor + if ($taxrate !=0){ + $taxAmount = round($subtotal * $taxrate - $subtotal,2); + } + else{ + $taxAmount = 0; + } + + if ($billingChargeRate !=0){ + $billingChargeAmount = round(($amount + $svcharge) * $billingChargeRate - ($amount + $svcharge), 2); + } + else{ + $billingChargeAmount = 0; + } + + $billingChargeAmount = round((($amount / $rate) * $billingChargeRate) - ($amount / $rate), 2); + $bankin_amount = round($subtotal + $taxAmount + $billingChargeAmount , 2); $booking = new Booking(); $booking->account_name = $request->input('account_name'); @@ -310,9 +328,9 @@ class BookingController extends Controller $booking->term = $term; $booking->rate_id = $rates->id; $booking->rate = $rate; - $booking->rmb_book_amount = $request->input('amount'); + $booking->rmb_book_amount = $request->input('amount'); // BIG TODO : amount change variable name to rmb_book_amount $booking->status = 2; - $booking->bia = $bia; + $booking->bia = $bankin_amount; // BID TODO : change bia viariable name // $booking->user_id = $user->id; $booking->user()->associate($user); From 4f3d225084a3fbf506ae92eb8760d3dd896cfbe3 Mon Sep 17 00:00:00 2001 From: lonetrinity Date: Thu, 26 Jul 2018 17:55:55 +0800 Subject: [PATCH 33/45] fix/Admin/Settings --- resources/assets/js/components/Navbar.vue | 1 - .../js/pages/settings/admin-china-bank.vue | 39 ++++++++++++-- .../pages/settings/admin-credit-setting.vue | 2 +- .../js/pages/settings/admin-malaysia-bank.vue | 54 ++++++++++++++++--- 4 files changed, 81 insertions(+), 15 deletions(-) diff --git a/resources/assets/js/components/Navbar.vue b/resources/assets/js/components/Navbar.vue index ccbabb91..9d8d5729 100644 --- a/resources/assets/js/components/Navbar.vue +++ b/resources/assets/js/components/Navbar.vue @@ -57,7 +57,6 @@ -