From bd5d0076fed51391e5c54ae31c15ff1004a93804 Mon Sep 17 00:00:00 2001 From: Zain Fauzan Rofie Azizi Date: Wed, 23 May 2018 16:00:51 +0800 Subject: [PATCH] added upload image for wrni, and POST for wrn wrni --- .../WarehousearrangementController.php | 80 +++++++++++++++++-- app/Warehousearr.php | 2 +- app/Warehouseitem.php | 8 ++ ...add_new_column_to_warehouseitems_table.php | 40 ++++++++++ ...1_add_nullable_to_warehouseitems_table.php | 34 ++++++++ routes/api.php | 4 +- 6 files changed, 159 insertions(+), 9 deletions(-) create mode 100644 database/migrations/2018_05_23_042125_add_new_column_to_warehouseitems_table.php create mode 100644 database/migrations/2018_05_23_075131_add_nullable_to_warehouseitems_table.php diff --git a/app/Http/Controllers/WarehousearrangementController.php b/app/Http/Controllers/WarehousearrangementController.php index 42a23fb..d47f4dd 100644 --- a/app/Http/Controllers/WarehousearrangementController.php +++ b/app/Http/Controllers/WarehousearrangementController.php @@ -30,7 +30,6 @@ class WarehousearrangementController extends Controller { //store new warehouse receive note $warehousearr = new Warehousearr; - $warehousearr->so_id = $request->input('so_id'); $warehousearr->receive_on = $request->input('receive_on'); $warehousearr->transport_company_name = $request->input('transport_company_name'); @@ -39,21 +38,45 @@ class WarehousearrangementController extends Controller $warehousearr->receiving_person = $request->input('receiving_person'); $warehousearr->marking_number = $request->input('marking_number'); $warehousearr->image = $request->input('image'); - $warehousearr->save(); + //shipping order item + $warehouseitems = $request->input("warehouseitem"); + foreach ($warehouseitems as $warehouseitem) + { + $new_warehouseitem = new Warehouseitem(array( + 'description'=>$warehouseitem['description'], + 'nominal_ctn'=>$warehouseitem['nominal_ctn'], + 'actual_ctn'=>$warehouseitem['actual_ctn'], + 'nominal_measurement'=>$warehouseitem['nominal_measurement'], + 'actual_measurement'=>$warehouseitem['actual_measurement'], + 'nominal_weight'=>$warehouseitem['nominal_weight'], + 'actual_weight'=>$warehouseitem['actual_weight'], + 'balance'=>$warehouseitem['balance'], + 'isDamaged'=>$warehouseitem['isDamaged'], + 'status'=>$warehouseitem['status'], + 'image'=>$warehouseitem['image'], + 'wa_id'=>$warehouseitem['wa_id'], + 'soitem_id'=>$warehouseitem['soitem_id'], + )); + + $new_warehouseitem->save(); + + } + + return response()->json(['warehousearr'=>$warehousearr], 201); } - public function warehousepic(Request $request, $id) + public function warehousearrpic(Request $request, $id) { $warehousearr = Warehousearr::find($id); - // if (!$warehousearr) - // { - // return response()->json(['message'=>'Document not found'],200); - // } + if (!$warehousearr) + { + return response()->json(['message'=>'Document not found'],200); + } //validaating file types $validator = Validator::make($request->all(), [ @@ -86,6 +109,49 @@ class WarehousearrangementController extends Controller return response()->json(['warehousearr'=>$warehousearr], 201); } + + public function warehouseitempic(Request $request, $id) + { + $warehouseitem = Warehouseitem::find($id); + + if (!$warehouseitem) + { + return response()->json(['message'=>'Document not found'],200); + } + + //validaating file types + $validator = Validator::make($request->all(), [ + 'image' => 'image|mimes:jpg,jpeg,bmp,png' + ]); + + if($validator->fails()) + { + return "failed"; + } + + if($file = $request->file('image')) //warehouse item picture + { + $image = $request->file('image'); + $filename = $image->getClientOriginalName(); //get the original file name + $unique_name = 'ware_item_pic_' . md5($filename. time()); //generating a random file name + + $file = $request->file('image'); + $ext = $file->getClientOriginalExtension(); + $input['image'] = $filename; + Storage::putFileAs( + 'warehouse_item_picture',/*folder name*/ $file, $unique_name. '.' .$ext + ); + + $warehouseitem->image = $unique_name. '.' .$ext; + + } //end if + + $warehouseitem->save(); + return response()->json(['warehouseitem'=>$warehouseitem], 201); + + } + + /** * Display the specified resource. * diff --git a/app/Warehousearr.php b/app/Warehousearr.php index 080b2d6..2ea9753 100644 --- a/app/Warehousearr.php +++ b/app/Warehousearr.php @@ -30,6 +30,6 @@ class Warehousearr extends Model public function so() { - return $this->belongsTo('App\So'); + return $this->hasOne('App\So'); } } diff --git a/app/Warehouseitem.php b/app/Warehouseitem.php index 678c154..75102d6 100644 --- a/app/Warehouseitem.php +++ b/app/Warehouseitem.php @@ -19,10 +19,18 @@ class Warehouseitem extends Model 'isDamaged', 'status', 'image', + 'wa_id', + 'soitem_id', ]; public function warehousearr() { return $this->belongsTo('App\Warehousearr'); } + + public function soitem() + { + return $this->hasOne('App\Warehousearr'); + } + } diff --git a/database/migrations/2018_05_23_042125_add_new_column_to_warehouseitems_table.php b/database/migrations/2018_05_23_042125_add_new_column_to_warehouseitems_table.php new file mode 100644 index 0000000..ba18648 --- /dev/null +++ b/database/migrations/2018_05_23_042125_add_new_column_to_warehouseitems_table.php @@ -0,0 +1,40 @@ +unsignedInteger('wa_id');//FK wrn id + $table->foreign('wa_id') + ->references('id')->on('warehousearrs') + ->onDelete('cascade'); + + $table->unsignedInteger('soitem_id');//FK soitem id + $table->foreign('soitem_id') + ->references('id')->on('soitems') + ->onDelete('cascade'); + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +} diff --git a/database/migrations/2018_05_23_075131_add_nullable_to_warehouseitems_table.php b/database/migrations/2018_05_23_075131_add_nullable_to_warehouseitems_table.php new file mode 100644 index 0000000..527dc7b --- /dev/null +++ b/database/migrations/2018_05_23_075131_add_nullable_to_warehouseitems_table.php @@ -0,0 +1,34 @@ +string('image')->nullable()->change(); + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('warehouseitems', function (Blueprint $table) { + // + }); + } +} diff --git a/routes/api.php b/routes/api.php index 52da0f5..1e143c1 100644 --- a/routes/api.php +++ b/routes/api.php @@ -19,7 +19,9 @@ Route::get('/so/{so_id}','warehousearrangementController@index');//view the list Route::get('/warehousearr','warehousearrangementController@index');//view the wrn Route::post('/warehousearr','warehousearrangementController@store');//store the new wrn -Route::post('/warehousearr/warehouse_picture/{wa_id}','warehousearrangementController@warehousepic');//upload company picture +Route::post('/warehousearr/warehouse_picture/{wa_id}','warehousearrangementController@warehousearrpic');//upload warehousepicture picture +Route::post('/warehousearr/warehouse_item_picture/{wa_id}','warehousearrangementController@warehouseitempic');//upload warehousepicture picture + Route::put('/warehouserarr/{wa_id}','warehousearrangementController@update');//update the wrn Route::delete('/warehouserarr/{wa_id}','warehousearrangementController@delete');//update the wrn