diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php
index 4fc6bcf7..4ec2c00d 100644
--- a/app/Http/Controllers/BookingController.php
+++ b/app/Http/Controllers/BookingController.php
@@ -15,6 +15,13 @@ class BookingController extends Controller
public function store(Request $request)
{
+ //logic if booking is not belongs to user, prohibit them from accessing the api
+ $user = User::where("id", Auth::user()->id)->first();
+ if (!$user)
+ {
+ return response()->json(['message'=>'Access denied'],401);
+ }
+
$rates = Rate::all()->last();
$term = $request->input('term');
$rate = 1;
@@ -49,23 +56,31 @@ class BookingController extends Controller
}
//Calculation part
- //$bookings = Booking::all();
$amount = $request->input("amount");
- if ($amount >= 10000 && ($term == 'x2_cash' || $term = 'x2_cheque' || $term = 'x2_ba')) {
+
+ //logic : if amount higher than 10,000, no service charge. if amount lower than 10,000, 20.00 service charge
+ if ($amount >= 10000 && ($term == 'x2_cash' || $term = 'x2_cheque' || $term = 'x2_ba')) {
$svcharge = 0;
}
else {
$svcharge = 20.00;
}
- $gst = 0*($amount + $svcharge);
+ //initial calculation
+ $RMBinMYR = (($amount + $svcharge) / $rate);
+ //calculate gst, 0% after 1june 2018
+ $gst = 0*$RMBinMYR;
- $bia = round(($amount + $svcharge) / $rate + $gst,2);
- //gst = 0.00% -> (0*($amount + $svcharge))
- //bia = bank in amount in MYR
+ //calculate Sales Tax, 10% of initial calculation
+ $sales_tax = 0.10*$RMBinMYR;
+
+ //calculate billing, 1.5% of initial calculation
+ $billing = 0.015*$RMBinMYR;
+
+ //bia = bank in amount in MYR
+ $bia = round($RMBinMYR + $gst + $sales_tax + $billing,2);
- // return $bia;
$user = Auth::user();
$booking = new Booking();
$booking->account_name = $request->input('account_name');
@@ -97,12 +112,9 @@ class BookingController extends Controller
$booking->verification_status = $request->input('verification_status');
$booking->user()->associate($user);
- //$booking->user_id = $request->input('user_id');
$booking->bia = $bia;
$booking->save();
- // return false;
- //$booking = Booking::create($request->all());
return response()->json($booking, 201);
@@ -136,7 +148,8 @@ class BookingController extends Controller
$post->book_id = $booking->id;
$post->transfer_amount = $request->input('transfer_amount');
$post->bankslip_url = $fileNameToStore;
- $post->save();;
+ $post->save();
+ return response()->json(['message'=>'Success'],201);
}
@@ -167,13 +180,13 @@ class BookingController extends Controller
$post->amount = $request->input('amount');
$post->image_url = $fileNameToStore;
$post->save();
+ return response()->json(['message'=>'Success'],201);
}
public function update(Request $request, $book_id)
{
$book_id = Booking::find($book_id);
-
- //$com_id->id = $request->input('id');
+
$book_id->account_name = $request->input('account_name');
$book_id->account_num = $request->input('account_num');
$book_id->bank_name = $request->input('bank_name');
diff --git a/database/migrations/2018_05_24_082214_create_user_bank_slips_table.php b/database/migrations/2018_05_24_082214_create_user_bank_slips_table.php
index c2f8e150..0d11cdd5 100644
--- a/database/migrations/2018_05_24_082214_create_user_bank_slips_table.php
+++ b/database/migrations/2018_05_24_082214_create_user_bank_slips_table.php
@@ -19,7 +19,6 @@ class CreateUserBankSlipsTable extends Migration
$table->string('bankslip_url')->nullable();
$table->double('transfer_amount')->nullable();
$table->string('cust_marking')->nullable();
- $table->boolean('is_approve')->nullable();
$table->integer('book_id')->unsigned();
$table->foreign('book_id')->references('id')->on('bookings');
diff --git a/database/migrations/2018_05_30_030248_update_upload_booking_bankslip.php b/database/migrations/2018_05_30_030248_update_upload_booking_bankslip.php
index 3e020dee..70a052ca 100644
--- a/database/migrations/2018_05_30_030248_update_upload_booking_bankslip.php
+++ b/database/migrations/2018_05_30_030248_update_upload_booking_bankslip.php
@@ -14,7 +14,7 @@ class UpdateUploadBookingBankslip extends Migration
public function up()
{
Schema::table('user_bank_slips', function (Blueprint $table) {
- $table->boolean('is_approve')->default('false');
+ $table->boolean('is_approve')->default('0');
});
}
/**
diff --git a/phpunit.xml b/phpunit.xml
index 2a973817..d61b43d6 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -20,6 +20,9 @@
./app
+
+ ./app/Http/routes.php
+
@@ -31,5 +34,6 @@
+
diff --git a/tests/Unit/BookingTest.php b/tests/Unit/BookingTest.php
index 598336a8..3f23ea6d 100644
--- a/tests/Unit/BookingTest.php
+++ b/tests/Unit/BookingTest.php
@@ -38,28 +38,78 @@ class BookingTest extends TestCase
'swift_code' => '123wert',
'cnap' => '2131rew',
'term' => 'x2_cash',
- 'amount' => '14000'
+ 'amount' => '14000',
+ 'rmb_book_amount' => '2131',
+ 'rmb_book_pay_method' => '2131rea',
+ 'rmb_book_account_name' => '2131rew',
+ 'rmb_book_acc_no' => '2131',
+ 'rmb_book_bank_branch' => '2131rew',
+ 'usd_book_amount' => '2131',
+ 'usd_book_pay_method' => '2131rew',
+ 'usd_book_company_name' => '2131rew',
+ 'usd_book_company_address' => '2131rew',
+ 'usd_book_swift_code' => '2131rew',
+ 'usd_book_cnap' => '2131rew',
+ 'usd_book_bank_branch' => '2131rew',
+ 'verification_status' => '1'
]);
- $response->assertStatus(200);
+ $response->assertStatus(201);
}
- public function testImageUpload()
- {
- Storage::fake('bankslip_url');
- $response = $this->json('POST', '/api/upload-bs', [
+ public function testuploadbankslip()
+ {
+ Storage::fake('bankslip_url');
+
+ $response = $this->json('POST', '/api/booking/1/upload-user-bankslip', [
'bankslip_url' => UploadedFile::fake()->image('comp.jpg'),
- 'bank_slip_type' => '',
- 'transfer_amount' => '1000',
- 'book_id' => '1',
- 'cust_marking' => '12345',
- 'is_approve' => '1',
+ 'transfer_amount' => '12345'
+ ]);
+ dd($response->getContent());
+ $response->assertStatus(201);
+ }
- ]);
- //var_dump($response);
- dd($response->getContent());
- $response->assertStatus(200);
- }
+ public function testuploadPO()
+ {
+ Storage::fake('image_url');
+ $response = $this->json('POST', '/api/booking/1/upload-po', [
+ 'image_url' => UploadedFile::fake()->image('comp.jpg'),
+ 'amount' => '12345'
+ ]);
+ dd($response->getContent());
+ $response->assertStatus(201);
+ }
+
+
+// function upload_bankslip_test()
+// {
+// Storage::fake('public');
+//
+// $this->json('post', '/api/booking/1/upload-user-bankslip', [
+// 'bankslip_url' => $file = UploadedFile::fake()->image('random.jpg'),
+// 'transfer_amount' => '12345',
+// ]);
+//
+// $this->assertEquals('file/' . $file->hashName(), Upload::latest()->first()->file);
+//
+// Storage::disk('public')->assertExists('file/' . $file->hashName());
+//
+// }
+//
+// function upload_po_test()
+// {
+// Storage::fake('public');
+//
+// $this->json('post', '/api/booking/1/upload-po', [
+// 'image_url' => $file = UploadedFile::fake()->image('random.jpg'),
+// 'amount' => '12345',
+// ]);
+//
+// $this->assertEquals('file/' . $file->hashName(), Upload::latest()->first()->file);
+//
+// Storage::disk('public')->assertExists('file/' . $file->hashName());
+//
+// }
}
\ No newline at end of file