diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index 523caa74..8ee3826b 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -30,8 +30,9 @@ class BookingController extends Controller // 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; + $time_in_seconds = SettingCredit::orderby('updated_at','desc')->first()->time_limit; + $difference_in_seconds = ($date1->format('U') + $time_in_seconds) - ($date2->format('U')); + $booking->timeout = $difference_in_seconds; // TODO : you can make it better if($difference_in_seconds < 0 ){ @@ -95,7 +96,7 @@ class BookingController extends Controller // TODO : transfer_amount change name to bia $booking->transfer_amount = $booking->bia; - $booking->track_status = "(". $booking->admin_status ."/8)"; + $booking->track_status = "(". $booking->admin_status ."/7)"; switch ($booking->admin_status) { case 1: $status_desc = "Waiting customer upload bank slip"; @@ -126,52 +127,96 @@ class BookingController extends Controller } $booking->status_desc = $status_desc; } - return $bookings; - } public function show($id) { $booking = Booking::where('user_id',Auth::user()->id)->where('id', $id)->first(); - // just added to try + $user_bankslip = $booking->userBankSlip()->first(); - - if ($user_bankslip){ - $booking->user_bankslip_path = Storage::url($user_bankslip->bankslip_path); - } + $china_bankslip = $booking->chinaBankSlip()->first(); + $po = $booking->purchaseOrder()->first(); + $invoice = $booking->invoice()->first(); 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; + $date1 = new DateTime($booking->created_at); + + if ($user_bankslip){ + $booking->user_bankslip_path = Storage::url($user_bankslip->bankslip_path); + $booking->reject_reason = $user_bankslip->reject_reason; + $date1 = new DateTime($user_bankslip->updated_at); + } - if (!$booking){ - return response()->json(['success'=>false, 'message'=>'not found'], 404); - } - return $booking; + if($china_bankslip){ + $booking->china_bankslip_path = Storage::url($china_bankslip->china_bank_slip_path); + } + + if($po){ + $booking->user_po_path = Storage::url($po->image_path); + } + + if($invoice){ + $booking->invoice_path = Storage::url($invoice->invoice_path); + } + + // set timeout + $date1 = new DateTime($booking->created_at); + $date2 = new DateTime(); + $time_in_seconds = SettingCredit::orderby('updated_at','desc')->first()->time_limit; + $difference_in_seconds = ($date1->format('U') + $time_in_seconds) - ($date2->format('U')); + $booking->timeout = $difference_in_seconds; + + if (!$booking){ + return response()->json(['success'=>false, 'message'=>'not found'], 404); + } + + return $booking; } } public function adminShow($id) { - $booking = Booking::where('id', $id)->first(); - $user_bankslip_path = $booking->userBankSlip()->first()->bankslip_path; - $booking->user_bankslip_path = Storage::url($user_bankslip_path); + $booking = Booking::where('id', $id)->firstOrFail(); + + + $user_bankslip = $booking->userBankSlip()->first(); + $china_bankslip = $booking->chinaBankSlip()->first(); + $po = $booking->purchaseOrder()->first(); + $invoice = $booking->invoice()->first(); 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 ($user_bankslip){ + $booking->user_bankslip_path = Storage::url($user_bankslip->bankslip_path); + $booking->reject_reason = $user_bankslip->reject_reason; + $date1 = new DateTime($user_bankslip->updated_at); + } - if (!$booking){ - return response()->json(['success'=>false, 'message'=>'not found'], 404); - } - return $booking; + if($china_bankslip){ + $booking->china_bankslip_path = Storage::url($china_bankslip->china_bank_slip_path); + } + + if($po){ + $booking->user_po_path = Storage::url($po->image_path); + } + + if($invoice){ + $booking->invoice_path = Storage::url($invoice->invoice_path); + } + + // set timeout + $date1 = new DateTime($booking->created_at); + $date2 = new DateTime(); + $time_in_seconds = SettingCredit::orderby('updated_at','desc')->first()->time_limit; + $difference_in_seconds = ($date1->format('U') + $time_in_seconds) - ($date2->format('U')); + $booking->timeout = $difference_in_seconds; + + if (!$booking){ + return response()->json(['success'=>false, 'message'=>'not found'], 404); + } + return $booking; } } @@ -331,6 +376,7 @@ class BookingController extends Controller return response()->json(['message'=>'Image too large, upload files up to 3 MB'], 400); } + if($bankslip_file = $request->file('file')) { /* End Validation */ @@ -345,7 +391,12 @@ class BookingController extends Controller 'user_bankslip', $bankslip_file, $unique_image_path ); - $user_bankslip = new UserBankSlip; + $user_bankslip = $booking->userBankSlip()->first(); + + // 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'); @@ -443,7 +494,7 @@ class BookingController extends Controller return response()->json(['user_po_path'=> $user_po->image_path ],200); } - return response()->json(['message'=> 'waiting customer to upload their po'],400); + return response()->json(['message'=> 'waiting customer to upload their po'], 200); } public function delete(Booking $book_id) @@ -544,12 +595,13 @@ class BookingController extends Controller } // Rejected bankslip cannot be approve again - if($userBankSlip->is_reject == 1) - { - return response()->json(['message'=>'Bankslip already rejected'],200); - } + // if($userBankSlip->is_reject == 1) + // { + // return response()->json(['message'=>'Bankslip already rejected'],200); + // } $userBankSlip->is_approve = 1; + $userBankSlip->is_reject = 0; $userBankSlip->estimated_arrival_time = $request->input('estimated_arrival_time'); $userBankSlip->save(); @@ -581,13 +633,12 @@ class BookingController extends Controller } $userBankSlip->is_reject = 1; - $userBankSlip->reject_reason = $request->reject_reason; + $userBankSlip->reject_reason = $request->input('reject_reason'); $userBankSlip->save(); - // TODO : reject user bankinslip // update booking status - $booking->status = 0; - $booking->admin_status = 0; + $booking->status = 2; // upload user bankslip + $booking->admin_status = 1; // user booking $booking->save(); return response()->json(['message'=>'Success'],200); @@ -666,7 +717,8 @@ class BookingController extends Controller return response()->json(["message"=> "Please upload your purchase order"],400); } - $booking->status = 6; + $booking->status = 6; // wait invoice + $booking->admin_status = 6; // upload invoice $booking->save(); return response()->json(['message'=>'Success'],200); } diff --git a/app/Http/Controllers/BookingSupplierController.php b/app/Http/Controllers/BookingSupplierController.php index f1390fe8..4201a2da 100644 --- a/app/Http/Controllers/BookingSupplierController.php +++ b/app/Http/Controllers/BookingSupplierController.php @@ -48,11 +48,6 @@ class BookingSupplierController extends Controller $booking_id = $request->input("booking_id"); $rate = $request->input('rate'); $rebate = $request->input('rebate'); - - if ($supplierbooking = SupplierBooking::where('book_id', $booking_id)->first()){ - return response()->json(['success'=>false, 'message'=>'Bad request, please contact support'], 400); - } - // Calculation $amountInRMB = $transfer_amount * $rate; @@ -66,7 +61,14 @@ class BookingSupplierController extends Controller $supplier = SettingSupplier::find($supplier_id); $booking = Booking::find($booking_id); - $bookingsupplier = new SupplierBooking(); + // update existing booking supplier if exist + $bookingsupplier = SupplierBooking::where('book_id', $booking_id)->first(); + + if (!$bookingsupplier){ + $bookingsupplier = new SupplierBooking(); + + } + $bookingsupplier->supplier_id = $supplier->id; $bookingsupplier->payment_method = $request->input('payment_method'); $bookingsupplier->transfer_amount = $transfer_amount; @@ -90,7 +92,7 @@ class BookingSupplierController extends Controller public function update(Request $request, $id) { - $bookingsupplier = BSupplierBooking::find($id); + $bookingsupplier = SupplierBooking::find($id); $bookingsupplier->payment_method = $request->input('payment_method'); $bookingsupplier->transfer_amount = $request->input('transfer_amount'); $bookingsupplier->rate = $request->input('rate'); diff --git a/database/seeds/BookTableSeeder.php b/database/seeds/BookTableSeeder.php index 1f01c281..b312ebf4 100644 --- a/database/seeds/BookTableSeeder.php +++ b/database/seeds/BookTableSeeder.php @@ -27,10 +27,15 @@ class BookTableSeeder extends Seeder 'bank_address' => 'cyber', 'swift_code' => 'qwe123', 'cnap' => '123asd', - 'term' => 'x1', - 'amount' => 1.2, + 'term' => 'x1_cash', + 'amount' => 200, + 'rmb_book_amount' => 200, + 'bia' => 189, + 'rate' => 1.2, 'rate_id' => $rate->id, 'user_id' => $user->id, + 'status' => 2, + 'admin_status' => 1, '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/database/seeds/SettingCreditSeeder.php b/database/seeds/SettingCreditSeeder.php index 0087203e..a79c1e2d 100644 --- a/database/seeds/SettingCreditSeeder.php +++ b/database/seeds/SettingCreditSeeder.php @@ -15,7 +15,7 @@ class SettingCreditSeeder extends Seeder DB::table('setting_credits')->insert([ 'rmb_credit_limit' => '4000', 'usd_credit_limit' => '5000', - 'time_limit' => '600' + 'time_limit' => '6000' ]); } } diff --git a/resources/assets/js/components/AdminProgressTrack.vue b/resources/assets/js/components/AdminProgressTrack.vue index 3cff63df..bf3330c6 100644 --- a/resources/assets/js/components/AdminProgressTrack.vue +++ b/resources/assets/js/components/AdminProgressTrack.vue @@ -6,8 +6,7 @@ - - + diff --git a/resources/assets/js/pages/admin/booking/completed.vue b/resources/assets/js/pages/admin/booking/completed.vue index 50684534..e850c9e0 100644 --- a/resources/assets/js/pages/admin/booking/completed.vue +++ b/resources/assets/js/pages/admin/booking/completed.vue @@ -5,9 +5,11 @@

Order Completed


+ Go Back
+
- +
@@ -18,29 +20,14 @@ - - + + - - -
- Invoice - -
- - - - - - - -
-
@@ -49,24 +36,37 @@
- - + +
+ + +
+ Invoice + +
+ + + + + +
+

+ -
Order Details
- + +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
Order Number :
+
+
{{ booking_details.id }}
+
+
Date :
+
+
{{ booking_details.created_at }}
+
+
Customer Marking :
+
+
CIEF/150ECE
+
+
+
+
+
+
Term :
+
+
{{ booking_details.term }}
+
+
+
+
+
+ + +
+ + + + + +
+
+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
CNY/RMB :
+
+
CNY {{ booking_details.amount }}
+
+
+ Service Charge :
+
+
CNY {{ booking_details.service_charge }}
+
+
/ RATE :
+
+
{{ booking_details.rate }}
+
+
+
+
MYR {{ booking_details.bia }}
+
+
+
+
MYR {{ booking_details.bia }}
+
+
+
+
+
+ + +
+ + + + + +
+
+
+

@@ -87,12 +257,12 @@
- Order Bankin Slip + Payment Bankin Slip
- +
@@ -100,13 +270,14 @@