From 336e5e4ed32d615193a7f66819f4eaeaa5811bd6 Mon Sep 17 00:00:00 2001 From: weiweitoo Date: Wed, 25 Jul 2018 10:05:18 +0800 Subject: [PATCH] create notification for each step done. Make unread message bold. --- app/Http/Controllers/BookingController.php | 51 ++++++++++++++++--- .../Controllers/ChinaBankSlipController.php | 9 ++++ .../Controllers/NotificationController.php | 6 +-- resources/assets/js/components/Navbar.vue | 24 ++++++--- resources/assets/js/pages/admin/home.vue | 8 ++- .../js/pages/booking/uploadUserBankSlip.vue | 5 +- resources/assets/js/pages/home.vue | 14 ++--- routes/api.php | 2 +- 8 files changed, 87 insertions(+), 32 deletions(-) diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index 6efd7281..bf7256a2 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -13,6 +13,7 @@ use App\Invoice; use App\SettingCredit; use App\SettingTaxRate; use App\SettingBillingCharge; +use App\Notification; use Auth; use Validator; use DateTime; @@ -447,9 +448,16 @@ class BookingController extends Controller $booking->admin_status = 2; $booking->save(); + // Add notification message to admin + $adminNotification = new Notification; + $adminNotification->detail = "A bankslip is uploaded for booking " . $booking->id; + $adminNotification->link = "/booking/" . $booking->id . "/verification"; + $adminNotification->user_id = User::withRole('admin')->first()->id; + $adminNotification->save(); + $user_bankslip->transfer_amount = $request->input('transfer_amount'); $user_bankslip->save(); - return response()->json(["message"=> "Success"],200); + return response()->json($adminNotification,200); } public function uploadPurchaseOrder(Request $request, $id) @@ -559,7 +567,6 @@ class BookingController extends Controller if($amount > $creditLimit->rmb_credit_limit){ return response()->json(["message" => "Exceed credit limit, please contact our sales team for larger quantitiy"], 400); } - switch ($term) { case "x1_cash": @@ -647,11 +654,26 @@ class BookingController extends Controller // update booking status $booking->status = 4; - if($booking->term !== "x1_ba" || $booking->term !== "x2_cheque") + if($booking->term !== "x1_ba" || $booking->term !== "x2_cheque"){ $booking->admin_status = 3; - else + // Add notification message to user + $userNotification = new Notification; + $userNotification->detail = "Your bankslip for booking " . $booking->id . " is approved."; + $userNotification->link = "/booking/" . $booking->id . "/transfer"; + $userNotification->user_id = $booking->user_id; + $userNotification->save(); + } + else{ $booking->admin_status = 5; + // Add notification message to user + $userNotification = new Notification; + $userNotification->detail = "Your bankslip for booking " . $booking->id . " is approved."; + $userNotification->link = "/booking/" . $booking->id . "/supplier"; + $userNotification->user_id = $booking->user_id; + $userNotification->save(); + } $booking->save(); + return response()->json(['message'=>'Success'],200); } @@ -747,6 +769,11 @@ class BookingController extends Controller $booking->admin_status = 5; // upload china bankslip if($booking->save()){ + $userNotification = new Notification; + $userNotification->detail = "Supplier booking report for booking " . $booking->id . " is completed."; + $userNotification->link = "/booking/" . $booking->id . "/transfer"; + $userNotification->user_id = $booking->user_id; + $userNotification->save(); return response()->json(['message'=>"Success"],200); } } @@ -755,16 +782,21 @@ class BookingController extends Controller $booking = Booking::where('user_id',Auth::user()->id)->where('id',$id)->first(); $purchase_order = $booking->purchaseOrder()->first(); - return($purchase_order); if(!$purchase_order){ return response()->json(["message"=> "Please upload your purchase order"],400); } - $booking->status = 6; // wait invoice $booking->admin_status = 6; // upload invoice $booking->save(); - return response()->json(['message'=>'Success'],200); + + $adminNotification = new Notification; + $adminNotification->detail = "Purchase Order for booking " . $booking->id . " is uploaded."; + $adminNotification->link = "/booking/" . $booking->id . "/upload-invoice"; + $adminNotification->user_id = User::withRole('admin')->first()->id; + $adminNotification->save(); + + return response()->json($purchase_order,200); } public function confirmInvoice(Request $request, $id) @@ -781,6 +813,11 @@ class BookingController extends Controller $booking->admin_status = 7; // completed if($booking->save()){ + $adminNotification = new Notification; + $adminNotification->detail = "Invoice for booking " . $booking->id . " is uploaded."; + $adminNotification->link = "/booking/" . $booking->id . "/complete"; + $adminNotification->user_id = $booking->user_id; + $adminNotification->save(); return response()->json(['message'=>"Success"],200); } } diff --git a/app/Http/Controllers/ChinaBankSlipController.php b/app/Http/Controllers/ChinaBankSlipController.php index eabfe4a5..58aad3a0 100644 --- a/app/Http/Controllers/ChinaBankSlipController.php +++ b/app/Http/Controllers/ChinaBankSlipController.php @@ -4,6 +4,8 @@ namespace App\Http\Controllers; use App\ChinaBankSlip; use App\Booking; +use App\User; +use App\Notification; use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage; use Validator; @@ -80,6 +82,13 @@ class ChinaBankSlipController extends Controller $booking->admin_status = 6; $booking->save(); + $userNotification = new Notification; + $userNotification->detail = "Your china bankslip for booking " . $booking->id . " is uploaded."; + $userNotification->link = "/booking/" . $booking->id . "/upload-po"; + $userNotification->user_id = $booking->user_id; + $userNotification->save(); + + return response()->json(["message"=> "Success"],200); } diff --git a/app/Http/Controllers/NotificationController.php b/app/Http/Controllers/NotificationController.php index 05b59a46..5769d917 100644 --- a/app/Http/Controllers/NotificationController.php +++ b/app/Http/Controllers/NotificationController.php @@ -11,7 +11,7 @@ class NotificationController extends Controller { public function index() { - return Notification::all(); + return Notification::all()->orderby('updated_at','desc'); } public function show(Notification $notification) @@ -43,11 +43,11 @@ class NotificationController extends Controller public function getUserMessage() { return response()->json([ - "message" =>Notification::Where("user_id",Auth::user()->id)->get(), + "message" =>Notification::Where("user_id",Auth::user()->id)->orderby('updated_at','desc')->get(), "unread_message" =>Notification::Where([ ["user_id",Auth::user()->id], ["is_read",0] - ])->get() + ])->orderby('updated_at','desc')->get() ],200); } diff --git a/resources/assets/js/components/Navbar.vue b/resources/assets/js/components/Navbar.vue index 464580d7..5bef4d5e 100644 --- a/resources/assets/js/components/Navbar.vue +++ b/resources/assets/js/components/Navbar.vue @@ -18,14 +18,19 @@