diff --git a/app/Company.php b/app/Company.php index ee6bb6c..7325320 100644 --- a/app/Company.php +++ b/app/Company.php @@ -14,4 +14,9 @@ class Company extends Model { return $this->belongsTo('App\User'); } + + public function shipment() + { + return $this->hasOne('App\Shipment'); + } } diff --git a/app/Customexam.php b/app/Customexam.php new file mode 100644 index 0000000..273c930 --- /dev/null +++ b/app/Customexam.php @@ -0,0 +1,22 @@ +hasOne('App\Shipment'); + } +} diff --git a/app/Http/Controllers/ShipmentarrangementController.php b/app/Http/Controllers/ShipmentarrangementController.php new file mode 100644 index 0000000..072b5bf --- /dev/null +++ b/app/Http/Controllers/ShipmentarrangementController.php @@ -0,0 +1,157 @@ +loading_date = $request->input('loading_date'); + $shipment->shipment_no = $request->input('shipment_no'); + $shipment->departure_port = $request->input('departure_port'); + $shipment->container_no = $request->input('container_no'); + $shipment->type_of_container = $request->input('type_of_container'); + $shipment->last_etd = $request->input('last_etd'); + $shipment->last_eta = $request->input('last_eta'); + $shipment->driver_name = $request->input('driver_name'); + $shipment->driver_contact_no = $request->input('driver_contact_no'); + $shipment->trailer_no = $request->input('trailer_no'); + $shipment->driver_ic_no = $request->input('driver_ic_no'); + $shipment->loading_address = $request->input('loading_address'); + $shipment->loading_city = $request->input('loading_city'); + $shipment->loading_state = $request->input('loading_state'); + $shipment->contact_no = $request->input('contact_no'); + $shipment->country = $request->input('country'); + $shipment->contact_person = $request->input('contact_person'); + $shipment->remark = $request->input('remark'); + $shipment->so_id = $request->input('so_id'); + $shipment->com_id = $request->input('com_id'); + $shipment->save(); + + //shipment item arrangement checkboxes + //id=si1,si2,si3.... + //name=shipmentbox[] + $shipmentitems = $request->input('shipmentitem'); + foreach ($shipmentitems as $shipmentitem) + { + $new_shipmentitem = new Shipmentitem; + $new_shipmentitem->shipmentbox = $shipmentitem; + $new_shipmentitem->save(); + } + + return response()->json(['shipment'=>$shipment], 201); + + } + + /** + * Store the Custom-examination + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\Response + */ + public function customStore(Request $request) + { + $customexam = new Customexam; + $customexam->so_id = $request->input('so_id'); + $customexam->custom_date = $request->input('custom_date'); + $customexam->new_etd = $request->input('new_etd'); + $customexam->new_eta = $request->input('new_eta'); + $customexam->release_date = $request->input('release_date'); + $customexam->save(); + + return response()->json(['customexam'=>$customexam], 201); + + } + + /** + * Update the Custom-examination. + * + * @param \Illuminate\Http\Request $request + * @param int $id + * @return \Illuminate\Http\Response + */ + public function customUpdate(Request $request, $id) + { + + $customexam = Customexam::find($id); + $customexam->so_id = $request->input('so_id'); + $customexam->custom_date = $request->input('custom_date'); + $customexam->new_etd = $request->input('new_etd'); + $customexam->new_eta = $request->input('new_eta'); + $customexam->release_date = $request->input('release_date'); + $customexam->save(); + + return response()->json(['customexam'=>$customexam], 201); + + } + + /** + * Update the Shipment arrangement. + * + * @param \Illuminate\Http\Request $request + * @param int $id + * @return \Illuminate\Http\Response + */ + public function update(Request $request, $id) + { + $shipment = Shipment::find($id); + $shipment->loading_date = $request->input('loading_date'); + $shipment->shipment_no = $request->input('shipment_no'); + $shipment->departure_port = $request->input('departure_port'); + $shipment->container_no = $request->input('container_no'); + $shipment->type_of_container = $request->input('type_of_container'); + $shipment->last_etd = $request->input('last_etd'); + $shipment->last_eta = $request->input('last_eta'); + $shipment->driver_name = $request->input('driver_name'); + $shipment->driver_contact_no = $request->input('driver_contact_no'); + $shipment->trailer_no = $request->input('trailer_no'); + $shipment->driver_ic_no = $request->input('driver_ic_no'); + $shipment->loading_address = $request->input('loading_address'); + $shipment->loading_city = $request->input('loading_city'); + $shipment->loading_state = $request->input('loading_state'); + $shipment->contact_no = $request->input('contact_no'); + $shipment->country = $request->input('country'); + $shipment->contact_person = $request->input('contact_person'); + $shipment->remark = $request->input('remark'); + $shipment->so_id = $request->input('so_id'); + $shipment->com_id = $request->input('com_id'); + $shipment->save(); + + + $shipmentitems = $request->input('shipmentitem'); + foreach ($shipmentitems as $shipmentitem) + { + $ex_shipmentitem = shipmentitem::where('sa_id', $id)->first(); + $ex_shipmentitem = new Shipmentitem; + $ex_shipmentitem->shipmentbox = $shipmentitem; + $ex_shipmentitem->save(); + + } + + return response()->json(['shipment'=>$shipment], 201); + } + +} diff --git a/app/Http/Controllers/WarehousearrangementController.php b/app/Http/Controllers/WarehousearrangementController.php index 58226c0..165a03d 100644 --- a/app/Http/Controllers/WarehousearrangementController.php +++ b/app/Http/Controllers/WarehousearrangementController.php @@ -46,7 +46,7 @@ class WarehousearrangementController extends Controller $warehouseitems = $request->input("warehouseitem"); foreach ($warehouseitems as $warehouseitem) { - + $new_warehouseitem = new Warehouseitem(array( 'description'=>$warehouseitem['description'], 'nominal_ctn'=>$warehouseitem['nominal_ctn'], diff --git a/app/Shipment.php b/app/Shipment.php new file mode 100644 index 0000000..8939c0b --- /dev/null +++ b/app/Shipment.php @@ -0,0 +1,53 @@ +hasMany('App\Shipmentitem'); + } + + public function so() + { + return $this->belongsTo('App\So'); + } + + public function company() + { + return $this->hasOne('App\Company'); + } + + public function Customexam() + { + return $this->hasOne('App\Customexam'); + } +} diff --git a/app/Shipmentitem.php b/app/Shipmentitem.php new file mode 100644 index 0000000..507d07e --- /dev/null +++ b/app/Shipmentitem.php @@ -0,0 +1,24 @@ +belongsTo('App\So'); + } + + public function shipment() + { + return $this->belongsTo('App\Shipment'); + } +} diff --git a/app/So.php b/app/So.php index 9313dea..830b18f 100644 --- a/app/So.php +++ b/app/So.php @@ -19,10 +19,20 @@ class So extends Model { return $this->hasMany('App\Soitem'); } - public function warehousearr() + + public function warehousearr() { return $this->hasMany('App\Warehousearr'); } + public function shipment() + { + return $this->hasMany('App\Shipment'); + } + + public function shipmentitem() + { + return $this->hasMany('App\Shipmentitem'); + } } diff --git a/database/migrations/2018_05_30_015110_drop_foreign_key_in_warehouseitems_table.php b/database/migrations/2018_05_30_015110_drop_foreign_key_in_warehouseitems_table.php index 29a5610..64d8382 100644 --- a/database/migrations/2018_05_30_015110_drop_foreign_key_in_warehouseitems_table.php +++ b/database/migrations/2018_05_30_015110_drop_foreign_key_in_warehouseitems_table.php @@ -17,7 +17,7 @@ class DropForeignKeyInWarehouseitemsTable extends Migration // }); } - + /** * Reverse the migrations. * diff --git a/database/migrations/2018_06_04_070007_create_shipments_table.php b/database/migrations/2018_06_04_070007_create_shipments_table.php new file mode 100644 index 0000000..8980253 --- /dev/null +++ b/database/migrations/2018_06_04_070007_create_shipments_table.php @@ -0,0 +1,63 @@ +increments('id'); + $table->date('loading_date'); + $table->string('shipment_no'); + $table->string('departure_port'); + $table->string('container_no'); + $table->string('type_of_container'); + $table->date('last_etd'); + $table->date('last_eta'); + + //loading vehicle n driver + $table->string('driver_name'); + $table->integer('driver_contact_no'); + $table->string('trailer_no'); + $table->string('driver_ic_no'); + + //loading venue + $table->string('loading_address'); + $table->string('loading_city'); + $table->string('loading_state'); + $table->integer('contact_no'); + $table->string('country'); + $table->string('contact_person'); + $table->longText('remark'); + $table->unsignedInteger('so_id'); + $table->foreign('so_id') + ->references('id')->on('sos') + ->onDelete('cascade'); + $table->unsignedInteger('com_id'); + $table->foreign('com_id') + ->references('id')->on('companies') + ->onDelete('cascade'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('shipments'); + } +} diff --git a/database/migrations/2018_06_04_072809_create_shipmentitems_table.php b/database/migrations/2018_06_04_072809_create_shipmentitems_table.php new file mode 100644 index 0000000..195592d --- /dev/null +++ b/database/migrations/2018_06_04_072809_create_shipmentitems_table.php @@ -0,0 +1,39 @@ +increments('id'); + $table->unsignedInteger('so_id'); + $table->foreign('so_id') + ->references('id')->on('sos') + ->onDelete('cascade'); + $table->unsignedInteger('sa_id'); + $table->foreign('sa_id') + ->references('id')->on('shipments') + ->onDelete('cascade'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('shipmentitems'); + } +} diff --git a/database/migrations/2018_06_05_013512_create_customexams_table.php b/database/migrations/2018_06_05_013512_create_customexams_table.php new file mode 100644 index 0000000..12679e8 --- /dev/null +++ b/database/migrations/2018_06_05_013512_create_customexams_table.php @@ -0,0 +1,39 @@ +increments('id'); + $table->unsignedInteger('so_id'); + $table->foreign('so_id') + ->references('id')->on('sos') + ->onDelete('cascade'); + $table->date('custom_date'); + $table->date('new_etd'); + $table->date('new_eta'); + $table->date('release_date'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('customexams'); + } +} diff --git a/database/seeds/SoSeeder.php b/database/seeds/SoSeeder.php index 3418370..9c4e1a3 100644 --- a/database/seeds/SoSeeder.php +++ b/database/seeds/SoSeeder.php @@ -15,7 +15,7 @@ class SoSeeder extends Seeder { DB::table('sos')->insert([ - 'id' => '99', + 'id' => '1', 'ff_id' => '1', 'supplier_company_name' => 'SEED', 'supplier_contact_person' => 'SEED', diff --git a/database/seeds/SoitemSeeder.php b/database/seeds/SoitemSeeder.php index 7321f91..a056db1 100644 --- a/database/seeds/SoitemSeeder.php +++ b/database/seeds/SoitemSeeder.php @@ -18,7 +18,7 @@ class SoitemSeeder extends Seeder ([ - 'so_id' => '99', + 'so_id' => '1', 'status' => '1', 'order_id' => '1', 'brand_no' => '1', @@ -39,7 +39,7 @@ class SoitemSeeder extends Seeder ]), ([ - 'so_id' => '99', + 'so_id' => '1', 'status' => '0', 'order_id' => '1', 'brand_no' => '1', diff --git a/database/seeds/WarehousearrSeeder.php b/database/seeds/WarehousearrSeeder.php index 1ff9023..39d8a51 100644 --- a/database/seeds/WarehousearrSeeder.php +++ b/database/seeds/WarehousearrSeeder.php @@ -15,7 +15,7 @@ class WarehousearrSeeder extends Seeder { DB::table('warehousearrs')->insert([ - 'so_id' => '99', + 'so_id' => '1', 'receive_on'=> Carbon::now()->format('Y-m-d H:i:s'), 'transport_company_name'=> 'TEScief', 'consignment_note_no'=> '1', diff --git a/routes/api.php b/routes/api.php index 4a1d439..c91c774 100644 --- a/routes/api.php +++ b/routes/api.php @@ -34,7 +34,19 @@ Route::post('/warehousearr/warehouse_picture/{wa_id}','WarehousearrangementContr Route::post('/warehousearr/warehouse_item_picture/{wa_id}','WarehousearrangementController@warehouseitempic');//upload warehousepicture picture Route::put('/warehousearr/{wa_id}','WarehousearrangementController@update');//update the wrn Route::post('/decision','WarehousearrangementController@storedecision');//decision reject and request the wrn -Route::post('/decision/decisionitem','WarehousearrangementController@storedecisionitem');//decision item for reject and request +Route::post('/decision/decisionitem','WarehousearrangementController@storedecisionitem');//decision item for reject and request + + + +/* Shipment-arrangement */ +Route::get('/shipment','ShipmentarrangementController@index');//view the shipment +Route::post('/shipment','ShipmentarrangementController@store');//post the shipment + //update shipment?? +Route::post('/custom-exam','ShipmentarrangementController@customStore');;//post the custom-examintion +Route::put('/custom-exam','ShipmentarrangementController@customUpdate');//update the custom-examintion + + + /* Authentication */ Route::post('login', 'AuthController@login');