diff --git a/IES-Bandung/app/Http/Controllers/ObjectSellController.php b/IES-Bandung/app/Http/Controllers/ObjectSellController.php new file mode 100644 index 0000000000000000000000000000000000000000..6f88324d727848efe8a337e5540946f32e792a35 --- /dev/null +++ b/IES-Bandung/app/Http/Controllers/ObjectSellController.php @@ -0,0 +1,67 @@ +<?php + +namespace App\Http\Controllers; + +use Illuminate\Http\Request; + +use App\Http\Requests; +use App\Model\ObjectSell; +use App\Model\ObjectType; +use Validator; +use Auth; + +class ObjectSellController extends Controller +{ + protected function validator(array $request) { + return Validator::make($request, [ + 'objectName' => 'required', + 'objectTypeName' => 'required', + 'price' => 'required|numeric' + ]); + } + + public function createObjectSell(Request $request) { + $v = validator($request->all()); + if ($v->fails()) + return redirect()->back()->withErrors($v->errors()); + + $objectType = ObjectType::where('objectTypeName', $request->objectTypeName)->first(); + if ($objectType === null) { + $objectType = new ObjectType; + $objectType->objectTypeName = $request->objectTypeName; + $objectType->save(); + $objectType->objectTypeID = $objectType->id; + } + + $userId = Auth::user()['id']; + $item = new ObjectSell; + $item->vendorDBID = $userId; + $item->objectName = $request->objectName; + $item->objectTypeID = $objectType->objectTypeID; + $item->price = $request->price; + $item->save(); + + return redirect('/profile'); + } + + public function updateObjectSell(Request $request) { + $v = validator($request->all()); + if ($v->fails()) + return redirect()->back()->withErrors($v->errors()); + + $item = ObjectSell::find($id); + $item->objectName = $request->objectName; + $item->objectTypeID = $request->objectTypeID; + $item->price = $request->price; + $item->save(); + + return redirect('/profile'); + } + + public function deleteObjectSell(Request $request, $id) { + $item = ObjectSell::find($id); + $item->delete(); + + return redirect('/profile'); + } +} diff --git a/IES-Bandung/app/Http/Controllers/ProfileController.php b/IES-Bandung/app/Http/Controllers/ProfileController.php index c8442484a971ad070868f1ab549133b2ee021d96..6a6a810ef9a76199c2fa05d87fc47e63e5393cf0 100644 --- a/IES-Bandung/app/Http/Controllers/ProfileController.php +++ b/IES-Bandung/app/Http/Controllers/ProfileController.php @@ -20,19 +20,28 @@ class ProfileController extends Controller $this->userModel = new User(); } - public function index(){ - + public function index() { + if (Auth::check()) { + $username = Auth::user()['username']; + return $this->showProfile($username); + } + else { + return redirect('/login'); + } } public function showProfile($username) { $user = $this->userModel->getProfile($username); + if ($user === null) + return redirect('/'); + $userType = $user['userType']; - if($userType == "publicUser"){ + if($userType === "publicUser"){ $this->controller = new PublicUserController(); } - else if($userType == "vendor"){ + else if($userType === "vendor"){ $this->controller = new VendorUserController(); } else{ diff --git a/IES-Bandung/app/Http/Controllers/VendorUserController.php b/IES-Bandung/app/Http/Controllers/VendorUserController.php index 209e209a11f325066ae8c668ebfa39522a2d20cc..3e7d833d1651cf4a38f0a022a525b14374e0f98c 100644 --- a/IES-Bandung/app/Http/Controllers/VendorUserController.php +++ b/IES-Bandung/app/Http/Controllers/VendorUserController.php @@ -3,7 +3,9 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; + use App\Http\Requests; +use App\User; use App\Model\VendorUser; use App\Model\ObjectSell; use Auth; @@ -15,43 +17,22 @@ class VendorUserController extends Controller $this->VendorUserModel = new VendorUser(); } - public function index(){ - return view('vendorUser'); - } - - public function showProfile($userId){ - return view('vendorUser'); - } - - public function createObjectSellView() { - return view('objectSell'); - } - - public function createObjectSell(Request $request) { - $item = new ObjectSell; - $userId = Auth::user()['id']; - $item->vendorDBID = VendorUser::where('userID', $userId)->firstOrFail(); - $item->objectName = $request->objectName; - $item->objectTypeID = $request->objectTypeID; - $item->price = $request->price; - $item->save(); - } - - public function updateObjectSellView(Request $request, $id) { - $item = ObjectSell::find($id); - return view('objectSell', ['objectSell' => $item]); - } + public function viewProfile($username) { + $editable = Auth::check() ? Auth::user()['username'] === $username : false; + $user = User::where('username', $username)->first(); + $objects = ObjectSell:: + join('ObjectType', 'ObjectSell.objectTypeID', '=', 'ObjectType.objectTypeID')-> + where('vendorDBID', '=', $user->id)-> + select('ObjectSell.*', 'ObjectType.objectTypeName')-> + get(); - public function updateObjectSell(Request $request, $id) { - $item = ObjectSell::find($id); - $item->objectName = $request->objectName; - $item->objectTypeID = $request->objectTypeID; - $item->price = $request->price; - $item->save(); + return view('vendorUser', [ + 'editable' => $editable, + 'user' => $user, + 'objects' => $objects]); } - public function deleteObjectSell(Request $request, $id) { - $item = ObjectSell::find($id); - $item->delete(); + public function showProfile($username){ + return $this->viewProfile($username); } } diff --git a/IES-Bandung/app/Http/routes.php b/IES-Bandung/app/Http/routes.php index b1c3449335072e771a28ad1178e3bafea0ab53be..13a2002158e2b8c70d6ed42d487329d6e1efea12 100755 --- a/IES-Bandung/app/Http/routes.php +++ b/IES-Bandung/app/Http/routes.php @@ -13,33 +13,22 @@ Route::get('/', function () { if (!Auth::check()) - return Redirect::intended('login'); - return Redirect::intended('home'); + return Redirect::intended('/login'); + return Redirect::intended('/home'); }); Route::auth(); Route::get('/home', 'HomeController@index'); - +Route::get('/profile', 'ProfileController@index'); Route::get('/profile/{username}', ['uses' => 'ProfileController@showProfile']); // Route::post('/profile/edit', ['uses' => 'PublicUserController@editProfile']); -Route::get('/profile', function(){ - if (Auth::check()){ - $username = Auth::user()['username']; - return redirect()->action('ProfileController@showProfile', [$username]); - } - else{ - echo "Sorry, not logged in"; - } -}); // Vendor's object sell -Route::get('/item/add', 'VendorUserController@createObjectSellView'); -Route::post('item/add', 'VendorUserController@createObjectSell'); -Route::get('/item/{id}/update', ['uses' => 'VendorUserController@updateObjectSellView']); -Route::post('/item/{id}/update', ['uses' => 'VendorUserController@updateObjectSell']); -Route::get('/item/{id}/delete', ['uses' => 'VendorUserController@deleteObjectSell']); +Route::post('/item/add', 'ObjectSellController@createObjectSell'); +Route::post('/item/update', 'ObjectSellController@updateObjectSell'); +Route::post('/item/delete/{id}', ['uses' => 'ObjectSellController@deleteObjectSell']); Route::get('/market', 'MarketController@index'); diff --git a/IES-Bandung/app/Model/ObjectSell.php b/IES-Bandung/app/Model/ObjectSell.php index 7aba53ea86724eba425868301679e32bc986cdd8..860046d6bcd79fc4e2eab96ceb74e8c806e81652 100644 --- a/IES-Bandung/app/Model/ObjectSell.php +++ b/IES-Bandung/app/Model/ObjectSell.php @@ -6,8 +6,8 @@ use Illuminate\Database\Eloquent\Model; class ObjectSell extends Model { - // - $table = 'ObjectSell'; + // + protected $table = 'ObjectSell'; public function createNewObjectSell($vendorDBID, $objectName, $objectTypeID) { return $this->insert(array( @@ -20,6 +20,4 @@ class ObjectSell extends Model public function getAllObjectSell($vendorDBID) { return $this->join('ObjectType', 'ObjectSell.objectTypeID', '=', 'ObjectType.objectTypeID')->where('vendorDBID', '=', $vendorDBID)->get(); } - - // Assume VendorUser cannot update Object Sell once created. } diff --git a/IES-Bandung/app/Model/ObjectType.php b/IES-Bandung/app/Model/ObjectType.php index 7e73401e7a23104ffa33b6a543a4e3f07ba47f3c..45f73af42e6fc78558b4ef24b8c452f002eda434 100644 --- a/IES-Bandung/app/Model/ObjectType.php +++ b/IES-Bandung/app/Model/ObjectType.php @@ -7,7 +7,7 @@ use Illuminate\Database\Eloquent\Model; class ObjectType extends Model { // - $table = 'ObjectType' + protected $table = 'ObjectType'; public function createNewObjectType($newObjectName) { return $this->insert(array( diff --git a/IES-Bandung/app/User.php b/IES-Bandung/app/User.php index 00fdf35436c165048c84e02a929f9529df15467a..63051faebd99199e29b37447523e4c7df8486b4a 100755 --- a/IES-Bandung/app/User.php +++ b/IES-Bandung/app/User.php @@ -31,7 +31,7 @@ class User extends Authenticatable } public function getProfile($username) { - return $this->where('username', $username)->firstOrFail(); + return $this->where('username', $username)->first(); } public function updateTelNo($userID, $newTelNo) { diff --git a/IES-Bandung/resources/views/vendorUser.blade.php b/IES-Bandung/resources/views/vendorUser.blade.php index 22177332394e791c47b240aa4eca73abdc870b88..58b1576d433baebe2fce627ea78584de64406c04 100755 --- a/IES-Bandung/resources/views/vendorUser.blade.php +++ b/IES-Bandung/resources/views/vendorUser.blade.php @@ -31,7 +31,7 @@ </a> <div class="clear m-b"> <div class="m-b-sm m-t-sm"> - <span class="text22 text-white font-semibold">Kang Burhan</span> + <span class="text22 text-white font-semibold">{{ $user->fullName }}</span> <small class="m-l-sm text-info"><a href="#">@kangburhan</a></small> </div> <div class=""> @@ -102,102 +102,24 @@ </tr> </thead> <tbody> + @foreach ($objects as $object) <tr> - <td>1</td> + <td>{{ $object->objectSellID }}</td> <td> - <input type="text" value="Beras Rosben" class="fedit-barang toggle-display"></input> - <p class="tedit-barang toggle-display displayit">Beras Rosben</p> + <input type="text" value="{{ $object->objectName }}" class="fedit-barang toggle-display"></input> + <p class="tedit-barang toggle-display displayit">{{ $object->objectName }}</p> </td> <td> - <input type="text" value="Rp 12.000/Kg" class="fedit-barang toggle-display"></input> - <p class="tedit-barang toggle-display displayit">Rp 12.000/Kg</p> + <input type="text" value="Rp{{ $object->price }}/kg" class="fedit-barang toggle-display"></input> + <p class="tedit-barang toggle-display displayit">Rp{{ $object->price }}/kg</p> </td> <td> - <input type="text" value="Beras/Pokok" class="suggest fedit-barang toggle-display"></input> - <p class="tedit-barang toggle-display displayit">Beras/Pokok</p> + <input type="text" value="{{ $object->objectTypeName }}" class="suggest fedit-barang toggle-display"></input> + <p class="tedit-barang toggle-display displayit">{{ $object->objectTypeName }}</p> </td> - <td>1 Januari 2016 <span>(2 Months ago)</span></td> - </tr> - <tr> - <td>2</td> - <td> - <input type="text" value="Ayam" class="fedit-barang toggle-display"></input> - <p class="tedit-barang toggle-display displayit">Ayam</p> - </td> - <td> - <input type="text" value="Rp 35.000/Kg" class="fedit-barang toggle-display"></input> - <p class="tedit-barang toggle-display displayit">Rp 35.000/Kg</p> - </td> - <td> - <input type="text" value="Lauk" class="suggest fedit-barang toggle-display"></input> - <p class="tedit-barang toggle-display displayit">Lauk</p> - </td> - <td>1 Januari 2016 <span>(2 Months ago)</span></td> - </tr> - <tr> - <td>3</td> - <td> - <input type="text" value="Bawang Putih" class="fedit-barang toggle-display"></input> - <p class="tedit-barang toggle-display displayit">Bawang Putih</p> - </td> - <td> - <input type="text" value="Rp 35.000/Kg" class="fedit-barang toggle-display"></input> - <p class="tedit-barang toggle-display displayit">Rp 35.000/Kg</p> - </td> - <td> - <input type="text" value="Rempah" class="suggest fedit-barang toggle-display"></input> - <p class="tedit-barang toggle-display displayit">Rempah</p> - </td> - <td>1 Januari 2016 <span>(2 Months ago)</span></td> - </tr> - <tr> - <td>4</td> - <td> - <input type="text" value="Bawang Merah" class="fedit-barang toggle-display"></input> - <p class="tedit-barang toggle-display displayit">Bawang Merah</p> - </td> - <td> - <input type="text" value="Rp 40.000/Kg" class="fedit-barang toggle-display"></input> - <p class="tedit-barang toggle-display displayit">Rp 40.000/Kg</p> - </td> - <td> - <input type="text" value="Rempah" class="suggest fedit-barang toggle-display"></input> - <p class="tedit-barang toggle-display displayit">Rempah</p> - </td> - <td>1 Januari 2016 <span>(2 Months ago)</span></td> - </tr> - <tr> - <td>5</td> - <td> - <input type="text" value="Tomat" class="fedit-barang toggle-display"></input> - <p class="tedit-barang toggle-display displayit">Tomat</p> - </td> - <td> - <input type="text" value="Rp 25.000/Kg" class="fedit-barang toggle-display"></input> - <p class="tedit-barang toggle-display displayit">Rp 25.000/Kg</p> - </td> - <td> - <input type="text" value="Sayur" class="suggest fedit-barang toggle-display"></input> - <p class="tedit-barang toggle-display displayit">Sayur</p> - </td> - <td>1 Januari 2016 <span>(2 Months ago)</span></td> - </tr> - <tr> - <td>6</td> - <td> - <input type="text" value="Cabai" class="fedit-barang toggle-display"></input> - <p class="tedit-barang toggle-display displayit">Cabai</p> - </td> - <td> - <input type="text" value="Rp 45.000/Kg" class="fedit-barang toggle-display"></input> - <p class="tedit-barang toggle-display displayit">Rp 45.000/Kg</p> - </td> - <td> - <input type="text" value="Sayur" class="suggest fedit-barang toggle-display"></input> - <p class="tedit-barang toggle-display displayit">Sayur</p> - </td> - <td>1 Januari 2016 <span>(2 Months ago)</span></td> + <td>{{ $object->updated_at }}</td> </tr> + @endforeach </tbody> </table> </form> @@ -205,6 +127,7 @@ </div> </div> + @if ($editable) <div class="col-sm-12"> <button id="btn-toggle1" class="btn m-b-sm m-r-sm btn-default btn-addon"><i class="fa fa-plus"></i>Tambah Dagangan</button> </div> @@ -213,25 +136,27 @@ <div class="panel panel-default"> <div class="panel-heading font-bold">Tambah Dagangan</div> <div class="panel-body"> - <form role="form"> + <form role="form" method="POST" action="/item/add"> + {{ csrf_field() }} <div class="form-group"> <label>Nama Barang</label> - <input type="text" class="form-control" placeholder="Masukan Nama Barang"> + <input type="text" name="objectName" class="form-control" placeholder="Masukan Nama Barang"> </div> <div class="form-group"> <label>Jenis</label> - <input id="suggest" type="text" class="suggest form-control" placeholder="Masukkan Jenis Barang"> + <input id="suggest" type="text" name="objectTypeName" class="suggest form-control" placeholder="Masukkan Jenis Barang"> <p class="fz-tsize-small">This form support suggestion</p> </div> <div class="form-group"> <label>Harga</label> - <input type="text" class="form-control form-currency" placeholder="Harga Barang"> + <input type="text" name="price" class="form-control form-currency" placeholder="Harga Barang"> </div> <button type="submit" class="btn btn-sm btn-success">Tambahkan</button> </form> </div> </div> </div> + @endif </div> </div>