From ec6db693730239fe04097e76fdecc430bc7cb1ab Mon Sep 17 00:00:00 2001 From: Too Date: Tue, 26 Jun 2018 11:28:53 +0800 Subject: [PATCH 1/4] Add ETA for booking table --- app/Booking.php | 2 +- app/Http/Controllers/BookingController.php | 1 + ...018_06_26_031229_add_eta_booking_table.php | 32 +++++++++++++++++++ tests/Feature/BookingTest.php | 3 +- 4 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 database/migrations/2018_06_26_031229_add_eta_booking_table.php diff --git a/app/Booking.php b/app/Booking.php index cffe157c..59c2d830 100644 --- a/app/Booking.php +++ b/app/Booking.php @@ -24,7 +24,7 @@ class Booking extends Model "usd_book_bank_branch"); protected $fillable = ['term', 'rate_id', 'user_id', 'amount', 'account_name', 'account_num', 'bank_name', - 'bank_branch', 'company_name']; + 'bank_branch', 'company_name' , 'estimated_arrival_time']; public $timestamps = true; diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index 607d70b2..bc2ab042 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -238,6 +238,7 @@ class BookingController extends Controller $booking->rmb_book_amount = $request->input('amount'); $booking->status = 2; $booking->bia = $bia; + $booking->estimated_arrival_time = $request->input('estimated_arrival_time'); // $booking->user_id = $user->id; $booking->user()->associate($user); diff --git a/database/migrations/2018_06_26_031229_add_eta_booking_table.php b/database/migrations/2018_06_26_031229_add_eta_booking_table.php new file mode 100644 index 00000000..460f269d --- /dev/null +++ b/database/migrations/2018_06_26_031229_add_eta_booking_table.php @@ -0,0 +1,32 @@ +integer('estimated_arrival_time'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('bookings', function (Blueprint $table) { + // $table->dropColumn('estimated_arrival_time'); + }); + } +} diff --git a/tests/Feature/BookingTest.php b/tests/Feature/BookingTest.php index ee02d4f7..39aa871e 100644 --- a/tests/Feature/BookingTest.php +++ b/tests/Feature/BookingTest.php @@ -69,7 +69,8 @@ class BookingTest extends TestCase 'usd_book_swift_code' => '2131rew', 'usd_book_cnap' => '2131rew', 'usd_book_bank_branch' => '2131rew', - 'verification_status' => '1' + 'verification_status' => '1', + 'estimated_arrival_time' => '123' ]); if(14000 > $this->setting_credit->rmb_credit_limit){ From 0a6bd2c4050387ca6f3478913619d1818d6d3d1e Mon Sep 17 00:00:00 2001 From: Too Date: Tue, 26 Jun 2018 12:17:12 +0800 Subject: [PATCH 2/4] Add eta --- app/Http/Controllers/BookingController.php | 559 ++++++++++-------- app/UserBankSlip.php | 2 +- database/factories/UserBankSlipFactory.php | 1 + ...26_035802_add_eta_user_bank_slip_table.php | 34 ++ tests/Feature/BookingTest.php | 17 +- 5 files changed, 373 insertions(+), 240 deletions(-) create mode 100644 database/migrations/2018_06_26_035802_add_eta_user_bank_slip_table.php diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index 89c78366..6a8d6a47 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -10,6 +10,7 @@ use App\Rate; use App\UserBankSlip; use App\User; use App\Invoice; +use App\SettingCredit; use Auth; use Validator; use DateTime; @@ -18,16 +19,18 @@ 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) { // set timeout $date1 = new DateTime($booking->created_at); $date2 = new DateTime(); - $difference_in_seconds = ($date1->format('U') + 600) - ($date2->format('U')); + $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 @@ -59,18 +62,74 @@ 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(); + $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 ){ + $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')); @@ -80,17 +139,43 @@ 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) { $rates = Rate::orderby('updated_at','desc')->first(); $term = $request->input('term'); - $amount = $request->input("amount"); + $amount = $request->input("amount"); // in RMB + $creditLimit = SettingCredit::orderby('updated_at','desc')->first(); + if($amount > $creditLimit->rmb_credit_limit){ + return response()->json("Exceed credit limit, need approved from admin", 401); + } + $user = Auth::user(); $rate = 1; // default rate to 1 + switch ($term) { case "x1_cash": $rate = $rates->x1_cash; @@ -153,6 +238,7 @@ class BookingController extends Controller $booking->rmb_book_amount = $request->input('amount'); $booking->status = 2; $booking->bia = $bia; + $booking->estimated_arrival_time = $request->input('estimated_arrival_time'); // $booking->user_id = $user->id; $booking->user()->associate($user); @@ -197,107 +283,107 @@ class BookingController extends Controller $book_id->cnap = $request->input('cnap'); $book_id->save(); - return response()->json(['book_id'=>$book_id],200); - } + return response()->json(['book_id'=>$book_id],200); + } - public function uploadbankslip(Request $request, $id) - { - $booking = Booking::where('user_id',Auth::user()->id)->where('id',$id)->first(); - - /* Validation*/ - if (!$booking) - { - return response()->json(['message'=>'Access denied'], 200); - } + public function uploadbankslip(Request $request, $id) + { + $booking = Booking::where('user_id',Auth::user()->id)->where('id',$id)->first(); + + /* Validation*/ + if (!$booking) + { + return response()->json(['message'=>'Access denied'], 200); + } - $validator = Validator::make($request->all(), [ - 'file' => 'image|mimes:jpg,jpeg,bmp,png' - ]); + $validator = Validator::make($request->all(), [ + 'file' => 'image|mimes:jpg,jpeg,bmp,png' + ]); - if($validator->fails()) - { - return response()->json(['message'=>'Incorrect format'],200); - } + if($validator->fails()) + { + return response()->json(['message'=>'Incorrect format'],200); + } - if(!$bankslip_file = $request->file('file')) - { - return response()->json(['message' => 'No file detected'], 400); - } - /* End Validation */ - $filename = $bankslip_file->getClientOriginalName(); - $ext = $bankslip_file->getClientOriginalExtension(); - $input['file'] = $filename; + if(!$bankslip_file = $request->file('file')) + { + return response()->json(['message' => 'No file detected'], 400); + } + /* End Validation */ + $filename = $bankslip_file->getClientOriginalName(); + $ext = $bankslip_file->getClientOriginalExtension(); + $input['file'] = $filename; - $unique_name = 'bank_slip_' . md5($filename. time()); // probably not a good idea - $unique_image_path = $unique_name. '.' .$ext; - Storage::putFileAs( - 'user_bankslip', $bankslip_file, $unique_image_path - ); + $unique_name = 'bank_slip_' . md5($filename. time()); // probably not a good idea + $unique_image_path = $unique_name. '.' .$ext; + Storage::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->transfer_amount = $request->input('transfer_amount'); - $user_bankslip->save(); + $user_bankslip = new UserBankSlip; + $user_bankslip->booking_id = $booking->id; + $user_bankslip->bankslip_path = $unique_image_path; + $user_bankslip->transfer_amount = $request->input('transfer_amount'); + $user_bankslip->save(); - return response()->json(['message'=>"Success"],200); - } + return response()->json(['message'=>"Success"],200); + } - public function updateBankSlipAmount(Request $request, $id){ - $booking = Booking::where('user_id',Auth::user()->id)->where('id',$id)->first(); - $user_bankslip = $booking->userBankSlip()->first(); + public function updateBankSlipAmount(Request $request, $id){ + $booking = Booking::where('user_id',Auth::user()->id)->where('id',$id)->first(); + $user_bankslip = $booking->userBankSlip()->first(); - if(!$user_bankslip){ - return response()->json(["message"=> "not found"],400); - } - $user_bankslip->transfer_amount = $request->input('transfer_amount'); - $user_bankslip->save(); - return response()->json(["message"=> "Success"],200); - } + if(!$user_bankslip){ + return response()->json(["message"=> "not found"],400); + } + $user_bankslip->transfer_amount = $request->input('transfer_amount'); + $user_bankslip->save(); + return response()->json(["message"=> "Success"],200); + } - public function uploadPurchaseOrder(Request $request, $id) - { - $booking = Booking::where('user_id',Auth::user()->id)->where('id',$id)->first(); + public function uploadPurchaseOrder(Request $request, $id) + { + $booking = Booking::where('user_id',Auth::user()->id)->where('id',$id)->first(); - /* Validation */ - if (!$booking) - { - return response()->json(['message'=>'Access denied'], 200); - } + /* Validation */ + if (!$booking) + { + return response()->json(['message'=>'Access denied'], 200); + } - $validator = Validator::make($request->all(), [ - 'file' => 'image|mimes:jpg,jpeg,bmp,png' - ]); + $validator = Validator::make($request->all(), [ + 'file' => 'image|mimes:jpg,jpeg,bmp,png' + ]); - if($validator->fails()) - { - return response()->json(['message'=>'Incorrect format'],200); - } + if($validator->fails()) + { + return response()->json(['message'=>'Incorrect format'],200); + } - if(!$user_input_file = $request->file('file')) - { - return response()->json(['message' => 'No file detected'], 400); - } - /* End Validation */ + if(!$user_input_file = $request->file('file')) + { + return response()->json(['message' => 'No file detected'], 400); + } + /* End Validation */ - $filename = $user_input_file->getClientOriginalName(); - $ext = $user_input_file->getClientOriginalExtension(); + $filename = $user_input_file->getClientOriginalName(); + $ext = $user_input_file->getClientOriginalExtension(); - $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 - ); + $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 + ); - $user_po = new PurchaseOrder; - $user_po->image_path = $unique_image_path; - $user_po->book_id = $booking->id; - $user_po->save(); + $user_po = new PurchaseOrder; + $user_po->image_path = $unique_image_path; + $user_po->book_id = $booking->id; + $user_po->save(); - return response()->json(['message'=>'Success'],200); + return response()->json(['message'=>'Success'],200); } public function confirmPurchaseOrder($id){ @@ -307,179 +393,180 @@ class BookingController extends Controller return response()->json(['message'=>'Success'],200); } - public function delete(Booking $book_id) - { - $booking = Booking::where('user_id', Auth::user())->where('id', $book_id)->firstOrFail(); - $booking->delete($book_id); - return response()->json($book_id, 204); - } + public function delete(Booking $book_id) + { + $booking = Booking::where('user_id', Auth::user())->where('id', $book_id)->firstOrFail(); + $booking->delete($book_id); + return response()->json($book_id, 204); + } - public function cancel(Request $request, $book_id) - { - if (!$booking = Booking::where('user_id',Auth::user()->id)->where('id',$book_id)->first()) - { - return response()->json(['message'=>'Access denied'], 200); - } + public function cancel(Request $request, $book_id) + { + if (!$booking = Booking::where('user_id',Auth::user()->id)->where('id',$book_id)->first()) + { + return response()->json(['message'=>'Access denied'], 200); + } - $booking->is_cancel = true; - $booking->save(); + $booking->is_cancel = true; + $booking->save(); - return response()->json(['message'=>'Success'],200); - } + return response()->json(['message'=>'Success'],200); + } - public function calculation(Request $request) - { - $amount = $request->input('amount'); - $term = $request->input('term'); - $china_beneficiary = $request->input('china_beneficiary'); - $rates = Rate::orderby('updated_at','desc')->first(); + public function calculation(Request $request) + { + $amount = $request->input('amount'); + $term = $request->input('term'); + $china_beneficiary = $request->input('china_beneficiary'); + $rates = Rate::orderby('updated_at','desc')->first(); - // TODO : get marking - $marking = "123X"; + // TODO : get marking + $marking = "123X"; - switch ($term) { - case "x1_cash": - $rate = $rates->x1_cash; - $payment_method = "cash"; - break; - case "x1_cheque": - $rate = $rates->x1_cheque; - $payment_method = "Cheque"; - break; - case "x1_ba": - $rate = $rates->x1_ba; - $payment_method = "BA"; - break; - case "x2_cash": - $rate = $rates->x2_cash; - $payment_method = "Cash"; - break; - case "x2_cheque": - $rate = $rates->x2_cheque; - $payment_method = "Cheque"; - break; - case "x2_ba": - $rate = $rates->x2_ba; - $payment_method = "BA"; - break; - default: - return response()->json([ - 'success' => false, - 'message' => 'Invalid input', - ], 422); - break; - } + switch ($term) { + case "x1_cash": + $rate = $rates->x1_cash; + $payment_method = "cash"; + break; + case "x1_cheque": + $rate = $rates->x1_cheque; + $payment_method = "Cheque"; + break; + case "x1_ba": + $rate = $rates->x1_ba; + $payment_method = "BA"; + break; + case "x2_cash": + $rate = $rates->x2_cash; + $payment_method = "Cash"; + break; + case "x2_cheque": + $rate = $rates->x2_cheque; + $payment_method = "Cheque"; + break; + case "x2_ba": + $rate = $rates->x2_ba; + $payment_method = "BA"; + break; + default: + return response()->json([ + 'success' => false, + 'message' => 'Invalid input', + ], 422); + break; + } - if ($amount >= 10000 && ($term == 'x2_cash' || $term = 'x2_cheque' || $term = 'x2_ba')) { - $svcharge = 0; - } else { - $svcharge = 20.00; - } + if ($amount >= 10000 && ($term == 'x2_cash' || $term = 'x2_cheque' || $term = 'x2_ba')) { + $svcharge = 0; + } else { + $svcharge = 20.00; + } - $bankin_amount = round(($amount + $svcharge) / $rate + (0 * ($amount + $svcharge)), 2); + $bankin_amount = round(($amount + $svcharge) / $rate + (0 * ($amount + $svcharge)), 2); - return response()->json([ - 'date' => date('Y-m-d'), - 'marking' => $marking, - 'amount' => $amount, - 'payment_method' => $payment_method, - 'service_charge' => $svcharge, - 'rate' => $rate, - 'bankin_amount' => $bankin_amount, - 'china_beneficary' => $china_beneficiary - ], 200); - } + return response()->json([ + 'date' => date('Y-m-d'), + 'marking' => $marking, + 'amount' => $amount, + 'payment_method' => $payment_method, + 'service_charge' => $svcharge, + 'rate' => $rate, + 'bankin_amount' => $bankin_amount, + 'china_beneficary' => $china_beneficiary + ], 200); + } - public function approveBankSlip(Request $request, $book_id) - { - if (!$booking = Booking::where('user_id',Auth::user()->id)->where('id',$book_id)->first()) - { - return response()->json(['message'=>'Access denied'], 200); - } + public function approveBankSlip(Request $request, $book_id) + { + if (!$booking = Booking::where('user_id',Auth::user()->id)->where('id',$book_id)->first()) + { + return response()->json(['message'=>'Access denied'], 200); + } - if(!$userBankSlip = UserBankSlip::where('book_id',$booking->id)->first()) - { - return response()->json(['message'=>'Access denied'], 200); - } + if(!$userBankSlip = UserBankSlip::where('booking_id',$booking->id)->first()) + { + return response()->json(['message'=>'Access denied'], 200); + } - // Rejected bankslip cannot be approve again - if($userBankSlip->is_reject == 1) - { - return response()->json(['message'=>'Bankslip already rejected'],200); - } + // Rejected bankslip cannot be approve again + if($userBankSlip->is_reject == 1) + { + return response()->json(['message'=>'Bankslip already rejected'],200); + } - $userBankSlip->is_approve = 1; - $userBankSlip->save(); - return response()->json(['message'=>'Success'],200); - } + $userBankSlip->is_approve = 1; + $userBankSlip->estimated_arrival_time = $request->input('estimated_arrival_time'); + $userBankSlip->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()) - { - return response()->json(['message'=>'Access denied'], 200); - } + public function rejectBankSlip(Request $request, $book_id) + { + if (!$booking = Booking::where('user_id',Auth::user()->id)->where('id',$book_id)->first()) + { + return response()->json(['message'=>'Access denied'], 200); + } - if(!$userBankSlip = UserBankSlip::where('book_id',$booking->id)->first()) - { - return response()->json(['message'=>'Access denied'], 200); - } + if(!$userBankSlip = UserBankSlip::where('booking_id',$booking->id)->first()) + { + return response()->json(['message'=>'Access denied'], 200); + } - // approved bankslip cannot be reject again - if($userBankSlip->is_approve == 1) - { - return response()->json(['message'=>'Bankslip already approved'],200); - } + // approved bankslip cannot be reject again + if($userBankSlip->is_approve == 1) + { + return response()->json(['message'=>'Bankslip already approved'],200); + } - $userBankSlip->is_reject = 1; - $userBankSlip->reject_reason = $request->reject_reason; - $userBankSlip->save(); + $userBankSlip->is_reject = 1; + $userBankSlip->reject_reason = $request->reject_reason; + $userBankSlip->save(); - return response()->json(['message'=>'Success'],200); - } + return response()->json(['message'=>'Success'],200); + } - public function uploadInvoice(Request $request, $id) - { - $booking = Booking::where('user_id',Auth::user()->id)->where('id',$id)->first(); + public function uploadInvoice(Request $request, $id) + { + $booking = Booking::where('user_id',Auth::user()->id)->where('id',$id)->first(); - /* Validation */ - if (!$booking) - { - return response()->json(['message'=>'Access denied'], 200); - } + /* Validation */ + if (!$booking) + { + return response()->json(['message'=>'Access denied'], 200); + } - $validator = Validator::make($request->all(), [ - 'invoice_path' => 'mimes:jpg,jpeg,bmp,png,pdf,doc,docx' - ]); + $validator = Validator::make($request->all(), [ + 'invoice_path' => 'mimes:jpg,jpeg,bmp,png,pdf,doc,docx' + ]); - if($validator->fails()) - { - return response()->json(['message'=>'Incorrect format'],200); - } + if($validator->fails()) + { + return response()->json(['message'=>'Incorrect format'],200); + } - if(!$input_file = $request->file('invoice_path')) - { - return response()->json(['message'=>'No file detected'], 400); - } - /* End Validation */ + if(!$input_file = $request->file('invoice_path')) + { + return response()->json(['message'=>'No file detected'], 400); + } + /* End Validation */ - $filename = $input_file->getClientOriginalName(); - $ext = $input_file->getClientOriginalExtension(); + $filename = $input_file->getClientOriginalName(); + $ext = $input_file->getClientOriginalExtension(); - $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 - ); - - $invoice = new Invoice; - $invoice->invoice_path = $unique_file_url; - $invoice->amount = $request->input('amount'); - $invoice->booking_id = $booking->id; - $invoice->save(); + $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 + ); + + $invoice = new Invoice; + $invoice->invoice_path = $unique_file_url; + $invoice->amount = $request->input('amount'); + $invoice->booking_id = $booking->id; + $invoice->save(); - return response()->json(['message'=>"Success"],200); - } + return response()->json(['message'=>"Success"],200); + } } diff --git a/app/UserBankSlip.php b/app/UserBankSlip.php index 3e3e6678..eb6ddc0e 100644 --- a/app/UserBankSlip.php +++ b/app/UserBankSlip.php @@ -6,7 +6,7 @@ use Illuminate\Database\Eloquent\Model; class UserBankSlip extends Model { - protected $fillable = ['bank_slip_type','bankslip_url','transfer_amount','booking_id','cust_marking']; + protected $fillable = ['bank_slip_type','bankslip_url','transfer_amount','booking_id','cust_marking','estimated_arrival_time']; public function booking() { diff --git a/database/factories/UserBankSlipFactory.php b/database/factories/UserBankSlipFactory.php index 9ac7db69..e5406866 100644 --- a/database/factories/UserBankSlipFactory.php +++ b/database/factories/UserBankSlipFactory.php @@ -11,5 +11,6 @@ $factory->define(App\UserBankSlip::class, function (Faker $faker) { 'transfer_amount' => $faker->randomDigit, 'cust_marking' => str_random(10), 'booking_id' => $faker->randomElement($book_id), + 'estimated_arrival_time' => $faker->randomDigit ]; }); diff --git a/database/migrations/2018_06_26_035802_add_eta_user_bank_slip_table.php b/database/migrations/2018_06_26_035802_add_eta_user_bank_slip_table.php new file mode 100644 index 00000000..052e1c2b --- /dev/null +++ b/database/migrations/2018_06_26_035802_add_eta_user_bank_slip_table.php @@ -0,0 +1,34 @@ +integer('estimated_arrival_time'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + if (Schema::hasColumn('user_bank_slips', 'estimated_arrival_time')) { + Schema::table('user_bank_slips', function (Blueprint $table) { + // $table->dropColumn('estimated_arrival_time'); + }); + } + } +} diff --git a/tests/Feature/BookingTest.php b/tests/Feature/BookingTest.php index cf137702..c44ed4b5 100644 --- a/tests/Feature/BookingTest.php +++ b/tests/Feature/BookingTest.php @@ -16,12 +16,14 @@ use App\User; use App\Booking; use App\UserBankSlip; use App\Role; +use App\SettingCredit; class BookingTest extends TestCase { protected $user; protected $booking; protected $userBankSlip; + protected $setting_credit; public function setUp() { @@ -29,6 +31,7 @@ class BookingTest extends TestCase Artisan::call('db:seed'); $this->user = factory(User::class)->create(); + $this->setting_credit = factory(SettingCredit::class)->create(); $this->booking = factory(Booking::class)->create([ 'user_id' => $this->user->id ]); @@ -67,8 +70,14 @@ class BookingTest extends TestCase 'usd_book_cnap' => '2131rew', 'usd_book_bank_branch' => '2131rew', 'verification_status' => '1' - ]) - ->assertStatus(201); + ]); + + if(14000 > $this->setting_credit->rmb_credit_limit){ + $response->assertStatus(401); + } + else{ + $response->assertStatus(201); + } } public function testuploadbankslip() @@ -123,7 +132,9 @@ class BookingTest extends TestCase public function testApproveBankSlip() { $this->actingAs($this->user) - ->json('POST','/api/booking/' . $this->booking->id . '/approve-bank-slip', []) + ->json('POST','/api/booking/' . $this->booking->id . '/approve-bank-slip', [ + 'estimated_arrival_time' => '6000' + ]) ->assertSuccessful(); } From a498d370cfd2c357730d2e3bae1d3e2e99a8c763 Mon Sep 17 00:00:00 2001 From: Too Date: Tue, 26 Jun 2018 12:21:53 +0800 Subject: [PATCH 3/4] remove eta from booking --- app/Booking.php | 2 +- ...018_06_26_031229_add_eta_booking_table.php | 32 ------------------- tests/Feature/BookingTest.php | 3 +- 3 files changed, 2 insertions(+), 35 deletions(-) delete mode 100644 database/migrations/2018_06_26_031229_add_eta_booking_table.php diff --git a/app/Booking.php b/app/Booking.php index 59c2d830..cffe157c 100644 --- a/app/Booking.php +++ b/app/Booking.php @@ -24,7 +24,7 @@ class Booking extends Model "usd_book_bank_branch"); protected $fillable = ['term', 'rate_id', 'user_id', 'amount', 'account_name', 'account_num', 'bank_name', - 'bank_branch', 'company_name' , 'estimated_arrival_time']; + 'bank_branch', 'company_name']; public $timestamps = true; diff --git a/database/migrations/2018_06_26_031229_add_eta_booking_table.php b/database/migrations/2018_06_26_031229_add_eta_booking_table.php deleted file mode 100644 index 460f269d..00000000 --- a/database/migrations/2018_06_26_031229_add_eta_booking_table.php +++ /dev/null @@ -1,32 +0,0 @@ -integer('estimated_arrival_time'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('bookings', function (Blueprint $table) { - // $table->dropColumn('estimated_arrival_time'); - }); - } -} diff --git a/tests/Feature/BookingTest.php b/tests/Feature/BookingTest.php index 9d278b54..c44ed4b5 100644 --- a/tests/Feature/BookingTest.php +++ b/tests/Feature/BookingTest.php @@ -69,8 +69,7 @@ class BookingTest extends TestCase 'usd_book_swift_code' => '2131rew', 'usd_book_cnap' => '2131rew', 'usd_book_bank_branch' => '2131rew', - 'verification_status' => '1', - 'estimated_arrival_time' => '123' + 'verification_status' => '1' ]); if(14000 > $this->setting_credit->rmb_credit_limit){ From dec9ba940524cf2ecc38ddd84ab383d281466dee Mon Sep 17 00:00:00 2001 From: Too Date: Tue, 26 Jun 2018 12:28:17 +0800 Subject: [PATCH 4/4] fix typo add_eta_ser_bank_slip_table. remove eta from bookingcontroller --- app/Http/Controllers/BookingController.php | 1 - .../2018_06_26_035802_add_eta_user_bank_slip_table.php | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index 6a8d6a47..5f6ae880 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -238,7 +238,6 @@ class BookingController extends Controller $booking->rmb_book_amount = $request->input('amount'); $booking->status = 2; $booking->bia = $bia; - $booking->estimated_arrival_time = $request->input('estimated_arrival_time'); // $booking->user_id = $user->id; $booking->user()->associate($user); diff --git a/database/migrations/2018_06_26_035802_add_eta_user_bank_slip_table.php b/database/migrations/2018_06_26_035802_add_eta_user_bank_slip_table.php index 052e1c2b..acd53a08 100644 --- a/database/migrations/2018_06_26_035802_add_eta_user_bank_slip_table.php +++ b/database/migrations/2018_06_26_035802_add_eta_user_bank_slip_table.php @@ -13,7 +13,7 @@ class AddEtaUserBankSlipTable extends Migration */ public function up() { - Schema::create('user_bank_slips', function (Blueprint $table) { + Schema::table('user_bank_slips', function (Blueprint $table) { $table->integer('estimated_arrival_time'); }); }