diff --git a/app/Booking.php b/app/Booking.php index fec84e1c..a6be11c4 100644 --- a/app/Booking.php +++ b/app/Booking.php @@ -36,6 +36,10 @@ class Booking extends Model return $this->belongsTo('app\BookingSupplier '); } + public function chinaBankSlip(){ + return $this->hasOne(ChinaBankSlip::class); + } + public function userBankSlip(){ return $this->hasOne(UserBankSlip::class); } diff --git a/app/ChinaBankSlip.php b/app/ChinaBankSlip.php index d7354956..47e2fe4d 100644 --- a/app/ChinaBankSlip.php +++ b/app/ChinaBankSlip.php @@ -7,4 +7,9 @@ use Illuminate\Database\Eloquent\Model; class ChinaBankSlip extends Model { protected $fillable = ['actual_transfer_amount','date','details','china_bank_slip_path']; + + public function booking() + { + return $this->belongsTo(Booking::class); + } } diff --git a/app/Http/Controllers/ChinaBankSlipController.php b/app/Http/Controllers/ChinaBankSlipController.php index 11bd4b7d..f691725c 100644 --- a/app/Http/Controllers/ChinaBankSlipController.php +++ b/app/Http/Controllers/ChinaBankSlipController.php @@ -62,4 +62,26 @@ class ChinaBankSlipController extends Controller return response()->json(['message'=>'success'], 201); } + public function update(Request $request, $id){ + $booking = Booking::where('id',$id)->first(); + $china_bankslip = $booking->chinaBankSlip()->first(); + + // TODO: first or fail + if(!$china_bankslip){ + return response()->json(["message"=> "not found"],400); + } + + $china_bankslip->actual_transfer_amount = $request->input('actual_transfer_amount'); + $china_bankslip->date = $request->input('date'); + $china_bankslip->details = $request->input('details'); + $china_bankslip->save(); + + // update booking status + $booking->status = 5; + $booking->admin_status = 6; + $booking->save(); + + return response()->json(["message"=> "Success"],200); + } + } diff --git a/resources/assets/js/pages/admin/booking/uploadChinaBankslip.vue b/resources/assets/js/pages/admin/booking/uploadChinaBankslip.vue index 79e389f4..8cb31a77 100644 --- a/resources/assets/js/pages/admin/booking/uploadChinaBankslip.vue +++ b/resources/assets/js/pages/admin/booking/uploadChinaBankslip.vue @@ -205,17 +205,12 @@
- + Click to upload
jpg/png files with a size less than 3mb
- - - +
@@ -230,7 +225,7 @@ - Submit + Submit
@@ -284,7 +279,7 @@ }], details: [{ required: true, - message: 'Please input account name', + message: 'Please input details', trigger: 'change' }] }, @@ -351,39 +346,40 @@ }, methods: { - submitcChinaSlip(formName) { + submitChinaSlip(formName) { this.loading_btn = true this.$refs[formName].validate((valid) => { if (valid) { - 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, + let newChinaSlip = { + date: this.chinaSlipForm.date, + actual_transfer_amount: this.chinaSlipForm.actual_transfer_amount, + details: this.chinaSlipForm.details, } - axios.post('/api/supplier-booking', newReport) + axios.patch('/api/booking/' + this.booking_id + '/upload-china-slip', newChinaSlip) .then((response) => { - this.loading_btn = false - - this.$router.push({ - name: 'booking.admin.supplier.report', - params: { - id: this.$route.params.id - } + this.$message({ + showClose: true, + message: 'Your bankinslip has been submitted, please wait admin to approve.', + type: 'success', + duration: 5000 }) - // redirect to supplier report + console.log(response) + this.$router.push({ + name: 'home' + }) }) .catch((error) => { - this.loading_btn = false + this.loading = false + this.$message({ + showClose: true, + message: 'Please upload your bankin slip first.', + type: 'warning', + duration: 10000 + }) console.log(error) - - // TODO : Show error message - }) } else { @@ -391,6 +387,7 @@ } }) + }, handleRemove(file, fileList) { console.log(file, fileList); diff --git a/routes/api.php b/routes/api.php index ace7e778..2d513052 100644 --- a/routes/api.php +++ b/routes/api.php @@ -102,6 +102,7 @@ Route::group(['middleware' => ['role:admin']], function() { Route::put('supplier-booking/{id}', 'BookingSupplierController@update'); Route::post('/booking/{id}/upload-china-bankslip','ChinaBankSlipController@store'); + Route::patch('/booking/{id}/upload-china-bankslip','ChinaBankSlipController@update'); });