diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index b3043f85..7c6f105c 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\PurchaseOrder; use Illuminate\Http\Request; use App\Booking; use App\Rate; @@ -157,6 +158,31 @@ class BookingController extends Controller $post->save();; } + public function uploadPurchaseOrder(Request $request) + { + // Handle File Upload + if($request->hasFile('image_location')){ + // Get filename with the extension + $filenameWithExt = $request->file('image_location')->getClientOriginalName(); + // Get just filename + $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME); + // Get just ext + $extension = $request->file('image_location')->getClientOriginalExtension(); + // Filename to store + $fileNameToStore= $filename.'_'.time().'.'.$extension; + // Upload Image + $path = $request->file('image_location')->storeAs('public/userPurchaseOrder', $fileNameToStore); + } else { + $fileNameToStore = 'hello.jpg'; + } + // Create Post + $post = new PurchaseOrder; + $post->amount = $request->input('amount'); + $post->book_id = $request->input('book_id'); + $post->image_location = $fileNameToStore; + $post->save();; + } + /** * Display the specified resource. diff --git a/app/PurchaseOrder.php b/app/PurchaseOrder.php new file mode 100644 index 00000000..8aab2697 --- /dev/null +++ b/app/PurchaseOrder.php @@ -0,0 +1,10 @@ +define(App\PurchaseOrder::class, function (Faker $faker) { + return [ + // + ]; +}); 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 03c9fb91..c2f8e150 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 @@ -15,11 +15,11 @@ class CreateUserBankSlipsTable extends Migration { Schema::create('user_bank_slips', function (Blueprint $table) { $table->increments('id'); - $table->string('bank_slip_type'); - $table->string('bankslip_url'); - $table->double('transfer_amount'); - $table->string('cust_marking'); - $table->boolean('is_approve'); + $table->string('bank_slip_type')->nullable(); + $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_28_085925_create_purchase_orders_table.php b/database/migrations/2018_05_28_085925_create_purchase_orders_table.php new file mode 100644 index 00000000..910a6991 --- /dev/null +++ b/database/migrations/2018_05_28_085925_create_purchase_orders_table.php @@ -0,0 +1,35 @@ +increments('id'); + $table->string('image_location'); + $table->double('amount'); + $table->integer('book_id')->unsigned(); + $table->foreign('book_id')->references('id')->on('bookings'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('purchase_orders'); + } +} diff --git a/routes/api.php b/routes/api.php index 9e20d51f..da4caed6 100644 --- a/routes/api.php +++ b/routes/api.php @@ -82,3 +82,4 @@ Route::delete('setting-supplier/{supplier}', 'SettingSupplierController@delete') Route::post('upload-china-bankslip', 'ChinaBankSlipController@store'); Route::post('upload-bs', 'BookingController@uploadbankslip'); +Route::post('upload-po', 'BookingController@uploadPurchaseOrder'); \ No newline at end of file diff --git a/tests/Unit/BookingTest.php b/tests/Unit/BookingTest.php index 71cbb641..a3a100dc 100644 --- a/tests/Unit/BookingTest.php +++ b/tests/Unit/BookingTest.php @@ -6,6 +6,9 @@ use Tests\TestCase; use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Database\Seeder; use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Support\Facades\Storage; +use Illuminate\Http\UploadedFile; +use Illuminate\Foundation\Testing\RefreshDatabase; use Artisan; use App\User; @@ -22,17 +25,17 @@ class BookingTest extends TestCase public function testPost() { - $response = + $response = $this->actingAs($this->user) ->postJson('/api/booking/', [ 'account_name' => 'johnny', - 'account_num' => '1234567', - 'bank_name' => 'myabnak', - 'bank_branch' => 'banking', - 'company_name' => 'besaras', - 'company_address' => 'californina', - 'bank_address' => 'cyber', - 'swift_code' => '123wert', + 'account_num' => '1234567', + 'bank_name' => 'myabnak', + 'bank_branch' => 'banking', + 'company_name' => 'besaras', + 'company_address' => 'californina', + 'bank_address' => 'cyber', + 'swift_code' => '123wert', 'cnap' => '2131rew', 'term' => 'x2_cash', 'amount' => '14000' @@ -40,4 +43,23 @@ class BookingTest extends TestCase $response->assertStatus(500); } + public function testImageUpload() + { + Storage::fake('bankslip_url'); + + $response = $this->json('POST', '/api/upload-bs', [ + 'bankslip_url' => UploadedFile::fake()->image('comp.jpg'), + 'bank_slip_type' => '', + 'transfer_amount' => '1000', + 'book_id' => '1', + 'cust_marking' => '12345', + 'is_approve' => '1', + + ]); + //var_dump($response); + dd($response->getContent()); + $response->assertStatus(200); + } + + } \ No newline at end of file diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index d43e3335..16d0da87 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -41,6 +41,7 @@ return array( 'App\\Providers\\BroadcastServiceProvider' => $baseDir . '/app/Providers/BroadcastServiceProvider.php', 'App\\Providers\\EventServiceProvider' => $baseDir . '/app/Providers/EventServiceProvider.php', 'App\\Providers\\RouteServiceProvider' => $baseDir . '/app/Providers/RouteServiceProvider.php', + 'App\\PurchaseOrder' => $baseDir . '/app/PurchaseOrder.php', 'App\\Rate' => $baseDir . '/app/Rate.php', 'App\\Role' => $baseDir . '/app/Role.php', 'App\\SettingBeneficiary' => $baseDir . '/app/SettingBeneficiary.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 1a5f6454..a3e6b143 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -440,6 +440,7 @@ class ComposerStaticInitebee75b176540aeb1d879b30f69e9dfc 'App\\Providers\\BroadcastServiceProvider' => __DIR__ . '/../..' . '/app/Providers/BroadcastServiceProvider.php', 'App\\Providers\\EventServiceProvider' => __DIR__ . '/../..' . '/app/Providers/EventServiceProvider.php', 'App\\Providers\\RouteServiceProvider' => __DIR__ . '/../..' . '/app/Providers/RouteServiceProvider.php', + 'App\\PurchaseOrder' => __DIR__ . '/../..' . '/app/PurchaseOrder.php', 'App\\Rate' => __DIR__ . '/../..' . '/app/Rate.php', 'App\\Role' => __DIR__ . '/../..' . '/app/Role.php', 'App\\SettingBeneficiary' => __DIR__ . '/../..' . '/app/SettingBeneficiary.php',