diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index a91f34f5..ea7332b2 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -19,9 +19,10 @@ class BookingController extends Controller { public function index(){ + $user = Auth::user(); $bookings = Booking::select('id', 'created_at', 'status', 'rate', 'term', 'amount', 'bia', 'verification_status') - ->where('user_id',Auth::user()->id) - ->get(); + ->where('user_id', $user->id) + ->get(); // reformat to fit frontend structure foreach ($bookings as $booking) { @@ -60,18 +61,73 @@ class BookingController extends Controller $status_desc = "Processing invoice"; break; default: - $biastatus_desc = ""; + $status_desc = ""; } $booking->status_desc = $status_desc; } return $bookings; - } + } + + public function adminIndex(){ + $user = Auth::user(); + $bookings = Booking::select('id', 'created_at', 'admin_status', 'rate', 'term', 'amount', 'bia', 'verification_status') + ->get(); + + // reformat to fit frontend structure + foreach ($bookings as $booking) { + // set timeout + $date1 = new DateTime($booking->created_at); + $date2 = new DateTime(); + $difference_in_seconds = ($date1->format('U') + 600) - ($date2->format('U')); + $booking->timeout = $difference_in_seconds; + + // TODO : you can make it better + if($difference_in_seconds < 0 ){ + $booking->timeout = 0; + } + + // TODO : transfer_amount change name to bia + $booking->transfer_amount = $booking->bia; + + $booking->track_status = "(". $booking->admin_status ."/6)"; + switch ($booking->admin_status) { + case 0: + $status_desc = "Waiting user to upload bankin slip"; + break; + case 1: + $status_desc = "Waiting for verification"; + break; + case 2: + $status_desc = "Bookg with supplier"; + break; + case 3: + $status_desc = "Supplier booking report. Please confirm with your booking."; + break; + case 4: + $status_desc = "Please update supplier booking status."; + break; + case 5: + $status_desc = "Customer has uploaded the invoice, please upload purchase order"; + break; + case 6: + $status_desc = "Booking completed"; + break; + default: + $status_desc = ""; + } + $booking->status_desc = $status_desc; + } + + return $bookings; + + } public function show($id) { $booking = Booking::where('user_id',Auth::user()->id)->where('id', $id)->first(); + if($booking){ $date1 = new DateTime($booking->created_at); $date2 = new DateTime(); $difference_in_seconds = ($date1->format('U') + 600) - ($date2->format('U')); @@ -81,7 +137,27 @@ class BookingController extends Controller if (!$booking){ return response()->json(['success'=>false, 'message'=>'not found'], 404); } - return $booking; + return $booking; + } + } + + public function adminShow($id) + { + $booking = Booking::where('id', $id)->first(); + return $booking->userBankSlip()->get(); + + if($booking){ + $date1 = new DateTime($booking->created_at); + $date2 = new DateTime(); + $difference_in_seconds = ($date1->format('U') + 600) - ($date2->format('U')); + + $booking->timeout = $difference_in_seconds; + + if (!$booking){ + return response()->json(['success'=>false, 'message'=>'not found'], 404); + } + return $booking; + } } public function store(Request $request) diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 58f9b8ab..392564cc 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; +use Auth; class UserController extends Controller { @@ -15,7 +16,9 @@ class UserController extends Controller * @return \Illuminate\Http\Response */ public function show(Request $request) - { - return $request->user(); + { + + $user = Auth::user(); + return $user; } } diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index da7a7f5c..a95cd23b 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -61,5 +61,6 @@ class Kernel extends HttpKernel 'ability' => 'App\Http\Middleware\TokenEntrustAbility', 'role' => \Zizaco\Entrust\Middleware\EntrustRole::class, 'permission' => \Zizaco\Entrust\Middleware\EntrustPermission::class, + 'ability' => 'App\Http\Middleware\TokenEntrustAbility' ]; } diff --git a/app/User.php b/app/User.php index 065b512e..855641bb 100644 --- a/app/User.php +++ b/app/User.php @@ -58,7 +58,7 @@ class User extends Authenticatable implements JWTSubject */ public function getRoleAttribute() { - // return $this->roles->first()->name; + return $this->roles->first()->name; } /** diff --git a/database/migrations/2018_06_22_042127_add_adminstatus_to_booking_table.php b/database/migrations/2018_06_22_042127_add_adminstatus_to_booking_table.php new file mode 100644 index 00000000..4e7e93a9 --- /dev/null +++ b/database/migrations/2018_06_22_042127_add_adminstatus_to_booking_table.php @@ -0,0 +1,33 @@ +integer('admin_status')->default(1); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('bookings', function (Blueprint $table) { + $table->dropColumn('admin_status'); + // $table->dropColumn('reject_reason'); + }); + } +} diff --git a/database/migrations/2018_06_22_042911_change_adminstatus_default_booking_table.php b/database/migrations/2018_06_22_042911_change_adminstatus_default_booking_table.php new file mode 100644 index 00000000..5047f990 --- /dev/null +++ b/database/migrations/2018_06_22_042911_change_adminstatus_default_booking_table.php @@ -0,0 +1,29 @@ +integer('admin_status')->default(0)->change(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + } +} diff --git a/database/migrations/2018_06_25_075341_change_adminstatus_default_to1_on_booking_table.php b/database/migrations/2018_06_25_075341_change_adminstatus_default_to1_on_booking_table.php new file mode 100644 index 00000000..ef50d656 --- /dev/null +++ b/database/migrations/2018_06_25_075341_change_adminstatus_default_to1_on_booking_table.php @@ -0,0 +1,30 @@ +integer('admin_status')->default(1)->change(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +} diff --git a/resources/assets/js/components/AdminProgressTrack.vue b/resources/assets/js/components/AdminProgressTrack.vue new file mode 100644 index 00000000..dfae9647 --- /dev/null +++ b/resources/assets/js/components/AdminProgressTrack.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/resources/assets/js/components/ProgressTrack.vue b/resources/assets/js/components/ProgressTrack.vue index 0aa7c413..00c85c5d 100644 --- a/resources/assets/js/components/ProgressTrack.vue +++ b/resources/assets/js/components/ProgressTrack.vue @@ -1,17 +1,16 @@ - + diff --git a/resources/assets/js/pages/admin/booking/supplierReport.vue b/resources/assets/js/pages/admin/booking/supplierReport.vue new file mode 100644 index 00000000..37196cb3 --- /dev/null +++ b/resources/assets/js/pages/admin/booking/supplierReport.vue @@ -0,0 +1,74 @@ + + + diff --git a/resources/assets/js/pages/admin/booking/uploadChinaBankslip.vue b/resources/assets/js/pages/admin/booking/uploadChinaBankslip.vue new file mode 100644 index 00000000..37196cb3 --- /dev/null +++ b/resources/assets/js/pages/admin/booking/uploadChinaBankslip.vue @@ -0,0 +1,74 @@ + + + diff --git a/resources/assets/js/pages/admin/booking/uploadInvoice.vue b/resources/assets/js/pages/admin/booking/uploadInvoice.vue new file mode 100644 index 00000000..37196cb3 --- /dev/null +++ b/resources/assets/js/pages/admin/booking/uploadInvoice.vue @@ -0,0 +1,74 @@ + + + diff --git a/resources/assets/js/pages/admin/booking/verification.vue b/resources/assets/js/pages/admin/booking/verification.vue new file mode 100644 index 00000000..20bac84b --- /dev/null +++ b/resources/assets/js/pages/admin/booking/verification.vue @@ -0,0 +1,280 @@ + + + \ No newline at end of file diff --git a/resources/assets/js/pages/admin/home.vue b/resources/assets/js/pages/admin/home.vue index f5f67c94..7fe842c0 100644 --- a/resources/assets/js/pages/admin/home.vue +++ b/resources/assets/js/pages/admin/home.vue @@ -1,15 +1,138 @@ diff --git a/resources/assets/js/pages/auth/login.vue b/resources/assets/js/pages/auth/login.vue index 054eb81f..06c5e6b4 100644 --- a/resources/assets/js/pages/auth/login.vue +++ b/resources/assets/js/pages/auth/login.vue @@ -80,11 +80,9 @@ export default { methods: { async login () { - // Submit the form. const { data } = await this.form.post('/api/login') - // Add loading screen const loading = this.$loading({ lock: true, @@ -96,14 +94,12 @@ export default { // Save the token. this.$store.dispatch('auth/saveToken', { token: data.token, - remember: this.remember, + remember: this.remember }) // Fetch the user. await this.$store.dispatch('auth/fetchUser') - - // Redirect home. if (store.getters['auth/user'].role === 'admin') { this.$router.push({ name: 'admin.home' }) diff --git a/resources/assets/js/pages/booking/completed.vue b/resources/assets/js/pages/booking/completed.vue index 1cb07172..42585d3c 100644 --- a/resources/assets/js/pages/booking/completed.vue +++ b/resources/assets/js/pages/booking/completed.vue @@ -1,103 +1,103 @@ \ No newline at end of file + }, + methods: { + + } +} + diff --git a/resources/assets/js/pages/booking/confirmation.vue b/resources/assets/js/pages/booking/confirmation.vue index 58812c71..8e2ce4bf 100644 --- a/resources/assets/js/pages/booking/confirmation.vue +++ b/resources/assets/js/pages/booking/confirmation.vue @@ -1,6 +1,6 @@