Merge branch 'master' of gitlab.com:CIEFWorldwideSdnBhd/exchange into nazri/userbankslip

# Conflicts:
#	app/Http/Controllers/BookingController.php
This commit is contained in:
Jack Goh
2018-06-27 09:56:35 +08:00
11 changed files with 588 additions and 87 deletions
+76 -22
View File
@@ -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);
}
@@ -284,7 +289,7 @@ class BookingController extends Controller
return response()->json(['book_id'=>$book_id],200);
}
//upload
public function uploadbankslip(Request $request, $id)
{
$booking = Booking::where('user_id',Auth::user()->id)->where('id',$id)->first();
@@ -304,7 +309,16 @@ class BookingController extends Controller
return response()->json(['message'=>'Incorrect format'],200);
}
if($file = $request->file('file'))
$validator = Validator::make($request->all(), [
'file' => 'max:3072'
]);
if($validator->fails())
{
return response()->json(['message'=>'Image too large, upload files up to 3 MB'], 400);
}
if(!$bankslip_file = $request->file('file'))
{
$bankslip_file = $request->file('file');
$filename = $bankslip_file->getClientOriginalName();
@@ -327,14 +341,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();
@@ -348,7 +363,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);
@@ -373,6 +394,15 @@ class BookingController extends Controller
return response()->json(['message'=>'Incorrect format'],200);
}
$validator = Validator::make($request->all(), [
'file' => 'max:3072'
]);
if($validator->fails())
{
return response()->json(['message'=>'Image too large, upload files up to 3 MB'], 400);
}
if(!$user_input_file = $request->file('file'))
{
return response()->json(['message' => 'No file detected'], 400);
@@ -385,12 +415,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();
@@ -489,14 +519,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
@@ -508,12 +540,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);
}
@@ -533,9 +572,15 @@ 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
public function uploadInvoice(Request $request, $id)
{
$booking = Booking::where('user_id',Auth::user()->id)->where('id',$id)->first();
@@ -555,6 +600,15 @@ class BookingController extends Controller
return response()->json(['message'=>'Incorrect format'],200);
}
$validator = Validator::make($request->all(), [
'invoice_path' => 'max:3072'
]);
if($validator->fails())
{
return response()->json(['message'=>'Image too large, upload files up to 3 MB'], 400);
}
if(!$input_file = $request->file('invoice_path'))
{
return response()->json(['message'=>'No file detected'], 400);
@@ -567,12 +621,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();