diff --git a/Dockerfile b/Dockerfile index 5eb8b990..9efcd1c2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,5 +9,5 @@ RUN composer install COPY wait.sh /usr/local/bin/wait.sh RUN chmod +x /usr/local/bin/wait.sh -CMD /usr/local/bin/wait.sh && composer dumpautoload && php artisan migrate && php artisan db:seed && php artisan serve --host=0.0.0.0 --port=8000 +CMD /usr/local/bin/wait.sh && composer dumpautoload && php artisan storage:link && php artisan migrate && php artisan db:seed && php artisan serve --host=0.0.0.0 --port=8000 EXPOSE 8000 diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index e1095315..c1fe08f6 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -29,8 +29,7 @@ class BookingController extends Controller // 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')); + $difference_in_seconds = ($date1->format('U') + 600) - ($date2->format('U')); $booking->timeout = $difference_in_seconds; // TODO : you can make it better @@ -146,7 +145,8 @@ class BookingController extends Controller public function adminShow($id) { $booking = Booking::where('id', $id)->first(); - return $booking->userBankSlip()->get(); + $user_bankslip_path = $booking->userBankSlip()->first()->bankslip_path; + $booking->user_bankslip_path = Storage::url($user_bankslip_path); if($booking){ $date1 = new DateTime($booking->created_at); @@ -167,7 +167,12 @@ class BookingController extends Controller $rates = Rate::orderby('updated_at','desc')->first(); $term = $request->input('term'); $amount = $request->input("amount"); // in RMB - $creditLimit = SettingCredit::orderby('updated_at','desc')->first(); + $creditLimit = SettingCredit::orderby('updated_at','desc')->first(); + + if (!$creditLimit){ + return response()->json("Credit limit not set, please contact admin", 405); + } + if($amount > $creditLimit->rmb_credit_limit){ return response()->json("Exceed credit limit, need approved from admin", 401); } @@ -323,14 +328,15 @@ class BookingController extends Controller $input['file'] = $filename; $unique_name = 'bank_slip_' . md5($filename. time()); // probably not a good idea - $unique_image_path = $unique_name. '.' .$ext; - Storage::putFileAs( + $unique_image_path = $unique_name. '.' .$ext; + + $upload_path = Storage::disk('public')->putFileAs( 'user_bankslip', $bankslip_file, $unique_image_path - ); + ); $user_bankslip = new UserBankSlip; $user_bankslip->booking_id = $booking->id; - $user_bankslip->bankslip_path = $unique_image_path; + $user_bankslip->bankslip_path = $upload_path; $user_bankslip->transfer_amount = $request->input('transfer_amount'); $user_bankslip->save(); @@ -344,7 +350,13 @@ class BookingController extends Controller if(!$user_bankslip){ return response()->json(["message"=> "not found"],400); - } + } + + // update booking status + $booking->status = 3; + $booking->admin_status = 2; + $booking->save(); + $user_bankslip->transfer_amount = $request->input('transfer_amount'); $user_bankslip->save(); return response()->json(["message"=> "Success"],200); @@ -390,12 +402,12 @@ class BookingController extends Controller $input['file'] = $filename; $unique_name = 'purchase_order_' . md5($filename. time()); $unique_image_path = $unique_name. '.' .$ext; - Storage::putFileAs( - 'purchase_order',/*folder name*/ $user_input_file, $unique_image_path + $upload_path = Storage::disk('public')->putFileAs( + 'purchase_order',/*folder name*/ $user_input_file, $unique_image_path, 'public' ); $user_po = new PurchaseOrder; - $user_po->image_path = $unique_image_path; + $user_po->image_path = $upload_path; $user_po->book_id = $booking->id; $user_po->save(); @@ -494,14 +506,16 @@ class BookingController extends Controller public function approveBankSlip(Request $request, $book_id) { - if (!$booking = Booking::where('user_id',Auth::user()->id)->where('id',$book_id)->first()) + $booking = Booking::where('id',$book_id)->first(); + + if (!$booking) { - return response()->json(['message'=>'Access denied'], 200); + return response()->json(['message'=>'Booking not found'], 400); } if(!$userBankSlip = UserBankSlip::where('booking_id',$booking->id)->first()) { - return response()->json(['message'=>'Access denied'], 200); + return response()->json(['message'=>'User bankslip not found'], 400); } // Rejected bankslip cannot be approve again @@ -513,12 +527,19 @@ class BookingController extends Controller $userBankSlip->is_approve = 1; $userBankSlip->estimated_arrival_time = $request->input('estimated_arrival_time'); $userBankSlip->save(); + + // update booking status + $booking->status = 4; + $booking->admin_status = 3; + $booking->save(); + return response()->json(['message'=>'Success'],200); } public function rejectBankSlip(Request $request, $book_id) { - if (!$booking = Booking::where('user_id',Auth::user()->id)->where('id',$book_id)->first()) + $booking = Booking::where('id',$book_id)->first(); + if (!$booking) { return response()->json(['message'=>'Access denied'], 200); } @@ -538,6 +559,12 @@ class BookingController extends Controller $userBankSlip->reject_reason = $request->reject_reason; $userBankSlip->save(); + // TODO : reject user bankinslip + // update booking status + $booking->status = 0; + $booking->admin_status = 0; + $booking->save(); + return response()->json(['message'=>'Success'],200); } //upload @@ -581,12 +608,12 @@ class BookingController extends Controller $input['invoice_path'] = $filename; $unique_name = 'invoice' . md5($filename. time()); $unique_file_url = $unique_name. '.' .$ext; - Storage::putFileAs( - 'invoice',/*folder name*/ $input_file, $unique_file_url + $upload_path = Storage::disk('public')->putFileAs( + 'invoice',/*folder name*/ $input_file, $unique_file_url, 'public' ); $invoice = new Invoice; - $invoice->invoice_path = $unique_file_url; + $invoice->invoice_path = $upload_path; $invoice->amount = $request->input('amount'); $invoice->booking_id = $booking->id; $invoice->save(); diff --git a/app/Http/Controllers/SettingSupplierController.php b/app/Http/Controllers/SettingSupplierController.php index 96f0a861..6b1f8f12 100644 --- a/app/Http/Controllers/SettingSupplierController.php +++ b/app/Http/Controllers/SettingSupplierController.php @@ -9,7 +9,13 @@ class SettingSupplierController extends Controller { public function index() { - return SettingSupplier::all(); + $suppliers = SettingSupplier::all(); + + foreach ($suppliers as $supplier) { + $supplier->value = $supplier->company_name; + $supplier->label = $supplier->company_name; + } + return $suppliers; } public function show(SettingSupplier $supplier) diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php index d40a4e4b..0834c81d 100644 --- a/database/seeds/DatabaseSeeder.php +++ b/database/seeds/DatabaseSeeder.php @@ -17,6 +17,6 @@ class DatabaseSeeder extends Seeder $this->call(UserRoleSeeder::class); $this->call(RateTableSeeder::class); $this->call(BookTableSeeder::class); - $this->call(SettingCreditSeeder::class); + $this->call(CreditTableSeeder::class); } } diff --git a/resources/assets/js/pages/admin/booking/supplierBooking.vue b/resources/assets/js/pages/admin/booking/supplierBooking.vue index 37196cb3..095440a9 100644 --- a/resources/assets/js/pages/admin/booking/supplierBooking.vue +++ b/resources/assets/js/pages/admin/booking/supplierBooking.vue @@ -1,13 +1,13 @@