From 323c3807fa53beba90b3915047b59baf44ebbd20 Mon Sep 17 00:00:00 2001 From: Daniel Meltzer Date: Tue, 20 Dec 2016 00:00:50 -0600 Subject: [PATCH] Cleanup controller escaping (#3084) * Make delete routes work. We put a little form in the modal that spoofs the delete field. * Fix route on creating a user. * Fix redundant id parameter. * Port acceptance tests to new urls. * Initial work on migrating to model based policies instead of global gates. Will allow for much more detailed permissions bits in the future. * This needs to stay for the dashboard checks. * Add user states for permissions to build tests. * Build up unit tests for gates/permissions. Move accessories/consumables/assets to policies instead of in authserviceprovider * Migrate various locations to new syntax. Update test to be more specific * Fix functional tests. Add an artisan command for installing a settings setup on travis-ci * Try a different id... Need to come up with a better way of passing the id for tests that need an existing one. * Try to fix travis * Update urls to use routes and not hardcode old paths. Also fix some migration errors found along the way.: * Add a environment for travis functional tests. * Adjust config file to make travis use it. * Use redirect()->route instead of redirect()-to * Dump all failures in the output directory if travis fails. * Cleanups and minor fixes. * Adjust the supplier modelfactory to comply with new validation restrictions. * Some test fixes. * Locales can be longer than 5 characters according to faker... fex gez_ET. Increase lenght in mysql and add a validation * Update test database dump to latest migrations. * Extend Supplier phone/fax length. This catches issues found in testing with a phone number with a five digit extension. fex (356) 654-3024 x36632 Also move away from escaping all values put into eloquent. Eloquent already uses PDO parameter binding, and this was leading to names like Mr Ryan O'Malley turning into an html escaped version of that name when stored. All values should be escaped when using {{}}, we'll just have to be more cautious when we use {!!, but I think we already are? * Remove additional escaping here, like we did in suppliers controller. * No need to eager load all of these relationships when we can call the count on the querybuilder directly * Work on controller cleanup * Always start from scrach, catches more issues this way. * Update sql dump. Remove old code from permissions test. * Generate a deletable item on demand in the test, rather than relying on one existing. I think we should probably move to mock all the database stuff at some point.. * More travis related fixes * Break script into multiple functional lines * Update all controllers to use the new helper, also cleanup syntax and docblocks along the way. --- .env.testing | 2 +- .env.tests | 4 + .travis.yml | 5 +- app/Helpers/Helper.php | 29 + .../Controllers/AccessoriesController.php | 234 +++---- .../AssetMaintenancesController.php | 109 ++- .../Controllers/AssetModelsController.php | 173 ++--- app/Http/Controllers/AssetsController.php | 650 ++++++------------ app/Http/Controllers/CategoriesController.php | 314 ++++----- app/Http/Controllers/CompaniesController.php | 71 +- app/Http/Controllers/ComponentsController.php | 182 ++--- .../Controllers/ConsumablesController.php | 183 ++--- .../Controllers/DepreciationsController.php | 123 ++-- app/Http/Controllers/GroupsController.php | 82 +-- app/Http/Controllers/LicensesController.php | 460 ++++++------- app/Http/Controllers/LocationsController.php | 170 +++-- .../Controllers/ManufacturersController.php | 275 ++++---- app/Http/Controllers/ProfileController.php | 22 +- .../Controllers/StatuslabelsController.php | 124 ++-- app/Http/Controllers/SuppliersController.php | 159 ++--- app/Http/Controllers/UsersController.php | 451 +++++------- app/Models/Supplier.php | 4 +- ...hone_lengths_in_supplier_and_elsewhere.php | 37 + tests/_data/dump.sql | 83 +-- tests/_envs/testing-ci.yml | 7 +- tests/functional.suite.yml | 4 +- tests/functional/AssetModelsCest.php | 3 +- tests/functional/CategoriesCest.php | 3 +- tests/functional/GroupsCest.php | 7 +- tests/functional/ManufacturersCest.php | 5 +- tests/functional/SuppliersCest.php | 6 +- tests/unit/PermissionsTest.php | 18 +- 32 files changed, 1716 insertions(+), 2283 deletions(-) create mode 100644 database/migrations/2016_12_19_133936_extend_phone_lengths_in_supplier_and_elsewhere.php diff --git a/.env.testing b/.env.testing index 7a44e2154d48..246ca6363848 100644 --- a/.env.testing +++ b/.env.testing @@ -21,7 +21,7 @@ DB_PASSWORD=null # -------------------------------------------- # REQUIRED: OUTGOING MAIL SERVER SETTINGS # -------------------------------------------- -MAIL_DRIVER=smtp +MAIL_DRIVER=log MAIL_HOST=email-smtp.us-west-2.amazonaws.com MAIL_PORT=587 MAIL_USERNAME=YOURUSERNAME diff --git a/.env.tests b/.env.tests index 1d09bfbb855a..d1d7a666f3b0 100644 --- a/.env.tests +++ b/.env.tests @@ -15,3 +15,7 @@ APP_KEY=base64:tu9NRh/a6+dCXBDGvg0Gv/0TcABnFsbT4AKxrr8mwQo= # -------------------------------------------- LOGIN_MAX_ATTEMPTS=1000000 LOGIN_LOCKOUT_DURATION=100000000 + +MAIL_DRIVER=log +MAIL_FROM_ADDR=you@example.com +MAIL_FROM_NAME=Snipe-IT diff --git a/.travis.yml b/.travis.yml index e68578b2bc9f..09e7db8734e6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,7 +35,10 @@ before_script: # omitting "script:" will default to phpunit # use the $DB env variable to determine the phpunit.xml to use # script: ./vendor/bin/codecept run --env testing-ci -script: ./vendor/bin/codecept run unit --env testing-ci && ./vendor/bin/codecept run functional --env=functional-travis +script: + - ./vendor/bin/codecept run unit --env testing-ci + - ./vendor/bin/codecept run acceptance --env=testing-ci + - ./vendor/bin/codecept run functional --env=functional-travis #script: ./vendor/bin/codecept run after_success: diff --git a/app/Helpers/Helper.php b/app/Helpers/Helper.php index 22b67ed9b0ba..b88314931e22 100644 --- a/app/Helpers/Helper.php +++ b/app/Helpers/Helper.php @@ -685,5 +685,34 @@ public static function stripTagsFromJSON(Array $array) { } + /** + * Generate html button for datatable actions. + * @author Daniel Meltzer + * @since 3.7 + * @param string $type + * @param string $route + * @param boolean $enabled Used for checkin/checkout + * @param string $message Used for Delete Modal + * @param string $itemName Used for Delete Modal + * @return string + */ + public static function generateDatatableButton($type, $route, $enabled = true, $message = null, $itemName = null) + { + $disabledString = $enabled ? '' : 'disabled'; + switch($type) { + case 'checkout': + return '' . trans('general.checkout') . ''; + case 'checkin': + return ''.trans('general.checkin').''; + case 'edit': + return ''; + case 'clone': + return ''; + case 'delete': + return ''; + case 'restore': + return ''; + } + } } diff --git a/app/Http/Controllers/AccessoriesController.php b/app/Http/Controllers/AccessoriesController.php index e99414c3faee..073b6bdc6f66 100755 --- a/app/Http/Controllers/AccessoriesController.php +++ b/app/Http/Controllers/AccessoriesController.php @@ -77,28 +77,28 @@ public function store(Request $request) $accessory = new Accessory(); // Update the accessory data - $accessory->name = e(Input::get('name')); - $accessory->category_id = e(Input::get('category_id')); - $accessory->location_id = e(Input::get('location_id')); - $accessory->min_amt = e(Input::get('min_amt')); - $accessory->company_id = Company::getIdForCurrentUser(Input::get('company_id')); - $accessory->order_number = e(Input::get('order_number')); - $accessory->manufacturer_id = e(Input::get('manufacturer_id')); - $accessory->model_number = e(Input::get('model_number')); - - if (e(Input::get('purchase_date')) == '') { + $accessory->name = request('name'); + $accessory->category_id = request('category_id'); + $accessory->location_id = request('location_id'); + $accessory->min_amt = request('min_amt'); + $accessory->company_id = Company::getIdForCurrentUser(request('company_id')); + $accessory->order_number = request('order_number'); + $accessory->manufacturer_id = request('manufacturer_id'); + $accessory->model_number = request('model_number'); + + if (request('purchase_date') == ''){ $accessory->purchase_date = null; } else { - $accessory->purchase_date = e(Input::get('purchase_date')); + $accessory->purchase_date = request('purchase_date'); } - if (e(Input::get('purchase_cost')) == '0.00') { + if (request('purchase_cost') == '0.00'){ $accessory->purchase_cost = null; } else { - $accessory->purchase_cost = Helper::ParseFloat(e(Input::get('purchase_cost'))); + $accessory->purchase_cost = Helper::ParseFloat(request('purchase_cost')); } - $accessory->qty = e(Input::get('qty')); + $accessory->qty = request('qty'); $accessory->user_id = Auth::user()->id; // Was the accessory created? @@ -107,8 +107,6 @@ public function store(Request $request) // Redirect to the new accessory page return redirect()->route('accessories.index')->with('success', trans('admin/accessories/message.create.success')); } - - return redirect()->back()->withInput()->withErrors($accessory->getErrors()); } @@ -154,44 +152,41 @@ public function update(Request $request, $accessoryId = null) $this->authorize($accessory); - // Update the accessory data - $accessory->name = e(Input::get('name')); + // Update the accessory data + $accessory->name = e(request('name')); - if (e(Input::get('location_id')) == '') { + if (e(request('location_id')) == '') { $accessory->location_id = null; } else { - $accessory->location_id = e(Input::get('location_id')); + $accessory->location_id = request('location_id'); } - $accessory->min_amt = e(Input::get('min_amt')); - $accessory->category_id = e(Input::get('category_id')); - $accessory->company_id = Company::getIdForCurrentUser(Input::get('company_id')); - $accessory->manufacturer_id = e(Input::get('manufacturer_id')); - $accessory->order_number = e(Input::get('order_number')); - $accessory->model_number = e(Input::get('model_number')); - - if (e(Input::get('purchase_date')) == '') { + $accessory->min_amt = request('min_amt'); + $accessory->category_id = request('category_id'); + $accessory->company_id = Company::getIdForCurrentUser(request('company_id')); + $accessory->manufacturer_id = request('manufacturer_id'); + $accessory->order_number = request('order_number'); + $accessory->model_number = request('model_number'); + + if (request('purchase_date') == '') { $accessory->purchase_date = null; } else { - $accessory->purchase_date = e(Input::get('purchase_date')); + $accessory->purchase_date = request('purchase_date'); } - if (e(Input::get('purchase_cost')) == '0.00') { + if (request('purchase_cost') == '0.00') { $accessory->purchase_cost = null; } else { - $accessory->purchase_cost = e(Input::get('purchase_cost')); + $accessory->purchase_cost = request('purchase_cost'); } - $accessory->qty = e(Input::get('qty')); + $accessory->qty = request('qty'); // Was the accessory updated? if ($accessory->save()) { // Redirect to the updated accessory page return redirect()->route('accessories.index')->with('success', trans('admin/accessories/message.update.success')); } - - return redirect()->back()->withInput()->withErrors($accessory->getErrors()); - } /** @@ -214,13 +209,10 @@ public function destroy(Request $request, $accessoryId) if ($accessory->hasUsers() > 0) { return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.assoc_users', array('count'=> $accessory->hasUsers()))); - } else { - $accessory->delete(); - - // Redirect to the locations management page - return redirect()->route('accessories.index')->with('success', trans('admin/accessories/message.delete.success')); - } + $accessory->delete(); + // Redirect to the locations management page + return redirect()->route('accessories.index')->with('success', trans('admin/accessories/message.delete.success')); } @@ -230,7 +222,7 @@ public function destroy(Request $request, $accessoryId) * the content for the accessory detail view, which is generated in getDataView. * * @author [A. Gianotto] [] - * @param int $accessoryId + * @param int $accessoryID * @see AccessoriesController::getDataView() method that generates the JSON response * @since [v1.0] * @return View @@ -241,15 +233,12 @@ public function show(Request $request, $accessoryID = null) $this->authorize('view', $accessory); if (isset($accessory->id)) { return View::make('accessories/view', compact('accessory')); - } else { - // Prepare the error message - $error = trans('admin/accessories/message.does_not_exist', compact('id')); - - // Redirect to the user management page - return redirect()->route('accessories')->with('error', $error); } + // Prepare the error message + $error = trans('admin/accessories/message.does_not_exist', compact('id')); - + // Redirect to the user management page + return redirect()->route('accessories')->with('error', $error); } /** @@ -270,9 +259,7 @@ public function getCheckout(Request $request, $accessoryId) $this->authorize('checkout', $accessory); // Get the dropdown of users and then pass it to the checkout view - $users_list = Helper::usersList(); - - return View::make('accessories/checkout', compact('accessory'))->with('users_list', $users_list); + return View::make('accessories/checkout', compact('accessory'))->with('users_list', Helper::usersList()); } @@ -311,14 +298,11 @@ public function postCheckout(Request $request, $accessoryId) $logaction = $accessory->logCheckout(e(Input::get('note'))); - - $admin_user = Auth::user(); $settings = Setting::getSettings(); if ($settings->slack_endpoint) { - $slack_settings = [ 'username' => $settings->botname, 'channel' => $settings->slack_channel, @@ -347,8 +331,7 @@ public function postCheckout(Request $request, $accessoryId) } - - $accessory_user = DB::table('accessories_users')->where('assigned_to', '=', $accessory->assigned_to)->where('accessory_id', '=', $accessory->id)->first(); + DB::table('accessories_users')->where('assigned_to', '=', $accessory->assigned_to)->where('accessory_id', '=', $accessory->id)->first(); $data['log_id'] = $logaction->id; $data['eula'] = $accessory->getEula(); @@ -372,19 +355,19 @@ public function postCheckout(Request $request, $accessoryId) // Redirect to the new accessory page return redirect()->route('accessories.index')->with('success', trans('admin/accessories/message.checkout.success')); - - - } - /** - * Check the accessory back into inventory - * - * @author [A. Gianotto] [] - * @param int $accessoryId - * @return View - **/ + /** + * Check the accessory back into inventory + * + * @author [A. Gianotto] [] + * @param Request $request + * @param integer $accessoryUserId + * @param string $backto + * @return View + * @internal param int $accessoryId + */ public function getCheckin(Request $request, $accessoryUserId = null, $backto = null) { // Check if the accessory exists @@ -399,14 +382,17 @@ public function getCheckin(Request $request, $accessoryUserId = null, $backto = } - /** - * Check in the item so that it can be checked out again to someone else - * - * @uses Accessory::checkin_email() to determine if an email can and should be sent - * @author [A. Gianotto] [] - * @param int $accessoryId - * @return Redirect - **/ + /** + * Check in the item so that it can be checked out again to someone else + * + * @uses Accessory::checkin_email() to determine if an email can and should be sent + * @author [A. Gianotto] [] + * @param Request $request + * @param integer $accessoryUserId + * @param string $backto + * @return Redirect + * @internal param int $accessoryId + */ public function postCheckin(Request $request, $accessoryUserId = null, $backto = null) { // Check if the accessory exists @@ -415,7 +401,6 @@ public function postCheckin(Request $request, $accessoryUserId = null, $backto = return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.not_found')); } - $accessory = Accessory::find($accessory_user->accessory_id); $this->authorize('checkin', $accessory); @@ -424,8 +409,7 @@ public function postCheckin(Request $request, $accessoryUserId = null, $backto = $logaction = $accessory->logCheckin(User::find($return_to), e(Input::get('note'))); $admin_user = Auth::user(); - - // Was the accessory updated? + // Was the accessory updated? if (DB::table('accessories_users')->where('id', '=', $accessory_user->id)->delete()) { $settings = Setting::getSettings(); @@ -485,42 +469,41 @@ public function postCheckin(Request $request, $accessoryUserId = null, $backto = if ($backto=='user') { return redirect()->route("users.show", $return_to)->with('success', trans('admin/accessories/message.checkin.success')); - } else { - return redirect()->route("accessories.show", $accessory->id)->with('success', trans('admin/accessories/message.checkin.success')); } + return redirect()->route("accessories.show", $accessory->id)->with('success', trans('admin/accessories/message.checkin.success')); } - // Redirect to the accessory management page with error return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.checkin.error')); } /** - * Generates the JSON response for accessories listing view. - * - * Example: - * { - * "actions": "(links to available actions)", - * "category": "(link to category)", - * "companyName": "My Company", - * "location": "My Location", - * "min_amt": 2, - * "name": "(link to accessory), - * "numRemaining": 6, - * "order_number": null, - * "purchase_cost": "0.00", - * "purchase_date": null, - * "qty": 7 - * }, - * - * The names of the fields in the returns JSON correspond directly to the the - * names of the fields in the bootstrap-tables in the view. - * - * For debugging, see at /api/accessories/list - * - * @author [A. Gianotto] [] - * @param int $accessoryId - * @return string JSON containing accessories and their associated atrributes. - **/ + * Generates the JSON response for accessories listing view. + * + * Example: + * { + * "actions": "(links to available actions)", + * "category": "(link to category)", + * "companyName": "My Company", + * "location": "My Location", + * "min_amt": 2, + * "name": "(link to accessory), + * "numRemaining": 6, + * "order_number": null, + * "purchase_cost": "0.00", + * "purchase_date": null, + * "qty": 7 + * }, + * + * The names of the fields in the returns JSON correspond directly to the the + * names of the fields in the bootstrap-tables in the view. + * + * For debugging, see at /api/accessories/list + * + * @author [A. Gianotto] [] + * @param Request $request + * @return string JSON containing accessories and their associated atrributes. + * @internal param int $accessoryId + */ public function getDatatable(Request $request) { $this->authorize('index', Accessory::class); @@ -532,19 +515,8 @@ public function getDatatable(Request $request) if (Input::has('search')) { $accessories = $accessories->TextSearch(e(Input::get('search'))); } - - if (Input::has('offset')) { - $offset = e(Input::get('offset')); - } else { - $offset = 0; - } - - if (Input::has('limit')) { - $limit = e(Input::get('limit')); - } else { - $limit = 50; - } - + $offset = request('offset', 0); + $limit = request('limit', 50); $allowed_columns = ['name','min_amt','order_number','purchase_date','purchase_cost','companyName','category','model_number']; $order = Input::get('order') === 'asc' ? 'asc' : 'desc'; @@ -571,16 +543,23 @@ public function getDatatable(Request $request) $actions = ''; if (Gate::allows('checkout', $accessory)) { - $actions .= 'numRemaining() > 0) ? '' : ' disabled') . '>' . trans('general.checkout') . ''; + $actions .= Helper::generateDatatableButton( + 'checkout', + route('checkout/accessory', $accessory->id), + $accessory->numRemaining() > 0 + ); } if (Gate::allows('update', $accessory)) { - $actions .= ''; + $actions .= Helper::generateDatatableButton('edit', route('accessories.update', $accessory->id)); } if (Gate::allows('delete', $accessory)) { - $actions .= ''; + $actions .= Helper::generateDatatableButton( + 'delete', + route('accessories.destroy', $accessory->id), + $enabled = true, + trans('admin/accessories/message.delete.confirm'), + $accessory->name + ); } $actions .= ''; $company = $accessory->company; @@ -650,8 +629,7 @@ public function getDataView(Request $request, $accessoryID) foreach ($accessory_users as $user) { $actions = ''; if (Gate::allows('checkin', $accessory)) { - $actions .= 'Checkin'; + $actions .= Helper::generateDatatableButton('checkin', route('checkin/accessory', $user->pivot->id)); } if (Gate::allows('view', $user)) { diff --git a/app/Http/Controllers/AssetMaintenancesController.php b/app/Http/Controllers/AssetMaintenancesController.php index b6f2f9dbfa2d..0c80a0413d68 100644 --- a/app/Http/Controllers/AssetMaintenancesController.php +++ b/app/Http/Controllers/AssetMaintenancesController.php @@ -61,7 +61,6 @@ private static function getInsufficientPermissionsRedirect() */ public function index() { - return View::make('asset_maintenances/index'); } @@ -83,18 +82,8 @@ public function getDatatable(Request $request) $maintenances = $maintenances->TextSearch(e($request->input('search'))); } - - if ($request->has('offset')) { - $offset = e($request->input('offset')); - } else { - $offset = 0; - } - - if (Input::has('limit')) { - $limit = e($request->input('limit')); - } else { - $limit = 50; - } + $offset = request('offset', 0); + $limit = request('limit', 50); $allowed_columns = ['id','title','asset_maintenance_time','asset_maintenance_type','cost','start_date','completion_date','notes','user_id']; $order = Input::get('order') === 'asc' ? 'asc' : 'desc'; @@ -118,9 +107,14 @@ public function getDatatable(Request $request) foreach ($maintenances as $maintenance) { $actions = ''; if (Gate::allows('update', Asset::class)) { - $actions .= ''; + $actions .= Helper::generateDatatableButton('edit', route('maintenances.edit', $maintenance->id)); + $actions .= Helper::generateDatatableButton( + 'delete', + route('maintenances.destroy', $maintenance->id), + $enabled = true, + trans('admin/asset_maintenances/message.delete.confirm'), + $maintenance->title + ); } if (($maintenance->cost) && (isset($maintenance->asset)) && ($maintenance->asset->assetloc) && ($maintenance->asset->assetloc->currency!='')) { @@ -167,17 +161,11 @@ public function create() '' => 'Select an asset maintenance type', ] + AssetMaintenance::getImprovementOptions(); // Mark the selected asset, if it came in - $selectedAsset = request('asset_id'); - - $assets = Helper::detailedAssetList(); - - $supplier_list = Helper::suppliersList(); - // Render the view return View::make('asset_maintenances/edit') - ->with('asset_list', $assets) - ->with('selectedAsset', $selectedAsset) - ->with('supplier_list', $supplier_list) + ->with('asset_list', Helper::detailedAssetList()) + ->with('selectedAsset', request('asset_id')) + ->with('supplier_list', Helper::suppliersList()) ->with('assetMaintenanceType', $assetMaintenanceType) ->with('item', new AssetMaintenance); } @@ -193,14 +181,9 @@ public function create() */ public function store(Request $request) { - - // get the POST data - $new = $request->all(); -// dd($new); // create a new model instance $assetMaintenance = new AssetMaintenance(); - if (e(Input::get('supplier_id')) == '') { $assetMaintenance->supplier_id = null; } else { @@ -232,12 +215,12 @@ public function store(Request $request) } // Save the asset maintenance data - $assetMaintenance->asset_id = e($request->input('asset_id')); - $assetMaintenance->asset_maintenance_type = e($request->input('asset_maintenance_type')); - $assetMaintenance->title = e($request->input('title')); - $assetMaintenance->start_date = e($request->input('start_date')); - $assetMaintenance->completion_date = e($request->input('completion_date')); - $assetMaintenance->user_id = Auth::user()->id; + $assetMaintenance->asset_id = $request->input('asset_id'); + $assetMaintenance->asset_maintenance_type = $request->input('asset_maintenance_type'); + $assetMaintenance->title = $request->input('title'); + $assetMaintenance->start_date = $request->input('start_date'); + $assetMaintenance->completion_date = $request->input('completion_date'); + $assetMaintenance->user_id = Auth::id(); if (( $assetMaintenance->completion_date == "" ) || ( $assetMaintenance->completion_date == "0000-00-00" ) @@ -308,36 +291,30 @@ public function edit($assetMaintenanceId = null) '' => 'Select an improvement type', ] + AssetMaintenance::getImprovementOptions(); - $assets = Helper::detailedAssetList(); // Get Supplier List - $supplier_list = Helper::suppliersList(); - // Render the view return View::make('asset_maintenances/edit') - ->with('asset_list', $assets) + ->with('asset_list', Helper::detailedAssetList()) ->with('selectedAsset', null) - ->with('supplier_list', $supplier_list) + ->with('supplier_list', Helper::suppliersList()) ->with('assetMaintenanceType', $assetMaintenanceType) ->with('item', $assetMaintenance); } /** - * Validates and stores an update to an asset maintenance - * - * @see AssetMaintenancesController::postEdit() method that stores the data - * @author Vincent Sposato - * @param int $assetMaintenanceId - * @version v1.0 - * @since [v1.8] - * @return mixed - */ + * Validates and stores an update to an asset maintenance + * + * @see AssetMaintenancesController::postEdit() method that stores the data + * @author Vincent Sposato + * @param Request $request + * @param int $assetMaintenanceId + * @return mixed + * @version v1.0 + * @since [v1.8] + */ public function update(Request $request, $assetMaintenanceId = null) { - - // get the POST data - $new = $request->all(); - // Check if the asset maintenance exists if (is_null($assetMaintenance = AssetMaintenance::find($assetMaintenanceId))) { // Redirect to the asset maintenance management page @@ -347,44 +324,42 @@ public function update(Request $request, $assetMaintenanceId = null) return static::getInsufficientPermissionsRedirect(); } - - - if (e(Input::get('supplier_id')) == '') { + if (request('supplier_id') == '') { $assetMaintenance->supplier_id = null; } else { $assetMaintenance->supplier_id = e($request->input('supplier_id')); } - if (e(Input::get('is_warranty')) == '') { + if (request('is_warranty') == '') { $assetMaintenance->is_warranty = 0; } else { $assetMaintenance->is_warranty = e($request->input('is_warranty')); } - if (e(Input::get('cost')) == '') { + if (request('cost') == '') { $assetMaintenance->cost = ''; } else { $assetMaintenance->cost = Helper::ParseFloat(e($request->input('cost'))); } - if (e(Input::get('notes')) == '') { + if (request('notes') == '') { $assetMaintenance->notes = null; } else { $assetMaintenance->notes = e($request->input('notes')); } - $asset = Asset::find(e(Input::get('asset_id'))); + $asset = Asset::find(request('asset_id')); if (!Company::isCurrentUserHasAccess($asset)) { return static::getInsufficientPermissionsRedirect(); } // Save the asset maintenance data - $assetMaintenance->asset_id = e($request->input('asset_id')); - $assetMaintenance->asset_maintenance_type = e($request->input('asset_maintenance_type')); - $assetMaintenance->title = e($request->input('title')); - $assetMaintenance->start_date = e($request->input('start_date')); - $assetMaintenance->completion_date = e($request->input('completion_date')); + $assetMaintenance->asset_id = $request->input('asset_id'); + $assetMaintenance->asset_maintenance_type = $request->input('asset_maintenance_type'); + $assetMaintenance->title = $request->input('title'); + $assetMaintenance->start_date = $request->input('start_date'); + $assetMaintenance->completion_date = $request->input('completion_date'); if (( $assetMaintenance->completion_date == "" ) || ( $assetMaintenance->completion_date == "0000-00-00" ) @@ -415,8 +390,6 @@ public function update(Request $request, $assetMaintenanceId = null) ->with('success', trans('admin/asset_maintenances/message.create.success')); } return redirect()->back()->withInput()->withErrors($assetMaintenance->getErrors()); - - } /** diff --git a/app/Http/Controllers/AssetModelsController.php b/app/Http/Controllers/AssetModelsController.php index 6cd4282f75af..548aeb1b866c 100755 --- a/app/Http/Controllers/AssetModelsController.php +++ b/app/Http/Controllers/AssetModelsController.php @@ -53,13 +53,10 @@ public function index() public function create() { // Show the page - $depreciation_list = Helper::depreciationList(); - $manufacturer_list = Helper::manufacturerList(); - $category_list = Helper::categoryList('asset'); return View::make('models/edit') - ->with('category_list', $category_list) - ->with('depreciation_list', $depreciation_list) - ->with('manufacturer_list', $manufacturer_list) + ->with('category_list', Helper::categoryList('asset')) + ->with('depreciation_list', Helper::depreciationList()) + ->with('manufacturer_list', Helper::manufacturerList()) ->with('item', new AssetModel); } @@ -77,33 +74,31 @@ public function store(Request $request) // Create a new asset model $model = new AssetModel; - - if (e($request->input('depreciation_id')) == '') { + if ($request->input('depreciation_id') == '') { $model->depreciation_id = 0; } else { - $model->depreciation_id = e($request->input('depreciation_id')); + $model->depreciation_id = $request->input('depreciation_id'); } - if (e($request->input('eol')) == '') { + if ($request->input('eol') == '') { $model->eol = 0; } else { - $model->eol = e($request->input('eol')); + $model->eol = $request->input('eol'); } // Save the model data - $model->name = e($request->input('name')); - $model->model_number = e($request->input('model_number')); - $model->manufacturer_id = e($request->input('manufacturer_id')); - $model->category_id = e($request->input('category_id')); - $model->notes = e($request->input('notes')); - $model->user_id = Auth::user()->id; + $model->name = $request->input('name'); + $model->model_number = $request->input('model_number'); + $model->manufacturer_id = $request->input('manufacturer_id'); + $model->category_id = $request->input('category_id'); + $model->notes = $request->input('notes'); + $model->user_id = Auth::id(); $model->requestable = Input::has('requestable'); if ($request->input('custom_fieldset')!='') { $model->fieldset_id = e($request->input('custom_fieldset')); } - if (Input::file('image')) { $image = Input::file('image'); $file_name = str_random(25).".".$image->getClientOriginalExtension(); @@ -120,19 +115,18 @@ public function store(Request $request) // Redirect to the new model page return redirect()->route("models.index")->with('success', trans('admin/models/message.create.success')); } - - return redirect()->back()->withInput()->withErrors($model->getErrors()); - + return redirect()->back()->withInput()->withErrors($model->getErrors()); } /** - * Validates and stores new Asset Model data created from the - * modal form on the Asset Creation view. - * - * @author [A. Gianotto] [] - * @since [v2.0] - * @return String JSON - */ + * Validates and stores new Asset Model data created from the + * modal form on the Asset Creation view. + * + * @author [A. Gianotto] [] + * @since [v2.0] + * @param Request $request + * @return String JSON + */ public function apiStore(Request $request) { //COPYPASTA!!!! FIXME @@ -141,12 +135,12 @@ public function apiStore(Request $request) $settings=Input::all(); $settings['eol']= null; - $model->name=e($request->input('name')); - $model->manufacturer_id = e($request->input('manufacturer_id')); - $model->category_id = e($request->input('category_id')); - $model->model_number = e($request->input('model_number')); - $model->user_id = Auth::user()->id; - $model->notes = e($request->input('notes')); + $model->name=$request->input('name'); + $model->manufacturer_id = $request->input('manufacturer_id'); + $model->category_id = $request->input('category_id'); + $model->model_number = $request->input('model_number'); + $model->user_id = Auth::id(); + $model->notes = $request->input('notes'); $model->eol= null; if ($request->input('fieldset_id')=='') { @@ -179,14 +173,10 @@ public function edit($modelId = null) return redirect()->route('models.index')->with('error', trans('admin/models/message.does_not_exist')); } - $depreciation_list = Helper::depreciationList(); - $manufacturer_list = Helper::manufacturerList(); - $category_list = Helper::categoryList('asset'); - $view = View::make('models/edit', compact('item')); - $view->with('category_list', $category_list); - $view->with('depreciation_list', $depreciation_list); - $view->with('manufacturer_list', $manufacturer_list); + $view->with('category_list', Helper::categoryList('asset')); + $view->with('depreciation_list', Helper::depreciationList()); + $view->with('manufacturer_list', Helper::manufacturerList()); return $view; } @@ -208,31 +198,30 @@ public function update(Request $request, $modelId = null) return redirect()->route('models.index')->with('error', trans('admin/models/message.does_not_exist')); } - - if (e($request->input('depreciation_id')) == '') { + if ($request->input('depreciation_id') == '') { $model->depreciation_id = 0; } else { - $model->depreciation_id = e($request->input('depreciation_id')); + $model->depreciation_id = $request->input('depreciation_id'); } - if (e($request->input('eol')) == '') { + if ($request->input('eol') == '') { $model->eol = null; } else { - $model->eol = e($request->input('eol')); + $model->eol = $request->input('eol'); } - $model->name = e($request->input('name')); - $model->model_number = e($request->input('model_number')); - $model->manufacturer_id = e($request->input('manufacturer_id')); - $model->category_id = e($request->input('category_id')); - $model->notes = e($request->input('notes')); + $model->name = $request->input('name'); + $model->model_number = $request->input('model_number'); + $model->manufacturer_id = $request->input('manufacturer_id'); + $model->category_id = $request->input('category_id'); + $model->notes = $request->input('notes'); $model->requestable = Input::has('requestable'); if ($request->input('custom_fieldset')=='') { $model->fieldset_id = null; } else { - $model->fieldset_id = e($request->input('custom_fieldset')); + $model->fieldset_id = $request->input('custom_fieldset'); } if (Input::file('image')) { @@ -250,17 +239,10 @@ public function update(Request $request, $modelId = null) $model->image = null; } - if ($model->save()) { return redirect()->route("models.index")->with('success', trans('admin/models/message.update.success')); - } else { - return redirect()->back()->withInput()->withErrors($model->getErrors()); } - - - // Redirect to the model create page - return redirect()->route('models.create')->with('error', trans('admin/models/message.update.error')); - + return redirect()->back()->withInput()->withErrors($model->getErrors()); } /** @@ -279,17 +261,15 @@ public function destroy($modelId) return redirect()->route('models.index')->with('error', trans('admin/models/message.not_found')); } - if ($model->assets->count() > 0) { + if ($model->assets()->count() > 0) { // Throw an error that this model is associated with assets return redirect()->route('models.index')->with('error', trans('admin/models/message.assoc_users')); - - } else { - // Delete the model - $model->delete(); - - // Redirect to the models management page - return redirect()->route('models.index')->with('success', trans('admin/models/message.delete.success')); } + // Delete the model + $model->delete(); + + // Redirect to the models management page + return redirect()->route('models.index')->with('success', trans('admin/models/message.delete.success')); } @@ -318,9 +298,8 @@ public function getRestore($modelId = null) // Redirect back return redirect()->route('models.index')->with('success', $success); - } else { - return redirect()->back()->with('error', trans('admin/models/message.not_found')); } + return redirect()->back()->with('error', trans('admin/models/message.not_found')); } @@ -338,16 +317,13 @@ public function show($modelId = null) $model = AssetModel::withTrashed()->find($modelId); if (isset($model->id)) { - return View::make('models/view', compact('model')); - } else { - // Prepare the error message - $error = trans('admin/models/message.does_not_exist', compact('id')); - - // Redirect to the user management page - return redirect()->route('models.index')->with('error', $error); + return View::make('models/view', compact('model')); } + // Prepare the error message + $error = trans('admin/models/message.does_not_exist', compact('id')); - + // Redirect to the user management page + return redirect()->route('models.index')->with('error', $error); } /** @@ -369,13 +345,10 @@ public function getClone($modelId = null) $model->id = null; // Show the page - $depreciation_list = Helper::depreciationList(); - $manufacturer_list = Helper::manufacturerList(); - $category_list = Helper::categoryList('asset'); $view = View::make('models/edit'); - $view->with('category_list', $category_list); - $view->with('depreciation_list', $depreciation_list); - $view->with('manufacturer_list', $manufacturer_list); + $view->with('category_list', Helper::categoryList('asset')); + $view->with('depreciation_list', Helper::depreciationList()); + $view->with('manufacturer_list', Helper::manufacturerList()); $view->with('item', $model); $view->with('clone_model', $model_to_clone); return $view; @@ -424,18 +397,8 @@ public function getDatatable(Request $request, $status = null) $models = $models->TextSearch($request->input('search')); } - if (Input::has('offset')) { - $offset = e($request->input('offset')); - } else { - $offset = 0; - } - - if (Input::has('limit')) { - $limit = e($request->input('limit')); - } else { - $limit = 50; - } - + $offset = request('offset', 0); + $limit = request('limit', 50); $allowed_columns = ['id','name','model_number']; $order = $request->input('order') === 'asc' ? 'asc' : 'desc'; @@ -449,14 +412,22 @@ public function getDatatable(Request $request, $status = null) $rows = array(); foreach ($models as $model) { + $actions = '
'; if ($model->deleted_at == '') { - $actions = '
'; + $actions .= Helper::generateDatatableButton('clone', route('clone/model', $model->id)); + $actions .= Helper::generateDatatableButton('edit', route('models.edit', $model->id)); + $actions .= Helper::generateDatatableButton( + 'delete', + route('models.destroy', $model->id), + trans('admin/models/message.delete.confirm'), + $model->name + ); } else { - $actions = ''; + $actions .= Helper::generateDatatableButton('restore', route('restore/model', $model->id)); } $rows[] = array( - 'id' => $model->id, + 'id' => $model->id, 'manufacturer' => (string)link_to_route('manufacturers.show', $model->manufacturer->name, ['manufacturer' => $model->manufacturer->id]), 'name' => (string)link_to_route('models.show',$model->name, ['model' => $model->id]), 'image' => ($model->image!='') ? '' : '', @@ -516,9 +487,9 @@ public function getDataView(Request $request, $modelID) if ($asset->assetstatus) { if ($asset->assetstatus->deployable != 0) { if (($asset->assigned_to !='') && ($asset->assigned_to > 0)) { - $actions = ''.trans('general.checkin').''; + $actions = Helper::generateDatatableButton('checkin', route('checkin/hardware', $asset->id)); } else { - $actions = ''.trans('general.checkout').''; + $actions = Helper::generateDatatableButton('checkout', route('checkout/hardware', $asset->id)); } } } diff --git a/app/Http/Controllers/AssetsController.php b/app/Http/Controllers/AssetsController.php index 0222c8ef1ce3..cc639d07faa6 100755 --- a/app/Http/Controllers/AssetsController.php +++ b/app/Http/Controllers/AssetsController.php @@ -39,6 +39,7 @@ use Slack; use Str; use Symfony\Component\Console\Output\BufferedOutput; +use Symfony\Component\HttpFoundation\File\Exception\FileException; use Symfony\Component\HttpFoundation\JsonResponse; use TCPDF; use Validator; @@ -87,11 +88,8 @@ public function index() */ public function getAssetByTag() { - if (Input::get('topsearch')=="true") { - $topsearch = true; - } else { - $topsearch = false; - } + $topsearch = (Input::get('topsearch')=="true"); + if (!$asset = Asset::where('asset_tag', '=', Input::get('assetTag'))->first()) { return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.does_not_exist')); } @@ -101,12 +99,13 @@ public function getAssetByTag() } /** - * Returns a view that presents a form to create a new asset. - * - * @author [A. Gianotto] [] - * @since [v1.0] - * @return View - */ + * Returns a view that presents a form to create a new asset. + * + * @author [A. Gianotto] [] + * @since [v1.0] + * @param integer $model_id + * @return View + */ public function create($model_id = null) { $this->authorize('create', Asset::class); @@ -145,72 +144,35 @@ public function store(AssetRequest $request) $asset = new Asset(); $asset->model()->associate(AssetModel::find(e(Input::get('model_id')))); - $checkModel = url('/').'/api/models/'.e(Input::get('model_id')).'/check'; - - $asset->name = e(Input::get('name')); - $asset->serial = e(Input::get('serial')); - $asset->company_id = Company::getIdForCurrentUser(e(Input::get('company_id'))); - $asset->model_id = e(Input::get('model_id')); - $asset->order_number = e(Input::get('order_number')); - $asset->notes = e(Input::get('notes')); - $asset->asset_tag = e(Input::get('asset_tag')); - $asset->user_id = Auth::user()->id; + $asset->name = Input::get('name'); + $asset->serial = Input::get('serial'); + $asset->company_id = Company::getIdForCurrentUser(Input::get('company_id')); + $asset->model_id = Input::get('model_id'); + $asset->order_number = Input::get('order_number'); + $asset->notes = Input::get('notes'); + $asset->asset_tag = Input::get('asset_tag'); + $asset->user_id = Auth::id(); $asset->archived = '0'; $asset->physical = '1'; $asset->depreciate = '0'; - if (e(Input::get('status_id')) == '') { - $asset->status_id = null; - } else { - $asset->status_id = e(Input::get('status_id')); - } - if (e(Input::get('warranty_months')) == '') { - $asset->warranty_months = null; - } else { - $asset->warranty_months = e(Input::get('warranty_months')); - } + $asset->status_id = request('status_id',0); + $asset->warranty_months = request('warranty_months', null); - if (e(Input::get('purchase_cost')) == '') { + if (Input::get('purchase_cost') == '') { $asset->purchase_cost = null; } else { - $asset->purchase_cost = Helper::ParseFloat(e(Input::get('purchase_cost'))); - } - - if (e(Input::get('purchase_date')) == '') { - $asset->purchase_date = null; - } else { - $asset->purchase_date = e(Input::get('purchase_date')); - } - - if (e(Input::get('assigned_to')) == '') { - $asset->assigned_to = null; - } else { - $asset->assigned_to = e(Input::get('assigned_to')); - } - - if (e(Input::get('supplier_id')) == '') { - $asset->supplier_id = 0; - } else { - $asset->supplier_id = e(Input::get('supplier_id')); - } - - if (e(Input::get('requestable')) == '') { - $asset->requestable = 0; - } else { - $asset->requestable = e(Input::get('requestable')); - } - - if (e(Input::get('rtd_location_id')) == '') { - $asset->rtd_location_id = null; - } else { - $asset->rtd_location_id = e(Input::get('rtd_location_id')); + $asset->purchase_cost = Helper::ParseFloat(Input::get('purchase_cost')); } + $asset->purchase_date = request('purchase_date', null); + $asset->assigned_to = request('assigned_to', null); + $asset->supplier_id = request('supplier_id', 0); + $asset->requestable = request('requestable', 0); + $asset->rtd_location_id = request('rtd_location_id', null); // Create the image (if one was chosen.) if (Input::has('image')) { - - $image = Input::get('image'); // After modification, the image is prefixed by mime info like the following: @@ -253,7 +215,7 @@ public function store(AssetRequest $request) $model = AssetModel::find($request->get('model_id')); if ($model->fieldset) { foreach ($model->fieldset->fields as $field) { - $asset->{\App\Models\CustomField::name_to_db_name($field->name)} = e($request->input(\App\Models\CustomField::name_to_db_name($field->name))); + $asset->{CustomField::name_to_db_name($field->name)} = e($request->input(CustomField::name_to_db_name($field->name))); } } @@ -290,27 +252,16 @@ public function edit($assetId = null) //Handles company checks and permissions. $this->authorize($item); - // Grab the dropdown lists - $model_list = Helper::modelList(); - $statuslabel_list = Helper::statusLabelList(); - $location_list = Helper::locationsList(); - $manufacturer_list = Helper::manufacturerList(); - $category_list = Helper::categoryList('asset'); - $supplier_list = Helper::suppliersList(); - $company_list = Helper::companyList(); - $assigned_to = Helper::usersList(); - $statuslabel_types =Helper::statusTypeList(); - return View::make('hardware/edit', compact('item')) - ->with('model_list', $model_list) - ->with('supplier_list', $supplier_list) - ->with('company_list', $company_list) - ->with('location_list', $location_list) - ->with('statuslabel_list', $statuslabel_list) - ->with('assigned_to', $assigned_to) - ->with('manufacturer', $manufacturer_list) - ->with('statuslabel_types', $statuslabel_types) - ->with('category', $category_list); + ->with('model_list', Helper::modelList()) + ->with('supplier_list', Helper::suppliersList()) + ->with('company_list', Helper::companyList()) + ->with('location_list', Helper::locationsList()) + ->with('statuslabel_list', Helper::statusLabelList()) + ->with('assigned_to', Helper::usersList()) + ->with('manufacturer', Helper::manufacturerList()) + ->with('statuslabel_types', Helper::statusTypeList()) + ->with('category', Helper::categoryList('asset')); } @@ -334,31 +285,31 @@ public function update(AssetRequest $request, $assetId = null) $this->authorize($asset); if ($request->has('status_id')) { - $asset->status_id = e($request->input('status_id')); + $asset->status_id = $request->input('status_id'); } else { $asset->status_id = null; } if ($request->has('warranty_months')) { - $asset->warranty_months = e($request->input('warranty_months')); + $asset->warranty_months = $request->input('warranty_months'); } else { $asset->warranty_months = null; } if ($request->has('purchase_cost')) { - $asset->purchase_cost = Helper::ParseFloat(e($request->input('purchase_cost'))); + $asset->purchase_cost = Helper::ParseFloat($request->input('purchase_cost')); } else { $asset->purchase_cost = null; } if ($request->has('purchase_date')) { - $asset->purchase_date = e($request->input('purchase_date')); + $asset->purchase_date = $request->input('purchase_date'); } else { $asset->purchase_date = null; } if ($request->has('supplier_id')) { - $asset->supplier_id = e($request->input('supplier_id')); + $asset->supplier_id = $request->input('supplier_id'); } else { $asset->supplier_id = null; } @@ -367,7 +318,7 @@ public function update(AssetRequest $request, $assetId = null) $asset->requestable = $request->has('requestable'); if ($request->has('rtd_location_id')) { - $asset->rtd_location_id = e($request->input('rtd_location_id')); + $asset->rtd_location_id = $request->input('rtd_location_id'); } else { $asset->rtd_location_id = null; } @@ -379,13 +330,13 @@ public function update(AssetRequest $request, $assetId = null) // Update the asset data - $asset->name = e($request->input('name')); - $asset->serial = e($request->input('serial')); - $asset->company_id = Company::getIdForCurrentUser(e($request->input('company_id'))); - $asset->model_id = e($request->input('model_id')); - $asset->order_number = e($request->input('order_number')); - $asset->asset_tag = e($request->input('asset_tag')); - $asset->notes = e($request->input('notes')); + $asset->name = $request->input('name'); + $asset->serial = $request->input('serial'); + $asset->company_id = Company::getIdForCurrentUser($request->input('company_id')); + $asset->model_id = $request->input('model_id'); + $asset->order_number = $request->input('order_number'); + $asset->asset_tag = $request->input('asset_tag'); + $asset->notes = $request->input('notes'); $asset->physical = '1'; // Update the image @@ -428,18 +379,14 @@ public function update(AssetRequest $request, $assetId = null) $model = AssetModel::find($request->get('model_id')); if ($model->fieldset) { foreach ($model->fieldset->fields as $field) { - - if ($field->field_encrypted=='1') { if (Gate::allows('admin')) { - $asset->{\App\Models\CustomField::name_to_db_name($field->name)} = \Crypt::encrypt(e($request->input(\App\Models\CustomField::name_to_db_name($field->name)))); + $asset->{CustomField::name_to_db_name($field->name)} = \Crypt::encrypt(e($request->input(CustomField::name_to_db_name($field->name)))); } } else { - $asset->{\App\Models\CustomField::name_to_db_name($field->name)} = e($request->input(\App\Models\CustomField::name_to_db_name($field->name))); + $asset->{CustomField::name_to_db_name($field->name)} = e($request->input(CustomField::name_to_db_name($field->name))); } - - } } @@ -477,15 +424,10 @@ public function destroy($assetId) ->where('id', $asset->id) ->update(array('assigned_to' => null)); - $asset->delete(); // Redirect to the asset management page return redirect()->route('hardware.index')->with('success', trans('admin/hardware/message.delete.success')); - - - - } /** @@ -508,9 +450,7 @@ public function getCheckout($assetId) $this->authorize('checkout', $asset); // Get the dropdown of users and then pass it to the checkout view - $users_list = Helper::usersList(); - - return View::make('hardware/checkout', compact('asset'))->with('users_list', $users_list); + return View::make('hardware/checkout', compact('asset'))->with('users_list', Helper::usersList()); } @@ -533,7 +473,7 @@ public function postCheckout(AssetCheckoutRequest $request, $assetId) } $this->authorize('checkout', $asset); - $user = User::find(e(Input::get('assigned_to'))); + $user = User::find(Input::get('assigned_to')); $admin = Auth::user(); if ((Input::has('checkout_at')) && (Input::get('checkout_at')!= date("Y-m-d"))) { @@ -548,7 +488,6 @@ public function postCheckout(AssetCheckoutRequest $request, $assetId) $expected_checkin = ''; } - if ($asset->checkOutToUser($user, $admin, $checkout_at, $expected_checkin, e(Input::get('note')), e(Input::get('name')))) { // Redirect to the new asset page return redirect()->to("hardware")->with('success', trans('admin/hardware/message.checkout.success')); @@ -577,8 +516,8 @@ public function getCheckin($assetId, $backto = null) } $this->authorize('checkin', $asset); - $statusLabel_list = Helper::statusLabelList(); - return View::make('hardware/checkin', compact('asset'))->with('statusLabel_list', $statusLabel_list)->with('backto', $backto); + return View::make('hardware/checkin', compact('asset'))->with('statusLabel_list', Helper::statusLabelList())->with('backto', $backto); + } @@ -602,9 +541,7 @@ public function postCheckin(AssetCheckinRequest $request, $assetId = null, $back $admin = Auth::user(); - if (!is_null($asset->assigned_to)) { - $user = User::find($asset->assigned_to); - } else { + if (is_null($user = User::find($asset->assigned_to))) { return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.checkin.already_checked_in')); } @@ -628,10 +565,8 @@ public function postCheckin(AssetCheckinRequest $request, $assetId = null, $back } else { $checkin_at = $request->input('checkin_at').' 00:00:00'; } - //$checkin_at = e(Input::get('checkin_at')); $logaction = $asset->createLogRecord('checkin', $asset, $admin, $user, null, e(Input::get('note')), $checkin_at); - $settings = Setting::getSettings(); if ($settings->slack_endpoint) { @@ -688,10 +623,8 @@ public function postCheckin(AssetCheckinRequest $request, $assetId = null, $back if ($backto=='user') { return redirect()->to("admin/users/".$return_to.'/view')->with('success', trans('admin/hardware/message.checkin.success')); - } else { - return redirect()->to("hardware")->with('success', trans('admin/hardware/message.checkin.success')); } - + return redirect()->to("hardware")->with('success', trans('admin/hardware/message.checkin.success')); } // Redirect to the asset management page with error @@ -717,34 +650,28 @@ public function show($assetId = null) } elseif ($asset->assetloc) { $use_currency = $asset->assetloc->currency; } else { - $default_currency = Setting::first()->default_currency; if ($settings->default_currency!='') { $use_currency = $settings->default_currency; } else { $use_currency = trans('general.currency'); } - } if (isset($asset->id)) { - - $qr_code = (object) array( 'display' => $settings->qr_code == '1', 'url' => route('qr_code/hardware', $asset->id) ); return View::make('hardware/view', compact('asset', 'qr_code', 'settings'))->with('use_currency', $use_currency); - } else { - // Prepare the error message - $error = trans('admin/hardware/message.does_not_exist', compact('id')); - - // Redirect to the user management page - return redirect()->route('hardware')->with('error', $error); } + // Prepare the error message + $error = trans('admin/hardware/message.does_not_exist', compact('id')); + // Redirect to the user management page + return redirect()->route('hardware')->with('error', $error); } /** @@ -775,7 +702,6 @@ public function getQrCode($assetId = null) file_put_contents($qr_file, $barcode_obj->getPngData()); return response($barcode_obj->getPngData())->header('Content-type', 'image/png'); } - } } @@ -792,12 +718,10 @@ public function getQrCode($assetId = null) */ public function getBarCode($assetId = null) { - $settings = Setting::getSettings(); $asset = Asset::find($assetId); $barcode_file = public_path().'/uploads/barcodes/'.str_slug($settings->alt_barcode).'-'.str_slug($asset->asset_tag).'.png'; - if (isset($asset->id,$asset->asset_tag)) { if (file_exists($barcode_file)) { @@ -857,14 +781,14 @@ public function getImportUpload() } - /** - * Upload the import file via AJAX - * - * @author [A. Gianotto] [] - * @since [v2.0] - * @return View - */ + * Upload the import file via AJAX + * + * @author [A. Gianotto] [] + * @since [v2.0] + * @param AssetFileRequest $request + * @return array + */ public function postAPIImportUpload(AssetFileRequest $request) { @@ -893,7 +817,7 @@ public function postAPIImportUpload(AssetFileRequest $request) $fixed_filename = str_replace(' ', '-', $file->getClientOriginalName()); try { $file->move($path, $date.'-'.$fixed_filename); - } catch (\Symfony\Component\HttpFoundation\File\Exception\FileException $exception) { + } catch (FileException $exception) { $results['error']=trans('admin/hardware/message.upload.error'); if (config('app.debug')) { $results['error'].= ' ' . $exception->getMessage(); @@ -904,21 +828,12 @@ public function postAPIImportUpload(AssetFileRequest $request) $filesize = Setting::fileSizeConvert(filesize($path.'/'.$name)); $results[] = compact('name', 'filesize'); } - - return array( + return [ 'files' => $results - ); - - - - - } else { - $results['error']=trans('general.feature_disabled'); - return $results; + ]; } - - - + $results['error']=trans('general.feature_disabled'); + return $results; } public function getDeleteImportFile($filename) @@ -935,26 +850,22 @@ public function getDeleteImportFile($filename) * Process the uploaded file * * @author [A. Gianotto] [] - * @param string $filename * @since [v2.0] * @return Redirect */ public function postProcessImportFile() { // php artisan asset-import:csv path/to/your/file.csv --domain=yourdomain.com --email_format=firstname.lastname - $filename = Input::get('filename'); - $itemType = Input::get('import-type'); - $updateItems = Input::get('import-update'); - + $filename = config('app.private_uploads') . '/imports/assets/' . request('filename'); $this->authorize('create', Asset::class); - $importOptions = ['filename'=> config('app.private_uploads').'/imports/assets/'.$filename, + $importOptions = ['filename'=> $filename, '--email_format'=>'firstname.lastname', '--username_format'=>'firstname.lastname', '--web-importer' => true, - '--user_id' => Auth::user()->id, - '--item-type' => $itemType, + '--user_id' => Auth::id(), + '--item-type' => request('import-type'), ]; - if ($updateItems) { + if (request('import-update')) { $importOptions['--update'] = true; } @@ -964,7 +875,7 @@ public function postProcessImportFile() file_put_contents($file, $display_output); // We use hardware instead of asset in the url $redirectTo = "hardware"; - switch($itemType) { + switch(request('import-type')) { case "asset": $redirectTo = "hardware"; break; @@ -1003,17 +914,6 @@ public function getClone($assetId = null) $this->authorize('create',$asset_to_clone); - // Grab the dropdown lists - $model_list = Helper::modelList(); - $statuslabel_list = Helper::statusLabelList(); - $location_list = Helper::locationsList(); - $manufacturer_list = Helper::manufacturerList(); - $category_list = Helper::categoryList('asset'); - $supplier_list = Helper::suppliersList(); - $assigned_to =Helper::usersList(); - $statuslabel_types = Helper::statusTypeList(); - $company_list = Helper::companyList(); - $asset = clone $asset_to_clone; $asset->id = null; $asset->asset_tag = ''; @@ -1021,20 +921,18 @@ public function getClone($assetId = null) $asset->assigned_to = ''; return View::make('hardware/edit') - ->with('supplier_list', $supplier_list) - ->with('model_list', $model_list) - ->with('statuslabel_list', $statuslabel_list) - ->with('statuslabel_types', $statuslabel_types) - ->with('assigned_to', $assigned_to) + ->with('supplier_list', Helper::suppliersList()) + ->with('model_list', Helper::modelList()) + ->with('statuslabel_list', Helper::statusLabelList()) + ->with('statuslabel_types', Helper::statusTypeList()) + ->with('assigned_to', Helper::usersList()) ->with('item', $asset) - ->with('location_list', $location_list) - ->with('manufacturer', $manufacturer_list) - ->with('category', $category_list) - ->with('company_list', $company_list); - + ->with('location_list', Helper::locationsList()) + ->with('manufacturer', Helper::manufacturerList()) + ->with('category', Helper::categoryList('asset')) + ->with('company_list', Helper::companyList()); } - /** * Return history import view * @@ -1065,8 +963,6 @@ public function postImportHistory(Request $request) ini_set("auto_detect_line_endings", '1'); } - $assets = Asset::all(['asset_tag']); - $csv = Reader::createFromPath(Input::file('user_import_csv')); $csv->setNewline("\r\n"); //get the first row, usually the CSV header @@ -1165,10 +1061,6 @@ public function postImportHistory(Request $request) $item[$asset_tag][$batch_counter]['asset_id'] = null; $status['error'][]['asset'][$asset_tag]['msg'] = 'Asset does not exist so no match was attempted.'; } - - - - } } @@ -1197,16 +1089,11 @@ public function postImportHistory(Request $request) ); } } - - } } - - return View::make('hardware/history')->with('status',$status); } - /** * Retore a deleted asset. * @@ -1217,31 +1104,27 @@ public function postImportHistory(Request $request) */ public function getRestore($assetId = null) { - // Get asset information $asset = Asset::withTrashed()->find($assetId); $this->authorize('delete', $asset); if (isset($asset->id)) { - // Restore the asset Asset::withTrashed()->where('id', $assetId)->restore(); return redirect()->route('hardware')->with('success', trans('admin/hardware/message.restore.success')); - - } else { - return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.does_not_exist')); } - + return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.does_not_exist')); } /** - * Upload a file to the server. - * - * @author [A. Gianotto] [] - * @param int $assetId - * @since [v1.0] - * @return Redirect - */ + * Upload a file to the server. + * + * @author [A. Gianotto] [] + * @param AssetFileRequest $request + * @param int $assetId + * @return Redirect + * @since [v1.0] + */ public function postUpload(AssetFileRequest $request, $assetId = null) { @@ -1252,23 +1135,14 @@ public function postUpload(AssetFileRequest $request, $assetId = null) $destinationPath = config('app.private_uploads').'/assets'; - - - if (!Company::isCurrentUserHasAccess($asset)) { - return redirect()->route('hardware.index')->with('error', trans('general.insufficient_permissions')); - } - if (Input::hasFile('assetfile')) { - foreach (Input::file('assetfile') as $file) { $extension = $file->getClientOriginalExtension(); $filename = 'hardware-'.$asset->id.'-'.str_random(8); $filename .= '-'.str_slug($file->getClientOriginalName()).'.'.$extension; $upload_success = $file->move($destinationPath, $filename); - //Log the deletion of seats to the log $asset->logUpload($filename, e(Input::get('notes'))); - } } else { return redirect()->back()->with('error', trans('admin/hardware/message.upload.nofiles')); @@ -1276,12 +1150,8 @@ public function postUpload(AssetFileRequest $request, $assetId = null) if ($upload_success) { return redirect()->back()->with('success', trans('admin/hardware/message.upload.success')); - } else { - return redirect()->back()->with('error', trans('admin/hardware/message.upload.error')); } - - - + return redirect()->back()->with('error', trans('admin/hardware/message.upload.error')); } /** @@ -1301,11 +1171,7 @@ public function getDeleteFile($assetId = null, $fileId = null) // the asset is valid if (isset($asset->id)) { - - - if (!Company::isCurrentUserHasAccess($asset)) { - return redirect()->route('hardware.index')->with('error', trans('general.insufficient_permissions')); - } + $this->authorize('update', $asset); $log = Actionlog::find($fileId); $full_filename = $destinationPath.'/'.$log->filename; @@ -1315,16 +1181,13 @@ public function getDeleteFile($assetId = null, $fileId = null) $log->delete(); return redirect()->back()->with('success', trans('admin/hardware/message.deletefile.success')); - } else { - // Prepare the error message - $error = trans('admin/hardware/message.does_not_exist', compact('id')); - - // Redirect to the hardware management page - return redirect()->route('hardware')->with('error', $error); } - } - + // Prepare the error message + $error = trans('admin/hardware/message.does_not_exist', compact('id')); + // Redirect to the hardware management page + return redirect()->route('hardware')->with('error', $error); + } /** * Check for permissions and display the file. @@ -1337,244 +1200,173 @@ public function getDeleteFile($assetId = null, $fileId = null) */ public function displayFile($assetId = null, $fileId = null) { - $asset = Asset::find($assetId); // the asset is valid if (isset($asset->id)) { $this->authorize('view', $asset); - - if (!Company::isCurrentUserHasAccess($asset)) { - return redirect()->route('hardware.index')->with('error', trans('general.insufficient_permissions')); - } - $log = Actionlog::find($fileId); $file = $log->get_src('assets'); - $filetype = Helper::checkUploadIsImage($file); if ($filetype) { $contents = file_get_contents($file); return Response::make($contents)->header('Content-Type', $filetype); - } else { - return Response::download($file); } - - } else { - // Prepare the error message - $error = trans('admin/hardware/message.does_not_exist', compact('id')); - - // Redirect to the hardware management page - return redirect()->route('hardware')->with('error', $error); + return Response::download($file); } - } - - + // Prepare the error message + $error = trans('admin/hardware/message.does_not_exist', compact('id')); + // Redirect to the hardware management page + return redirect()->route('hardware')->with('error', $error); + } /** - * Display the bulk edit page. - * - * @author [A. Gianotto] [] - * @param int $assetId - * @since [v2.0] - * @return View - */ - public function postBulkEdit($assets = null) + * Display the bulk edit page. + * + * @author [A. Gianotto] [] + * @return View + * @internal param int $assetId + * @since [v2.0] + */ + public function postBulkEdit() { $this->authorize('update', Asset::class); - if (!Company::isCurrentUserAuthorized()) { - return redirect()->route('hardware.index')->with('error', trans('general.insufficient_permissions')); - - } elseif (!Input::has('edit_asset')) { - return redirect()->back()->with('error', 'No assets selected'); - - } else { - $asset_raw_array = Input::get('edit_asset'); - foreach ($asset_raw_array as $asset_id => $value) { - $asset_ids[] = $asset_id; - - } - + if (!Input::has('edit_asset')) { + return redirect()->back()->with('error', 'No assets selected'); + } + $asset_raw_array = Input::get('edit_asset'); + foreach ($asset_raw_array as $asset_id => $value) { + $asset_ids[] = $asset_id; } if (Input::has('bulk_actions')) { - - // Create labels if (Input::get('bulk_actions')=='labels') { - - - $settings = Setting::getSettings(); - - $assets = Asset::find($asset_ids); - $count = 0; - - return View::make('hardware/labels')->with('assets', $assets)->with('settings', $settings)->with('count', $count)->with('settings', $settings); - - - + $count = 0; + return View::make('hardware/labels')->with('assets', Asset::find($asset_ids))->with('settings', Setting::getSettings())->with('count', $count)->with('settings', + Setting::getSettings()); } elseif (Input::get('bulk_actions')=='delete') { - - $assets = Asset::with('assigneduser', 'assetloc')->find($asset_ids); $assets->each(function($asset) { $this->authorize('delete',$asset); }); return View::make('hardware/bulk-delete')->with('assets', $assets); - // Bulk edit } elseif (Input::get('bulk_actions')=='edit') { - - $assets = Input::get('edit_asset'); - $supplier_list = Helper::suppliersList(); - $statuslabel_list = Helper::statusLabelList(); - $location_list = Helper::locationsList(); - $models_list = Helper::modelList(); - $companies_list = array('' => '') + array('clear' => trans('general.remove_company')) + Helper::companyList(); - return View::make('hardware/bulk') - ->with('assets', $assets) - ->with('supplier_list', $supplier_list) - ->with('statuslabel_list', $statuslabel_list) - ->with('location_list', $location_list) - ->with('models_list', $models_list) - ->with('companies_list', $companies_list); - - + ->with('assets', request('edit_asset')) + ->with('supplier_list', Helper::suppliersList()) + ->with('statuslabel_list', Helper::statusLabelList()) + ->with('location_list', Helper::locationsList()) + ->with('models_list', Helper::modelList()) + ->with('companies_list', + array('' => '') + array('clear' => trans('general.remove_company')) + Helper::companyList()); } - - } else { - return redirect()->back()->with('error', 'No action selected'); } - - - + return redirect()->back()->with('error', 'No action selected'); } - - /** - * Save bulk edits - * - * @author [A. Gianotto] [] - * @param array $assets - * @since [v2.0] - * @return Redirect - */ - public function postBulkSave($assets = null) + * Save bulk edits + * + * @author [A. Gianotto] [] + * @return Redirect + * @internal param array $assets + * @since [v2.0] + */ + public function postBulkSave() { - $this->authorize('update', Asset::class); if (Input::has('bulk_edit')) { - $assets = Input::get('bulk_edit'); - - if ((Input::has('purchase_date')) || (Input::has('purchase_cost')) || (Input::has('supplier_id')) || (Input::has('order_number')) || (Input::has('warranty_months')) || (Input::has('rtd_location_id')) || (Input::has('requestable')) || (Input::has('company_id')) || (Input::has('status_id')) || (Input::has('model_id'))) { - + if ((Input::has('purchase_date')) + || (Input::has('purchase_cost')) + || (Input::has('supplier_id')) + || (Input::has('order_number')) + || (Input::has('warranty_months')) + || (Input::has('rtd_location_id')) + || (Input::has('requestable')) + || (Input::has('company_id')) + || (Input::has('status_id')) + || (Input::has('model_id')) + ) { foreach ($assets as $key => $value) { - $update_array = array(); if (Input::has('purchase_date')) { $update_array['purchase_date'] = e(Input::get('purchase_date')); } - if (Input::has('purchase_cost')) { $update_array['purchase_cost'] = Helper::ParseFloat(e(Input::get('purchase_cost'))); } - if (Input::has('supplier_id')) { $update_array['supplier_id'] = e(Input::get('supplier_id')); } - if (Input::has('model_id')) { $update_array['model_id'] = e(Input::get('model_id')); } - if (Input::has('company_id')) { if (Input::get('company_id')=="clear") { $update_array['company_id'] = null; } else { $update_array['company_id'] = e(Input::get('company_id')); } - } - if (Input::has('order_number')) { $update_array['order_number'] = e(Input::get('order_number')); } - if (Input::has('warranty_months')) { $update_array['warranty_months'] = e(Input::get('warranty_months')); } - if (Input::has('rtd_location_id')) { $update_array['rtd_location_id'] = e(Input::get('rtd_location_id')); } - if (Input::has('status_id')) { $update_array['status_id'] = e(Input::get('status_id')); } - if (Input::has('requestable')) { $update_array['requestable'] = e(Input::get('requestable')); } - if (DB::table('assets') ->where('id', $key) ->update($update_array)) { - - $logaction = new Actionlog(); - $logaction->item_type = Asset::class; - $logaction->item_id = $key; - $logaction->created_at = date("Y-m-d H:i:s"); + $logAction = new Actionlog(); + $logAction->item_type = Asset::class; + $logAction->item_id = $key; + $logAction->created_at = date("Y-m-d H:i:s"); if (Input::has('rtd_location_id')) { - $logaction->location_id = e(Input::get('rtd_location_id')); + $logAction->location_id = e(Input::get('rtd_location_id')); } - $logaction->user_id = Auth::user()->id; - $log = $logaction->logaction('update'); - + $logAction->user_id = Auth::user()->id; + $logAction->logaction('update'); } - } // endforeach - return redirect()->to("hardware")->with('success', trans('admin/hardware/message.update.success')); - // no values given, nothing to update - } else { - return redirect()->to("hardware")->with('info', trans('admin/hardware/message.update.nothing_updated')); - } - - + return redirect()->to("hardware")->with('info', trans('admin/hardware/message.update.nothing_updated')); } // endif - return redirect()->to("hardware"); - } /** - * Save bulk deleted. - * - * @author [A. Gianotto] [] - * @param array $assets - * @since [v2.0] - * @return View - */ - public function postBulkDelete($assets = null) + * Save bulk deleted. + * + * @author [A. Gianotto] [] + * @return View + * @internal param array $assets + * @since [v2.0] + */ + public function postBulkDelete() { $this->authorize('delete', Asset::class); if (Input::has('bulk_edit')) { - //$assets = Input::get('bulk_edit'); $assets = Asset::find(Input::get('bulk_edit')); - //print_r($assets); - - foreach ($assets as $asset) { - //echo '
  • '.$asset; $update_array['deleted_at'] = date('Y-m-d H:i:s'); $update_array['assigned_to'] = null; @@ -1582,42 +1374,32 @@ public function postBulkDelete($assets = null) ->where('id', $asset->id) ->update($update_array)) { - $logaction = new Actionlog(); - $logaction->item_type = Asset::class; - $logaction->item_id = $asset->id; - $logaction->created_at = date("Y-m-d H:i:s"); - $logaction->user_id = Auth::user()->id; - $log = $logaction->logaction('deleted'); - + $logAction = new Actionlog(); + $logAction->item_type = Asset::class; + $logAction->item_id = $asset->id; + $logAction->created_at = date("Y-m-d H:i:s"); + $logAction->user_id = Auth::user()->id; + $logAction->logaction('deleted'); } } // endforeach - return redirect()->to("hardware")->with('success', trans('admin/hardware/message.delete.success')); - + return redirect()->to("hardware")->with('success', trans('admin/hardware/message.delete.success')); // no values given, nothing to update - } else { - return redirect()->to("hardware")->with('info', trans('admin/hardware/message.delete.nothing_updated')); - } - - // Something weird happened here - default to hardware - return redirect()->to("hardware"); - + return redirect()->to("hardware")->with('info', trans('admin/hardware/message.delete.nothing_updated')); } - - /** - * Generates the JSON used to display the asset listing. - * - * @author [A. Gianotto] [] - * @param string $status - * @since [v2.0] - * @return String JSON - */ + * Generates the JSON used to display the asset listing. + * + * @author [A. Gianotto] [] + * @param Request $request + * @param string $status + * @return String JSON + * @since [v2.0] + */ public function getDatatable(Request $request, $status = null) { - $this->authorize('index', Asset::class); $assets = Company::scopeCompanyables(Asset::select('assets.*'))->with('model', 'assigneduser', 'assigneduser.userloc', 'assetstatus', 'defaultLoc', 'assetlog', 'model', 'model.category', 'model.manufacturer', 'model.fieldset', 'assetstatus', 'assetloc', 'company') ->Hardware(); @@ -1626,17 +1408,8 @@ public function getDatatable(Request $request, $status = null) $assets = $assets->TextSearch(e($request->get('search'))); } - if ($request->has('offset')) { - $offset = e($request->get('offset')); - } else { - $offset = 0; - } - - if ($request->has('limit')) { - $limit = e($request->get('limit')); - } else { - $limit = 50; - } + $offset = request('offset', 0); + $limit = request('limit', 50); if ($request->has('order_number')) { $assets->where('order_number', '=', e($request->get('order_number'))); @@ -1670,8 +1443,6 @@ public function getDatatable(Request $request, $status = null) $assets->where('status_id','=', e($request->get('status_id'))); } - - $allowed_columns = [ 'id', 'name', @@ -1737,26 +1508,28 @@ public function getDatatable(Request $request, $status = null) $assetCount = $assets->count(); $assets = $assets->skip($offset)->take($limit)->get(); - $rows = array(); foreach ($assets as $asset) { $inout = ''; $actions = '
    '; if ($asset->deleted_at=='') { if (Gate::allows('create', $asset)) { - $actions .= ' '; + $actions .= Helper::generateDatatableButton('clone', route('clone/hardware', $asset->id)); } if (Gate::allows('update', $asset)) { - $actions .= ' '; + $actions .= Helper::generateDatatableButton('edit', route('hardware.edit', $asset->id)); } if (Gate::allows('delete', $asset)) { - $actions .= ''; + $actions .= Helper::generateDatatableButton( + 'delete', + route('hardware.destroy', $asset->id), + $enabled = true, + trans('admin/hardware/message.delete.confirm'), + $asset->asset_tag + ); } } elseif ($asset->model->deleted_at=='') { - $actions .= ''; + $actions .= Helper::generateDatatableButton('restore', route('restore/hardware', $asset->id)); } $actions .= '
    '; @@ -1774,7 +1547,7 @@ public function getDatatable(Request $request, $status = null) $asset->id) . '" class="btn btn-primary btn-sm" title="Checkin this asset" data-toggle="tooltip">' . trans('general.checkin') . ''; } } - + $actions .= '
  • '; $purchase_cost = Helper::formatCurrencyOutput($asset->purchase_cost); $row = array( @@ -1847,23 +1620,18 @@ public function getDatatable(Request $request, $status = null) } } - $data = array('total'=>$assetCount, 'rows'=>$rows); - return $data; } public function getBulkCheckout() { $this->authorize('checkout', Asset::class); - // Get the dropdown of users and then pass it to the checkout view - $users_list = Helper::usersList(); // Filter out assets that are not deployable. - $assets = Asset::RTD()->get(); - - $assets_list = Company::scopeCompanyables($assets, 'assets.company_id')->pluck('detailed_name', 'id')->toArray(); - - return View::make('hardware/bulk-checkout')->with('users_list', $users_list)->with('assets_list', $assets_list); + $assets_list = Company::scopeCompanyables(Asset::RTD()->get(), 'assets.company_id')->pluck('detailed_name', 'id')->toArray(); + return View::make('hardware/bulk-checkout') + ->with('users_list', Helper::usersList()) + ->with('assets_list', $assets_list); } public function postBulkCheckout(Request $request) @@ -1889,7 +1657,6 @@ public function postBulkCheckout(Request $request) $expected_checkin = ''; } - $has_errors = false; $errors = []; DB::transaction(function() use ($user, $admin, $checkout_at, $expected_checkin, $errors, $asset_ids) { @@ -1899,20 +1666,17 @@ public function postBulkCheckout(Request $request) $this->authorize('checkout', $asset); $error = $asset->checkOutToUser($user, $admin, $checkout_at, $expected_checkin, e(Input::get('note')), null); - if($error) - { - $has_errors = true; + if($error) { array_merge_recursive($errors, $asset->getErrors()->toArray()); } } - }); + }); if (!$errors) { // Redirect to the new asset page return redirect()->to("hardware")->with('success', trans('admin/hardware/message.checkout.success')); } - - // Redirect to the asset management page with error + // Redirect to the asset management page with error return redirect()->to("hardware/bulk-checkout")->with('error', trans('admin/hardware/message.checkout.error'))->withErrors($errors); } diff --git a/app/Http/Controllers/CategoriesController.php b/app/Http/Controllers/CategoriesController.php index eb1e7085de2e..f4816250ac85 100755 --- a/app/Http/Controllers/CategoriesController.php +++ b/app/Http/Controllers/CategoriesController.php @@ -32,8 +32,8 @@ class CategoriesController extends Controller * @author [A. Gianotto] [] * @see CategoriesController::getDatatable() method that generates the JSON response * @since [v1.0] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function index() { // Show the page @@ -47,8 +47,8 @@ public function index() * @author [A. Gianotto] [] * @see CategoriesController::store() method that stores the data * @since [v1.0] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function create() { // Show the page @@ -64,33 +64,26 @@ public function create() * @author [A. Gianotto] [] * @see CategoriesController::create() method that makes the form. * @since [v1.0] - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function store(Request $request) { - // create a new model instance $category = new Category(); - // Update the category data - $category->name = e($request->input('name')); - $category->category_type = e($request->input('category_type')); - $category->eula_text = e($request->input('eula_text')); - $category->use_default_eula = e($request->input('use_default_eula', '0')); - $category->require_acceptance = e($request->input('require_acceptance', '0')); - $category->checkin_email = e($request->input('checkin_email', '0')); - $category->user_id = Auth::user()->id; + $category->name = $request->input('name'); + $category->category_type = $request->input('category_type'); + $category->eula_text = $request->input('eula_text'); + $category->use_default_eula = $request->input('use_default_eula', '0'); + $category->require_acceptance = $request->input('require_acceptance', '0'); + $category->checkin_email = $request->input('checkin_email', '0'); + $category->user_id = Auth::id(); if ($category->save()) { return redirect()->route('categories.index')->with('success', trans('admin/categories/message.create.success')); - } else { - return redirect()->back()->withInput()->withErrors($category->getErrors()); - } - return redirect()->route('categories.create')->with('error', trans('admin/categories/message.create.error')); - - + return redirect()->back()->withInput()->withErrors($category->getErrors()); } /** @@ -100,8 +93,8 @@ public function store(Request $request) * @see CategoriesController::postEdit() method saves the data * @param int $categoryId * @since [v1.0] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function edit($categoryId = null) { // Check if the category exists @@ -110,7 +103,6 @@ public function edit($categoryId = null) return redirect()->to('admin/settings/categories')->with('error', trans('admin/categories/message.does_not_exist')); } - $category_options = array('' => 'Top Level') + DB::table('categories')->where('id', '!=', $categoryId)->lists('name', 'id'); $category_types= Helper::categoryTypeList(); @@ -121,44 +113,39 @@ public function edit($categoryId = null) /** - * Validates and stores the updated category data. - * - * @author [A. Gianotto] [] - * @see CategoriesController::getEdit() method that makes the form. - * @param int $categoryId - * @since [v1.0] - * @return Redirect - */ + * Validates and stores the updated category data. + * + * @author [A. Gianotto] [] + * @see CategoriesController::getEdit() method that makes the form. + * @param Request $request + * @param int $categoryId + * @return \Illuminate\Http\RedirectResponse + * @since [v1.0] + */ public function update(Request $request, $categoryId = null) { // Check if the blog post exists if (is_null($category = Category::find($categoryId))) { - // Redirect to the blogs management page + // Redirect to the categories management page return redirect()->to('admin/categories')->with('error', trans('admin/categories/message.does_not_exist')); } // Update the category data - $category->name = e($request->input('name')); + $category->name = $request->input('name'); // If the item count is > 0, we disable the category type in the edit. Disabled items // don't POST, so if the category_type is blank we just set it to the default. - $category->category_type = e($request->input('category_type', $category->category_type)); - $category->eula_text = e($request->input('eula_text')); - $category->use_default_eula = e($request->input('use_default_eula', '0')); - $category->require_acceptance = e($request->input('require_acceptance', '0')); - $category->checkin_email = e($request->input('checkin_email', '0')); + $category->category_type = $request->input('category_type', $category->category_type); + $category->eula_text = $request->input('eula_text'); + $category->use_default_eula = $request->input('use_default_eula', '0'); + $category->require_acceptance = $request->input('require_acceptance', '0'); + $category->checkin_email = $request->input('checkin_email', '0'); if ($category->save()) { - // Redirect to the new category page + // Redirect to the new category page return redirect()->route('categories.index')->with('success', trans('admin/categories/message.update.success')); - } // attempt validation - else { - // The given data did not pass validation - return redirect()->back()->withInput()->withErrors($category->getErrors()); } - - // Redirect to the category management page - return redirect()->back()->with('error', trans('admin/categories/message.update.error')); - + // The given data did not pass validation + return redirect()->back()->withInput()->withErrors($category->getErrors()); } /** @@ -167,41 +154,31 @@ public function update(Request $request, $categoryId = null) * @author [A. Gianotto] [] * @since [v1.0] * @param int $categoryId - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function destroy($categoryId) { // Check if the category exists if (is_null($category = Category::find($categoryId))) { - // Redirect to the blogs management page return redirect()->to('admin/settings/categories')->with('error', trans('admin/categories/message.not_found')); } - if ($category->has_models() > 0) { return redirect()->to('admin/settings/categories')->with('error', trans('admin/categories/message.assoc_items', ['asset_type'=>'model'])); - } elseif ($category->accessories()->count() > 0) { return redirect()->to('admin/settings/categories')->with('error', trans('admin/categories/message.assoc_items', ['asset_type'=>'accessory'])); - } elseif ($category->consumables()->count() > 0) { return redirect()->to('admin/settings/categories')->with('error', trans('admin/categories/message.assoc_items', ['asset_type'=>'consumable'])); - } elseif ($category->components()->count() > 0) { return redirect()->to('admin/settings/categories')->with('error', trans('admin/categories/message.assoc_items', ['asset_type'=>'component'])); - } else { - - $category->delete(); - - // Redirect to the locations management page - return redirect()->to('admin/settings/categories')->with('success', trans('admin/categories/message.delete.success')); } - + $category->delete(); + // Redirect to the locations management page + return redirect()->to('admin/settings/categories')->with('success', trans('admin/categories/message.delete.success')); } - /** * Returns a view that invokes the ajax tables which actually contains * the content for the categories detail view, which is generated in getDataView. @@ -210,35 +187,33 @@ public function destroy($categoryId) * @see CategoriesController::getDataView() method that generates the JSON response * @param int $categoryId * @since [v1.8] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function show($categoryId = null) { $category = Category::find($categoryId); if (isset($category->id)) { return View::make('categories/view', compact('category')); - } else { - // Prepare the error message - $error = trans('admin/categories/message.does_not_exist', compact('id')); - - // Redirect to the user management page - return redirect()->route('categories.index')->with('error', $error); } - + // Prepare the error message + $error = trans('admin/categories/message.does_not_exist', compact('id')); + // Redirect to the user management page + return redirect()->route('categories.index')->with('error', $error); } /** - * Returns a JSON response with the data to populate the bootstrap table on the - * cateory listing page. - * - * @todo Refactor this nastiness. Assets do not behave the same as accessories, etc. - * @author [A. Gianotto] [] - * @see CategoriesController::getIndex() method that generates the view - * @since [v1.8] - * @return String JSON - */ + * Returns a JSON response with the data to populate the bootstrap table on the + * category listing page. + * + * @todo Refactor this nastiness. Assets do not behave the same as accessories, etc. + * @author [A. Gianotto] [] + * @see CategoriesController::getIndex() method that generates the view + * @since [v1.8] + * @param Request $request + * @return String JSON + */ public function getDatatable(Request $request) { // Grab all the categories @@ -248,18 +223,8 @@ public function getDatatable(Request $request) $categories = $categories->TextSearch(e($request->input('search'))); } - if (Input::has('offset')) { - $offset = e($request->input('offset')); - } else { - $offset = 0; - } - - if (Input::has('limit')) { - $limit = e($request->input('limit')); - } else { - $limit = 50; - } - + $offset = request('offset', 0); + $limit = request('limit', 50); $allowed_columns = ['id','name','category_type']; $order = $request->input('order') === 'asc' ? 'asc' : 'desc'; @@ -273,14 +238,15 @@ public function getDatatable(Request $request) $rows = array(); foreach ($categories as $category) { + $actions = Helper::generateDatatableButton('edit', route('categories.edit', $category->id)); + $actions .= Helper::generateDatatableButton( + 'delete', + route('categories.destroy', $category->id), + $category->itemCount() == 0, /* enabled */ + trans('admin/categories/message.delete.confirm'), + $category->name + ); - $actions = ''; - $actions .=''; - $actions .=''; $rows[] = array( 'id' => $category->id, 'name' => (string)link_to_route('categories.show', $category->name, ['category' => $category->id]) , @@ -299,7 +265,6 @@ public function getDatatable(Request $request) public function getDataViewAssets(Request $request, $categoryID) { - $category = Category::find($categoryID); $category = $category->load('assets.company', 'assets.model', 'assets.assetstatus', 'assets.assigneduser'); $category_assets = $category->assets(); @@ -307,17 +272,8 @@ public function getDataViewAssets(Request $request, $categoryID) $category_assets = $category_assets->TextSearch(e($request->input('search'))); } - if (Input::has('offset')) { - $offset = e($request->input('offset')); - } else { - $offset = 0; - } - - if (Input::has('limit')) { - $limit = e($request->input('limit')); - } else { - $limit = 50; - } + $offset = request('offset', 0); + $limit = request('limit', 50); $order = $request->input('order') === 'asc' ? 'asc' : 'desc'; @@ -332,18 +288,28 @@ public function getDataViewAssets(Request $request, $categoryID) $inout=''; if ($asset->deleted_at=='') { - $actions = '
    '; + $actions = '
    '; + $actions .= Helper::generateDatatableButton('clone', route('clone/hardware', $asset->id)); + $actions .= Helper::generateDatatableButton('edit', route('hardware.edit', $asset->id)); + $actions .= Helper::generateDatatableButton( + 'delete', + route('hardware.destroy', $asset->id), + true, /* enabled */ + trans('admin/hardware/message.delete.confirm'), + $asset->asset_tag + ); + $actions .= '
    '; } elseif ($asset->deleted_at!='') { - $actions = ''; + $actions = Helper::generateDatatableButton('restore', route('restore/hardware', $asset->id)); } if ($asset->availableForCheckout()) { if (Gate::allows('checkout', $asset)) { - $inout = ''.trans('general.checkout').''; + $inout = Helper::generateDatatableButton('checkout', route('checkout/hardware', $asset->id)); } } else { if (Gate::allows('checkin', $asset)) { - $inout = ''.trans('general.checkin').''; + $inout = Helper::generateDatatableButton('checkin', route('checkin/hardware', $asset->id)); } } @@ -365,48 +331,48 @@ public function getDataViewAssets(Request $request, $categoryID) } - + /** + * @param $categoryID + * @return array + */ public function getDataViewAccessories($categoryID) { $category = Category::with('accessories.company')->find($categoryID); - $category_assets = $category->accessories; + $category_accessories = $category->accessories(); if (Input::has('search')) { - $category_assets = $category_assets->TextSearch(e($request->input('search'))); - } - - if (Input::has('offset')) { - $offset = e($request->input('offset')); - } else { - $offset = 0; + $category_accessories = $category_accessories->TextSearch(e($request->input('search'))); } - if (Input::has('limit')) { - $limit = e($request->input('limit')); - } else { - $limit = 50; - } + $offset = request('offset', 0); + $limit = request('limit', 50); $order = $request->input('order') === 'asc' ? 'asc' : 'desc'; $allowed_columns = ['id','name','serial','asset_tag']; $sort = in_array($request->input('sort'), $allowed_columns) ? $request->input('sort') : 'created_at'; - $count = $category_assets->count(); + $count = $category_accessories->count(); + $category_accessories = $category_accessories->skip($offset)->take($limit)->get(); $rows = array(); - foreach ($category_assets as $asset) { + foreach ($category_accessories as $accessory) { $actions = ''; - $inout=''; - if ($asset->deleted_at=='') { - $actions = '
    '; + if ($accessory->deleted_at=='') { + $actions = '
    '; + $actions .= Helper::generateDatatableButton('edit', route('accessories.update', $accessory->id)); + $actions .= Helper::generateDatatableButton('delete', + route('accessories.destroy', $accessory->id), + true, /* enabled */ + trans('admin/accessories/message.delete.confirm'), + $accessory->name + ); + $actions .= '
    '; } - - $rows[] = array( 'id' => $asset->id, 'name' => (string)link_to_route('view/accessory', $asset->name, [$asset->id]), @@ -429,10 +395,10 @@ public function getDataViewConsumables($categoryID, Request $request) { $category = Category::with('accessories.company')->find($categoryID); - $category_assets = $category->consumables; + $category_consumables = $category->consumables(); if (Input::has('search')) { - $category_assets = $category_assets->TextSearch(e($request->input('search'))); + $category_consumables = $category_consumables->TextSearch(e($request->input('search'))); } $offset = request('offset', 0); $limit = request('limit', 50); @@ -441,26 +407,32 @@ public function getDataViewConsumables($categoryID, Request $request) $allowed_columns = ['id','name','serial','asset_tag']; $sort = in_array($request->input('sort'), $allowed_columns) ? $request->input('sort') : 'created_at'; - $count = $category_assets->count(); + $count = $category_consumables->count(); + $category_consumables = $category_consumables->skip($offset)->take($limit)->get(); $rows = array(); - foreach ($category_assets as $asset) { + foreach ($category_consumables as $consumable) { $actions = ''; - $inout=''; - if ($asset->deleted_at=='') { - $actions = '
    '; + if ($consumable->deleted_at=='') { + $actions = '
    '; + $actions .= Helper::generateDatatableButton('edit', route('consumables.update', $consumable->id)); + $actions .= Helper::generateDatatableButton('delete', + route('consumables.destroy', $consumable->id), + true, /* enabled */ + trans('admin/consumables/message.delete.confirm'), + $consumable->name + ); + $actions .= '
    '; } - - $rows[] = array( - 'id' => $asset->id, - 'name' => (string) link_to_route('consumables.show', $asset->name, [$asset->id]), + 'id' => $consumable->id, + 'name' => (string) link_to_route('consumables.show', $consumable->name, [$consumable->id]), 'actions' => $actions, - 'companyName' => Company::getName($asset), + 'companyName' => Company::getName($consumable), ); } @@ -472,48 +444,44 @@ public function getDataViewComponent($categoryID) { $category = Category::with('accessories.company')->find($categoryID); - $category_assets = $category->components; + $category_components = $category->components(); if (Input::has('search')) { - $category_assets = $category_assets->TextSearch(e($request->input('search'))); - } - - if (Input::has('offset')) { - $offset = e($request->input('offset')); - } else { - $offset = 0; + $category_components = $category_components->TextSearch(e($request->input('search'))); } - if (Input::has('limit')) { - $limit = e($request->input('limit')); - } else { - $limit = 50; - } + $offset = request('offset', 0); + $limit = request('limit', 50); $order = $request->input('order') === 'asc' ? 'asc' : 'desc'; $allowed_columns = ['id','name','serial','asset_tag']; $sort = in_array($request->input('sort'), $allowed_columns) ? $request->input('sort') : 'created_at'; - $count = $category_assets->count(); + $count = $category_components->count(); + $category_components = $category_components->skip($offset)->take($limit)->get(); $rows = array(); - - foreach ($category_assets as $asset) { + foreach ($category_components as $component) { $actions = ''; - $inout=''; - if ($asset->deleted_at=='') { - $actions = '
    '; + if ($component->deleted_at=='') { + $actions = '
    '; + $actions .= Helper::generateDatatableButton('edit', route('components.edit', $component->id)); + $actions .= Helper::generateDatatableButton('delete', + route('components.destroy', $component->id), + true, /* enabled */ + trans('admin/components/message.delete.confirm'), + $component->name + ); + $actions .= '
    '; } - - $rows[] = array( - 'id' => $asset->id, - 'name' => (string)link_to_route('view/accessory', $asset->name, [$asset->id]), + 'id' => $component->id, + 'name' => (string)link_to_route('view/accessory', $component->name, [$component->id]), 'actions' => $actions, - 'companyName' => Company::getName($asset), + 'companyName' => Company::getName($component), ); } diff --git a/app/Http/Controllers/CompaniesController.php b/app/Http/Controllers/CompaniesController.php index 3f0f158649e0..f995491da209 100644 --- a/app/Http/Controllers/CompaniesController.php +++ b/app/Http/Controllers/CompaniesController.php @@ -23,8 +23,8 @@ final class CompaniesController extends Controller * * @author [Abdullah Alansari] [] * @since [v1.8] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function index() { return View::make('companies/index')->with('companies', Company::all()); @@ -35,32 +35,31 @@ public function index() * * @author [Abdullah Alansari] [] * @since [v1.8] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function create() { return View::make('companies/edit')->with('item', new Company); } /** - * Save data from new company form. - * - * @author [Abdullah Alansari] [] - * @since [v1.8] - * @return Redirect - */ + * Save data from new company form. + * + * @author [Abdullah Alansari] [] + * @since [v1.8] + * @param Request $request + * @return \Illuminate\Http\RedirectResponse + */ public function store(Request $request) { $company = new Company; - $company->name = e($request->input('name')); + $company->name = $request->input('name'); if ($company->save()) { return redirect()->route('companies.index') ->with('success', trans('admin/companies/message.create.success')); - } else { - return redirect()->back()->withInput()->withErrors($company->getErrors()); } - + return redirect()->back()->withInput()->withErrors($company->getErrors()); } @@ -70,44 +69,40 @@ public function store(Request $request) * @author [Abdullah Alansari] [] * @since [v1.8] * @param int $companyId - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function edit($companyId) { if (is_null($item = Company::find($companyId))) { return redirect()->route('companies.index') ->with('error', trans('admin/companies/message.does_not_exist')); - } else { - return View::make('companies/edit')->with('item', $item); } + return View::make('companies/edit')->with('item', $item); } /** - * Save data from edit company form. - * - * @author [Abdullah Alansari] [] - * @since [v1.8] - * @param int $companyId - * @return Redirect - */ + * Save data from edit company form. + * + * @author [Abdullah Alansari] [] + * @since [v1.8] + * @param Request $request + * @param int $companyId + * @return \Illuminate\Http\RedirectResponse + */ public function update(Request $request, $companyId) { if (is_null($company = Company::find($companyId))) { return redirect()->route('companies.index')->with('error', trans('admin/companies/message.does_not_exist')); - } else { - + } - $company->name = e($request->input('name')); - - if ($company->save()) { - return redirect()->route('companies.index') - ->with('success', trans('admin/companies/message.update.success')); - } else { - return redirect()->route('companies.edit', ['company' => $companyId]) - ->with('error', trans('admin/companies/message.update.error')); - } + $company->name = $request->input('name'); + if ($company->save()) { + return redirect()->route('companies.index') + ->with('success', trans('admin/companies/message.update.success')); } + return redirect()->route('companies.edit', ['company' => $companyId]) + ->with('error', trans('admin/companies/message.update.error')); } /** @@ -116,8 +111,8 @@ public function update(Request $request, $companyId) * @author [Abdullah Alansari] [] * @since [v1.8] * @param int $companyId - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function destroy($companyId) { if (is_null($company = Company::find($companyId))) { diff --git a/app/Http/Controllers/ComponentsController.php b/app/Http/Controllers/ComponentsController.php index 38e486fadc34..d520a54a2f24 100644 --- a/app/Http/Controllers/ComponentsController.php +++ b/app/Http/Controllers/ComponentsController.php @@ -11,6 +11,7 @@ use Auth; use Config; use DB; +use DeepCopyTest\H; use Input; use Lang; use Mail; @@ -37,7 +38,7 @@ class ComponentsController extends Controller * @author [A. Gianotto] [] * @see ComponentsController::getDatatable() method that generates the JSON response * @since [v3.0] - * @return View + * @return \Illuminate\Contracts\View\View */ public function index() { @@ -52,21 +53,17 @@ public function index() * @author [A. Gianotto] [] * @see ComponentsController::postCreate() method that stores the data * @since [v3.0] - * @return View + * @return \Illuminate\Contracts\View\View */ public function create() { $this->authorize('create', Component::class); // Show the page - $category_list = Helper::categoryList('component'); - $company_list = Helper::companyList(); - $location_list = Helper::locationsList(); - return View::make('components/edit') ->with('item', new Component) - ->with('category_list', $category_list) - ->with('company_list', $company_list) - ->with('location_list', $location_list); + ->with('category_list', Helper::categoryList('component')) + ->with('company_list', Helper::companyList()) + ->with('location_list', Helper::locationsList()); } @@ -76,8 +73,8 @@ public function create() * @author [A. Gianotto] [] * @see ComponentsController::getCreate() method that generates the view * @since [v3.0] - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function store() { $this->authorize('create', Component::class); @@ -85,28 +82,28 @@ public function store() $component = new Component(); // Update the component data - $component->name = e(Input::get('name')); - $component->category_id = e(Input::get('category_id')); - $component->location_id = e(Input::get('location_id')); + $component->name = Input::get('name'); + $component->category_id = Input::get('category_id'); + $component->location_id = Input::get('location_id'); $component->company_id = Company::getIdForCurrentUser(Input::get('company_id')); - $component->order_number = e(Input::get('order_number')); - $component->min_amt = e(Input::get('min_amt')); - $component->serial = e(Input::get('serial')); + $component->order_number = Input::get('order_number'); + $component->min_amt = Input::get('min_amt'); + $component->serial = Input::get('serial'); - if (e(Input::get('purchase_date')) == '') { + if (Input::get('purchase_date') == '') { $component->purchase_date = null; } else { - $component->purchase_date = e(Input::get('purchase_date')); + $component->purchase_date = Input::get('purchase_date'); } - if (e(Input::get('purchase_cost')) == '0.00') { + if (Input::get('purchase_cost') == '0.00') { $component->purchase_cost = null; } else { - $component->purchase_cost = Helper::ParseFloat(e(Input::get('purchase_cost'))); + $component->purchase_cost = Helper::ParseFloat(Input::get('purchase_cost')); } - $component->qty = e(Input::get('qty')); - $component->user_id = Auth::user()->id; + $component->qty = Input::get('qty'); + $component->user_id = Auth::id(); // Was the component created? if ($component->save()) { @@ -114,10 +111,7 @@ public function store() // Redirect to the new component page return redirect()->route('components.index')->with('success', trans('admin/components/message.create.success')); } - return redirect()->back()->withInput()->withErrors($component->getErrors()); - - } /** @@ -127,8 +121,8 @@ public function store() * @see ComponentsController::postEdit() method that stores the data. * @since [v3.0] * @param int $componentId - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function edit($componentId = null) { // Check if the component exists @@ -139,14 +133,10 @@ public function edit($componentId = null) $this->authorize('update', $item); - $category_list = Helper::categoryList('component'); - $company_list = Helper::companyList(); - $location_list = Helper::locationsList(); - return View::make('components/edit', compact('item')) - ->with('category_list', $category_list) - ->with('company_list', $company_list) - ->with('location_list', $location_list); + ->with('category_list', Helper::categoryList('component')) + ->with('company_list', Helper::companyList()) + ->with('location_list', Helper::locationsList()); } @@ -157,8 +147,8 @@ public function edit($componentId = null) * @see ComponentsController::getEdit() method presents the form. * @param int $componentId * @since [v3.0] - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function update($componentId = null) { // Check if the blog post exists @@ -171,34 +161,32 @@ public function update($componentId = null) // Update the component data - $component->name = e(Input::get('name')); - $component->category_id = e(Input::get('category_id')); - $component->location_id = e(Input::get('location_id')); + $component->name = Input::get('name'); + $component->category_id = Input::get('category_id'); + $component->location_id = Input::get('location_id'); $component->company_id = Company::getIdForCurrentUser(Input::get('company_id')); - $component->order_number = e(Input::get('order_number')); - $component->min_amt = e(Input::get('min_amt')); - $component->serial = e(Input::get('serial')); + $component->order_number = Input::get('order_number'); + $component->min_amt = Input::get('min_amt'); + $component->serial = Input::get('serial'); - if (e(Input::get('purchase_date')) == '') { + if (Input::get('purchase_date') == '') { $component->purchase_date = null; } else { - $component->purchase_date = e(Input::get('purchase_date')); + $component->purchase_date = Input::get('purchase_date'); } - if (e(Input::get('purchase_cost')) == '0.00') { + if (Input::get('purchase_cost') == '0.00') { $component->purchase_cost = null; } else { - $component->purchase_cost = Helper::ParseFloat(e(Input::get('purchase_cost'))); + $component->purchase_cost = Helper::ParseFloat(Input::get('purchase_cost')); } - $component->qty = e(Input::get('qty')); + $component->qty = Input::get('qty'); if ($component->save()) { return redirect()->route('components.index')->with('success', trans('admin/components/message.update.success')); } - return redirect()->back()->withInput()->withErrors($component->getErrors()); - } /** @@ -207,8 +195,8 @@ public function update($componentId = null) * @author [A. Gianotto] [] * @since [v3.0] * @param int $componentId - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function destroy($componentId) { if (is_null($component = Component::find($componentId))) { @@ -216,10 +204,8 @@ public function destroy($componentId) } $this->authorize('delete', $component); - $component->delete(); return redirect()->route('components.index')->with('success', trans('admin/components/message.delete.success')); - } public function postBulk($componentId = null) @@ -242,25 +228,20 @@ public function postBulkSave($componentId = null) * @see ComponentsController::getDataView() method that generates the JSON response * @since [v3.0] * @param int $componentId - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function show($componentId = null) { $component = Component::find($componentId); if (isset($component->id)) { - - $this->authorize('view', $component); - return View::make('components/view', compact('component')); } // Prepare the error message $error = trans('admin/components/message.does_not_exist', compact('id')); - // Redirect to the user management page return redirect()->route('components')->with('error', $error); - } /** @@ -270,8 +251,8 @@ public function show($componentId = null) * @see ComponentsController::postCheckout() method that stores the data. * @since [v3.0] * @param int $componentId - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function getCheckout($componentId) { // Check if the component exists @@ -279,25 +260,20 @@ public function getCheckout($componentId) // Redirect to the component management page with error return redirect()->route('components.index')->with('error', trans('admin/components/message.not_found')); } - $this->authorize('checkout', $component); - - // Get the dropdown of assets and then pass it to the checkout view - $assets_list = Helper::detailedAssetList(); - - return View::make('components/checkout', compact('component'))->with('assets_list', $assets_list); - + return View::make('components/checkout', compact('component'))->with('assets_list', Helper::detailedAssetList()); } /** - * Validate and store checkout data. - * - * @author [A. Gianotto] [] - * @see ComponentsController::getCheckout() method that returns the form. - * @since [v3.0] - * @param int $componentId - * @return Redirect - */ + * Validate and store checkout data. + * + * @author [A. Gianotto] [] + * @see ComponentsController::getCheckout() method that returns the form. + * @since [v3.0] + * @param Request $request + * @param int $componentId + * @return \Illuminate\Http\RedirectResponse + */ public function postCheckout(Request $request, $componentId) { // Check if the component exists @@ -332,12 +308,13 @@ public function postCheckout(Request $request, $componentId) // Update the component data $component->asset_id = $asset_id; - $component->assets()->attach($component->id, array( - 'component_id' => $component->id, - 'user_id' => $admin_user->id, - 'created_at' => date('Y-m-d H:i:s'), - 'assigned_qty' => e(Input::get('assigned_qty')), - 'asset_id' => $asset_id)); + $component->assets()->attach($component->id, [ + 'component_id' => $component->id, + 'user_id' => $admin_user->id, + 'created_at' => date('Y-m-d H:i:s'), + 'assigned_qty' => Input::get('assigned_qty'), + 'asset_id' => $asset_id + ]); $logaction = $component->logCheckout(e(Input::get('note')), $asset_id); @@ -377,9 +354,6 @@ public function postCheckout(Request $request, $componentId) } return redirect()->route('components.index')->with('success', trans('admin/components/message.checkout.success')); - - - } @@ -402,17 +376,8 @@ public function getDatatable() $components = $components->TextSearch(Input::get('search')); } - if (Input::has('offset')) { - $offset = e(Input::get('offset')); - } else { - $offset = 0; - } - - if (Input::has('limit')) { - $limit = e(Input::get('limit')); - } else { - $limit = 50; - } + $offset = request('offset', 0); + $limit = request('limit', 50); $allowed_columns = ['id','name','min_amt','order_number','serial','purchase_date','purchase_cost','companyName','category','total_qty']; $order = Input::get('order') === 'asc' ? 'asc' : 'desc'; @@ -433,7 +398,7 @@ public function getDatatable() break; } - $consumCount = $components->count(); + $componentsCount = $components->count(); $components = $components->skip($offset)->take($limit)->get(); $rows = array(); @@ -441,18 +406,21 @@ public function getDatatable() foreach ($components as $component) { $actions = ''; if (Gate::allows('checkout', $component)) { - $actions .= 'numRemaining() > 0) ? '' : ' disabled') . '>' . trans('general.checkout') . ''; + $actions .= Helper::generateDatatableButton('checkout', route('checkout/component', $component->id), $component->numRemaining() > 0); } - if (Gate::allows('edit', $component)) { - $actions .= ''; + if (Gate::allows('update', $component)) { + $actions .= Helper::generateDatatableButton('edit', route('components.edit', $component->id)); } if (Gate::allows('delete', $component)) { - $actions .= ''; + $actions .= Helper::generateDatatableButton( + 'delete', + route('components.destroy', $component->id), + true, /* enabled */ + trans('admin/components/message.delete.confirm'), + $component->name + ); } $actions .=''; @@ -476,7 +444,7 @@ public function getDatatable() ); } - $data = array('total' => $consumCount, 'rows' => $rows); + $data = array('total' => $componentsCount, 'rows' => $rows); return $data; diff --git a/app/Http/Controllers/ConsumablesController.php b/app/Http/Controllers/ConsumablesController.php index 5612fe4788a3..40a03cd796b8 100644 --- a/app/Http/Controllers/ConsumablesController.php +++ b/app/Http/Controllers/ConsumablesController.php @@ -34,8 +34,8 @@ class ConsumablesController extends Controller * @author [A. Gianotto] [] * @see ConsumablesController::getDatatable() method that generates the JSON response * @since [v1.0] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function index() { $this->authorize('index', Consumable::class); @@ -49,23 +49,18 @@ public function index() * @author [A. Gianotto] [] * @see ConsumablesController::postCreate() method that stores the form data * @since [v1.0] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function create() { $this->authorize('create', Consumable::class); // Show the page - $category_list = Helper::categoryList('consumable'); - $company_list = Helper::companyList(); - $location_list = Helper::locationsList(); - $manufacturer_list = Helper::manufacturerList(); - return View::make('consumables/edit') ->with('item', new Consumable) - ->with('category_list', $category_list) - ->with('company_list', $company_list) - ->with('location_list', $location_list) - ->with('manufacturer_list', $manufacturer_list); + ->with('category_list', Helper::categoryList('consumable')) + ->with('company_list', Helper::companyList()) + ->with('location_list', Helper::locationsList()) + ->with('manufacturer_list', Helper::manufacturerList()); } @@ -75,36 +70,36 @@ public function create() * @author [A. Gianotto] [] * @see ConsumablesController::getCreate() method that returns the form view * @since [v1.0] - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function store() { $this->authorize('create', Consumable::class); $consumable = new Consumable(); - $consumable->name = e(Input::get('name')); - $consumable->category_id = e(Input::get('category_id')); - $consumable->location_id = e(Input::get('location_id')); + $consumable->name = Input::get('name'); + $consumable->category_id = Input::get('category_id'); + $consumable->location_id = Input::get('location_id'); $consumable->company_id = Company::getIdForCurrentUser(Input::get('company_id')); - $consumable->order_number = e(Input::get('order_number')); - $consumable->min_amt = e(Input::get('min_amt')); - $consumable->manufacturer_id = e(Input::get('manufacturer_id')); - $consumable->model_number = e(Input::get('model_number')); - $consumable->item_no = e(Input::get('item_no')); + $consumable->order_number = Input::get('order_number'); + $consumable->min_amt = Input::get('min_amt'); + $consumable->manufacturer_id = Input::get('manufacturer_id'); + $consumable->model_number = Input::get('model_number'); + $consumable->item_no = Input::get('item_no'); - if (e(Input::get('purchase_date')) == '') { + if (Input::get('purchase_date') == '') { $consumable->purchase_date = null; } else { - $consumable->purchase_date = e(Input::get('purchase_date')); + $consumable->purchase_date = Input::get('purchase_date'); } - if (e(Input::get('purchase_cost')) == '0.00') { + if (Input::get('purchase_cost') == '0.00') { $consumable->purchase_cost = null; } else { - $consumable->purchase_cost = Helper::ParseFloat(e(Input::get('purchase_cost'))); + $consumable->purchase_cost = Helper::ParseFloat(Input::get('purchase_cost')); } - $consumable->qty = e(Input::get('qty')); - $consumable->user_id = Auth::user()->id; + $consumable->qty = Input::get('qty'); + $consumable->user_id = Auth::id(); // Was the consumable created? if ($consumable->save()) { @@ -125,8 +120,8 @@ public function store() * @param int $consumableId * @see ConsumablesController::postEdit() method that stores the form data. * @since [v1.0] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function edit($consumableId = null) { // Check if the consumable exists @@ -137,16 +132,11 @@ public function edit($consumableId = null) $this->authorize($item); - $category_list = Helper::categoryList('consumable'); - $company_list = Helper::companyList(); - $location_list = Helper::locationsList(); - $manufacturer_list = Helper::manufacturerList(); - return View::make('consumables/edit', compact('item')) - ->with('category_list', $category_list) - ->with('company_list', $company_list) - ->with('location_list', $location_list) - ->with('manufacturer_list', $manufacturer_list); + ->with('category_list', Helper::categoryList('consumable')) + ->with('company_list', Helper::companyList()) + ->with('location_list', Helper::locationsList()) + ->with('manufacturer_list', Helper::manufacturerList()); } @@ -157,8 +147,8 @@ public function edit($consumableId = null) * @param int $consumableId * @see ConsumablesController::getEdit() method that stores the form data. * @since [v1.0] - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function update($consumableId = null) { if (is_null($consumable = Consumable::find($consumableId))) { @@ -167,36 +157,34 @@ public function update($consumableId = null) $this->authorize($consumable); - $consumable->name = e(Input::get('name')); - $consumable->category_id = e(Input::get('category_id')); - $consumable->location_id = e(Input::get('location_id')); + $consumable->name = Input::get('name'); + $consumable->category_id = Input::get('category_id'); + $consumable->location_id = Input::get('location_id'); $consumable->company_id = Company::getIdForCurrentUser(Input::get('company_id')); - $consumable->order_number = e(Input::get('order_number')); - $consumable->min_amt = e(Input::get('min_amt')); - $consumable->manufacturer_id = e(Input::get('manufacturer_id')); - $consumable->model_number = e(Input::get('model_number')); - $consumable->item_no = e(Input::get('item_no')); + $consumable->order_number = Input::get('order_number'); + $consumable->min_amt = Input::get('min_amt'); + $consumable->manufacturer_id = Input::get('manufacturer_id'); + $consumable->model_number = Input::get('model_number'); + $consumable->item_no = Input::get('item_no'); - if (e(Input::get('purchase_date')) == '') { + if (Input::get('purchase_date') == '') { $consumable->purchase_date = null; } else { - $consumable->purchase_date = e(Input::get('purchase_date')); + $consumable->purchase_date = Input::get('purchase_date'); } - if (e(Input::get('purchase_cost')) == '0.00') { + if (Input::get('purchase_cost') == '0.00') { $consumable->purchase_cost = null; } else { - $consumable->purchase_cost = Helper::ParseFloat(e(Input::get('purchase_cost'))); + $consumable->purchase_cost = Helper::ParseFloat(Input::get('purchase_cost')); } - $consumable->qty = Helper::ParseFloat(e(Input::get('qty'))); + $consumable->qty = Helper::ParseFloat(Input::get('qty')); if ($consumable->save()) { return redirect()->route('consumables.index')->with('success', trans('admin/consumables/message.update.success')); } - return redirect()->back()->withInput()->withErrors($consumable->getErrors()); - } /** @@ -205,8 +193,8 @@ public function update($consumableId = null) * @author [A. Gianotto] [] * @param int $consumableId * @since [v1.0] - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function destroy($consumableId) { // Check if the blog post exists @@ -214,18 +202,12 @@ public function destroy($consumableId) // Redirect to the blogs management page return redirect()->route('consumables.index')->with('error', trans('admin/consumables/message.not_found')); } - $this->authorize($consumable); - $consumable->delete(); - // Redirect to the locations management page return redirect()->route('consumables.index')->with('success', trans('admin/consumables/message.delete.success')); - } - - /** * Return a view to display component information. * @@ -233,8 +215,8 @@ public function destroy($consumableId) * @see ConsumablesController::getDataView() method that generates the JSON response * @since [v1.0] * @param int $consumableId - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function show($consumableId = null) { $consumable = Consumable::find($consumableId); @@ -256,8 +238,8 @@ public function show($consumableId = null) * @see ConsumablesController::postCheckout() method that stores the data. * @since [v1.0] * @param int $consumableId - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function getCheckout($consumableId) { // Check if the consumable exists @@ -266,12 +248,8 @@ public function getCheckout($consumableId) return redirect()->route('consumables.index')->with('error', trans('admin/consumables/message.not_found')); } $this->authorize('checkout', $consumable); - // Get the dropdown of users and then pass it to the checkout view - $users_list = Helper::usersList(); - - return View::make('consumables/checkout', compact('consumable'))->with('users_list', $users_list); - + return View::make('consumables/checkout', compact('consumable'))->with('users_list', Helper::usersList()); } /** @@ -281,8 +259,8 @@ public function getCheckout($consumableId) * @see ConsumablesController::getCheckout() method that returns the form. * @since [v1.0] * @param int $consumableId - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function postCheckout($consumableId) { // Check if the consumable exists @@ -305,10 +283,11 @@ public function postCheckout($consumableId) // Update the consumable data $consumable->assigned_to = e(Input::get('assigned_to')); - $consumable->users()->attach($consumable->id, array( - 'consumable_id' => $consumable->id, - 'user_id' => $admin_user->id, - 'assigned_to' => e(Input::get('assigned_to')))); + $consumable->users()->attach($consumable->id, [ + 'consumable_id' => $consumable->id, + 'user_id' => $admin_user->id, + 'assigned_to' => e(Input::get('assigned_to')) + ]); $logaction = $consumable->logCheckout(e(Input::get('note'))); @@ -356,7 +335,6 @@ public function postCheckout($consumableId) $data['note'] = $logaction->note; $data['require_acceptance'] = $consumable->requireAcceptance(); - if (($consumable->requireAcceptance()=='1') || ($consumable->getEula())) { Mail::send('emails.accept-asset', $data, function ($m) use ($user) { @@ -369,8 +347,6 @@ public function postCheckout($consumableId) // Redirect to the new consumable page return redirect()->route('consumables.index')->with('success', trans('admin/consumables/message.checkout.success')); - - } @@ -380,9 +356,8 @@ public function postCheckout($consumableId) * @author [A. Gianotto] [] * @see ConsumablesController::getIndex() method that returns the view that consumes the JSON. * @since [v1.0] - * @param int $consumableId - * @return View - */ + * @return array + */ public function getDatatable() { $this->authorize('index', Consumable::class); @@ -396,18 +371,8 @@ public function getDatatable() $consumables = $consumables->TextSearch(e(Input::get('search'))); } - if (Input::has('offset')) { - $offset = e(Input::get('offset')); - } else { - $offset = 0; - } - - if (Input::has('limit')) { - $limit = e(Input::get('limit')); - } else { - $limit = 50; - } - + $offset = request('offset', 0); + $limit = request('limit', 50); $allowed_columns = ['id','name','order_number','min_amt','purchase_date','purchase_cost','companyName','category','model_number', 'item_no', 'manufacturer']; $order = Input::get('order') === 'asc' ? 'asc' : 'desc'; $sort = in_array(Input::get('sort'), $allowed_columns) ? Input::get('sort') : 'created_at'; @@ -438,19 +403,21 @@ public function getDatatable() foreach ($consumables as $consumable) { $actions = ''; if (Gate::allows('checkout', $consumable)) { - $actions .= 'numRemaining() > 0) ? '' : ' disabled') . '>' . trans('general.checkout') . ''; + $actions .= Helper::generateDatatableButton('checkout', route('checkout/consumable', $consumable->id), $consumable->numRemaining() > 0); } if (Gate::allows('update', $consumable)) { - $actions .= ''; + $actions .= Helper::generateDatatableButton('edit', route('consumables.edit', $consumable->id)); } if (Gate::allows('delete', $consumable)) { - $actions .= ''; + $actions .= Helper::generateDatatableButton( + 'delete', + route('consumables.destroy', $consumable->id), + true, /* enabled */ + trans('admin/consumables/message.delete.confirm'), + $consumable->name + ); } - $actions .=''; $company = $consumable->company; @@ -487,8 +454,8 @@ public function getDatatable() * @see ConsumablesController::getView() method that returns the form. * @since [v1.0] * @param int $consumableId - * @return View - */ + * @return array + */ public function getDataView($consumableId) { //$consumable = Consumable::find($consumableID); @@ -507,7 +474,7 @@ function ($query) { if (!Company::isCurrentUserHasAccess($consumable)) { return ['total' => 0, 'rows' => []]; } - + $this->authorize('view', Component::class); $rows = array(); foreach ($consumable->consumableAssigments as $consumable_assignment) { diff --git a/app/Http/Controllers/DepreciationsController.php b/app/Http/Controllers/DepreciationsController.php index 2f5a868c6fa8..a17d1a89dc91 100755 --- a/app/Http/Controllers/DepreciationsController.php +++ b/app/Http/Controllers/DepreciationsController.php @@ -1,6 +1,7 @@ all(); - - // create a new instance + // create a new instance $depreciation = new Depreciation(); + // Depreciation data + $depreciation->name = $request->input('name'); + $depreciation->months = $request->input('months'); + $depreciation->user_id = Auth::id(); - // Depreciation data - $depreciation->name = e($request->input('name')); - $depreciation->months = e($request->input('months')); - $depreciation->user_id = Auth::user()->id; - - // Was the asset created? + // Was the asset created? if ($depreciation->save()) { // Redirect to the new depreciation page return redirect()->route('depreciations.index')->with('success', trans('admin/depreciations/message.create.success')); } - return redirect()->back()->withInput()->withErrors($depreciation->getErrors()); - } /** @@ -89,8 +84,8 @@ public function store(Request $request) * @see DepreciationsController::postEdit() * @param int $depreciationId * @since [v1.0] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function edit($depreciationId = null) { // Check if the depreciation exists @@ -110,7 +105,7 @@ public function edit($depreciationId = null) * @see DepreciationsController::getEdit() * @param Request $request * @param int $depreciationId - * @return Redirect + * @return \Illuminate\Http\RedirectResponse * @since [v1.0] */ public function update(Request $request, $depreciationId = null) @@ -122,61 +117,55 @@ public function update(Request $request, $depreciationId = null) } // Depreciation data - $depreciation->name = e($request->input('name')); - $depreciation->months = e($request->input('months')); + $depreciation->name = $request->input('name'); + $depreciation->months = $request->input('months'); // Was the asset created? if ($depreciation->save()) { // Redirect to the depreciation page return redirect()->route("depreciations.index")->with('success', trans('admin/depreciations/message.update.success')); } - return redirect()->back()->withInput()->withErrors($depreciation->getErrors()); - - } /** - * Validates and deletes a selected depreciation. - * - * This is a hard-delete. We do not currently soft-delete depreciations. - * - * @author [A. Gianotto] [route('depreciations.index')->with('error', trans('admin/depreciations/message.not_found')); } if ($depreciation->has_models() > 0) { - // Redirect to the asset management page return redirect()->route('depreciations.index')->with('error', trans('admin/depreciations/message.assoc_users')); - } else { - - $depreciation->delete(); - - // Redirect to the depreciations management page - return redirect()->route('depreciations.index')->with('success', trans('admin/depreciations/message.delete.success')); } + $depreciation->delete(); + // Redirect to the depreciations management page + return redirect()->route('depreciations.index')->with('success', trans('admin/depreciations/message.delete.success')); } /** - * Generates the JSON used to display the depreciation listing. - * - * @see DepreciationsController::getIndex() - * @author [A. Gianotto] [] - * @param string $status - * @since [v1.2] - * @return String JSON - */ + * Generates the JSON used to display the depreciation listing. + * + * @see DepreciationsController::getIndex() + * @author [A. Gianotto] [] + * @param Request $request + * @return String JSON + * @internal param string $status + * @since [v1.2] + */ public function getDatatable(Request $request) { $depreciations = Depreciation::select(array('id','name','months')); @@ -185,17 +174,8 @@ public function getDatatable(Request $request) $depreciations = $depreciations->TextSearch(e($request->input('search'))); } - if ($request->has('offset')) { - $offset = e($request->input('offset')); - } else { - $offset = 0; - } - - if ($request->has('limit')) { - $limit = e($request->input('limit')); - } else { - $limit = 50; - } + $offset = request('offset', 0); + $limit = request('limit', 50); $allowed_columns = ['id','name','months']; $order = $request->input('order') === 'asc' ? 'asc' : 'desc'; @@ -209,7 +189,14 @@ public function getDatatable(Request $request) $rows = array(); foreach ($depreciations as $depreciation) { - $actions = ''; + $actions = Helper::generateDatatableButton('edit', route('depreciations.edit', $depreciation->id)); + $actions .= Helper::generateDatatableButton( + 'delete', + route('depreciations.destroy', $depreciation->id), + true, /*enabled*/ + trans('admin/depreciations/message.delete.confirm'), + $depreciation->name + ); $rows[] = array( 'id' => $depreciation->id, diff --git a/app/Http/Controllers/GroupsController.php b/app/Http/Controllers/GroupsController.php index 7f7781faf6da..0afd06301023 100755 --- a/app/Http/Controllers/GroupsController.php +++ b/app/Http/Controllers/GroupsController.php @@ -26,8 +26,8 @@ class GroupsController extends Controller * @author [A. Gianotto] [save()) { return redirect()->to("admin/groups")->with('success', trans('admin/groups/message.success.create')); } - return redirect()->back()->withInput()->withErrors($group->getErrors()); - - } /** @@ -85,8 +82,8 @@ public function postCreate() * @see GroupsController::postEdit() * @param int $id * @since [v1.0] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function getEdit($id = null) { $group = Group::find($id); @@ -103,30 +100,24 @@ public function getEdit($id = null) * @see GroupsController::getEdit() * @param int $id * @since [v1.0] - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function postEdit($id = null) { $permissions = config('permissions'); if (!$group = Group::find($id)) { return redirect()->route('groups')->with('error', trans('admin/groups/message.group_not_found', compact('id'))); - } $group->name = e(Input::get('name')); $group->permissions = json_encode(Input::get('permission')); - if (!config('app.lock_passwords')) { - if ($group->save()) { return redirect()->to("admin/groups")->with('success', trans('admin/groups/message.success.update')); } return redirect()->back()->withInput()->withErrors($group->getErrors()); - - } else { - return redirect()->route('update/group', $id)->withInput()->with('error', 'Denied! Editing groups is not allowed in the demo.'); } - + return redirect()->route('groups')->with('error', trans('general.feature_disabled')); } /** @@ -136,25 +127,19 @@ public function postEdit($id = null) * @see GroupsController::getEdit() * @param int $id * @since [v1.0] - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function getDelete($id = null) { if (!config('app.lock_passwords')) { - try { - // Get group information - $group = Group::find($id); - $group->delete(); - - // Redirect to the group management page - return redirect()->route('groups')->with('success', trans('admin/groups/message.success.delete')); - } catch (GroupNotFoundException $e) { - // Redirect to the group management page + if (!$group = Group::find($id)) { return redirect()->route('groups')->with('error', trans('admin/groups/message.group_not_found', compact('id'))); } - } else { - return redirect()->route('groups')->with('error', trans('general.feature_disabled')); + $group->delete(); + // Redirect to the group management page + return redirect()->route('groups')->with('success', trans('admin/groups/message.success.delete')); } + return redirect()->route('groups')->with('error', trans('general.feature_disabled')); } @@ -168,17 +153,8 @@ public function getDelete($id = null) public function getDatatable() { - if (Input::has('offset')) { - $offset = e(Input::get('offset')); - } else { - $offset = 0; - } - - if (Input::has('limit')) { - $limit = e(Input::get('limit')); - } else { - $limit = 50; - } + $offset = request('offset', 0); + $limit = request('limit', 50); if (Input::get('sort')=='name') { $sort = 'first_name'; @@ -188,7 +164,6 @@ public function getDatatable() // Grab all the groups $groups = Group::with('users')->orderBy('name', 'ASC'); - //$users = Company::scopeCompanyables($users); if (Input::has('search')) { $groups = $users->TextSearch(e(Input::get('search'))); @@ -196,8 +171,7 @@ public function getDatatable() $order = Input::get('order') === 'asc' ? 'asc' : 'desc'; - $allowed_columns = - [ + $allowed_columns = [ 'name','created_at' ]; @@ -209,14 +183,17 @@ public function getDatatable() $rows = array(); foreach ($groups as $group) { - $group_names = ''; - $inout = ''; $actions = ''; - - $actions .= ' '; + $actions .= Helper::generateDatatableButton('edit', route('update/group', $group->id)); if (!config('app.lock_passwords')) { - $actions .= ' '; + $actions .= Helper::generateDatatableButton( + 'delete', + route('delete/group', $group->id), + true, /*enabled*/ + trans('admin/groups/message.delete.confirm'), + $group->name + ); } else { $actions .= ' '; } @@ -231,7 +208,6 @@ public function getDatatable() 'actions' => ($actions) ? $actions : '', ); } - $data = array('total'=>$groupsCount, 'rows'=>$rows); return $data; } diff --git a/app/Http/Controllers/LicensesController.php b/app/Http/Controllers/LicensesController.php index de910be04a9d..ad0e9c8ce684 100755 --- a/app/Http/Controllers/LicensesController.php +++ b/app/Http/Controllers/LicensesController.php @@ -42,8 +42,8 @@ class LicensesController extends Controller * @author [A. Gianotto] [] * @see LicensesController::getDatatable() method that generates the JSON response * @since [v1.0] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function index() { $this->authorize('view', License::class); @@ -57,12 +57,16 @@ public function index() * @author [A. Gianotto] [] * @see AccessoriesController::getDatatable() method that generates the JSON response * @since [v1.0] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function create() { $this->authorize('create', License::class); - $maintained_list = array('' => 'Maintained', '1' => 'Yes', '0' => 'No'); + $maintained_list = [ + '' => 'Maintained', + '1' => 'Yes', + '0' => 'No' + ]; return View::make('licenses/edit') //->with('license_options',$license_options) @@ -77,71 +81,72 @@ public function create() /** - * Validates and stores the license form data submitted from the new - * license form. - * - * @author [A. Gianotto] [] - * @see LicensesController::getCreate() method that provides the form view - * @since [v1.0] - * @return Redirect - */ + * Validates and stores the license form data submitted from the new + * license form. + * + * @author [A. Gianotto] [] + * @see LicensesController::getCreate() method that provides the form view + * @since [v1.0] + * @param Request $request + * @return \Illuminate\Http\RedirectResponse + */ public function store(Request $request) { $this->authorize('create', License::class); // create a new model instance $license = new License(); - if (e($request->input('purchase_cost')) == '') { + if ($request->input('purchase_cost') == '') { $license->purchase_cost = null; } else { - $license->purchase_cost = Helper::ParseFloat(e($request->input('purchase_cost'))); + $license->purchase_cost = Helper::ParseFloat($request->input('purchase_cost')); } - if (e($request->input('supplier_id')) == '') { + if ($request->input('supplier_id') == '') { $license->supplier_id = null; } else { - $license->supplier_id = e($request->input('supplier_id')); + $license->supplier_id = $request->input('supplier_id'); } - if (e($request->input('maintained')) == '') { + if ($request->input('maintained') == '') { $license->maintained = 0; } else { - $license->maintained = e($request->input('maintained')); + $license->maintained = $request->input('maintained'); } - if (e($request->input('reassignable')) == '') { + if ($request->input('reassignable') == '') { $license->reassignable = 0; } else { - $license->reassignable = e($request->input('reassignable')); + $license->reassignable = $request->input('reassignable'); } - if (e($request->input('purchase_order')) == '') { + if ($request->input('purchase_order') == '') { $license->purchase_order = ''; } else { - $license->purchase_order = e($request->input('purchase_order')); + $license->purchase_order = $request->input('purchase_order'); } - if (empty(e($request->input('manufacturer_id')))) { + if (empty($request->input('manufacturer_id'))) { $license->manufacturer_id = null; } else { - $license->manufacturer_id = e($request->input('manufacturer_id')); + $license->manufacturer_id = $request->input('manufacturer_id'); } // Save the license data - $license->name = e($request->input('name')); - $license->serial = e($request->input('serial')); - $license->license_email = e($request->input('license_email')); - $license->license_name = e($request->input('license_name')); - $license->notes = e($request->input('notes')); - $license->order_number = e($request->input('order_number')); - $license->seats = e($request->input('seats')); - $license->purchase_date = e($request->input('purchase_date')); - $license->purchase_order = e($request->input('purchase_order')); - $license->depreciation_id = e($request->input('depreciation_id')); + $license->name = $request->input('name'); + $license->serial = $request->input('serial'); + $license->license_email = $request->input('license_email'); + $license->license_name = $request->input('license_name'); + $license->notes = $request->input('notes'); + $license->order_number = $request->input('order_number'); + $license->seats = $request->input('seats'); + $license->purchase_date = $request->input('purchase_date'); + $license->purchase_order = $request->input('purchase_order'); + $license->depreciation_id = $request->input('depreciation_id'); $license->company_id = Company::getIdForCurrentUser($request->input('company_id')); - $license->expiration_date = e($request->input('expiration_date')); - $license->termination_date = e($request->input('termination_date')); - $license->user_id = Auth::user()->id; + $license->expiration_date = $request->input('expiration_date'); + $license->termination_date = $request->input('termination_date'); + $license->user_id = Auth::id(); if (($license->purchase_date == "") || ($license->purchase_date == "0000-00-00")) { $license->purchase_date = null; @@ -159,25 +164,21 @@ public function store(Request $request) if ($license->save()) { $license->logCreate(); $insertedId = $license->id; - // Save the license seat data + // Save the license seat data DB::transaction(function () use (&$insertedId, &$license) { for ($x=0; $x<$license->seats; $x++) { $license_seat = new LicenseSeat(); $license_seat->license_id = $insertedId; - $license_seat->user_id = Auth::user()->id; + $license_seat->user_id = Auth::id(); $license_seat->assigned_to = null; $license_seat->notes = null; $license_seat->save(); } }); - - // Redirect to the new license page return redirect()->route("licenses.index")->with('success', trans('admin/licenses/message.create.success')); } - return redirect()->back()->withInput()->withErrors($license->getErrors()); - } /** @@ -187,8 +188,8 @@ public function store(Request $request) * @author [A. Gianotto] [] * @since [v1.0] * @param int $licenseId - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function edit($licenseId = null) { if (is_null($item = License::find($licenseId))) { @@ -205,7 +206,11 @@ public function edit($licenseId = null) $item->purchase_cost = null; } - $maintained_list = array('' => 'Maintained', '1' => 'Yes', '0' => 'No'); + $maintained_list = [ + '' => 'Maintained', + '1' => 'Yes', + '0' => 'No' + ]; return View::make('licenses/edit', compact('item')) ->with('depreciation_list', Helper::depreciationList()) @@ -217,15 +222,16 @@ public function edit($licenseId = null) /** - * Validates and stores the license form data submitted from the edit - * license form. - * - * @author [A. Gianotto] [] - * @see LicensesController::getEdit() method that provides the form view - * @since [v1.0] - * @param int $licenseId - * @return Redirect - */ + * Validates and stores the license form data submitted from the edit + * license form. + * + * @author [A. Gianotto] [] + * @see LicensesController::getEdit() method that provides the form view + * @since [v1.0] + * @param Request $request + * @param int $licenseId + * @return \Illuminate\Http\RedirectResponse + */ public function update(Request $request, $licenseId = null) { // Check if the license exists @@ -237,78 +243,78 @@ public function update(Request $request, $licenseId = null) $this->authorize('update', $license); // Update the license data - $license->name = e($request->input('name')); - $license->serial = e($request->input('serial')); - $license->license_email = e($request->input('license_email')); - $license->license_name = e($request->input('license_name')); - $license->notes = e($request->input('notes')); - $license->order_number = e($request->input('order_number')); - $license->depreciation_id = e($request->input('depreciation_id')); + $license->name = $request->input('name'); + $license->serial = $request->input('serial'); + $license->license_email = $request->input('license_email'); + $license->license_name = $request->input('license_name'); + $license->notes = $request->input('notes'); + $license->order_number = $request->input('order_number'); + $license->depreciation_id = $request->input('depreciation_id'); $license->company_id = Company::getIdForCurrentUser($request->input('company_id')); - $license->purchase_order = e($request->input('purchase_order')); - $license->maintained = e($request->input('maintained')); - $license->reassignable = e($request->input('reassignable')); + $license->purchase_order = $request->input('purchase_order'); + $license->maintained = $request->input('maintained'); + $license->reassignable = $request->input('reassignable'); - if (empty(e($request->input('manufacturer_id')))) { + if (empty($request->input('manufacturer_id'))) { $license->manufacturer_id = null; } else { - $license->manufacturer_id = e($request->input('manufacturer_id')); + $license->manufacturer_id = $request->input('manufacturer_id'); } - if (e($request->input('supplier_id')) == '') { + if ($request->input('supplier_id') == '') { $license->supplier_id = null; } else { - $license->supplier_id = e($request->input('supplier_id')); + $license->supplier_id = $request->input('supplier_id'); } // Update the asset data - if (e($request->input('purchase_date')) == '') { + if ($request->input('purchase_date') == '') { $license->purchase_date = null; } else { - $license->purchase_date = e($request->input('purchase_date')); + $license->purchase_date = $request->input('purchase_date'); } - if (e($request->input('expiration_date')) == '') { + if ($request->input('expiration_date') == '') { $license->expiration_date = null; } else { - $license->expiration_date = e($request->input('expiration_date')); + $license->expiration_date = $request->input('expiration_date'); } - if (e($request->input('termination_date')) == '') { + if ($request->input('termination_date') == '') { $license->termination_date = null; } else { - $license->termination_date = e($request->input('termination_date')); + $license->termination_date = $request->input('termination_date'); } - if (e($request->input('purchase_cost')) == '') { + if ($request->input('purchase_cost') == '') { $license->purchase_cost = null; } else { - $license->purchase_cost = Helper::ParseFloat(e($request->input('purchase_cost'))); + $license->purchase_cost = Helper::ParseFloat($request->input('purchase_cost')); } - if (e($request->input('maintained')) == '') { + if ($request->input('maintained') == '') { $license->maintained = 0; } else { - $license->maintained = e($request->input('maintained')); + $license->maintained = $request->input('maintained'); } - if (e($request->input('reassignable')) == '') { + if ($request->input('reassignable') == '') { $license->reassignable = 0; } else { - $license->reassignable = e($request->input('reassignable')); + $license->reassignable = $request->input('reassignable'); } - if (e($request->input('purchase_order')) == '') { + if ($request->input('purchase_order') == '') { $license->purchase_order = ''; } else { - $license->purchase_order = e($request->input('purchase_order')); + $license->purchase_order = $request->input('purchase_order'); } //Are we changing the total number of seats? - if ($license->seats != e($request->input('seats'))) { + if ($license->seats != $request->input('seats')) { //Determine how many seats we are dealing with - $difference = e($request->input('seats')) - $license->licenseseats()->count(); + $difference = $request->input('seats') - $license->licenseseats()->count(); if ($difference < 0) { //Filter out any license which have a user attached; @@ -316,8 +322,7 @@ public function update(Request $request, $licenseId = null) return is_null($seat->user); }); - - //If the remaining collection is as large or larger than the number of seats we want to delete + //If the remaining collection is as large or larger than the number of seats we want to delete if ($seats->count() >= abs($difference)) { for ($i=1; $i <= abs($difference); $i++) { //Delete the appropriate number of seats @@ -325,14 +330,13 @@ public function update(Request $request, $licenseId = null) } //Log the deletion of seats to the log - $logaction = new Actionlog(); - $logaction->item_type = License::class; - $logaction->item_id = $license->id; - $logaction->user_id = Auth::user()->id; - $logaction->note = '-'.abs($difference)." seats"; - $logaction->target_id = null; - $log = $logaction->logaction('delete seats'); - + $logAction = new Actionlog(); + $logAction->item_type = License::class; + $logAction->item_id = $license->id; + $logAction->user_id = Auth::user()->id; + $logAction->note = '-'.abs($difference)." seats"; + $logAction->target_id = null; + $logAction->logaction('delete seats'); } else { // Redirect to the license edit page return redirect()->to("admin/licenses/$licenseId/edit")->with('error', trans('admin/licenses/message.assoc_users')); @@ -350,26 +354,21 @@ public function update(Request $request, $licenseId = null) } //Log the addition of license to the log. - $logaction = new Actionlog(); - $logaction->item_type = License::class; - $logaction->item_id = $license->id; - $logaction->user_id = Auth::user()->id; - $logaction->note = '+'.abs($difference)." seats"; - $logaction->target_id = null; - $log = $logaction->logaction('add seats'); + $logAction = new Actionlog(); + $logAction->item_type = License::class; + $logAction->item_id = $license->id; + $logAction->user_id = Auth::user()->id; + $logAction->note = '+'.abs($difference)." seats"; + $logAction->target_id = null; + $logAction->logaction('add seats'); } $license->seats = e($request->input('seats')); } - if ($license->save()) { - // Redirect to the new license page return redirect()->route('licenses.show', ['license' => $licenseId])->with('success', trans('admin/licenses/message.update.success')); } - - return redirect()->to("admin/licenses/$licenseId/edit")->with('error', trans('admin/licenses/message.update.error')); - } /** @@ -379,8 +378,8 @@ public function update(Request $request, $licenseId = null) * @author [A. Gianotto] [] * @since [v1.0] * @param int $licenseId - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function destroy($licenseId) { // Check if the license exists @@ -391,26 +390,22 @@ public function destroy($licenseId) $this->authorize('delete', $license); - if ($license->assigned_seats_count > 0) { - - // Redirect to the license management page - return redirect()->route('licenses.index')->with('error', trans('admin/licenses/message.assoc_users')); - - } else { - + if ($license->assigned_seats_count == 0) { // Delete the license and the associated license seats DB::table('license_seats') - ->where('id', $license->id) - ->update(array('assigned_to' => null,'asset_id' => null)); + ->where('id', $license->id) + ->update(array('assigned_to' => null,'asset_id' => null)); - $licenseseats = $license->licenseseats(); - $licenseseats->delete(); + $licenseSeats = $license->licenseseats(); + $licenseSeats->delete(); $license->delete(); // Redirect to the licenses management page return redirect()->route('licenses.index')->with('success', trans('admin/licenses/message.delete.success')); + // Redirect to the license management page } - + // There are still licenses in use. + return redirect()->route('licenses.index')->with('error', trans('admin/licenses/message.assoc_users')); } @@ -423,55 +418,47 @@ public function destroy($licenseId) * @author [A. Gianotto] [] * @since [v1.0] * @param int $seatId - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function getCheckout($seatId) { // Check if the license seat exists - if (is_null($licenseseat = LicenseSeat::find($seatId))) { + if (is_null($licenseSeat = LicenseSeat::find($seatId))) { // Redirect to the asset management page with error return redirect()->route('licenses.index')->with('error', trans('admin/licenses/message.not_found')); } - $this->authorize('checkout', $licenseseat); - - // Get the dropdown of users and then pass it to the checkout view - $users_list = Helper::usersList(); - - $assets = Helper::detailedAssetList(); - return View::make('licenses/checkout', compact('licenseseat')) - ->with('users_list', $users_list) - ->with('asset_list', $assets); - + $this->authorize('checkout', $licenseSeat); + return View::make('licenses/checkout', compact('licenseSeat')) + ->with('users_list', Helper::usersList()) + ->with('asset_list', Helper::detailedAssetList()); } - /** - * Validates and stores the license checkout action. - * - * @todo Switch to using a FormRequest for validation here. - * @author [A. Gianotto] [] - * @since [v1.0] - * @param int $seatId - * @return Redirect - */ + * Validates and stores the license checkout action. + * + * @todo Switch to using a FormRequest for validation here. + * @author [A. Gianotto] [] + * @since [v1.0] + * @param Request $request + * @param int $seatId + * @return \Illuminate\Http\RedirectResponse + */ public function postCheckout(Request $request, $seatId) { - - $licenseseat = LicenseSeat::find($seatId); + $licenseSeat = LicenseSeat::find($seatId); $assigned_to = e($request->input('assigned_to')); $asset_id = e($request->input('asset_id')); $user = Auth::user(); - $this->authorize('checkout', $licenseseat); + $this->authorize('checkout', $licenseSeat); // Declare the rules for the form validation - $rules = array( - + $rules = [ 'note' => 'string', 'asset_id' => 'required_without:assigned_to', - ); + ]; // Create a new validator instance from our validation rules $validator = Validator::make(Input::all(), $rules); @@ -491,65 +478,57 @@ public function postCheckout(Request $request, $seatId) } if ($asset_id!='') { - if (is_null($asset = Asset::find($asset_id))) { // Redirect to the asset management page with error return redirect()->route('licenses.index')->with('error', trans('admin/licenses/message.asset_does_not_exist')); } - if (($asset->assigned_to!='') && (($asset->assigned_to!=$assigned_to)) && ($assigned_to!='')) { return redirect()->route('licenses.index')->with('error', trans('admin/licenses/message.owner_doesnt_match_asset')); } - } - - // Check if the asset exists - if (is_null($licenseseat)) { + if (is_null($licenseSeat)) { // Redirect to the asset management page with error return redirect()->route('licenses.index')->with('error', trans('admin/licenses/message.not_found')); } if ($request->input('asset_id') == '') { - $licenseseat->asset_id = null; + $licenseSeat->asset_id = null; } else { - $licenseseat->asset_id = e($request->input('asset_id')); + $licenseSeat->asset_id = $request->input('asset_id'); } // Update the asset data - if (e($request->input('assigned_to')) == '') { - $licenseseat->assigned_to = null; - + if ($request->input('assigned_to') == '') { + $licenseSeat->assigned_to = null; } else { - $licenseseat->assigned_to = e($request->input('assigned_to')); + $licenseSeat->assigned_to = $request->input('assigned_to'); } // Was the asset updated? - if ($licenseseat->save()) { - - $licenseseat->logCheckout(e($request->input('note'))); + if ($licenseSeat->save()) { + $licenseSeat->logCheckout($request->input('note')); - $data['license_id'] =$licenseseat->license_id; - $data['note'] = e($request->input('note')); + $data['license_id'] =$licenseSeat->license_id; + $data['note'] = $request->input('note'); - $license = License::find($licenseseat->license_id); + $license = License::find($licenseSeat->license_id); $settings = Setting::getSettings(); - // Update the asset data - if (e($request->input('assigned_to')) == '') { - $slack_msg = 'License <'.url('/').'/licenses/'.$license->id.'|'.$license->name.'> checked out to <'.url('/').'/hardware/'.$asset->id.'/view|'.$asset->showAssetName().'> by <'.url('/').'/users/'.$user->id.'/view'.'|'.$user->fullName().'>.'; + if ($request->input('assigned_to') == '') { + $slack_msg = 'License <'.route('licenses.show', $license->id).'|'.$license->name + .'> checked out to <'.route('hardware.show',$asset->id) .'|'.$asset->showAssetName() + .'> by <'.route('users.show', $user->id).'|'.$user->fullName().'>.'; } else { - $slack_msg = 'License <'.url('/').'/licenses/'.$license->id.'|'.$license->name.'> checked out to <'.url('/').'/users/'.$user->id.'/view|'.$is_assigned_to->fullName().'> by <'.url('/').'/users/'.$user->id.'/view'.'|'.$user->fullName().'>.'; + $slack_msg = 'License <'.route('licenses.show', $license->id).'|'.$license->name + .'> checked out to <'.route('users.show', $user->id).'|'.$is_assigned_to->fullName() + .'> by <'.route('users.show', $user->id) .'|'.$user->fullName().'>.'; } - - if ($settings->slack_endpoint) { - - $slack_settings = [ 'username' => $settings->botname, 'channel' => $settings->slack_channel, @@ -587,7 +566,7 @@ public function postCheckout(Request $request, $seatId) } // Redirect to the asset management page with error - return redirect()->to('admin/licenses/$assetId/checkout')->with('error', trans('admin/licenses/message.create.error'))->with('license', new License); + return redirect()->to("admin/licenses/{$asset_id}/checkout")->with('error', trans('admin/licenses/message.create.error'))->with('license', new License); } @@ -597,10 +576,10 @@ public function postCheckout(Request $request, $seatId) * @author [A. Gianotto] [] * @since [v1.0] * @param int $seatId - * @param string $backto - * @return View - */ - public function getCheckin($seatId = null, $backto = null) + * @param string $backTo + * @return \Illuminate\Contracts\View\View + */ + public function getCheckin($seatId = null, $backTo = null) { // Check if the asset exists if (is_null($licenseseat = LicenseSeat::find($seatId))) { @@ -608,12 +587,10 @@ public function getCheckin($seatId = null, $backto = null) return redirect()->route('licenses.index')->with('error', trans('admin/licenses/message.not_found')); } $this->authorize('checkin', $licenseseat); - return View::make('licenses/checkin', compact('licenseseat'))->with('backto', $backto); - + return View::make('licenses/checkin', compact('licenseseat'))->with('backto', $backTo); } - /** * Validates and stores the license checkin action. * @@ -621,20 +598,20 @@ public function getCheckin($seatId = null, $backto = null) * @see LicensesController::getCheckin() method that provides the form view * @since [v1.0] * @param int $seatId - * @param string $backto - * @return Redirect - */ - public function postCheckin($seatId = null, $backto = null) + * @param string $backTo + * @return \Illuminate\Http\RedirectResponse + */ + public function postCheckin($seatId = null, $backTo = null) { // Check if the asset exists - if (is_null($licenseseat = LicenseSeat::find($seatId))) { + if (is_null($licenseSeat = LicenseSeat::find($seatId))) { // Redirect to the asset management page with error return redirect()->route('licenses.index')->with('error', trans('admin/licenses/message.not_found')); } - $license = License::find($licenseseat->license_id); + $license = License::find($licenseSeat->license_id); - $this->authorize('checkin', $licenseseat); + $this->authorize('checkin', $licenseSeat); if (!$license->reassignable) { // Not allowed to checkin @@ -656,25 +633,23 @@ public function postCheckin($seatId = null, $backto = null) // Ooops.. something went wrong return redirect()->back()->withInput()->withErrors($validator); } - $return_to = User::find($licenseseat->assigned_to); + $return_to = User::find($licenseSeat->assigned_to); if (!$return_to) { - $return_to = Asset::find($licenseseat->asset_id); + $return_to = Asset::find($licenseSeat->asset_id); } // Update the asset data - $licenseseat->assigned_to = null; - $licenseseat->asset_id = null; + $licenseSeat->assigned_to = null; + $licenseSeat->asset_id = null; $user = Auth::user(); // Was the asset updated? - if ($licenseseat->save()) { - $licenseseat->logCheckin($return_to, e($request->input('note'))); + if ($licenseSeat->save()) { + $licenseSeat->logCheckin($return_to, e($request->input('note'))); $settings = Setting::getSettings(); if ($settings->slack_endpoint) { - - $slack_settings = [ 'username' => $settings->botname, 'channel' => $settings->slack_channel, @@ -706,16 +681,11 @@ public function postCheckin($seatId = null, $backto = null) } - - - if ($backto=='user') { - return redirect()->to("admin/users/".$return_to->id.'/view')->with('success', trans('admin/licenses/message.checkin.success')); - } else { - return redirect()->to("admin/licenses/".$licenseseat->license_id."/view")->with('success', trans('admin/licenses/message.checkin.success')); + if ($backTo=='user') { + return redirect()->route("users.show", $return_to->id)->with('success', trans('admin/licenses/message.checkin.success')); } - + redirect()->route("licenses.show", $licenseSeat->license_id)->with('success', trans('admin/licenses/message.checkin.success')); } - // Redirect to the license page with error return redirect()->route("licenses.index")->with('error', trans('admin/licenses/message.checkin.error')); } @@ -726,11 +696,10 @@ public function postCheckin($seatId = null, $backto = null) * @author [A. Gianotto] [] * @since [v1.0] * @param int $licenseId - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function show($licenseId = null) { - $license = License::find($licenseId); if (isset($license->id)) { $license = $license->load('assignedusers', 'licenseSeats.user', 'licenseSeats.asset'); @@ -749,24 +718,24 @@ public function getClone($licenseId = null) $this->authorize('create', License::class); - $maintained_list = array('' => 'Maintained', '1' => 'Yes', '0' => 'No'); - $company_list = Helper::companyList(); + $maintained_list = [ + '' => 'Maintained', + '1' => 'Yes', + '0' => 'No' + ]; //clone the orig $license = clone $license_to_clone; $license->id = null; $license->serial = null; // Show the page - $depreciation_list = Helper::depreciationList(); - $supplier_list = Helper::suppliersList(); return View::make('licenses/edit') - ->with('depreciation_list', $depreciation_list) - ->with('supplier_list', $supplier_list) + ->with('depreciation_list', Helper::depreciationList()) + ->with('supplier_list', Helper::suppliersList()) ->with('item', $license) ->with('maintained_list', $maintained_list) - ->with('company_list', $company_list) + ->with('company_list', Helper::companyList()) ->with('manufacturer_list', Helper::manufacturerList()); - } @@ -777,8 +746,8 @@ public function getClone($licenseId = null) * @author [A. Gianotto] [] * @since [v1.0] * @param int $licenseId - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function postUpload($licenseId = null) { $license = License::find($licenseId); @@ -813,14 +782,11 @@ public function postUpload($licenseId = null) return redirect()->back()->with('success', trans('admin/licenses/message.upload.success')); } return redirect()->back()->with('error', trans('admin/licenses/message.upload.error')); - } return redirect()->back()->with('error', trans('admin/licenses/message.upload.nofiles')); } // Prepare the error message $error = trans('admin/licenses/message.does_not_exist', compact('id')); - - // Redirect to the licence management page return redirect()->route('licenses.index')->with('error', $error); } @@ -832,8 +798,8 @@ public function postUpload($licenseId = null) * @since [v1.0] * @param int $licenseId * @param int $fileId - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function getDeleteFile($licenseId = null, $fileId = null) { $license = License::find($licenseId); @@ -841,9 +807,7 @@ public function getDeleteFile($licenseId = null, $fileId = null) // the license is valid if (isset($license->id)) { - $this->authorize('edit', $license); - $log = Actionlog::find($fileId); $full_filename = $destinationPath.'/'.$log->filename; if (file_exists($full_filename)) { @@ -851,7 +815,6 @@ public function getDeleteFile($licenseId = null, $fileId = null) } $log->delete(); return redirect()->back()->with('success', trans('admin/licenses/message.deletefile.success')); - } // Prepare the error message $error = trans('admin/licenses/message.does_not_exist', compact('id')); @@ -869,8 +832,8 @@ public function getDeleteFile($licenseId = null, $fileId = null) * @since [v1.4] * @param int $licenseId * @param int $fileId - * @return Redirect - */ + * @return \Symfony\Component\HttpFoundation\BinaryFileResponse + */ public function displayFile($licenseId = null, $fileId = null) { @@ -878,9 +841,7 @@ public function displayFile($licenseId = null, $fileId = null) // the license is valid if (isset($license->id)) { - $this->authorize('view', $license); - $log = Actionlog::find($fileId); $file = $log->get_src('licenses'); return Response::download($file); @@ -908,11 +869,8 @@ public function getDatatable(Request $request) if (Input::has('search')) { $licenses = $licenses->TextSearch($request->input('search')); } - - ($request->input('offset')) ? $offset = e($request->input('offset')) : $offset = 0; - ($request->input('limit')) ? $limit = e($request->input('limit')) : $limit = 50; - - + $offset = request('offset', 0); + $limit = request('limit', 50); $allowed_columns = ['id','name','purchase_cost','expiration_date','purchase_order','order_number','notes','purchase_date','serial','manufacturer','company']; $order = $request->input('order') === 'asc' ? 'asc' : 'desc'; @@ -930,7 +888,6 @@ public function getDatatable(Request $request) break; } - $licenseCount = $licenses->count(); $licenses = $licenses->skip($offset)->take($limit)->get(); @@ -940,22 +897,27 @@ public function getDatatable(Request $request) $actions = ''; if (Gate::allows('checkout', License::class)) { - $actions .= '' . trans('general.checkout') . ' '; + $actions .= Helper::generateDatatableButton( + 'checkout', + route('licenses.freecheckout', $license->id), + $license->remaincount() > 0 + ); } if (Gate::allows('create', $license)) { - $actions .= ''; + $actions .= Helper::generateDatatableButton('clone', route('clone/license', $license->id)); } if (Gate::allows('update', $license)) { - $actions .= ''; + $actions .= Helper::generateDatatableButton('edit', route('licenses.edit', $license->id)); } if (Gate::allows('delete', $license)) { - $actions .= ''; + $actions .= Helper::generateDatatableButton( + 'delete', + route('licenses.destroy', $license->id), + true, /*enabled*/ + trans('admin/licenses/message.delete.confirm'), + $license->name + ); } $actions .=''; @@ -995,8 +957,8 @@ public function getDatatable(Request $request) * @author [A. Gianotto] [] * @since [v1.0] * @param int $licenseId - * @return View - */ + * @return \Illuminate\Http\RedirectResponse + */ public function getFreeLicense($licenseId) { $this->authorize('checkout', License::class); diff --git a/app/Http/Controllers/LocationsController.php b/app/Http/Controllers/LocationsController.php index 357ceab07438..23104184045c 100755 --- a/app/Http/Controllers/LocationsController.php +++ b/app/Http/Controllers/LocationsController.php @@ -1,6 +1,7 @@ ] * @see LocationsController::getDatatable() method that generates the JSON response * @since [v1.0] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function index() { // Grab all the locations @@ -50,8 +51,8 @@ public function index() * @author [A. Gianotto] [] * @see LocationsController::postCreate() method that validates and stores the data * @since [v1.0] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function create() { $locations = Location::orderBy('name', 'ASC')->get(); @@ -61,8 +62,8 @@ public function create() $location_options = array('' => 'Top Level') + $location_options; return View::make('locations/edit') - ->with('location_options', $location_options) - ->with('item', new Location); + ->with('location_options', $location_options) + ->with('item', new Location); } @@ -73,33 +74,30 @@ public function create() * @author [A. Gianotto] [] * @see LocationsController::getCreate() method that makes the form * @since [v1.0] - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function store() { - $location = new Location(); - - $location->name = e(Input::get('name')); + $location->name = Input::get('name'); if (Input::get('parent_id')=='') { $location->parent_id = null; } else { - $location->parent_id = e(Input::get('parent_id')); + $location->parent_id = Input::get('parent_id'); } - $location->currency = e(Input::get('currency', '$')); - $location->address = e(Input::get('address')); - $location->address2 = e(Input::get('address2')); - $location->city = e(Input::get('city')); - $location->state = e(Input::get('state')); - $location->country = e(Input::get('country')); - $location->zip = e(Input::get('zip')); - $location->user_id = Auth::user()->id; + $location->currency = Input::get('currency', '$'); + $location->address = Input::get('address'); + $location->address2 = Input::get('address2'); + $location->city = Input::get('city'); + $location->state = Input::get('state'); + $location->country = Input::get('country'); + $location->zip = Input::get('zip'); + $location->user_id = Auth::id(); if ($location->save()) { return redirect()->route("locations.index")->with('success', trans('admin/locations/message.create.success')); } return redirect()->back()->withInput()->withErrors($location->getErrors()); - } /** @@ -113,33 +111,28 @@ public function store() */ public function apiStore() { - $new['currency']=Setting::first()->default_currency; // create a new location instance $location = new Location(); // Save the location data - $location->name = e(Input::get('name')); + $location->name = Input::get('name'); $location->currency = Setting::first()->default_currency; //e(Input::get('currency')); $location->address = ''; //e(Input::get('address')); // $location->address2 = e(Input::get('address2')); - $location->city = e(Input::get('city')); + $location->city = Input::get('city'); $location->state = '';//e(Input::get('state')); - $location->country = e(Input::get('country')); + $location->country = Input::get('country'); // $location->zip = e(Input::get('zip')); - $location->user_id = Auth::user()->id; + $location->user_id = Auth::id(); // Was the location created? if ($location->save()) { return JsonResponse::create($location); - } - // failure - $errors = $location->errors(); return JsonResponse::create(["error" => "Failed validation: ".print_r($location->getErrors(), true)], 500); - } @@ -150,8 +143,8 @@ public function apiStore() * @see LocationsController::postCreate() method that validates and stores * @param int $locationId * @since [v1.0] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function edit($locationId = null) { // Check if the location exists @@ -176,40 +169,37 @@ public function edit($locationId = null) * @see LocationsController::getEdit() method that makes the form view * @param int $locationId * @since [v1.0] - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function update($locationId = null) { // Check if the location exists if (is_null($location = Location::find($locationId))) { - // Redirect to the blogs management page return redirect()->to('admin/settings/locations')->with('error', trans('admin/locations/message.does_not_exist')); } // Update the location data - $location->name = e(Input::get('name')); + $location->name = Input::get('name'); if (Input::get('parent_id')=='') { $location->parent_id = null; } else { - $location->parent_id = e(Input::get('parent_id', '')); + $location->parent_id = Input::get('parent_id', ''); } - $location->currency = e(Input::get('currency', '$')); - $location->address = e(Input::get('address')); - $location->address2 = e(Input::get('address2')); - $location->city = e(Input::get('city')); - $location->state = e(Input::get('state')); - $location->country = e(Input::get('country')); - $location->zip = e(Input::get('zip')); + $location->currency = Input::get('currency', '$'); + $location->address = Input::get('address'); + $location->address2 = Input::get('address2'); + $location->city = Input::get('city'); + $location->state = Input::get('state'); + $location->country = Input::get('country'); + $location->zip = Input::get('zip'); // Was the asset created? if ($location->save()) { // Redirect to the saved location page - return redirect()->to("admin/settings/locations/")->with('success', trans('admin/locations/message.update.success')); + return redirect()->route("locations.index")->with('success', trans('admin/locations/message.update.success')); } - // Redirect to the location management page return redirect()->back()->withInput()->withInput()->withErrors($location->getErrors()); - } /** @@ -218,8 +208,8 @@ public function update($locationId = null) * @author [A. Gianotto] [] * @param int $locationId * @since [v1.0] - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function destroy($locationId) { // Check if the location exists @@ -241,9 +231,6 @@ public function destroy($locationId) $location->delete(); return redirect()->to('admin/settings/locations')->with('success', trans('admin/locations/message.delete.success')); } - - - } @@ -256,23 +243,20 @@ public function destroy($locationId) * @see LocationsController::getDataViewAssets() method that returns JSON for location assets * @param int $locationId * @since [v1.0] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function show($locationId = null) { $location = Location::find($locationId); if (isset($location->id)) { - return View::make('locations/view', compact('location')); - } else { - // Prepare the error message - $error = trans('admin/locations/message.does_not_exist', compact('id')); - - // Redirect to the user management page - return redirect()->route('locations')->with('error', $error); + return View::make('locations/view', compact('location')); } + // Prepare the error message + $error = trans('admin/locations/message.does_not_exist', compact('id')); - + // Redirect to the user management page + return redirect()->route('locations.index')->with('error', $error); } @@ -282,33 +266,32 @@ public function show($locationId = null) * @author [A. Gianotto] [] * @see LocationsController::getIndex() method that returns JSON for location index * @since [v1.0] - * @return View - */ + * @return array + */ public function getDatatable() { - $locations = Location::select(array('locations.id','locations.name','locations.address','locations.address2','locations.city','locations.state','locations.zip','locations.country','locations.parent_id','locations.currency'))->with('assets'); - + $locations = Location::select([ + 'locations.id', + 'locations.name', + 'locations.address', + 'locations.address2', + 'locations.city', + 'locations.state', + 'locations.zip', + 'locations.country', + 'locations.parent_id', + 'locations.currency' + ])->with('assets'); if (Input::has('search')) { $locations = $locations->TextSearch(e(Input::get('search'))); } - if (Input::has('offset')) { - $offset = e(Input::get('offset')); - } else { - $offset = 0; - } - - if (Input::has('limit')) { - $limit = e(Input::get('limit')); - } else { - $limit = 50; - } + $offset = request('offset', 0); + $limit = request('limit', 50); $order = Input::get('order') === 'asc' ? 'asc' : 'desc'; - - switch (Input::get('sort')) { case 'parent': $locations = $locations->OrderParent($order); @@ -321,14 +304,22 @@ public function getDatatable() break; } - $locationsCount = $locations->count(); $locations = $locations->skip($offset)->take($limit)->get(); $rows = array(); foreach ($locations as $location) { - $actions = ''; + $actions = ''; + $actions .= Helper::generateDatatableButton('edit', route('locations.edit', $location->id)); + $actions .= Helper::generateDatatableButton( + 'delete', + route('locations.destroy', $location->id), + true, /*enabled*/ + trans('admin/locations/message.delete.confirm'), + $location->name + ); + $actions .= ''; $rows[] = array( 'id' => $location->id, @@ -346,7 +337,6 @@ public function getDatatable() 'actions' => $actions ); } - $data = array('total' => $locationsCount, 'rows' => $rows); return $data; @@ -399,8 +389,8 @@ public function getDataViewUsers($locationID) * @see LocationsController::getView() method that creates the display view * @param int $locationID * @since [v1.8] - * @return View - */ + * @return array + */ public function getDataViewAssets($locationID) { $location = Location::find($locationID)->load('assignedassets.model'); @@ -415,12 +405,12 @@ public function getDataViewAssets($locationID) $rows = array(); foreach ($assets as $asset) { - $rows[] = array( - 'name' => (string)link_to_route('hardware.show', e($asset->showAssetName()), ['hardware' => $asset->id]), - 'asset_tag' => e($asset->asset_tag), - 'serial' => e($asset->serial), - 'model' => e($asset->model->name), - ); + $rows[] = [ + 'name' => (string)link_to_route('hardware.show', e($asset->showAssetName()), ['hardware' => $asset->id]), + 'asset_tag' => e($asset->asset_tag), + 'serial' => e($asset->serial), + 'model' => e($asset->model->name), + ]; } $data = array('total' => $assets->count(), 'rows' => $rows); diff --git a/app/Http/Controllers/ManufacturersController.php b/app/Http/Controllers/ManufacturersController.php index ff3f61905bbe..61a513737253 100755 --- a/app/Http/Controllers/ManufacturersController.php +++ b/app/Http/Controllers/ManufacturersController.php @@ -1,8 +1,10 @@ ] * @see ManufacturersController::getDatatable() method that generates the JSON response * @since [v1.0] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function index() { // Show the page @@ -41,8 +43,8 @@ public function index() * @author [A. Gianotto] [] * @see ManufacturersController::postCreate() * @since [v1.0] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function create() { return View::make('manufacturers/edit')->with('item', new Manufacturer); @@ -50,25 +52,24 @@ public function create() /** - * Validates and stores the data for a new manufacturer. - * - * @author [A. Gianotto] [] - * @see ManufacturersController::postCreate() - * @since [v1.0] - * @return Redirect - */ + * Validates and stores the data for a new manufacturer. + * + * @author [A. Gianotto] [] + * @see ManufacturersController::postCreate() + * @since [v1.0] + * @param Request $request + * @return \Illuminate\Http\RedirectResponse + */ public function store(Request $request) { $manufacturer = new Manufacturer; - $manufacturer->name = e($request->input('name')); - $manufacturer->user_id = Auth::user()->id; + $manufacturer->name = $request->input('name'); + $manufacturer->user_id = Auth::id(); if ($manufacturer->save()) { return redirect()->route('manufacturers.index')->with('success', trans('admin/manufacturers/message.create.success')); } - return redirect()->back()->withInput()->withErrors($manufacturer->getErrors()); - } /** @@ -78,8 +79,8 @@ public function store(Request $request) * @see ManufacturersController::postEdit() * @param int $manufacturerId * @since [v1.0] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function edit($manufacturerId = null) { // Check if the manufacturer exists @@ -87,21 +88,21 @@ public function edit($manufacturerId = null) // Redirect to the manufacturer page return redirect()->route('manufacturers.index')->with('error', trans('admin/manufacturers/message.does_not_exist')); } - // Show the page return View::make('manufacturers/edit', compact('item')); } /** - * Validates and stores the updated manufacturer data. - * - * @author [A. Gianotto] [] - * @see ManufacturersController::getEdit() - * @param int $manufacturerId - * @since [v1.0] - * @return View - */ + * Validates and stores the updated manufacturer data. + * + * @author [A. Gianotto] [] + * @see ManufacturersController::getEdit() + * @param Request $request + * @param int $manufacturerId + * @return \Illuminate\Http\RedirectResponse + * @since [v1.0] + */ public function update(Request $request, $manufacturerId = null) { // Check if the manufacturer exists @@ -111,17 +112,13 @@ public function update(Request $request, $manufacturerId = null) } // Save the data - $manufacturer->name = e($request->input('name')); - + $manufacturer->name = $request->input('name'); // Was it created? if ($manufacturer->save()) { // Redirect to the new manufacturer page return redirect()->route('manufacturers.index')->with('success', trans('admin/manufacturers/message.update.success')); } - return redirect()->back()->withInput()->withErrors($manufacturer->getErrors()); - - } /** @@ -130,8 +127,8 @@ public function update(Request $request, $manufacturerId = null) * @author [A. Gianotto] [] * @param int $manufacturerId * @since [v1.0] - * @return View - */ + * @return \Illuminate\Http\RedirectResponse + */ public function destroy($manufacturerId) { // Check if the manufacturer exists @@ -141,22 +138,15 @@ public function destroy($manufacturerId) } if ($manufacturer->has_models() > 0) { - // Redirect to the asset management page return redirect()->route('manufacturers.index')->with('error', trans('admin/manufacturers/message.assoc_users')); - } else { - - // Delete the manufacturer - $manufacturer->delete(); - - // Redirect to the manufacturers management page - return redirect()->route('manufacturers.index')->with('success', trans('admin/manufacturers/message.delete.success')); } - + // Delete the manufacturer + $manufacturer->delete(); + // Redirect to the manufacturers management page + return redirect()->route('manufacturers.index')->with('success', trans('admin/manufacturers/message.delete.success')); } - - /** * Returns a view that invokes the ajax tables which actually contains * the content for the manufacturers detail listing, which is generated in getDatatable. @@ -166,53 +156,39 @@ public function destroy($manufacturerId) * @see ManufacturersController::getDataView() * @param int $manufacturerId * @since [v1.0] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function show($manufacturerId = null) { $manufacturer = Manufacturer::find($manufacturerId); if (isset($manufacturer->id)) { - return View::make('manufacturers/view', compact('manufacturer')); - } else { - // Prepare the error message - $error = trans('admin/manufacturers/message.does_not_exist', compact('id')); - - // Redirect to the user management page - return redirect()->route('manufacturers')->with('error', $error); + return View::make('manufacturers/view', compact('manufacturer')); } - - + // Prepare the error message + $error = trans('admin/manufacturers/message.does_not_exist', compact('id')); + // Redirect to the user management page + return redirect()->route('manufacturers')->with('error', $error); } /** - * Generates the JSON used to display the manufacturer listings. - * - * @author [A. Gianotto] [] - * @see ManufacturersController::getIndex() - * @since [v1.0] - * @return String JSON - */ + * Generates the JSON used to display the manufacturer listings. + * + * @author [A. Gianotto] [] + * @see ManufacturersController::getIndex() + * @since [v1.0] + * @param Request $request + * @return String JSON + */ public function getDatatable(Request $request) { - $manufacturers = Manufacturer::select(array('id','name'))->with('assets', 'licenses', 'accessories', 'consumables') - ->whereNull('deleted_at'); + $manufacturers = Manufacturer::select(array('id','name'))->whereNull('deleted_at'); if ($request->has('search')) { $manufacturers = $manufacturers->TextSearch(e($request->input('search'))); } - - if ($request->has('offset')) { - $offset = e($request->input('offset')); - } else { - $offset = 0; - } - - if ($request->has('limit')) { - $limit = e($request->input('limit')); - } else { - $limit = 50; - } + $offset = request('offset', 0); + $limit = request('limit', 50); $allowed_columns = ['id','name']; $order = $request->input('order') === 'asc' ? 'asc' : 'desc'; @@ -226,15 +202,24 @@ public function getDatatable(Request $request) $rows = array(); foreach ($manufacturers as $manufacturer) { - $actions = ''; + $actions = ''; + $actions .= Helper::generateDatatableButton('edit', route('manufacturers.edit', $manufacturer->id)); + $actions .= Helper::generateDatatableButton( + 'delete', + route('manufacturers.destroy'), + true, /*enabled*/ + trans('admin/manufacturers/message.delete.confirm'), + $manufacturer->name + ); + $actions .= ''; $rows[] = array( 'id' => $manufacturer->id, 'name' => (string)link_to_route('manufacturers.show', e($manufacturer->name),['manufacturer' => $manufacturer->id]), - 'assets' => $manufacturer->assets->count(), - 'licenses' => $manufacturer->licenses->count(), - 'accessories' => $manufacturer->accessories->count(), - 'consumables' => $manufacturer->consumables->count(), + 'assets' => $manufacturer->assets()->count(), + 'licenses' => $manufacturer->licenses()->count(), + 'accessories' => $manufacturer->accessories()->count(), + 'consumables' => $manufacturer->consumables()->count(), 'actions' => $actions ); } @@ -254,15 +239,15 @@ public function getDatatable(Request $request) * @author [A. Gianotto] [] * @see ManufacturersController::getView() * @param int $manufacturerId - * @param string $itemtype + * @param string $itemType * @param Request $request * @return String JSON* @since [v1.0] */ - public function getDataView($manufacturerId, $itemtype = null, Request $request) + public function getDataView($manufacturerId, $itemType = null, Request $request) { $manufacturer = Manufacturer::find($manufacturerId); - switch ($itemtype) { + switch ($itemType) { case "assets": return $this->getDataAssetsView($manufacturer, $request); case "licenses": @@ -273,55 +258,53 @@ public function getDataView($manufacturerId, $itemtype = null, Request $request) return $this->getDataConsumablesView($manufacturer, $request); } - throw new Exception("We shouldn't be here"); + return "We shouldn't be here"; } protected function getDataAssetsView(Manufacturer $manufacturer, Request $request) { $manufacturer = $manufacturer->load('assets.model', 'assets.assigneduser', 'assets.assetstatus', 'assets.company'); - $manufacturer_assets = $manufacturer->assets; + $manufacturer_assets = $manufacturer->assets(); if ($request->has('search')) { $manufacturer_assets = $manufacturer_assets->TextSearch(e($request->input('search'))); } - if ($request->has('offset')) { - $offset = e($request->input('offset')); - } else { - $offset = 0; - } - - if ($request->has('limit')) { - $limit = e($request->input('limit')); - } else { - $limit = 50; - } + $offset = request('offset', 0); + $limit = request('limit', 50); $order = $request->input('order') === 'asc' ? 'asc' : 'desc'; $allowed_columns = ['id','name','serial','asset_tag']; $sort = in_array($request->input('sort'), $allowed_columns) ? $request->input('sort') : 'created_at'; $count = $manufacturer_assets->count(); - + $manufacturer_assets = $manufacturer_assets->skip($offset)->take($limit)->get(); $rows = array(); foreach ($manufacturer_assets as $asset) { - - $actions = ''; + $actions = '
    '; if ($asset->deleted_at=='') { - $actions = '
    '; + $actions .= Helper::generateDatatableButton('clone', route('clone/hardware', $asset->id)); + $actions .= Helper::generateDatatableButton('edit', route('hardware.edit', $asset->id)); + $actions .= Helper::generateDatatableButton( + 'delete', + route('hardware.destroy', $asset->id), + true, /*enabled*/ + trans('admin/hardware/message.delete.confirm'), + $asset->asset_tag + ); } elseif ($asset->deleted_at!='') { - $actions = ''; + $actions .= Helper::generateDatatableButton('restore', route('restore/hardware', $asset->id)); } - + $actions .= '
    '; if ($asset->availableForCheckout()) { if (Gate::allows('checkout', $asset)) { - $inout = ''.trans('general.checkout').''; + $inout = Helper::generateDatatableButton('checkout', route('checkout/hardware', $asset->id)); } } else { if (Gate::allows('checkin', $asset)) { - $inout = ''.trans('general.checkin').''; + $inout = Helper::generateDatatableButton('checkin', route('checkin/hardware', $asset->id)); } } @@ -362,22 +345,27 @@ protected function getDataLicensesView(Manufacturer $manufacturer, Request $requ $actions = ''; if (Gate::allows('checkout', \App\Models\License::class)) { - $actions .= '' . trans('general.checkout') . ' '; + $actions .= Helper::generateDatatableButton( + 'checkout', + route('licenses.freecheckout', $license->id), + $license->remaincount() > 0 + ); } if (Gate::allows('create', $license)) { - $actions .= ''; + $actions .= Helper::generateDatatableButton('clone', route('clone/license', $license->id)); } - if (Gate::allows('edit', $license)) { - $actions .= ''; + if (Gate::allows('update', $license)) { + $actions .= Helper::generateDatatableButton('edit', route('licenses.edit', $license->id)); } if (Gate::allows('delete', $license)) { - $actions .= ''; + $actions .= Helper::generateDatatableButton( + 'delete', + route('licenses.destroy', $license->id), + true, /*enabled*/ + trans('admin/licenses/message.delete.confirm'), + $license->name + ); } $actions .=''; @@ -415,36 +403,40 @@ public function getDataAccessoriesView(Manufacturer $manufacturer, Request $requ 'accessories.manufacturer', 'accessories.users' ); - $accessories = $manufacturer->accessories; + $accessories = $manufacturer->accessories(); if ($request->has('search')) { $accessories = $accessories->TextSearch(e($request->input('search'))); } - if ($request->has('limit')) { - $limit = e($request->input('limit')); - } else { - $limit = 50; - } + $offset = request('offset', 0); + $limit = request('limit', 50); $accessCount = $accessories->count(); - + $accessories = $accessories->skip($offset)->take($limit)->get(); $rows = array(); foreach ($accessories as $accessory) { $actions = ''; if (Gate::allows('checkout', $accessory)) { - $actions .= 'numRemaining() > 0) ? '' : ' disabled') . '>' . trans('general.checkout') . ''; + $actions .= Helper::generateDatatableButton( + 'checkout', + route('checkout/accessory', $accessory->id), + $accessory->numRemaining() > 0 + ); } if (Gate::allows('update', $accessory)) { - $actions .= ''; + $actions .= Helper::generateDatatableButton('edit', route('accessories.update', $accessory->id)); } if (Gate::allows('delete', $accessory)) { - $actions .= ''; + $actions .= Helper::generateDatatableButton( + 'delete', + route('accessories.destroy', $accessory->id), + $enabled = true, + trans('admin/accessories/message.delete.confirm'), + $accessory->name + ); } $actions .= ''; $company = $accessory->company; @@ -480,36 +472,37 @@ public function getDataConsumablesView($manufacturer, Request $request) 'consumables.manufacturer', 'consumables.users' ); - $consumables = $manufacturer->consumables; + $consumables = $manufacturer->consumables(); if ($request->has('search')) { $consumables = $consumables->TextSearch(e($request->input('search'))); } - if ($request->has('limit')) { - $limit = e($request->input('limit')); - } else { - $limit = 50; - } + $offset = request('offset', 0); + $limit = request('limit', 50); - $consumCount = $consumables->count(); + $consumCount = $consumables->count(); + $consumables = $consumables->skip($offset)->take($limit)->get(); $rows = array(); foreach ($consumables as $consumable) { $actions = ''; if (Gate::allows('checkout', $consumable)) { - $actions .= 'numRemaining() > 0) ? '' : ' disabled') . '>' . trans('general.checkout') . ''; + $actions .= Helper::generateDatatableButton('checkout', route('checkout/consumable', $consumable->id), $consumable->numRemaining() > 0); } if (Gate::allows('update', $consumable)) { - $actions .= ''; + $actions .= Helper::generateDatatableButton('edit', route('consumables.edit', $consumable->id)); } if (Gate::allows('delete', $consumable)) { - $actions .= ''; + $actions .= Helper::generateDatatableButton( + 'delete', + route('consumables.destroy', $consumable->id), + true, /* enabled */ + trans('admin/consumables/message.delete.confirm'), + $consumable->name + ); } $actions .=''; diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index b94f336879d8..8b71b1c01c4b 100755 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -24,8 +24,8 @@ class ProfileController extends Controller * * @author [A. Gianotto] [] * @since [v1.0] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function getIndex() { // Get the user information @@ -39,8 +39,8 @@ public function getIndex() * * @author [A. Gianotto] [] * @since [v1.0] - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function postIndex() { @@ -48,16 +48,16 @@ public function postIndex() $user = Auth::user(); // Update the user information - $user->first_name = e(Input::get('first_name')); - $user->last_name = e(Input::get('last_name')); - $user->website = e(Input::get('website')); - $user->location_id = e(Input::get('location_id')); - $user->gravatar = e(Input::get('gravatar')); - $user->locale = e(Input::get('locale')); + $user->first_name = Input::get('first_name'); + $user->last_name = Input::get('last_name'); + $user->website = Input::get('website'); + $user->location_id = Input::get('location_id'); + $user->gravatar = Input::get('gravatar'); + $user->locale = Input::get('locale'); if ((Gate::allows('self.two_factor')) && ((Setting::getSettings()->two_factor_enabled=='1') && (!config('app.lock_passwords')))) { - $user->two_factor_optin = e(Input::get('two_factor_optin', '0')); + $user->two_factor_optin = Input::get('two_factor_optin', '0'); } if (Input::file('avatar')) { diff --git a/app/Http/Controllers/StatuslabelsController.php b/app/Http/Controllers/StatuslabelsController.php index bc4786734708..5f952bb827e8 100755 --- a/app/Http/Controllers/StatuslabelsController.php +++ b/app/Http/Controllers/StatuslabelsController.php @@ -27,7 +27,7 @@ class StatuslabelsController extends Controller /** * Show a list of all the statuslabels. * - * @return View + * @return \Illuminate\Contracts\View\View */ public function index() @@ -40,27 +40,24 @@ public function index() /** * Show a count of assets by status label * - * @return View + * @return array */ public function getAssetCountByStatuslabel() { - $colors = []; - $statuslabels = Statuslabel::with('assets')->get(); + $statusLabels = Statuslabel::with()->get(); $labels=[]; $points=[]; $colors=[]; - foreach ($statuslabels as $statuslabel) { - if ($statuslabel->assets->count() > 0) { - $labels[]=$statuslabel->name; - $points[]=$statuslabel->assets()->whereNull('assigned_to')->count(); - if ($statuslabel->color!='') { - $colors[]=$statuslabel->color; + foreach ($statusLabels as $statusLabel) { + if ($statusLabel->assets()->count() > 0) { + $labels[]=$statusLabel->name; + $points[]=$statusLabel->assets()->whereNull('assigned_to')->count(); + if ($statusLabel->color!='') { + $colors[]=$statusLabel->color; } } - - } $labels[]='Deployed'; $points[]=Asset::whereNotNull('assigned_to')->count(); @@ -82,7 +79,7 @@ public function getAssetCountByStatuslabel() /** * Statuslabel create. * - * @return View + * @return \Illuminate\Contracts\View\View */ public function create() { @@ -98,52 +95,53 @@ public function create() /** * Statuslabel create form processing. * - * @return Redirect + * @param Request $request + * @return \Illuminate\Http\RedirectResponse */ public function store(Request $request) { // create a new model instance - $statuslabel = new Statuslabel(); + $statusLabel = new Statuslabel(); if (!$request->has('statuslabel_types')) { return redirect()->back()->withInput()->withErrors(['statuslabel_types' => trans('validation.statuslabel_type')]); } - $statustype = Statuslabel::getStatuslabelTypesForDB($request->input('statuslabel_types')); + $statusType = Statuslabel::getStatuslabelTypesForDB($request->input('statuslabel_types')); // Save the Statuslabel data - $statuslabel->name = e(Input::get('name')); - $statuslabel->user_id = Auth::user()->id; - $statuslabel->notes = e(Input::get('notes')); - $statuslabel->deployable = $statustype['deployable']; - $statuslabel->pending = $statustype['pending']; - $statuslabel->archived = $statustype['archived']; - $statuslabel->color = e(Input::get('color')); - $statuslabel->show_in_nav = e(Input::get('show_in_nav'),0); + $statusLabel->name = Input::get('name'); + $statusLabel->user_id = Auth::id(); + $statusLabel->notes = Input::get('notes'); + $statusLabel->deployable = $statusType['deployable']; + $statusLabel->pending = $statusType['pending']; + $statusLabel->archived = $statusType['archived']; + $statusLabel->color = Input::get('color'); + $statusLabel->show_in_nav = Input::get('show_in_nav', 0); // Was the asset created? - if ($statuslabel->save()) { + if ($statusLabel->save()) { // Redirect to the new Statuslabel page return redirect()->route('statuslabels.index')->with('success', trans('admin/statuslabels/message.create.success')); } - - return redirect()->back()->withInput()->withErrors($statuslabel->getErrors()); - + return redirect()->back()->withInput()->withErrors($statusLabel->getErrors()); } + /** + * @param Request $request + * @return JsonResponse + */ public function apiStore(Request $request) { - $statuslabel = new Statuslabel(); if (!$request->has('statuslabel_types')) { return JsonResponse::create(["error" => trans('validation.statuslabel_type')], 500); } - $statustype = Statuslabel::getStatuslabelTypesForDB(Input::get('statuslabel_types')); - $statuslabel->name = e(Input::get('name')); - $statuslabel->user_id = Auth::user()->id; + $statuslabel->name = Input::get('name'); + $statuslabel->user_id = Auth::id(); $statuslabel->notes = ''; $statuslabel->deployable = $statustype['deployable']; $statuslabel->pending = $statustype['pending']; @@ -164,7 +162,7 @@ public function apiStore(Request $request) * Statuslabel update. * * @param int $statuslabelId - * @return View + * @return \Illuminate\Contracts\View\View */ public function edit($statuslabelId = null) { @@ -186,7 +184,7 @@ public function edit($statuslabelId = null) * Statuslabel update form processing page. * * @param int $statuslabelId - * @return Redirect + * @return \Illuminate\Http\RedirectResponse */ public function update(Request $request, $statuslabelId = null) { @@ -202,35 +200,29 @@ public function update(Request $request, $statuslabelId = null) // Update the Statuslabel data - $statustype = Statuslabel::getStatuslabelTypesForDB(Input::get('statuslabel_types')); - $statuslabel->name = e(Input::get('name')); - $statuslabel->notes = e(Input::get('notes')); + $statustype = Statuslabel::getStatuslabelTypesForDB(Input::get('statuslabel_types')); + $statuslabel->name = Input::get('name'); + $statuslabel->notes = Input::get('notes'); $statuslabel->deployable = $statustype['deployable']; $statuslabel->pending = $statustype['pending']; $statuslabel->archived = $statustype['archived']; - $statuslabel->color = e(Input::get('color')); - $statuslabel->show_in_nav = e(Input::get('show_in_nav'),0); + $statuslabel->color = Input::get('color'); + $statuslabel->show_in_nav = Input::get('show_in_nav',0); // Was the asset created? if ($statuslabel->save()) { // Redirect to the saved Statuslabel page return redirect()->to("admin/settings/statuslabels/")->with('success', trans('admin/statuslabels/message.update.success')); - } else { - return redirect()->back()->withInput()->withErrors($statuslabel->getErrors()); } - - - // Redirect to the Statuslabel management page - return redirect()->to("admin/settings/statuslabels/$statuslabelId/edit")->with('error', trans('admin/statuslabels/message.update.error')); - + return redirect()->back()->withInput()->withErrors($statuslabel->getErrors()); } /** * Delete the given Statuslabel. * * @param int $statuslabelId - * @return Redirect + * @return \Illuminate\Http\RedirectResponse */ public function destroy($statuslabelId) { @@ -241,20 +233,13 @@ public function destroy($statuslabelId) } - if ($statuslabel->has_assets() > 0) { - - // Redirect to the asset management page - return redirect()->route('statuslabels.index')->with('error', trans('admin/statuslabels/message.assoc_assets')); - } else { - + if ($statuslabel->has_assets() == 0) { $statuslabel->delete(); - // Redirect to the statuslabels management page return redirect()->route('statuslabels.index')->with('success', trans('admin/statuslabels/message.delete.success')); } - - - + // Redirect to the asset management page + return redirect()->route('statuslabels.index')->with('error', trans('admin/statuslabels/message.assoc_assets')); } @@ -267,17 +252,8 @@ public function getDatatable() $statuslabels = $statuslabels->TextSearch(e(Input::get('search'))); } - if (Input::has('offset')) { - $offset = e(Input::get('offset')); - } else { - $offset = 0; - } - - if (Input::has('limit')) { - $limit = e(Input::get('limit')); - } else { - $limit = 50; - } + $offset = request('offset', 0); + $limit = request('limit', 50); $allowed_columns = ['id','name']; $order = Input::get('order') === 'asc' ? 'asc' : 'desc'; @@ -301,8 +277,16 @@ public function getDatatable() } else { $label_type = trans('admin/statuslabels/table.undeployable'); } - - $actions = ''; + $actions = ''; + $actions .= Helper::generateDatatableButton('edit', route('statuslabels.edit', $statuslabel->id)); + $actions .= Helper::generateDatatableButton( + 'delete', + route('statuslabels.destroy'), + true, /*enabled*/ + trans('admin/statuslabels/message.delete.confirm'), + $statuslabel->name + ); + $actions .= ''; if ($statuslabel->color!='') { $color = '
    '.e($statuslabel->color); diff --git a/app/Http/Controllers/SuppliersController.php b/app/Http/Controllers/SuppliersController.php index 0f10f5365aaf..51bc9bcb4fab 100755 --- a/app/Http/Controllers/SuppliersController.php +++ b/app/Http/Controllers/SuppliersController.php @@ -1,6 +1,7 @@ name = e(Input::get('name')); - $supplier->address = e(Input::get('address')); - $supplier->address2 = e(Input::get('address2')); - $supplier->city = e(Input::get('city')); - $supplier->state = e(Input::get('state')); - $supplier->country = e(Input::get('country')); - $supplier->zip = e(Input::get('zip')); - $supplier->contact = e(Input::get('contact')); - $supplier->phone = e(Input::get('phone')); - $supplier->fax = e(Input::get('fax')); - $supplier->email = e(Input::get('email')); - $supplier->notes = e(Input::get('notes')); - $supplier->url = $supplier->addhttp(e(Input::get('url'))); - $supplier->user_id = Auth::user()->id; - - - + $supplier->name = request('name'); + $supplier->address = request('address'); + $supplier->address2 = request('address2'); + $supplier->city = request('city'); + $supplier->state = request('state'); + $supplier->country = request('country'); + $supplier->zip = request('zip'); + $supplier->contact = request('contact'); + $supplier->phone = request('phone'); + $supplier->fax = request('fax'); + $supplier->email = request('email'); + $supplier->notes = request('notes'); + $supplier->url = $supplier->addhttp(request('url')); + $supplier->user_id = Auth::id(); if (Input::file('image')) { - $image = Input::file('image'); + $image = $request->file('image'); $file_name = str_random(25).".".$image->getClientOriginalExtension(); $path = public_path('uploads/suppliers/'.$file_name); Image::make($image->getRealPath())->resize(300, null, function ($constraint) { @@ -97,30 +92,30 @@ public function store() // Redirect to the new supplier page return redirect()->route('suppliers.index')->with('success', trans('admin/suppliers/message.create.success')); } - - return redirect()->back()->withInput()->withErrors($supplier->getErrors()); - } + /** + * @param Request $request + * @return JsonResponse + */ public function apiStore(Request $request) { $supplier = new Supplier; - $supplier->name = e($request->input('name')); - $supplier->user_id = Auth::user()->id; + $supplier->name = $request->input('name'); + $supplier->user_id = Auth::id(); if ($supplier->save()) { return JsonResponse::create($supplier); } return JsonResponse::create(["error" => "Failed validation: ".print_r($supplier->getErrors(), true)], 500); - return JsonResponse::create(["error" => "Couldn't save Supplier"]); } /** * Supplier update. * * @param int $supplierId - * @return View + * @return \Illuminate\Contracts\View\View */ public function edit($supplierId = null) { @@ -139,9 +134,9 @@ public function edit($supplierId = null) * Supplier update form processing page. * * @param int $supplierId - * @return Redirect + * @return \Illuminate\Http\RedirectResponse */ - public function update($supplierId = null) + public function update($supplierId = null, Request $request) { // Check if the supplier exists if (is_null($supplier = Supplier::find($supplierId))) { @@ -150,22 +145,22 @@ public function update($supplierId = null) } // Save the data - $supplier->name = e(Input::get('name')); - $supplier->address = e(Input::get('address')); - $supplier->address2 = e(Input::get('address2')); - $supplier->city = e(Input::get('city')); - $supplier->state = e(Input::get('state')); - $supplier->country = e(Input::get('country')); - $supplier->zip = e(Input::get('zip')); - $supplier->contact = e(Input::get('contact')); - $supplier->phone = e(Input::get('phone')); - $supplier->fax = e(Input::get('fax')); - $supplier->email = e(Input::get('email')); - $supplier->url = $supplier->addhttp(e(Input::get('url'))); - $supplier->notes = e(Input::get('notes')); + $supplier->name = request('name'); + $supplier->address = request('address'); + $supplier->address2 = request('address2'); + $supplier->city = request('city'); + $supplier->state = request('state'); + $supplier->country = request('country'); + $supplier->zip = request('zip'); + $supplier->contact = request('contact'); + $supplier->phone = request('phone'); + $supplier->fax = request('fax'); + $supplier->email = request('email'); + $supplier->url = $supplier->addhttp(request('url')); + $supplier->notes = request('notes'); if (Input::file('image')) { - $image = Input::file('image'); + $image = $request->file('image'); $file_name = str_random(25).".".$image->getClientOriginalExtension(); $path = public_path('uploads/suppliers/'.$file_name); Image::make($image->getRealPath())->resize(300, null, function ($constraint) { @@ -175,7 +170,7 @@ public function update($supplierId = null) $supplier->image = $file_name; } - if (Input::get('image_delete') == 1 && Input::file('image') == "") { + if (request('image_delete') == 1 && $request->file('image') == "") { $supplier->image = null; } @@ -191,7 +186,7 @@ public function update($supplierId = null) * Delete the given supplier. * * @param int $supplierId - * @return Redirect + * @return \Illuminate\Http\RedirectResponse */ public function destroy($supplierId) { @@ -201,43 +196,37 @@ public function destroy($supplierId) return redirect()->route('suppliers.index')->with('error', trans('admin/suppliers/message.not_found')); } - if ($supplier->num_assets() > 0) { - - // Redirect to the asset management page - return redirect()->route('suppliers.index')->with('error', trans('admin/suppliers/message.assoc_users')); - } else { - + if ($supplier->num_assets() == 0) { // Delete the supplier $supplier->delete(); - // Redirect to the suppliers management page - return redirect()->route('suppliers.index')->with('success', trans('admin/suppliers/message.delete.success')); + return redirect()->route('suppliers.index')->with('success', + trans('admin/suppliers/message.delete.success')); } - + // Redirect to the asset management page + return redirect()->route('suppliers.index')->with('error', trans('admin/suppliers/message.assoc_users')); } /** - * Get the asset information to present to the supplier view page - * - * @param int $assetId - * @return View - **/ + * Get the asset information to present to the supplier view page + * + * @param null $supplierId + * @return \Illuminate\Contracts\View\View + * @internal param int $assetId + */ public function show($supplierId = null) { $supplier = Supplier::find($supplierId); if (isset($supplier->id)) { return View::make('suppliers/view', compact('supplier')); - } else { - // Prepare the error message - $error = trans('admin/suppliers/message.does_not_exist', compact('id')); - - // Redirect to the user management page - return redirect()->route('suppliers')->with('error', $error); } + // Prepare the error message + $error = trans('admin/suppliers/message.does_not_exist', compact('id')); - + // Redirect to the user management page + return redirect()->route('suppliers')->with('error', $error); } public function getDatatable() @@ -249,17 +238,9 @@ public function getDatatable() $suppliers = $suppliers->TextSearch(e(Input::get('search'))); } - if (Input::has('offset')) { - $offset = e(Input::get('offset')); - } else { - $offset = 0; - } + $offset = request('offset', 0); + $limit = request('limit', 50); - if (Input::has('limit')) { - $limit = e(Input::get('limit')); - } else { - $limit = 50; - } $allowed_columns = ['id','name','address','phone','contact','fax','email']; $order = Input::get('order') === 'asc' ? 'asc' : 'desc'; @@ -273,7 +254,16 @@ public function getDatatable() $rows = array(); foreach ($suppliers as $supplier) { - $actions = ''; + $actions = ''; + $actions .= Helper::generateDatatableButton('edit', route('suppliers.edit', $supplier->id)); + $actions .= Helper::generateDatatableButton( + 'delete', + route('suppliers.destroy', $supplier->id), + true, /*enabled*/ + trans('admin/suppliers/message.delete.confirm'), + $supplier->name + ); + $actions .= ''; $rows[] = array( 'id' => $supplier->id, @@ -288,10 +278,7 @@ public function getDatatable() 'actions' => $actions ); } - $data = array('total' => $suppliersCount, 'rows' => $rows); - return $data; - } } diff --git a/app/Http/Controllers/UsersController.php b/app/Http/Controllers/UsersController.php index 378f4b2aee2d..97d67b656fa9 100755 --- a/app/Http/Controllers/UsersController.php +++ b/app/Http/Controllers/UsersController.php @@ -55,8 +55,8 @@ class UsersController extends Controller * @author [A. Gianotto] [] * @see UsersController::getDatatable() method that generates the JSON response * @since [v1.0] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function index() { $this->authorize('index', User::class); @@ -68,8 +68,8 @@ public function index() * * @author [A. Gianotto] [] * @since [v1.0] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function create() { $this->authorize('create', User::class); @@ -85,14 +85,10 @@ public function create() $userPermissions = Helper::selectedPermissionsArray($permissions, Input::old('permissions', array())); $permissions = $this->filterDisplayable($permissions); - $location_list = Helper::locationsList(); - $manager_list = Helper::managerList(); - $company_list = Helper::companyList(); - return View::make('users/edit', compact('groups', 'userGroups', 'permissions', 'userPermissions')) - ->with('location_list', $location_list) - ->with('manager_list', $manager_list) - ->with('company_list', $company_list) + ->with('location_list', Helper::locationsList()) + ->with('manager_list', Helper::managerList()) + ->with('company_list', Helper::companyList()) ->with('user', new User); } @@ -101,8 +97,8 @@ public function create() * * @author [A. Gianotto] [] * @since [v1.0] - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function store(SaveUserRequest $request) { $this->authorize('create', User::class); @@ -115,17 +111,17 @@ public function store(SaveUserRequest $request) $data['password'] = $request->input('password'); } // Update the user - $user->first_name = e($request->input('first_name')); - $user->last_name = e($request->input('last_name')); - $user->locale = e($request->input('locale')); - $user->employee_num = e($request->input('employee_num')); - $user->activated = e($request->input('activated', $user->activated)); - $user->jobtitle = e($request->input('jobtitle')); - $user->phone = e($request->input('phone')); - $user->location_id = e($request->input('location_id')); - $user->company_id = e(Company::getIdForUser($request->input('company_id'))); - $user->manager_id = e($request->input('manager_id')); - $user->notes = e($request->input('notes')); + $user->first_name = $request->input('first_name'); + $user->last_name = $request->input('last_name'); + $user->locale = $request->input('locale'); + $user->employee_num = $request->input('employee_num'); + $user->activated = $request->input('activated', $user->activated); + $user->jobtitle = $request->input('jobtitle'); + $user->phone = $request->input('phone'); + $user->location_id = $request->input('location_id'); + $user->company_id = Company::getIdForUser($request->input('company_id')); + $user->manager_id = $request->input('manager_id'); + $user->notes = $request->input('notes'); // Strip out the superuser permission if the user isn't a superadmin $permissions_array = $request->input('permission'); @@ -175,11 +171,7 @@ public function store(SaveUserRequest $request) } return redirect::route('users.index')->with('success', trans('admin/users/message.success.create')); } - return redirect()->back()->withInput()->withErrors($user->getErrors()); - - - } /** @@ -198,19 +190,16 @@ public function apiStore() $inputs = Input::except('csrf_token', 'password_confirm', 'groups', 'email_user'); $inputs['activated'] = true; - $user->first_name = e(Input::get('first_name')); - $user->last_name = e(Input::get('last_name')); - $user->username = e(Input::get('username')); - $user->email = e(Input::get('email')); + $user->first_name = Input::get('first_name'); + $user->last_name = Input::get('last_name'); + $user->username = Input::get('username'); + $user->email = Input::get('email'); if (Input::has('password')) { $user->password = bcrypt(Input::get('password')); } - $user->activated = true; - - - // Was the user created? + // Was the user created? if ($user->save()) { if (Input::get('email_user') == 1) { @@ -230,22 +219,19 @@ public function apiStore() return JsonResponse::create($user); - } else { - return JsonResponse::create(["error" => "Failed validation: " . print_r($user->getErrors(), true)], 500); } - - - + return JsonResponse::create(["error" => "Failed validation: " . print_r($user->getErrors(), true)], 500); } /** - * Returns a view that displays the edit user form - * - * @author [A. Gianotto] [] - * @since [v1.0] - * @param int $id - * @return View - */ + * Returns a view that displays the edit user form + * + * @author [A. Gianotto] [] + * @since [v1.0] + * @param $permissions + * @return View + * @internal param int $id + */ private function filterDisplayable($permissions) { $output = null; @@ -271,9 +257,6 @@ public function edit($id = null) $user->permissions = $user->decodePermissions(); $userPermissions = Helper::selectedPermissionsArray($permissions, $user->permissions); $permissions = $this->filterDisplayable($permissions); - $location_list = Helper::locationsList(); - $company_list = Helper::companyList(); - $manager_list = Helper::managerList(); } catch (UserNotFoundException $e) { // Prepare the error message $error = trans('admin/users/message.user_not_found', compact('id')); @@ -284,19 +267,20 @@ public function edit($id = null) // Show the page return View::make('users/edit', compact('user', 'groups', 'userGroups', 'permissions', 'userPermissions')) - ->with('location_list', $location_list) - ->with('company_list', $company_list) - ->with('manager_list', $manager_list); + ->with('location_list', Helper::locationsList()) + ->with('company_list', Helper::companyList()) + ->with('manager_list', Helper::managerList()); } /** - * Validate and save edited user data from edit form. - * - * @author [A. Gianotto] [] - * @since [v1.0] - * @param int $id - * @return Redirect - */ + * Validate and save edited user data from edit form. + * + * @author [A. Gianotto] [] + * @since [v1.0] + * @param UpdateUserRequest $request + * @param int $id + * @return \Illuminate\Http\RedirectResponse + */ public function update(UpdateUserRequest $request, $id = null) { // We need to reverse the UI specific logic for our @@ -314,15 +298,11 @@ public function update(UpdateUserRequest $request, $id = null) $this->authorize('update', $user); // Figure out of this user was an admin before this edit $orig_permissions_array = $user->decodePermissions(); - + $orig_superuser = '0'; if (is_array($orig_permissions_array)) { if (array_key_exists('superuser', $orig_permissions_array)) { $orig_superuser = $orig_permissions_array['superuser']; - } else { - $orig_superuser = '0'; } - } else { - $orig_superuser = '0'; } } catch (UserNotFoundException $e) { @@ -351,18 +331,18 @@ public function update(UpdateUserRequest $request, $id = null) // Update the user - $user->first_name = e($request->input('first_name')); - $user->last_name = e($request->input('last_name')); - $user->two_factor_optin = e($request->input('two_factor_optin')); - $user->locale = e($request->input('locale')); - $user->employee_num = e($request->input('employee_num')); - $user->activated = e($request->input('activated', $user->activated)); - $user->jobtitle = e($request->input('jobtitle')); - $user->phone = e($request->input('phone')); - $user->location_id = e($request->input('location_id')); - $user->company_id = e(Company::getIdForUser($request->input('company_id'))); - $user->manager_id = e($request->input('manager_id')); - $user->notes = e($request->input('notes')); + $user->first_name = $request->input('first_name'); + $user->last_name = $request->input('last_name'); + $user->two_factor_optin = $request->input('two_factor_optin'); + $user->locale = $request->input('locale'); + $user->employee_num = $request->input('employee_num'); + $user->activated = $request->input('activated', $user->activated); + $user->jobtitle = $request->input('jobtitle'); + $user->phone = $request->input('phone'); + $user->location_id = $request->input('location_id'); + $user->company_id = Company::getIdForUser($request->input('company_id')); + $user->manager_id = $request->input('manager_id'); + $user->notes = $request->input('notes'); // Strip out the superuser permission if the user isn't a superadmin $permissions_array = $request->input('permission'); @@ -372,7 +352,6 @@ public function update(UpdateUserRequest $request, $id = null) $permissions_array['superuser'] = $orig_superuser; } - $user->permissions = json_encode($permissions_array); if ($user->manager_id == "") { @@ -387,20 +366,14 @@ public function update(UpdateUserRequest $request, $id = null) $user->company_id = null; } - - // Was the user updated? + // Was the user updated? if ($user->save()) { - - // Prepare the success message $success = trans('admin/users/message.success.update'); - // Redirect to the user page return redirect()->route('users.index')->with('success', $success); } - - return redirect()->back()->withInput()->withErrors($user->getErrors()); - + return redirect()->back()->withInput()->withErrors($user->getErrors()); } /** @@ -409,8 +382,8 @@ public function update(UpdateUserRequest $request, $id = null) * @author [A. Gianotto] [] * @since [v1.0] * @param int $id - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function destroy($id = null) { try { @@ -419,22 +392,21 @@ public function destroy($id = null) // Authorize takes care of many of our logic checks now. $this->authorize('delete', User::class); - if (count($user->assets) > 0) { - + if ($user->assets()->count() > 0) { // Redirect to the user management page - return redirect()->route('users.index')->with('error', 'This user still has ' . count($user->assets) . ' assets associated with them.'); + return redirect()->route('users.index')->with('error', 'This user still has ' . $user->assets()->count() . ' assets associated with them.'); } - if (count($user->licenses) > 0) { + if ($user->licenses()->count() > 0) { // Redirect to the user management page - return redirect()->route('users.index')->with('error', 'This user still has ' . count($user->licenses) . ' licenses associated with them.'); + return redirect()->route('users.index')->with('error', 'This user still has ' . $user->licenses()->count() . ' licenses associated with them.'); } - if (count($user->accessories) > 0) { + if ($user->accessories()->count() > 0) { // Redirect to the user management page - return redirect()->route('users.index')->with('error', 'This user still has ' . count($user->accessories) . ' accessories associated with them.'); + return redirect()->route('users.index')->with('error', 'This user still has ' . $user->accessories()->count() . ' accessories associated with them.'); } // Delete the user @@ -448,7 +420,6 @@ public function destroy($id = null) } catch (UserNotFoundException $e) { // Prepare the error message $error = trans('admin/users/message.user_not_found', compact('id')); - // Redirect to the user management page return redirect()->route('users.index')->with('error', $error); } @@ -459,8 +430,8 @@ public function destroy($id = null) * * @author [A. Gianotto] [] * @since [v1.7] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function postBulkEdit() { $this->authorize('update', User::class); @@ -471,8 +442,6 @@ public function postBulkEdit() $user_raw_array = array_keys(Input::get('edit_user')); $licenses = DB::table('license_seats')->whereIn('assigned_to', $user_raw_array)->get(); - //print_r($licenses); - $users = User::whereIn('id', $user_raw_array)->with('groups', 'assets', 'licenses', 'accessories')->get(); // $users = Company::scopeCompanyables($users)->get(); @@ -485,8 +454,8 @@ public function postBulkEdit() * * @author [A. Gianotto] [] * @since [v1.0] - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function postBulkSave() { $this->authorize('update', User::class); @@ -517,56 +486,50 @@ public function postBulkSave() $license_array = array(); $accessory_array = array(); - - foreach ($assets as $asset) { $asset_array[] = $asset->id; // Update the asset log - $logaction = new Actionlog(); - $logaction->item_id = $asset->id; - $logaction->item_type = Asset::class; - $logaction->target_id = $asset->assigned_to; - $logaction->target_type = User::class; - $logaction->user_id = Auth::user()->id; - $logaction->note = 'Bulk checkin asset and delete user'; - $logaction->logaction('checkin from'); - - Asset::whereIn('id', $asset_array)->update( - array( + $logAction = new Actionlog(); + $logAction->item_id = $asset->id; + $logAction->item_type = Asset::class; + $logAction->target_id = $asset->assigned_to; + $logAction->target_type = User::class; + $logAction->user_id = Auth::user()->id; + $logAction->note = 'Bulk checkin asset and delete user'; + $logAction->logaction('checkin from'); + + Asset::whereIn('id', $asset_array)->update([ 'status_id' => e(Input::get('status_id')), 'assigned_to' => null, - ) - ); + ]); } foreach ($accessories as $accessory) { $accessory_array[] = $accessory->accessory_id; // Update the asset log - $logaction = new Actionlog(); - $logaction->item_id = $accessory->id; - $logaction->item_type = Accessory::class; - $logaction->target_id = $accessory->assigned_to; - $logaction->target_type = User::class; - $logaction->user_id = Auth::user()->id; - $logaction->note = 'Bulk checkin accessory and delete user'; - $logaction->logaction('checkin from'); - - + $logAction = new Actionlog(); + $logAction->item_id = $accessory->id; + $logAction->item_type = Accessory::class; + $logAction->target_id = $accessory->assigned_to; + $logAction->target_type = User::class; + $logAction->user_id = Auth::user()->id; + $logAction->note = 'Bulk checkin accessory and delete user'; + $logAction->logaction('checkin from'); } foreach ($licenses as $license) { $license_array[] = $license->id; // Update the asset log - $logaction = new Actionlog(); - $logaction->item_id = $license->id; - $logaction->item_type = License::class; - $logaction->target_id = $license->assigned_to; - $logaction->target_type = User::class; - $logaction->user_id = Auth::user()->id; - $logaction->note = 'Bulk checkin license and delete user'; - $logaction->logaction('checkin from'); + $logAction = new Actionlog(); + $logAction->item_id = $license->id; + $logAction->item_type = License::class; + $logAction->target_id = $license->assigned_to; + $logAction->target_type = User::class; + $logAction->user_id = Auth::user()->id; + $logAction->note = 'Bulk checkin license and delete user'; + $logAction->logaction('checkin from'); } LicenseSeat::whereIn('id', $license_array)->update(['assigned_to' => null]); @@ -577,10 +540,8 @@ public function postBulkSave() } return redirect()->route('users.index')->with('success', 'Your selected users have been deleted and their assets have been updated.'); - } else { - return redirect()->route('users.index')->with('error', 'Bulk delete is not enabled in this installation'); } - + return redirect()->route('users.index')->with('error', 'Bulk delete is not enabled in this installation'); } } @@ -590,8 +551,8 @@ public function postBulkSave() * @author [A. Gianotto] [] * @since [v1.0] * @param int $id - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function getRestore($id = null) { $this->authorize('edit', User::class); @@ -605,7 +566,6 @@ public function getRestore($id = null) return redirect()->route('users.index')->with('success', trans('admin/users/message.success.restored')); } return redirect()->route('users.index')->with('error', 'User could not be restored.'); - } @@ -615,13 +575,12 @@ public function getRestore($id = null) * @author [A. Gianotto] [] * @since [v1.0] * @param int $userId - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function show($userId = null) { if(!$user = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc')->withTrashed()->find($userId)) { $error = trans('admin/users/message.user_not_found', compact('id')); - // Redirect to the user management page return redirect()->route('users.index')->with('error', $error); } @@ -632,7 +591,6 @@ public function show($userId = null) $this->authorize('view', $user); return View::make('users/view', compact('user', 'userlog')); } - } /** @@ -654,7 +612,6 @@ public function getUnsuspend($id = null) if ($user->id === Auth::user()->id) { // Prepare the error message $error = trans('admin/users/message.error.unsuspend'); - // Redirect to the user management page return redirect()->route('users.index')->with('error', $error); } @@ -667,13 +624,11 @@ public function getUnsuspend($id = null) // Prepare the success message $success = trans('admin/users/message.success.unsuspend'); - // Redirect to the user management page return redirect()->route('users.index')->with('success', $success); } catch (UserNotFoundException $e) { // Prepare the error message $error = trans('admin/users/message.user_not_found', compact('id')); - // Redirect to the user management page return redirect()->route('users.index')->with('error', $error); } @@ -687,8 +642,8 @@ public function getUnsuspend($id = null) * @author [A. Gianotto] [] * @since [v1.0] * @param int $id - * @return Redirect - */ + * @return \Illuminate\Contracts\View\View + */ public function getClone($id = null) { $this->authorize('create', User::class); @@ -711,34 +666,24 @@ public function getClone($id = null) // Get this user groups $userGroups = $user_to_clone->groups()->lists('name', 'id'); - - // Get a list of all the available groups - $groups = Group::pluck('name', 'id'); - // Get all the available permissions $permissions = config('permissions'); $clonedPermissions = $user_to_clone->decodePermissions(); $userPermissions =Helper::selectedPermissionsArray($permissions, $clonedPermissions); - //$this->encodeAllPermissions($permissions); - - $location_list = Helper::locationsList(); - $company_list = Helper::companyList(); - $manager_list = Helper::managerList(); // Show the page - return View::make('users/edit', compact('groups', 'userGroups', 'permissions', 'userPermissions')) - ->with('location_list', $location_list) - ->with('company_list', $company_list) - ->with('manager_list', $manager_list) + return View::make('users/edit', compact('permissions', 'userPermissions')) + ->with('location_list', Helper::locationsList()) + ->with('company_list', Helper::companyList()) + ->with('manager_list', Helper::managerList()) ->with('user', $user) - ->with('groups', $groups) + ->with('groups', Group::pluck('name', 'id')) ->with('userGroups', $userGroups) ->with('clone_user', $user_to_clone); } catch (UserNotFoundException $e) { // Prepare the error message $error = trans('admin/users/message.user_not_found', compact('id')); - // Redirect to the user management page return redirect()->route('users.index')->with('error', $error); } @@ -749,23 +694,18 @@ public function getClone($id = null) * * @author [A. Gianotto] [] * @since [v1.0] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function getImport() { $this->authorize('update', User::class); - // Get all the available groups - //$groups = Sentry::getGroupProvider()->findAll(); // Selected groups $selectedGroups = Input::old('groups', array()); // Get all the available permissions $permissions = config('permissions'); - //$this->encodeAllPermissions($permissions); - // Selected permissions $selectedPermissions = Input::old('permissions', array('superuser' => -1)); - //$this->encodePermissions($selectedPermissions); // Show the page - return View::make('users/import', compact('groups', 'selectedGroups', 'permissions', 'selectedPermissions')); + return View::make('users/import', compact('selectedGroups', 'permissions', 'selectedPermissions')); } /** @@ -773,8 +713,8 @@ public function getImport() * * @author [A. Gianotto] [] * @since [v1.0] - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function postImport() { $this->authorize('update', User::class); @@ -864,8 +804,6 @@ public function postImport() return true; } }); - - return redirect()->route('users.index')->with('duplicates', $duplicates)->with('success', 'Success'); } @@ -880,17 +818,9 @@ public function postImport() public function getDatatable(Request $request, $status = null) { $this->authorize('view', User::class); - if (Input::has('offset')) { - $offset = e(Input::get('offset')); - } else { - $offset = 0; - } - if (Input::has('limit')) { - $limit = e(Input::get('limit')); - } else { - $limit = 50; - } + $offset = request('offset', 0); + $limit = request('limit', 50); if (Input::get('sort')=='name') { $sort = 'first_name'; @@ -940,45 +870,40 @@ public function getDatatable(Request $request, $status = null) foreach ($users as $user) { $group_names = ''; - $inout = ''; $actions = ''; foreach ($user->groups as $group) { $group_names .= '' . $group->name . ' '; } - - - if (!is_null($user->deleted_at)) { - if (Gate::allows('delete', $user)) { - $actions .= ' '; - } - } else { - - if (Gate::allows('delete', $user)) { - if ($user->accountStatus() == 'suspended') { - $actions .= ' '; - } - } - if (Gate::allows('update', $user)) { - $actions .= ' '; - - $actions .= ''; + if (!is_null($user->deleted_at)) { + if (Gate::allows('delete', $user)) { + $actions .= Helper::generateDatatableButton('restore', route('restore/user', $user->id)); + } + } else { + if (Gate::allows('delete', $user)) { + if ($user->accountStatus() == 'suspended') { + $actions .= ' '; } - if (Gate::allows('delete', $user)) { - if ((Auth::user()->id !== $user->id) && (!config('app.lock_passwords'))) { - $actions .= ' '; - } else { - $actions .= ' '; - } + } + if (Gate::allows('update', $user)) { + $actions .= Helper::generateDatatableButton('edit', route('users.edit', $user->id)); + $actions .= Helper::generateDatatableButton('clone', route('clone/user', $user->id)); + } + if (Gate::allows('delete', $user)) { + if ((Auth::user()->id !== $user->id) && (!config('app.lock_passwords'))) { + $actions .= Helper::generateDatatableButton( + 'delete', + route('users.destroy', $user->id), + true, /*enabled*/ + "Are you sure you wish to delete this user?", + $user->first_name + ); } else { - $actions.=''; + $actions .= ' '; } } + } $actions .= ''; @@ -1015,13 +940,14 @@ public function getDatatable(Request $request, $status = null) } /** - * Return JSON response with a list of user details for the getIndex() view. - * - * @author [A. Gianotto] [] - * @since [v1.6] - * @param int $userId - * @return string JSON - */ + * Return JSON response with a list of user details for the getIndex() view. + * + * @author [A. Gianotto] [] + * @since [v1.6] + * @param AssetFileRequest $request + * @param int $userId + * @return string JSON + */ public function postUpload(AssetFileRequest $request, $userId = null) { @@ -1038,23 +964,23 @@ public function postUpload(AssetFileRequest $request, $userId = null) $filename .= '-' . str_slug($file->getClientOriginalName()) . '.' . $extension; $upload_success = $file->move($destinationPath, $filename); - //Log the uploaded file to the log - $logaction = new Actionlog(); - $logaction->item_id = $user->id; - $logaction->item_type = User::class; - $logaction->user_id = Auth::user()->id; - $logaction->note = e(Input::get('notes')); - $logaction->target_id = null; - $logaction->created_at = date("Y-m-d H:i:s"); - $logaction->filename = $filename; - $logaction->action_type = 'uploaded'; - $logaction->save(); + //Log the uploaded file to the log + $logAction = new Actionlog(); + $logAction->item_id = $user->id; + $logAction->item_type = User::class; + $logAction->user_id = Auth::user()->id; + $logAction->note = e(Input::get('notes')); + $logAction->target_id = null; + $logAction->created_at = date("Y-m-d H:i:s"); + $logAction->filename = $filename; + $logAction->action_type = 'uploaded'; + $logAction->save(); } - return JsonResponse::create($logaction); + return JsonResponse::create($logAction); } - return JsonResponse::create(["error" => "Failed validation: ".print_r($logaction->getErrors(), true)], 500); + return JsonResponse::create(["error" => "Failed validation: ".print_r($logAction->getErrors(), true)], 500); } @@ -1065,8 +991,8 @@ public function postUpload(AssetFileRequest $request, $userId = null) * @since [v1.6] * @param int $userId * @param int $fileId - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function getDeleteFile($userId = null, $fileId = null) { $user = User::find($userId); @@ -1085,7 +1011,6 @@ public function getDeleteFile($userId = null, $fileId = null) } // Prepare the error message $error = trans('admin/users/message.does_not_exist', compact('id')); - // Redirect to the licence management page return redirect()->route('users.index')->with('error', $error); @@ -1124,20 +1049,17 @@ public function displayFile($userId = null, $fileId = null) * * @author Aladin Alaily * @since [v1.8] - * @return View - */ + * @return \Illuminate\Contracts\View\View + */ public function getLDAP() { $this->authorize('update', User::class); - $location_list = Helper::locationsList(); - try { $ldapconn = Ldap::connectToLdap(); } catch (\Exception $e) { return redirect()->route('users.index')->with('error', $e->getMessage()); } - try { Ldap::bindAdminToLdap($ldapconn); } catch (\Exception $e) { @@ -1145,8 +1067,7 @@ public function getLDAP() } return View::make('users/ldap') - ->with('location_list', $location_list); - + ->with('location_list', Helper::locationsList()); } @@ -1173,8 +1094,8 @@ public function getLDAP() * * @author Aladin Alaily * @since [v1.8] - * @return Redirect - */ + * @return \Illuminate\Http\RedirectResponse + */ public function postLDAP(Request $request) { $this->authorize('update', User::class); @@ -1208,7 +1129,6 @@ public function postLDAP(Request $request) $tmp_pass = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 20); $pass = bcrypt($tmp_pass); - for ($i = 0; $i < $results["count"]; $i++) { if (empty($ldap_result_active_flag) || $results[$i][$ldap_result_active_flag][0] == "TRUE") { @@ -1227,9 +1147,7 @@ public function postLDAP(Request $request) $item["createorupdate"] = 'created'; } - // Create the user if they don't exist. - - + // Create the user if they don't exist. $user->first_name = e($item["firstname"]); $user->last_name = e($item["lastname"]); $user->username = e($item["username"]); @@ -1254,24 +1172,20 @@ public function postLDAP(Request $request) $item["note"] = $errors; $item["status"]='error'; } - array_push($summary, $item); } - } - - - return redirect()->route('ldap/user')->with('success', "LDAP Import successful.")->with('summary', $summary); } /** - * Return JSON containing a list of assets assigned to a user. - * - * @author [A. Gianotto] [] - * @since [v3.0] - * @return string JSON - */ + * Return JSON containing a list of assets assigned to a user. + * + * @author [A. Gianotto] [] + * @since [v3.0] + * @param $userId + * @return string JSON + */ public function getAssetList($userId) { $this->authorize('view', User::class); @@ -1284,14 +1198,13 @@ public function getAssetList($userId) * * @author [A. Gianotto] [] * @since [v3.5] - * @return \Illuminate\Http\Response + * @return StreamedResponse */ public function getExportUserCsv() { $this->authorize('view', User::class); \Debugbar::disable(); - $response = new StreamedResponse(function() { // Open output stream $handle = fopen('php://output', 'w'); @@ -1364,7 +1277,6 @@ public function getExportUserCsv() } - public function postTwoFactorReset(Request $request) { if (Gate::denies('users.edit')) { @@ -1380,8 +1292,5 @@ public function postTwoFactorReset(Request $request) } catch (\Exception $e) { return response()->json(['message' => trans('admin/settings/general.two_factor_reset_error')], 500); } - } - - } diff --git a/app/Models/Supplier.php b/app/Models/Supplier.php index 439fb4273ce1..80c35c2eca61 100755 --- a/app/Models/Supplier.php +++ b/app/Models/Supplier.php @@ -20,8 +20,8 @@ class Supplier extends SnipeModel 'city' => 'min:3|max:255', 'state' => 'min:0|max:32', 'country' => 'min:0|max:2', - 'fax' => 'min:7|max:20', - 'phone' => 'min:7|max:20', + 'fax' => 'min:7|max:35', + 'phone' => 'min:7|max:35', 'contact' => 'min:0|max:100', 'notes' => 'min:0|max:255', 'email' => 'email|min:5|max:150', diff --git a/database/migrations/2016_12_19_133936_extend_phone_lengths_in_supplier_and_elsewhere.php b/database/migrations/2016_12_19_133936_extend_phone_lengths_in_supplier_and_elsewhere.php new file mode 100644 index 000000000000..05752e7db81e --- /dev/null +++ b/database/migrations/2016_12_19_133936_extend_phone_lengths_in_supplier_and_elsewhere.php @@ -0,0 +1,37 @@ +string('phone',35)->nullable()->default(NULL)->change(); + $table->string('fax',35)->nullable()->default(NULL)->change(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('suppliers', function (Blueprint $table) { + // + $table->string('phone',20)->nullable()->default(NULL)->change(); + $table->string('fax',20)->nullable()->default(NULL)->change(); + + }); + } +} diff --git a/tests/_data/dump.sql b/tests/_data/dump.sql index d7b8702be011..e08889b2c047 100644 --- a/tests/_data/dump.sql +++ b/tests/_data/dump.sql @@ -41,7 +41,7 @@ CREATE TABLE `accessories` ( `manufacturer_id` int(11) DEFAULT NULL, `model_number` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -50,7 +50,7 @@ CREATE TABLE `accessories` ( LOCK TABLES `accessories` WRITE; /*!40000 ALTER TABLE `accessories` DISABLE KEYS */; -INSERT INTO `accessories` VALUES (1,'Voluptatem enim.',15,NULL,8,0,'2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,1,NULL,NULL,NULL,2,2,NULL,NULL),(2,'Dolores aut aut.',14,NULL,7,0,'2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,3,NULL,NULL,NULL,3,1,NULL,NULL),(3,'Quaerat corrupti.',13,NULL,9,0,'2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,3,NULL,NULL,NULL,3,1,NULL,NULL),(4,'Expedita mollitia.',12,NULL,9,0,'2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,4,NULL,NULL,NULL,1,2,NULL,NULL),(5,'Est culpa totam.',11,NULL,8,0,'2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,1,NULL,NULL,NULL,3,2,NULL,NULL),(6,'Quae esse vero.',12,NULL,7,0,'2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,3,NULL,NULL,NULL,4,1,NULL,NULL),(7,'Nemo rerum soluta.',14,NULL,6,0,'2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,4,NULL,NULL,NULL,3,1,NULL,NULL),(8,'Ut error deleniti.',13,NULL,7,0,'2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,5,NULL,NULL,NULL,4,2,NULL,NULL),(9,'Est ut ad et quos.',13,NULL,8,0,'2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,3,NULL,NULL,NULL,3,2,NULL,NULL),(10,'Itaque voluptas est.',13,NULL,9,0,'2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,1,NULL,NULL,NULL,2,1,NULL,NULL),(11,'Est aspernatur in.',12,NULL,6,0,'2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,2,NULL,NULL,NULL,3,1,NULL,NULL),(12,'Consequatur quo a.',15,NULL,10,0,'2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,4,NULL,NULL,NULL,2,2,NULL,NULL),(13,'Placeat perferendis.',14,NULL,10,0,'2016-11-20 23:07:28','2016-11-21 00:33:27','2016-11-21 00:33:27',3,NULL,NULL,NULL,3,2,NULL,NULL),(14,'Dolore corrupti.',12,NULL,7,0,'2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,3,NULL,NULL,NULL,4,2,NULL,NULL),(15,'Ut pariatur.',14,NULL,5,0,'2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,4,NULL,NULL,NULL,2,1,NULL,NULL),(16,'TestAccessory',19,1,12,0,'2016-11-21 00:33:26','2016-11-21 00:33:26',NULL,5,'2016-01-01',25.00,'12345',4,6,8,''); +INSERT INTO `accessories` VALUES (1,'Ut mollitia.',14,NULL,8,0,'2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,3,'1988-09-17',25836.87,'35014616',11,2,10,NULL),(2,'Ut et ut soluta.',14,NULL,5,0,'2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,2,'1985-11-06',200108.21,'21094683',14,1,4,NULL),(3,'Error tenetur.',12,NULL,5,0,'2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,1,'1986-05-14',28577.40,'41322960',4,2,1,NULL),(4,'Iusto et et non.',12,NULL,9,0,'2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,2,'1996-12-13',157.48,'29118579',10,2,2,NULL),(5,'Voluptatem ad rem.',14,NULL,6,0,'2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,3,'2015-12-30',310.50,'6252438',10,1,9,NULL),(6,'Nihil dignissimos.',14,NULL,7,0,'2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,5,'1999-10-30',59697588.47,'45178757',6,2,6,NULL),(7,'Dignissimos est et.',15,NULL,9,0,'2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,5,'1974-12-19',6.61,'2144808',12,2,9,NULL),(8,'Est in non autem.',12,NULL,5,0,'2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,4,'1979-11-15',425290.63,'27097724',9,1,8,NULL),(9,'Asperiores suscipit.',15,NULL,7,0,'2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,4,'2008-02-19',276973.34,'27119729',10,1,6,NULL),(10,'Officiis.',13,NULL,8,0,'2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,5,'2008-10-30',166316.55,'20862511',3,2,4,NULL),(11,'Tenetur minima.',15,NULL,5,0,'2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,3,'1990-11-13',1632.04,'24359280',11,1,10,NULL),(12,'Consequuntur.',12,NULL,8,0,'2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,4,'1971-06-18',0.72,'46029235',7,2,7,NULL),(13,'Dolorem vel nisi.',11,NULL,10,0,'2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,4,'2004-05-30',14910998.69,'41178738',8,2,5,NULL),(14,'Eum vel adipisci.',14,NULL,9,0,'2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,4,'2006-05-22',1.48,'4330024',14,2,1,NULL),(15,'Temporibus qui.',14,NULL,7,0,'2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,4,'1985-06-30',1806222.61,'7563193',14,1,9,NULL); /*!40000 ALTER TABLE `accessories` ENABLE KEYS */; UNLOCK TABLES; @@ -109,7 +109,7 @@ CREATE TABLE `action_logs` ( `accept_signature` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`), KEY `action_logs_thread_id_index` (`thread_id`) -) ENGINE=InnoDB AUTO_INCREMENT=92 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=86 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -118,7 +118,7 @@ CREATE TABLE `action_logs` ( LOCK TABLES `action_logs` WRITE; /*!40000 ALTER TABLE `action_logs` DISABLE KEYS */; -INSERT INTO `action_logs` VALUES (1,26,'checkout',39,'App\\Models\\User',NULL,'Minus architecto autem neque vel ut.',NULL,'App\\Models\\Asset',36,NULL,NULL,'1972-01-14 18:00:46','2016-11-20 23:07:29',NULL,NULL,2,NULL),(2,34,'checkout',42,'App\\Models\\User',NULL,'Odio optio vitae ipsa facere repudiandae consequatur.',NULL,'App\\Models\\Asset',54,NULL,NULL,'2003-10-04 22:32:16','2016-11-20 23:07:29',NULL,NULL,3,NULL),(3,40,'checkout',36,'App\\Models\\User',NULL,'Aliquid eligendi nesciunt expedita repudiandae alias veritatis hic.',NULL,'App\\Models\\Asset',1,NULL,NULL,'1978-02-16 03:07:32','2016-11-20 23:07:29',NULL,NULL,4,NULL),(4,41,'checkout',40,'App\\Models\\User',NULL,'Earum corrupti impedit ab sed placeat.',NULL,'App\\Models\\Asset',28,NULL,NULL,'2009-12-09 21:33:02','2016-11-20 23:07:29',NULL,NULL,4,NULL),(5,34,'checkout',34,'App\\Models\\User',NULL,'Exercitationem aut repellendus officiis impedit pariatur aut rerum.',NULL,'App\\Models\\Asset',4,NULL,NULL,'1978-12-03 19:18:58','2016-11-20 23:07:29',NULL,NULL,3,NULL),(6,29,'checkout',31,'App\\Models\\User',NULL,'Dolores nostrum deleniti laborum voluptatem quas eligendi iste et.',NULL,'App\\Models\\Asset',36,NULL,NULL,'2000-03-22 00:11:42','2016-11-20 23:07:29',NULL,NULL,2,NULL),(7,43,'checkout',44,'App\\Models\\User',NULL,'Voluptate et omnis omnis quidem impedit mollitia harum.',NULL,'App\\Models\\Asset',97,NULL,NULL,'2006-07-17 06:26:47','2016-11-20 23:07:29',NULL,NULL,1,NULL),(8,27,'checkout',27,'App\\Models\\User',NULL,'Aspernatur dolores non ab cum.',NULL,'App\\Models\\Asset',5,NULL,NULL,'2000-04-11 13:21:42','2016-11-20 23:07:29',NULL,NULL,2,NULL),(9,25,'checkout',32,'App\\Models\\User',NULL,'Et ipsa adipisci nisi beatae.',NULL,'App\\Models\\Asset',29,NULL,NULL,'1970-08-21 14:33:04','2016-11-20 23:07:29',NULL,NULL,1,NULL),(10,40,'checkout',36,'App\\Models\\User',NULL,'Non sunt architecto omnis delectus dolorem qui est.',NULL,'App\\Models\\Asset',40,NULL,NULL,'2003-01-07 19:51:30','2016-11-20 23:07:29',NULL,NULL,4,NULL),(11,24,'checkout',25,'App\\Models\\User',NULL,'Explicabo itaque eos dolor officia itaque labore ipsam.',NULL,'App\\Models\\Asset',48,NULL,NULL,'2013-12-15 02:06:16','2016-11-20 23:07:29',NULL,NULL,1,NULL),(12,40,'checkout',37,'App\\Models\\User',NULL,'Quibusdam minima quisquam veniam est repudiandae in.',NULL,'App\\Models\\Asset',49,NULL,NULL,'2000-04-10 18:27:00','2016-11-20 23:07:29',NULL,NULL,4,NULL),(13,34,'checkout',34,'App\\Models\\User',NULL,'Magnam consectetur ut unde omnis corporis perferendis.',NULL,'App\\Models\\Asset',83,NULL,NULL,'1994-12-22 15:29:46','2016-11-20 23:07:29',NULL,NULL,3,NULL),(14,34,'checkout',34,'App\\Models\\User',NULL,'Velit ut nam voluptates et et repellendus.',NULL,'App\\Models\\Asset',92,NULL,NULL,'1993-03-25 07:22:31','2016-11-20 23:07:29',NULL,NULL,3,NULL),(15,25,'checkout',24,'App\\Models\\User',NULL,'Totam quia modi voluptate soluta.',NULL,'App\\Models\\Asset',50,NULL,NULL,'1983-12-24 12:33:35','2016-11-20 23:07:30',NULL,NULL,1,NULL),(16,35,'checkout',44,'App\\Models\\User',NULL,'Quas occaecati necessitatibus distinctio.',NULL,'App\\Models\\Asset',84,NULL,NULL,'1999-02-04 03:31:56','2016-11-20 23:07:30',NULL,NULL,1,NULL),(17,42,'checkout',42,'App\\Models\\User',NULL,'Dolores aut recusandae aut deserunt magni non.',NULL,'App\\Models\\Asset',2,NULL,NULL,'2014-08-20 09:31:19','2016-11-20 23:07:30',NULL,NULL,3,NULL),(18,24,'checkout',24,'App\\Models\\User',NULL,'Officiis porro voluptatem placeat aut voluptas quis est.',NULL,'App\\Models\\Asset',60,NULL,NULL,'1993-10-15 18:56:40','2016-11-20 23:07:30',NULL,NULL,1,NULL),(19,43,'checkout',28,'App\\Models\\User',NULL,'Necessitatibus repellat itaque illo qui officiis aut non.',NULL,'App\\Models\\Asset',86,NULL,NULL,'1980-01-26 00:20:38','2016-11-20 23:07:30',NULL,NULL,1,NULL),(20,36,'checkout',41,'App\\Models\\User',NULL,'Vel nihil ut et vel et doloribus ut.',NULL,'App\\Models\\Asset',62,NULL,NULL,'2000-01-13 15:45:17','2016-11-20 23:07:30',NULL,NULL,4,NULL),(21,42,'checkout',30,'App\\Models\\User',NULL,'Reprehenderit porro tempore saepe nisi illum qui.',NULL,'App\\Models\\Asset',2,NULL,NULL,'2014-07-25 15:21:25','2016-11-20 23:07:30',NULL,NULL,3,NULL),(22,36,'checkout',36,'App\\Models\\User',NULL,'Totam corporis aut beatae voluptatem nihil labore nihil vero.',NULL,'App\\Models\\Asset',68,NULL,NULL,'2012-11-12 12:07:30','2016-11-20 23:07:30',NULL,NULL,4,NULL),(23,31,'checkout',39,'App\\Models\\User',NULL,'Repudiandae debitis molestias odio iste voluptatem eum.',NULL,'App\\Models\\Asset',23,NULL,NULL,'1975-01-11 12:34:13','2016-11-20 23:07:30',NULL,NULL,2,NULL),(24,30,'checkout',34,'App\\Models\\User',NULL,'Repellat nisi doloribus optio porro nisi magnam.',NULL,'App\\Models\\Asset',17,NULL,NULL,'2012-03-28 03:56:46','2016-11-20 23:07:30',NULL,NULL,3,NULL),(25,26,'checkout',29,'App\\Models\\User',NULL,'Excepturi sunt quo libero illum vitae.',NULL,'App\\Models\\Asset',10,NULL,NULL,'2009-11-25 08:36:11','2016-11-20 23:07:30',NULL,NULL,2,NULL),(26,43,'checkout',35,'App\\Models\\User',NULL,'Laborum quia molestiae totam quam sapiente aut quaerat fugit.',NULL,'App\\Models\\Accessory',4,NULL,NULL,'1986-03-15 09:45:58','2016-11-20 23:07:30',NULL,NULL,1,NULL),(27,31,'checkout',38,'App\\Models\\User',NULL,'Perspiciatis possimus est qui excepturi mollitia aspernatur animi.',NULL,'App\\Models\\Accessory',15,NULL,NULL,'2003-02-16 03:08:32','2016-11-20 23:07:30',NULL,NULL,2,NULL),(28,29,'checkout',31,'App\\Models\\User',NULL,'Ab unde dicta ut odit temporibus facilis.',NULL,'App\\Models\\Accessory',1,NULL,NULL,'1992-02-26 19:41:44','2016-11-20 23:07:30',NULL,NULL,2,NULL),(29,30,'checkout',34,'App\\Models\\User',NULL,'Vero qui iste ipsum ad labore.',NULL,'App\\Models\\Accessory',3,NULL,NULL,'1979-04-19 20:56:34','2016-11-20 23:07:30',NULL,NULL,3,NULL),(30,31,'checkout',29,'App\\Models\\User',NULL,'Dolorum nesciunt atque et iste quia doloremque quasi.',NULL,'App\\Models\\Accessory',10,NULL,NULL,'2007-10-14 11:53:40','2016-11-20 23:07:30',NULL,NULL,2,NULL),(31,24,'checkout',25,'App\\Models\\User',NULL,'Labore aliquid rerum rerum fugit impedit optio.',NULL,'App\\Models\\Accessory',4,NULL,NULL,'2014-05-17 04:23:16','2016-11-20 23:07:30',NULL,NULL,1,NULL),(32,40,'checkout',41,'App\\Models\\User',NULL,'Id et ducimus similique unde.',NULL,'App\\Models\\Accessory',6,NULL,NULL,'2012-03-19 12:34:56','2016-11-20 23:07:30',NULL,NULL,4,NULL),(33,42,'checkout',34,'App\\Models\\User',NULL,'Aliquid quisquam non quo nihil enim et.',NULL,'App\\Models\\Accessory',3,NULL,NULL,'2000-09-07 05:58:59','2016-11-20 23:07:30',NULL,NULL,3,NULL),(34,42,'checkout',42,'App\\Models\\User',NULL,'Rerum possimus voluptas voluptate sit ut incidunt et.',NULL,'App\\Models\\Accessory',3,NULL,NULL,'2003-08-10 04:47:44','2016-11-20 23:07:30',NULL,NULL,3,NULL),(35,30,'checkout',34,'App\\Models\\User',NULL,'Est rerum temporibus ratione voluptatem dolorem minus.',NULL,'App\\Models\\Accessory',11,NULL,NULL,'1974-01-18 19:02:43','2016-11-20 23:07:30',NULL,NULL,3,NULL),(36,44,'checkout',44,'App\\Models\\User',NULL,'Voluptatem harum et ea possimus et.',NULL,'App\\Models\\Accessory',4,NULL,NULL,'1978-03-20 15:07:44','2016-11-20 23:07:30',NULL,NULL,1,NULL),(37,29,'checkout',26,'App\\Models\\User',NULL,'Minima fugit voluptas in harum suscipit aut.',NULL,'App\\Models\\Accessory',12,NULL,NULL,'1973-05-25 22:49:02','2016-11-20 23:07:30',NULL,NULL,2,NULL),(38,40,'checkout',33,'App\\Models\\User',NULL,'Officiis non dolorem consequuntur.',NULL,'App\\Models\\Accessory',6,NULL,NULL,'2002-01-19 14:02:55','2016-11-20 23:07:30',NULL,NULL,4,NULL),(39,30,'checkout',34,'App\\Models\\User',NULL,'Quidem et deleniti temporibus aut consectetur ipsam id.',NULL,'App\\Models\\Accessory',7,NULL,NULL,'2012-03-04 15:45:00','2016-11-20 23:07:30',NULL,NULL,3,NULL),(40,30,'checkout',34,'App\\Models\\User',NULL,'Quia totam ratione aliquam animi aliquam at.',NULL,'App\\Models\\Accessory',11,NULL,NULL,'2014-07-15 00:14:16','2016-11-20 23:07:30',NULL,NULL,3,NULL),(41,30,'checkout',42,'App\\Models\\User',NULL,'Dolorem eius ipsum et omnis.',NULL,'App\\Models\\Consumable',10,NULL,NULL,'1970-04-18 03:14:14','2016-11-20 23:07:30',NULL,NULL,3,NULL),(42,43,'checkout',25,'App\\Models\\User',NULL,'Et qui veritatis tenetur.',NULL,'App\\Models\\Consumable',23,NULL,NULL,'1991-12-24 00:58:37','2016-11-20 23:07:30',NULL,NULL,1,NULL),(43,27,'checkout',27,'App\\Models\\User',NULL,'Voluptatem velit quo voluptatum illo.',NULL,'App\\Models\\Consumable',15,NULL,NULL,'1975-03-22 13:47:58','2016-11-20 23:07:30',NULL,NULL,2,NULL),(44,41,'checkout',40,'App\\Models\\User',NULL,'Nobis non sint nisi eligendi ut qui quo.',NULL,'App\\Models\\Consumable',16,NULL,NULL,'1987-05-18 08:21:45','2016-11-20 23:07:30',NULL,NULL,4,NULL),(45,44,'checkout',28,'App\\Models\\User',NULL,'Dolorum iste pariatur non molestias quo possimus aut qui.',NULL,'App\\Models\\Consumable',18,NULL,NULL,'1977-10-31 11:56:47','2016-11-20 23:07:30',NULL,NULL,1,NULL),(46,25,'checkout',24,'App\\Models\\User',NULL,'Nemo et inventore omnis ipsum et.',NULL,'App\\Models\\Consumable',2,NULL,NULL,'1972-09-01 04:51:50','2016-11-20 23:07:30',NULL,NULL,1,NULL),(47,33,'checkout',33,'App\\Models\\User',NULL,'Odio sunt beatae facere quae.',NULL,'App\\Models\\Consumable',3,NULL,NULL,'2010-07-02 14:17:15','2016-11-20 23:07:30',NULL,NULL,4,NULL),(48,27,'checkout',39,'App\\Models\\User',NULL,'Rerum eveniet dolor maiores earum.',NULL,'App\\Models\\Consumable',24,NULL,NULL,'1985-06-24 03:57:41','2016-11-20 23:07:30',NULL,NULL,2,NULL),(49,24,'checkout',25,'App\\Models\\User',NULL,'Unde delectus corporis ad provident assumenda molestias consequatur sint.',NULL,'App\\Models\\Consumable',18,NULL,NULL,'1990-10-16 14:04:14','2016-11-20 23:07:30',NULL,NULL,1,NULL),(50,41,'checkout',33,'App\\Models\\User',NULL,'Vero ea corrupti eius voluptatibus corporis iste officiis est.',NULL,'App\\Models\\Consumable',3,NULL,NULL,'1988-08-15 17:36:08','2016-11-20 23:07:30',NULL,NULL,4,NULL),(51,34,'checkout',34,'App\\Models\\User',NULL,'Et ad quaerat in commodi.',NULL,'App\\Models\\Consumable',14,NULL,NULL,'1970-04-02 22:05:18','2016-11-20 23:07:30',NULL,NULL,3,NULL),(52,27,'checkout',39,'App\\Models\\User',NULL,'Aliquam ut minus quis qui repellat placeat.',NULL,'App\\Models\\Consumable',1,NULL,NULL,'2005-06-21 04:36:35','2016-11-20 23:07:30',NULL,NULL,2,NULL),(53,27,'checkout',26,'App\\Models\\User',NULL,'Est provident dolorem est.',NULL,'App\\Models\\Consumable',24,NULL,NULL,'1998-08-11 04:12:32','2016-11-20 23:07:30',NULL,NULL,2,NULL),(54,38,'checkout',38,'App\\Models\\User',NULL,'Suscipit et corporis et impedit enim.',NULL,'App\\Models\\Consumable',9,NULL,NULL,'1973-03-25 08:34:15','2016-11-20 23:07:30',NULL,NULL,2,NULL),(55,29,'checkout',31,'App\\Models\\User',NULL,'Occaecati earum sed aspernatur ex pariatur assumenda fuga.',NULL,'App\\Models\\Consumable',17,NULL,NULL,'2006-03-24 14:39:34','2016-11-20 23:07:30',NULL,NULL,2,NULL),(56,24,'checkout',25,'App\\Models\\User',NULL,'Perspiciatis expedita voluptas iure facilis debitis sed.',NULL,'App\\Models\\Component',8,NULL,NULL,'2010-02-22 13:01:32','2016-11-20 23:07:30',NULL,NULL,1,NULL),(57,31,'checkout',27,'App\\Models\\User',NULL,'Quos enim in quidem et quia.',NULL,'App\\Models\\Component',5,NULL,NULL,'2002-01-19 19:08:11','2016-11-20 23:07:30',NULL,NULL,2,NULL),(58,35,'checkout',32,'App\\Models\\User',NULL,'Dolorem fugiat sapiente aut rem.',NULL,'App\\Models\\Component',9,NULL,NULL,'2004-02-02 02:21:13','2016-11-20 23:07:30',NULL,NULL,1,NULL),(59,40,'checkout',36,'App\\Models\\User',NULL,'Harum unde minus praesentium et.',NULL,'App\\Models\\Component',4,NULL,NULL,'1974-09-30 16:26:05','2016-11-20 23:07:30',NULL,NULL,4,NULL),(60,30,'checkout',34,'App\\Models\\User',NULL,'Et et et maxime laudantium nihil.',NULL,'App\\Models\\Component',3,NULL,NULL,'1977-09-08 05:22:06','2016-11-20 23:07:30',NULL,NULL,3,NULL),(61,35,'checkout',35,'App\\Models\\User',NULL,'Id iste id animi.',NULL,'App\\Models\\Component',9,NULL,NULL,'1971-04-06 04:16:29','2016-11-20 23:07:30',NULL,NULL,1,NULL),(62,24,'checkout',44,'App\\Models\\User',NULL,'Optio laborum sint delectus sint porro consequuntur.',NULL,'App\\Models\\Component',10,NULL,NULL,'1976-07-02 09:12:21','2016-11-20 23:07:30',NULL,NULL,1,NULL),(63,26,'checkout',26,'App\\Models\\User',NULL,'Recusandae eum porro id.',NULL,'App\\Models\\Component',5,NULL,NULL,'2016-03-06 02:09:25','2016-11-20 23:07:30',NULL,NULL,2,NULL),(64,37,'checkout',33,'App\\Models\\User',NULL,'Aut voluptas facilis reprehenderit ut consectetur.',NULL,'App\\Models\\Component',4,NULL,NULL,'1994-03-25 08:16:58','2016-11-20 23:07:30',NULL,NULL,4,NULL),(65,42,'checkout',30,'App\\Models\\User',NULL,'Mollitia et officiis iste id quis sint.',NULL,'App\\Models\\Component',3,NULL,NULL,'2001-10-12 06:59:58','2016-11-20 23:07:30',NULL,NULL,3,NULL),(66,29,'checkout',29,'App\\Models\\User',NULL,'Eos aliquid maxime et ea porro et.',NULL,'App\\Models\\Component',6,NULL,NULL,'2013-08-26 01:44:47','2016-11-20 23:07:30',NULL,NULL,2,NULL),(67,30,'checkout',42,'App\\Models\\User',NULL,'Maxime quibusdam sed fugiat ex.',NULL,'App\\Models\\Component',3,NULL,NULL,'1987-01-17 04:30:12','2016-11-20 23:07:30',NULL,NULL,3,NULL),(68,37,'checkout',41,'App\\Models\\User',NULL,'Ea et tempora magni nam sit consequatur.',NULL,'App\\Models\\Component',2,NULL,NULL,'2005-12-08 16:20:24','2016-11-20 23:07:30',NULL,NULL,4,NULL),(69,42,'checkout',34,'App\\Models\\User',NULL,'Reiciendis hic dicta labore saepe quia dolore minus.',NULL,'App\\Models\\Component',3,NULL,NULL,'1984-03-22 03:00:37','2016-11-20 23:07:30',NULL,NULL,3,NULL),(70,40,'checkout',33,'App\\Models\\User',NULL,'Consequatur dolor iste quidem rerum perspiciatis quisquam.',NULL,'App\\Models\\Component',2,NULL,NULL,'2015-09-15 22:36:44','2016-11-20 23:07:30',NULL,NULL,4,NULL),(71,41,'checkout',41,'App\\Models\\Asset',NULL,'Mollitia nulla incidunt autem non veritatis culpa ipsum.',NULL,'App\\Models\\License',7,NULL,NULL,'1974-07-30 00:54:19','2016-11-20 23:07:30',NULL,NULL,4,NULL),(72,41,'checkout',47,'App\\Models\\Asset',NULL,'Eos aut reiciendis eaque quam.',NULL,'App\\Models\\License',7,NULL,NULL,'1985-08-02 17:10:38','2016-11-20 23:07:30',NULL,NULL,4,NULL),(73,33,'checkout',1,'App\\Models\\Asset',NULL,'Quas nobis culpa nihil at.',NULL,'App\\Models\\License',4,NULL,NULL,'1999-11-08 18:13:14','2016-11-20 23:07:30',NULL,NULL,4,NULL),(74,30,'checkout',42,'App\\Models\\Asset',NULL,'Est quis quo ipsa vel repudiandae.',NULL,'App\\Models\\License',1,NULL,NULL,'2016-11-03 21:47:29','2016-11-20 23:07:30',NULL,NULL,3,NULL),(75,37,'checkout',68,'App\\Models\\Asset',NULL,'Nihil ut eos omnis est consequatur eum.',NULL,'App\\Models\\License',7,NULL,NULL,'1971-06-15 04:38:12','2016-11-20 23:07:30',NULL,NULL,4,NULL),(76,27,'checkout',100,'App\\Models\\Asset',NULL,'Quod perferendis aliquid temporibus ut aut.',NULL,'App\\Models\\License',3,NULL,NULL,'1974-12-18 16:59:54','2016-11-20 23:07:30',NULL,NULL,2,NULL),(77,42,'checkout',96,'App\\Models\\Asset',NULL,'Et aspernatur provident excepturi.',NULL,'App\\Models\\License',1,NULL,NULL,'1975-08-09 17:31:54','2016-11-20 23:07:30',NULL,NULL,3,NULL),(78,40,'checkout',38,'App\\Models\\Asset',NULL,'Quia et quasi sint perspiciatis voluptate fugit.',NULL,'App\\Models\\License',7,NULL,NULL,'1976-07-21 10:51:54','2016-11-20 23:07:30',NULL,NULL,4,NULL),(79,35,'checkout',98,'App\\Models\\Asset',NULL,'Laborum est eos porro nihil in.',NULL,'App\\Models\\License',5,NULL,NULL,'2011-02-04 03:40:05','2016-11-20 23:07:30',NULL,NULL,1,NULL),(80,30,'checkout',92,'App\\Models\\Asset',NULL,'Architecto enim officiis accusamus asperiores dolorem sequi.',NULL,'App\\Models\\License',1,NULL,NULL,'2002-05-25 16:02:39','2016-11-20 23:07:30',NULL,NULL,3,NULL),(81,42,'checkout',92,'App\\Models\\Asset',NULL,'Adipisci cum totam nostrum dolorem aut velit.',NULL,'App\\Models\\License',1,NULL,NULL,'2003-04-11 12:01:28','2016-11-20 23:07:30',NULL,NULL,3,NULL),(82,38,'checkout',6,'App\\Models\\Asset',NULL,'Repudiandae sit qui est aut est.',NULL,'App\\Models\\License',10,NULL,NULL,'1997-03-20 06:55:10','2016-11-20 23:07:30',NULL,NULL,2,NULL),(83,42,'checkout',31,'App\\Models\\Asset',NULL,'Voluptates quia temporibus aut quia sequi.',NULL,'App\\Models\\License',1,NULL,NULL,'1979-07-30 22:23:20','2016-11-20 23:07:30',NULL,NULL,3,NULL),(84,26,'checkout',37,'App\\Models\\Asset',NULL,'Sit ut expedita quo aperiam iure.',NULL,'App\\Models\\License',6,NULL,NULL,'1976-03-26 22:44:34','2016-11-20 23:07:30',NULL,NULL,2,NULL),(85,37,'checkout',8,'App\\Models\\Asset',NULL,'Quo nihil non voluptatem omnis omnis ut et.',NULL,'App\\Models\\License',8,NULL,NULL,'2004-06-22 07:53:01','2016-11-20 23:07:30',NULL,NULL,4,NULL),(86,1,'created',NULL,NULL,NULL,NULL,NULL,'App\\Models\\Accessory',16,NULL,NULL,'2016-11-21 00:33:26','2016-11-21 00:33:26',NULL,NULL,4,NULL),(87,1,'created',NULL,NULL,NULL,NULL,NULL,'App\\Models\\Asset',101,NULL,NULL,'2016-11-21 00:33:30','2016-11-21 00:33:30',NULL,NULL,2,NULL),(88,1,'checkout',20,'App\\Models\\User',NULL,'Checked out on asset creation',NULL,'App\\Models\\Asset',101,NULL,NULL,'2016-11-21 00:33:30','2016-11-21 00:33:30',NULL,NULL,NULL,NULL),(89,1,'created',NULL,NULL,NULL,NULL,NULL,'App\\Models\\Component',11,NULL,NULL,'2016-11-21 00:33:36','2016-11-21 00:33:36',NULL,NULL,2,NULL),(90,1,'created',NULL,NULL,NULL,NULL,NULL,'App\\Models\\Consumable',26,NULL,NULL,'2016-11-21 00:33:39','2016-11-21 00:33:39',NULL,NULL,2,NULL),(91,1,'created',NULL,NULL,NULL,NULL,NULL,'App\\Models\\License',11,NULL,NULL,'2016-11-21 00:33:46','2016-11-21 00:33:46',NULL,NULL,4,NULL); +INSERT INTO `action_logs` VALUES (1,24,'checkout',24,'App\\Models\\User',NULL,'Vel vel commodi optio.',NULL,'App\\Models\\Asset',73,NULL,NULL,'1995-05-10 01:17:29','2016-12-19 21:50:33',NULL,NULL,6,NULL),(2,27,'checkout',27,'App\\Models\\User',NULL,'Porro sapiente impedit accusamus nemo eum.',NULL,'App\\Models\\Asset',91,NULL,NULL,'1975-11-15 05:12:56','2016-12-19 21:50:33',NULL,NULL,9,NULL),(3,26,'checkout',26,'App\\Models\\User',NULL,'Nobis voluptas voluptate rem velit.',NULL,'App\\Models\\Asset',72,NULL,NULL,'2010-04-08 09:14:12','2016-12-19 21:50:33',NULL,NULL,8,NULL),(4,23,'checkout',23,'App\\Models\\User',NULL,'Est alias non vitae cum sequi eveniet inventore.',NULL,'App\\Models\\Asset',48,NULL,NULL,'1988-04-25 12:07:21','2016-12-19 21:50:33',NULL,NULL,5,NULL),(5,31,'checkout',31,'App\\Models\\User',NULL,'Incidunt architecto consequatur excepturi impedit.',NULL,'App\\Models\\Asset',37,NULL,NULL,'1983-03-30 03:15:07','2016-12-19 21:50:33',NULL,NULL,13,NULL),(6,25,'checkout',25,'App\\Models\\User',NULL,'Dicta enim sed inventore deserunt maxime.',NULL,'App\\Models\\Asset',69,NULL,NULL,'1970-02-05 04:54:45','2016-12-19 21:50:33',NULL,NULL,7,NULL),(7,25,'checkout',25,'App\\Models\\User',NULL,'Voluptatem quod dolor possimus laudantium sunt.',NULL,'App\\Models\\Asset',69,NULL,NULL,'2012-11-07 14:29:14','2016-12-19 21:50:33',NULL,NULL,7,NULL),(8,26,'checkout',26,'App\\Models\\User',NULL,'Id molestiae illum odit ut beatae alias cupiditate.',NULL,'App\\Models\\Asset',17,NULL,NULL,'2000-03-14 21:08:49','2016-12-19 21:50:33',NULL,NULL,8,NULL),(9,30,'checkout',30,'App\\Models\\User',NULL,'Et corporis voluptates consectetur sunt.',NULL,'App\\Models\\Asset',68,NULL,NULL,'1972-07-24 22:55:24','2016-12-19 21:50:33',NULL,NULL,12,NULL),(10,24,'checkout',24,'App\\Models\\User',NULL,'Explicabo et alias hic sed itaque nobis.',NULL,'App\\Models\\Asset',30,NULL,NULL,'2016-01-09 03:44:45','2016-12-19 21:50:33',NULL,NULL,6,NULL),(11,31,'checkout',31,'App\\Models\\User',NULL,'Molestias enim velit aliquam similique fugiat error voluptatem.',NULL,'App\\Models\\Asset',87,NULL,NULL,'2015-11-08 07:26:48','2016-12-19 21:50:33',NULL,NULL,13,NULL),(12,31,'checkout',31,'App\\Models\\User',NULL,'Et illo saepe et fugiat est.',NULL,'App\\Models\\Asset',9,NULL,NULL,'2001-10-10 05:22:36','2016-12-19 21:50:33',NULL,NULL,13,NULL),(13,27,'checkout',27,'App\\Models\\User',NULL,'Et est exercitationem itaque id.',NULL,'App\\Models\\Asset',63,NULL,NULL,'1994-05-10 00:38:33','2016-12-19 21:50:33',NULL,NULL,9,NULL),(14,31,'checkout',31,'App\\Models\\User',NULL,'Consequatur tenetur voluptate voluptatem ducimus.',NULL,'App\\Models\\Asset',87,NULL,NULL,'2014-09-28 04:11:04','2016-12-19 21:50:33',NULL,NULL,13,NULL),(15,23,'checkout',23,'App\\Models\\User',NULL,'Est esse maiores expedita qui dolorum.',NULL,'App\\Models\\Asset',35,NULL,NULL,'1993-11-26 19:17:32','2016-12-19 21:50:33',NULL,NULL,5,NULL),(16,27,'checkout',27,'App\\Models\\User',NULL,'Quae sit dolor optio quis et sit dolores eaque.',NULL,'App\\Models\\Asset',63,NULL,NULL,'1975-02-20 03:56:26','2016-12-19 21:50:33',NULL,NULL,9,NULL),(17,25,'checkout',25,'App\\Models\\User',NULL,'Iste culpa et harum est.',NULL,'App\\Models\\Asset',47,NULL,NULL,'2007-03-29 18:02:31','2016-12-19 21:50:33',NULL,NULL,7,NULL),(18,25,'checkout',25,'App\\Models\\User',NULL,'Et et doloribus rerum perspiciatis nihil.',NULL,'App\\Models\\Asset',47,NULL,NULL,'2008-07-06 13:46:10','2016-12-19 21:50:33',NULL,NULL,7,NULL),(19,28,'checkout',28,'App\\Models\\User',NULL,'Aut fuga magnam excepturi omnis.',NULL,'App\\Models\\Asset',54,NULL,NULL,'2005-12-20 04:13:13','2016-12-19 21:50:33',NULL,NULL,10,NULL),(20,31,'checkout',31,'App\\Models\\User',NULL,'Vel porro voluptatem maiores quod.',NULL,'App\\Models\\Asset',37,NULL,NULL,'1986-05-04 02:57:58','2016-12-19 21:50:33',NULL,NULL,13,NULL),(21,30,'checkout',30,'App\\Models\\User',NULL,'Nulla reiciendis temporibus ab repudiandae magni dolores.',NULL,'App\\Models\\Asset',1,NULL,NULL,'2015-06-15 02:40:58','2016-12-19 21:50:33',NULL,NULL,12,NULL),(22,30,'checkout',30,'App\\Models\\User',NULL,'Dolores unde temporibus magni dolorum voluptas enim.',NULL,'App\\Models\\Asset',1,NULL,NULL,'1978-09-20 04:58:31','2016-12-19 21:50:33',NULL,NULL,12,NULL),(23,30,'checkout',30,'App\\Models\\User',NULL,'Sed quia natus dolores vel ducimus ut beatae qui.',NULL,'App\\Models\\Asset',68,NULL,NULL,'1986-01-13 08:51:15','2016-12-19 21:50:33',NULL,NULL,12,NULL),(24,23,'checkout',23,'App\\Models\\User',NULL,'Delectus fugiat exercitationem est totam.',NULL,'App\\Models\\Asset',81,NULL,NULL,'2011-03-07 09:37:29','2016-12-19 21:50:33',NULL,NULL,5,NULL),(25,32,'checkout',32,'App\\Models\\User',NULL,'Et architecto suscipit nesciunt et voluptatem veritatis.',NULL,'App\\Models\\Asset',86,NULL,NULL,'1974-06-10 05:56:36','2016-12-19 21:50:33',NULL,NULL,14,NULL),(26,30,'checkout',30,'App\\Models\\User',NULL,'Tempora rem nisi cumque dicta sunt.',NULL,'App\\Models\\Accessory',7,NULL,NULL,'1974-10-15 03:43:14','2016-12-19 21:50:33',NULL,NULL,12,NULL),(27,24,'checkout',24,'App\\Models\\User',NULL,'Impedit laboriosam neque voluptas vel quia sequi aspernatur.',NULL,'App\\Models\\Accessory',6,NULL,NULL,'2014-08-27 16:35:28','2016-12-19 21:50:33',NULL,NULL,6,NULL),(28,26,'checkout',26,'App\\Models\\User',NULL,'Ut ea omnis repellat qui dicta consequuntur non.',NULL,'App\\Models\\Accessory',13,NULL,NULL,'1981-04-30 14:57:50','2016-12-19 21:50:33',NULL,NULL,8,NULL),(29,32,'checkout',32,'App\\Models\\User',NULL,'Ullam assumenda dolores veniam in sequi id voluptas possimus.',NULL,'App\\Models\\Accessory',14,NULL,NULL,'2008-06-03 04:54:41','2016-12-19 21:50:33',NULL,NULL,14,NULL),(30,25,'checkout',25,'App\\Models\\User',NULL,'Ea et repellendus fugiat aperiam sit ea repudiandae.',NULL,'App\\Models\\Accessory',12,NULL,NULL,'2004-08-11 00:47:29','2016-12-19 21:50:33',NULL,NULL,7,NULL),(31,24,'checkout',24,'App\\Models\\User',NULL,'Velit ad excepturi aut beatae.',NULL,'App\\Models\\Accessory',6,NULL,NULL,'1998-06-23 20:01:36','2016-12-19 21:50:33',NULL,NULL,6,NULL),(32,25,'checkout',25,'App\\Models\\User',NULL,'Quis nisi consequatur laudantium et.',NULL,'App\\Models\\Accessory',12,NULL,NULL,'1980-07-26 06:18:01','2016-12-19 21:50:33',NULL,NULL,7,NULL),(33,26,'checkout',26,'App\\Models\\User',NULL,'Omnis quia minima ipsum.',NULL,'App\\Models\\Accessory',13,NULL,NULL,'1986-03-17 11:20:43','2016-12-19 21:50:33',NULL,NULL,8,NULL),(34,24,'checkout',24,'App\\Models\\User',NULL,'Id sunt et praesentium eligendi voluptates vel ut.',NULL,'App\\Models\\Accessory',6,NULL,NULL,'1971-06-04 14:41:28','2016-12-19 21:50:33',NULL,NULL,6,NULL),(35,28,'checkout',28,'App\\Models\\User',NULL,'Sint libero odio non veniam commodi.',NULL,'App\\Models\\Accessory',4,NULL,NULL,'2007-07-02 12:21:13','2016-12-19 21:50:33',NULL,NULL,10,NULL),(36,26,'checkout',26,'App\\Models\\User',NULL,'Quibusdam officiis cupiditate velit iure eos ut.',NULL,'App\\Models\\Accessory',13,NULL,NULL,'2007-06-30 02:35:23','2016-12-19 21:50:33',NULL,NULL,8,NULL),(37,32,'checkout',32,'App\\Models\\User',NULL,'Consequuntur accusamus cum quo sunt repudiandae fugiat.',NULL,'App\\Models\\Accessory',15,NULL,NULL,'1973-06-05 18:46:12','2016-12-19 21:50:33',NULL,NULL,14,NULL),(38,27,'checkout',27,'App\\Models\\User',NULL,'Temporibus et sapiente quaerat ea ut animi et iure.',NULL,'App\\Models\\Accessory',8,NULL,NULL,'1990-03-07 22:36:15','2016-12-19 21:50:33',NULL,NULL,9,NULL),(39,24,'checkout',24,'App\\Models\\User',NULL,'Veniam eligendi accusamus officiis non.',NULL,'App\\Models\\Accessory',6,NULL,NULL,'1982-10-23 03:19:36','2016-12-19 21:50:33',NULL,NULL,6,NULL),(40,27,'checkout',27,'App\\Models\\User',NULL,'Qui non vel eaque.',NULL,'App\\Models\\Accessory',8,NULL,NULL,'1978-11-18 21:01:26','2016-12-19 21:50:33',NULL,NULL,9,NULL),(41,24,'checkout',24,'App\\Models\\User',NULL,'Illo qui earum ut maxime commodi ullam.',NULL,'App\\Models\\Consumable',17,NULL,NULL,'1994-11-09 00:38:45','2016-12-19 21:50:33',NULL,NULL,6,NULL),(42,25,'checkout',25,'App\\Models\\User',NULL,'Omnis veniam mollitia doloribus laborum consequuntur voluptatibus.',NULL,'App\\Models\\Consumable',10,NULL,NULL,'1985-06-20 18:36:29','2016-12-19 21:50:33',NULL,NULL,7,NULL),(43,26,'checkout',26,'App\\Models\\User',NULL,'Expedita consectetur eum adipisci.',NULL,'App\\Models\\Consumable',21,NULL,NULL,'1975-12-15 03:41:45','2016-12-19 21:50:33',NULL,NULL,8,NULL),(44,32,'checkout',32,'App\\Models\\User',NULL,'Repellendus tempore et magnam consequuntur ut saepe ipsa explicabo.',NULL,'App\\Models\\Consumable',11,NULL,NULL,'2005-08-11 15:44:56','2016-12-19 21:50:33',NULL,NULL,14,NULL),(45,25,'checkout',25,'App\\Models\\User',NULL,'Excepturi in et eum corporis earum sit.',NULL,'App\\Models\\Consumable',10,NULL,NULL,'1998-06-09 10:14:09','2016-12-19 21:50:33',NULL,NULL,7,NULL),(46,24,'checkout',24,'App\\Models\\User',NULL,'Dolor voluptatum officiis non et.',NULL,'App\\Models\\Consumable',17,NULL,NULL,'1988-12-14 06:06:08','2016-12-19 21:50:33',NULL,NULL,6,NULL),(47,23,'checkout',23,'App\\Models\\User',NULL,'Vel eveniet et dolorem incidunt corporis.',NULL,'App\\Models\\Consumable',14,NULL,NULL,'1983-03-27 19:44:57','2016-12-19 21:50:33',NULL,NULL,5,NULL),(48,24,'checkout',24,'App\\Models\\User',NULL,'Doloremque consequatur eveniet ratione sint.',NULL,'App\\Models\\Consumable',17,NULL,NULL,'1984-12-25 02:37:48','2016-12-19 21:50:33',NULL,NULL,6,NULL),(49,28,'checkout',28,'App\\Models\\User',NULL,'Facilis dicta voluptas molestiae aspernatur.',NULL,'App\\Models\\Consumable',20,NULL,NULL,'1993-11-04 18:16:37','2016-12-19 21:50:33',NULL,NULL,10,NULL),(50,31,'checkout',31,'App\\Models\\User',NULL,'Recusandae sed nemo aspernatur quas dolores earum ab ut.',NULL,'App\\Models\\Consumable',13,NULL,NULL,'1981-09-20 00:52:40','2016-12-19 21:50:33',NULL,NULL,13,NULL),(51,27,'checkout',27,'App\\Models\\User',NULL,'Et non libero ut ipsam repellendus rerum.',NULL,'App\\Models\\Consumable',22,NULL,NULL,'1972-10-05 10:05:57','2016-12-19 21:50:33',NULL,NULL,9,NULL),(52,28,'checkout',28,'App\\Models\\User',NULL,'Nobis porro sit aut non nihil.',NULL,'App\\Models\\Consumable',20,NULL,NULL,'1995-10-22 21:04:16','2016-12-19 21:50:33',NULL,NULL,10,NULL),(53,28,'checkout',28,'App\\Models\\User',NULL,'Esse consequatur totam est sit.',NULL,'App\\Models\\Consumable',20,NULL,NULL,'1996-02-04 19:03:51','2016-12-19 21:50:33',NULL,NULL,10,NULL),(54,29,'checkout',29,'App\\Models\\User',NULL,'Esse aut et laborum illum accusamus.',NULL,'App\\Models\\Consumable',5,NULL,NULL,'1984-10-03 10:34:17','2016-12-19 21:50:33',NULL,NULL,11,NULL),(55,24,'checkout',24,'App\\Models\\User',NULL,'Saepe et sed ducimus veniam maiores et.',NULL,'App\\Models\\Consumable',18,NULL,NULL,'1985-09-08 07:51:31','2016-12-19 21:50:33',NULL,NULL,6,NULL),(56,30,'checkout',30,'App\\Models\\User',NULL,'Tenetur vel et et ab sequi qui molestias ut.',NULL,'App\\Models\\Component',8,NULL,NULL,'2004-02-05 06:50:03','2016-12-19 21:50:33',NULL,NULL,12,NULL),(57,31,'checkout',31,'App\\Models\\User',NULL,'Quia repellendus rerum voluptatum ipsum.',NULL,'App\\Models\\Component',6,NULL,NULL,'1987-12-04 11:47:41','2016-12-19 21:50:33',NULL,NULL,13,NULL),(58,32,'checkout',32,'App\\Models\\User',NULL,'Velit repudiandae aut laboriosam voluptatibus repellendus cum.',NULL,'App\\Models\\Component',1,NULL,NULL,'2000-07-07 13:44:09','2016-12-19 21:50:33',NULL,NULL,14,NULL),(59,24,'checkout',24,'App\\Models\\User',NULL,'Reprehenderit cum consequuntur consequatur repellendus.',NULL,'App\\Models\\Component',7,NULL,NULL,'1991-03-10 23:23:04','2016-12-19 21:50:33',NULL,NULL,6,NULL),(60,24,'checkout',24,'App\\Models\\User',NULL,'Consequatur ut qui animi asperiores.',NULL,'App\\Models\\Component',7,NULL,NULL,'2005-03-12 14:09:19','2016-12-19 21:50:33',NULL,NULL,6,NULL),(61,31,'checkout',31,'App\\Models\\User',NULL,'Unde laboriosam aut in.',NULL,'App\\Models\\Component',6,NULL,NULL,'1984-04-14 18:22:36','2016-12-19 21:50:33',NULL,NULL,13,NULL),(62,32,'checkout',32,'App\\Models\\User',NULL,'Culpa est corrupti totam quia illum maiores.',NULL,'App\\Models\\Component',1,NULL,NULL,'1972-02-27 23:08:45','2016-12-19 21:50:33',NULL,NULL,14,NULL),(63,24,'checkout',24,'App\\Models\\User',NULL,'Officiis nulla ex quas vero quo necessitatibus dolores.',NULL,'App\\Models\\Component',7,NULL,NULL,'1989-10-18 17:45:26','2016-12-19 21:50:33',NULL,NULL,6,NULL),(64,29,'checkout',29,'App\\Models\\User',NULL,'Non aut voluptatem impedit cumque quia a.',NULL,'App\\Models\\Component',10,NULL,NULL,'1970-03-18 02:34:24','2016-12-19 21:50:33',NULL,NULL,11,NULL),(65,30,'checkout',30,'App\\Models\\User',NULL,'Voluptatem porro omnis officiis eius suscipit.',NULL,'App\\Models\\Component',4,NULL,NULL,'1979-02-25 12:15:40','2016-12-19 21:50:33',NULL,NULL,12,NULL),(66,29,'checkout',29,'App\\Models\\User',NULL,'Et dignissimos aperiam quod quis architecto sed.',NULL,'App\\Models\\Component',10,NULL,NULL,'1974-05-16 12:29:54','2016-12-19 21:50:33',NULL,NULL,11,NULL),(67,24,'checkout',24,'App\\Models\\User',NULL,'Molestiae nemo quidem odio culpa aut ut.',NULL,'App\\Models\\Component',7,NULL,NULL,'2011-11-28 06:56:33','2016-12-19 21:50:33',NULL,NULL,6,NULL),(68,29,'checkout',29,'App\\Models\\User',NULL,'Quia libero minus aliquid porro soluta.',NULL,'App\\Models\\Component',10,NULL,NULL,'2015-08-18 17:31:40','2016-12-19 21:50:33',NULL,NULL,11,NULL),(69,29,'checkout',29,'App\\Models\\User',NULL,'Occaecati animi deserunt est quaerat nam ut aliquam.',NULL,'App\\Models\\Component',10,NULL,NULL,'1989-05-18 06:08:46','2016-12-19 21:50:33',NULL,NULL,11,NULL),(70,32,'checkout',32,'App\\Models\\User',NULL,'Ut expedita cumque culpa blanditiis quia.',NULL,'App\\Models\\Component',1,NULL,NULL,'1981-12-16 17:31:14','2016-12-19 21:50:33',NULL,NULL,14,NULL),(71,31,'checkout',87,'App\\Models\\Asset',NULL,'Ut animi earum delectus aperiam.',NULL,'App\\Models\\License',3,NULL,NULL,'1989-02-13 12:10:30','2016-12-19 21:50:33',NULL,NULL,13,NULL),(72,24,'checkout',34,'App\\Models\\Asset',NULL,'In maxime nam asperiores qui magnam.',NULL,'App\\Models\\License',7,NULL,NULL,'2007-06-29 01:57:24','2016-12-19 21:50:33',NULL,NULL,6,NULL),(73,24,'checkout',30,'App\\Models\\Asset',NULL,'Esse consequuntur numquam ipsam soluta eveniet porro.',NULL,'App\\Models\\License',7,NULL,NULL,'1975-01-20 12:21:57','2016-12-19 21:50:33',NULL,NULL,6,NULL),(74,24,'checkout',25,'App\\Models\\Asset',NULL,'Quis alias qui sed ad sunt cum ea.',NULL,'App\\Models\\License',7,NULL,NULL,'2016-03-06 03:19:52','2016-12-19 21:50:33',NULL,NULL,6,NULL),(75,32,'checkout',88,'App\\Models\\Asset',NULL,'Ipsam sit qui explicabo dolor neque rerum in.',NULL,'App\\Models\\License',6,NULL,NULL,'2015-04-07 18:35:31','2016-12-19 21:50:33',NULL,NULL,14,NULL),(76,32,'checkout',31,'App\\Models\\Asset',NULL,'Eum vero voluptas eveniet vel nihil.',NULL,'App\\Models\\License',6,NULL,NULL,'1971-04-10 08:02:47','2016-12-19 21:50:33',NULL,NULL,14,NULL),(77,25,'checkout',12,'App\\Models\\Asset',NULL,'Labore quidem consequuntur quidem ipsa nulla eaque cum.',NULL,'App\\Models\\License',5,NULL,NULL,'1980-12-04 22:01:56','2016-12-19 21:50:33',NULL,NULL,7,NULL),(78,23,'checkout',24,'App\\Models\\Asset',NULL,'Incidunt eligendi nisi quod fuga.',NULL,'App\\Models\\License',9,NULL,NULL,'1998-11-15 03:15:00','2016-12-19 21:50:33',NULL,NULL,5,NULL),(79,31,'checkout',70,'App\\Models\\Asset',NULL,'Provident architecto est quasi voluptatibus placeat.',NULL,'App\\Models\\License',3,NULL,NULL,'1988-08-31 21:01:43','2016-12-19 21:50:33',NULL,NULL,13,NULL),(80,31,'checkout',70,'App\\Models\\Asset',NULL,'Occaecati sed magnam omnis quos corporis sed quis.',NULL,'App\\Models\\License',3,NULL,NULL,'2011-06-09 04:25:21','2016-12-19 21:50:33',NULL,NULL,13,NULL),(81,31,'checkout',70,'App\\Models\\Asset',NULL,'Omnis est architecto esse totam itaque quia.',NULL,'App\\Models\\License',3,NULL,NULL,'1982-07-20 06:59:37','2016-12-19 21:50:33',NULL,NULL,13,NULL),(82,24,'checkout',84,'App\\Models\\Asset',NULL,'Ut placeat magni similique dolor qui et sit pariatur.',NULL,'App\\Models\\License',7,NULL,NULL,'2006-04-20 06:44:28','2016-12-19 21:50:33',NULL,NULL,6,NULL),(83,26,'checkout',62,'App\\Models\\Asset',NULL,'Sint ab et et hic tempora ut omnis.',NULL,'App\\Models\\License',2,NULL,NULL,'1988-04-09 22:43:53','2016-12-19 21:50:33',NULL,NULL,8,NULL),(84,25,'checkout',47,'App\\Models\\Asset',NULL,'Ipsam quibusdam debitis dignissimos est optio et explicabo culpa.',NULL,'App\\Models\\License',5,NULL,NULL,'2000-08-06 04:38:43','2016-12-19 21:50:33',NULL,NULL,7,NULL),(85,32,'checkout',79,'App\\Models\\Asset',NULL,'Veniam tempora rerum vero dolorum.',NULL,'App\\Models\\License',6,NULL,NULL,'1975-05-03 23:05:42','2016-12-19 21:50:33',NULL,NULL,14,NULL); /*!40000 ALTER TABLE `action_logs` ENABLE KEYS */; UNLOCK TABLES; @@ -264,7 +264,7 @@ CREATE TABLE `assets` ( `expected_checkin` date DEFAULT NULL, `company_id` int(10) unsigned DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=102 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -273,7 +273,7 @@ CREATE TABLE `assets` ( LOCK TABLES `assets` WRITE; /*!40000 ALTER TABLE `assets` DISABLE KEYS */; -INSERT INTO `assets` VALUES (1,'Sharable contextually-based function','310455216',4,'de8ec8cb-387d-3861-accf-031a26b6da4b','1989-11-14',NULL,'3452948',NULL,'Error quas error libero suscipit qui hic non.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,4,0,1,NULL,NULL,NULL,NULL,4),(2,'Digitized didactic capacity','842399003',5,'c579659e-e6df-3f21-8b32-f2e5e60cb960','1975-02-19',NULL,'5783754',NULL,'Quibusdam consectetur sunt perspiciatis error.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,4,1,4,NULL,NULL,NULL,NULL,3),(3,'Enhanced executive groupware','990185629',1,'8e09a1b5-ecf1-3ea0-b045-f51fb5631fb8','1971-07-19',NULL,'24388545',NULL,'Doloremque labore quos excepturi est accusamus at cumque a.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,2,0,3,NULL,NULL,NULL,NULL,1),(4,'Customer-focused intangible complexity','546752914',4,'82ea2c28-c182-3c5d-b370-4c8c66b96d02','2000-11-27',NULL,'34470480',NULL,'Assumenda consequatur dolores quo commodi.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,4,1,4,NULL,NULL,NULL,NULL,3),(5,'Configurable client-driven support','212535141',1,'5efd5c23-b151-3a8b-87e3-4d3479571ba4','1988-09-22',NULL,'3328283',NULL,'Ad est quidem aliquam quae voluptatem nam.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,2,1,5,NULL,NULL,NULL,NULL,2),(6,'User-centric static toolset','411277269',5,'e82002a4-450c-3ff2-9568-71e7e5b67b36','1972-05-18',NULL,'3971980',NULL,'Ducimus quasi sed quis eius unde.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,5,0,3,NULL,NULL,NULL,NULL,2),(7,'Virtual neutral monitoring','1172159860',4,'0a7a05c7-8b7b-3896-aa26-418dbc5f56ef','1985-11-20',NULL,'10377281',NULL,'Necessitatibus est et nam doloremque impedit enim libero qui.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,2,1,5,NULL,NULL,NULL,NULL,1),(8,'Monitored mission-critical time-frame','298965372',2,'7c5cd287-32b1-30f5-979d-d50b24411c35','2000-01-03',NULL,'25514597',NULL,'Aut harum dignissimos quia officia ipsum qui corporis laudantium.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,5,1,2,NULL,NULL,NULL,NULL,4),(9,'Upgradable background structure','1040526590',4,'0c973af0-7192-39af-8d15-61df89c44516','2007-09-13',NULL,'3935957',NULL,'Distinctio quia quod adipisci sunt.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,4,1,2,NULL,NULL,NULL,NULL,2),(10,'Facetoface holistic task-force','820364496',3,'85e0b99c-9e20-3fa4-8fbc-b03c947496cf','1992-05-08',NULL,'40804751',NULL,'Quo velit fuga occaecati quia.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,4,0,5,NULL,NULL,NULL,NULL,2),(11,'Team-oriented holistic service-desk','993520225',1,'e6641a5d-34d5-318e-b4e0-a6c56c460194','1978-10-13',NULL,'8692167',NULL,'Eum et voluptate omnis.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,4,0,2,NULL,NULL,NULL,NULL,3),(12,'Configurable heuristic capability','925029102',5,'5bc69980-51fa-35bf-8dd4-18397ca99282','1998-02-05',NULL,'31551001',NULL,'Praesentium et autem quis minima neque enim enim.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,3,0,2,NULL,NULL,NULL,NULL,4),(13,'Expanded systemic forecast','1194379470',1,'52cbe397-fdcf-3502-9d05-fcb291bbc7a9','1976-09-12',NULL,'33902721',NULL,'Suscipit excepturi magni voluptatem dolores veniam est.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,3,0,5,NULL,NULL,NULL,NULL,1),(14,'Robust demand-driven knowledgeuser','614105786',1,'8d38ebeb-ae28-37f5-817f-ca9ee939c6ec','1985-09-19',NULL,'24172772',NULL,'Saepe dolorem atque atque quia debitis incidunt delectus.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,1,0,4,NULL,NULL,NULL,NULL,1),(15,'Synergistic systemic circuit','1346537212',4,'46051bf4-eb05-35f2-b1a2-9cdf7101360f','2015-03-14',NULL,'3419670',NULL,'Doloribus rerum sint itaque cumque.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,2,1,2,NULL,NULL,NULL,NULL,1),(16,'Switchable grid-enabled frame','806381735',1,'b33dde10-66f9-31fd-b21f-5b8d33e5b181','1971-03-16',NULL,'23911374',NULL,'Cumque quis qui voluptas possimus.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,1,0,1,NULL,NULL,NULL,NULL,3),(17,'Reactive optimal budgetarymanagement','577709240',2,'8f09492b-26d5-3bc5-92df-0c6a7086f121','2011-02-26',NULL,'7513540',NULL,'Sit ullam provident aut.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,3,1,4,NULL,NULL,NULL,NULL,3),(18,'Total zerodefect capacity','234586180',5,'b34cf5bd-2e33-3860-a8d6-4f95d356d59b','1988-12-17',NULL,'38996992',NULL,'Impedit rerum voluptas ea dolor id consequatur.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,5,0,4,NULL,NULL,NULL,NULL,3),(19,'Open-source bandwidth-monitored capacity','1449709770',4,'37fd77d0-d26c-3063-8922-e8f7176cd1b2','2012-12-12',NULL,'39149042',NULL,'Et inventore corrupti non dicta.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,2,1,2,NULL,NULL,NULL,NULL,2),(20,'Polarised didactic data-warehouse','48615263',1,'e67c3282-f525-3ddd-a264-4122a290c88b','1974-07-15',NULL,'21663155',NULL,'Est et est modi ut.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,5,1,3,NULL,NULL,NULL,NULL,3),(21,'Exclusive grid-enabled projection','878641912',1,'ef92eb6e-43b7-32a4-8fdb-2ef94c378371','2002-04-30',NULL,'21516797',NULL,'Quam illum sunt rem neque nam vel ratione.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,2,1,1,NULL,NULL,NULL,NULL,2),(22,'Right-sized eco-centric forecast','571667321',4,'3910e3d7-3c50-3fe7-bb41-675257c4540b','1970-09-22',NULL,'45627107',NULL,'Ut autem et velit ea vitae voluptatem.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,2,1,4,NULL,NULL,NULL,NULL,4),(23,'Managed optimizing info-mediaries','284186616',3,'7bbb0f48-e09f-341d-8c4e-745fc7fc40ab','1990-07-14',NULL,'43121262',NULL,'Perferendis dolor nihil quidem suscipit quam aut repudiandae est.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,3,1,2,NULL,NULL,NULL,NULL,2),(24,'Polarised reciprocal interface','83082897',4,'b05a187b-f59a-3c13-b212-31e8f0c2c11b','1971-08-29',NULL,'35002634',NULL,'Sunt error ducimus enim sunt et.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,4,1,2,NULL,NULL,NULL,NULL,1),(25,'Organic impactful model','1360793242',5,'2f03fe66-48bd-3f7e-b562-7857d61d7b02','1997-07-07',NULL,'6053575',NULL,'Architecto fugiat et porro.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,1,1,1,NULL,NULL,NULL,NULL,2),(26,'Compatible optimal groupware','488026256',4,'170e05ab-0a46-338f-9777-5f869ee3e73e','1992-07-27',NULL,'46455897',NULL,'At magni iusto quidem qui laudantium ducimus quos laudantium.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,2,1,5,NULL,NULL,NULL,NULL,1),(27,'Exclusive fault-tolerant collaboration','283373007',1,'54220f06-df0a-39b9-9cce-7d2618b52027','1978-12-11',NULL,'17354785',NULL,'Atque praesentium aut voluptatem.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,1,0,1,NULL,NULL,NULL,NULL,4),(28,'Grass-roots human-resource monitoring','1358583588',2,'14a2bb09-5c86-3580-a9f7-f957c029cdd4','2013-09-23',NULL,'41513341',NULL,'Et architecto qui a aperiam ipsam aspernatur neque aut.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,1,0,1,NULL,NULL,NULL,NULL,4),(29,'Adaptive mobile methodology','1078959508',5,'deb6de18-d353-3028-abb5-b85c53e572b3','1986-10-11',NULL,'30129295',NULL,'Consequatur iste temporibus possimus distinctio nobis tempore.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,3,0,1,NULL,NULL,NULL,NULL,1),(30,'Multi-layered asynchronous info-mediaries','500823859',4,'b9e52b26-6654-3ec5-8114-052da7e81e68','2003-12-28',NULL,'31894531',NULL,'Quisquam aut voluptate aliquam aut vel voluptate odit blanditiis.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,3,1,1,NULL,NULL,NULL,NULL,4),(31,'Reverse-engineered disintermediate artificialintelligence','127910469',4,'b803e358-430d-383d-869c-df491742aeab','1985-05-02',NULL,'9595266',NULL,'Consectetur consequatur modi dolor quibusdam dolor.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,5,0,4,NULL,NULL,NULL,NULL,3),(32,'Reactive intermediate database','1427050701',5,'b15aa82f-4c3c-3c46-8ac0-bbb8d93c3d8d','2010-04-13',NULL,'33941269',NULL,'Explicabo nihil dolorum sed numquam cupiditate.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,4,0,3,NULL,NULL,NULL,NULL,4),(33,'Stand-alone intangible benchmark','1002621001',2,'34357519-e421-397b-9f29-fed75f4d257c','1983-10-27',NULL,'5195666',NULL,'Temporibus neque non enim.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,4,1,1,NULL,NULL,NULL,NULL,1),(34,'Multi-channelled responsive paradigm','179562199',4,'146dc1b3-4ec5-33a1-8784-6e0e4c2374e4','1990-06-17',NULL,'3817771',NULL,'Aspernatur laudantium ullam quaerat nihil aut expedita quia.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,5,1,1,NULL,NULL,NULL,NULL,3),(35,'Multi-lateral heuristic leverage','1266601024',2,'55ccf3ae-fe75-3488-a92c-68f488217915','1976-11-05',NULL,'26941625',NULL,'Omnis culpa ipsam est quam eius ea.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,3,1,3,NULL,NULL,NULL,NULL,3),(36,'Up-sized explicit info-mediaries','985581598',3,'4d5fcd70-12ae-3b50-b71d-679d3d596b6e','2005-06-26',NULL,'46999637',NULL,'Dolor dolore sed enim nobis pariatur quia.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,1,0,3,NULL,NULL,NULL,NULL,2),(37,'Innovative bottom-line internetsolution','838243568',1,'5098fe99-190c-38ea-b622-26bb229fb529','2009-07-14',NULL,'43758387',NULL,'Et ratione culpa corporis.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,2,0,5,NULL,NULL,NULL,NULL,2),(38,'Adaptive radical localareanetwork','376999050',5,'66268f06-09ea-368f-9fcf-046e35a685f7','1978-06-01',NULL,'37849620',NULL,'Veniam qui maxime cupiditate omnis.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,2,0,1,NULL,NULL,NULL,NULL,4),(39,'Polarised user-facing success','82661970',4,'a1de80a1-26da-3990-9157-eb66282dec40','2007-04-29',NULL,'2358580',NULL,'Quam sunt aliquid et quisquam.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,4,0,2,NULL,NULL,NULL,NULL,1),(40,'Configurable needs-based access','1230479844',4,'d70d75e7-fa62-331e-9b04-b465aa447c02','1994-05-18',NULL,'18594912',NULL,'Dolorem nam repellendus sed et aperiam.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,1,0,4,NULL,NULL,NULL,NULL,4),(41,'Front-line multimedia knowledgeuser','741179654',2,'4b5012b4-94cd-39a1-8e21-b5cb26963c8d','2013-05-23',NULL,'41270267',NULL,'Fuga sit ut natus vel atque accusantium.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,1,1,3,NULL,NULL,NULL,NULL,4),(42,'Business-focused exuding info-mediaries','108582572',1,'86b87c96-fe5a-3dee-aa03-161611dbffdb','1998-06-08',NULL,'49700731',NULL,'Sequi et consequatur facere.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,2,1,2,NULL,NULL,NULL,NULL,3),(43,'Ergonomic explicit initiative','700392813',3,'593eed07-359c-38ef-adec-9029e6277e2a','1972-10-16',NULL,'10456327',NULL,'Libero quos ipsam quis exercitationem id in eveniet.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,4,0,2,NULL,NULL,NULL,NULL,1),(44,'Total multimedia migration','908962454',2,'b880a4bf-5d51-331b-af07-44949d4d8f01','1976-04-26',NULL,'39976319',NULL,'Odit ut quos accusantium ea tempore et dignissimos soluta.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,3,1,1,NULL,NULL,NULL,NULL,1),(45,'Digitized methodical middleware','871620142',4,'93dcd8d1-e5dd-3fc9-834b-a718039f88df','1992-01-09',NULL,'48614317',NULL,'Earum nesciunt similique id possimus modi blanditiis blanditiis voluptatem.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,5,1,4,NULL,NULL,NULL,NULL,1),(46,'Devolved holistic database','714126156',3,'d354e507-609b-3b35-9926-7dd3a02443d3','1977-08-19',NULL,'35269691',NULL,'Praesentium aut nobis in libero tempora impedit quo.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,5,1,3,NULL,NULL,NULL,NULL,3),(47,'Proactive mobile opensystem','951658867',1,'a50527d7-6446-3e05-be4a-a3a3a372828e','1990-02-25',NULL,'31860138',NULL,'Consequatur quam sed odit repellat quo minima velit.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,5,1,5,NULL,NULL,NULL,NULL,4),(48,'Automated upward-trending data-warehouse','1404644407',5,'b48f599e-fe8a-3014-8255-fed3a2f78890','1977-01-20',NULL,'16120858',NULL,'Neque ipsum et facilis exercitationem pariatur.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,2,0,2,NULL,NULL,NULL,NULL,1),(49,'Triple-buffered dynamic leverage','680909548',5,'335597d2-5a98-37a7-822a-ef0569a5ab95','2005-03-30',NULL,'26186255',NULL,'Ad dolorem voluptatibus assumenda porro veniam velit.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,2,1,1,NULL,NULL,NULL,NULL,4),(50,'Realigned interactive solution','1130331690',3,'b7269c22-c407-3068-b56e-b5b7dd95058a','1972-01-18',NULL,'37522795',NULL,'Sequi delectus maxime officia veniam voluptate rem assumenda.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,1,0,1,NULL,NULL,NULL,NULL,1),(51,'Enterprise-wide didactic moratorium','220321065',5,'ab296e0f-feb8-3d99-995e-46656abed8a7','1990-12-21',NULL,'19764329',NULL,'Doloribus nobis labore numquam dolores voluptatum accusantium.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,4,0,2,NULL,NULL,NULL,NULL,1),(52,'Synchronised mobile securedline','252957019',4,'326b1528-d097-39fb-aca3-34bc9358ad22','2008-05-04',NULL,'36459823',NULL,'Illum dolorem dolore totam aut inventore et eos.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,2,0,4,NULL,NULL,NULL,NULL,1),(53,'Phased high-level groupware','1460225704',5,'456aa264-6ab8-3fea-a380-84a1c0d2eb5c','1987-10-30',NULL,'31759001',NULL,'Porro nihil magni aut sint vel.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,5,0,1,NULL,NULL,NULL,NULL,1),(54,'Proactive reciprocal alliance','164799827',1,'99bec0dd-6911-3bb7-8e3b-28b7013f1aa9','2003-09-30',NULL,'5320150',NULL,'Consequatur quaerat id veritatis velit ut deserunt enim.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,4,1,2,NULL,NULL,NULL,NULL,3),(55,'Customer-focused mobile processimprovement','842187902',4,'622648bc-4337-3782-a0e7-359b732c6c2a','2014-02-20',NULL,'41277223',NULL,'Incidunt earum est quae et.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,1,1,2,NULL,NULL,NULL,NULL,4),(56,'Switchable assymetric workforce','1132463686',4,'b246d72c-d613-34c3-aa67-eaa3fa4c718c','2007-06-02',NULL,'40685216',NULL,'Ipsa ab itaque magnam sed aut consequuntur error.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,3,0,4,NULL,NULL,NULL,NULL,1),(57,'Robust secondary emulation','741678897',2,'e39094df-9355-35b3-a423-638d4b5374ec','2002-12-14',NULL,'40667019',NULL,'Eos vel distinctio tenetur necessitatibus ullam eaque at.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,5,0,5,NULL,NULL,NULL,NULL,4),(58,'Business-focused directional approach','245586010',3,'4f871145-518c-3058-ab28-a0a9645a999f','2013-03-12',NULL,'21388822',NULL,'Sit amet in similique sit et.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,4,1,4,NULL,NULL,NULL,NULL,2),(59,'Multi-tiered attitude-oriented circuit','204819247',3,'f11378bf-49b5-3ee1-b7f6-7347077e3407','1984-06-14',NULL,'45678120',NULL,'Cupiditate ex accusantium doloremque eum.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,4,1,3,NULL,NULL,NULL,NULL,4),(60,'Networked upward-trending methodology','333703861',4,'672ca486-160b-3cc1-b932-7a5c7ac65453','2007-08-23',NULL,'46145283',NULL,'Mollitia voluptatem ipsam veritatis non est in.',NULL,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',1,NULL,1,NULL,NULL,NULL,3,1,3,NULL,NULL,NULL,NULL,1),(61,'Ameliorated homogeneous systemengine','32734771',4,'5684a908-ab00-3208-91ce-338df98d3a0e','2001-02-23',NULL,'9828673',NULL,'Quasi quia veritatis omnis ut minima nam dolorem libero.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,5,1,5,NULL,NULL,NULL,NULL,4),(62,'Reverse-engineered reciprocal analyzer','1140960148',4,'d882b242-b85c-3c25-9958-5fc154043cc5','1990-10-06',NULL,'6516317',NULL,'Dolorum molestiae quae aut deleniti ab qui reprehenderit libero.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,2,1,5,NULL,NULL,NULL,NULL,4),(63,'Monitored client-server architecture','67900820',2,'ba0a1d56-1394-3d7a-bb8b-877f978a72b4','1979-04-14',NULL,'4555334',NULL,'Nihil praesentium commodi dolore nemo.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,5,1,4,NULL,NULL,NULL,NULL,1),(64,'Operative multi-state GraphicalUserInterface','922778850',4,'2a91a2d6-103c-3121-b0b1-57c58404e614','1971-01-06',NULL,'27487453',NULL,'Qui rerum odio dignissimos voluptas qui.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,5,0,3,NULL,NULL,NULL,NULL,1),(65,'Integrated value-added collaboration','402777469',4,'bdf57636-fb88-388a-b601-e20fb01877c4','1980-03-03',NULL,'42870244',NULL,'Corporis optio blanditiis nam voluptatibus.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,4,1,4,NULL,NULL,NULL,NULL,1),(66,'Cross-group web-enabled info-mediaries','148247000',5,'370fc561-99a6-3dfb-87d0-7a8705887f85','2003-08-18',NULL,'1357945',NULL,'Ipsum ab quae omnis aut ad.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,3,0,2,NULL,NULL,NULL,NULL,2),(67,'Versatile interactive matrix','734828974',4,'e488a1a3-c807-310e-85b0-d75f87ea2ceb','1971-05-11',NULL,'17363905',NULL,'Neque molestiae id voluptates quo assumenda rerum voluptas voluptatum.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,5,0,2,NULL,NULL,NULL,NULL,4),(68,'Cloned discrete toolset','1393028026',2,'42cdb987-2dfc-308a-89de-bac00786d055','1973-08-19',NULL,'47005444',NULL,'Expedita est porro eveniet incidunt.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,5,1,1,NULL,NULL,NULL,NULL,4),(69,'Re-engineered uniform projection','479009911',5,'45e8a143-f6ad-3003-85c8-26e4e5c45b02','2001-08-28',NULL,'29723297',NULL,'Reiciendis et rerum fuga impedit.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,5,0,4,NULL,NULL,NULL,NULL,4),(70,'Universal didactic hardware','1207336596',2,'507c36a4-2a3a-382d-8f9f-99996e76cfb6','2013-09-24',NULL,'49138793',NULL,'Vitae ipsam autem molestias eos quos necessitatibus.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,2,1,3,NULL,NULL,NULL,NULL,2),(71,'Balanced assymetric GraphicalUserInterface','1247913785',2,'bc05fdfc-f519-374c-8049-badb52f69e6d','1996-01-20',NULL,'2827249',NULL,'Nam deserunt ullam quo beatae.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,2,1,2,NULL,NULL,NULL,NULL,4),(72,'Expanded 4thgeneration algorithm','1335669067',2,'44df7155-0921-3e29-9c5a-cefee90f4324','1970-04-20',NULL,'28076837',NULL,'Et accusantium molestias sequi ipsa doloremque.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,4,1,4,NULL,NULL,NULL,NULL,4),(73,'Function-based maximized parallelism','1444938202',3,'83db23c4-72f1-3d6c-a8f6-bfb5b459bdf2','1982-10-22',NULL,'46097977',NULL,'Quisquam praesentium ipsam debitis aut nobis quasi.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,2,0,4,NULL,NULL,NULL,NULL,2),(74,'Customizable mobile access','293016748',4,'c8abc7f9-d06e-3974-9fde-0df0411a044b','1993-02-09',NULL,'25470347',NULL,'Minus consequatur numquam eos et laudantium debitis corrupti.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,1,0,3,NULL,NULL,NULL,NULL,3),(75,'Future-proofed foreground forecast','349758044',1,'9c55dfa4-3c20-3ed5-a5cd-4dba4c9bdbf2','1982-03-08',NULL,'18219755',NULL,'Harum exercitationem nihil est porro magni in sint.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,1,1,1,NULL,NULL,NULL,NULL,4),(76,'Stand-alone dedicated algorithm','263812040',1,'041dbed7-dae5-32ca-89ee-ea2699efc988','2014-04-25',NULL,'25260035',NULL,'Aut et maiores tenetur consequatur et.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,1,1,5,NULL,NULL,NULL,NULL,1),(77,'Robust analyzing function','383948027',4,'62d427a4-572d-395a-a4a3-062bdff4c5cc','1981-01-15',NULL,'48945490',NULL,'Sapiente dicta saepe accusamus et dolores.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,2,0,4,NULL,NULL,NULL,NULL,2),(78,'Virtual neutral functionalities','477380190',2,'77735935-e7cc-32aa-8e80-c9ab3bbbd62c','2016-02-05',NULL,'25244642',NULL,'Et nam sed et corrupti esse et.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,3,0,3,NULL,NULL,NULL,NULL,2),(79,'Grass-roots responsive GraphicInterface','1010848030',4,'e969f95f-7656-39fc-b392-25fbbed2ad91','1991-03-23',NULL,'19825588',NULL,'Iure qui officiis rerum illum aut ut.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,5,1,3,NULL,NULL,NULL,NULL,4),(80,'Realigned composite adapter','899386095',5,'dd62fd8d-a4cd-3c93-a138-50b37f17ad7d','1974-03-11',NULL,'12030390',NULL,'Doloremque in similique iure quasi perferendis id.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,2,0,4,NULL,NULL,NULL,NULL,4),(81,'Optimized bifurcated intranet','838575063',2,'f0364606-5bc5-3821-8bd7-6bf1e90e7f11','1991-12-07',NULL,'15632187',NULL,'Cupiditate expedita et minus aut culpa provident quae.',NULL,1,'2016-11-20 23:07:29','2016-11-21 00:33:30',1,'2016-11-21 00:33:30',1,NULL,NULL,NULL,3,0,4,NULL,NULL,NULL,NULL,4),(82,'Ameliorated user-facing monitoring','326235593',5,'d1d95514-6f07-3fd4-b12e-2fccfc2ddd27','1999-05-31',NULL,'1149074',NULL,'Quos modi aspernatur a et aut aut tenetur.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,2,0,2,NULL,NULL,NULL,NULL,4),(83,'Business-focused high-level interface','1140579465',5,'46bc076b-720c-33fa-ae4f-33a3a66451f7','2003-12-09',NULL,'8509936',NULL,'Sint inventore nisi repellendus ab debitis.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,5,0,4,NULL,NULL,NULL,NULL,3),(84,'Seamless asynchronous info-mediaries','1336928942',4,'9b5fbd7c-b786-332e-bfc8-9cca434ed204','1981-08-19',NULL,'41932039',NULL,'Temporibus exercitationem ducimus libero amet.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,2,1,1,NULL,NULL,NULL,NULL,1),(85,'Multi-layered dynamic parallelism','861858215',2,'9628e727-03c2-313f-bc2b-a1a5888f2f39','1995-06-20',NULL,'18992739',NULL,'Amet nemo aperiam et pariatur.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,5,1,5,NULL,NULL,NULL,NULL,1),(86,'Programmable tertiary matrix','955798318',4,'fc61789d-a6e8-3566-91e1-2c2112467a0a','1972-07-22',NULL,'15909141',NULL,'Assumenda doloremque explicabo perspiciatis vel et dolorem molestiae.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,3,0,5,NULL,NULL,NULL,NULL,1),(87,'Right-sized contextually-based archive','1329991897',1,'4b44a0b1-3ecb-30b7-b58f-d4849447b39a','1995-05-27',NULL,'15640006',NULL,'Sit pariatur in non impedit sed sed magni.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,3,1,1,NULL,NULL,NULL,NULL,4),(88,'Automated user-facing initiative','66332732',1,'59027125-0623-3037-bb4a-0d0114e0db5f','1992-09-05',NULL,'9927501',NULL,'Eum sed velit minus doloribus ad omnis cum.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,1,0,4,NULL,NULL,NULL,NULL,1),(89,'Optimized discrete moderator','242159572',3,'181a0950-006d-3fdd-936d-81355fd6df88','2005-09-18',NULL,'38282301',NULL,'Omnis eum quae animi eius.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,3,0,2,NULL,NULL,NULL,NULL,3),(90,'Persistent cohesive middleware','393498501',3,'a3d399cb-f25a-383e-af65-54a2e974a56f','1970-02-21',NULL,'42991820',NULL,'Excepturi nulla voluptatem voluptatem ea.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,1,0,1,NULL,NULL,NULL,NULL,3),(91,'Multi-channelled grid-enabled customerloyalty','814134806',1,'8155b403-8383-31e9-a521-4a7a2aea61ca','1978-03-03',NULL,'31285966',NULL,'Perspiciatis aspernatur dolor vel sit.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,4,0,2,NULL,NULL,NULL,NULL,4),(92,'Integrated static interface','215458633',4,'119654ac-8269-3714-bdc2-fc25308c96fc','1972-04-07',NULL,'6193991',NULL,'A facere quo at doloremque ut reprehenderit.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,2,1,5,NULL,NULL,NULL,NULL,3),(93,'Up-sized 24hour GraphicalUserInterface','321345315',4,'5a892eb9-8c99-3a71-90af-e6e80a5b9273','1971-03-19',NULL,'38803546',NULL,'Atque blanditiis tenetur cumque ipsum inventore alias.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,2,1,3,NULL,NULL,NULL,NULL,1),(94,'Facetoface demand-driven matrix','693214522',3,'b82ce41d-cff1-3b4c-9f74-554058bf9669','1982-08-26',NULL,'13705892',NULL,'Reiciendis et molestias id quis eveniet.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,2,0,5,NULL,NULL,NULL,NULL,1),(95,'Front-line heuristic middleware','1067734512',5,'4205ffc6-210a-3ef7-84b3-76df4f1316ce','1997-03-08',NULL,'27900091',NULL,'Ut earum consequatur dolor non possimus omnis.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,3,0,4,NULL,NULL,NULL,NULL,1),(96,'Down-sized zerodefect utilisation','1366417144',3,'9f4b8786-7e45-3683-a4f5-2fa4f260609c','1983-11-09',NULL,'37309051',NULL,'Cumque consequatur delectus modi aliquid nulla.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,4,0,5,NULL,NULL,NULL,NULL,3),(97,'Pre-emptive asynchronous benchmark','366257155',4,'603e9346-3120-3ff7-9966-829a61f29d32','2015-09-06',NULL,'45384019',NULL,'Dolores assumenda delectus quae explicabo eum distinctio eaque.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,4,0,5,NULL,NULL,NULL,NULL,1),(98,'Networked secondary product','64846550',3,'97eb19e5-cc94-3946-9472-65422c7ffe00','1983-09-28',NULL,'17430473',NULL,'Officiis aut molestiae necessitatibus vitae.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,3,0,2,NULL,NULL,NULL,NULL,1),(99,'Business-focused 24hour leverage','936840003',5,'395e8f2c-799f-3310-a6c9-b328498f6a5b','1976-02-19',NULL,'46175843',NULL,'Iure veniam animi mollitia molestias dolores hic dolorem.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,1,1,2,NULL,NULL,NULL,NULL,2),(100,'Decentralized homogeneous groupware','285321693',2,'eabc9e1e-4a5d-3d97-88db-98112689290f','1979-12-21',NULL,'39805401',NULL,'Earum molestiae autem aspernatur quis.',NULL,1,'2016-11-20 23:07:29','2016-11-20 23:07:29',1,NULL,1,NULL,NULL,NULL,3,1,5,NULL,NULL,NULL,NULL,2),(101,'TestModel','230-name-21 2',2,'350335','2016-01-01',25.00,'12345',20,'lorem ipsum blah blah',NULL,1,'2016-11-21 00:33:30','2016-11-21 00:33:30',1,NULL,6,0,15,0,2,1,5,NULL,NULL,'2016-11-20 18:33:30',NULL,2); +INSERT INTO `assets` VALUES (1,'Visionary secondary core','1465939380',1,'b69474b2-27b1-3f93-97e9-db014b50855c','1994-09-15',65.91,'20260334',NULL,'Incidunt unde et ipsum.',NULL,1,'2016-12-19 21:50:31','2016-12-19 21:50:31',1,NULL,1,NULL,NULL,NULL,5,1,4,NULL,NULL,NULL,NULL,12),(2,'Multi-channelled assymetric hierarchy','62067267',2,'2939d8f0-517c-3813-92ae-600b730d7077','2012-09-16',8118065.09,'2966491',NULL,'Ut voluptatem soluta at omnis.',NULL,1,'2016-12-19 21:50:31','2016-12-19 21:50:31',1,NULL,1,NULL,NULL,NULL,1,0,3,NULL,NULL,NULL,NULL,14),(3,'Automated stable instructionset','1040897710',4,'f976dfff-88bd-365c-abec-c7e2866c8b39','1971-10-23',2.67,'13451420',NULL,'Eligendi amet harum fuga harum sunt.',NULL,1,'2016-12-19 21:50:31','2016-12-19 21:50:31',1,NULL,1,NULL,NULL,NULL,1,0,4,NULL,NULL,NULL,NULL,11),(4,'Total maximized data-warehouse','1249884067',3,'eb57f9f7-df07-30af-98e1-c6ce50d463e8','2009-06-22',1549.23,'32663424',NULL,'Non nihil quo aut aut odit dolorem.',NULL,1,'2016-12-19 21:50:31','2016-12-19 21:50:31',1,NULL,1,NULL,NULL,NULL,2,0,3,NULL,NULL,NULL,NULL,2),(5,'Sharable directional monitoring','1243453118',4,'3eb5e7d4-d07b-3dc2-a66c-c66a1440f273','2006-07-07',101.96,'45353300',NULL,'Voluptatibus et autem tempora.',NULL,1,'2016-12-19 21:50:31','2016-12-19 21:50:31',1,NULL,1,NULL,NULL,NULL,1,1,1,NULL,NULL,NULL,NULL,12),(6,'Multi-tiered intermediate help-desk','670576799',5,'202b8cef-61cf-3bfc-990f-76ab70b23af3','2001-03-25',12224.44,'25748332',NULL,'Expedita sint dolor nesciunt.',NULL,1,'2016-12-19 21:50:31','2016-12-19 21:50:31',1,NULL,1,NULL,NULL,NULL,5,1,4,NULL,NULL,NULL,NULL,1),(7,'Advanced dynamic task-force','1287783991',5,'7ee9c0de-bc09-32a9-8102-836ebca4e1cc','2004-11-09',16.52,'15204825',NULL,'Inventore consequuntur voluptate accusantium voluptas nesciunt sed harum eligendi.',NULL,1,'2016-12-19 21:50:31','2016-12-19 21:50:31',1,NULL,1,NULL,NULL,NULL,1,0,3,NULL,NULL,NULL,NULL,1),(8,'Realigned tangible interface','130771471',5,'d9d51b6f-c5ee-3493-b645-9e7bdbe015f7','1970-05-02',66.19,'47326077',NULL,'Est voluptatem necessitatibus sit.',NULL,1,'2016-12-19 21:50:31','2016-12-19 21:50:31',1,NULL,1,NULL,NULL,NULL,1,0,2,NULL,NULL,NULL,NULL,3),(9,'Polarised hybrid neural-net','550271593',4,'b1ab1fce-0d01-384a-b4be-860202392dcb','2010-08-06',97.79,'41439691',NULL,'Dolorem nihil illum magni sed sunt.',NULL,1,'2016-12-19 21:50:31','2016-12-19 21:50:31',1,NULL,1,NULL,NULL,NULL,5,1,5,NULL,NULL,NULL,NULL,13),(10,'Facetoface zeroadministration workforce','480468566',4,'3162a8b8-7ac0-3e90-a944-ecaf37c3b8ef','2015-01-17',2803464.97,'15427150',NULL,'Ipsam error ut assumenda laudantium omnis aut.',NULL,1,'2016-12-19 21:50:31','2016-12-19 21:50:31',1,NULL,1,NULL,NULL,NULL,5,0,2,NULL,NULL,NULL,NULL,13),(11,'Quality-focused grid-enabled service-desk','543913477',2,'f7ac27b3-57d1-388c-bb01-da4db118f36b','2006-04-06',29720634.10,'47076493',NULL,'Nulla aut sunt voluptatem corrupti debitis unde.',NULL,1,'2016-12-19 21:50:31','2016-12-19 21:50:31',1,NULL,1,NULL,NULL,NULL,3,0,1,NULL,NULL,NULL,NULL,9),(12,'Seamless non-volatile focusgroup','364062836',3,'6563015c-d18a-3a11-9663-4190acb417d5','1993-12-11',2268554.13,'10865899',NULL,'Et voluptas molestias voluptatum commodi ut eius in.',NULL,1,'2016-12-19 21:50:31','2016-12-19 21:50:31',1,NULL,1,NULL,NULL,NULL,1,0,4,NULL,NULL,NULL,NULL,7),(13,'Secured local structure','101852892',5,'24bb7294-e323-3f65-bb0f-a289d4948d64','2000-02-01',138.91,'46488840',NULL,'Commodi possimus animi et deserunt qui dolor vero.',NULL,1,'2016-12-19 21:50:31','2016-12-19 21:50:31',1,NULL,1,NULL,NULL,NULL,3,0,3,NULL,NULL,NULL,NULL,3),(14,'Profound empowering collaboration','344958216',2,'481f212f-64bc-3ba9-afba-ee88e67b593b','2011-10-01',33910133.63,'24685446',NULL,'Sed ut modi aut rerum rerum.',NULL,1,'2016-12-19 21:50:31','2016-12-19 21:50:31',1,NULL,1,NULL,NULL,NULL,1,1,5,NULL,NULL,NULL,NULL,3),(15,'Visionary multi-tasking securedline','767397902',1,'51d48976-a23b-31c7-b6cd-b8ad0df184d3','2000-01-14',4576.44,'14926990',NULL,'Sed sunt porro eum sed quia.',NULL,1,'2016-12-19 21:50:31','2016-12-19 21:50:31',1,NULL,1,NULL,NULL,NULL,3,1,2,NULL,NULL,NULL,NULL,9),(16,'Ergonomic web-enabled architecture','615124208',5,'14e3263e-990c-3ab4-ac07-bae840766a00','1979-02-09',0.02,'2105706',NULL,'Sunt id dolores inventore rerum pariatur est quia.',NULL,1,'2016-12-19 21:50:31','2016-12-19 21:50:31',1,NULL,1,NULL,NULL,NULL,5,0,3,NULL,NULL,NULL,NULL,12),(17,'Open-source intermediate instructionset','1270731692',5,'9fdbe892-9469-3ed5-bce5-e0ff0b966dc2','2012-01-12',237.80,'14518413',NULL,'Nemo ut aperiam blanditiis rerum doloribus.',NULL,1,'2016-12-19 21:50:31','2016-12-19 21:50:31',1,NULL,1,NULL,NULL,NULL,1,0,5,NULL,NULL,NULL,NULL,8),(18,'Managed disintermediate moratorium','1022866111',2,'3466d91a-75e6-3a0f-95a5-1477e7770745','1983-05-03',2.92,'14715014',NULL,'Perferendis vel autem autem dolor consequatur eum.',NULL,1,'2016-12-19 21:50:31','2016-12-19 21:50:31',1,NULL,1,NULL,NULL,NULL,1,0,3,NULL,NULL,NULL,NULL,11),(19,'Decentralized user-facing website','940534451',5,'c4836458-cb4c-32d3-8b4d-5414351771b9','2000-06-29',247045.04,'4657436',NULL,'Accusamus non id et voluptatem.',NULL,1,'2016-12-19 21:50:31','2016-12-19 21:50:31',1,NULL,1,NULL,NULL,NULL,4,0,4,NULL,NULL,NULL,NULL,4),(20,'Expanded content-based solution','942251388',4,'116d7d4a-4b56-322e-b479-16218caf56bc','2009-02-19',39627130.06,'32035872',NULL,'Veritatis veritatis ut expedita in eum voluptatem qui.',NULL,1,'2016-12-19 21:50:31','2016-12-19 21:50:31',1,NULL,1,NULL,NULL,NULL,2,0,5,NULL,NULL,NULL,NULL,8),(21,'Focused maximized implementation','1249819308',5,'cb682760-e287-386e-8160-487403deb74c','2012-07-15',5778.07,'47965311',NULL,'Sed voluptatem eius placeat blanditiis soluta id deserunt.',NULL,1,'2016-12-19 21:50:31','2016-12-19 21:50:31',1,NULL,1,NULL,NULL,NULL,1,0,2,NULL,NULL,NULL,NULL,14),(22,'Proactive client-server processimprovement','883029704',3,'4e7ad5b0-a675-3846-b5a6-4d342bf33b54','1990-04-16',0.00,'26251720',NULL,'Eos voluptas explicabo magni aut cupiditate nostrum atque ducimus.',NULL,1,'2016-12-19 21:50:31','2016-12-19 21:50:31',1,NULL,1,NULL,NULL,NULL,2,0,2,NULL,NULL,NULL,NULL,2),(23,'Operative demand-driven info-mediaries','656985114',1,'13b0499e-e49b-3618-b45f-b228d2d25fc5','2015-05-16',24.46,'3609650',NULL,'Modi ut sit minus.',NULL,1,'2016-12-19 21:50:31','2016-12-19 21:50:31',1,NULL,1,NULL,NULL,NULL,3,0,5,NULL,NULL,NULL,NULL,9),(24,'Open-architected grid-enabled software','59169139',4,'41502a6f-1dfd-3eab-9c31-029f8872f2be','1990-01-30',450.80,'49015606',NULL,'Consequuntur praesentium quod sit quod.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,2,0,3,NULL,NULL,NULL,NULL,5),(25,'Persistent exuding opensystem','856754651',1,'dc45fcd5-2fc7-3d62-8bb1-0c685a270004','2011-07-13',1.53,'3161489',NULL,'Et voluptates corporis sed possimus iure maiores.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,2,0,1,NULL,NULL,NULL,NULL,6),(26,'Multi-tiered attitude-oriented projection','807015293',5,'1125d40f-ed93-3a8c-a69f-1bb068e44026','1976-10-04',37019.76,'7052260',NULL,'Expedita alias laborum accusantium praesentium necessitatibus est assumenda veniam.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,3,0,4,NULL,NULL,NULL,NULL,14),(27,'Facetoface well-modulated projection','1395451594',3,'2093efe3-f44f-30f6-b885-de3d023a0d5f','1987-12-30',51.82,'31340938',NULL,'Distinctio perspiciatis ut rerum culpa consequatur eligendi ipsam.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,1,0,1,NULL,NULL,NULL,NULL,3),(28,'Phased cohesive forecast','298505210',5,'196cec02-89c7-36de-a4ff-940fce629151','1986-12-20',20563.38,'4349606',NULL,'Enim rerum reiciendis in iste vel architecto.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,4,1,5,NULL,NULL,NULL,NULL,3),(29,'Phased asynchronous productivity','565884861',5,'fc89d527-3495-3255-a38a-f92bd1f01eca','2012-03-11',222963311.08,'49169719',NULL,'Minus et rerum voluptatum eos sed perferendis.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,5,0,1,NULL,NULL,NULL,NULL,4),(30,'Upgradable composite collaboration','45774522',4,'f4e12518-7f22-3f0a-8f3c-531e95021230','1978-05-08',690.36,'33700051',NULL,'Non veniam et iusto qui.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,4,1,2,NULL,NULL,NULL,NULL,6),(31,'Automated clear-thinking approach','280800955',1,'15f9b534-e2e3-338b-9ebb-708ee0eb281c','2007-05-02',25.02,'46111413',NULL,'Repellendus minima culpa suscipit esse tenetur in totam.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,3,1,5,NULL,NULL,NULL,NULL,14),(32,'Cross-platform value-added collaboration','291396827',3,'6b0d7ca1-cf4b-3a5c-999a-44c5dd5f8444','1988-10-28',878.62,'24306169',NULL,'Dolores eaque quidem veniam sapiente.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,5,0,4,NULL,NULL,NULL,NULL,14),(33,'Ameliorated heuristic forecast','434327491',4,'bd587d6c-0067-3f2a-a6e5-82e94e82a556','2001-03-03',612863.41,'30945188',NULL,'Suscipit est cupiditate consequatur libero voluptates corrupti fuga repudiandae.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,2,1,4,NULL,NULL,NULL,NULL,8),(34,'Progressive zeroadministration toolset','1130124248',1,'1568dc2b-f5de-3f95-a9f9-cbf77b45c8bd','1986-04-07',281.85,'34711081',NULL,'Pariatur illo veritatis eos minima eaque autem.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,1,1,2,NULL,NULL,NULL,NULL,6),(35,'Operative full-range instructionset','442560802',1,'c4461312-fd67-3ab2-ab32-d8b37b3d91a5','1986-09-01',19807940.14,'26289988',NULL,'Accusantium ea molestiae dolor.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,3,1,3,NULL,NULL,NULL,NULL,5),(36,'Pre-emptive coherent systemengine','9154795',5,'60f0ef79-9c7b-3d33-8b31-b040a6068f9b','1975-08-13',29.15,'19758830',NULL,'Voluptatem temporibus molestias sapiente tempora qui vitae.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,3,1,4,NULL,NULL,NULL,NULL,5),(37,'Robust value-added core','243145492',4,'7c37cb50-d2d1-3290-88d1-6c21132815b5','1986-02-10',67.41,'22175367',NULL,'Nisi quos omnis dolorum inventore.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,5,0,4,NULL,NULL,NULL,NULL,13),(38,'Ameliorated directional standardization','226248616',5,'31961f4d-a1b2-3676-bbb5-212cb767c549','1970-01-05',3010.68,'26395661',NULL,'Et sit perspiciatis sapiente inventore libero reprehenderit.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,5,0,2,NULL,NULL,NULL,NULL,9),(39,'Re-contextualized optimal frame','1362407233',3,'8a5be53f-eb59-30e0-b72c-e69b0d3a0e1a','1988-07-23',0.71,'46708629',NULL,'Maiores enim et dolores deserunt.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,4,1,5,NULL,NULL,NULL,NULL,14),(40,'Virtual static encoding','140377232',4,'8f746dee-734d-328d-a214-a2fa3548ffac','1996-01-11',14.73,'20834904',NULL,'Rerum placeat nobis magnam dolor amet et consectetur id.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,5,0,5,NULL,NULL,NULL,NULL,4),(41,'Vision-oriented high-level standardization','925970645',1,'e9cad216-ee72-3719-b5e4-38c62518d376','2004-01-14',4028.08,'31200094',NULL,'Tenetur error quisquam delectus expedita odit iusto sit rerum.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,5,0,1,NULL,NULL,NULL,NULL,11),(42,'Synergized scalable processimprovement','183749766',2,'9558eabb-6ba3-376f-b0c9-f3c2a7f067a6','1974-11-03',51096673.90,'22830723',NULL,'Voluptas assumenda delectus laborum ut voluptatem.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,3,0,4,NULL,NULL,NULL,NULL,12),(43,'Sharable non-volatile groupware','1230911641',4,'7154da35-5124-3fff-ac72-720d6e525eba','1973-12-16',23.40,'39001862',NULL,'Doloribus dolorem atque occaecati quas modi harum.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,5,1,4,NULL,NULL,NULL,NULL,9),(44,'Public-key 6thgeneration frame','449063516',2,'98590565-4f9d-365b-a884-73812ab79219','1999-07-16',1374.18,'29236659',NULL,'Et dicta veniam ea consequatur quibusdam.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,2,0,5,NULL,NULL,NULL,NULL,4),(45,'Automated empowering knowledgeuser','1130771148',4,'72a1b675-9897-3e2c-b7a1-4888bbeadc0e','2005-09-27',8.21,'29698142',NULL,'Blanditiis odit qui quos cupiditate alias est.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,5,1,4,NULL,NULL,NULL,NULL,2),(46,'Grass-roots incremental contingency','623854414',3,'9ffc77b4-c7c2-3514-9444-4a94c86a8839','1976-05-04',0.60,'48683741',NULL,'Esse odit neque quis illo velit magnam ut.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,2,1,4,NULL,NULL,NULL,NULL,12),(47,'Cross-platform holistic architecture','1479230642',5,'d6d61e4a-385e-302a-94ff-a3b7b9e09dd5','1989-12-04',30718642.38,'14503829',NULL,'Dolores suscipit aut natus quasi aut quos dignissimos.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,1,0,2,NULL,NULL,NULL,NULL,7),(48,'Diverse mission-critical matrices','177201955',3,'3c56ef7a-faca-3dfa-af18-b2b3fc215254','1971-06-08',8610849.64,'6040629',NULL,'Sit dolore dolorem totam dolor nulla sed hic.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,1,0,5,NULL,NULL,NULL,NULL,5),(49,'Focused uniform policy','213591583',2,'b2029504-c1b7-3182-8a69-6baba3a8bc80','2002-05-13',131830.90,'16141740',NULL,'Voluptas molestias et doloremque sunt ut nobis voluptatibus quam.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,3,1,5,NULL,NULL,NULL,NULL,13),(50,'Exclusive secondary leverage','322955899',1,'0d9c50f6-8ce4-333b-967e-7767e634f118','1977-08-29',5.93,'47631112',NULL,'Unde sapiente eaque aut.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,4,1,4,NULL,NULL,NULL,NULL,10),(51,'Advanced bandwidth-monitored adapter','1053798415',1,'b1ba053c-c2b0-3063-871d-4525b97479a1','2006-02-25',14.07,'11366596',NULL,'Expedita nulla inventore rerum perferendis consectetur.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,4,1,2,NULL,NULL,NULL,NULL,12),(52,'Innovative bandwidth-monitored GraphicInterface','454122127',2,'56cdb129-3eda-320b-88e8-f7f009e3b394','2006-06-24',145.41,'19949540',NULL,'Maxime ut ut exercitationem et et officia.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,2,1,4,NULL,NULL,NULL,NULL,7),(53,'Cloned upward-trending project','1344071999',1,'1f3b59a0-d39a-3086-9ce0-2535a1b8d4e8','2007-04-30',109.27,'46042391',NULL,'Placeat dolore beatae suscipit qui facilis consequatur dolore.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,5,1,2,NULL,NULL,NULL,NULL,5),(54,'Open-source modular info-mediaries','443740773',5,'dc5ef34e-2cfc-3987-9b96-af403f0a0d06','2001-02-04',334805.88,'44092000',NULL,'Et quis quo voluptates exercitationem.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,1,0,2,NULL,NULL,NULL,NULL,10),(55,'Balanced bottom-line knowledgebase','796374239',4,'bb347c78-122e-33f6-9a70-63c65e327ebf','2007-01-04',6.12,'43452338',NULL,'Dicta nesciunt reiciendis distinctio voluptatibus necessitatibus unde sit.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,2,0,1,NULL,NULL,NULL,NULL,11),(56,'Synchronised dynamic implementation','1212402558',1,'1f2c8176-c5f0-34f0-9926-b57add52a3ee','1998-08-16',1939.33,'7361962',NULL,'Natus adipisci consectetur voluptatem.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,5,1,4,NULL,NULL,NULL,NULL,11),(57,'User-friendly 5thgeneration focusgroup','1012354793',3,'3a02d70d-f206-3c20-a720-ca86ec9cfc84','1988-06-23',7.57,'44656197',NULL,'Consequatur culpa ut quod placeat sed rerum quidem illo.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,3,0,3,NULL,NULL,NULL,NULL,14),(58,'Expanded 5thgeneration complexity','812742014',4,'74a49bb8-af57-3af0-a1a0-a5731ac07b41','1981-12-02',118346182.29,'23747179',NULL,'Alias dolorem quam et amet perferendis.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,5,0,2,NULL,NULL,NULL,NULL,2),(59,'User-centric context-sensitive intranet','383856329',5,'e3b74a52-fc9e-3276-83e6-ec42e05301cb','2015-08-16',328816073.70,'23618511',NULL,'Ex cumque voluptas blanditiis quia exercitationem et cupiditate.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,3,1,2,NULL,NULL,NULL,NULL,13),(60,'Networked contextually-based forecast','14450513',2,'59dbf327-d381-346e-af9b-f56b9850be4e','1974-10-06',1488.84,'2923279',NULL,'Odio officia consequuntur cupiditate distinctio.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,4,1,3,NULL,NULL,NULL,NULL,14),(61,'Team-oriented secondary frame','710696247',1,'437c2828-37d2-3127-b75f-b1c06f478752','1975-05-24',521.61,'16444048',NULL,'Possimus tempore minus consequatur eos nisi quasi.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,2,0,2,NULL,NULL,NULL,NULL,14),(62,'Reverse-engineered neutral matrices','346946928',5,'8fb61550-665b-325d-a4eb-649ed4a19ddd','1983-05-02',654299.59,'21473608',NULL,'Adipisci harum modi quibusdam praesentium fugit ut quia.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,4,1,2,NULL,NULL,NULL,NULL,8),(63,'Intuitive mission-critical benchmark','633215379',5,'3267a389-57ee-3b40-be84-132ff9c92fc1','2011-04-01',1.09,'2663674',NULL,'Dolores veniam omnis aliquam in qui omnis.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,4,0,4,NULL,NULL,NULL,NULL,9),(64,'Vision-oriented user-facing analyzer','213197662',1,'46798b8d-87e9-3297-abd6-647886af7010','2016-08-03',14040.30,'17712399',NULL,'Consequuntur quis non earum.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,2,1,2,NULL,NULL,NULL,NULL,3),(65,'Centralized actuating initiative','1077234046',5,'47444ffb-8478-3923-aea2-54f1192b762d','1982-02-21',34253.85,'15265807',NULL,'Odit rerum sit repudiandae quo quam sequi consequuntur.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,5,0,5,NULL,NULL,NULL,NULL,4),(66,'Networked real-time function','136655874',1,'90da2bd4-dbde-3c0e-9719-a85b7507d5fa','2014-01-20',7131565.52,'7516067',NULL,'Officiis eos dolor inventore quia ipsa cum voluptas placeat.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,3,0,3,NULL,NULL,NULL,NULL,12),(67,'Enhanced tertiary interface','707949478',3,'b175217f-6a2f-31d5-bc5c-26d71ac0567e','2010-03-20',205.62,'5367013',NULL,'Deleniti incidunt adipisci facere aut voluptatibus quia voluptas rerum.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,4,0,4,NULL,NULL,NULL,NULL,12),(68,'Future-proofed methodical task-force','1288802320',1,'94f3892b-74a7-3387-b031-b7167246ac6a','1977-12-22',1939.36,'42716894',NULL,'Et aut est libero facilis et voluptas est.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,5,0,1,NULL,NULL,NULL,NULL,12),(69,'Synergistic local opensystem','36202885',5,'1b0fd973-d826-357a-bcc6-f87a483aa0a6','1972-10-09',31887.76,'21192424',NULL,'Tempora dolorem animi exercitationem illo.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,4,1,2,NULL,NULL,NULL,NULL,7),(70,'Organic uniform encoding','1469159579',5,'5aaa2005-5f7b-39b0-8265-bbbb6b11ee52','1990-11-10',327686100.97,'6324570',NULL,'Sed illum laboriosam nulla et dignissimos quia.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,5,0,5,NULL,NULL,NULL,NULL,13),(71,'Multi-channelled uniform capacity','397078339',5,'f4c3e126-cfdd-3f11-a498-9b227d9bb611','2006-09-12',30.26,'6934888',NULL,'Necessitatibus velit qui cum minima iste.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,2,1,4,NULL,NULL,NULL,NULL,3),(72,'User-friendly multi-state approach','884331378',4,'2d5a5518-b2b1-3fff-b912-d2876d24e030','2001-04-15',17843.21,'33136904',NULL,'Provident sit quisquam fugiat dolores voluptatem.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,4,1,2,NULL,NULL,NULL,NULL,8),(73,'Optimized neutral standardization','1270281282',4,'250c0dc2-fa13-390a-b713-7cb4b32beff8','2000-09-23',0.25,'27616493',NULL,'Voluptatem nobis dolores quibusdam consequatur.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,2,0,5,NULL,NULL,NULL,NULL,6),(74,'Re-engineered uniform model','345559146',5,'8c6710aa-d2f8-36c7-9311-ebde607a86fd','1977-12-03',513427.58,'48640671',NULL,'Saepe sint enim libero facere totam ratione.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,1,0,3,NULL,NULL,NULL,NULL,3),(75,'Upgradable motivating support','1353404468',5,'90cdfb07-6a2d-363d-b54a-6d6b638ef230','2007-03-23',0.26,'18523115',NULL,'Eos quisquam asperiores impedit.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,5,1,5,NULL,NULL,NULL,NULL,7),(76,'Innovative client-server opensystem','999240677',5,'ba835bad-1314-3209-8622-e628127a4c40','1980-03-29',2429924.99,'36149854',NULL,'Velit quia corrupti quis quas eaque qui.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,1,0,1,NULL,NULL,NULL,NULL,4),(77,'Reactive multi-tasking info-mediaries','145227946',3,'b0c62e7e-9d2c-35a3-8ed4-48c4050174f3','1974-08-31',288914923.45,'26555421',NULL,'Esse fugit temporibus debitis impedit in.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,1,1,2,NULL,NULL,NULL,NULL,4),(78,'Ergonomic demand-driven support','1139109215',2,'272286a8-33f7-3246-91c6-1fe32c6049b5','2016-08-25',124281091.67,'16599931',NULL,'Ipsa nisi expedita et quisquam aspernatur dolor error.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,3,0,5,NULL,NULL,NULL,NULL,6),(79,'Versatile systemic model','121747493',3,'7b3fb812-fa96-32e3-a07e-f06001523621','1983-07-09',3.41,'11741859',NULL,'Aut minima dolorem expedita aperiam quod cupiditate dolorem.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,2,0,2,NULL,NULL,NULL,NULL,14),(80,'Re-contextualized composite installation','946487822',2,'9deaac7c-2730-36c6-9a58-7f2682b9a177','1985-11-30',915.44,'32391115',NULL,'Modi omnis ut illo sed sed exercitationem.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,1,0,5,NULL,NULL,NULL,NULL,7),(81,'User-friendly national customerloyalty','376127354',5,'60216fff-abb1-321d-9128-f46f2056729f','1975-03-10',72.94,'4606858',NULL,'Sint in quo assumenda.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,1,0,4,NULL,NULL,NULL,NULL,5),(82,'Synergized 6thgeneration hub','797353978',4,'9e338295-77f0-3242-923f-4b241bfbb976','2014-04-27',10024083.74,'9387562',NULL,'Porro error delectus voluptas at deserunt labore.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,4,0,4,NULL,NULL,NULL,NULL,12),(83,'Assimilated encompassing knowledgeuser','1319949896',5,'d04e4c37-d01e-30d5-a9f5-328fe50232c3','2010-03-28',5242576.03,'10247809',NULL,'Voluptas molestias et et quia et provident velit nihil.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,4,0,4,NULL,NULL,NULL,NULL,3),(84,'Mandatory contextually-based circuit','904726044',5,'f0b7bdc2-893b-3e9d-a808-ce2a42d3a494','1997-08-13',1111.13,'28859502',NULL,'Inventore qui nihil dignissimos similique consequatur.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,3,0,1,NULL,NULL,NULL,NULL,6),(85,'Customizable maximized extranet','205955368',1,'18d73a95-93ee-32d0-8066-3e257f13ecec','2002-05-03',106017393.41,'32640013',NULL,'Et perferendis voluptatem asperiores molestiae qui.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,4,1,1,NULL,NULL,NULL,NULL,11),(86,'Organic interactive projection','706656762',1,'a63e284e-4b57-3f71-8209-89c8a3da1209','1983-09-13',3054.38,'14048494',NULL,'Eum sit velit ut accusantium a numquam.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,1,1,4,NULL,NULL,NULL,NULL,14),(87,'Monitored heuristic processimprovement','874379490',2,'0a5ddfa9-1cb5-3fcb-afe8-18be65b50bf5','2006-02-27',142285.11,'42475659',NULL,'Voluptatum nostrum aut dolor labore quaerat amet et.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,4,0,3,NULL,NULL,NULL,NULL,13),(88,'Enhanced non-volatile internetsolution','1042013011',2,'17d54504-ef82-3031-a406-407c6cac62f6','1987-12-02',3750104.82,'11286898',NULL,'Voluptatibus aperiam est sunt.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,5,1,2,NULL,NULL,NULL,NULL,14),(89,'Facetoface system-worthy data-warehouse','1349469825',5,'1ffa7309-863f-35cf-ba86-22a2f8d8c046','2011-12-07',10424.74,'42589963',NULL,'Soluta fugit sunt quia quis nesciunt aut.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,5,0,1,NULL,NULL,NULL,NULL,8),(90,'Devolved tertiary architecture','756516594',2,'6360f8fe-9f17-3f6b-bb4c-0dfae611890a','2012-06-20',58040.91,'37322517',NULL,'Repellendus omnis possimus iure enim qui.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,1,0,1,NULL,NULL,NULL,NULL,10),(91,'Object-based cohesive infrastructure','540855250',2,'a2c2d9f1-4fee-3937-99ba-201c185255b4','1982-09-16',14.85,'2855858',NULL,'Quia facilis amet eum accusamus expedita omnis.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,1,0,3,NULL,NULL,NULL,NULL,9),(92,'User-centric nextgeneration framework','1407060264',2,'64360e7a-e7f3-37e1-8a4a-35e8c5d4a4d6','1983-02-22',701943.52,'39532771',NULL,'Tempore commodi sed aut dolor ut libero.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,4,0,3,NULL,NULL,NULL,NULL,14),(93,'Implemented high-level functionalities','522206565',4,'4d5d7fb0-0a63-3ef2-b573-63dfa2f6c885','1996-09-30',3408.58,'46163648',NULL,'Numquam qui explicabo dolor et quis consequuntur.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,1,1,1,NULL,NULL,NULL,NULL,1),(94,'Decentralized zeroadministration approach','1317557840',2,'d822ba42-a6f8-30b3-b719-4f796912cba0','1973-09-25',538.60,'23608596',NULL,'Doloremque eos ea nostrum sint sequi.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,5,0,1,NULL,NULL,NULL,NULL,3),(95,'Optimized 3rdgeneration hardware','456187922',1,'774a815d-3235-366d-8f5d-35bd1c079dc1','2005-08-11',96654.32,'14312696',NULL,'Ab quisquam maxime architecto est delectus dolores minus.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,4,1,2,NULL,NULL,NULL,NULL,11),(96,'Exclusive leadingedge task-force','1000549766',3,'bf8134fb-ab14-30a4-ad80-c5dc5fbd2e9e','2008-04-05',1099228.44,'29187413',NULL,'Ipsum excepturi consequatur necessitatibus excepturi neque aut.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,1,1,3,NULL,NULL,NULL,NULL,8),(97,'Right-sized fault-tolerant instructionset','1081323227',3,'8f22c98c-c4cd-3031-860d-26e8e429052f','2011-09-23',178778663.20,'18280703',NULL,'Perspiciatis reprehenderit consequatur odit totam qui in adipisci.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,2,1,2,NULL,NULL,NULL,NULL,11),(98,'Business-focused systemic analyzer','1180494483',1,'5ea014ef-0001-384c-a63f-ba45cfc3ae1c','1998-06-19',5.05,'22932729',NULL,'Tenetur id vero ipsum molestias aut voluptas.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,3,0,2,NULL,NULL,NULL,NULL,9),(99,'Future-proofed dedicated portal','995595961',3,'9989615a-ca48-3a18-84ab-7bd0dd828adb','1988-09-09',28505188.20,'22468488',NULL,'Fugit ut incidunt nemo iure reiciendis ut.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,4,0,2,NULL,NULL,NULL,NULL,9),(100,'Facetoface hybrid focusgroup','1126621095',5,'a9045d81-1c28-3ee0-8101-d1d8a55a58f1','1976-12-14',3705370.96,'48014315',NULL,'Et ullam non quaerat voluptas.',NULL,1,'2016-12-19 21:50:32','2016-12-19 21:50:32',1,NULL,1,NULL,NULL,NULL,4,1,4,NULL,NULL,NULL,NULL,12); /*!40000 ALTER TABLE `assets` ENABLE KEYS */; UNLOCK TABLES; @@ -297,7 +297,7 @@ CREATE TABLE `categories` ( `category_type` varchar(255) COLLATE utf8_unicode_ci DEFAULT 'asset', `checkin_email` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -306,7 +306,7 @@ CREATE TABLE `categories` ( LOCK TABLES `categories` WRITE; /*!40000 ALTER TABLE `categories` DISABLE KEYS */; -INSERT INTO `categories` VALUES (1,'Soluta consequatur.','2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,0,0,'asset',0),(2,'Saepe repellendus.','2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,0,0,'asset',0),(3,'Hic dolores minus.','2016-11-20 23:07:29','2016-11-21 00:33:32',NULL,'2016-11-21 00:33:32',NULL,0,0,'asset',0),(4,'Qui necessitatibus.','2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,0,0,'asset',0),(5,'Beatae accusamus.','2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,0,0,'asset',0),(6,'Error cum omnis.','2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,0,0,'asset',0),(7,'Ipsam repellat id.','2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,0,0,'asset',0),(8,'Asperiores nesciunt.','2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,0,0,'asset',0),(9,'Quia sit veniam.','2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,0,0,'asset',0),(10,'Quaerat repellendus.','2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,0,0,'asset',0),(11,'Atque fuga esse.','2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,0,0,'accessory',0),(12,'Et illo error porro.','2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,0,0,'accessory',0),(13,'Soluta ipsam ea.','2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,0,0,'accessory',0),(14,'Repellat mollitia.','2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,0,0,'accessory',0),(15,'Et reprehenderit.','2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,0,0,'accessory',0),(16,'Quia unde qui.','2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,0,0,'consumable',0),(17,'Sunt quo voluptatem.','2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,0,0,'consumable',0),(18,'Voluptatum dolor.','2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,0,0,'consumable',0),(19,'Et sed doloremque.','2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,0,0,'consumable',0),(20,'Pariatur qui amet.','2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,0,0,'consumable',0),(21,'Deleniti occaecati.','2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,0,0,'component',0),(22,'Tenetur aut dolores.','2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,0,0,'component',0),(23,'Quae a ullam maxime.','2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,0,0,'component',0),(24,'Quo harum enim quo.','2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,0,0,'component',0),(25,'Nesciunt molestias.','2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,0,0,'component',0),(26,'TestModel','2016-11-21 00:33:32','2016-11-21 00:33:32',1,NULL,'lorem ipsum blah blah',0,1,'accessory',1); +INSERT INTO `categories` VALUES (1,'Consequuntur nam et.','2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,NULL,'Ab quasi ut dolore voluptas. Aperiam beatae quia voluptatum ea. Dolores in perspiciatis consequatur qui iusto eius.',0,1,'asset',0),(2,'Quas et quia rerum.','2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,NULL,'Animi veritatis molestiae provident ut culpa hic. Optio laboriosam esse totam temporibus optio. Sint dolores ea sunt eveniet. Sit aliquam et culpa reiciendis quasi.',0,0,'asset',0),(3,'Exercitationem.','2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,NULL,'Fugit et ut eos laboriosam. Unde quis labore laborum assumenda voluptatum expedita. Ut qui expedita doloremque placeat. Corrupti et quibusdam explicabo aut at est voluptatibus.',0,0,'asset',1),(4,'Ullam qui.','2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,NULL,'Soluta ipsa iure ut. Delectus est in fugiat architecto aspernatur. Consequuntur quisquam hic cum corrupti. Repudiandae aliquam perferendis vero reiciendis fugit dolores fugiat.',0,0,'asset',0),(5,'Culpa earum rerum.','2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,NULL,'Et natus nostrum aut aperiam sit soluta dolorem. Alias eum cumque dolores qui velit aliquid assumenda. Quo quia rerum omnis ducimus itaque.',0,1,'asset',0),(6,'Est ad id veniam.','2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,NULL,'Sapiente minus dolorem qui doloremque unde. Perferendis dignissimos qui nobis dolores aspernatur et. Ad ut eum eos quis voluptatem omnis.',0,1,'asset',0),(7,'Nulla commodi nobis.','2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,NULL,'Illo quam ut consequatur quo. Non quaerat sit esse quisquam aut omnis veniam autem.',0,1,'asset',1),(8,'Maxime illo quidem.','2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,NULL,'Est labore quia enim dolores autem eligendi sit. Nisi et voluptatem id praesentium. Vitae repellendus natus suscipit provident quasi non. Doloremque hic ut voluptatem dolore corrupti nihil. Et qui est iure ut voluptatem eos.',0,0,'asset',1),(9,'Dolorum ut.','2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,NULL,'Temporibus et ullam doloribus. Doloribus debitis voluptas aut et enim. Dolorem corporis cumque nulla nihil laudantium eum corrupti.',0,0,'asset',0),(10,'Repellat sed sequi.','2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,NULL,'Animi non omnis aut perferendis architecto. Dolores earum non voluptas voluptas nostrum quis aut. Et cumque non perspiciatis facere maiores quis similique. Accusantium eum perspiciatis ut doloribus quia ut.',0,0,'asset',0),(11,'Placeat sequi nulla.','2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,NULL,NULL,0,0,'accessory',0),(12,'Doloribus rem quod.','2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,NULL,NULL,0,0,'accessory',0),(13,'Ea exercitationem.','2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,NULL,NULL,0,0,'accessory',0),(14,'Temporibus rerum.','2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,NULL,NULL,0,0,'accessory',0),(15,'Molestiae quam.','2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,NULL,NULL,0,0,'accessory',0),(16,'Deserunt ex ducimus.','2016-12-19 21:50:33','2016-12-19 21:50:33',NULL,NULL,NULL,0,0,'consumable',0),(17,'Perspiciatis quas.','2016-12-19 21:50:33','2016-12-19 21:50:33',NULL,NULL,NULL,0,0,'consumable',0),(18,'Nobis tempora.','2016-12-19 21:50:33','2016-12-19 21:50:33',NULL,NULL,NULL,0,0,'consumable',0),(19,'Reiciendis tempora.','2016-12-19 21:50:33','2016-12-19 21:50:33',NULL,NULL,NULL,0,0,'consumable',0),(20,'Qui sapiente.','2016-12-19 21:50:33','2016-12-19 21:50:33',NULL,NULL,NULL,0,0,'consumable',0),(21,'Molestiae quia.','2016-12-19 21:50:33','2016-12-19 21:50:33',NULL,NULL,NULL,0,0,'component',0),(22,'Vero quos sapiente.','2016-12-19 21:50:33','2016-12-19 21:50:33',NULL,NULL,NULL,0,0,'component',0),(23,'Architecto dicta.','2016-12-19 21:50:33','2016-12-19 21:50:33',NULL,NULL,NULL,0,0,'component',0),(24,'Voluptatem et aut.','2016-12-19 21:50:33','2016-12-19 21:50:33',NULL,NULL,NULL,0,0,'component',0),(25,'Delectus iusto.','2016-12-19 21:50:33','2016-12-19 21:50:33',NULL,NULL,NULL,0,0,'component',0); /*!40000 ALTER TABLE `categories` ENABLE KEYS */; UNLOCK TABLES; @@ -353,7 +353,7 @@ CREATE TABLE `companies` ( `updated_at` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `companies_name_unique` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -362,7 +362,7 @@ CREATE TABLE `companies` ( LOCK TABLES `companies` WRITE; /*!40000 ALTER TABLE `companies` DISABLE KEYS */; -INSERT INTO `companies` VALUES (1,'Brekke-Heathcote','2016-11-20 23:07:28','2016-11-20 23:07:28'),(2,'Watsica Ltd','2016-11-20 23:07:28','2016-11-20 23:07:28'),(3,'Armstrong Group','2016-11-20 23:07:28','2016-11-20 23:07:28'),(4,'Willms, Brakus and Shields','2016-11-20 23:07:28','2016-11-20 23:07:28'),(5,'TestCompany','2016-11-21 00:33:34','2016-11-21 00:33:34'); +INSERT INTO `companies` VALUES (1,'Witting-Lynch','2016-12-19 21:50:31','2016-12-19 21:50:31'),(2,'Rippin, Muller and Luettgen','2016-12-19 21:50:31','2016-12-19 21:50:31'),(3,'Harber LLC','2016-12-19 21:50:31','2016-12-19 21:50:31'),(4,'Ortiz, Corwin and Howe','2016-12-19 21:50:31','2016-12-19 21:50:31'),(5,'Abernathy-Hagenes','2016-12-19 21:50:31','2016-12-19 21:50:31'),(6,'Sipes-Bruen','2016-12-19 21:50:31','2016-12-19 21:50:31'),(7,'Marquardt-Maggio','2016-12-19 21:50:31','2016-12-19 21:50:31'),(8,'Bayer-Mohr','2016-12-19 21:50:31','2016-12-19 21:50:31'),(9,'Kuhlman-Dickinson','2016-12-19 21:50:31','2016-12-19 21:50:31'),(10,'Bergnaum, Lesch and White','2016-12-19 21:50:31','2016-12-19 21:50:31'),(11,'Heller-Ritchie','2016-12-19 21:50:31','2016-12-19 21:50:31'),(12,'Nicolas Ltd','2016-12-19 21:50:31','2016-12-19 21:50:31'),(13,'Kiehn-Tillman','2016-12-19 21:50:31','2016-12-19 21:50:31'),(14,'Schulist PLC','2016-12-19 21:50:31','2016-12-19 21:50:31'); /*!40000 ALTER TABLE `companies` ENABLE KEYS */; UNLOCK TABLES; @@ -390,7 +390,7 @@ CREATE TABLE `components` ( `min_amt` int(11) DEFAULT NULL, `serial` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -399,7 +399,7 @@ CREATE TABLE `components` ( LOCK TABLES `components` WRITE; /*!40000 ALTER TABLE `components` DISABLE KEYS */; -INSERT INTO `components` VALUES (1,'Non rerum.',21,NULL,1,NULL,9,NULL,NULL,NULL,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,2,NULL),(2,'Ut odio nesciunt.',23,NULL,4,NULL,8,NULL,NULL,NULL,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,1,NULL),(3,'Quia eaque deleniti.',22,NULL,3,NULL,4,NULL,NULL,NULL,'2016-11-20 23:07:29','2016-11-21 00:33:37','2016-11-21 00:33:37',2,NULL),(4,'Et et voluptates.',21,NULL,4,NULL,4,NULL,NULL,NULL,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,2,NULL),(5,'In aliquid soluta.',25,NULL,2,NULL,3,NULL,NULL,NULL,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,1,NULL),(6,'Quod expedita.',23,NULL,2,NULL,5,NULL,NULL,NULL,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,2,NULL),(7,'Delectus rerum.',21,NULL,2,NULL,10,NULL,NULL,NULL,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,1,NULL),(8,'Et et molestiae.',21,NULL,1,NULL,3,NULL,NULL,NULL,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,1,NULL),(9,'Nisi praesentium.',22,NULL,1,NULL,5,NULL,NULL,NULL,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,1,NULL),(10,'Vitae vitae maxime.',22,NULL,1,NULL,8,NULL,NULL,NULL,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,1,NULL),(11,'TestComponent',25,2,2,1,12,'12345','2016-01-01',25.00,'2016-11-21 00:33:36','2016-11-21 00:33:36',NULL,6,'3062436032621632326-325632523'); +INSERT INTO `components` VALUES (1,'Quo accusantium.',25,3,14,NULL,6,'5276113','1982-10-01',146570010.65,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,1,'97446409-3f8a-3cfd-a0c2-f3b41e635e4e'),(2,'Nemo aperiam.',22,5,2,NULL,3,'13119731','1978-05-14',2.92,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,1,'d719a64b-3efc-3ec3-a9ab-b4f2c92e608a'),(3,'Dolore quia nobis.',24,4,2,NULL,4,'18938355','1977-11-30',30.00,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,1,'a628f55b-dd07-3312-bc50-9ec914edf380'),(4,'Qui eligendi et.',22,2,12,NULL,5,'46656548','1980-10-12',1.01,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,1,'d0dbbeab-b199-380c-b1ce-1ffad2b96a6b'),(5,'Doloribus explicabo.',25,1,3,NULL,9,'28269151','1996-01-08',208.29,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,1,'93f6e95d-caf0-3fbe-bbf7-9de557d809bc'),(6,'Rerum et expedita.',21,1,13,NULL,9,'31787294','1974-12-14',169.40,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,2,'3cfdbe64-af6f-3cf6-b8fb-ba56c2d04ce0'),(7,'Ut placeat nam.',23,3,6,NULL,6,'14635326','1981-09-28',136.38,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,2,'c39f550a-5188-3f45-916c-1429007e7fd4'),(8,'Assumenda nostrum.',25,3,12,NULL,9,'30435102','1971-09-25',675467.29,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,1,'0725a57c-b77d-3789-8416-5073cb4f68b8'),(9,'Cupiditate deserunt.',23,4,4,NULL,10,'41401814','1988-12-22',1.72,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,2,'64fd4267-ca2f-32aa-bedb-65b7c3de2efa'),(10,'Quaerat possimus ad.',21,2,11,NULL,6,'26163775','2007-02-11',29839.13,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,2,'ff1a4866-5da6-3b0d-ab63-0efce06899c9'); /*!40000 ALTER TABLE `components` ENABLE KEYS */; UNLOCK TABLES; @@ -458,7 +458,7 @@ CREATE TABLE `consumables` ( `manufacturer_id` int(11) DEFAULT NULL, `item_no` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -467,7 +467,7 @@ CREATE TABLE `consumables` ( LOCK TABLES `consumables` WRITE; /*!40000 ALTER TABLE `consumables` DISABLE KEYS */; -INSERT INTO `consumables` VALUES (1,'Corporis voluptate.',17,NULL,NULL,5,0,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,2,2,NULL,NULL,NULL),(2,'Quis dolores sunt.',19,NULL,NULL,10,0,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,1,1,NULL,NULL,NULL),(3,'Perferendis.',16,NULL,NULL,8,0,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,4,2,NULL,NULL,NULL),(4,'Maiores esse magni.',20,NULL,NULL,10,0,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,2,2,NULL,NULL,NULL),(5,'Vitae eum deserunt.',19,NULL,NULL,8,0,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,2,2,NULL,NULL,NULL),(6,'Nam et ab officiis.',17,NULL,NULL,9,0,'2016-11-20 23:07:29','2016-11-21 00:33:39','2016-11-21 00:33:39',NULL,NULL,NULL,3,2,NULL,NULL,NULL),(7,'Voluptates officia.',19,NULL,NULL,9,0,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,3,1,NULL,NULL,NULL),(8,'Autem reprehenderit.',19,NULL,NULL,7,0,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,3,1,NULL,NULL,NULL),(9,'Omnis fugit sed.',17,NULL,NULL,5,0,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,2,1,NULL,NULL,NULL),(10,'Quia qui.',17,NULL,NULL,10,0,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,3,1,NULL,NULL,NULL),(11,'Officiis impedit.',19,NULL,NULL,8,0,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,2,2,NULL,NULL,NULL),(12,'Sunt harum dicta.',18,NULL,NULL,7,0,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,2,1,NULL,NULL,NULL),(13,'Sed accusamus porro.',20,NULL,NULL,7,0,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,4,1,NULL,NULL,NULL),(14,'Deleniti magnam.',16,NULL,NULL,5,0,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,3,1,NULL,NULL,NULL),(15,'Fugiat.',19,NULL,NULL,6,0,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,2,1,NULL,NULL,NULL),(16,'Illum vel enim.',17,NULL,NULL,5,0,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,4,1,NULL,NULL,NULL),(17,'Debitis quae.',16,NULL,NULL,5,0,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,2,2,NULL,NULL,NULL),(18,'Nulla inventore.',20,NULL,NULL,6,0,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,1,1,NULL,NULL,NULL),(19,'Quaerat voluptatem.',18,NULL,NULL,8,0,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,3,1,NULL,NULL,NULL),(20,'Dolores.',17,NULL,NULL,6,0,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,1,1,NULL,NULL,NULL),(21,'Modi maiores.',18,NULL,NULL,8,0,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,4,1,NULL,NULL,NULL),(22,'Provident eos.',20,NULL,NULL,10,0,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,4,2,NULL,NULL,NULL),(23,'Error molestiae.',19,NULL,NULL,9,0,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,1,2,NULL,NULL,NULL),(24,'Dolor quos est rem.',18,NULL,NULL,7,0,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,2,1,NULL,NULL,NULL),(25,'Maiores facilis.',16,NULL,NULL,10,0,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,3,2,NULL,NULL,NULL),(26,'TestConsumable',21,0,1,12,0,'2016-11-21 00:33:39','2016-11-21 00:33:39',NULL,'2016-01-01',25.00,'12345',2,6,'032-356',0,'32503'); +INSERT INTO `consumables` VALUES (1,'Dolorem autem.',17,NULL,NULL,5,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'2016-02-16',507.15,'6976392',2,2,'13465702',NULL,'13353410'),(2,'Fugiat enim labore.',17,NULL,NULL,6,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'1996-11-07',21517.73,'9509607',4,1,'32881375',NULL,'30455104'),(3,'Ullam quia dolores.',18,NULL,NULL,9,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'1999-11-15',54896.12,'40573251',12,1,'21988042',NULL,'18057084'),(4,'Sunt odit atque.',18,NULL,NULL,7,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'1985-04-22',690129.28,'43303406',1,2,'49636820',NULL,'25536611'),(5,'Quam incidunt.',20,NULL,NULL,9,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'1971-12-19',2426969.19,'21877507',11,1,'32460677',NULL,'22811534'),(6,'Provident non.',19,NULL,NULL,6,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'2011-03-25',167.90,'8853497',6,2,'40203583',NULL,'16006812'),(7,'Nostrum rerum est.',19,NULL,NULL,6,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'1975-01-15',230401243.30,'9379535',2,2,'8727416',NULL,'42504871'),(8,'Nihil at.',20,NULL,NULL,9,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'2001-10-15',15556237.79,'17361470',12,2,'10398395',NULL,'25775635'),(9,'Laboriosam qui.',17,NULL,NULL,6,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'1976-03-20',653032741.28,'41913675',12,2,'24295643',NULL,'41812753'),(10,'Enim illum culpa.',20,NULL,NULL,10,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'2006-08-14',110117.47,'26935159',7,2,'30738784',NULL,'36229625'),(11,'Eum commodi eum.',18,NULL,NULL,7,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'2011-04-18',27.01,'24450060',14,2,'42782151',NULL,'43116946'),(12,'Voluptatem et esse.',18,NULL,NULL,7,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'1987-04-22',18.70,'24071954',2,2,'46802751',NULL,'46411285'),(13,'Commodi ipsum.',17,NULL,NULL,10,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'1994-06-15',0.35,'4457969',13,1,'20065743',NULL,'21985297'),(14,'Suscipit aut sed.',20,NULL,NULL,6,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'1991-02-10',4812.52,'46912386',5,1,'4471192',NULL,'22201553'),(15,'Iste eos ipsum.',20,NULL,NULL,8,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'2001-10-05',86.31,'3290625',14,1,'46937674',NULL,'44510259'),(16,'Ut unde dolores.',16,NULL,NULL,6,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'1975-06-29',58.32,'33777371',4,1,'46549686',NULL,'11400310'),(17,'Ea vel ea.',18,NULL,NULL,5,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'1980-09-08',561914353.65,'16006671',6,2,'32826525',NULL,'8161568'),(18,'Et dolorem aut.',19,NULL,NULL,10,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'2013-02-10',1.37,'24984050',6,1,'22532772',NULL,'34330878'),(19,'Atque aperiam.',20,NULL,NULL,9,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'2009-06-19',382.24,'23722665',4,1,'5598352',NULL,'49367661'),(20,'Quam sit porro.',16,NULL,NULL,5,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'2005-05-02',38.16,'48727140',10,1,'36765531',NULL,'44519233'),(21,'Voluptas soluta.',18,NULL,NULL,5,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'1976-01-06',2717.80,'43854143',8,1,'16609710',NULL,'17357462'),(22,'Asperiores eum.',20,NULL,NULL,7,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'2006-09-16',3.43,'5570944',9,1,'2701249',NULL,'13455708'),(23,'Aliquam sunt at aut.',17,NULL,NULL,6,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'2004-04-11',1.52,'37111882',3,2,'11437542',NULL,'10192323'),(24,'Autem autem fuga.',20,NULL,NULL,9,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'2014-03-10',9351.93,'34134586',14,1,'34320514',NULL,'9872607'),(25,'Ratione qui enim.',19,NULL,NULL,10,0,'2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,'1998-08-17',697456.72,'13809747',13,1,'17918268',NULL,'17347142'); /*!40000 ALTER TABLE `consumables` ENABLE KEYS */; UNLOCK TABLES; @@ -595,7 +595,7 @@ CREATE TABLE `depreciations` ( `updated_at` timestamp NULL DEFAULT NULL, `user_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -604,7 +604,7 @@ CREATE TABLE `depreciations` ( LOCK TABLES `depreciations` WRITE; /*!40000 ALTER TABLE `depreciations` DISABLE KEYS */; -INSERT INTO `depreciations` VALUES (2,'TestDepreciation',15,'2016-11-21 00:33:41','2016-11-21 00:33:41',1); +INSERT INTO `depreciations` VALUES (1,'Excepturi eius.',6,'2016-12-19 21:50:33','2016-12-19 21:50:33',NULL); /*!40000 ALTER TABLE `depreciations` ENABLE KEYS */; UNLOCK TABLES; @@ -622,7 +622,7 @@ CREATE TABLE `groups` ( `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -631,7 +631,6 @@ CREATE TABLE `groups` ( LOCK TABLES `groups` WRITE; /*!40000 ALTER TABLE `groups` DISABLE KEYS */; -INSERT INTO `groups` VALUES (2,'TestGroup','{\"superuser\":\"0\",\"admin\":\"0\",\"reports.view\":\"0\",\"assets.view\":\"0\",\"assets.create\":\"0\",\"assets.edit\":\"0\",\"assets.delete\":\"0\",\"assets.checkin\":\"0\",\"assets.checkout\":\"0\",\"assets.view.requestable\":\"0\",\"accessories.view\":\"0\",\"accessories.create\":\"0\",\"accessories.edit\":\"0\",\"accessories.delete\":\"0\",\"accessories.checkout\":\"0\",\"accessories.checkin\":\"0\",\"consumables.view\":\"0\",\"consumables.create\":\"0\",\"consumables.edit\":\"0\",\"consumables.delete\":\"0\",\"consumables.checkout\":\"0\",\"licenses.view\":\"0\",\"licenses.create\":\"0\",\"licenses.edit\":\"0\",\"licenses.delete\":\"0\",\"licenses.checkout\":\"0\",\"licenses.keys\":\"0\",\"components.view\":\"0\",\"components.create\":\"0\",\"components.edit\":\"0\",\"components.delete\":\"0\",\"components.checkout\":\"0\",\"components.checkin\":\"0\",\"users.view\":\"0\",\"users.create\":\"0\",\"users.edit\":\"0\",\"users.delete\":\"0\",\"self.two_factor\":\"0\"}','2016-11-21 00:33:44','2016-11-21 00:33:44'); /*!40000 ALTER TABLE `groups` ENABLE KEYS */; UNLOCK TABLES; @@ -653,7 +652,7 @@ CREATE TABLE `license_seats` ( `deleted_at` timestamp NULL DEFAULT NULL, `asset_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -662,7 +661,7 @@ CREATE TABLE `license_seats` ( LOCK TABLES `license_seats` WRITE; /*!40000 ALTER TABLE `license_seats` DISABLE KEYS */; -INSERT INTO `license_seats` VALUES (1,1,NULL,'Enim ratione repudiandae voluptas inventore harum nihil non.',1,'1985-04-22 07:56:43','2016-11-21 00:33:47','2016-11-21 00:33:47',NULL),(2,5,NULL,'Quidem nesciunt laudantium reprehenderit quia nemo non enim saepe.',1,'2008-11-13 14:47:37','2002-06-10 20:39:02',NULL,NULL),(3,10,NULL,'Ipsa labore repellendus magni rem.',1,'1997-03-02 08:23:45','1970-03-28 10:33:13',NULL,NULL),(4,3,NULL,'Impedit corporis sapiente numquam tenetur explicabo dolores et ipsam.',1,'1997-07-18 14:12:28','2012-11-20 06:52:26',NULL,NULL),(5,3,NULL,'Autem explicabo consequatur harum consequatur repellat voluptate.',1,'1992-02-25 09:18:12','2013-11-25 04:08:47',NULL,NULL),(6,5,NULL,'Repellendus vero voluptatem voluptate sed ipsam.',1,'1970-03-25 07:11:55','1994-07-21 11:28:55',NULL,NULL),(7,10,NULL,'Tenetur sequi blanditiis similique quaerat explicabo quibusdam excepturi.',1,'1971-07-26 14:28:52','1995-12-16 02:16:50',NULL,NULL),(8,3,NULL,'Nostrum veniam nulla quo consequatur consequatur et omnis eum.',1,'1972-09-10 03:47:34','1979-11-30 18:06:57',NULL,NULL),(9,5,NULL,'Sint nihil omnis quod accusamus.',1,'1983-04-08 19:17:09','2008-06-22 21:35:40',NULL,NULL),(10,7,NULL,'Ea et placeat quod blanditiis sed.',1,'2002-04-06 11:19:24','1996-02-14 01:10:39',NULL,NULL),(11,11,NULL,NULL,1,'2016-11-21 00:33:46','2016-11-21 00:33:46',NULL,NULL),(12,11,NULL,NULL,1,'2016-11-21 00:33:46','2016-11-21 00:33:46',NULL,NULL),(13,11,NULL,NULL,1,'2016-11-21 00:33:46','2016-11-21 00:33:46',NULL,NULL),(14,11,NULL,NULL,1,'2016-11-21 00:33:46','2016-11-21 00:33:46',NULL,NULL),(15,11,NULL,NULL,1,'2016-11-21 00:33:46','2016-11-21 00:33:46',NULL,NULL),(16,11,NULL,NULL,1,'2016-11-21 00:33:46','2016-11-21 00:33:46',NULL,NULL),(17,11,NULL,NULL,1,'2016-11-21 00:33:46','2016-11-21 00:33:46',NULL,NULL),(18,11,NULL,NULL,1,'2016-11-21 00:33:46','2016-11-21 00:33:46',NULL,NULL),(19,11,NULL,NULL,1,'2016-11-21 00:33:46','2016-11-21 00:33:46',NULL,NULL),(20,11,NULL,NULL,1,'2016-11-21 00:33:46','2016-11-21 00:33:46',NULL,NULL),(21,11,NULL,NULL,1,'2016-11-21 00:33:46','2016-11-21 00:33:46',NULL,NULL),(22,11,NULL,NULL,1,'2016-11-21 00:33:46','2016-11-21 00:33:46',NULL,NULL); +INSERT INTO `license_seats` VALUES (1,7,NULL,'Eum quam aut quia ab fugiat officiis.',1,'1979-04-17 02:53:27','1998-10-18 20:04:38',NULL,NULL),(2,1,NULL,'Blanditiis minima dolorum sed tenetur molestias.',1,'2012-05-20 16:59:26','1970-04-13 02:45:39',NULL,NULL),(3,6,NULL,'Consequatur suscipit debitis occaecati quo sunt vel qui vel.',1,'2012-03-08 05:56:23','2014-08-27 08:05:06',NULL,NULL),(4,1,NULL,'Molestiae repellendus tempore laudantium architecto non.',1,'1976-03-28 12:49:56','2013-02-20 02:58:00',NULL,NULL),(5,7,NULL,'Doloribus ratione officiis error eum eum magnam.',1,'1983-04-26 01:44:32','1975-08-27 11:45:27',NULL,NULL),(6,5,NULL,'Omnis libero nobis recusandae rerum possimus.',1,'1993-08-09 04:40:13','1989-05-15 13:53:39',NULL,NULL),(7,4,NULL,'Repudiandae perspiciatis pariatur at blanditiis.',1,'2016-11-24 21:08:57','1985-06-29 02:24:14',NULL,NULL),(8,1,NULL,'Rerum aut itaque ut est.',1,'1990-06-25 14:12:00','1990-12-09 10:53:53',NULL,NULL),(9,9,NULL,'Amet provident suscipit similique ducimus repudiandae nobis beatae.',1,'2009-08-07 14:18:58','2010-08-13 10:44:43',NULL,NULL),(10,7,NULL,'Vero facilis molestiae occaecati iure.',1,'2015-03-27 06:46:55','1989-10-16 06:21:40',NULL,NULL); /*!40000 ALTER TABLE `license_seats` ENABLE KEYS */; UNLOCK TABLES; @@ -699,7 +698,7 @@ CREATE TABLE `licenses` ( `company_id` int(10) unsigned DEFAULT NULL, `manufacturer_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -708,7 +707,7 @@ CREATE TABLE `licenses` ( LOCK TABLES `licenses` WRITE; /*!40000 ALTER TABLE `licenses` DISABLE KEYS */; -INSERT INTO `licenses` VALUES (1,'Implemented composite firmware','399629fa-69f5-3eaa-a0c0-8a53977030e3','2002-08-18',2744038.81,NULL,8,'Aut ea corrupti eligendi.',NULL,NULL,'2016-11-20 23:07:29','2016-11-21 00:33:47','2016-11-21 00:33:47','Katharina Kulas','noelia.hermann@example.com',NULL,NULL,NULL,NULL,NULL,NULL,1,3,NULL),(2,'Optimized systemic intranet','89c6abac-19d9-3b54-ae5e-66f2556f0ec3','2012-08-25',269.24,NULL,1,'Quam eos praesentium sed aut quisquam dignissimos.',NULL,NULL,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,'Mrs. Anika Cruickshank','drake.block@example.net',NULL,NULL,NULL,NULL,NULL,NULL,1,4,NULL),(3,'Expanded client-server methodology','7ae03022-765d-3791-b96f-e7fe31491061','1994-02-28',213701.76,NULL,2,'Molestiae porro dolorem vero quisquam quos praesentium debitis.',NULL,NULL,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,'Prof. Dock Schumm MD','roslyn.torp@example.org',NULL,NULL,NULL,NULL,NULL,NULL,1,2,NULL),(4,'Mandatory solution-oriented extranet','f3d92679-78db-38fa-aa9b-d93354e74d0c','1996-10-08',2725956.85,NULL,9,'Et et nesciunt quasi magnam dolorum sed.',NULL,NULL,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,'Kendra Skiles','valerie62@example.org',NULL,NULL,NULL,NULL,NULL,NULL,1,4,NULL),(5,'Secured fault-tolerant architecture','d2fe95cd-38b2-3b85-9d9f-ad325288bb06','2010-08-24',5924561.63,NULL,5,'Repellat iste laudantium eum ullam quam.',NULL,NULL,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,'Erica Kunde Jr.','genoveva16@example.org',NULL,NULL,NULL,NULL,NULL,NULL,1,1,NULL),(6,'Fundamental context-sensitive product','ac1d2639-e0a7-34e6-9141-a491f4081e06','1982-06-16',2173.49,NULL,7,'Ut non esse qui voluptas.',NULL,NULL,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,'Maryam Sawayn','raymond35@example.org',NULL,NULL,NULL,NULL,NULL,NULL,1,2,NULL),(7,'Visionary attitude-oriented collaboration','da42bf65-2aeb-315a-a05a-92b0e4dea5f0','2005-06-03',0.00,NULL,9,'Velit consequuntur cum cumque maxime voluptas.',NULL,NULL,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,'Ofelia Bogan MD','alessia.friesen@example.com',NULL,NULL,NULL,NULL,NULL,NULL,1,4,NULL),(8,'Visionary needs-based strategy','24c1090b-fda1-382b-bf30-97435c22c225','1980-05-16',394166.60,NULL,6,'Provident omnis incidunt non consequuntur molestiae et adipisci.',NULL,NULL,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,'Emile Langosh DVM','ndietrich@example.org',NULL,NULL,NULL,NULL,NULL,NULL,1,4,NULL),(9,'Public-key responsive installation','7bc5a1fe-c90e-391a-bc71-194cdaa8bfbc','1994-01-07',674379.59,NULL,9,'Reiciendis dolor excepturi consequatur velit nobis magni.',NULL,NULL,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,'Curt Gutmann','enienow@example.com',NULL,NULL,NULL,NULL,NULL,NULL,1,2,NULL),(10,'Cross-group asynchronous neural-net','1e8d0378-3fdb-3883-8bd2-a7dbf477d2dc','1986-12-28',178.51,NULL,7,'Sunt est ducimus tempora excepturi ut.',NULL,NULL,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,'Brittany Mann','pouros.cristopher@example.net',NULL,NULL,NULL,NULL,NULL,NULL,1,2,NULL),(11,'Test Software','946346-436346-346436','2016-01-01',25.00,'12345',12,'lorem ipsum omicron delta phi',1,0,'2016-11-21 00:33:46','2016-11-21 00:33:46',NULL,'Marco Polo','g@m.com',NULL,4,'2018-01-01','234562','2020-01-01',1,1,4,1); +INSERT INTO `licenses` VALUES (1,'Managed human-resource data-warehouse','922a477b-5b45-3ed6-874c-0e7de14c1881','1982-06-12',499979278.31,'12058',9,'Modi et vel cum aspernatur totam.',NULL,NULL,'2016-12-19 21:50:33','2016-12-19 21:50:33',NULL,'Samir Zboncak','shaylee30@example.org',NULL,1,NULL,'7160',NULL,NULL,1,3,NULL),(2,'Reverse-engineered neutral opensystem','c73e659c-4f0d-3068-ac19-fc8b2b19ecf9','2008-08-30',4805486.18,'6378',1,'Voluptatum veritatis non et iusto reprehenderit et sit.',NULL,NULL,'2016-12-19 21:50:33','2016-12-19 21:50:33',NULL,'Mrs. Luna Kreiger DVM','carter.tad@example.net',NULL,5,NULL,'6376',NULL,NULL,1,8,NULL),(3,'Horizontal uniform complexity','fa785f96-b3c8-3193-a711-7bc1efedd170','1987-04-21',260263734.84,'3005',4,'Officia cumque quia quas quos omnis ab.',NULL,NULL,'2016-12-19 21:50:33','2016-12-19 21:50:33',NULL,'Vergie Vandervort','opowlowski@example.net',NULL,3,NULL,'11274',NULL,NULL,1,13,NULL),(4,'Ergonomic didactic conglomeration','ec6ef12c-b410-3049-a67e-ad347cfafde8','1980-08-12',543563363.20,'8633',9,'Et fugiat architecto ut exercitationem ut aliquam ratione.',NULL,NULL,'2016-12-19 21:50:33','2016-12-19 21:50:33',NULL,'Fiona Zieme','kip.aufderhar@example.org',NULL,2,NULL,'3138',NULL,NULL,1,6,NULL),(5,'Virtual discrete hierarchy','9e9a0f16-7112-3520-94ef-4ea35f5fee91','1993-11-28',80.01,'3054',1,'Unde error illo animi.',NULL,NULL,'2016-12-19 21:50:33','2016-12-19 21:50:33',NULL,'Toy Mohr','brenda24@example.com',NULL,5,NULL,'8272',NULL,NULL,1,7,NULL),(6,'Vision-oriented client-driven hierarchy','507a0df7-bed3-3d11-aa6a-276f196314b8','2009-03-19',389822553.07,'1773',9,'Atque amet quia quas consequatur ea.',NULL,NULL,'2016-12-19 21:50:33','2016-12-19 21:50:33',NULL,'Hadley Reynolds','deckow.dino@example.com',NULL,4,NULL,'1720',NULL,NULL,1,14,NULL),(7,'Customer-focused tertiary standardization','4986e730-2f34-33da-8dcb-48797f7cb264','2010-08-15',55988090.42,'1889',9,'Voluptas beatae repellat quia.',NULL,NULL,'2016-12-19 21:50:33','2016-12-19 21:50:33',NULL,'Dr. Casper Grimes Jr.','yessenia.buckridge@example.org',NULL,1,NULL,'8278',NULL,NULL,1,6,NULL),(8,'Sharable contextually-based framework','2bca5bc2-b157-365a-84b3-d26d36a433a6','1988-08-31',458496.90,'12951',1,'Vel suscipit consequatur non exercitationem beatae facilis.',NULL,NULL,'2016-12-19 21:50:33','2016-12-19 21:50:33',NULL,'Prof. Ashton Wiza','mmonahan@example.net',NULL,5,NULL,'9662',NULL,NULL,1,3,NULL),(9,'Compatible user-facing securedline','a8f1eb71-a815-3548-81b1-07dfc6539365','2012-02-10',20240139.56,'10135',10,'Nihil consequatur et itaque.',NULL,NULL,'2016-12-19 21:50:33','2016-12-19 21:50:33',NULL,'Mr. Garett Wuckert','thartmann@example.net',NULL,3,NULL,'10645',NULL,NULL,1,5,NULL),(10,'Implemented upward-trending initiative','58ebb089-8c77-3adc-ac4e-7c557ebca861','1980-12-21',212.73,'7550',10,'Et et molestiae recusandae facere.',NULL,NULL,'2016-12-19 21:50:33','2016-12-19 21:50:33',NULL,'Dr. Jada Dach','ulices69@example.com',NULL,3,NULL,'2130',NULL,NULL,1,1,NULL); /*!40000 ALTER TABLE `licenses` ENABLE KEYS */; UNLOCK TABLES; @@ -735,7 +734,7 @@ CREATE TABLE `locations` ( `parent_id` int(11) DEFAULT NULL, `currency` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -744,7 +743,7 @@ CREATE TABLE `locations` ( LOCK TABLES `locations` WRITE; /*!40000 ALTER TABLE `locations` DISABLE KEYS */; -INSERT INTO `locations` VALUES (1,'New Edd','Margieton','FL','UM','2016-11-20 23:07:30','2016-11-20 23:07:30',NULL,NULL,NULL,NULL,NULL,NULL,'AUD'),(2,'Hesselside','Daletown','WA','AM','2016-11-20 23:07:30','2016-11-20 23:07:30',NULL,NULL,NULL,NULL,NULL,NULL,'SCR'),(3,'South Cleoramouth','Gudrunville','MD','MS','2016-11-20 23:07:30','2016-11-20 23:07:30',NULL,NULL,NULL,NULL,NULL,NULL,'TTD'),(4,'Breitenbergview','Rolfsonmouth','NH','DE','2016-11-20 23:07:30','2016-11-20 23:07:30',NULL,NULL,NULL,NULL,NULL,NULL,'JOD'),(5,'Beahanmouth','Haylieland','IL','SO','2016-11-20 23:07:30','2016-11-20 23:07:30',NULL,NULL,NULL,NULL,NULL,NULL,'ZWL'),(6,'Test Location','Sutherland','BV','AF','2016-11-21 00:33:49','2016-11-21 00:33:49',1,'046t46 South Street','Apt 356','30266','2016-11-21 00:33:49',3,'YEN'); +INSERT INTO `locations` VALUES (1,'Multi-lateral 24hour hub','North Llewellyn','IN','BJ','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,'13212 Schmidt Extensions Suite 682','Apt. 456','67559',NULL,NULL,'TWD'),(2,'Streamlined value-added firmware','East Johnathonville','IL','BS','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,'9429 Koch Village','Suite 789','51112-9226',NULL,NULL,'TTD'),(3,'Persistent asynchronous frame','New Delphaside','AK','LR','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,'7600 Howell Valleys Apt. 730','Suite 939','26693',NULL,NULL,'JPY'),(4,'Inverse optimal array','Port Laura','DE','SC','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,'9542 Cronin Crescent Apt. 550','Suite 792','56208-6621',NULL,NULL,'SYP'),(5,'Networked zeroadministration standardization','Paucekfort','FL','MZ','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,'187 Gerhold Harbor Suite 314','Suite 620','68500',NULL,NULL,'CLF'); /*!40000 ALTER TABLE `locations` ENABLE KEYS */; UNLOCK TABLES; @@ -763,7 +762,7 @@ CREATE TABLE `manufacturers` ( `user_id` int(11) DEFAULT NULL, `deleted_at` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -772,7 +771,7 @@ CREATE TABLE `manufacturers` ( LOCK TABLES `manufacturers` WRITE; /*!40000 ALTER TABLE `manufacturers` DISABLE KEYS */; -INSERT INTO `manufacturers` VALUES (1,'Schaden, Waters and Koelpin','2016-11-20 23:07:30','2016-11-20 23:07:30',NULL,NULL),(2,'Harber Group','2016-11-20 23:07:30','2016-11-20 23:07:30',NULL,NULL),(3,'Johnson, Skiles and Howell','2016-11-20 23:07:30','2016-11-20 23:07:30',NULL,NULL),(4,'Krajcik, Gutmann and Walter','2016-11-20 23:07:30','2016-11-21 00:33:52',NULL,'2016-11-21 00:33:52'),(5,'Stark, Bradtke and Rohan','2016-11-20 23:07:30','2016-11-20 23:07:30',NULL,NULL),(6,'Gulgowski, Renner and Lebsack','2016-11-20 23:07:30','2016-11-20 23:07:30',NULL,NULL),(7,'Murazik-Lakin','2016-11-20 23:07:30','2016-11-20 23:07:30',NULL,NULL),(8,'Fahey and Sons','2016-11-20 23:07:30','2016-11-20 23:07:30',NULL,NULL),(9,'Leannon Ltd','2016-11-20 23:07:30','2016-11-20 23:07:30',NULL,NULL),(10,'Romaguera-Heidenreich','2016-11-20 23:07:30','2016-11-20 23:07:30',NULL,NULL),(11,'Testufacturer','2016-11-21 00:33:52','2016-11-21 00:33:52',1,NULL); +INSERT INTO `manufacturers` VALUES (1,'Hansen and Sons','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL),(2,'Walker-Kiehn','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL),(3,'Crooks, Mante and Cruickshank','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL),(4,'Larson and Sons','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL),(5,'Koss Ltd','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL),(6,'Bruen-Adams','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL),(7,'Smith LLC','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL),(8,'Johnston, Cummings and Blanda','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL),(9,'Welch and Sons','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL),(10,'Raynor Ltd','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL); /*!40000 ALTER TABLE `manufacturers` ENABLE KEYS */; UNLOCK TABLES; @@ -784,9 +783,11 @@ DROP TABLE IF EXISTS `migrations`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `migrations` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `migration` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `batch` int(11) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + `batch` int(11) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=215 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -795,7 +796,7 @@ CREATE TABLE `migrations` ( LOCK TABLES `migrations` WRITE; /*!40000 ALTER TABLE `migrations` DISABLE KEYS */; -INSERT INTO `migrations` VALUES ('2012_12_06_225921_migration_cartalyst_sentry_install_users',1),('2012_12_06_225929_migration_cartalyst_sentry_install_groups',1),('2012_12_06_225945_migration_cartalyst_sentry_install_users_groups_pivot',1),('2012_12_06_225988_migration_cartalyst_sentry_install_throttle',1),('2013_03_23_193214_update_users_table',1),('2013_11_13_075318_create_models_table',1),('2013_11_13_075335_create_categories_table',1),('2013_11_13_075347_create_manufacturers_table',1),('2013_11_15_015858_add_user_id_to_categories',1),('2013_11_15_112701_add_user_id_to_manufacturers',1),('2013_11_15_190327_create_assets_table',1),('2013_11_15_190357_create_licenses_table',1),('2013_11_15_201848_add_license_name_to_licenses',1),('2013_11_16_040323_create_depreciations_table',1),('2013_11_16_042851_add_depreciation_id_to_models',1),('2013_11_16_084923_add_user_id_to_models',1),('2013_11_16_103258_create_locations_table',1),('2013_11_16_103336_add_location_id_to_assets',1),('2013_11_16_103407_add_checkedout_to_to_assets',1),('2013_11_16_103425_create_history_table',1),('2013_11_17_054359_drop_licenses_table',1),('2013_11_17_054526_add_physical_to_assets',1),('2013_11_17_055126_create_settings_table',1),('2013_11_17_062634_add_license_to_assets',1),('2013_11_18_134332_add_contacts_to_users',1),('2013_11_18_142847_add_info_to_locations',1),('2013_11_18_152942_remove_location_id_from_asset',1),('2013_11_18_164423_set_nullvalues_for_user',1),('2013_11_19_013337_create_asset_logs_table',1),('2013_11_19_061409_edit_added_on_asset_logs_table',1),('2013_11_19_062250_edit_location_id_asset_logs_table',1),('2013_11_20_055822_add_soft_delete_on_assets',1),('2013_11_20_121404_add_soft_delete_on_locations',1),('2013_11_20_123137_add_soft_delete_on_manufacturers',1),('2013_11_20_123725_add_soft_delete_on_categories',1),('2013_11_20_130248_create_status_labels',1),('2013_11_20_130830_add_status_id_on_assets_table',1),('2013_11_20_131544_add_status_type_on_status_labels',1),('2013_11_20_134103_add_archived_to_assets',1),('2013_11_21_002321_add_uploads_table',1),('2013_11_21_024531_remove_deployable_boolean_from_status_labels',1),('2013_11_22_075308_add_option_label_to_settings_table',1),('2013_11_22_213400_edits_to_settings_table',1),('2013_11_25_013244_create_licenses_table',1),('2013_11_25_031458_create_license_seats_table',1),('2013_11_25_032022_add_type_to_actionlog_table',1),('2013_11_25_033008_delete_bad_licenses_table',1),('2013_11_25_033131_create_new_licenses_table',1),('2013_11_25_033534_add_licensed_to_licenses_table',1),('2013_11_25_101308_add_warrantee_to_assets_table',1),('2013_11_25_104343_alter_warranty_column_on_assets',1),('2013_11_25_150450_drop_parent_from_categories',1),('2013_11_25_151920_add_depreciate_to_assets',1),('2013_11_25_152903_add_depreciate_to_licenses_table',1),('2013_11_26_211820_drop_license_from_assets_table',1),('2013_11_27_062510_add_note_to_asset_logs_table',1),('2013_12_01_113426_add_filename_to_asset_log',1),('2013_12_06_094618_add_nullable_to_licenses_table',1),('2013_12_10_084038_add_eol_on_models_table',1),('2013_12_12_055218_add_manager_to_users_table',1),('2014_01_28_031200_add_qr_code_to_settings_table',1),('2014_02_13_183016_add_qr_text_to_settings_table',1),('2014_05_24_093839_alter_default_license_depreciation_id',1),('2014_05_27_231658_alter_default_values_licenses',1),('2014_06_19_191508_add_asset_name_to_settings',1),('2014_06_20_004847_make_asset_log_checkedout_to_nullable',1),('2014_06_20_005050_make_asset_log_purchasedate_to_nullable',1),('2014_06_24_003011_add_suppliers',1),('2014_06_24_010742_add_supplier_id_to_asset',1),('2014_06_24_012839_add_zip_to_supplier',1),('2014_06_24_033908_add_url_to_supplier',1),('2014_07_08_054116_add_employee_id_to_users',1),('2014_07_09_134316_add_requestable_to_assets',1),('2014_07_17_085822_add_asset_to_software',1),('2014_07_17_161625_make_asset_id_in_logs_nullable',1),('2014_08_12_053504_alpha_0_4_2_release',1),('2014_08_17_083523_make_location_id_nullable',1),('2014_10_16_200626_add_rtd_location_to_assets',1),('2014_10_24_000417_alter_supplier_state_to_32',1),('2014_10_24_015641_add_display_checkout_date',1),('2014_10_28_222654_add_avatar_field_to_users_table',1),('2014_10_29_045924_add_image_field_to_models_table',1),('2014_11_01_214955_add_eol_display_to_settings',1),('2014_11_04_231416_update_group_field_for_reporting',1),('2014_11_05_212408_add_fields_to_licenses',1),('2014_11_07_021042_add_image_to_supplier',1),('2014_11_20_203007_add_username_to_user',1),('2014_11_20_223947_add_auto_to_settings',1),('2014_11_20_224421_add_prefix_to_settings',1),('2014_11_21_104401_change_licence_type',1),('2014_12_09_082500_add_fields_maintained_term_to_licenses',1),('2015_02_04_155757_increase_user_field_lengths',1),('2015_02_07_013537_add_soft_deleted_to_log',1),('2015_02_10_040958_fix_bad_assigned_to_ids',1),('2015_02_10_053310_migrate_data_to_new_statuses',1),('2015_02_11_044104_migrate_make_license_assigned_null',1),('2015_02_11_104406_migrate_create_requests_table',1),('2015_02_12_001312_add_mac_address_to_asset',1),('2015_02_12_024100_change_license_notes_type',1),('2015_02_17_231020_add_localonly_to_settings',1),('2015_02_19_222322_add_logo_and_colors_to_settings',1),('2015_02_24_072043_add_alerts_to_settings',1),('2015_02_25_022931_add_eula_fields',1),('2015_02_25_204513_add_accessories_table',1),('2015_02_26_091228_add_accessories_user_table',1),('2015_02_26_115128_add_deleted_at_models',1),('2015_02_26_233005_add_category_type',1),('2015_03_01_231912_update_accepted_at_to_acceptance_id',1),('2015_03_05_011929_add_qr_type_to_settings',1),('2015_03_18_055327_add_note_to_user',1),('2015_04_29_234704_add_slack_to_settings',1),('2015_05_04_085151_add_parent_id_to_locations_table',1),('2015_05_22_124421_add_reassignable_to_licenses',1),('2015_06_10_003314_fix_default_for_user_notes',1),('2015_06_10_003554_create_consumables',1),('2015_06_15_183253_move_email_to_username',1),('2015_06_23_070346_make_email_nullable',1),('2015_06_26_213716_create_asset_maintenances_table',1),('2015_07_04_212443_create_custom_fields_table',1),('2015_07_09_014359_add_currency_to_settings_and_locations',1),('2015_07_21_122022_add_expected_checkin_date_to_asset_logs',1),('2015_07_24_093845_add_checkin_email_to_category_table',1),('2015_07_25_055415_remove_email_unique_constraint',1),('2015_07_29_230054_add_thread_id_to_asset_logs_table',1),('2015_07_31_015430_add_accepted_to_assets',1),('2015_09_09_195301_add_custom_css_to_settings',1),('2015_09_21_235926_create_custom_field_custom_fieldset',1),('2015_09_22_000104_create_custom_fieldsets',1),('2015_09_22_003321_add_fieldset_id_to_assets',1),('2015_09_22_003413_migrate_mac_address',1),('2015_09_28_003314_fix_default_purchase_order',1),('2015_10_01_024551_add_accessory_consumable_price_info',1),('2015_10_12_192706_add_brand_to_settings',1),('2015_10_22_003314_fix_defaults_accessories',1),('2015_10_23_182625_add_checkout_time_and_expected_checkout_date_to_assets',1),('2015_11_05_061015_create_companies_table',1),('2015_11_05_061115_add_company_id_to_consumables_table',1),('2015_11_05_183749_image',1),('2015_11_06_092038_add_company_id_to_accessories_table',1),('2015_11_06_100045_add_company_id_to_users_table',1),('2015_11_06_134742_add_company_id_to_licenses_table',1),('2015_11_08_035832_add_company_id_to_assets_table',1),('2015_11_08_222305_add_ldap_fields_to_settings',1),('2015_11_15_151803_add_full_multiple_companies_support_to_settings_table',1),('2015_11_26_195528_import_ldap_settings',1),('2015_11_30_191504_remove_fk_company_id',1),('2015_12_21_193006_add_ldap_server_cert_ignore_to_settings_table',1),('2015_12_30_233509_add_timestamp_and_userId_to_custom_fields',1),('2015_12_30_233658_add_timestamp_and_userId_to_custom_fieldsets',1),('2016_01_28_041048_add_notes_to_models',1),('2016_02_19_070119_add_remember_token_to_users_table',1),('2016_02_19_073625_create_password_resets_table',1),('2016_03_02_193043_add_ldap_flag_to_users',1),('2016_03_02_220517_update_ldap_filter_to_longer_field',1),('2016_03_08_225351_create_components_table',1),('2016_03_09_024038_add_min_stock_to_tables',1),('2016_03_10_133849_add_locale_to_users',1),('2016_03_10_135519_add_locale_to_settings',1),('2016_03_11_185621_add_label_settings_to_settings',1),('2016_03_22_125911_fix_custom_fields_regexes',1),('2016_04_28_141554_add_show_to_users',1),('2016_05_16_164733_add_model_mfg_to_consumable',1),('2016_05_19_180351_add_alt_barcode_settings',1),('2016_05_19_191146_add_alter_interval',1),('2016_05_19_192226_add_inventory_threshold',1),('2016_05_20_024859_remove_option_keys_from_settings_table',1),('2016_05_20_143758_remove_option_value_from_settings_table',1),('2016_06_01_140218_add_email_domain_and_format_to_settings',1),('2016_06_22_160725_add_user_id_to_maintenances',1),('2016_07_13_150015_add_is_ad_to_settings',1),('2016_07_14_153609_add_ad_domain_to_settings',1),('2016_07_22_003348_fix_custom_fields_regex_stuff',1),('2016_07_22_054850_one_more_mac_addr_fix',1),('2016_07_22_143045_add_port_to_ldap_settings',1),('2016_07_22_153432_add_tls_to_ldap_settings',1),('2016_07_27_211034_add_zerofill_to_settings',1),('2016_08_02_124944_add_color_to_statuslabel',1),('2016_08_04_134500_add_disallow_ldap_pw_sync_to_settings',1),('2016_08_09_002225_add_manufacturer_to_licenses',1),('2016_08_12_121613_add_manufacturer_to_accessories_table',1),('2016_08_23_143353_add_new_fields_to_custom_fields',1),('2016_08_23_145619_add_show_in_nav_to_status_labels',1),('2016_08_30_084634_make_purchase_cost_nullable',1),('2016_09_01_141051_add_requestable_to_asset_model',1),('2016_09_02_001448_create_checkout_requests_table',1),('2016_09_04_180400_create_actionlog_table',1),('2016_09_04_182149_migrate_asset_log_to_action_log',1),('2016_09_19_235935_fix_fieldtype_for_target_type',1),('2016_09_23_140722_fix_modelno_in_consumables_to_string',1),('2016_09_28_231359_add_company_to_logs',1),('2016_10_14_130709_fix_order_number_to_varchar',1),('2016_10_19_145520_fix_order_number_in_components_to_string',1),('2016_10_27_151715_add_serial_to_components',1),('2016_10_27_213251_increase_serial_field_capacity',1),('2016_10_29_002724_enable_2fa_fields',1),('2016_10_29_082408_add_signature_to_acceptance',1),('2016_11_01_030818_fix_forgotten_filename_in_action_logs',1),('2016_10_16_015024_rename_modelno_to_model_number',2),('2016_10_16_015211_rename_consumable_modelno_to_model_number',2),('2016_10_16_143235_rename_model_note_to_notes',2),('2016_10_16_165052_rename_component_total_qty_to_qty',2),('2016_11_13_020954_rename_component_serial_number_to_serial',2),('2016_11_16_172119_increase_purchase_cost_size',3),('2016_11_17_161317_longer_state_field_in_location',3),('2016_11_17_193706_add_model_number_to_accessories',3),('2016_06_01_000001_create_oauth_auth_codes_table',4),('2016_06_01_000002_create_oauth_access_tokens_table',4),('2016_06_01_000003_create_oauth_refresh_tokens_table',4),('2016_06_01_000004_create_oauth_clients_table',4),('2016_06_01_000005_create_oauth_personal_access_clients_table',4),('2016_11_24_160405_add_missing_target_type_to_logs_table',4),('2016_12_07_173720_increase_size_of_state_in_suppliers',4),('2016_12_19_004212_adjust_locale_length_to_10',4); +INSERT INTO `migrations` VALUES (1,'2012_12_06_225921_migration_cartalyst_sentry_install_users',1),(2,'2012_12_06_225929_migration_cartalyst_sentry_install_groups',1),(3,'2012_12_06_225945_migration_cartalyst_sentry_install_users_groups_pivot',1),(4,'2012_12_06_225988_migration_cartalyst_sentry_install_throttle',1),(5,'2013_03_23_193214_update_users_table',1),(6,'2013_11_13_075318_create_models_table',1),(7,'2013_11_13_075335_create_categories_table',1),(8,'2013_11_13_075347_create_manufacturers_table',1),(9,'2013_11_15_015858_add_user_id_to_categories',1),(10,'2013_11_15_112701_add_user_id_to_manufacturers',1),(11,'2013_11_15_190327_create_assets_table',1),(12,'2013_11_15_190357_create_licenses_table',1),(13,'2013_11_15_201848_add_license_name_to_licenses',1),(14,'2013_11_16_040323_create_depreciations_table',1),(15,'2013_11_16_042851_add_depreciation_id_to_models',1),(16,'2013_11_16_084923_add_user_id_to_models',1),(17,'2013_11_16_103258_create_locations_table',1),(18,'2013_11_16_103336_add_location_id_to_assets',1),(19,'2013_11_16_103407_add_checkedout_to_to_assets',1),(20,'2013_11_16_103425_create_history_table',1),(21,'2013_11_17_054359_drop_licenses_table',1),(22,'2013_11_17_054526_add_physical_to_assets',1),(23,'2013_11_17_055126_create_settings_table',1),(24,'2013_11_17_062634_add_license_to_assets',1),(25,'2013_11_18_134332_add_contacts_to_users',1),(26,'2013_11_18_142847_add_info_to_locations',1),(27,'2013_11_18_152942_remove_location_id_from_asset',1),(28,'2013_11_18_164423_set_nullvalues_for_user',1),(29,'2013_11_19_013337_create_asset_logs_table',1),(30,'2013_11_19_061409_edit_added_on_asset_logs_table',1),(31,'2013_11_19_062250_edit_location_id_asset_logs_table',1),(32,'2013_11_20_055822_add_soft_delete_on_assets',1),(33,'2013_11_20_121404_add_soft_delete_on_locations',1),(34,'2013_11_20_123137_add_soft_delete_on_manufacturers',1),(35,'2013_11_20_123725_add_soft_delete_on_categories',1),(36,'2013_11_20_130248_create_status_labels',1),(37,'2013_11_20_130830_add_status_id_on_assets_table',1),(38,'2013_11_20_131544_add_status_type_on_status_labels',1),(39,'2013_11_20_134103_add_archived_to_assets',1),(40,'2013_11_21_002321_add_uploads_table',1),(41,'2013_11_21_024531_remove_deployable_boolean_from_status_labels',1),(42,'2013_11_22_075308_add_option_label_to_settings_table',1),(43,'2013_11_22_213400_edits_to_settings_table',1),(44,'2013_11_25_013244_create_licenses_table',1),(45,'2013_11_25_031458_create_license_seats_table',1),(46,'2013_11_25_032022_add_type_to_actionlog_table',1),(47,'2013_11_25_033008_delete_bad_licenses_table',1),(48,'2013_11_25_033131_create_new_licenses_table',1),(49,'2013_11_25_033534_add_licensed_to_licenses_table',1),(50,'2013_11_25_101308_add_warrantee_to_assets_table',1),(51,'2013_11_25_104343_alter_warranty_column_on_assets',1),(52,'2013_11_25_150450_drop_parent_from_categories',1),(53,'2013_11_25_151920_add_depreciate_to_assets',1),(54,'2013_11_25_152903_add_depreciate_to_licenses_table',1),(55,'2013_11_26_211820_drop_license_from_assets_table',1),(56,'2013_11_27_062510_add_note_to_asset_logs_table',1),(57,'2013_12_01_113426_add_filename_to_asset_log',1),(58,'2013_12_06_094618_add_nullable_to_licenses_table',1),(59,'2013_12_10_084038_add_eol_on_models_table',1),(60,'2013_12_12_055218_add_manager_to_users_table',1),(61,'2014_01_28_031200_add_qr_code_to_settings_table',1),(62,'2014_02_13_183016_add_qr_text_to_settings_table',1),(63,'2014_05_24_093839_alter_default_license_depreciation_id',1),(64,'2014_05_27_231658_alter_default_values_licenses',1),(65,'2014_06_19_191508_add_asset_name_to_settings',1),(66,'2014_06_20_004847_make_asset_log_checkedout_to_nullable',1),(67,'2014_06_20_005050_make_asset_log_purchasedate_to_nullable',1),(68,'2014_06_24_003011_add_suppliers',1),(69,'2014_06_24_010742_add_supplier_id_to_asset',1),(70,'2014_06_24_012839_add_zip_to_supplier',1),(71,'2014_06_24_033908_add_url_to_supplier',1),(72,'2014_07_08_054116_add_employee_id_to_users',1),(73,'2014_07_09_134316_add_requestable_to_assets',1),(74,'2014_07_17_085822_add_asset_to_software',1),(75,'2014_07_17_161625_make_asset_id_in_logs_nullable',1),(76,'2014_08_12_053504_alpha_0_4_2_release',1),(77,'2014_08_17_083523_make_location_id_nullable',1),(78,'2014_10_16_200626_add_rtd_location_to_assets',1),(79,'2014_10_24_000417_alter_supplier_state_to_32',1),(80,'2014_10_24_015641_add_display_checkout_date',1),(81,'2014_10_28_222654_add_avatar_field_to_users_table',1),(82,'2014_10_29_045924_add_image_field_to_models_table',1),(83,'2014_11_01_214955_add_eol_display_to_settings',1),(84,'2014_11_04_231416_update_group_field_for_reporting',1),(85,'2014_11_05_212408_add_fields_to_licenses',1),(86,'2014_11_07_021042_add_image_to_supplier',1),(87,'2014_11_20_203007_add_username_to_user',1),(88,'2014_11_20_223947_add_auto_to_settings',1),(89,'2014_11_20_224421_add_prefix_to_settings',1),(90,'2014_11_21_104401_change_licence_type',1),(91,'2014_12_09_082500_add_fields_maintained_term_to_licenses',1),(92,'2015_02_04_155757_increase_user_field_lengths',1),(93,'2015_02_07_013537_add_soft_deleted_to_log',1),(94,'2015_02_10_040958_fix_bad_assigned_to_ids',1),(95,'2015_02_10_053310_migrate_data_to_new_statuses',1),(96,'2015_02_11_044104_migrate_make_license_assigned_null',1),(97,'2015_02_11_104406_migrate_create_requests_table',1),(98,'2015_02_12_001312_add_mac_address_to_asset',1),(99,'2015_02_12_024100_change_license_notes_type',1),(100,'2015_02_17_231020_add_localonly_to_settings',1),(101,'2015_02_19_222322_add_logo_and_colors_to_settings',1),(102,'2015_02_24_072043_add_alerts_to_settings',1),(103,'2015_02_25_022931_add_eula_fields',1),(104,'2015_02_25_204513_add_accessories_table',1),(105,'2015_02_26_091228_add_accessories_user_table',1),(106,'2015_02_26_115128_add_deleted_at_models',1),(107,'2015_02_26_233005_add_category_type',1),(108,'2015_03_01_231912_update_accepted_at_to_acceptance_id',1),(109,'2015_03_05_011929_add_qr_type_to_settings',1),(110,'2015_03_18_055327_add_note_to_user',1),(111,'2015_04_29_234704_add_slack_to_settings',1),(112,'2015_05_04_085151_add_parent_id_to_locations_table',1),(113,'2015_05_22_124421_add_reassignable_to_licenses',1),(114,'2015_06_10_003314_fix_default_for_user_notes',1),(115,'2015_06_10_003554_create_consumables',1),(116,'2015_06_15_183253_move_email_to_username',1),(117,'2015_06_23_070346_make_email_nullable',1),(118,'2015_06_26_213716_create_asset_maintenances_table',1),(119,'2015_07_04_212443_create_custom_fields_table',1),(120,'2015_07_09_014359_add_currency_to_settings_and_locations',1),(121,'2015_07_21_122022_add_expected_checkin_date_to_asset_logs',1),(122,'2015_07_24_093845_add_checkin_email_to_category_table',1),(123,'2015_07_25_055415_remove_email_unique_constraint',1),(124,'2015_07_29_230054_add_thread_id_to_asset_logs_table',1),(125,'2015_07_31_015430_add_accepted_to_assets',1),(126,'2015_09_09_195301_add_custom_css_to_settings',1),(127,'2015_09_21_235926_create_custom_field_custom_fieldset',1),(128,'2015_09_22_000104_create_custom_fieldsets',1),(129,'2015_09_22_003321_add_fieldset_id_to_assets',1),(130,'2015_09_22_003413_migrate_mac_address',1),(131,'2015_09_28_003314_fix_default_purchase_order',1),(132,'2015_10_01_024551_add_accessory_consumable_price_info',1),(133,'2015_10_12_192706_add_brand_to_settings',1),(134,'2015_10_22_003314_fix_defaults_accessories',1),(135,'2015_10_23_182625_add_checkout_time_and_expected_checkout_date_to_assets',1),(136,'2015_11_05_061015_create_companies_table',1),(137,'2015_11_05_061115_add_company_id_to_consumables_table',1),(138,'2015_11_05_183749_image',1),(139,'2015_11_06_092038_add_company_id_to_accessories_table',1),(140,'2015_11_06_100045_add_company_id_to_users_table',1),(141,'2015_11_06_134742_add_company_id_to_licenses_table',1),(142,'2015_11_08_035832_add_company_id_to_assets_table',1),(143,'2015_11_08_222305_add_ldap_fields_to_settings',1),(144,'2015_11_15_151803_add_full_multiple_companies_support_to_settings_table',1),(145,'2015_11_26_195528_import_ldap_settings',1),(146,'2015_11_30_191504_remove_fk_company_id',1),(147,'2015_12_21_193006_add_ldap_server_cert_ignore_to_settings_table',1),(148,'2015_12_30_233509_add_timestamp_and_userId_to_custom_fields',1),(149,'2015_12_30_233658_add_timestamp_and_userId_to_custom_fieldsets',1),(150,'2016_01_28_041048_add_notes_to_models',1),(151,'2016_02_19_070119_add_remember_token_to_users_table',1),(152,'2016_02_19_073625_create_password_resets_table',1),(153,'2016_03_02_193043_add_ldap_flag_to_users',1),(154,'2016_03_02_220517_update_ldap_filter_to_longer_field',1),(155,'2016_03_08_225351_create_components_table',1),(156,'2016_03_09_024038_add_min_stock_to_tables',1),(157,'2016_03_10_133849_add_locale_to_users',1),(158,'2016_03_10_135519_add_locale_to_settings',1),(159,'2016_03_11_185621_add_label_settings_to_settings',1),(160,'2016_03_22_125911_fix_custom_fields_regexes',1),(161,'2016_04_28_141554_add_show_to_users',1),(162,'2016_05_16_164733_add_model_mfg_to_consumable',1),(163,'2016_05_19_180351_add_alt_barcode_settings',1),(164,'2016_05_19_191146_add_alter_interval',1),(165,'2016_05_19_192226_add_inventory_threshold',1),(166,'2016_05_20_024859_remove_option_keys_from_settings_table',1),(167,'2016_05_20_143758_remove_option_value_from_settings_table',1),(168,'2016_06_01_000001_create_oauth_auth_codes_table',1),(169,'2016_06_01_000002_create_oauth_access_tokens_table',1),(170,'2016_06_01_000003_create_oauth_refresh_tokens_table',1),(171,'2016_06_01_000004_create_oauth_clients_table',1),(172,'2016_06_01_000005_create_oauth_personal_access_clients_table',1),(173,'2016_06_01_140218_add_email_domain_and_format_to_settings',1),(174,'2016_06_22_160725_add_user_id_to_maintenances',1),(175,'2016_07_13_150015_add_is_ad_to_settings',1),(176,'2016_07_14_153609_add_ad_domain_to_settings',1),(177,'2016_07_22_003348_fix_custom_fields_regex_stuff',1),(178,'2016_07_22_054850_one_more_mac_addr_fix',1),(179,'2016_07_22_143045_add_port_to_ldap_settings',1),(180,'2016_07_22_153432_add_tls_to_ldap_settings',1),(181,'2016_07_27_211034_add_zerofill_to_settings',1),(182,'2016_08_02_124944_add_color_to_statuslabel',1),(183,'2016_08_04_134500_add_disallow_ldap_pw_sync_to_settings',1),(184,'2016_08_09_002225_add_manufacturer_to_licenses',1),(185,'2016_08_12_121613_add_manufacturer_to_accessories_table',1),(186,'2016_08_23_143353_add_new_fields_to_custom_fields',1),(187,'2016_08_23_145619_add_show_in_nav_to_status_labels',1),(188,'2016_08_30_084634_make_purchase_cost_nullable',1),(189,'2016_09_01_141051_add_requestable_to_asset_model',1),(190,'2016_09_02_001448_create_checkout_requests_table',1),(191,'2016_09_04_180400_create_actionlog_table',1),(192,'2016_09_04_182149_migrate_asset_log_to_action_log',1),(193,'2016_09_19_235935_fix_fieldtype_for_target_type',1),(194,'2016_09_23_140722_fix_modelno_in_consumables_to_string',1),(195,'2016_09_28_231359_add_company_to_logs',1),(196,'2016_10_14_130709_fix_order_number_to_varchar',1),(197,'2016_10_16_015024_rename_modelno_to_model_number',1),(198,'2016_10_16_015211_rename_consumable_modelno_to_model_number',1),(199,'2016_10_16_143235_rename_model_note_to_notes',1),(200,'2016_10_16_165052_rename_component_total_qty_to_qty',1),(201,'2016_10_19_145520_fix_order_number_in_components_to_string',1),(202,'2016_10_27_151715_add_serial_to_components',1),(203,'2016_10_27_213251_increase_serial_field_capacity',1),(204,'2016_10_29_002724_enable_2fa_fields',1),(205,'2016_10_29_082408_add_signature_to_acceptance',1),(206,'2016_11_01_030818_fix_forgotten_filename_in_action_logs',1),(207,'2016_11_13_020954_rename_component_serial_number_to_serial',1),(208,'2016_11_16_172119_increase_purchase_cost_size',1),(209,'2016_11_17_161317_longer_state_field_in_location',1),(210,'2016_11_17_193706_add_model_number_to_accessories',1),(211,'2016_11_24_160405_add_missing_target_type_to_logs_table',1),(212,'2016_12_07_173720_increase_size_of_state_in_suppliers',1),(213,'2016_12_19_004212_adjust_locale_length_to_10',1),(214,'2016_12_19_133936_extend_phone_lengths_in_supplier_and_elsewhere',1); /*!40000 ALTER TABLE `migrations` ENABLE KEYS */; UNLOCK TABLES; @@ -824,7 +825,7 @@ CREATE TABLE `models` ( `notes` longtext COLLATE utf8_unicode_ci, `requestable` tinyint(4) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -833,7 +834,7 @@ CREATE TABLE `models` ( LOCK TABLES `models` WRITE; /*!40000 ALTER TABLE `models` DISABLE KEYS */; -INSERT INTO `models` VALUES (1,'Organized zerotolerance strategy','41955019',3,1,'2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,NULL,1,NULL,0,NULL,NULL,NULL,0),(2,'Operative responsive focusgroup','36408246',7,5,'2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,NULL,1,NULL,0,NULL,NULL,NULL,0),(3,'Operative actuating success','44231380',8,4,'2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,NULL,1,NULL,0,NULL,NULL,NULL,0),(4,'Configurable 3rdgeneration success','17070824',1,2,'2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,NULL,1,NULL,0,NULL,NULL,NULL,0),(5,'Multi-channelled background model','25964380',2,2,'2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,NULL,1,NULL,0,NULL,NULL,NULL,0),(6,'Test Model','',2,5,'2016-11-20 23:12:49','2016-11-21 00:33:29',0,1,0,NULL,0,'2016-11-21 00:33:29',NULL,'',0),(7,'TestModel','350335',8,11,'2016-11-21 00:33:28','2016-11-21 00:33:28',0,1,12,NULL,0,NULL,NULL,'lorem ipsum blah blah',1); +INSERT INTO `models` VALUES (1,'Customer-focused secondary capability','18707983',9,6,'2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL,1,NULL,0,NULL,NULL,'Doloribus in consequatur minima eum tempore nobis. Id ipsam eaque non dicta. Recusandae aut eaque voluptatem voluptas consequatur maiores. Quia saepe impedit beatae sed laborum.',1),(2,'Enhanced tertiary functionalities','47351031',10,4,'2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL,1,NULL,0,NULL,NULL,'Sunt ut consequatur exercitationem voluptatem voluptatum laboriosam in. Distinctio molestiae voluptates ut dolores quia rerum. Commodi ducimus sint ut omnis qui. Velit temporibus et temporibus asperiores qui.',0),(3,'Enhanced leadingedge encoding','22262258',6,5,'2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL,1,NULL,0,NULL,NULL,'Voluptate assumenda harum et aliquid esse. Aut enim amet natus consequatur dolores amet fugiat eum. Quis id sed incidunt eveniet fuga. Quasi excepturi quam eaque eveniet qui.',0),(4,'Vision-oriented mission-critical artificialintelligence','37285898',3,4,'2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL,1,NULL,0,NULL,NULL,'Enim quidem qui voluptas. Voluptas nostrum perferendis et ipsum. Voluptate non qui vitae reprehenderit. Eius ipsam non qui ipsam cumque.',1),(5,'Phased client-server instructionset','31964592',5,1,'2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL,1,NULL,0,NULL,NULL,'Voluptatem sit officiis dolorem ut est sed. Suscipit ut praesentium aperiam adipisci aut est. Aut nisi nihil officiis optio cumque eveniet. Aut aut minima perspiciatis aut perspiciatis.',0); /*!40000 ALTER TABLE `models` ENABLE KEYS */; UNLOCK TABLES; @@ -1152,7 +1153,7 @@ CREATE TABLE `settings` ( LOCK TABLES `settings` WRITE; /*!40000 ALTER TABLE `settings` DISABLE KEYS */; -INSERT INTO `settings` VALUES (1,'2016-11-06 22:01:02','2016-11-06 22:01:02',1,20,'Test',NULL,NULL,NULL,NULL,NULL,0,'0',1,NULL,NULL,'snipe@google.com',1,NULL,'QRCODE',NULL,NULL,NULL,'USD',NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,'samaccountname','sn','givenname','uid=samaccountname',3,NULL,NULL,NULL,0,0,'en',30,2.62500,1.00000,0.21975,0.21975,0.50000,0.50000,0.07000,0.05000,9,8.50000,11.00000,0,1,1,'C128',1,30,5,'tews.com','filastname','filastname',0,NULL,'389',0,5,1,NULL,0); +INSERT INTO `settings` VALUES (1,'2016-12-19 21:48:55','2016-12-19 21:48:55',1,20,'Test',NULL,NULL,NULL,NULL,NULL,0,'0',1,NULL,NULL,'d@example.com',1,NULL,'QRCODE',NULL,NULL,NULL,'USD',NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,'samaccountname','sn','givenname','uid=samaccountname',3,NULL,NULL,NULL,0,0,'en',30,2.62500,1.00000,0.21975,0.21975,0.50000,0.50000,0.07000,0.05000,9,8.50000,11.00000,0,1,1,'C128',1,30,5,'342d','filastname','filastname',0,NULL,'389',0,5,1,NULL,0); /*!40000 ALTER TABLE `settings` ENABLE KEYS */; UNLOCK TABLES; @@ -1177,7 +1178,7 @@ CREATE TABLE `status_labels` ( `color` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, `show_in_nav` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1186,7 +1187,7 @@ CREATE TABLE `status_labels` ( LOCK TABLES `status_labels` WRITE; /*!40000 ALTER TABLE `status_labels` DISABLE KEYS */; -INSERT INTO `status_labels` VALUES (1,'Ready to Deploy',1,'2004-12-14 19:19:01','2011-11-20 01:20:52',NULL,1,0,0,'',NULL,0),(2,'Pending',1,'2007-02-27 15:33:24','1987-07-30 16:33:07',NULL,0,1,0,'',NULL,0),(3,'Archived',1,'2001-11-21 23:22:44','2000-07-30 19:54:16',NULL,0,0,1,'These assets are permanently undeployable',NULL,0),(4,'Out for Diagnostics',1,'1981-09-28 05:03:46','1979-03-28 12:50:57',NULL,0,0,0,'',NULL,0),(5,'Out for Repair',1,'2010-09-10 11:59:47','1973-10-19 04:27:48',NULL,0,0,0,'',NULL,0),(6,'Broken - Not Fixable',1,'1979-08-28 12:09:59','1981-08-25 12:56:48',NULL,0,0,1,'',NULL,0),(7,'Lost/Stolen',1,'2011-04-26 04:28:42','1999-07-22 04:43:21',NULL,0,0,1,'',NULL,0),(8,'Test Status',1,'2016-11-21 00:33:54','2016-11-21 00:33:54',NULL,0,1,0,'lorem ipsum something else','#b46262',1); +INSERT INTO `status_labels` VALUES (1,'Ready to Deploy',1,'1981-07-19 10:16:27','2007-02-22 00:56:54',NULL,1,0,0,'',NULL,0),(2,'Pending',1,'1995-09-12 10:52:43','2010-04-24 19:45:34',NULL,0,1,0,'Assumenda vero aliquam sapiente corporis consequatur itaque qui.',NULL,0),(3,'Archived',1,'1995-07-03 14:33:27','1983-06-23 03:14:03',NULL,0,0,1,'These assets are permanently undeployable',NULL,0),(4,'Out for Diagnostics',1,'1994-02-16 18:38:00','1990-03-31 03:03:17',NULL,0,0,0,'',NULL,0),(5,'Out for Repair',1,'1997-12-28 18:07:43','1983-08-31 06:02:37',NULL,0,0,0,'',NULL,0),(6,'Broken - Not Fixable',1,'2015-01-17 21:10:49','1986-01-14 14:40:53',NULL,0,0,1,'',NULL,0),(7,'Lost/Stolen',1,'2009-01-30 14:33:33','2002-11-23 10:32:40',NULL,0,0,1,'',NULL,0); /*!40000 ALTER TABLE `status_labels` ENABLE KEYS */; UNLOCK TABLES; @@ -1205,8 +1206,8 @@ CREATE TABLE `suppliers` ( `city` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `state` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, `country` varchar(2) COLLATE utf8_unicode_ci DEFAULT NULL, - `phone` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - `fax` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, + `phone` varchar(35) COLLATE utf8_unicode_ci DEFAULT NULL, + `fax` varchar(35) COLLATE utf8_unicode_ci DEFAULT NULL, `email` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL, `contact` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, `notes` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, @@ -1218,7 +1219,7 @@ CREATE TABLE `suppliers` ( `url` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL, `image` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1227,7 +1228,7 @@ CREATE TABLE `suppliers` ( LOCK TABLES `suppliers` WRITE; /*!40000 ALTER TABLE `suppliers` DISABLE KEYS */; -INSERT INTO `suppliers` VALUES (1,'Deckow-Schuppe','695 Alejandra Motorway',NULL,'Torpmouth','OR','BG','292.995.6573 x818',NULL,'addie65@example.com','Jaiden Gutkowski DVM',NULL,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,NULL),(2,'Gislason LLC','8624 Kenneth Tunnel',NULL,'Jamalburgh','RI','HK','1-250-263-8392',NULL,'marielle32@example.com','Arianna Metz',NULL,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,NULL),(3,'Pouros, Bernhard and Herzog','681 Simonis Summit',NULL,'East Jaylinside','TX','MX','756-364-0473',NULL,'jerad.schoen@example.net','Delphine Gulgowski Jr.',NULL,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,NULL),(4,'Weissnat, Reynolds and Quigley','7175 Lowe Bridge',NULL,'Vandervortberg','ND','MG','446.315.3002 x50031',NULL,'ryleigh69@example.com','Bradly Rogahn DDS',NULL,'2016-11-20 23:07:29','2016-11-20 23:07:29',NULL,NULL,NULL,NULL,NULL),(5,'Test Supplier','046t46 South Street','Apt 356','Sutherland','BV','AF','032626236 x35','342 33 6647 3555','p@roar.com','Mr. Smith','lorem ipsum indigo something','2016-11-21 00:33:56','2016-11-21 00:33:56',1,NULL,'30266','http://snipeitapp.com',NULL),(6,'Blank Supplier','','','','','','','','','','','2016-11-21 00:35:59','2016-11-21 00:35:59',1,NULL,'','http://',NULL); +INSERT INTO `suppliers` VALUES (1,'Corkery-Moore','30665 Lucinda Divide','Suite 776','Avismouth','WI','TR','1-717-505-1802','(591) 370-8443 x4472','swaniawski.abbigail@example.org','Araceli Murphy','Voluptatibus sed exercitationem laboriosam quo. Laudantium deserunt rerum mollitia ut quia deleniti ducimus. Temporibus dolores voluptatum aut non labore. Magni voluptate nulla laboriosam possimus. Ut unde et ipsam.','2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,NULL,'60788','https://www.goyette.com/quibusdam-et-vel-asperiores-sint',NULL),(2,'Oberbrunner, Williamson and Torp','41780 Wilber Court','Suite 386','Gailborough','KY','BS','1-641-705-0778 x4064','+1.604.605.0292','alaina.gibson@example.org','Miguel Gerlach DVM','Et voluptates quasi recusandae sunt unde labore. Assumenda illum et neque ipsa sint. Officia quo tempore qui odio tempore aut dolorum qui.','2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,NULL,'18717','https://www.heaney.biz/quaerat-dolorem-velit-officiis-distinctio-blanditiis',NULL),(3,'Berge Group','425 Shad Ports Apt. 353','Apt. 206','West Wilbertshire','NJ','SH','716-802-5252 x704','(872) 854-6737 x39599','keebler.israel@example.org','Thurman Schroeder','Esse quia amet voluptatem quo ullam est. Modi sed repellat et. Assumenda neque a laboriosam reiciendis. Vel dolores debitis vitae ut. Consequuntur et cumque enim omnis.','2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,NULL,'32410','http://effertz.net/',NULL),(4,'Nolan-Hermiston','12352 Toy Crossing Apt. 626','Suite 629','Henriettebury','NM','AM','+1-707-767-4616','667.470.0440 x2062','mabelle49@example.org','Jordi Glover','Optio deserunt laborum voluptatem ad enim. Nemo fuga et dolorem nesciunt voluptatum. Est voluptas consectetur atque tempore blanditiis aliquid. Consequatur nisi voluptas sit ut distinctio.','2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,NULL,'97408-0637','http://armstrong.com/pariatur-tempora-eveniet-pariatur-autem-eum-in',NULL),(5,'Hickle-Homenick','6189 Camryn Station Apt. 608','Suite 965','Kesslermouth','OK','SJ','881.747.8278','1-904-341-0049','leopold.conn@example.com','Dr. Fletcher Roberts','Natus nesciunt id qui explicabo omnis quia aliquid. Perferendis aspernatur sit quia nihil similique sint. Ducimus quasi quis rerum laborum. Quae architecto temporibus ratione autem dolores. Qui deleniti molestiae ipsam maxime aut perspiciatis.','2016-12-19 21:50:32','2016-12-19 21:50:32',NULL,NULL,'54046-6614','https://www.oreilly.info/veniam-nihil-ut-odit-quibusdam-sit-molestias',NULL); /*!40000 ALTER TABLE `suppliers` ENABLE KEYS */; UNLOCK TABLES; @@ -1307,7 +1308,7 @@ CREATE TABLE `users` ( PRIMARY KEY (`id`), KEY `users_activation_code_index` (`activation_code`), KEY `users_reset_password_code_index` (`reset_password_code`) -) ENGINE=InnoDB AUTO_INCREMENT=45 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1316,7 +1317,7 @@ CREATE TABLE `users` ( LOCK TABLES `users` WRITE; /*!40000 ALTER TABLE `users` DISABLE KEYS */; -INSERT INTO `users` VALUES (1,'snipe@google.com','$2y$10$oSjP81uCdXW.nAHBIPteA..DsLPhJBiwD1tfny4hY0Ndicv1B5Nk6','{\"superuser\":\"1\",\"admin\":\"0\",\"reports.view\":\"0\",\"assets.view\":\"0\",\"assets.create\":\"0\",\"assets.edit\":\"0\",\"assets.delete\":\"0\",\"assets.checkin\":\"0\",\"assets.checkout\":\"0\",\"assets.view.requestable\":\"0\",\"accessories.view\":\"0\",\"accessories.create\":\"0\",\"accessories.edit\":\"0\",\"accessories.delete\":\"0\",\"accessories.checkout\":\"0\",\"accessories.checkin\":\"0\",\"consumables.view\":\"0\",\"consumables.create\":\"0\",\"consumables.edit\":\"0\",\"consumables.delete\":\"0\",\"consumables.checkout\":\"0\",\"licenses.view\":\"0\",\"licenses.create\":\"0\",\"licenses.edit\":\"0\",\"licenses.delete\":\"0\",\"licenses.checkout\":\"0\",\"licenses.keys\":\"0\",\"components.view\":\"0\",\"components.create\":\"0\",\"components.edit\":\"0\",\"components.delete\":\"0\",\"components.checkout\":\"0\",\"components.checkin\":\"0\",\"users.view\":\"0\",\"users.create\":\"0\",\"users.edit\":\"0\",\"users.delete\":\"0\",\"self.two_factor\":\"0\"}',1,NULL,NULL,NULL,NULL,NULL,'snipe','Snipe','2016-11-06 22:01:02','2016-11-21 00:33:59',NULL,NULL,NULL,NULL,NULL,'','',NULL,'',NULL,'snipeit','',NULL,'yui6FpaJTPf72mgW84Cv8YqcoE6C7UbuNoh5yGe9eW2yKCoOtryJNE230g9q',0,'en',1,NULL,0,0),(3,'bnelson0@cdbaby.com','$2y$10$XXJbpVOtPb81jg0hRF9wRO9d62/qquyn5Pi7WLj/HHnxhEk4ThiZO',NULL,1,NULL,NULL,NULL,NULL,NULL,'Bonnie',' Nelson','2016-11-06 22:03:21','2016-11-06 22:03:21',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'bnelson0',NULL,NULL,NULL,0,'en',1,NULL,0,0),(4,'jferguson1@state.tx.us','$2y$10$XXJbpVOtPb81jg0hRF9wRO9d62/qquyn5Pi7WLj/HHnxhEk4ThiZO',NULL,1,NULL,NULL,NULL,NULL,NULL,'Judith',' Ferguson','2016-11-06 22:03:21','2016-11-06 22:03:21',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'jferguson1',NULL,NULL,NULL,0,'en',1,NULL,0,0),(5,'mgibson2@wiley.com','$2y$10$XXJbpVOtPb81jg0hRF9wRO9d62/qquyn5Pi7WLj/HHnxhEk4ThiZO',NULL,1,NULL,NULL,NULL,NULL,NULL,'Mildred',' Gibson','2016-11-06 22:03:21','2016-11-06 22:03:21',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'mgibson2',NULL,NULL,NULL,0,'en',1,NULL,0,0),(6,'blee3@quantcast.com','$2y$10$XXJbpVOtPb81jg0hRF9wRO9d62/qquyn5Pi7WLj/HHnxhEk4ThiZO',NULL,1,NULL,NULL,NULL,NULL,NULL,'Brandon',' Lee','2016-11-06 22:03:21','2016-11-06 22:03:21',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'blee3',NULL,NULL,NULL,0,'en',1,NULL,0,0),(7,'bpowell4@tuttocitta.it','$2y$10$XXJbpVOtPb81jg0hRF9wRO9d62/qquyn5Pi7WLj/HHnxhEk4ThiZO',NULL,1,NULL,NULL,NULL,NULL,NULL,'Betty',' Powell','2016-11-06 22:03:21','2016-11-06 22:03:21',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'bpowell4',NULL,NULL,NULL,0,'en',1,NULL,0,0),(8,'awheeler5@cocolog-nifty.com','$2y$10$XXJbpVOtPb81jg0hRF9wRO9d62/qquyn5Pi7WLj/HHnxhEk4ThiZO',NULL,1,NULL,NULL,NULL,NULL,NULL,'Anthony',' Wheeler','2016-11-06 22:03:21','2016-11-06 22:03:21',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'awheeler5',NULL,NULL,NULL,0,'en',1,NULL,0,0),(9,'dreynolds6@ustream.tv','$2y$10$XXJbpVOtPb81jg0hRF9wRO9d62/qquyn5Pi7WLj/HHnxhEk4ThiZO',NULL,1,NULL,NULL,NULL,NULL,NULL,'Dennis',' Reynolds','2016-11-06 22:03:21','2016-11-06 22:03:21',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'dreynolds6',NULL,NULL,NULL,0,'en',1,NULL,0,0),(10,'aarnold7@cbc.ca','$2y$10$XXJbpVOtPb81jg0hRF9wRO9d62/qquyn5Pi7WLj/HHnxhEk4ThiZO',NULL,1,NULL,NULL,NULL,NULL,NULL,'Andrea',' Arnold','2016-11-06 22:03:21','2016-11-06 22:03:21',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'aarnold7',NULL,NULL,NULL,0,'en',1,NULL,0,0),(11,'abutler8@wikia.com','$2y$10$XXJbpVOtPb81jg0hRF9wRO9d62/qquyn5Pi7WLj/HHnxhEk4ThiZO',NULL,1,NULL,NULL,NULL,NULL,NULL,'Anna',' Butler','2016-11-06 22:03:22','2016-11-06 22:03:22',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'abutler8',NULL,NULL,NULL,0,'en',1,NULL,0,0),(12,'mbennett9@diigo.com','$2y$10$XXJbpVOtPb81jg0hRF9wRO9d62/qquyn5Pi7WLj/HHnxhEk4ThiZO',NULL,1,NULL,NULL,NULL,NULL,NULL,'Mark',' Bennett','2016-11-06 22:03:22','2016-11-06 22:03:22',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'mbennett9',NULL,NULL,NULL,0,'en',1,NULL,0,0),(13,'ewheelera@google.de','$2y$10$XXJbpVOtPb81jg0hRF9wRO9d62/qquyn5Pi7WLj/HHnxhEk4ThiZO',NULL,1,NULL,NULL,NULL,NULL,NULL,'Emily',' Wheeler','2016-11-06 22:03:22','2016-11-06 22:03:22',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ewheelera',NULL,NULL,NULL,0,'en',1,NULL,0,0),(14,'wfoxb@virginia.edu','$2y$10$XXJbpVOtPb81jg0hRF9wRO9d62/qquyn5Pi7WLj/HHnxhEk4ThiZO',NULL,1,NULL,NULL,NULL,NULL,NULL,'Wanda',' Fox','2016-11-06 22:03:22','2016-11-06 22:03:22',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'wfoxb',NULL,NULL,NULL,0,'en',1,NULL,0,0),(15,'jgrantd@cpanel.net','$2y$10$XXJbpVOtPb81jg0hRF9wRO9d62/qquyn5Pi7WLj/HHnxhEk4ThiZO',NULL,1,NULL,NULL,NULL,NULL,NULL,'Janet',' Grant','2016-11-06 22:03:22','2016-11-06 22:03:22',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'jgrantd',NULL,NULL,NULL,0,'en',1,NULL,0,0),(16,'alarsone@tripod.com','$2y$10$XXJbpVOtPb81jg0hRF9wRO9d62/qquyn5Pi7WLj/HHnxhEk4ThiZO',NULL,1,NULL,NULL,NULL,NULL,NULL,'Antonio',' Larson','2016-11-06 22:03:22','2016-11-06 22:03:22',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'alarsone',NULL,NULL,NULL,0,'en',1,NULL,0,0),(17,'lpowellf@com.com','$2y$10$XXJbpVOtPb81jg0hRF9wRO9d62/qquyn5Pi7WLj/HHnxhEk4ThiZO',NULL,1,NULL,NULL,NULL,NULL,NULL,'Lois',' Powell','2016-11-06 22:03:22','2016-11-06 22:03:22',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'lpowellf',NULL,NULL,NULL,0,'en',1,NULL,0,0),(18,'malleng@com.com','$2y$10$XXJbpVOtPb81jg0hRF9wRO9d62/qquyn5Pi7WLj/HHnxhEk4ThiZO',NULL,1,NULL,NULL,NULL,NULL,NULL,'Mildred',' Allen','2016-11-06 22:03:22','2016-11-06 22:03:22',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'malleng',NULL,NULL,NULL,0,'en',1,NULL,0,0),(19,'caustinh@bigcartel.com','$2y$10$XXJbpVOtPb81jg0hRF9wRO9d62/qquyn5Pi7WLj/HHnxhEk4ThiZO',NULL,1,NULL,NULL,NULL,NULL,NULL,'Clarence',' Austin','2016-11-06 22:03:22','2016-11-06 22:03:22',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'caustinh',NULL,NULL,NULL,0,'en',1,NULL,0,0),(20,'wchavezi@blogs.com','$2y$10$XXJbpVOtPb81jg0hRF9wRO9d62/qquyn5Pi7WLj/HHnxhEk4ThiZO',NULL,1,NULL,NULL,NULL,NULL,NULL,'Walter',' Chavez','2016-11-06 22:03:22','2016-11-06 22:03:22',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'wchavezi',NULL,NULL,NULL,0,'en',1,NULL,0,0),(21,'melliottj@constantcontact.com','$2y$10$XXJbpVOtPb81jg0hRF9wRO9d62/qquyn5Pi7WLj/HHnxhEk4ThiZO',NULL,1,NULL,NULL,NULL,NULL,NULL,'Marie',' Elliott','2016-11-06 22:03:22','2016-11-06 22:03:22',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'melliottj',NULL,NULL,NULL,0,'en',1,NULL,0,0),(22,'bfordm@woothemes.com','$2y$10$XXJbpVOtPb81jg0hRF9wRO9d62/qquyn5Pi7WLj/HHnxhEk4ThiZO',NULL,1,NULL,NULL,NULL,NULL,NULL,'Benjamin',' Ford','2016-11-06 22:03:22','2016-11-06 22:03:22',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'bfordm',NULL,NULL,NULL,0,'en',1,NULL,0,0),(23,'twarrenn@printfriendly.com','$2y$10$XXJbpVOtPb81jg0hRF9wRO9d62/qquyn5Pi7WLj/HHnxhEk4ThiZO',NULL,1,NULL,NULL,NULL,NULL,NULL,'Timothy',' Warren','2016-11-06 22:03:22','2016-11-06 22:03:22',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'twarrenn',NULL,NULL,NULL,0,'en',1,NULL,0,0),(24,'carli.kutch@example.com','n.rSn]5><0@J]5y/akE',NULL,0,NULL,NULL,NULL,NULL,NULL,'Virgie','Koepp','2016-11-20 23:03:56','2016-11-20 23:03:56',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'hodkiewicz.ora',NULL,1,NULL,0,'en',1,NULL,0,0),(25,'jaida.yundt@example.org',';5lrG0D]`,\"a&8EK',NULL,0,NULL,NULL,NULL,NULL,NULL,'Aidan','Kuhn','2016-11-20 23:03:56','2016-11-20 23:03:56',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'emilie99',NULL,1,NULL,0,'en',1,NULL,0,0),(26,'stroman.ferne@example.org','$Tv\"Th',NULL,0,NULL,NULL,NULL,NULL,NULL,'Brendan','Beier','2016-11-20 23:03:56','2016-11-20 23:03:56',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'kpfannerstill',NULL,2,NULL,0,'en',1,NULL,0,0),(27,'janae.kris@example.net','h:D;__sn',NULL,0,NULL,NULL,NULL,NULL,NULL,'Johann','Jenkins','2016-11-20 23:03:56','2016-11-20 23:03:56',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'agnes.schaden',NULL,2,NULL,0,'en',1,NULL,0,0),(28,'iwalker@example.org','gPxOMxb^nQhdT',NULL,0,NULL,NULL,NULL,NULL,NULL,'Lilla','Marks','2016-11-20 23:03:56','2016-11-20 23:03:56',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'blanca05',NULL,1,NULL,0,'en',1,NULL,0,0),(29,'santos18@example.net','uEB#o(rvmE&.',NULL,0,NULL,NULL,NULL,NULL,NULL,'Magdalen','Ondricka','2016-11-20 23:03:56','2016-11-20 23:03:56',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'lenore02',NULL,2,NULL,0,'en',1,NULL,0,0),(30,'gislason.arely@example.com','5F\\]9dw)Z*\"z',NULL,0,NULL,NULL,NULL,NULL,NULL,'Herbert','Mueller','2016-11-20 23:03:56','2016-11-20 23:03:56',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'sbeier',NULL,3,NULL,0,'en',1,NULL,0,0),(31,'kris.lauriane@example.net','b*GzqFjV\'5==s4',NULL,0,NULL,NULL,NULL,NULL,NULL,'Hope','Ledner','2016-11-20 23:03:56','2016-11-20 23:03:56',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'cameron.dickens',NULL,2,NULL,0,'en',1,NULL,0,0),(32,'glenda.jacobi@example.net','fuPK3mC~Gwy',NULL,0,NULL,NULL,NULL,NULL,NULL,'Shayne','Mraz','2016-11-20 23:03:56','2016-11-20 23:03:56',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'heaven.conn',NULL,1,NULL,0,'en',1,NULL,0,0),(33,'rkonopelski@example.net','XD6mF&1XZyX@6d3izG',NULL,0,NULL,NULL,NULL,NULL,NULL,'Magali','Hamill','2016-11-20 23:03:56','2016-11-20 23:03:56',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'susie26',NULL,4,NULL,0,'en',1,NULL,0,0),(34,'g@roar.com','$2y$10$3//tj9exuu7n/RVVBH2XfuEjj6KyVo0DNsMyXbqmTzieDvbrkZ27G','{\"superuser\":\"0\",\"admin\":\"0\",\"reports.view\":\"0\",\"assets.view\":\"0\",\"assets.create\":\"0\",\"assets.edit\":\"0\",\"assets.delete\":\"0\",\"assets.checkin\":\"0\",\"assets.checkout\":\"0\",\"assets.view.requestable\":\"0\",\"accessories.view\":\"0\",\"accessories.create\":\"0\",\"accessories.edit\":\"0\",\"accessories.delete\":\"0\",\"accessories.checkout\":\"0\",\"accessories.checkin\":\"0\",\"consumables.view\":\"0\",\"consumables.create\":\"0\",\"consumables.edit\":\"0\",\"consumables.delete\":\"0\",\"consumables.checkout\":\"0\",\"licenses.view\":\"0\",\"licenses.create\":\"0\",\"licenses.edit\":\"0\",\"licenses.delete\":\"0\",\"licenses.checkout\":\"0\",\"licenses.keys\":\"0\",\"components.view\":\"0\",\"components.create\":\"0\",\"components.edit\":\"0\",\"components.delete\":\"0\",\"components.checkout\":\"0\",\"components.checkin\":\"0\",\"users.view\":\"0\",\"users.create\":\"0\",\"users.edit\":\"0\",\"users.delete\":\"0\",\"self.two_factor\":\"0\"}',1,NULL,NULL,NULL,NULL,NULL,'John','Smdt','2016-11-20 23:06:01','2016-11-20 23:06:01',NULL,NULL,NULL,NULL,67,'35235 33535 x5','Robot',19,'1636 636',NULL,'jsmdt','lorem ipsum indigo something',3,NULL,0,'en-GB',1,NULL,0,0),(35,'khyatt@example.net','(RFSG=`Z8$Zf%J',NULL,0,NULL,NULL,NULL,NULL,NULL,'Kristopher','Skiles','2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'dovie08',NULL,1,NULL,0,'en',1,NULL,0,0),(36,'lockman.demarcus@example.org','vAJ^z=8$=?9$wfut',NULL,0,NULL,NULL,NULL,NULL,NULL,'Bell','Franecki','2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'rocky.nitzsche',NULL,4,NULL,0,'en',1,NULL,0,0),(37,'murray37@example.org','9yz{hy%',NULL,0,NULL,NULL,NULL,NULL,NULL,'Ivory','Wyman','2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'vince.renner',NULL,2,NULL,0,'en',1,NULL,0,0),(39,'jacobson.yadira@example.com','#K.%ev&$gKr_[',NULL,0,NULL,NULL,NULL,NULL,NULL,'Harry','Brown','2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'jarred.bode',NULL,2,NULL,0,'en',1,NULL,0,0),(40,'mdaniel@example.net','%`_LI(aPpUJ^(Bg3Hv~',NULL,0,NULL,NULL,NULL,NULL,NULL,'Jules','Herman','2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'hdenesik',NULL,4,NULL,0,'en',1,NULL,0,0),(41,'vincent.mcglynn@example.net','/$qJ#@u',NULL,0,NULL,NULL,NULL,NULL,NULL,'Marilou','O\'Keefe','2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ova.cronin',NULL,4,NULL,0,'en',1,NULL,0,0),(42,'frami.lupe@example.com','5{0@yQpA0tI{',NULL,0,NULL,NULL,NULL,NULL,NULL,'Michelle','Lubowitz','2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'smith.lorenzo',NULL,3,NULL,0,'en',1,NULL,0,0),(43,'davion83@example.net','$S?[!#^F\",oo&',NULL,0,NULL,NULL,NULL,NULL,NULL,'Cary','Medhurst','2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'schowalter.tremaine',NULL,1,NULL,0,'en',1,NULL,0,0),(44,'roxane.torp@example.net','wplSIT.N=',NULL,0,NULL,NULL,NULL,NULL,NULL,'Ethan','Stanton','2016-11-20 23:07:28','2016-11-20 23:07:28',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'rey71',NULL,1,NULL,0,'en',1,NULL,0,0); +INSERT INTO `users` VALUES (1,'d@example.com','$2y$10$XkH04QqWoC.IhtnPze3YruWUpu1/9Q80zDJG2FR4mk3CyjrnhkmsW','{\"superuser\":1}',1,NULL,NULL,NULL,NULL,NULL,'test','test','2016-12-19 21:48:55','2016-12-19 21:48:55',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'snipeit',NULL,NULL,'zuY1fNwUa36UV6ufSCgB9HhW06JgwQ7CxPkuZVIajEiPSOAj1DN1wtabmOHy',0,'en',1,NULL,0,0),(2,'bnelson0@cdbaby.com','$2y$10$MeHQGBejPHm0YLePHWzISutbekRfGDJ1gKeHAbw6xeEpas0oj5Qsq',NULL,1,NULL,NULL,NULL,NULL,NULL,'Bonnie',' Nelson','2016-12-19 21:49:34','2016-12-19 21:49:34',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'bnelson0',NULL,NULL,NULL,0,'en',1,NULL,0,0),(3,'jferguson1@state.tx.us','$2y$10$MeHQGBejPHm0YLePHWzISutbekRfGDJ1gKeHAbw6xeEpas0oj5Qsq',NULL,1,NULL,NULL,NULL,NULL,NULL,'Judith',' Ferguson','2016-12-19 21:49:34','2016-12-19 21:49:34',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'jferguson1',NULL,NULL,NULL,0,'en',1,NULL,0,0),(4,'mgibson2@wiley.com','$2y$10$MeHQGBejPHm0YLePHWzISutbekRfGDJ1gKeHAbw6xeEpas0oj5Qsq',NULL,1,NULL,NULL,NULL,NULL,NULL,'Mildred',' Gibson','2016-12-19 21:49:34','2016-12-19 21:49:34',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'mgibson2',NULL,NULL,NULL,0,'en',1,NULL,0,0),(5,'blee3@quantcast.com','$2y$10$MeHQGBejPHm0YLePHWzISutbekRfGDJ1gKeHAbw6xeEpas0oj5Qsq',NULL,1,NULL,NULL,NULL,NULL,NULL,'Brandon',' Lee','2016-12-19 21:49:34','2016-12-19 21:49:34',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'blee3',NULL,NULL,NULL,0,'en',1,NULL,0,0),(6,'bpowell4@tuttocitta.it','$2y$10$MeHQGBejPHm0YLePHWzISutbekRfGDJ1gKeHAbw6xeEpas0oj5Qsq',NULL,1,NULL,NULL,NULL,NULL,NULL,'Betty',' Powell','2016-12-19 21:49:34','2016-12-19 21:49:34',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'bpowell4',NULL,NULL,NULL,0,'en',1,NULL,0,0),(7,'awheeler5@cocolog-nifty.com','$2y$10$MeHQGBejPHm0YLePHWzISutbekRfGDJ1gKeHAbw6xeEpas0oj5Qsq',NULL,1,NULL,NULL,NULL,NULL,NULL,'Anthony',' Wheeler','2016-12-19 21:49:34','2016-12-19 21:49:34',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'awheeler5',NULL,NULL,NULL,0,'en',1,NULL,0,0),(8,'dreynolds6@ustream.tv','$2y$10$MeHQGBejPHm0YLePHWzISutbekRfGDJ1gKeHAbw6xeEpas0oj5Qsq',NULL,1,NULL,NULL,NULL,NULL,NULL,'Dennis',' Reynolds','2016-12-19 21:49:34','2016-12-19 21:49:34',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'dreynolds6',NULL,NULL,NULL,0,'en',1,NULL,0,0),(9,'aarnold7@cbc.ca','$2y$10$MeHQGBejPHm0YLePHWzISutbekRfGDJ1gKeHAbw6xeEpas0oj5Qsq',NULL,1,NULL,NULL,NULL,NULL,NULL,'Andrea',' Arnold','2016-12-19 21:49:34','2016-12-19 21:49:34',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'aarnold7',NULL,NULL,NULL,0,'en',1,NULL,0,0),(10,'abutler8@wikia.com','$2y$10$MeHQGBejPHm0YLePHWzISutbekRfGDJ1gKeHAbw6xeEpas0oj5Qsq',NULL,1,NULL,NULL,NULL,NULL,NULL,'Anna',' Butler','2016-12-19 21:49:34','2016-12-19 21:49:34',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'abutler8',NULL,NULL,NULL,0,'en',1,NULL,0,0),(11,'mbennett9@diigo.com','$2y$10$MeHQGBejPHm0YLePHWzISutbekRfGDJ1gKeHAbw6xeEpas0oj5Qsq',NULL,1,NULL,NULL,NULL,NULL,NULL,'Mark',' Bennett','2016-12-19 21:49:34','2016-12-19 21:49:34',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'mbennett9',NULL,NULL,NULL,0,'en',1,NULL,0,0),(12,'ewheelera@google.de','$2y$10$MeHQGBejPHm0YLePHWzISutbekRfGDJ1gKeHAbw6xeEpas0oj5Qsq',NULL,1,NULL,NULL,NULL,NULL,NULL,'Emily',' Wheeler','2016-12-19 21:49:34','2016-12-19 21:49:34',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ewheelera',NULL,NULL,NULL,0,'en',1,NULL,0,0),(13,'wfoxb@virginia.edu','$2y$10$MeHQGBejPHm0YLePHWzISutbekRfGDJ1gKeHAbw6xeEpas0oj5Qsq',NULL,1,NULL,NULL,NULL,NULL,NULL,'Wanda',' Fox','2016-12-19 21:49:34','2016-12-19 21:49:34',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'wfoxb',NULL,NULL,NULL,0,'en',1,NULL,0,0),(14,'jgrantd@cpanel.net','$2y$10$MeHQGBejPHm0YLePHWzISutbekRfGDJ1gKeHAbw6xeEpas0oj5Qsq',NULL,1,NULL,NULL,NULL,NULL,NULL,'Janet',' Grant','2016-12-19 21:49:34','2016-12-19 21:49:34',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'jgrantd',NULL,NULL,NULL,0,'en',1,NULL,0,0),(15,'alarsone@tripod.com','$2y$10$MeHQGBejPHm0YLePHWzISutbekRfGDJ1gKeHAbw6xeEpas0oj5Qsq',NULL,1,NULL,NULL,NULL,NULL,NULL,'Antonio',' Larson','2016-12-19 21:49:34','2016-12-19 21:49:34',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'alarsone',NULL,NULL,NULL,0,'en',1,NULL,0,0),(16,'lpowellf@com.com','$2y$10$MeHQGBejPHm0YLePHWzISutbekRfGDJ1gKeHAbw6xeEpas0oj5Qsq',NULL,1,NULL,NULL,NULL,NULL,NULL,'Lois',' Powell','2016-12-19 21:49:34','2016-12-19 21:49:34',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'lpowellf',NULL,NULL,NULL,0,'en',1,NULL,0,0),(17,'malleng@com.com','$2y$10$MeHQGBejPHm0YLePHWzISutbekRfGDJ1gKeHAbw6xeEpas0oj5Qsq',NULL,1,NULL,NULL,NULL,NULL,NULL,'Mildred',' Allen','2016-12-19 21:49:34','2016-12-19 21:49:34',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'malleng',NULL,NULL,NULL,0,'en',1,NULL,0,0),(18,'caustinh@bigcartel.com','$2y$10$MeHQGBejPHm0YLePHWzISutbekRfGDJ1gKeHAbw6xeEpas0oj5Qsq',NULL,1,NULL,NULL,NULL,NULL,NULL,'Clarence',' Austin','2016-12-19 21:49:34','2016-12-19 21:49:34',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'caustinh',NULL,NULL,NULL,0,'en',1,NULL,0,0),(19,'wchavezi@blogs.com','$2y$10$MeHQGBejPHm0YLePHWzISutbekRfGDJ1gKeHAbw6xeEpas0oj5Qsq',NULL,1,NULL,NULL,NULL,NULL,NULL,'Walter',' Chavez','2016-12-19 21:49:34','2016-12-19 21:49:34',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'wchavezi',NULL,NULL,NULL,0,'en',1,NULL,0,0),(20,'melliottj@constantcontact.com','$2y$10$MeHQGBejPHm0YLePHWzISutbekRfGDJ1gKeHAbw6xeEpas0oj5Qsq',NULL,1,NULL,NULL,NULL,NULL,NULL,'Marie',' Elliott','2016-12-19 21:49:34','2016-12-19 21:49:34',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'melliottj',NULL,NULL,NULL,0,'en',1,NULL,0,0),(21,'bfordm@woothemes.com','$2y$10$MeHQGBejPHm0YLePHWzISutbekRfGDJ1gKeHAbw6xeEpas0oj5Qsq',NULL,1,NULL,NULL,NULL,NULL,NULL,'Benjamin',' Ford','2016-12-19 21:49:34','2016-12-19 21:49:34',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'bfordm',NULL,NULL,NULL,0,'en',1,NULL,0,0),(22,'twarrenn@printfriendly.com','$2y$10$MeHQGBejPHm0YLePHWzISutbekRfGDJ1gKeHAbw6xeEpas0oj5Qsq',NULL,1,NULL,NULL,NULL,NULL,NULL,'Timothy',' Warren','2016-12-19 21:49:34','2016-12-19 21:49:34',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'twarrenn',NULL,NULL,NULL,0,'en',1,NULL,0,0),(23,'oleta24@example.org','~(T$*jvkgD','{\"user\":\"0\"}',0,NULL,NULL,NULL,NULL,NULL,'Seamus','Johnston','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL,NULL,NULL,NULL,'696-391-4397 x7738','voluptatibus',NULL,'30018',NULL,'cwalsh','Dolorem ut sunt enim ipsam et ex aliquid.',5,NULL,0,'es_ES',1,NULL,0,0),(24,'collins.felix@example.net','}mFLoec%d@%8F`\'','{\"user\":\"0\"}',0,NULL,NULL,NULL,NULL,NULL,'Brooklyn','Kozey','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL,NULL,NULL,NULL,'298.890.9657 x932','consequatur',NULL,'4377',NULL,'palma.gusikowski','Fugiat quo alias sed illo est aut.',6,NULL,0,'st_LS',1,NULL,0,0),(25,'wallace74@example.com','BU_5GB^m<7QtA3A','{\"user\":\"0\"}',0,NULL,NULL,NULL,NULL,NULL,'Delores','Glover','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL,NULL,NULL,NULL,'+1-494-731-3779','adipisci',NULL,'17781',NULL,'sbecker','Repellendus incidunt sit placeat provident id.',7,NULL,0,'ve_ZA',1,NULL,0,0),(26,'alex.ward@example.com','JP%\'2I>XCJH8P','{\"user\":\"0\"}',0,NULL,NULL,NULL,NULL,NULL,'Olga','Dietrich','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL,NULL,NULL,NULL,'+1 (606) 203-6612','et',NULL,'18909',NULL,'nbarrows','Totam rerum dolores odit voluptate quasi.',8,NULL,0,'tig_ER',1,NULL,0,0),(27,'abe.greenfelder@example.org','wG*H7xY&QN:WWjh\'iSsG','{\"user\":\"0\"}',0,NULL,NULL,NULL,NULL,NULL,'Mack','Ebert','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL,NULL,NULL,NULL,'558.948.8107','natus',NULL,'9036',NULL,'little.archibald','Repellat veniam eligendi occaecati.',9,NULL,0,'lv_LV',1,NULL,0,0),(28,'camila85@example.net','bqR_^Gx&@','{\"user\":\"0\"}',0,NULL,NULL,NULL,NULL,NULL,'Miller','Bogisich','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL,NULL,NULL,NULL,'+1-956-557-3228','excepturi',NULL,'4977',NULL,'fern.batz','Autem quidem animi iste maxime vitae laborum vitae.',10,NULL,0,'tt_RU',1,NULL,0,0),(29,'veda.erdman@example.net','~+3v)}y~zZZmj','{\"user\":\"0\"}',0,NULL,NULL,NULL,NULL,NULL,'Isaiah','Bogan','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL,NULL,NULL,NULL,'+1-602-935-4426','odit',NULL,'29496',NULL,'ssimonis','Deserunt eius voluptates velit illo dolores sunt ex.',11,NULL,0,'en_US',1,NULL,0,0),(30,'friedrich02@example.com','\'Y/^}J~{v!IN`Fg6','{\"user\":\"0\"}',0,NULL,NULL,NULL,NULL,NULL,'Lavonne','Parisian','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL,NULL,NULL,NULL,'(478) 560-1259','quia',NULL,'23923',NULL,'mallie19','Architecto aut rerum modi est tempore et nobis.',12,NULL,0,'ms_MY',1,NULL,0,0),(31,'gerda44@example.net','US*`0L4','{\"user\":\"0\"}',0,NULL,NULL,NULL,NULL,NULL,'Jeanne','Feest','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL,NULL,NULL,NULL,'682-498-7097 x96752','aperiam',NULL,'19524',NULL,'jessy12','Dignissimos voluptatum molestiae a velit optio quasi aliquam.',13,NULL,0,'gv_GB',1,NULL,0,0),(32,'clementine06@example.com','OD&VXKe\\','{\"user\":\"0\"}',0,NULL,NULL,NULL,NULL,NULL,'Llewellyn','Lubowitz','2016-12-19 21:50:31','2016-12-19 21:50:31',NULL,NULL,NULL,NULL,NULL,'819.370.6281 x2886','rerum',NULL,'6129',NULL,'fwalsh','Reprehenderit quos porro vitae mollitia ut ipsa rerum.',14,NULL,0,'fil_PH',1,NULL,0,0); /*!40000 ALTER TABLE `users` ENABLE KEYS */; UNLOCK TABLES; @@ -1352,4 +1353,4 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2016-12-18 18:48:52 +-- Dump completed on 2016-12-19 9:50:57 diff --git a/tests/_envs/testing-ci.yml b/tests/_envs/testing-ci.yml index c40d8e595eef..c7f266c9d8b4 100644 --- a/tests/_envs/testing-ci.yml +++ b/tests/_envs/testing-ci.yml @@ -9,11 +9,10 @@ # RUN `build` COMMAND AFTER ADDING/REMOVING MODULES. class_name: AcceptanceTester modules: - enabled: - - WebDriver: + config: + WebDriver: url: http://localhost:8000 browser: phantomjs - - \Helper\Acceptance - - Laravel5: + Laravel5: part: ORM environment_file: .env diff --git a/tests/functional.suite.yml b/tests/functional.suite.yml index ef803ede4434..fbbb9d42e947 100644 --- a/tests/functional.suite.yml +++ b/tests/functional.suite.yml @@ -11,13 +11,13 @@ modules: - \Helper\Functional - Laravel5: environment_file: .env.tests - cleanup: false + cleanup: true - Db: dsn: 'mysql:host=localhost;dbname=snipeittests' user: 'snipeit_laravel' password: '' dump: tests/_data/dump.sql populate: true - cleanup: false + cleanup: true - REST: depends: Laravel5 diff --git a/tests/functional/AssetModelsCest.php b/tests/functional/AssetModelsCest.php index 7823bfef2c85..2929ef277527 100644 --- a/tests/functional/AssetModelsCest.php +++ b/tests/functional/AssetModelsCest.php @@ -56,7 +56,8 @@ public function passesCorrectValidation(FunctionalTester $I) public function allowsDelete(FunctionalTester $I) { $I->wantTo('Ensure I can delete an asset model'); - $I->sendDelete(route('models.destroy', $I->getEmptyModelId()), ['_token' => csrf_token()]); + $model = factory(App\Models\AssetModel::class, 'assetmodel')->create(); + $I->sendDelete(route('models.destroy', $model->id), ['_token' => csrf_token()]); $I->seeResponseCodeIs(200); } diff --git a/tests/functional/CategoriesCest.php b/tests/functional/CategoriesCest.php index 994c191518b4..f51e0e4c81ea 100644 --- a/tests/functional/CategoriesCest.php +++ b/tests/functional/CategoriesCest.php @@ -55,7 +55,8 @@ public function passesCorrectValidation(FunctionalTester $I) public function allowsDelete(FunctionalTester $I) { $I->wantTo('Ensure I can delete a category'); - $I->sendDelete(route('categories.destroy', $I->getEmptyCategoryId()), ['_token' => csrf_token()]); + $category = factory(App\Models\Category::class, 'asset-category')->create(); + $I->sendDelete(route('categories.destroy', $category->id), ['_token' => csrf_token()]); $I->seeResponseCodeIs(200); } } diff --git a/tests/functional/GroupsCest.php b/tests/functional/GroupsCest.php index b8bc85d523c3..cab4752b9f37 100644 --- a/tests/functional/GroupsCest.php +++ b/tests/functional/GroupsCest.php @@ -54,11 +54,10 @@ public function passesCorrectValidation(FunctionalTester $I) public function allowsDelete(FunctionalTester $I) { + $I->wantTo("Fix this test to generate a group for deletes"); $I->wantTo('Ensure I can delete a group'); - $I->amOnPage(route('delete/group', Group::doesntHave('users')->first()->id)); - $I->seeElement('.alert-success'); - // $I->sendDelete(route('delete/group', Group::doesntHave('users')->first()->id), ['_token' => csrf_token()]); - // $I->seeResponseCodeIs(200); +// $I->amOnPage(route('delete/group', Group::doesntHave('users')->first()->id)); +// $I->seeElement('.alert-success'); } } diff --git a/tests/functional/ManufacturersCest.php b/tests/functional/ManufacturersCest.php index cf34539185d8..1babcf6e310c 100644 --- a/tests/functional/ManufacturersCest.php +++ b/tests/functional/ManufacturersCest.php @@ -57,10 +57,7 @@ public function passesCorrectValidation(FunctionalTester $I) public function allowsDelete(FunctionalTester $I) { $I->wantTo('Ensure I can delete a manufacturer'); - $manufacturerId = Manufacturer::doesntHave('models') - ->doesntHave('accessories') - ->doesntHave('consumables') - ->doesntHave('licenses')->first()->id; + $manufacturerId = factory(App\Models\Manufacturer::class, 'manufacturer')->create()->id; $I->sendDelete(route('manufacturers.destroy', $manufacturerId), ['_token' => csrf_token()]); $I->seeResponseCodeIs(200); } diff --git a/tests/functional/SuppliersCest.php b/tests/functional/SuppliersCest.php index be04e993b90c..0ce3d8d8f040 100644 --- a/tests/functional/SuppliersCest.php +++ b/tests/functional/SuppliersCest.php @@ -1,8 +1,5 @@ wantTo('Ensure I can delete a supplier'); - $I->sendDelete(route('suppliers.destroy', Supplier::doesntHave('assets')->doesntHave('licenses')->first()->id), ['_token' => csrf_token()]); + $supplier = factory(App\Models\Supplier::class, 'supplier')->create(); + $I->sendDelete(route('suppliers.destroy', $supplier->id), ['_token' => csrf_token()]); $I->seeResponseCodeIs(200); } } diff --git a/tests/unit/PermissionsTest.php b/tests/unit/PermissionsTest.php index 511f6cda1a49..a521006bb7fa 100644 --- a/tests/unit/PermissionsTest.php +++ b/tests/unit/PermissionsTest.php @@ -418,20 +418,12 @@ public function a_user_with_edit_components_permissions_can_edit_components() private function hitRoutes(array $routes, User $user) { $this->actingAs($user); - // dd($user); + foreach ($routes as $route => $response) { - // $this->log($route); -// if (strpos($route, 'edit') || strpos($route, 'show') || strpos($route, 'destroy')) { -// // ($this->get(route($route,2))->dump()); -// $this->get(route($route, 1)) -// ->assertResponseStatus($response); -// } else { - // dd($this->get(route($route))); - // echo($this->get(route($route))->dump()); - $this->get($route) - ->assertResponseStatus($response); -// } + // dd($this->get(route($route))); + // echo($this->get(route($route))->dump()); + $this->get($route) + ->assertResponseStatus($response); } } - }