From a5633b77548f1229a7c816dbcbb504463aa9adb0 Mon Sep 17 00:00:00 2001 From: Nazri Hamzah Date: Tue, 19 Jun 2018 17:26:37 +0800 Subject: [PATCH] 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