From 48e033f43669693684dac2c4e1da70ae4357e203 Mon Sep 17 00:00:00 2001 From: Zain Fauzan Rofie Azizi Date: Mon, 25 Jun 2018 09:38:03 +0800 Subject: [PATCH] bug fixing --- app/Company.php | 12 +++ app/Contact.php | 9 +- app/Http/Controllers/ContactController.php | 86 ++++++++++++------- .../Controllers/DeliveryInfoController.php | 1 + app/Http/Controllers/WarehouseController.php | 27 +++--- app/Warehouse.php | 8 +- ...28_add_foreign_key_to_warehouses_table.php | 37 ++++++++ 7 files changed, 133 insertions(+), 47 deletions(-) create mode 100644 database/migrations/2018_06_22_072528_add_foreign_key_to_warehouses_table.php diff --git a/app/Company.php b/app/Company.php index 8038d74..99937c0 100644 --- a/app/Company.php +++ b/app/Company.php @@ -19,4 +19,16 @@ class Company extends Model return $this->hasMany('App\Deliveryinfo'); } + + public function warehouse() { + + return $this->hasMany('App\Warehouse'); + + } + + public function contact() { + + return $this->hasMany('App\Contact'); + + } } diff --git a/app/Contact.php b/app/Contact.php index 62f2f64..fdc4610 100644 --- a/app/Contact.php +++ b/app/Contact.php @@ -8,21 +8,16 @@ class Contact extends Model { protected $fillable = ['company_id']; - public function user() - - { + public function user() { return $this->belongsTo(App/User); } - public function company() - { + public function company(){ return $this->belongsTo(App/Company); } - - } diff --git a/app/Http/Controllers/ContactController.php b/app/Http/Controllers/ContactController.php index 004a00b..99d0d58 100644 --- a/app/Http/Controllers/ContactController.php +++ b/app/Http/Controllers/ContactController.php @@ -8,52 +8,59 @@ use Illuminate\Http\Request; class ContactController extends Controller { + /** + * list the company that belongs to user's company only + * + * @param int $id + * @return \Illuminate\Http\Response + */ public function index() { - $contact=Contact::all(); - $response=[ - 'contact'=>$contact - ]; - return response()->json($contact, 200); + $contacts = Contact::where('user_id', Auth::user()->id)->where('id', $id)->first(); + + if (!$contacts) + { + return response()->json(['message'=>'Access Denied!'], 404); + } + + return response()->json($contacts, 200); } + /** + * Store a new contact list. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\Response + */ public function store(Request $request) { $user = Auth::user(); - - $contact = new Contact; - $contact->com_id = $user->company(); - - // get company id from request ex: - + // query to find company asisng to $company - // $company = Company::find($company_id); + $company = Company::find($com_id); // get user from session - // $request->user(); - // $user = $request->user(); + $request->user(); + $user = $request->user(); // prepare query - $contact = new Contact(); - $contact->company_id = $company->id; - $contact->user_id = $user->id; - $contact->save(); - // insert into database + $contact = new Contact(); + $contact->com_id = $company->id; + $contact->user_id = $user->id; + $contact->save(); + return response()->json($contact, 201); } - public function destroy($id) - { - $contact = Contact::where("user_id", Auth::user()->id)->where('id', $id)->first(); - //$contact=Contact::find($id); - $contact->delete(); - - return response()->json($contact, 204); - } - + /** + * Approve a new contact list. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\Response + */ public function postApprove(Request $request, $id) { - $contact = Contact::where("user_id", Auth::user()->id)->where('id', $id)->first(); + $contact = Contact::where('com_id', Auth::user()->company())->where('id', $id)->first(); //$contact = Contact::where('id', '=', e($id))->first(); if($contact) { @@ -67,6 +74,7 @@ class ContactController extends Controller $contact->status=0; } else{ + return response()->json(["message" => "not allowed"], 400); } @@ -82,4 +90,24 @@ class ContactController extends Controller //return redirect()->back()->with('info','Request has been approved '); } } + + /** + * Remove the contact list. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function destroy($id) + { + $contact = Contact::where('com_id', Auth::user()->company())->where('id', $id)->first(); + + if (!$contact) + { + return response()->json(['message'=>'Access Denied!'], 404); + } + + $contact->delete($id); + + return response()->json($contact, 204); + } } diff --git a/app/Http/Controllers/DeliveryInfoController.php b/app/Http/Controllers/DeliveryInfoController.php index aec2934..eb3a856 100644 --- a/app/Http/Controllers/DeliveryInfoController.php +++ b/app/Http/Controllers/DeliveryInfoController.php @@ -11,6 +11,7 @@ class DeliveryinfoController extends Controller public function index() { $deliveryinfo = Deliveryinfo::where('com_id', Auth::user()->company())->get(); + return response()->json($deliveryinfo, 200); } diff --git a/app/Http/Controllers/WarehouseController.php b/app/Http/Controllers/WarehouseController.php index 1124400..7771771 100644 --- a/app/Http/Controllers/WarehouseController.php +++ b/app/Http/Controllers/WarehouseController.php @@ -16,33 +16,40 @@ class WarehouseController extends Controller */ public function index() { - $warehouse = Warehouse::where('com_id', Auth::user()->company())->where('id', $id)->firstOrFail(); - - if (!$warehouse) + $warehouses = Warehouse::where('com_id', Auth::user()->company())->get(); + + if (!$warehouses) { return response()->json(['message'=>'Access Denied!'], 404); } - $warehouse=Warehouse::all(); + $warehouse = Warehouse::all(); - return response()->json($warehouse, 200); + return response()->json($warehouses, 200); } /** - * Display warehouse list from freight forwarder. + * Display warehouse list from freight forwarder. can list the warehouse if it is from the freight forwarder + * need to do DB query + * show all the warehouse that belongs to the user company * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { - $warehouse=Warehouse::find($id); - $response=[ + $warehouses = DB::table('warehouses') + //->join('id', 'address', 'city', 'zip') + ->select('id', 'address', 'city', 'zip', 'state', 'contact_person', 'contact_person_no', 'branch', 'country', 'com_id') + ->where('com_id', Auth::user()->company()) + ->get(); - 'warehouse'=>$warehouse + if (!$warehouses) + { + return response()->json(['message'=>'Access Denied!'], 404); + } - ]; return response()->json($warehouse, 200); } diff --git a/app/Warehouse.php b/app/Warehouse.php index 39dd681..1bfd5f8 100644 --- a/app/Warehouse.php +++ b/app/Warehouse.php @@ -6,5 +6,11 @@ use Illuminate\Database\Eloquent\Model; class Warehouse extends Model { - protected $fillable = ['city', 'address','zip','state','contact_person','contact_person_no','branch','country','company_id']; + protected $fillable = ['city', 'address','zip','state','contact_person','contact_person_no','branch','country','comp_id']; + + public function contact(){ + + return $this->hasMany(App/Contact); + + } } diff --git a/database/migrations/2018_06_22_072528_add_foreign_key_to_warehouses_table.php b/database/migrations/2018_06_22_072528_add_foreign_key_to_warehouses_table.php new file mode 100644 index 0000000..696304e --- /dev/null +++ b/database/migrations/2018_06_22_072528_add_foreign_key_to_warehouses_table.php @@ -0,0 +1,37 @@ +unsignedInteger('com_id');//FK wrn id + $table->foreign('com_id') + ->references('id')->on('warehouses') + ->onDelete('cascade'); + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('warehouses', function (Blueprint $table) { + // + }); + } +}