diff --git a/app/Http/Controllers/BookingSupplierController.php b/app/Http/Controllers/BookingSupplierController.php index 6c986da3..8a358a6e 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,71 +40,59 @@ 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'); + + if ($supplierbooking = SupplierBooking::where('book_id', $booking_id)->first()){ + return response()->json(['success'=>false, 'message'=>'Bad request, please contact support'], 400); + } + // 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 - $booking->status = 4; - $booking->admin_status = 3; - $booking->save(); + $booking->status = 5; + $booking->admin_status = 4; + $booking->save(); + + // TODO : generate a jpg version of report and save the path - //// one bookingsupplier has many booking - // $bookings = $request->input("booking"); - // foreach ($bookings as $booking) - // { - // $bookingsupplierbooking = new Booking(array( - // 'book_id' => $booking->id, - // 'supplierbooking_id' => $supplier->id - // )); - // $bookingsupplierbooking->save(); - - // $new_supplierbooking = new SupplierBookingItem(array( - // 'book_id' => $booking->id, - // 'bank_in_amount'=>$booking['bank_in_amount'], - // 'date'=>$booking['date'], - // 'details'=>$booking['details'], - // 'supplierbooking_id' => $supplier->id - // )); - // $new_supplierbooking->save(); - - // } return response()->json($bookingsupplier, 201); } 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 37c12e0e..14ccd189 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,27 +330,33 @@ this.$refs[formName].validate((valid) => { if (valid) { - let newSupplierBooking = this.supplierBookingForm + 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 + + 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 { this.loading_btn = false diff --git a/resources/assets/js/pages/admin/booking/supplierReport.vue b/resources/assets/js/pages/admin/booking/supplierReport.vue index 37196cb3..957561cf 100644 --- a/resources/assets/js/pages/admin/booking/supplierReport.vue +++ b/resources/assets/js/pages/admin/booking/supplierReport.vue @@ -1,13 +1,13 @@