From a5633b77548f1229a7c816dbcbb504463aa9adb0 Mon Sep 17 00:00:00 2001 From: Nazri Hamzah Date: Tue, 19 Jun 2018 17:26:37 +0800 Subject: [PATCH 01/37] supplier booking --- app/Booking.php | 7 + app/BookingSupplier.php | 17 +++ app/Http/Controllers/BookingController.php | 24 ++-- .../Controllers/BookingSupplierController.php | 132 ++++++++++++++++++ app/UserBankSlip.php | 7 + artisan | 0 public/bankslip/hello.jpg | Bin resources/lang/es/auth.php | 0 resources/lang/es/pagination.php | 0 resources/lang/es/passwords.php | 0 resources/lang/es/validation.php | 0 routes/api.php | 12 +- 12 files changed, 185 insertions(+), 14 deletions(-) create mode 100644 app/BookingSupplier.php create mode 100644 app/Http/Controllers/BookingSupplierController.php mode change 100755 => 100644 artisan mode change 100755 => 100644 public/bankslip/hello.jpg mode change 100755 => 100644 resources/lang/es/auth.php mode change 100755 => 100644 resources/lang/es/pagination.php mode change 100755 => 100644 resources/lang/es/passwords.php mode change 100755 => 100644 resources/lang/es/validation.php diff --git a/app/Booking.php b/app/Booking.php index 1add81f2..bc28e501 100644 --- a/app/Booking.php +++ b/app/Booking.php @@ -9,8 +9,15 @@ class Booking extends Model // protected $guarded = []; protected $fillable = ['term', 'amount', 'rate_id', 'user_id', 'account_name', 'account_num', 'bank_name', 'bank_branch', 'company_name', 'company_address', 'bank_address', 'swift_code', 'cnap' ,'verification_status']; public $timestamps = true; + public function user(){ return $this->belongsTo('app\User'); } + + // has one userbankslip + public function uploadbankslip() + { + return $this->hasOne('app\UserBankSlip'); + } } diff --git a/app/BookingSupplier.php b/app/BookingSupplier.php new file mode 100644 index 00000000..e6da1d32 --- /dev/null +++ b/app/BookingSupplier.php @@ -0,0 +1,17 @@ +belongsTo('app\User'); + } +} diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index f97afe4a..b6dd5cd4 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -117,14 +117,14 @@ class BookingController extends Controller public function uploadbankslip(Request $request, $id) { - $user_bankslip = Booking::where("user_id", Auth::user()->id)->first(); - if (!$user_bankslip) + $booking = Booking::where("user_id", Auth::user()->id)->first(); + if (!$booking) { return response()->json(['message'=>'Access denied'], 200); } $validator = Validator::make($request->all(), [ - 'bankslip_url' => 'image|mimes:jpg,jpeg,bmp,png' + 'bankslip_file' => 'image|mimes:jpg,jpeg,bmp,png' ]); if($validator->fails()) @@ -132,19 +132,19 @@ class BookingController extends Controller return response()->json(['message'=>'Incorrect format'],200); } - if($file = $request->file('bankslip_url')) + if($file = $request->file('bankslip_file')) { - $bankslip_url = $request->file('bankslip_url'); - $filename = $bankslip_url->getClientOriginalName(); + $bankslip_file = $request->file('bankslip_file'); + $filename = $bankslip_file->getClientOriginalName(); $unique_name = 'bank_slip_' . md5($filename. time()); - $file = $request->file('bankslip_url'); + $file = $request->file('bankslip_file'); $ext = $file->getClientOriginalExtension(); - $input['bankslip_url'] = $filename; + $input['bankslip_file'] = $filename; Storage::putFileAs( - 'bankslip_url',/*folder name*/ $file, $unique_name. '.' .$ext + 'bankslip_file',/*folder name*/ $file, $unique_name. '.' .$ext ); - $user_bankslip->bankslip_url = $unique_name. '.' .$ext; //update database + $user_bankslip->bankslip_file = $unique_name. '.' .$ext; //update database } //end if else { return response()->json(['message' => 'No file detected'], 400); @@ -167,8 +167,8 @@ class BookingController extends Controller public function uploadPurchaseOrder(Request $request, $id) { - $user_po = Booking::where("user_id", Auth::user()->id)->first(); - if (!$user_po) + $booking = Booking::where("user_id", Auth::user()->id)->first(); + if (!$booking) { return response()->json(['message'=>'Access denied'], 200); } diff --git a/app/Http/Controllers/BookingSupplierController.php b/app/Http/Controllers/BookingSupplierController.php new file mode 100644 index 00000000..f1aa5af3 --- /dev/null +++ b/app/Http/Controllers/BookingSupplierController.php @@ -0,0 +1,132 @@ + $booking + ]; + return response()->json($response, 200); + } + + // function show($id) + public function show($id) + { + $booking = BookingSupplier::has('supplier-booking')->findOrFail($id); + + $response = [ + 'supplier-booking' => $booking + ]; + return response()->json($response, 200); + } + + //single booking detail : one customer bank slip + public function viewCustomerBookingDetail (Request $request, $id ) + { + // display all booking that is already uploaded user bankin slip + // TODO: admin can access only + // get current booking + + $booking = Booking::where("admin_id", Auth::user()->id)->where('id', $id)->first(); + if (!$booking) + { + return response()->json(['message'=>'Access denied'], 200); + } + return response()->json($booking, 200); + + } + + + + public function store(Request $request, $id) + { + //Calculation part + //single booking supplier + $amount = $request->input("payment_amount"); + $rate = $request->input("rate"); + $rebate = $request->input("rebate"); + + $amountInRMB = $amount * $rate; + $billing = 0.015 * $amount; + $sales_tax = 0.10 * $amount; + $gst = 0 * $amount; + $customerBankInAmount = round($amount + $gst + $sales_tax + $billing,2); + $rmbBankAmount = $customerBankInAmount + $rebate; + + $user = Auth::user(); + $booking = new BookingSupplier(); + + $supplier = SettingSupplier::find($id); + $booking->supplier_id = $supplier->id; + + $booking->payment_method = $request->input('payment_method'); + $booking->payment_amount = $request->input('payment_amount'); + $booking->rate = $request->input('rate'); + $booking->rebate = $request->input('rebate'); + + $booking->user()->associate($user); + $booking->amountInRMB = $amountInRMB; + $booking->rmbBankAmount = $rmbBankAmount; + $booking->save(); + + return response()->json($booking, 201); + + + } + + public function update(Request $request, $id) + { + + $booking = BookingSupplier::find($id); + $booking->payment_method = $request->input('payment_method'); + $booking->payment_amount = $request->input('payment_amount'); + $booking->rate = $request->input('rate'); + $booking->rebate = $request->input('rebate'); + // calculation + $amountInRMB = $amount * $rate; + $billing = 0.015 * $amount; + $sales_tax = 0.10 * $amount; + $gst = 0 * $amount; + $customerBankInAmount = round($amount + $gst + $sales_tax + $billing,2); + $rmbBankAmount = $customerBankInAmount + $rebate; + + // save amount in rmb + $booking->amountInRMB = $amountInRMB; + // save rmb bank amount + $booking->rmbBankAmount = $rmbBankAmount; + $booking->save(); + + return response()->json(['book_id'=>$book_id],201); + } + + public function destroy(BookingSupplier $id) + { + $id->delete($id); + } + + public function supplierbookingreport(Request $request, $id) + { + $booking = Booking::where("admin_id", Auth::user()->id)->where('id', $id)->first(); + if (!$booking) + { + return response()->json(['message'=>'Access denied'], 200); + } + + + + + + } + + +} diff --git a/app/UserBankSlip.php b/app/UserBankSlip.php index 8aa809a6..06fa7816 100644 --- a/app/UserBankSlip.php +++ b/app/UserBankSlip.php @@ -7,4 +7,11 @@ use Illuminate\Database\Eloquent\Model; class UserBankSlip extends Model { protected $fillable = ['bank_slip_type','bankslip_url','transfer_amount','book_id','cust_marking']; + + // belongs to booking + public function uploadbankslip(){ + return $this->belongsTo('app\Booking'); + } + + } diff --git a/artisan b/artisan old mode 100755 new mode 100644 diff --git a/public/bankslip/hello.jpg b/public/bankslip/hello.jpg old mode 100755 new mode 100644 diff --git a/resources/lang/es/auth.php b/resources/lang/es/auth.php old mode 100755 new mode 100644 diff --git a/resources/lang/es/pagination.php b/resources/lang/es/pagination.php old mode 100755 new mode 100644 diff --git a/resources/lang/es/passwords.php b/resources/lang/es/passwords.php old mode 100755 new mode 100644 diff --git a/resources/lang/es/validation.php b/resources/lang/es/validation.php old mode 100755 new mode 100644 diff --git a/routes/api.php b/routes/api.php index 917a0732..50a91c54 100644 --- a/routes/api.php +++ b/routes/api.php @@ -80,6 +80,14 @@ Route::put('setting-supplier/{supplier}', 'SettingSupplierController@update'); Route::delete('setting-supplier/{supplier}', 'SettingSupplierController@delete'); Route::post('upload-china-bankslip', 'ChinaBankSlipController@store'); - +//customer booking Route::post('booking/{id}/upload-user-bankslip', 'BookingController@uploadbankslip'); -Route::post('booking/{id}/upload-po', 'BookingController@uploadPurchaseOrder'); \ No newline at end of file +Route::post('booking/{id}/upload-po', 'BookingController@uploadPurchaseOrder'); + +//supplier booking +Route::get('supplier-booking', 'BookingSupplierController@index'); +Route::get('supplier-booking/{id}', 'BookingSupplierController@show'); +Route::get('supplier-booking/{id}', 'BookingSupplierController@viewCustomerBookingDetail'); +Route::post('supplier-booking', 'BookingSupplierController@store'); +Route::put('supplier-booking/{id}', 'BookingSupplierController@update'); +Route::delete('supplier-booking/{id}', 'BookingSupplierController@destroy'); \ No newline at end of file From 8fa4f158180929ef7cb81b542d596c3b1f03746d Mon Sep 17 00:00:00 2001 From: Nazri Hamzah Date: Wed, 20 Jun 2018 12:08:15 +0800 Subject: [PATCH 02/37] WIP: fix discussion --- app/Booking.php | 5 ----- app/BookingSupplier.php | 5 +++++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/Booking.php b/app/Booking.php index bc28e501..5d6ac39e 100644 --- a/app/Booking.php +++ b/app/Booking.php @@ -14,10 +14,5 @@ class Booking extends Model return $this->belongsTo('app\User'); } - // has one userbankslip - public function uploadbankslip() - { - return $this->hasOne('app\UserBankSlip'); - } } diff --git a/app/BookingSupplier.php b/app/BookingSupplier.php index e6da1d32..f2838cb3 100644 --- a/app/BookingSupplier.php +++ b/app/BookingSupplier.php @@ -14,4 +14,9 @@ class BookingSupplier extends Model { return $this->belongsTo('app\User'); } + + public function bookingSupplier() + { + return $this->hasMany('App\Booking'); + } } From 32bf2f437542b6f7a5f513b3958665406443e0c6 Mon Sep 17 00:00:00 2001 From: Nazri Hamzah Date: Wed, 20 Jun 2018 12:15:33 +0800 Subject: [PATCH 03/37] fix discussion 2 --- .../Controllers/BookingSupplierController.php | 82 +++++++++++++------ 1 file changed, 57 insertions(+), 25 deletions(-) diff --git a/app/Http/Controllers/BookingSupplierController.php b/app/Http/Controllers/BookingSupplierController.php index f1aa5af3..cdb3938e 100644 --- a/app/Http/Controllers/BookingSupplierController.php +++ b/app/Http/Controllers/BookingSupplierController.php @@ -3,6 +3,9 @@ namespace App\Http\Controllers; use App\BookingSupplier; +use App\Booking; +use App\Rate; +use App\User; use App\UserBankSlip; use Illuminate\Http\Request; @@ -11,10 +14,10 @@ class BookingSupplierController extends Controller public function index() { - $booking = BookingSupplier::all(); + $bookingsupplier = BookingSupplier::all(); $response = [ - 'supplier-booking' => $booking + 'supplier-booking' => $bookingsupplier ]; return response()->json($response, 200); } @@ -22,7 +25,7 @@ class BookingSupplierController extends Controller // function show($id) public function show($id) { - $booking = BookingSupplier::has('supplier-booking')->findOrFail($id); + $bookingsupplier = BookingSupplier::has('supplier-booking')->findOrFail($id); $response = [ 'supplier-booking' => $booking @@ -52,7 +55,7 @@ class BookingSupplierController extends Controller { //Calculation part //single booking supplier - $amount = $request->input("payment_amount"); + $payment_amount = $request->input("payment_amount"); $rate = $request->input("rate"); $rebate = $request->input("rebate"); @@ -64,22 +67,51 @@ class BookingSupplierController extends Controller $rmbBankAmount = $customerBankInAmount + $rebate; $user = Auth::user(); - $booking = new BookingSupplier(); + $bookingsupplier = new BookingSupplier(); $supplier = SettingSupplier::find($id); - $booking->supplier_id = $supplier->id; + $bookingsupplier->supplier_id = $supplier->id; - $booking->payment_method = $request->input('payment_method'); - $booking->payment_amount = $request->input('payment_amount'); - $booking->rate = $request->input('rate'); - $booking->rebate = $request->input('rebate'); + $bookingsupplier->payment_method = $request->input('payment_method'); + $bookingsupplier->payment_amount = $request->input('payment_amount'); + $bookingsupplier->rate = $request->input('rate'); + $bookingsupplier->rebate = $request->input('rebate'); - $booking->user()->associate($user); - $booking->amountInRMB = $amountInRMB; - $booking->rmbBankAmount = $rmbBankAmount; - $booking->save(); + $bookingsupplier->user()->associate($user); + $bookingsupplier->amountInRMB = $amountInRMB; + $bookingsupplier->rmbBankAmount = $rmbBankAmount; - return response()->json($booking, 201); + $bookingsupplier->save(); + + //one bookingsupplier has many booking + foreach ($bookingsupplier as $booking) + { + $manybooking = new Booking(array( + 'book_id' => $booking->id, + 'term' => $booking['term'], + 'amount' => $booking['amount'], + 'account_name' => $booking['account_name'], + 'account_num' => $booking['account_num'], + 'bank_name' => $booking['bank_name'], + 'bank_branch' => $booking['account_name'], + 'company_name' => $booking['company_name'], + 'company_address' => $booking['company_address'], + 'bank_address' => $booking['bank_address'], + 'swift_code' => $booking['swift_code'], + 'cnap' => $booking['cnap'], + 'verification_status' => $booking['verification_status'], + 'rmb_book_amount' => $booking['rmb_book_amount'], + 'rmb_book_pay_method' => $booking['rmb_book_pay_method'], + 'rmb_book_account_name' => $booking['rmb_book_account_name'], + 'rmb_book_bank_name' => $booking['rmb_book_bank_name'], + 'rmb_book_acc_no' => $booking['rmb_book_acc_no'], + 'rmb_book_bank_branch' => $booking['rmb_book_bank_branch'], + )); + + $manybooking->save(); + } + + return response()->json($bookingsupplier, 201); } @@ -87,11 +119,11 @@ class BookingSupplierController extends Controller public function update(Request $request, $id) { - $booking = BookingSupplier::find($id); - $booking->payment_method = $request->input('payment_method'); - $booking->payment_amount = $request->input('payment_amount'); - $booking->rate = $request->input('rate'); - $booking->rebate = $request->input('rebate'); + $bookingsupplier = BookingSupplier::find($id); + $bookingsupplier->payment_method = $request->input('payment_method'); + $bookingsupplier->payment_amount = $request->input('payment_amount'); + $bookingsupplier->rate = $request->input('rate'); + $bookingsupplier->rebate = $request->input('rebate'); // calculation $amountInRMB = $amount * $rate; $billing = 0.015 * $amount; @@ -101,10 +133,10 @@ class BookingSupplierController extends Controller $rmbBankAmount = $customerBankInAmount + $rebate; // save amount in rmb - $booking->amountInRMB = $amountInRMB; + $bookingsupplier->amountInRMB = $amountInRMB; // save rmb bank amount - $booking->rmbBankAmount = $rmbBankAmount; - $booking->save(); + $bookingsupplier->rmbBankAmount = $rmbBankAmount; + $bookingsupplier->save(); return response()->json(['book_id'=>$book_id],201); } @@ -116,8 +148,8 @@ class BookingSupplierController extends Controller public function supplierbookingreport(Request $request, $id) { - $booking = Booking::where("admin_id", Auth::user()->id)->where('id', $id)->first(); - if (!$booking) + $bookingsupplier = BookingSupplier::where("admin_id", Auth::user()->id)->where('id', $id)->first(); + if (!$bookingsupplier) { return response()->json(['message'=>'Access denied'], 200); } From 32454973788534659c18ca80a408de7c987683eb Mon Sep 17 00:00:00 2001 From: Nazri Hamzah Date: Wed, 20 Jun 2018 17:19:58 +0800 Subject: [PATCH 04/37] fix conflict --- app/Http/Controllers/BookingController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index fd8e6db4..6f26a2f1 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -198,7 +198,7 @@ class BookingController extends Controller $user_bankslip = new UserBankSlip; $user_bankslip->booking_id = $booking->id; - $user_bankslip->bankslip_url = $unique_image_url; + $user_bankslip->bankslip_file = $unique_image_url; $user_bankslip->transfer_amount = $request->input('transfer_amount'); $user_bankslip->save(); From 62d0d83cb6fc61317005ab2bd0adb4aff1dc2f9e Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Mon, 25 Jun 2018 17:34:34 +0800 Subject: [PATCH 05/37] attempt to fetch user bankslip --- app/Http/Controllers/BookingController.php | 10 +++++----- .../assets/js/pages/admin/booking/verification.vue | 5 +++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index ea7332b2..f18d5a76 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -144,8 +144,8 @@ class BookingController extends Controller public function adminShow($id) { $booking = Booking::where('id', $id)->first(); - return $booking->userBankSlip()->get(); - + $booking->user_bankslip_path = $booking->userBankSlip()->first()->bankslip_path; + if($booking){ $date1 = new DateTime($booking->created_at); $date2 = new DateTime(); @@ -315,7 +315,7 @@ class BookingController extends Controller $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', $bankslip_file, $unique_image_path, 'public' ); $user_bankslip = new UserBankSlip; @@ -372,7 +372,7 @@ class BookingController extends Controller $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 + 'purchase_order',/*folder name*/ $user_input_file, $unique_image_path, 'public' ); $user_po = new PurchaseOrder; @@ -553,7 +553,7 @@ class BookingController extends Controller $unique_name = 'invoice' . md5($filename. time()); $unique_file_url = $unique_name. '.' .$ext; Storage::putFileAs( - 'invoice',/*folder name*/ $input_file, $unique_file_url + 'invoice',/*folder name*/ $input_file, $unique_file_url, 'public' ); $invoice = new Invoice; diff --git a/resources/assets/js/pages/admin/booking/verification.vue b/resources/assets/js/pages/admin/booking/verification.vue index 20bac84b..d01ceba4 100644 --- a/resources/assets/js/pages/admin/booking/verification.vue +++ b/resources/assets/js/pages/admin/booking/verification.vue @@ -198,7 +198,7 @@ - + @@ -235,7 +235,8 @@ id: null, amount: null, bia: null, - } + user_bankslip_path: null, + }, } }, beforeCreate () { From ffe1023bba6e57b2b33286451631b9668c88f0c0 Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Mon, 25 Jun 2018 17:48:51 +0800 Subject: [PATCH 06/37] added credit limit seeder, it causes error when creating booking --- app/Http/Controllers/BookingController.php | 7 ++++++- database/seeds/CreditTableSeeder.php | 22 ++++++++++++++++++++++ database/seeds/DatabaseSeeder.php | 1 + 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 database/seeds/CreditTableSeeder.php diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index f18d5a76..6e192344 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -165,7 +165,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); } diff --git a/database/seeds/CreditTableSeeder.php b/database/seeds/CreditTableSeeder.php new file mode 100644 index 00000000..0f6e4932 --- /dev/null +++ b/database/seeds/CreditTableSeeder.php @@ -0,0 +1,22 @@ +insert([ + 'rmb_credit_limit' => 20000, + 'usd_credit_limit' => 20000, + '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/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php index 098d40f3..95fb2c2f 100644 --- a/database/seeds/DatabaseSeeder.php +++ b/database/seeds/DatabaseSeeder.php @@ -16,5 +16,6 @@ class DatabaseSeeder extends Seeder $this->call(UserRoleSeeder::class); $this->call(RateTableSeeder::class); $this->call(BookTableSeeder::class); + $this->call(CreditTableSeeder::class); } } From 89f5e34aa8019e334abed3cbf861c239758682ac Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Mon, 25 Jun 2018 17:52:41 +0800 Subject: [PATCH 07/37] update booking status on stage 2 --- app/Http/Controllers/BookingController.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index 6e192344..59fe7006 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -339,7 +339,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); From 3129da5df48bbab828ac2fc88bc62d31f6f2d1e0 Mon Sep 17 00:00:00 2001 From: Too Date: Mon, 25 Jun 2018 18:16:20 +0800 Subject: [PATCH 08/37] get_time_limit --- app/Http/Controllers/BookingController.php | 6 ++-- app/SettingCredit.php | 2 +- database/factories/SettingCreditFactory.php | 3 +- ...43_add_time_limit_setting_credit_table.php | 32 +++++++++++++++++++ 4 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 database/migrations/2018_06_25_101043_add_time_limit_setting_credit_table.php diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index ea7332b2..607d70b2 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -29,7 +29,8 @@ 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')); + $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 @@ -79,7 +80,8 @@ 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')); + $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 diff --git a/app/SettingCredit.php b/app/SettingCredit.php index 872fec8e..5d567ab3 100644 --- a/app/SettingCredit.php +++ b/app/SettingCredit.php @@ -6,5 +6,5 @@ use Illuminate\Database\Eloquent\Model; class SettingCredit extends Model { - protected $fillable = ['rmb_credit_limit','usd_credit_limit']; + protected $fillable = ['rmb_credit_limit','usd_credit_limit','time_limit']; } diff --git a/database/factories/SettingCreditFactory.php b/database/factories/SettingCreditFactory.php index 2eb3fafc..f1d4eeba 100644 --- a/database/factories/SettingCreditFactory.php +++ b/database/factories/SettingCreditFactory.php @@ -5,6 +5,7 @@ use Faker\Generator as Faker; $factory->define(App\SettingCredit::class, function (Faker $faker) { return [ 'rmb_credit_limit' => $faker->randomDigit, - 'usd_credit_limit' => $faker->randomDigit + 'usd_credit_limit' => $faker->randomDigit, + 'time_limit' => $faker->randomDigit ]; }); diff --git a/database/migrations/2018_06_25_101043_add_time_limit_setting_credit_table.php b/database/migrations/2018_06_25_101043_add_time_limit_setting_credit_table.php new file mode 100644 index 00000000..4e0aefef --- /dev/null +++ b/database/migrations/2018_06_25_101043_add_time_limit_setting_credit_table.php @@ -0,0 +1,32 @@ +integer('time_limit'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('setting_credits', function (Blueprint $table) { + // $table->dropColumn('time_limit'); + }); + } +} \ No newline at end of file From ec6db693730239fe04097e76fdecc430bc7cb1ab Mon Sep 17 00:00:00 2001 From: Too Date: Tue, 26 Jun 2018 11:28:53 +0800 Subject: [PATCH 09/37] 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 f31f39caece47a442e3fcd24154006f9c207fda9 Mon Sep 17 00:00:00 2001 From: Too Date: Tue, 26 Jun 2018 11:47:48 +0800 Subject: [PATCH 10/37] Add seeder and test for setting_credit --- database/seeds/DatabaseSeeder.php | 1 + database/seeds/SettingCreditSeeder.php | 21 +++++++++++++++++++++ tests/Feature/SettingCreditTest.php | 4 +++- 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 database/seeds/SettingCreditSeeder.php diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php index 098d40f3..bcf98f78 100644 --- a/database/seeds/DatabaseSeeder.php +++ b/database/seeds/DatabaseSeeder.php @@ -16,5 +16,6 @@ class DatabaseSeeder extends Seeder $this->call(UserRoleSeeder::class); $this->call(RateTableSeeder::class); $this->call(BookTableSeeder::class); + $this->call(SettingCreditSeeder::class); } } diff --git a/database/seeds/SettingCreditSeeder.php b/database/seeds/SettingCreditSeeder.php new file mode 100644 index 00000000..0087203e --- /dev/null +++ b/database/seeds/SettingCreditSeeder.php @@ -0,0 +1,21 @@ +insert([ + 'rmb_credit_limit' => '4000', + 'usd_credit_limit' => '5000', + 'time_limit' => '600' + ]); + } +} diff --git a/tests/Feature/SettingCreditTest.php b/tests/Feature/SettingCreditTest.php index b0d0cc4c..00d7a339 100644 --- a/tests/Feature/SettingCreditTest.php +++ b/tests/Feature/SettingCreditTest.php @@ -24,10 +24,12 @@ class SettingCreditTest extends TestCase } public function testStore(){ + $this->actingAs($this->user) ->postJson('/api/setting-credit/', [ 'rmb_credit_limit' => '5000', - 'usd_credit_limit' => '2000' + 'usd_credit_limit' => '2000', + 'time_limit' => '500' ]) ->assertStatus(201); } From 20923d8f4a1ad9ec656e2c35f5d013e1ea27eafe Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Tue, 26 Jun 2018 12:07:27 +0800 Subject: [PATCH 11/37] updated upload path --- app/Http/Controllers/BookingController.php | 41 ++++++++++++++-------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index 607d70b2..6cbeebd2 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,7 @@ class BookingController extends Controller public function adminShow($id) { $booking = Booking::where('id', $id)->first(); - return $booking->userBankSlip()->get(); + $booking->user_bankslip_path = Storage::url('user_bankslip/', 'bank_slip_598c85be224d7842102e99321c427e72.jpg'); if($booking){ $date1 = new DateTime($booking->created_at); @@ -167,7 +166,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); } @@ -315,14 +319,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(); @@ -336,7 +341,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,12 +384,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(); @@ -554,12 +565,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(); From 9fff113250989ed3d97c7b3918047d40dd45162a Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Tue, 26 Jun 2018 12:08:43 +0800 Subject: [PATCH 12/37] updated dockerfile to add storage symlink --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From ae85886365924cd6717ce77d83366abfd8e6c130 Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Tue, 26 Jun 2018 12:12:02 +0800 Subject: [PATCH 13/37] updated user bankslip path in verification frontend --- resources/assets/js/pages/admin/booking/verification.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/assets/js/pages/admin/booking/verification.vue b/resources/assets/js/pages/admin/booking/verification.vue index 20bac84b..8d29575e 100644 --- a/resources/assets/js/pages/admin/booking/verification.vue +++ b/resources/assets/js/pages/admin/booking/verification.vue @@ -198,7 +198,7 @@ - + @@ -235,6 +235,7 @@ id: null, amount: null, bia: null, + user_bankslip_path: null, } } }, From 0a6bd2c4050387ca6f3478913619d1818d6d3d1e Mon Sep 17 00:00:00 2001 From: Too Date: Tue, 26 Jun 2018 12:17:12 +0800 Subject: [PATCH 14/37] 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 15/37] 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 852c64f35bf81b65f4000a8190884fe68573be80 Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Tue, 26 Jun 2018 12:27:09 +0800 Subject: [PATCH 16/37] completed display user bankslip in verification frontend --- app/Http/Controllers/BookingController.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index 6cbeebd2..ec90a1ab 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -145,7 +145,8 @@ class BookingController extends Controller public function adminShow($id) { $booking = Booking::where('id', $id)->first(); - $booking->user_bankslip_path = Storage::url('user_bankslip/', 'bank_slip_598c85be224d7842102e99321c427e72.jpg'); + $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); From dec9ba940524cf2ecc38ddd84ab383d281466dee Mon Sep 17 00:00:00 2001 From: Too Date: Tue, 26 Jun 2018 12:28:17 +0800 Subject: [PATCH 17/37] 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'); }); } From 53663534842f76d8eb5a1a89e1958ba07bd1524c Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Tue, 26 Jun 2018 14:41:37 +0800 Subject: [PATCH 18/37] updated loading button param --- resources/assets/js/pages/admin/booking/verification.vue | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/resources/assets/js/pages/admin/booking/verification.vue b/resources/assets/js/pages/admin/booking/verification.vue index 8d29575e..54da4315 100644 --- a/resources/assets/js/pages/admin/booking/verification.vue +++ b/resources/assets/js/pages/admin/booking/verification.vue @@ -206,8 +206,8 @@ - Aprroved - Rejected + Aprroved + Rejected @@ -230,7 +230,7 @@ data() { return { status: 2, - loading: false, + loading_btn: false, booking_details:{ id: null, amount: null, @@ -263,6 +263,7 @@ }, methods: { approveUserSlip() { + this.loading_btn = true // axios.get('api/booking') // .then((response) => { // console.log(response) @@ -270,6 +271,8 @@ // }) }, rejectUserSlip() { + // TODO reject with reason + this.loading_btn = true // axios.get('api/booking') // .then((response) => { // console.log(response) From 20230502186f0d03b21df61f18f7e0da15c0ceb2 Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Tue, 26 Jun 2018 14:44:48 +0800 Subject: [PATCH 19/37] fix conflict --- database/seeds/DatabaseSeeder.php | 4 ---- resources/assets/js/pages/admin/booking/verification.vue | 8 -------- 2 files changed, 12 deletions(-) diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php index ec23be1c..95fb2c2f 100644 --- a/database/seeds/DatabaseSeeder.php +++ b/database/seeds/DatabaseSeeder.php @@ -16,10 +16,6 @@ class DatabaseSeeder extends Seeder $this->call(UserRoleSeeder::class); $this->call(RateTableSeeder::class); $this->call(BookTableSeeder::class); -<<<<<<< HEAD - $this->call(SettingCreditSeeder::class); -======= $this->call(CreditTableSeeder::class); ->>>>>>> 89f5e34aa8019e334abed3cbf861c239758682ac } } diff --git a/resources/assets/js/pages/admin/booking/verification.vue b/resources/assets/js/pages/admin/booking/verification.vue index ac1699ab..54da4315 100644 --- a/resources/assets/js/pages/admin/booking/verification.vue +++ b/resources/assets/js/pages/admin/booking/verification.vue @@ -198,11 +198,7 @@ -<<<<<<< HEAD -======= - ->>>>>>> 89f5e34aa8019e334abed3cbf861c239758682ac @@ -240,11 +236,7 @@ amount: null, bia: null, user_bankslip_path: null, -<<<<<<< HEAD } -======= - }, ->>>>>>> 89f5e34aa8019e334abed3cbf861c239758682ac } }, beforeCreate () { From fd03f5b24844fb55187eb04511fe377313542b1d Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Tue, 26 Jun 2018 17:40:44 +0800 Subject: [PATCH 20/37] updated approvebankslip booking not found updated update status upon userbankslip approved updated update status upon userbankslip rejected updated supplier index to display value and label for input select updated supplierBooking frontend completed booking accept and reject integration --- app/Http/Controllers/BookingController.php | 23 +- .../Controllers/SettingSupplierController.php | 8 +- .../pages/admin/booking/supplierBooking.vue | 366 ++++++++++++++++-- .../js/pages/admin/booking/verification.vue | 66 +++- 4 files changed, 423 insertions(+), 40 deletions(-) diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index 90418e5c..3c192c5c 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -489,14 +489,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 +510,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,6 +542,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); } 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/resources/assets/js/pages/admin/booking/supplierBooking.vue b/resources/assets/js/pages/admin/booking/supplierBooking.vue index 37196cb3..f2feaa71 100644 --- a/resources/assets/js/pages/admin/booking/supplierBooking.vue +++ b/resources/assets/js/pages/admin/booking/supplierBooking.vue @@ -1,13 +1,13 @@ @@ -29,7 +29,8 @@ export default { computed: mapGetters({ locale: 'lang/locale', locales: 'lang/locales', - user: 'auth/user' + user: 'auth/user', + role: 'auth/role' }), methods: { From fdcaa31ffe92344728b263cef2ed7982fc96951c Mon Sep 17 00:00:00 2001 From: Too Date: Tue, 26 Jun 2018 21:39:24 +0800 Subject: [PATCH 26/37] Add upload file maxsize checking in booking controller --- app/Http/Controllers/BookingController.php | 30 +++++++++++- database/seeds/DatabaseSeeder.php | 1 + tests/Feature/BookingTest.php | 55 +++++++++++++--------- 3 files changed, 63 insertions(+), 23 deletions(-) diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index 5f6ae880..e1095315 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -284,7 +284,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,6 +304,14 @@ 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(!$bankslip_file = $request->file('file')) { @@ -361,6 +369,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); @@ -523,7 +540,7 @@ class BookingController extends Controller 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(); @@ -543,6 +560,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); diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php index bcf98f78..d40a4e4b 100644 --- a/database/seeds/DatabaseSeeder.php +++ b/database/seeds/DatabaseSeeder.php @@ -1,6 +1,7 @@ image('comp.jpg'); - - if(!file_exists($bankslip_path)){ - $response->assertStatus(400); - } + $size_in_kb = 3072; // 3072KB = 3MB + $bankslip_path = UploadedFile::fake()->image('comp.jpg')->size($size_in_kb); + $response = $this->actingAs($this->user) ->json('POST', '/api/booking/' . $this->booking->id . '/upload-user-bankslip', [ 'file' => $bankslip_path - ]) - ->assertSuccessful(); + ]); + + if(!file_exists($bankslip_path) || $size_in_kb > 3072){ + $response->assertStatus(400); + } + else{ + $response->assertSuccessful(); + } } public function testUpdateBankslipAmount() @@ -108,18 +113,22 @@ class BookingTest extends TestCase public function testuploadPO() { Storage::fake('file'); - $image_path = UploadedFile::fake()->image('comp.jpg'); - - if(!file_exists($image_path)){ - $response->assertStatus(400); - } + $size_in_kb = 3072; // 3072KB = 3MB + $image_path = UploadedFile::fake()->image('comp.jpg')->size($size_in_kb); + $response = $this->actingAs($this->user) ->json('POST', '/api/booking/' . $this->booking->id . '/upload-po', [ 'file' => $image_path, 'amount' => '12345' - ]) - ->assertSuccessful(); + ]); + + if(!file_exists($image_path) || $size_in_kb > 3072){ + $response->assertStatus(400); + } + else{ + $response->assertSuccessful(); + } } public function testCancel() @@ -152,18 +161,22 @@ class BookingTest extends TestCase $this->user->roles()->sync([]); $this->user->attachRole(Role::Where('name','admin')->first()); + $size_in_kb = 3072; Storage::fake('invoice_path'); - $invoice_path = UploadedFile::fake()->create('document.pdf'); - - if(!file_exists($invoice_path)){ - $response->assertStatus(400); - } + $invoice_path = UploadedFile::fake()->create('document.pdf',$size_in_kb); + $response = $this->actingAs($this->user) ->json('POST', '/api/booking/' . $this->booking->id . '/upload-invoice', [ 'invoice_path' => $invoice_path, 'amount' => '12345' - ]) - ->assertSuccessful(); + ]); + + if(!file_exists($invoice_path) || $size_in_kb > 3072){ + $response->assertStatus(400); + } + else{ + $response->assertSuccessful(); + } } } From 436b284a3b15f2525204712b5b4f66d40d79d0bc Mon Sep 17 00:00:00 2001 From: Too Date: Tue, 26 Jun 2018 22:23:10 +0800 Subject: [PATCH 27/37] Add file size checking. Rename bankslip_url to china_bank_slip_path in chinabankslip table --- app/ChinaBankSlip.php | 2 +- .../Controllers/ChinaBankSlipController.php | 17 +++++++- ...abanksli_path_in_china_bank_slip_table.php | 31 +++++++++++++++ tests/Feature/BookingTest.php | 1 - tests/Feature/ChinaBankSlipTest.php | 39 +++++++++++++++++++ 5 files changed, 86 insertions(+), 4 deletions(-) create mode 100644 database/migrations/2018_06_26_141337_rename_bankslip_url_to_chinabanksli_path_in_china_bank_slip_table.php create mode 100644 tests/Feature/ChinaBankSlipTest.php diff --git a/app/ChinaBankSlip.php b/app/ChinaBankSlip.php index c607ec34..d7354956 100644 --- a/app/ChinaBankSlip.php +++ b/app/ChinaBankSlip.php @@ -6,5 +6,5 @@ use Illuminate\Database\Eloquent\Model; class ChinaBankSlip extends Model { - protected $fillable = ['actual_transfer_amount','date','details','china_bank_slips']; + protected $fillable = ['actual_transfer_amount','date','details','china_bank_slip_path']; } diff --git a/app/Http/Controllers/ChinaBankSlipController.php b/app/Http/Controllers/ChinaBankSlipController.php index 9a2048d6..fd781cbd 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 Illuminate\Http\Request; +use Illuminate\Support\Facades\Storage; +use Validator; class ChinaBankSlipController extends Controller { @@ -45,6 +47,16 @@ class ChinaBankSlipController extends Controller $extension = $request->file('china_bank_slips')->getClientOriginalExtension(); // Filename to store $fileNameToStore= $filename.'_'.time().'.'.$extension; + + // File size checking + $validator = Validator::make($request->all(), [ + 'china_bank_slips' => 'max:3072' + ]); + + if($validator->fails()) + { + return response()->json(['message'=>'Image too large, upload files up to 3 MB'], 400); + } // Upload Image $path = $request->file('china_bank_slips')->storeAs('public/bankslip', $fileNameToStore); } else { @@ -55,8 +67,9 @@ class ChinaBankSlipController extends Controller $post->actual_transfer_amount = $request->input('actual_transfer_amount'); $post->date = $request->input('date'); $post->details = $request->input('details'); - $post->china_bank_slips = $fileNameToStore; - $post->save();; + $post->china_bank_slip_path = "123"; + $post->save(); + return response()->json(['message'=>$post], 200); } diff --git a/database/migrations/2018_06_26_141337_rename_bankslip_url_to_chinabanksli_path_in_china_bank_slip_table.php b/database/migrations/2018_06_26_141337_rename_bankslip_url_to_chinabanksli_path_in_china_bank_slip_table.php new file mode 100644 index 00000000..9c23bfc8 --- /dev/null +++ b/database/migrations/2018_06_26_141337_rename_bankslip_url_to_chinabanksli_path_in_china_bank_slip_table.php @@ -0,0 +1,31 @@ +renameColumn('bankslip_url', 'china_bank_slip_path'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +} diff --git a/tests/Feature/BookingTest.php b/tests/Feature/BookingTest.php index 7e1ef5fd..616b6b25 100644 --- a/tests/Feature/BookingTest.php +++ b/tests/Feature/BookingTest.php @@ -17,7 +17,6 @@ use App\Booking; use App\UserBankSlip; use App\Role; use App\SettingCredit; -use Illuminate\Support\Facades\File; class BookingTest extends TestCase { diff --git a/tests/Feature/ChinaBankSlipTest.php b/tests/Feature/ChinaBankSlipTest.php new file mode 100644 index 00000000..9d499b33 --- /dev/null +++ b/tests/Feature/ChinaBankSlipTest.php @@ -0,0 +1,39 @@ +image('comp.jpg')->size($size_in_kb); + + $response = + $this->postJson('api/upload-china-bankslip',[ + 'china_bank_slips' => $china_bank_slips_path, + 'actual_transfer_amount' => '12', + 'details' => "123123", + 'date' => "123123" + ]); + + if(!file_exists($china_bank_slips_path) || $size_in_kb > 3072){ + $response->assertStatus(400); + } + else{ + $response->assertSuccessful(); + } + } +} From 819da146848363512f1e2d5835cbb2b8d8f74817 Mon Sep 17 00:00:00 2001 From: Too Date: Tue, 26 Jun 2018 22:24:47 +0800 Subject: [PATCH 28/37] revert back changes during debug --- app/Http/Controllers/ChinaBankSlipController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/ChinaBankSlipController.php b/app/Http/Controllers/ChinaBankSlipController.php index fd781cbd..7e860d62 100644 --- a/app/Http/Controllers/ChinaBankSlipController.php +++ b/app/Http/Controllers/ChinaBankSlipController.php @@ -67,7 +67,7 @@ class ChinaBankSlipController extends Controller $post->actual_transfer_amount = $request->input('actual_transfer_amount'); $post->date = $request->input('date'); $post->details = $request->input('details'); - $post->china_bank_slip_path = "123"; + $post->china_bank_slip_path = $fileNameToStore; $post->save(); return response()->json(['message'=>$post], 200); } From 299597ed165865c70f9ee4314db040bc929c39c2 Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Wed, 27 Jun 2018 09:58:09 +0800 Subject: [PATCH 29/37] update book supplier routes to admin routes --- .../Controllers/BookingSupplierController.php | 1 + routes/api.php | 15 ++++++++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/BookingSupplierController.php b/app/Http/Controllers/BookingSupplierController.php index 0d783f8c..1eb32af0 100644 --- a/app/Http/Controllers/BookingSupplierController.php +++ b/app/Http/Controllers/BookingSupplierController.php @@ -21,6 +21,7 @@ class BookingSupplierController extends Controller $response = [ 'supplier-booking' => $bookingsupplier ]; + return response()->json($response, 200); } diff --git a/routes/api.php b/routes/api.php index ce7e28e2..48dd5ea0 100644 --- a/routes/api.php +++ b/routes/api.php @@ -92,6 +92,13 @@ Route::group(['middleware' => ['role:admin']], function() { Route::get('marking/{beneficiary}', 'MarkingController@show'); Route::put('marking/{beneficiary}', 'MarkingController@update'); Route::delete('marking/{beneficiary}', 'MarkingController@delete'); + + Route::get('supplier-booking', 'BookingSupplierController@index'); + Route::get('supplier-booking/{id}', 'BookingSupplierController@show'); + Route::get('supplier-booking/{id}', 'BookingSupplierController@viewCustomerBookingDetail'); + Route::post('supplier-booking', 'BookingSupplierController@store'); + Route::put('supplier-booking/{id}', 'BookingSupplierController@update'); + Route::delete('supplier-booking/{id}', 'BookingSupplierController@destroy'); }); Route::get('update-rate', 'RateController@index'); @@ -103,10 +110,4 @@ Route::post('upload-china-bankslip', 'ChinaBankSlipController@store'); Route::post('booking/{id}/upload-user-bankslip', 'BookingController@uploadbankslip'); Route::post('booking/{id}/upload-po', 'BookingController@uploadPurchaseOrder'); -//supplier booking -Route::get('supplier-booking', 'BookingSupplierController@index'); -Route::get('supplier-booking/{id}', 'BookingSupplierController@show'); -Route::get('supplier-booking/{id}', 'BookingSupplierController@viewCustomerBookingDetail'); -Route::post('supplier-booking', 'BookingSupplierController@store'); -Route::put('supplier-booking/{id}', 'BookingSupplierController@update'); -Route::delete('supplier-booking/{id}', 'BookingSupplierController@destroy'); + From f078be408dbcacc86c55d20d211ef8794cdc552d Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Wed, 27 Jun 2018 10:09:06 +0800 Subject: [PATCH 30/37] fix migration errors --- ...18_06_21_025734_supplier_booking_table.php | 2 +- ...supplierbooking_customerbooking_table.php} | 0 ...31_create_supplier_booking_items_table.php | 2 - vendor/composer/autoload_classmap.php | 139 +++++++--------- vendor/composer/autoload_static.php | 155 +++++++----------- 5 files changed, 116 insertions(+), 182 deletions(-) rename database/migrations/{2018_06_21_024658_supplierbooking_customerbooking_table.php => 2018_06_21_034658_supplierbooking_customerbooking_table.php} (100%) diff --git a/database/migrations/2018_06_21_025734_supplier_booking_table.php b/database/migrations/2018_06_21_025734_supplier_booking_table.php index 3d32b506..25588fbe 100644 --- a/database/migrations/2018_06_21_025734_supplier_booking_table.php +++ b/database/migrations/2018_06_21_025734_supplier_booking_table.php @@ -4,7 +4,7 @@ use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; -class CreateBookingSuppliersTable extends Migration +class SupplierBookingTable extends Migration { /** * Run the migrations. diff --git a/database/migrations/2018_06_21_024658_supplierbooking_customerbooking_table.php b/database/migrations/2018_06_21_034658_supplierbooking_customerbooking_table.php similarity index 100% rename from database/migrations/2018_06_21_024658_supplierbooking_customerbooking_table.php rename to database/migrations/2018_06_21_034658_supplierbooking_customerbooking_table.php diff --git a/database/migrations/2018_06_25_120731_create_supplier_booking_items_table.php b/database/migrations/2018_06_25_120731_create_supplier_booking_items_table.php index 552f39f8..fad1a1c3 100644 --- a/database/migrations/2018_06_25_120731_create_supplier_booking_items_table.php +++ b/database/migrations/2018_06_25_120731_create_supplier_booking_items_table.php @@ -19,8 +19,6 @@ class CreateSupplierBookingItemsTable extends Migration $table->integer('book_id')->unsigned(); $table->foreign('book_id')->references('id')->on('bookings'); $table->double('bank_in_amount'); - $table->increments('date'); - $table->increments('details'); $table->integer('supplierbooking_id')->unsigned(); $table->foreign('supplierbooking_id')->references('id')->on('supplier_bookings'); $table->timestamps(); diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 8879d5e3..decc9192 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -21,6 +21,7 @@ return array( 'App\\Http\\Controllers\\BookingSupplierController' => $baseDir . '/app/Http/Controllers/BookingSupplierController.php', 'App\\Http\\Controllers\\ChinaBankSlipController' => $baseDir . '/app/Http/Controllers/ChinaBankSlipController.php', 'App\\Http\\Controllers\\Controller' => $baseDir . '/app/Http/Controllers/Controller.php', + 'App\\Http\\Controllers\\HomeController' => $baseDir . '/app/Http/Controllers/HomeController.php', 'App\\Http\\Controllers\\MarkingController' => $baseDir . '/app/Http/Controllers/MarkingController.php', 'App\\Http\\Controllers\\RateController' => $baseDir . '/app/Http/Controllers/RateController.php', 'App\\Http\\Controllers\\SettingBeneficiaryController' => $baseDir . '/app/Http/Controllers/SettingBeneficiaryController.php', @@ -38,6 +39,7 @@ return array( 'App\\Http\\Middleware\\TrimStrings' => $baseDir . '/app/Http/Middleware/TrimStrings.php', 'App\\Http\\Middleware\\TrustProxies' => $baseDir . '/app/Http/Middleware/TrustProxies.php', 'App\\Http\\Middleware\\VerifyCsrfToken' => $baseDir . '/app/Http/Middleware/VerifyCsrfToken.php', + 'App\\Invoice' => $baseDir . '/app/Invoice.php', 'App\\Marking' => $baseDir . '/app/Marking.php', 'App\\Notifications\\ResetPassword' => $baseDir . '/app/Notifications/ResetPassword.php', 'App\\OAuthProvider' => $baseDir . '/app/OAuthProvider.php', @@ -1110,6 +1112,9 @@ return array( 'Faker\\ValidGenerator' => $vendorDir . '/fzaninotto/faker/src/Faker/ValidGenerator.php', 'Fideloper\\Proxy\\TrustProxies' => $vendorDir . '/fideloper/proxy/src/TrustProxies.php', 'Fideloper\\Proxy\\TrustedProxyServiceProvider' => $vendorDir . '/fideloper/proxy/src/TrustedProxyServiceProvider.php', + 'File_Iterator' => $vendorDir . '/phpunit/php-file-iterator/src/Iterator.php', + 'File_Iterator_Facade' => $vendorDir . '/phpunit/php-file-iterator/src/Facade.php', + 'File_Iterator_Factory' => $vendorDir . '/phpunit/php-file-iterator/src/Factory.php', 'GuzzleHttp\\Client' => $vendorDir . '/guzzlehttp/guzzle/src/Client.php', 'GuzzleHttp\\ClientInterface' => $vendorDir . '/guzzlehttp/guzzle/src/ClientInterface.php', 'GuzzleHttp\\Cookie\\CookieJar' => $vendorDir . '/guzzlehttp/guzzle/src/Cookie/CookieJar.php', @@ -1613,7 +1618,6 @@ return array( 'Illuminate\\Foundation\\Console\\MailMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/MailMakeCommand.php', 'Illuminate\\Foundation\\Console\\ModelMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ModelMakeCommand.php', 'Illuminate\\Foundation\\Console\\NotificationMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/NotificationMakeCommand.php', - 'Illuminate\\Foundation\\Console\\ObserverMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ObserverMakeCommand.php', 'Illuminate\\Foundation\\Console\\PackageDiscoverCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/PackageDiscoverCommand.php', 'Illuminate\\Foundation\\Console\\PolicyMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/PolicyMakeCommand.php', 'Illuminate\\Foundation\\Console\\PresetCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/PresetCommand.php', @@ -1686,7 +1690,6 @@ return array( 'Illuminate\\Foundation\\Testing\\WithoutEvents' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/WithoutEvents.php', 'Illuminate\\Foundation\\Testing\\WithoutMiddleware' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/WithoutMiddleware.php', 'Illuminate\\Foundation\\Validation\\ValidatesRequests' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php', - 'Illuminate\\Hashing\\AbstractHasher' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/AbstractHasher.php', 'Illuminate\\Hashing\\ArgonHasher' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/ArgonHasher.php', 'Illuminate\\Hashing\\BcryptHasher' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php', 'Illuminate\\Hashing\\HashManager' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/HashManager.php', @@ -2577,50 +2580,50 @@ return array( 'PHPUnit\\Framework\\IncompleteTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestError.php', 'PHPUnit\\Framework\\InvalidCoversTargetException' => $vendorDir . '/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php', 'PHPUnit\\Framework\\MissingCoversAnnotationException' => $vendorDir . '/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php', - 'PHPUnit\\Framework\\MockObject\\BadMethodCallException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/BadMethodCallException.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Identity' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/Identity.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Match' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/Match.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/MethodNameMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\NamespaceMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/NamespaceMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/ParametersMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/Stub.php', - 'PHPUnit\\Framework\\MockObject\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php', - 'PHPUnit\\Framework\\MockObject\\Generator' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator.php', - 'PHPUnit\\Framework\\MockObject\\Invocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Invocation/Invocation.php', - 'PHPUnit\\Framework\\MockObject\\InvocationMocker' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/InvocationMocker.php', - 'PHPUnit\\Framework\\MockObject\\Invocation\\ObjectInvocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Invocation/ObjectInvocation.php', - 'PHPUnit\\Framework\\MockObject\\Invocation\\StaticInvocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Invocation/StaticInvocation.php', - 'PHPUnit\\Framework\\MockObject\\Invokable' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Invokable.php', - 'PHPUnit\\Framework\\MockObject\\Matcher' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyInvokedCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyInvokedCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyParameters' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyParameters.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\ConsecutiveParameters' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/ConsecutiveParameters.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\DeferredError' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/DeferredError.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\Invocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/Invocation.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtIndex' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtIndex.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastOnce' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtMostCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtMostCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedRecorder' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedRecorder.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\MethodName' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/MethodName.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\Parameters' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/Parameters.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\StatelessInvocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/StatelessInvocation.php', - 'PHPUnit\\Framework\\MockObject\\MockBuilder' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php', - 'PHPUnit\\Framework\\MockObject\\MockObject' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/ForwardCompatibility/MockObject.php', - 'PHPUnit\\Framework\\MockObject\\RuntimeException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/RuntimeException.php', - 'PHPUnit\\Framework\\MockObject\\Stub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ConsecutiveCalls' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ConsecutiveCalls.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/Exception.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\MatcherCollection' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/MatcherCollection.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnArgument' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnArgument.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnCallback' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnReference' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnReference.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnSelf' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnSelf.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnStub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnStub.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnValueMap' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnValueMap.php', - 'PHPUnit\\Framework\\MockObject\\Verifiable' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Verifiable.php', + 'PHPUnit\\Framework\\MockObject\\BadMethodCallException' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Exception/BadMethodCallException.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\Identity' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/Identity.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/InvocationMocker.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\Match' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/Match.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/MethodNameMatch.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\NamespaceMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/NamespaceMatch.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/ParametersMatch.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/Stub.php', + 'PHPUnit\\Framework\\MockObject\\Exception' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Exception/Exception.php', + 'PHPUnit\\Framework\\MockObject\\Generator' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Generator.php', + 'PHPUnit\\Framework\\MockObject\\Invocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Invocation/Invocation.php', + 'PHPUnit\\Framework\\MockObject\\InvocationMocker' => $vendorDir . '/phpunit/phpunit-mock-objects/src/InvocationMocker.php', + 'PHPUnit\\Framework\\MockObject\\Invocation\\ObjectInvocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Invocation/ObjectInvocation.php', + 'PHPUnit\\Framework\\MockObject\\Invocation\\StaticInvocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Invocation/StaticInvocation.php', + 'PHPUnit\\Framework\\MockObject\\Invokable' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Invokable.php', + 'PHPUnit\\Framework\\MockObject\\Matcher' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyInvokedCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/AnyInvokedCount.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyParameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/AnyParameters.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\ConsecutiveParameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/ConsecutiveParameters.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\DeferredError' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/DeferredError.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\Invocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/Invocation.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtIndex' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtIndex.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtLeastCount.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastOnce' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtLeastOnce.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtMostCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtMostCount.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedCount.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedRecorder' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedRecorder.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\MethodName' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/MethodName.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\Parameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/Parameters.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\StatelessInvocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/StatelessInvocation.php', + 'PHPUnit\\Framework\\MockObject\\MockBuilder' => $vendorDir . '/phpunit/phpunit-mock-objects/src/MockBuilder.php', + 'PHPUnit\\Framework\\MockObject\\MockObject' => $vendorDir . '/phpunit/phpunit-mock-objects/src/ForwardCompatibility/MockObject.php', + 'PHPUnit\\Framework\\MockObject\\RuntimeException' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Exception/RuntimeException.php', + 'PHPUnit\\Framework\\MockObject\\Stub' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ConsecutiveCalls' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ConsecutiveCalls.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\Exception' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/Exception.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\MatcherCollection' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/MatcherCollection.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnArgument' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ReturnArgument.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnCallback' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ReturnCallback.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnReference' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ReturnReference.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnSelf' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ReturnSelf.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnStub' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ReturnStub.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnValueMap' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ReturnValueMap.php', + 'PHPUnit\\Framework\\MockObject\\Verifiable' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Verifiable.php', 'PHPUnit\\Framework\\OutputError' => $vendorDir . '/phpunit/phpunit/src/Framework/OutputError.php', 'PHPUnit\\Framework\\RiskyTest' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTest.php', 'PHPUnit\\Framework\\RiskyTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTestError.php', @@ -2664,7 +2667,6 @@ return array( 'PHPUnit\\Runner\\TestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/TestHook.php', 'PHPUnit\\Runner\\TestListenerAdapter' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/TestListenerAdapter.php', 'PHPUnit\\Runner\\TestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php', - 'PHPUnit\\Runner\\TestSuiteSorter' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteSorter.php', 'PHPUnit\\Runner\\Version' => $vendorDir . '/phpunit/phpunit/src/Runner/Version.php', 'PHPUnit\\TextUI\\Command' => $vendorDir . '/phpunit/phpunit/src/TextUI/Command.php', 'PHPUnit\\TextUI\\ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/TextUI/ResultPrinter.php', @@ -2699,7 +2701,7 @@ return array( 'PHPUnit\\Util\\Type' => $vendorDir . '/phpunit/phpunit/src/Util/Type.php', 'PHPUnit\\Util\\Xml' => $vendorDir . '/phpunit/phpunit/src/Util/Xml.php', 'PHPUnit\\Util\\XmlTestListRenderer' => $vendorDir . '/phpunit/phpunit/src/Util/XmlTestListRenderer.php', - 'PHPUnit_Framework_MockObject_MockObject' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockObject.php', + 'PHPUnit_Framework_MockObject_MockObject' => $vendorDir . '/phpunit/phpunit-mock-objects/src/MockObject.php', 'PHP_Token' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', 'PHP_TokenWithScope' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', 'PHP_TokenWithScopeAndVisibility' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', @@ -3277,7 +3279,6 @@ return array( 'Psy\\CodeCleaner\\InstanceOfPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/InstanceOfPass.php', 'Psy\\CodeCleaner\\LeavePsyshAlonePass' => $vendorDir . '/psy/psysh/src/CodeCleaner/LeavePsyshAlonePass.php', 'Psy\\CodeCleaner\\LegacyEmptyPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/LegacyEmptyPass.php', - 'Psy\\CodeCleaner\\ListPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/ListPass.php', 'Psy\\CodeCleaner\\LoopContextPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/LoopContextPass.php', 'Psy\\CodeCleaner\\MagicConstantsPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/MagicConstantsPass.php', 'Psy\\CodeCleaner\\NamespaceAwarePass' => $vendorDir . '/psy/psysh/src/CodeCleaner/NamespaceAwarePass.php', @@ -3319,10 +3320,10 @@ return array( 'Psy\\Command\\SudoCommand' => $vendorDir . '/psy/psysh/src/Command/SudoCommand.php', 'Psy\\Command\\ThrowUpCommand' => $vendorDir . '/psy/psysh/src/Command/ThrowUpCommand.php', 'Psy\\Command\\TimeitCommand' => $vendorDir . '/psy/psysh/src/Command/TimeitCommand.php', - 'Psy\\Command\\TimeitCommand\\TimeitVisitor' => $vendorDir . '/psy/psysh/src/Command/TimeitCommand/TimeitVisitor.php', 'Psy\\Command\\TraceCommand' => $vendorDir . '/psy/psysh/src/Command/TraceCommand.php', 'Psy\\Command\\WhereamiCommand' => $vendorDir . '/psy/psysh/src/Command/WhereamiCommand.php', 'Psy\\Command\\WtfCommand' => $vendorDir . '/psy/psysh/src/Command/WtfCommand.php', + 'Psy\\Compiler' => $vendorDir . '/psy/psysh/src/Compiler.php', 'Psy\\ConfigPaths' => $vendorDir . '/psy/psysh/src/ConfigPaths.php', 'Psy\\Configuration' => $vendorDir . '/psy/psysh/src/Configuration.php', 'Psy\\ConsoleColorFactory' => $vendorDir . '/psy/psysh/src/ConsoleColorFactory.php', @@ -3339,7 +3340,6 @@ return array( 'Psy\\Exception\\TypeErrorException' => $vendorDir . '/psy/psysh/src/Exception/TypeErrorException.php', 'Psy\\ExecutionClosure' => $vendorDir . '/psy/psysh/src/ExecutionClosure.php', 'Psy\\ExecutionLoop' => $vendorDir . '/psy/psysh/src/ExecutionLoop.php', - 'Psy\\ExecutionLoopClosure' => $vendorDir . '/psy/psysh/src/ExecutionLoopClosure.php', 'Psy\\ExecutionLoop\\AbstractListener' => $vendorDir . '/psy/psysh/src/ExecutionLoop/AbstractListener.php', 'Psy\\ExecutionLoop\\Listener' => $vendorDir . '/psy/psysh/src/ExecutionLoop/Listener.php', 'Psy\\ExecutionLoop\\ProcessForker' => $vendorDir . '/psy/psysh/src/ExecutionLoop/ProcessForker.php', @@ -3362,9 +3362,7 @@ return array( 'Psy\\Readline\\Libedit' => $vendorDir . '/psy/psysh/src/Readline/Libedit.php', 'Psy\\Readline\\Readline' => $vendorDir . '/psy/psysh/src/Readline/Readline.php', 'Psy\\Readline\\Transient' => $vendorDir . '/psy/psysh/src/Readline/Transient.php', - 'Psy\\Reflection\\ReflectionClassConstant' => $vendorDir . '/psy/psysh/src/Reflection/ReflectionClassConstant.php', 'Psy\\Reflection\\ReflectionConstant' => $vendorDir . '/psy/psysh/src/Reflection/ReflectionConstant.php', - 'Psy\\Reflection\\ReflectionConstant_' => $vendorDir . '/psy/psysh/src/Reflection/ReflectionConstant_.php', 'Psy\\Reflection\\ReflectionLanguageConstruct' => $vendorDir . '/psy/psysh/src/Reflection/ReflectionLanguageConstruct.php', 'Psy\\Reflection\\ReflectionLanguageConstructParameter' => $vendorDir . '/psy/psysh/src/Reflection/ReflectionLanguageConstructParameter.php', 'Psy\\Shell' => $vendorDir . '/psy/psysh/src/Shell.php', @@ -3525,9 +3523,6 @@ return array( 'SebastianBergmann\\Environment\\OperatingSystem' => $vendorDir . '/sebastian/environment/src/OperatingSystem.php', 'SebastianBergmann\\Environment\\Runtime' => $vendorDir . '/sebastian/environment/src/Runtime.php', 'SebastianBergmann\\Exporter\\Exporter' => $vendorDir . '/sebastian/exporter/src/Exporter.php', - 'SebastianBergmann\\FileIterator\\Facade' => $vendorDir . '/phpunit/php-file-iterator/src/Facade.php', - 'SebastianBergmann\\FileIterator\\Factory' => $vendorDir . '/phpunit/php-file-iterator/src/Factory.php', - 'SebastianBergmann\\FileIterator\\Iterator' => $vendorDir . '/phpunit/php-file-iterator/src/Iterator.php', 'SebastianBergmann\\GlobalState\\Blacklist' => $vendorDir . '/sebastian/global-state/src/Blacklist.php', 'SebastianBergmann\\GlobalState\\CodeExporter' => $vendorDir . '/sebastian/global-state/src/CodeExporter.php', 'SebastianBergmann\\GlobalState\\Exception' => $vendorDir . '/sebastian/global-state/src/exceptions/Exception.php', @@ -3548,6 +3543,7 @@ return array( 'SebastianBergmann\\Timer\\RuntimeException' => $vendorDir . '/phpunit/php-timer/src/RuntimeException.php', 'SebastianBergmann\\Timer\\Timer' => $vendorDir . '/phpunit/php-timer/src/Timer.php', 'SebastianBergmann\\Version' => $vendorDir . '/sebastian/version/src/Version.php', + 'SettingCreditSeeder' => $baseDir . '/database/seeds/SettingCreditSeeder.php', 'Symfony\\Component\\Console\\Application' => $vendorDir . '/symfony/console/Application.php', 'Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => $vendorDir . '/symfony/console/CommandLoader/CommandLoaderInterface.php', 'Symfony\\Component\\Console\\CommandLoader\\ContainerCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/ContainerCommandLoader.php', @@ -3575,7 +3571,6 @@ return array( 'Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/console/Exception/InvalidArgumentException.php', 'Symfony\\Component\\Console\\Exception\\InvalidOptionException' => $vendorDir . '/symfony/console/Exception/InvalidOptionException.php', 'Symfony\\Component\\Console\\Exception\\LogicException' => $vendorDir . '/symfony/console/Exception/LogicException.php', - 'Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => $vendorDir . '/symfony/console/Exception/NamespaceNotFoundException.php', 'Symfony\\Component\\Console\\Exception\\RuntimeException' => $vendorDir . '/symfony/console/Exception/RuntimeException.php', 'Symfony\\Component\\Console\\Formatter\\OutputFormatter' => $vendorDir . '/symfony/console/Formatter/OutputFormatter.php', 'Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterInterface.php', @@ -3596,7 +3591,6 @@ return array( 'Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => $vendorDir . '/symfony/console/Helper/SymfonyQuestionHelper.php', 'Symfony\\Component\\Console\\Helper\\Table' => $vendorDir . '/symfony/console/Helper/Table.php', 'Symfony\\Component\\Console\\Helper\\TableCell' => $vendorDir . '/symfony/console/Helper/TableCell.php', - 'Symfony\\Component\\Console\\Helper\\TableRows' => $vendorDir . '/symfony/console/Helper/TableRows.php', 'Symfony\\Component\\Console\\Helper\\TableSeparator' => $vendorDir . '/symfony/console/Helper/TableSeparator.php', 'Symfony\\Component\\Console\\Helper\\TableStyle' => $vendorDir . '/symfony/console/Helper/TableStyle.php', 'Symfony\\Component\\Console\\Input\\ArgvInput' => $vendorDir . '/symfony/console/Input/ArgvInput.php', @@ -3613,7 +3607,6 @@ return array( 'Symfony\\Component\\Console\\Output\\BufferedOutput' => $vendorDir . '/symfony/console/Output/BufferedOutput.php', 'Symfony\\Component\\Console\\Output\\ConsoleOutput' => $vendorDir . '/symfony/console/Output/ConsoleOutput.php', 'Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => $vendorDir . '/symfony/console/Output/ConsoleOutputInterface.php', - 'Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => $vendorDir . '/symfony/console/Output/ConsoleSectionOutput.php', 'Symfony\\Component\\Console\\Output\\NullOutput' => $vendorDir . '/symfony/console/Output/NullOutput.php', 'Symfony\\Component\\Console\\Output\\Output' => $vendorDir . '/symfony/console/Output/Output.php', 'Symfony\\Component\\Console\\Output\\OutputInterface' => $vendorDir . '/symfony/console/Output/OutputInterface.php', @@ -3627,7 +3620,6 @@ return array( 'Symfony\\Component\\Console\\Terminal' => $vendorDir . '/symfony/console/Terminal.php', 'Symfony\\Component\\Console\\Tester\\ApplicationTester' => $vendorDir . '/symfony/console/Tester/ApplicationTester.php', 'Symfony\\Component\\Console\\Tester\\CommandTester' => $vendorDir . '/symfony/console/Tester/CommandTester.php', - 'Symfony\\Component\\Console\\Tester\\TesterTrait' => $vendorDir . '/symfony/console/Tester/TesterTrait.php', 'Symfony\\Component\\CssSelector\\CssSelectorConverter' => $vendorDir . '/symfony/css-selector/CssSelectorConverter.php', 'Symfony\\Component\\CssSelector\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/css-selector/Exception/ExceptionInterface.php', 'Symfony\\Component\\CssSelector\\Exception\\ExpressionErrorException' => $vendorDir . '/symfony/css-selector/Exception/ExpressionErrorException.php', @@ -3734,15 +3726,8 @@ return array( 'Symfony\\Component\\HttpFoundation\\ExpressionRequestMatcher' => $vendorDir . '/symfony/http-foundation/ExpressionRequestMatcher.php', 'Symfony\\Component\\HttpFoundation\\FileBag' => $vendorDir . '/symfony/http-foundation/FileBag.php', 'Symfony\\Component\\HttpFoundation\\File\\Exception\\AccessDeniedException' => $vendorDir . '/symfony/http-foundation/File/Exception/AccessDeniedException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\CannotWriteFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/CannotWriteFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\ExtensionFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/ExtensionFileException.php', 'Symfony\\Component\\HttpFoundation\\File\\Exception\\FileException' => $vendorDir . '/symfony/http-foundation/File/Exception/FileException.php', 'Symfony\\Component\\HttpFoundation\\File\\Exception\\FileNotFoundException' => $vendorDir . '/symfony/http-foundation/File/Exception/FileNotFoundException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\FormSizeFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/FormSizeFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\IniSizeFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/IniSizeFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\NoFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/NoFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\NoTmpDirFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/NoTmpDirFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\PartialFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/PartialFileException.php', 'Symfony\\Component\\HttpFoundation\\File\\Exception\\UnexpectedTypeException' => $vendorDir . '/symfony/http-foundation/File/Exception/UnexpectedTypeException.php', 'Symfony\\Component\\HttpFoundation\\File\\Exception\\UploadException' => $vendorDir . '/symfony/http-foundation/File/Exception/UploadException.php', 'Symfony\\Component\\HttpFoundation\\File\\File' => $vendorDir . '/symfony/http-foundation/File/File.php', @@ -3756,7 +3741,6 @@ return array( 'Symfony\\Component\\HttpFoundation\\File\\Stream' => $vendorDir . '/symfony/http-foundation/File/Stream.php', 'Symfony\\Component\\HttpFoundation\\File\\UploadedFile' => $vendorDir . '/symfony/http-foundation/File/UploadedFile.php', 'Symfony\\Component\\HttpFoundation\\HeaderBag' => $vendorDir . '/symfony/http-foundation/HeaderBag.php', - 'Symfony\\Component\\HttpFoundation\\HeaderUtils' => $vendorDir . '/symfony/http-foundation/HeaderUtils.php', 'Symfony\\Component\\HttpFoundation\\IpUtils' => $vendorDir . '/symfony/http-foundation/IpUtils.php', 'Symfony\\Component\\HttpFoundation\\JsonResponse' => $vendorDir . '/symfony/http-foundation/JsonResponse.php', 'Symfony\\Component\\HttpFoundation\\ParameterBag' => $vendorDir . '/symfony/http-foundation/ParameterBag.php', @@ -3780,12 +3764,10 @@ return array( 'Symfony\\Component\\HttpFoundation\\Session\\SessionInterface' => $vendorDir . '/symfony/http-foundation/Session/SessionInterface.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\AbstractSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MemcachedSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MigratingSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/MigratingSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MongoDbSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NativeFileSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NullSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/NullSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\PdoSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\RedisSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\StrictSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\MetadataBag' => $vendorDir . '/symfony/http-foundation/Session/Storage/MetadataBag.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\MockArraySessionStorage' => $vendorDir . '/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php', @@ -3817,7 +3799,6 @@ return array( 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/RequestValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\ServiceValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/ServiceValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\SessionValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/SessionValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\TraceableValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/TraceableValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\VariadicValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/VariadicValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentValueResolverInterface' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentValueResolverInterface.php', 'Symfony\\Component\\HttpKernel\\Controller\\ContainerControllerResolver' => $vendorDir . '/symfony/http-kernel/Controller/ContainerControllerResolver.php', @@ -3932,7 +3913,6 @@ return array( 'Symfony\\Component\\Process\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/process/Exception/InvalidArgumentException.php', 'Symfony\\Component\\Process\\Exception\\LogicException' => $vendorDir . '/symfony/process/Exception/LogicException.php', 'Symfony\\Component\\Process\\Exception\\ProcessFailedException' => $vendorDir . '/symfony/process/Exception/ProcessFailedException.php', - 'Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => $vendorDir . '/symfony/process/Exception/ProcessSignaledException.php', 'Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => $vendorDir . '/symfony/process/Exception/ProcessTimedOutException.php', 'Symfony\\Component\\Process\\Exception\\RuntimeException' => $vendorDir . '/symfony/process/Exception/RuntimeException.php', 'Symfony\\Component\\Process\\ExecutableFinder' => $vendorDir . '/symfony/process/ExecutableFinder.php', @@ -3979,6 +3959,8 @@ return array( 'Symfony\\Component\\Routing\\Loader\\ProtectedPhpFileLoader' => $vendorDir . '/symfony/routing/Loader/PhpFileLoader.php', 'Symfony\\Component\\Routing\\Loader\\XmlFileLoader' => $vendorDir . '/symfony/routing/Loader/XmlFileLoader.php', 'Symfony\\Component\\Routing\\Loader\\YamlFileLoader' => $vendorDir . '/symfony/routing/Loader/YamlFileLoader.php', + 'Symfony\\Component\\Routing\\Matcher\\Dumper\\DumperCollection' => $vendorDir . '/symfony/routing/Matcher/Dumper/DumperCollection.php', + 'Symfony\\Component\\Routing\\Matcher\\Dumper\\DumperRoute' => $vendorDir . '/symfony/routing/Matcher/Dumper/DumperRoute.php', 'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumper' => $vendorDir . '/symfony/routing/Matcher/Dumper/MatcherDumper.php', 'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumperInterface' => $vendorDir . '/symfony/routing/Matcher/Dumper/MatcherDumperInterface.php', 'Symfony\\Component\\Routing\\Matcher\\Dumper\\PhpMatcherDumper' => $vendorDir . '/symfony/routing/Matcher/Dumper/PhpMatcherDumper.php', @@ -4077,7 +4059,6 @@ return array( 'Symfony\\Component\\VarDumper\\Caster\\EnumStub' => $vendorDir . '/symfony/var-dumper/Caster/EnumStub.php', 'Symfony\\Component\\VarDumper\\Caster\\ExceptionCaster' => $vendorDir . '/symfony/var-dumper/Caster/ExceptionCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\FrameStub' => $vendorDir . '/symfony/var-dumper/Caster/FrameStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\GmpCaster' => $vendorDir . '/symfony/var-dumper/Caster/GmpCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\LinkStub' => $vendorDir . '/symfony/var-dumper/Caster/LinkStub.php', 'Symfony\\Component\\VarDumper\\Caster\\PdoCaster' => $vendorDir . '/symfony/var-dumper/Caster/PdoCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\PgSqlCaster' => $vendorDir . '/symfony/var-dumper/Caster/PgSqlCaster.php', @@ -4097,24 +4078,13 @@ return array( 'Symfony\\Component\\VarDumper\\Cloner\\DumperInterface' => $vendorDir . '/symfony/var-dumper/Cloner/DumperInterface.php', 'Symfony\\Component\\VarDumper\\Cloner\\Stub' => $vendorDir . '/symfony/var-dumper/Cloner/Stub.php', 'Symfony\\Component\\VarDumper\\Cloner\\VarCloner' => $vendorDir . '/symfony/var-dumper/Cloner/VarCloner.php', - 'Symfony\\Component\\VarDumper\\Command\\Descriptor\\CliDescriptor' => $vendorDir . '/symfony/var-dumper/Command/Descriptor/CliDescriptor.php', - 'Symfony\\Component\\VarDumper\\Command\\Descriptor\\DumpDescriptorInterface' => $vendorDir . '/symfony/var-dumper/Command/Descriptor/DumpDescriptorInterface.php', - 'Symfony\\Component\\VarDumper\\Command\\Descriptor\\HtmlDescriptor' => $vendorDir . '/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php', - 'Symfony\\Component\\VarDumper\\Command\\ServerDumpCommand' => $vendorDir . '/symfony/var-dumper/Command/ServerDumpCommand.php', 'Symfony\\Component\\VarDumper\\Dumper\\AbstractDumper' => $vendorDir . '/symfony/var-dumper/Dumper/AbstractDumper.php', 'Symfony\\Component\\VarDumper\\Dumper\\CliDumper' => $vendorDir . '/symfony/var-dumper/Dumper/CliDumper.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\CliContextProvider' => $vendorDir . '/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\ContextProviderInterface' => $vendorDir . '/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\RequestContextProvider' => $vendorDir . '/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\SourceContextProvider' => $vendorDir . '/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php', 'Symfony\\Component\\VarDumper\\Dumper\\DataDumperInterface' => $vendorDir . '/symfony/var-dumper/Dumper/DataDumperInterface.php', 'Symfony\\Component\\VarDumper\\Dumper\\HtmlDumper' => $vendorDir . '/symfony/var-dumper/Dumper/HtmlDumper.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ServerDumper' => $vendorDir . '/symfony/var-dumper/Dumper/ServerDumper.php', 'Symfony\\Component\\VarDumper\\Exception\\ThrowingCasterException' => $vendorDir . '/symfony/var-dumper/Exception/ThrowingCasterException.php', - 'Symfony\\Component\\VarDumper\\Server\\DumpServer' => $vendorDir . '/symfony/var-dumper/Server/DumpServer.php', 'Symfony\\Component\\VarDumper\\Test\\VarDumperTestTrait' => $vendorDir . '/symfony/var-dumper/Test/VarDumperTestTrait.php', 'Symfony\\Component\\VarDumper\\VarDumper' => $vendorDir . '/symfony/var-dumper/VarDumper.php', - 'Symfony\\Polyfill\\Ctype\\Ctype' => $vendorDir . '/symfony/polyfill-ctype/Ctype.php', 'Symfony\\Polyfill\\Mbstring\\Mbstring' => $vendorDir . '/symfony/polyfill-mbstring/Mbstring.php', 'Symfony\\Polyfill\\Php56\\Php56' => $vendorDir . '/symfony/polyfill-php56/Php56.php', 'Symfony\\Polyfill\\Php72\\Php72' => $vendorDir . '/symfony/polyfill-php72/Php72.php', @@ -4134,6 +4104,7 @@ return array( 'Tests\\CreatesApplication' => $baseDir . '/tests/CreatesApplication.php', 'Tests\\DuskTestCase' => $baseDir . '/tests/DuskTestCase.php', 'Tests\\Feature\\BookingTest' => $baseDir . '/tests/Feature/BookingTest.php', + 'Tests\\Feature\\ChinaBankSlipTest' => $baseDir . '/tests/Feature/ChinaBankSlipTest.php', 'Tests\\Feature\\LocaleTest' => $baseDir . '/tests/Feature/LocaleTest.php', 'Tests\\Feature\\LoginTest' => $baseDir . '/tests/Feature/LoginTest.php', 'Tests\\Feature\\MarkingTest' => $baseDir . '/tests/Feature/MarkingTest.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 2ab5c4dc..c5049170 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,14 +4,13 @@ namespace Composer\Autoload; -class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc +class ComposerStaticInit51a2977d18ddf089cd82402f3476f1a0 { public static $files = array ( '6124b4c8570aa390c21fafd04a26c69f' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php', '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', '25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php', '667aeda72477189d0494fecd327c3641' => __DIR__ . '/..' . '/symfony/var-dumper/Resources/functions/dump.php', - '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php', 'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php', '2c102faa651ef8ea5874edb585946bce' => __DIR__ . '/..' . '/swiftmailer/swiftmailer/lib/swift_required.php', 'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php', @@ -54,7 +53,6 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'Symfony\\Polyfill\\Php72\\' => 23, 'Symfony\\Polyfill\\Php56\\' => 23, 'Symfony\\Polyfill\\Mbstring\\' => 26, - 'Symfony\\Polyfill\\Ctype\\' => 23, 'Symfony\\Component\\VarDumper\\' => 28, 'Symfony\\Component\\Translation\\' => 30, 'Symfony\\Component\\Routing\\' => 26, @@ -192,10 +190,6 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc array ( 0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring', ), - 'Symfony\\Polyfill\\Ctype\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-ctype', - ), 'Symfony\\Component\\VarDumper\\' => array ( 0 => __DIR__ . '/..' . '/symfony/var-dumper', @@ -449,6 +443,7 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'App\\Http\\Controllers\\BookingSupplierController' => __DIR__ . '/../..' . '/app/Http/Controllers/BookingSupplierController.php', 'App\\Http\\Controllers\\ChinaBankSlipController' => __DIR__ . '/../..' . '/app/Http/Controllers/ChinaBankSlipController.php', 'App\\Http\\Controllers\\Controller' => __DIR__ . '/../..' . '/app/Http/Controllers/Controller.php', + 'App\\Http\\Controllers\\HomeController' => __DIR__ . '/../..' . '/app/Http/Controllers/HomeController.php', 'App\\Http\\Controllers\\MarkingController' => __DIR__ . '/../..' . '/app/Http/Controllers/MarkingController.php', 'App\\Http\\Controllers\\RateController' => __DIR__ . '/../..' . '/app/Http/Controllers/RateController.php', 'App\\Http\\Controllers\\SettingBeneficiaryController' => __DIR__ . '/../..' . '/app/Http/Controllers/SettingBeneficiaryController.php', @@ -466,6 +461,7 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'App\\Http\\Middleware\\TrimStrings' => __DIR__ . '/../..' . '/app/Http/Middleware/TrimStrings.php', 'App\\Http\\Middleware\\TrustProxies' => __DIR__ . '/../..' . '/app/Http/Middleware/TrustProxies.php', 'App\\Http\\Middleware\\VerifyCsrfToken' => __DIR__ . '/../..' . '/app/Http/Middleware/VerifyCsrfToken.php', + 'App\\Invoice' => __DIR__ . '/../..' . '/app/Invoice.php', 'App\\Marking' => __DIR__ . '/../..' . '/app/Marking.php', 'App\\Notifications\\ResetPassword' => __DIR__ . '/../..' . '/app/Notifications/ResetPassword.php', 'App\\OAuthProvider' => __DIR__ . '/../..' . '/app/OAuthProvider.php', @@ -1538,6 +1534,9 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'Faker\\ValidGenerator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ValidGenerator.php', 'Fideloper\\Proxy\\TrustProxies' => __DIR__ . '/..' . '/fideloper/proxy/src/TrustProxies.php', 'Fideloper\\Proxy\\TrustedProxyServiceProvider' => __DIR__ . '/..' . '/fideloper/proxy/src/TrustedProxyServiceProvider.php', + 'File_Iterator' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Iterator.php', + 'File_Iterator_Facade' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Facade.php', + 'File_Iterator_Factory' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Factory.php', 'GuzzleHttp\\Client' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Client.php', 'GuzzleHttp\\ClientInterface' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/ClientInterface.php', 'GuzzleHttp\\Cookie\\CookieJar' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Cookie/CookieJar.php', @@ -2041,7 +2040,6 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'Illuminate\\Foundation\\Console\\MailMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/MailMakeCommand.php', 'Illuminate\\Foundation\\Console\\ModelMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ModelMakeCommand.php', 'Illuminate\\Foundation\\Console\\NotificationMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/NotificationMakeCommand.php', - 'Illuminate\\Foundation\\Console\\ObserverMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ObserverMakeCommand.php', 'Illuminate\\Foundation\\Console\\PackageDiscoverCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/PackageDiscoverCommand.php', 'Illuminate\\Foundation\\Console\\PolicyMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/PolicyMakeCommand.php', 'Illuminate\\Foundation\\Console\\PresetCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/PresetCommand.php', @@ -2114,7 +2112,6 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'Illuminate\\Foundation\\Testing\\WithoutEvents' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/WithoutEvents.php', 'Illuminate\\Foundation\\Testing\\WithoutMiddleware' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/WithoutMiddleware.php', 'Illuminate\\Foundation\\Validation\\ValidatesRequests' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php', - 'Illuminate\\Hashing\\AbstractHasher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/AbstractHasher.php', 'Illuminate\\Hashing\\ArgonHasher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/ArgonHasher.php', 'Illuminate\\Hashing\\BcryptHasher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php', 'Illuminate\\Hashing\\HashManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/HashManager.php', @@ -3005,50 +3002,50 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'PHPUnit\\Framework\\IncompleteTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTestError.php', 'PHPUnit\\Framework\\InvalidCoversTargetException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php', 'PHPUnit\\Framework\\MissingCoversAnnotationException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php', - 'PHPUnit\\Framework\\MockObject\\BadMethodCallException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/BadMethodCallException.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Identity' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/Identity.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Match' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/Match.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/MethodNameMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\NamespaceMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/NamespaceMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/ParametersMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/Stub.php', - 'PHPUnit\\Framework\\MockObject\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php', - 'PHPUnit\\Framework\\MockObject\\Generator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator.php', - 'PHPUnit\\Framework\\MockObject\\Invocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Invocation/Invocation.php', - 'PHPUnit\\Framework\\MockObject\\InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/InvocationMocker.php', - 'PHPUnit\\Framework\\MockObject\\Invocation\\ObjectInvocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Invocation/ObjectInvocation.php', - 'PHPUnit\\Framework\\MockObject\\Invocation\\StaticInvocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Invocation/StaticInvocation.php', - 'PHPUnit\\Framework\\MockObject\\Invokable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Invokable.php', - 'PHPUnit\\Framework\\MockObject\\Matcher' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyInvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyInvokedCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyParameters' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyParameters.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\ConsecutiveParameters' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/ConsecutiveParameters.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\DeferredError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/DeferredError.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\Invocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/Invocation.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtIndex' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtIndex.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastOnce' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtMostCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtMostCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedRecorder' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedRecorder.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\MethodName' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/MethodName.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\Parameters' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/Parameters.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\StatelessInvocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/StatelessInvocation.php', - 'PHPUnit\\Framework\\MockObject\\MockBuilder' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php', - 'PHPUnit\\Framework\\MockObject\\MockObject' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/ForwardCompatibility/MockObject.php', - 'PHPUnit\\Framework\\MockObject\\RuntimeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/RuntimeException.php', - 'PHPUnit\\Framework\\MockObject\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ConsecutiveCalls' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ConsecutiveCalls.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/Exception.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\MatcherCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/MatcherCollection.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnArgument' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnArgument.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnCallback' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnReference' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnReference.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnSelf' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnSelf.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnStub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnStub.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnValueMap' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnValueMap.php', - 'PHPUnit\\Framework\\MockObject\\Verifiable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Verifiable.php', + 'PHPUnit\\Framework\\MockObject\\BadMethodCallException' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Exception/BadMethodCallException.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\Identity' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/Identity.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/InvocationMocker.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\Match' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/Match.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/MethodNameMatch.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\NamespaceMatch' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/NamespaceMatch.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/ParametersMatch.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/Stub.php', + 'PHPUnit\\Framework\\MockObject\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Exception/Exception.php', + 'PHPUnit\\Framework\\MockObject\\Generator' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Generator.php', + 'PHPUnit\\Framework\\MockObject\\Invocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Invocation/Invocation.php', + 'PHPUnit\\Framework\\MockObject\\InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/InvocationMocker.php', + 'PHPUnit\\Framework\\MockObject\\Invocation\\ObjectInvocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Invocation/ObjectInvocation.php', + 'PHPUnit\\Framework\\MockObject\\Invocation\\StaticInvocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Invocation/StaticInvocation.php', + 'PHPUnit\\Framework\\MockObject\\Invokable' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Invokable.php', + 'PHPUnit\\Framework\\MockObject\\Matcher' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyInvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/AnyInvokedCount.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyParameters' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/AnyParameters.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\ConsecutiveParameters' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/ConsecutiveParameters.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\DeferredError' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/DeferredError.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\Invocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/Invocation.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtIndex' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtIndex.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtLeastCount.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastOnce' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtLeastOnce.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtMostCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtMostCount.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedCount.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedRecorder' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedRecorder.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\MethodName' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/MethodName.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\Parameters' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/Parameters.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\StatelessInvocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/StatelessInvocation.php', + 'PHPUnit\\Framework\\MockObject\\MockBuilder' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/MockBuilder.php', + 'PHPUnit\\Framework\\MockObject\\MockObject' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/ForwardCompatibility/MockObject.php', + 'PHPUnit\\Framework\\MockObject\\RuntimeException' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Exception/RuntimeException.php', + 'PHPUnit\\Framework\\MockObject\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ConsecutiveCalls' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ConsecutiveCalls.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/Exception.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\MatcherCollection' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/MatcherCollection.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnArgument' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ReturnArgument.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnCallback' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ReturnCallback.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnReference' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ReturnReference.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnSelf' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ReturnSelf.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnStub' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ReturnStub.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnValueMap' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ReturnValueMap.php', + 'PHPUnit\\Framework\\MockObject\\Verifiable' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Verifiable.php', 'PHPUnit\\Framework\\OutputError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/OutputError.php', 'PHPUnit\\Framework\\RiskyTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/RiskyTest.php', 'PHPUnit\\Framework\\RiskyTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/RiskyTestError.php', @@ -3092,7 +3089,6 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'PHPUnit\\Runner\\TestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/TestHook.php', 'PHPUnit\\Runner\\TestListenerAdapter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/TestListenerAdapter.php', 'PHPUnit\\Runner\\TestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php', - 'PHPUnit\\Runner\\TestSuiteSorter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestSuiteSorter.php', 'PHPUnit\\Runner\\Version' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Version.php', 'PHPUnit\\TextUI\\Command' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Command.php', 'PHPUnit\\TextUI\\ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/ResultPrinter.php', @@ -3127,7 +3123,7 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'PHPUnit\\Util\\Type' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Type.php', 'PHPUnit\\Util\\Xml' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml.php', 'PHPUnit\\Util\\XmlTestListRenderer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/XmlTestListRenderer.php', - 'PHPUnit_Framework_MockObject_MockObject' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockObject.php', + 'PHPUnit_Framework_MockObject_MockObject' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/MockObject.php', 'PHP_Token' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', 'PHP_TokenWithScope' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', 'PHP_TokenWithScopeAndVisibility' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', @@ -3705,7 +3701,6 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'Psy\\CodeCleaner\\InstanceOfPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/InstanceOfPass.php', 'Psy\\CodeCleaner\\LeavePsyshAlonePass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/LeavePsyshAlonePass.php', 'Psy\\CodeCleaner\\LegacyEmptyPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/LegacyEmptyPass.php', - 'Psy\\CodeCleaner\\ListPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/ListPass.php', 'Psy\\CodeCleaner\\LoopContextPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/LoopContextPass.php', 'Psy\\CodeCleaner\\MagicConstantsPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/MagicConstantsPass.php', 'Psy\\CodeCleaner\\NamespaceAwarePass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/NamespaceAwarePass.php', @@ -3747,10 +3742,10 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'Psy\\Command\\SudoCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/SudoCommand.php', 'Psy\\Command\\ThrowUpCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/ThrowUpCommand.php', 'Psy\\Command\\TimeitCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/TimeitCommand.php', - 'Psy\\Command\\TimeitCommand\\TimeitVisitor' => __DIR__ . '/..' . '/psy/psysh/src/Command/TimeitCommand/TimeitVisitor.php', 'Psy\\Command\\TraceCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/TraceCommand.php', 'Psy\\Command\\WhereamiCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/WhereamiCommand.php', 'Psy\\Command\\WtfCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/WtfCommand.php', + 'Psy\\Compiler' => __DIR__ . '/..' . '/psy/psysh/src/Compiler.php', 'Psy\\ConfigPaths' => __DIR__ . '/..' . '/psy/psysh/src/ConfigPaths.php', 'Psy\\Configuration' => __DIR__ . '/..' . '/psy/psysh/src/Configuration.php', 'Psy\\ConsoleColorFactory' => __DIR__ . '/..' . '/psy/psysh/src/ConsoleColorFactory.php', @@ -3767,7 +3762,6 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'Psy\\Exception\\TypeErrorException' => __DIR__ . '/..' . '/psy/psysh/src/Exception/TypeErrorException.php', 'Psy\\ExecutionClosure' => __DIR__ . '/..' . '/psy/psysh/src/ExecutionClosure.php', 'Psy\\ExecutionLoop' => __DIR__ . '/..' . '/psy/psysh/src/ExecutionLoop.php', - 'Psy\\ExecutionLoopClosure' => __DIR__ . '/..' . '/psy/psysh/src/ExecutionLoopClosure.php', 'Psy\\ExecutionLoop\\AbstractListener' => __DIR__ . '/..' . '/psy/psysh/src/ExecutionLoop/AbstractListener.php', 'Psy\\ExecutionLoop\\Listener' => __DIR__ . '/..' . '/psy/psysh/src/ExecutionLoop/Listener.php', 'Psy\\ExecutionLoop\\ProcessForker' => __DIR__ . '/..' . '/psy/psysh/src/ExecutionLoop/ProcessForker.php', @@ -3790,9 +3784,7 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'Psy\\Readline\\Libedit' => __DIR__ . '/..' . '/psy/psysh/src/Readline/Libedit.php', 'Psy\\Readline\\Readline' => __DIR__ . '/..' . '/psy/psysh/src/Readline/Readline.php', 'Psy\\Readline\\Transient' => __DIR__ . '/..' . '/psy/psysh/src/Readline/Transient.php', - 'Psy\\Reflection\\ReflectionClassConstant' => __DIR__ . '/..' . '/psy/psysh/src/Reflection/ReflectionClassConstant.php', 'Psy\\Reflection\\ReflectionConstant' => __DIR__ . '/..' . '/psy/psysh/src/Reflection/ReflectionConstant.php', - 'Psy\\Reflection\\ReflectionConstant_' => __DIR__ . '/..' . '/psy/psysh/src/Reflection/ReflectionConstant_.php', 'Psy\\Reflection\\ReflectionLanguageConstruct' => __DIR__ . '/..' . '/psy/psysh/src/Reflection/ReflectionLanguageConstruct.php', 'Psy\\Reflection\\ReflectionLanguageConstructParameter' => __DIR__ . '/..' . '/psy/psysh/src/Reflection/ReflectionLanguageConstructParameter.php', 'Psy\\Shell' => __DIR__ . '/..' . '/psy/psysh/src/Shell.php', @@ -3953,9 +3945,6 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'SebastianBergmann\\Environment\\OperatingSystem' => __DIR__ . '/..' . '/sebastian/environment/src/OperatingSystem.php', 'SebastianBergmann\\Environment\\Runtime' => __DIR__ . '/..' . '/sebastian/environment/src/Runtime.php', 'SebastianBergmann\\Exporter\\Exporter' => __DIR__ . '/..' . '/sebastian/exporter/src/Exporter.php', - 'SebastianBergmann\\FileIterator\\Facade' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Facade.php', - 'SebastianBergmann\\FileIterator\\Factory' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Factory.php', - 'SebastianBergmann\\FileIterator\\Iterator' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Iterator.php', 'SebastianBergmann\\GlobalState\\Blacklist' => __DIR__ . '/..' . '/sebastian/global-state/src/Blacklist.php', 'SebastianBergmann\\GlobalState\\CodeExporter' => __DIR__ . '/..' . '/sebastian/global-state/src/CodeExporter.php', 'SebastianBergmann\\GlobalState\\Exception' => __DIR__ . '/..' . '/sebastian/global-state/src/exceptions/Exception.php', @@ -3976,6 +3965,7 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'SebastianBergmann\\Timer\\RuntimeException' => __DIR__ . '/..' . '/phpunit/php-timer/src/RuntimeException.php', 'SebastianBergmann\\Timer\\Timer' => __DIR__ . '/..' . '/phpunit/php-timer/src/Timer.php', 'SebastianBergmann\\Version' => __DIR__ . '/..' . '/sebastian/version/src/Version.php', + 'SettingCreditSeeder' => __DIR__ . '/../..' . '/database/seeds/SettingCreditSeeder.php', 'Symfony\\Component\\Console\\Application' => __DIR__ . '/..' . '/symfony/console/Application.php', 'Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => __DIR__ . '/..' . '/symfony/console/CommandLoader/CommandLoaderInterface.php', 'Symfony\\Component\\Console\\CommandLoader\\ContainerCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/ContainerCommandLoader.php', @@ -4003,7 +3993,6 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidArgumentException.php', 'Symfony\\Component\\Console\\Exception\\InvalidOptionException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidOptionException.php', 'Symfony\\Component\\Console\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/console/Exception/LogicException.php', - 'Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/NamespaceNotFoundException.php', 'Symfony\\Component\\Console\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/console/Exception/RuntimeException.php', 'Symfony\\Component\\Console\\Formatter\\OutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatter.php', 'Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterInterface.php', @@ -4024,7 +4013,6 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/SymfonyQuestionHelper.php', 'Symfony\\Component\\Console\\Helper\\Table' => __DIR__ . '/..' . '/symfony/console/Helper/Table.php', 'Symfony\\Component\\Console\\Helper\\TableCell' => __DIR__ . '/..' . '/symfony/console/Helper/TableCell.php', - 'Symfony\\Component\\Console\\Helper\\TableRows' => __DIR__ . '/..' . '/symfony/console/Helper/TableRows.php', 'Symfony\\Component\\Console\\Helper\\TableSeparator' => __DIR__ . '/..' . '/symfony/console/Helper/TableSeparator.php', 'Symfony\\Component\\Console\\Helper\\TableStyle' => __DIR__ . '/..' . '/symfony/console/Helper/TableStyle.php', 'Symfony\\Component\\Console\\Input\\ArgvInput' => __DIR__ . '/..' . '/symfony/console/Input/ArgvInput.php', @@ -4041,7 +4029,6 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'Symfony\\Component\\Console\\Output\\BufferedOutput' => __DIR__ . '/..' . '/symfony/console/Output/BufferedOutput.php', 'Symfony\\Component\\Console\\Output\\ConsoleOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutput.php', 'Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutputInterface.php', - 'Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleSectionOutput.php', 'Symfony\\Component\\Console\\Output\\NullOutput' => __DIR__ . '/..' . '/symfony/console/Output/NullOutput.php', 'Symfony\\Component\\Console\\Output\\Output' => __DIR__ . '/..' . '/symfony/console/Output/Output.php', 'Symfony\\Component\\Console\\Output\\OutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/OutputInterface.php', @@ -4055,7 +4042,6 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'Symfony\\Component\\Console\\Terminal' => __DIR__ . '/..' . '/symfony/console/Terminal.php', 'Symfony\\Component\\Console\\Tester\\ApplicationTester' => __DIR__ . '/..' . '/symfony/console/Tester/ApplicationTester.php', 'Symfony\\Component\\Console\\Tester\\CommandTester' => __DIR__ . '/..' . '/symfony/console/Tester/CommandTester.php', - 'Symfony\\Component\\Console\\Tester\\TesterTrait' => __DIR__ . '/..' . '/symfony/console/Tester/TesterTrait.php', 'Symfony\\Component\\CssSelector\\CssSelectorConverter' => __DIR__ . '/..' . '/symfony/css-selector/CssSelectorConverter.php', 'Symfony\\Component\\CssSelector\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/css-selector/Exception/ExceptionInterface.php', 'Symfony\\Component\\CssSelector\\Exception\\ExpressionErrorException' => __DIR__ . '/..' . '/symfony/css-selector/Exception/ExpressionErrorException.php', @@ -4162,15 +4148,8 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'Symfony\\Component\\HttpFoundation\\ExpressionRequestMatcher' => __DIR__ . '/..' . '/symfony/http-foundation/ExpressionRequestMatcher.php', 'Symfony\\Component\\HttpFoundation\\FileBag' => __DIR__ . '/..' . '/symfony/http-foundation/FileBag.php', 'Symfony\\Component\\HttpFoundation\\File\\Exception\\AccessDeniedException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/AccessDeniedException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\CannotWriteFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/CannotWriteFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\ExtensionFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/ExtensionFileException.php', 'Symfony\\Component\\HttpFoundation\\File\\Exception\\FileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/FileException.php', 'Symfony\\Component\\HttpFoundation\\File\\Exception\\FileNotFoundException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/FileNotFoundException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\FormSizeFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/FormSizeFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\IniSizeFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/IniSizeFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\NoFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/NoFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\NoTmpDirFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/NoTmpDirFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\PartialFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/PartialFileException.php', 'Symfony\\Component\\HttpFoundation\\File\\Exception\\UnexpectedTypeException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/UnexpectedTypeException.php', 'Symfony\\Component\\HttpFoundation\\File\\Exception\\UploadException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/UploadException.php', 'Symfony\\Component\\HttpFoundation\\File\\File' => __DIR__ . '/..' . '/symfony/http-foundation/File/File.php', @@ -4184,7 +4163,6 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'Symfony\\Component\\HttpFoundation\\File\\Stream' => __DIR__ . '/..' . '/symfony/http-foundation/File/Stream.php', 'Symfony\\Component\\HttpFoundation\\File\\UploadedFile' => __DIR__ . '/..' . '/symfony/http-foundation/File/UploadedFile.php', 'Symfony\\Component\\HttpFoundation\\HeaderBag' => __DIR__ . '/..' . '/symfony/http-foundation/HeaderBag.php', - 'Symfony\\Component\\HttpFoundation\\HeaderUtils' => __DIR__ . '/..' . '/symfony/http-foundation/HeaderUtils.php', 'Symfony\\Component\\HttpFoundation\\IpUtils' => __DIR__ . '/..' . '/symfony/http-foundation/IpUtils.php', 'Symfony\\Component\\HttpFoundation\\JsonResponse' => __DIR__ . '/..' . '/symfony/http-foundation/JsonResponse.php', 'Symfony\\Component\\HttpFoundation\\ParameterBag' => __DIR__ . '/..' . '/symfony/http-foundation/ParameterBag.php', @@ -4208,12 +4186,10 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'Symfony\\Component\\HttpFoundation\\Session\\SessionInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/SessionInterface.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\AbstractSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MemcachedSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MigratingSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/MigratingSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MongoDbSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NativeFileSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NullSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/NullSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\PdoSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\RedisSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\StrictSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\MetadataBag' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/MetadataBag.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\MockArraySessionStorage' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php', @@ -4245,7 +4221,6 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/RequestValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\ServiceValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/ServiceValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\SessionValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/SessionValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\TraceableValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/TraceableValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\VariadicValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/VariadicValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentValueResolverInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentValueResolverInterface.php', 'Symfony\\Component\\HttpKernel\\Controller\\ContainerControllerResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ContainerControllerResolver.php', @@ -4360,7 +4335,6 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'Symfony\\Component\\Process\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/process/Exception/InvalidArgumentException.php', 'Symfony\\Component\\Process\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/process/Exception/LogicException.php', 'Symfony\\Component\\Process\\Exception\\ProcessFailedException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessFailedException.php', - 'Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessSignaledException.php', 'Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessTimedOutException.php', 'Symfony\\Component\\Process\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/process/Exception/RuntimeException.php', 'Symfony\\Component\\Process\\ExecutableFinder' => __DIR__ . '/..' . '/symfony/process/ExecutableFinder.php', @@ -4407,6 +4381,8 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'Symfony\\Component\\Routing\\Loader\\ProtectedPhpFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/PhpFileLoader.php', 'Symfony\\Component\\Routing\\Loader\\XmlFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/XmlFileLoader.php', 'Symfony\\Component\\Routing\\Loader\\YamlFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/YamlFileLoader.php', + 'Symfony\\Component\\Routing\\Matcher\\Dumper\\DumperCollection' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/DumperCollection.php', + 'Symfony\\Component\\Routing\\Matcher\\Dumper\\DumperRoute' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/DumperRoute.php', 'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumper' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/MatcherDumper.php', 'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumperInterface' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/MatcherDumperInterface.php', 'Symfony\\Component\\Routing\\Matcher\\Dumper\\PhpMatcherDumper' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/PhpMatcherDumper.php', @@ -4505,7 +4481,6 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'Symfony\\Component\\VarDumper\\Caster\\EnumStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/EnumStub.php', 'Symfony\\Component\\VarDumper\\Caster\\ExceptionCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ExceptionCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\FrameStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/FrameStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\GmpCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/GmpCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\LinkStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/LinkStub.php', 'Symfony\\Component\\VarDumper\\Caster\\PdoCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/PdoCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\PgSqlCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/PgSqlCaster.php', @@ -4525,24 +4500,13 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'Symfony\\Component\\VarDumper\\Cloner\\DumperInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/DumperInterface.php', 'Symfony\\Component\\VarDumper\\Cloner\\Stub' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/Stub.php', 'Symfony\\Component\\VarDumper\\Cloner\\VarCloner' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/VarCloner.php', - 'Symfony\\Component\\VarDumper\\Command\\Descriptor\\CliDescriptor' => __DIR__ . '/..' . '/symfony/var-dumper/Command/Descriptor/CliDescriptor.php', - 'Symfony\\Component\\VarDumper\\Command\\Descriptor\\DumpDescriptorInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Command/Descriptor/DumpDescriptorInterface.php', - 'Symfony\\Component\\VarDumper\\Command\\Descriptor\\HtmlDescriptor' => __DIR__ . '/..' . '/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php', - 'Symfony\\Component\\VarDumper\\Command\\ServerDumpCommand' => __DIR__ . '/..' . '/symfony/var-dumper/Command/ServerDumpCommand.php', 'Symfony\\Component\\VarDumper\\Dumper\\AbstractDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/AbstractDumper.php', 'Symfony\\Component\\VarDumper\\Dumper\\CliDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/CliDumper.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\CliContextProvider' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\ContextProviderInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\RequestContextProvider' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\SourceContextProvider' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php', 'Symfony\\Component\\VarDumper\\Dumper\\DataDumperInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/DataDumperInterface.php', 'Symfony\\Component\\VarDumper\\Dumper\\HtmlDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/HtmlDumper.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ServerDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ServerDumper.php', 'Symfony\\Component\\VarDumper\\Exception\\ThrowingCasterException' => __DIR__ . '/..' . '/symfony/var-dumper/Exception/ThrowingCasterException.php', - 'Symfony\\Component\\VarDumper\\Server\\DumpServer' => __DIR__ . '/..' . '/symfony/var-dumper/Server/DumpServer.php', 'Symfony\\Component\\VarDumper\\Test\\VarDumperTestTrait' => __DIR__ . '/..' . '/symfony/var-dumper/Test/VarDumperTestTrait.php', 'Symfony\\Component\\VarDumper\\VarDumper' => __DIR__ . '/..' . '/symfony/var-dumper/VarDumper.php', - 'Symfony\\Polyfill\\Ctype\\Ctype' => __DIR__ . '/..' . '/symfony/polyfill-ctype/Ctype.php', 'Symfony\\Polyfill\\Mbstring\\Mbstring' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/Mbstring.php', 'Symfony\\Polyfill\\Php56\\Php56' => __DIR__ . '/..' . '/symfony/polyfill-php56/Php56.php', 'Symfony\\Polyfill\\Php72\\Php72' => __DIR__ . '/..' . '/symfony/polyfill-php72/Php72.php', @@ -4562,6 +4526,7 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'Tests\\CreatesApplication' => __DIR__ . '/../..' . '/tests/CreatesApplication.php', 'Tests\\DuskTestCase' => __DIR__ . '/../..' . '/tests/DuskTestCase.php', 'Tests\\Feature\\BookingTest' => __DIR__ . '/../..' . '/tests/Feature/BookingTest.php', + 'Tests\\Feature\\ChinaBankSlipTest' => __DIR__ . '/../..' . '/tests/Feature/ChinaBankSlipTest.php', 'Tests\\Feature\\LocaleTest' => __DIR__ . '/../..' . '/tests/Feature/LocaleTest.php', 'Tests\\Feature\\LoginTest' => __DIR__ . '/../..' . '/tests/Feature/LoginTest.php', 'Tests\\Feature\\MarkingTest' => __DIR__ . '/../..' . '/tests/Feature/MarkingTest.php', @@ -4760,10 +4725,10 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc::$prefixDirsPsr4; - $loader->prefixesPsr0 = ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc::$prefixesPsr0; - $loader->classMap = ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit51a2977d18ddf089cd82402f3476f1a0::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit51a2977d18ddf089cd82402f3476f1a0::$prefixDirsPsr4; + $loader->prefixesPsr0 = ComposerStaticInit51a2977d18ddf089cd82402f3476f1a0::$prefixesPsr0; + $loader->classMap = ComposerStaticInit51a2977d18ddf089cd82402f3476f1a0::$classMap; }, null, ClassLoader::class); } From 5f053577df2ce0fd7b6a9acfef06b2bf19549cd5 Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Wed, 27 Jun 2018 10:12:35 +0800 Subject: [PATCH 31/37] removed viewCustomerBookingDetails, it was done in bookingController --- .../Controllers/BookingSupplierController.php | 20 ++----------------- routes/api.php | 3 +-- 2 files changed, 3 insertions(+), 20 deletions(-) diff --git a/app/Http/Controllers/BookingSupplierController.php b/app/Http/Controllers/BookingSupplierController.php index 1eb32af0..0193e12c 100644 --- a/app/Http/Controllers/BookingSupplierController.php +++ b/app/Http/Controllers/BookingSupplierController.php @@ -21,7 +21,7 @@ class BookingSupplierController extends Controller $response = [ 'supplier-booking' => $bookingsupplier ]; - + return response()->json($response, 200); } @@ -32,26 +32,10 @@ class BookingSupplierController extends Controller $response = [ 'supplier-booking' => $bookingsupplier ]; + return response()->json($response, 200); } - //single booking detail : one customer bank slip - public function viewCustomerBookingDetail (Request $request, $id ) - { - // display all booking that is already uploaded user bankin slip - // TODO: admin can access only - // get current booking - - // $booking = Booking::where("admin_id", Auth::user()->id)->where('id', $id)->first(); - if (!$booking) - { - return response()->json(['message'=>'Access denied'], 200); - } - return response()->json($booking, 200); - - } - - public function store(Request $request, $id) { //Calculation part diff --git a/routes/api.php b/routes/api.php index 48dd5ea0..66daf648 100644 --- a/routes/api.php +++ b/routes/api.php @@ -92,10 +92,9 @@ Route::group(['middleware' => ['role:admin']], function() { Route::get('marking/{beneficiary}', 'MarkingController@show'); Route::put('marking/{beneficiary}', 'MarkingController@update'); Route::delete('marking/{beneficiary}', 'MarkingController@delete'); - + Route::get('supplier-booking', 'BookingSupplierController@index'); Route::get('supplier-booking/{id}', 'BookingSupplierController@show'); - Route::get('supplier-booking/{id}', 'BookingSupplierController@viewCustomerBookingDetail'); Route::post('supplier-booking', 'BookingSupplierController@store'); Route::put('supplier-booking/{id}', 'BookingSupplierController@update'); Route::delete('supplier-booking/{id}', 'BookingSupplierController@destroy'); From b7f258f6a9162448a31506b37c5602e56985c3b3 Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Wed, 27 Jun 2018 10:30:01 +0800 Subject: [PATCH 32/37] refactor BookingsupplierController fix booking supplier model updated fields for bookg supplier frontend --- app/Booking.php | 5 +- app/BookingSupplier.php | 5 +- app/Http/Controllers/BookingController.php | 2 +- .../Controllers/BookingSupplierController.php | 23 ++- .../pages/admin/booking/supplierBooking.vue | 146 +++++++++--------- 5 files changed, 91 insertions(+), 90 deletions(-) diff --git a/app/Booking.php b/app/Booking.php index b03276d9..fec84e1c 100644 --- a/app/Booking.php +++ b/app/Booking.php @@ -28,11 +28,14 @@ class Booking extends Model public $timestamps = true; - public function user(){ return $this->belongsTo('app\User'); } + public function bookingSupplier(){ + return $this->belongsTo('app\BookingSupplier '); + } + public function userBankSlip(){ return $this->hasOne(UserBankSlip::class); } diff --git a/app/BookingSupplier.php b/app/BookingSupplier.php index aed75bc1..dbf1de39 100644 --- a/app/BookingSupplier.php +++ b/app/BookingSupplier.php @@ -15,12 +15,11 @@ class BookingSupplier extends Model return $this->belongsTo('app\User'); } - public function bookingSupplier() - { + public function booking(){ return $this->hasOne('App\Booking'); } - public function supplierbookingitem() + public function supplierBookingTtem() { return $this->hasMany('App\SupplierBookingItem'); } diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index f190aefb..f893d614 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -164,9 +164,9 @@ class BookingController extends Controller public function store(Request $request) { - $rates = Rate::orderby('updated_at','desc')->first(); $term = $request->input('term'); $amount = $request->input("amount"); // in RMB + $rates = Rate::orderby('updated_at','desc')->first(); $creditLimit = SettingCredit::orderby('updated_at','desc')->first(); if (!$creditLimit){ diff --git a/app/Http/Controllers/BookingSupplierController.php b/app/Http/Controllers/BookingSupplierController.php index 0193e12c..9e3640ed 100644 --- a/app/Http/Controllers/BookingSupplierController.php +++ b/app/Http/Controllers/BookingSupplierController.php @@ -36,37 +36,44 @@ class BookingSupplierController extends Controller return response()->json($response, 200); } + // Only for single booking + // TODO : Multiple booking public function store(Request $request, $id) { - //Calculation part - //single booking supplier $payment_amount = $request->input("payment_amount"); $rate = $request->input("rate"); $rebate = $request->input("rebate"); - + $supplier_id = $request->input("supplier_id"); + + // Calculation $amountInRMB = $payment_amount * $rate; $billing = 0.015 * $payment_amount; $sales_tax = 0.10 * $payment_amount; - $gst = 0 * $payment_amount; + $gst = 0 * $payment_amount; // do we still need this ? $customerBankInAmount = round($payment_amount + $gst + $sales_tax + $billing,2); $rmbBankAmount = $customerBankInAmount + $rebate; $user = Auth::user(); + $supplier = SettingSupplier::find($supplier_id); + $booking = Booking::find($id); + $bookingsupplier = new BookingSupplier(); - - $supplier = SettingSupplier::find($id); $bookingsupplier->supplier_id = $supplier->id; - $bookingsupplier->payment_method = $request->input('payment_method'); $bookingsupplier->payment_amount = $request->input('payment_amount'); $bookingsupplier->rate = $request->input('rate'); $bookingsupplier->rebate = $request->input('rebate'); - $bookingsupplier->user()->associate($user); $bookingsupplier->amountInRMB = $amountInRMB; $bookingsupplier->rmbBankAmount = $rmbBankAmount; + $bookingsupplier->booking()->associate($booking); $bookingsupplier->save(); + // update booking status + $booking->status = 4; + $booking->admin_status = 3; + $booking->save(); + //// one bookingsupplier has many booking // $bookings = $request->input("booking"); // foreach ($bookings as $booking) diff --git a/resources/assets/js/pages/admin/booking/supplierBooking.vue b/resources/assets/js/pages/admin/booking/supplierBooking.vue index 095440a9..f393a329 100644 --- a/resources/assets/js/pages/admin/booking/supplierBooking.vue +++ b/resources/assets/js/pages/admin/booking/supplierBooking.vue @@ -19,7 +19,7 @@
- +
@@ -147,7 +147,9 @@
@@ -199,41 +201,32 @@ - -
- - - - - - - - - - - - - - - - - - - Generate Report - -
-
+ +
- - + + + + + + + + + + + + + + + + + + Generate Report + +
+
-
@@ -256,7 +249,7 @@ return { status: 3, loading_btn: false, - booking_details:{ + booking_details: { id: null, amount: null, bia: null, @@ -264,7 +257,7 @@ }, supplier: null, supplier_options: null, - supplierBookingForm:{ + supplierBookingForm: { supplier: null, amount: null, rate: null, @@ -276,62 +269,62 @@ required: true, message: 'Please input amount', trigger: 'change' - } ], - amount: [{ + }], + rebate: [{ required: true, message: 'Please input bank name', trigger: 'change' - } ], + }], rate: [{ required: true, message: 'Please input account name', trigger: 'change' }], - transfer_amount: [{ + payment_amount: [{ required: true, message: 'Please input branch', trigger: 'change' }] - }, + }, } }, - beforeCreate () { - const loading = this.$loading({ - lock: true, - text: 'Please wait..', - spinner: 'el-icon-loading', - background: 'rgba(0, 0, 0, 0.7)' - }) - - axios - .get('/api/admin/booking/' + this.$route.params.id) - .then((response) => { - loading.close() - this.booking_details = response.data - }).catch((error) => { - console.log(error) - loading.close() - this.$router.push({ - name: 'notfound' - }) + beforeCreate() { + const loading = this.$loading({ + lock: true, + text: 'Please wait..', + spinner: 'el-icon-loading', + background: 'rgba(0, 0, 0, 0.7)' }) - axios - .get('/api/setting-supplier/') - .then((response) => { - loading.close() - this.supplier_options = response.data - }).catch((error) => { - loading.close() - console.log(error) - this.$router.push({ - name: 'notfound' + axios + .get('/api/admin/booking/' + this.$route.params.id) + .then((response) => { + loading.close() + this.booking_details = response.data + }).catch((error) => { + console.log(error) + loading.close() + this.$router.push({ + name: 'notfound' + }) }) - }) - - }, + + axios + .get('/api/setting-supplier/') + .then((response) => { + loading.close() + this.supplier_options = response.data + }).catch((error) => { + loading.close() + console.log(error) + this.$router.push({ + name: 'notfound' + }) + }) + + }, methods: { - generateReport (formName) { + generateReport(formName) { this.loading_btn = true this.$refs[formName].validate((valid) => { @@ -360,9 +353,8 @@ // this.loading = false // console.log(error) // }) - - } - else{ + + } else { this.loading_btn = false } }) From 544d414deecd38e938f707682a9b50bb25a15dfc Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Wed, 27 Jun 2018 10:30:56 +0800 Subject: [PATCH 33/37] remove destroy function for bookingsupplier --- app/Http/Controllers/BookingSupplierController.php | 4 ---- routes/api.php | 1 - 2 files changed, 5 deletions(-) diff --git a/app/Http/Controllers/BookingSupplierController.php b/app/Http/Controllers/BookingSupplierController.php index 9e3640ed..9b40749a 100644 --- a/app/Http/Controllers/BookingSupplierController.php +++ b/app/Http/Controllers/BookingSupplierController.php @@ -132,10 +132,6 @@ class BookingSupplierController extends Controller return response()->json(['book_id'=>$book_id],201); } - public function destroy(BookingSupplier $id) - { - $id->delete($id); - } public function supplierbookingreport(Request $request, $id) { diff --git a/routes/api.php b/routes/api.php index 66daf648..e62fe183 100644 --- a/routes/api.php +++ b/routes/api.php @@ -97,7 +97,6 @@ Route::group(['middleware' => ['role:admin']], function() { Route::get('supplier-booking/{id}', 'BookingSupplierController@show'); Route::post('supplier-booking', 'BookingSupplierController@store'); Route::put('supplier-booking/{id}', 'BookingSupplierController@update'); - Route::delete('supplier-booking/{id}', 'BookingSupplierController@destroy'); }); Route::get('update-rate', 'RateController@index'); From b3cf440c4bcc5ecdf6c6c6e078fc31b04952d4ee Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Wed, 27 Jun 2018 10:46:15 +0800 Subject: [PATCH 34/37] updated supplier booking controller --- .../Controllers/BookingSupplierController.php | 30 ++----------------- 1 file changed, 3 insertions(+), 27 deletions(-) diff --git a/app/Http/Controllers/BookingSupplierController.php b/app/Http/Controllers/BookingSupplierController.php index 9b40749a..6c986da3 100644 --- a/app/Http/Controllers/BookingSupplierController.php +++ b/app/Http/Controllers/BookingSupplierController.php @@ -133,35 +133,11 @@ class BookingSupplierController extends Controller } - public function supplierbookingreport(Request $request, $id) + public function report(Request $request, $id) { - $bookingsupplier = BookingSupplier::where("admin_id", Auth::user()->id)->where('id', $id)->first(); - if (!$bookingsupplier) - { - return response()->json(['message'=>'Access denied'], 200); - } + $supplier_booking = Booking::firstOrFail($id)->supplierBooking()->firstOrFail(); - // //get customer booking id, date,amount, rate, total, gst, rebate, bank in amount, beneficiary account number, bank slip. - // return BookingSupplier::find($id); - - // //display report - // $bookingsupplier = BookingSupplier::with (['supplier_bookings' => function($query){ - // $query -> select ('book_id','date','transfer_amount','rate','rebate', 'amountInRMB', 'rmbBankAmount'); - // }])->get(); - - // //get uploaded customer booking bank slip - // $userbankslip = UserBankSlip::with (['user_bank_slips' => function($query){ - // $query -> select ('book_id','bankslip_url'); - // }])->get(); - - // //get active beneficiary account - // $beneficiary = SettingBeneficiary::with (['setting_beneficiaries' => function($query){ - // $query -> select ('bank_name','acc_no'); - // }])->get(); - - $supplier_booking = $booking->supplierBooking()->first(); - $user_bankslip = $booking->userBankSlip()->first(); - + return response()->json($supplier_booking ,200); } From d1ce576109cad15fc4432fd9ff9743ce42f12ae1 Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Wed, 27 Jun 2018 12:01:49 +0800 Subject: [PATCH 35/37] changed model from bookingsupplier to supplier booking fix supplier booking controller make payment method nullable for supplier booking --- .../Controllers/BookingSupplierController.php | 44 ++++++++-------- .../Controllers/SettingSupplierController.php | 2 +- ...ookingSupplier.php => SupplierBooking.php} | 2 +- ...18_06_21_025734_supplier_booking_table.php | 2 +- ...hod_nulltable_in_supplierbooking_table.php | 31 +++++++++++ .../pages/admin/booking/supplierBooking.vue | 51 ++++++++++--------- resources/assets/js/router/routes.js | 14 ++--- vendor/composer/autoload_classmap.php | 2 +- vendor/composer/autoload_static.php | 2 +- 9 files changed, 94 insertions(+), 56 deletions(-) rename app/{BookingSupplier.php => SupplierBooking.php} (93%) create mode 100644 database/migrations/2018_06_27_035705_make_paymentmethod_nulltable_in_supplierbooking_table.php diff --git a/app/Http/Controllers/BookingSupplierController.php b/app/Http/Controllers/BookingSupplierController.php index 6c986da3..101359b8 100644 --- a/app/Http/Controllers/BookingSupplierController.php +++ b/app/Http/Controllers/BookingSupplierController.php @@ -2,13 +2,15 @@ namespace App\Http\Controllers; -use App\BookingSupplier; +use Auth; +use App\SupplierBooking; use App\Booking; use App\Rate; use App\User; use App\UserBankSlip; use App\SettingBeneficiary; use App\SupplierBookingItem; +use App\SettingSupplier; use Illuminate\Http\Request; class BookingSupplierController extends Controller @@ -16,7 +18,7 @@ class BookingSupplierController extends Controller public function index() { - $bookingsupplier = BookingSupplier::all(); + $bookingsupplier = SupplierBooking::all(); $response = [ 'supplier-booking' => $bookingsupplier @@ -27,7 +29,7 @@ class BookingSupplierController extends Controller public function show($id) { - $bookingsupplier = BookingSupplier::has('supplier-booking')->findOrFail($id); + $bookingsupplier = SupplierBooking::has('supplier-booking')->findOrFail($id); $response = [ 'supplier-booking' => $bookingsupplier @@ -38,35 +40,35 @@ class BookingSupplierController extends Controller // Only for single booking // TODO : Multiple booking - public function store(Request $request, $id) + public function store(Request $request) { - $payment_amount = $request->input("payment_amount"); - $rate = $request->input("rate"); - $rebate = $request->input("rebate"); + $transfer_amount = $request->input("transfer_amount"); $supplier_id = $request->input("supplier_id"); + $booking_id = $request->input("booking_id"); + $rate = $request->input('rate'); + $rebate = $request->input('rebate'); // Calculation - $amountInRMB = $payment_amount * $rate; - $billing = 0.015 * $payment_amount; - $sales_tax = 0.10 * $payment_amount; - $gst = 0 * $payment_amount; // do we still need this ? - $customerBankInAmount = round($payment_amount + $gst + $sales_tax + $billing,2); + $amountInRMB = $transfer_amount * $rate; + $billing = 0.015 * $transfer_amount; + $sales_tax = 0.10 * $transfer_amount; + $gst = 0 * $transfer_amount; // do we still need this ? + $customerBankInAmount = round($transfer_amount + $gst + $sales_tax + $billing,2); $rmbBankAmount = $customerBankInAmount + $rebate; $user = Auth::user(); $supplier = SettingSupplier::find($supplier_id); - $booking = Booking::find($id); + $booking = Booking::find($booking_id); - $bookingsupplier = new BookingSupplier(); + $bookingsupplier = new SupplierBooking(); $bookingsupplier->supplier_id = $supplier->id; $bookingsupplier->payment_method = $request->input('payment_method'); - $bookingsupplier->payment_amount = $request->input('payment_amount'); - $bookingsupplier->rate = $request->input('rate'); - $bookingsupplier->rebate = $request->input('rebate'); - $bookingsupplier->user()->associate($user); + $bookingsupplier->transfer_amount = $transfer_amount; + $bookingsupplier->rate = $rate; + $bookingsupplier->rebate = $rebate; $bookingsupplier->amountInRMB = $amountInRMB; $bookingsupplier->rmbBankAmount = $rmbBankAmount; - $bookingsupplier->booking()->associate($booking); + $bookingsupplier->book_id = $booking->id; $bookingsupplier->save(); // update booking status @@ -100,9 +102,9 @@ class BookingSupplierController extends Controller public function update(Request $request, $id) { - $bookingsupplier = BookingSupplier::find($id); + $bookingsupplier = BSupplierBooking::find($id); $bookingsupplier->payment_method = $request->input('payment_method'); - $bookingsupplier->payment_amount = $request->input('payment_amount'); + $bookingsupplier->transfer_amount = $request->input('transfer_amount'); $bookingsupplier->rate = $request->input('rate'); $bookingsupplier->rebate = $request->input('rebate'); // calculation diff --git a/app/Http/Controllers/SettingSupplierController.php b/app/Http/Controllers/SettingSupplierController.php index 6b1f8f12..d6bf1eda 100644 --- a/app/Http/Controllers/SettingSupplierController.php +++ b/app/Http/Controllers/SettingSupplierController.php @@ -12,7 +12,7 @@ class SettingSupplierController extends Controller $suppliers = SettingSupplier::all(); foreach ($suppliers as $supplier) { - $supplier->value = $supplier->company_name; + $supplier->value = $supplier->id; $supplier->label = $supplier->company_name; } return $suppliers; diff --git a/app/BookingSupplier.php b/app/SupplierBooking.php similarity index 93% rename from app/BookingSupplier.php rename to app/SupplierBooking.php index dbf1de39..9f660105 100644 --- a/app/BookingSupplier.php +++ b/app/SupplierBooking.php @@ -4,7 +4,7 @@ namespace App; use Illuminate\Database\Eloquent\Model; -class BookingSupplier extends Model +class SupplierBooking extends Model { // protected $guarded = []; protected $fillable = ['rate','rebate','payment_amount','payment_method']; diff --git a/database/migrations/2018_06_21_025734_supplier_booking_table.php b/database/migrations/2018_06_21_025734_supplier_booking_table.php index 25588fbe..2369cf24 100644 --- a/database/migrations/2018_06_21_025734_supplier_booking_table.php +++ b/database/migrations/2018_06_21_025734_supplier_booking_table.php @@ -39,6 +39,6 @@ class SupplierBookingTable extends Migration */ public function down() { - Schema::dropIfExists('booking_suppliers'); + Schema::dropIfExists('supplier_bookings'); } } diff --git a/database/migrations/2018_06_27_035705_make_paymentmethod_nulltable_in_supplierbooking_table.php b/database/migrations/2018_06_27_035705_make_paymentmethod_nulltable_in_supplierbooking_table.php new file mode 100644 index 00000000..8baebdac --- /dev/null +++ b/database/migrations/2018_06_27_035705_make_paymentmethod_nulltable_in_supplierbooking_table.php @@ -0,0 +1,31 @@ +string('payment_method')->nullable()->change(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +} diff --git a/resources/assets/js/pages/admin/booking/supplierBooking.vue b/resources/assets/js/pages/admin/booking/supplierBooking.vue index f393a329..a47c37b6 100644 --- a/resources/assets/js/pages/admin/booking/supplierBooking.vue +++ b/resources/assets/js/pages/admin/booking/supplierBooking.vue @@ -219,7 +219,7 @@ - + Generate Report @@ -260,6 +260,7 @@ supplierBookingForm: { supplier: null, amount: null, + rebate: null, rate: null, transfer_amount: null, }, @@ -329,30 +330,34 @@ this.$refs[formName].validate((valid) => { if (valid) { - let newConfirmation = { - amount: this.booking.amount, - term: this.term + let newReport = { + booking_id: this.$route.params.id, + supplier_id: this.supplierBookingForm.supplier, + amount: this.supplierBookingForm.amount, + rebate: this.supplierBookingForm.rebate, + rate: this.supplierBookingForm.rate, + transfer_amount: this.supplierBookingForm.transfer_amount, } - // axios.post('api/booking/calculation', newConfirmation) - // .then((response) => { - // this.loading = false - // console.log(response) - // this.bookingConfirmTable.date = response.data.date - // this.bookingConfirmTable.marking = response.data.marking - // this.bookingConfirmTable.payment_method = response.data.payment_method - // this.bookingConfirmTable.amount = response.data.amount - // this.bookingConfirmTable.service_charge = response.data.service_charge - // this.bookingConfirmTable.rate = response.data.rate - // this.bookingConfirmTable.bankin_amount = response.data.bankin_amount - // this.bookingConfirmTable.account_name = this.bookingForm.account_name - // this.dialogFormVisible = false - // this.dialogFormVisible1 = true - // }) - // .catch((error) => { - // this.loading = false - // console.log(error) - // }) + axios.post('/api/supplier-booking', newReport) + .then((response) => { + this.loading_btn = false + console.log(response) + // this.bookingConfirmTable.date = response.data.date + // this.bookingConfirmTable.marking = response.data.marking + // this.bookingConfirmTable.payment_method = response.data.payment_method + // this.bookingConfirmTable.amount = response.data.amount + // this.bookingConfirmTable.service_charge = response.data.service_charge + // this.bookingConfirmTable.rate = response.data.rate + // this.bookingConfirmTable.bankin_amount = response.data.bankin_amount + // this.bookingConfirmTable.account_name = this.bookingForm.account_name + // this.dialogFormVisible = false + // this.dialogFormVisible1 = true + }) + .catch((error) => { + this.loading_btn = false + console.log(error) + }) } else { this.loading_btn = false diff --git a/resources/assets/js/router/routes.js b/resources/assets/js/router/routes.js index 116f0d7f..e6b8f8de 100644 --- a/resources/assets/js/router/routes.js +++ b/resources/assets/js/router/routes.js @@ -62,13 +62,13 @@ export default [ { path: '/booking/:id/po-complete', name: 'booking.user.pocomplete', component: PoComplete }, { path: '/booking/:id/complete', name: 'booking.complete', component: Completed }, - { path: '/admin', - component: Admin, - children: [ - { path: '', redirect: { name: 'admin.index' } }, - { path: 'index', name: 'admin.index', component: Admin }, - { path: 'home', name: 'admin.home', component: AdminHome } - ] }, + // { path: '/admin', + // component: Admin, + // children: [ + // { path: '', redirect: { name: 'admin.index' } }, + // { path: 'index', name: 'admin.index', component: Admin }, + // { path: 'home', name: 'admin.home', component: AdminHome } + // ] }, // Admin booking { path: '/booking/:id/verification', name: 'booking.admin.verification', component: Verification }, { path: '/booking/:id/supplier', name: 'booking.admin.supplier', component: Supplier }, diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index decc9192..5dead2dc 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -7,7 +7,6 @@ $baseDir = dirname($vendorDir); return array( 'App\\Booking' => $baseDir . '/app/Booking.php', - 'App\\BookingSupplier' => $baseDir . '/app/BookingSupplier.php', 'App\\ChinaBankSlip' => $baseDir . '/app/ChinaBankSlip.php', 'App\\Console\\Kernel' => $baseDir . '/app/Console/Kernel.php', 'App\\Exceptions\\EmailTakenException' => $baseDir . '/app/Exceptions/EmailTakenException.php', @@ -55,6 +54,7 @@ return array( 'App\\SettingBeneficiary' => $baseDir . '/app/SettingBeneficiary.php', 'App\\SettingCredit' => $baseDir . '/app/SettingCredit.php', 'App\\SettingSupplier' => $baseDir . '/app/SettingSupplier.php', + 'App\\SupplierBooking' => $baseDir . '/app/SupplierBooking.php', 'App\\SupplierBookingItem' => $baseDir . '/app/SupplierBookingItem.php', 'App\\User' => $baseDir . '/app/User.php', 'App\\UserBankSlip' => $baseDir . '/app/UserBankSlip.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index c5049170..7952bb99 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -429,7 +429,6 @@ class ComposerStaticInit51a2977d18ddf089cd82402f3476f1a0 public static $classMap = array ( 'App\\Booking' => __DIR__ . '/../..' . '/app/Booking.php', - 'App\\BookingSupplier' => __DIR__ . '/../..' . '/app/BookingSupplier.php', 'App\\ChinaBankSlip' => __DIR__ . '/../..' . '/app/ChinaBankSlip.php', 'App\\Console\\Kernel' => __DIR__ . '/../..' . '/app/Console/Kernel.php', 'App\\Exceptions\\EmailTakenException' => __DIR__ . '/../..' . '/app/Exceptions/EmailTakenException.php', @@ -477,6 +476,7 @@ class ComposerStaticInit51a2977d18ddf089cd82402f3476f1a0 'App\\SettingBeneficiary' => __DIR__ . '/../..' . '/app/SettingBeneficiary.php', 'App\\SettingCredit' => __DIR__ . '/../..' . '/app/SettingCredit.php', 'App\\SettingSupplier' => __DIR__ . '/../..' . '/app/SettingSupplier.php', + 'App\\SupplierBooking' => __DIR__ . '/../..' . '/app/SupplierBooking.php', 'App\\SupplierBookingItem' => __DIR__ . '/../..' . '/app/SupplierBookingItem.php', 'App\\User' => __DIR__ . '/../..' . '/app/User.php', 'App\\UserBankSlip' => __DIR__ . '/../..' . '/app/UserBankSlip.php', From 6e8c81f28596651007b4dca9db7794816e21c112 Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Wed, 27 Jun 2018 14:21:55 +0800 Subject: [PATCH 36/37] added logic if supplierbooking already exist prevent user from creating --- .../Controllers/BookingSupplierController.php | 10 +- .../pages/admin/booking/supplierBooking.vue | 21 +- .../js/pages/admin/booking/supplierReport.vue | 242 ++++++++++++++++-- 3 files changed, 236 insertions(+), 37 deletions(-) diff --git a/app/Http/Controllers/BookingSupplierController.php b/app/Http/Controllers/BookingSupplierController.php index 101359b8..f84c2502 100644 --- a/app/Http/Controllers/BookingSupplierController.php +++ b/app/Http/Controllers/BookingSupplierController.php @@ -42,11 +42,17 @@ class BookingSupplierController extends Controller // TODO : Multiple booking public function store(Request $request) { + $transfer_amount = $request->input("transfer_amount"); $supplier_id = $request->input("supplier_id"); $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; @@ -72,8 +78,8 @@ class BookingSupplierController extends Controller $bookingsupplier->save(); // update booking status - $booking->status = 4; - $booking->admin_status = 3; + $booking->status = 5; + $booking->admin_status = 4; $booking->save(); //// one bookingsupplier has many booking diff --git a/resources/assets/js/pages/admin/booking/supplierBooking.vue b/resources/assets/js/pages/admin/booking/supplierBooking.vue index a47c37b6..14ccd189 100644 --- a/resources/assets/js/pages/admin/booking/supplierBooking.vue +++ b/resources/assets/js/pages/admin/booking/supplierBooking.vue @@ -342,21 +342,20 @@ axios.post('/api/supplier-booking', newReport) .then((response) => { this.loading_btn = false - console.log(response) - // this.bookingConfirmTable.date = response.data.date - // this.bookingConfirmTable.marking = response.data.marking - // this.bookingConfirmTable.payment_method = response.data.payment_method - // this.bookingConfirmTable.amount = response.data.amount - // this.bookingConfirmTable.service_charge = response.data.service_charge - // this.bookingConfirmTable.rate = response.data.rate - // this.bookingConfirmTable.bankin_amount = response.data.bankin_amount - // this.bookingConfirmTable.account_name = this.bookingForm.account_name - // this.dialogFormVisible = false - // this.dialogFormVisible1 = true + + this.$router.push({ + name: 'booking.admin.supplier.report', + params: {id: this.$route.params.id } + }) + // redirect to supplier report + }) .catch((error) => { this.loading_btn = false console.log(error) + + // TODO : Show error message + }) } else { diff --git a/resources/assets/js/pages/admin/booking/supplierReport.vue b/resources/assets/js/pages/admin/booking/supplierReport.vue index 37196cb3..07e7cfc4 100644 --- a/resources/assets/js/pages/admin/booking/supplierReport.vue +++ b/resources/assets/js/pages/admin/booking/supplierReport.vue @@ -1,13 +1,13 @@
-
MYR {{ booking_details.bia }}
+
+ MYR {{ booking_details.bia }} +