diff --git a/app/Console/Commands/SendExpirationAlerts.php b/app/Console/Commands/SendExpirationAlerts.php index e47b99eaea..f8dfc8f0a4 100644 --- a/app/Console/Commands/SendExpirationAlerts.php +++ b/app/Console/Commands/SendExpirationAlerts.php @@ -68,7 +68,7 @@ class SendExpirationAlerts extends Command $asset_data['email_content'] .= ''.e($asset->present()->warrantee_expires()).''; $asset_data['email_content'] .= ''.$difference.' '.trans('mail.days').''; $asset_data['email_content'] .= ''.($asset->supplier ? e($asset->supplier->name) : '').''; - $asset_data['email_content'] .= ''.($asset->assigneduser ? e($asset->assigneduser->present()->fullName()) : '').''; + $asset_data['email_content'] .= ''.($asset->assignedTo ? e($asset->assignedTo->present()->name()) : '').''; $asset_data['email_content'] .= ''; } diff --git a/app/Helpers/Helper.php b/app/Helpers/Helper.php index 4d9269315c..58ef8992e6 100644 --- a/app/Helpers/Helper.php +++ b/app/Helpers/Helper.php @@ -339,11 +339,11 @@ class Helper * * @author [A. Gianotto] [] * @since [v2.5] - * @return Array + * @return array */ public static function detailedAssetList() { - $assets = array('' => trans('general.select_asset')) + Company::scopeCompanyables(Asset::with('assignedUser', 'model'), 'assets.company_id')->get()->pluck('detailed_name', 'id')->toArray(); + $assets = array('' => trans('general.select_asset')) + Company::scopeCompanyables(Asset::with('assignedTo', 'model'), 'assets.company_id')->get()->pluck('detailed_name', 'id')->toArray(); return $assets; } diff --git a/app/Http/Controllers/AssetsController.php b/app/Http/Controllers/AssetsController.php index cff0750d7a..06a7c0dfcf 100755 --- a/app/Http/Controllers/AssetsController.php +++ b/app/Http/Controllers/AssetsController.php @@ -104,23 +104,26 @@ class AssetsController extends Controller * * @author [A. Gianotto] [] * @since [v1.0] - * @param integer $model_id + * @param Request $request * @return View + * @internal param int $model_id */ public function create(Request $request) { $this->authorize('create', Asset::class); - $view = View::make('hardware/edit'); - $view->with('supplier_list', Helper::suppliersList()); - $view->with('company_list', Helper::companyList()); - $view->with('model_list', Helper::modelList()); - $view->with('statuslabel_list', Helper::statusLabelList()); - $view->with('assigned_to', Helper::usersList()); - $view->with('location_list', Helper::locationsList()); - $view->with('item', new Asset); - $view->with('manufacturer', Helper::manufacturerList()); - $view->with('category', Helper::categoryList('asset')); - $view->with('statuslabel_types', Helper::statusTypeList()); + $view = View::make('hardware/edit') + ->with('supplier_list', Helper::suppliersList()) + ->with('company_list', Helper::companyList()) + ->with('model_list', Helper::modelList()) + ->with('statuslabel_list', Helper::statusLabelList()) + ->with('location_list', Helper::locationsList()) + ->with('item', new Asset) + ->with('manufacturer', Helper::manufacturerList()) + ->with('category', Helper::categoryList('asset')) + ->with('statuslabel_types', Helper::statusTypeList()) + ->with('users_list', Helper::usersList()) + ->with('assets_list', Helper::assetsList()) + ->with('locations_list', Helper::locationsList()); if ($request->has('model_id')) { $selected_model = AssetModel::find($request->input('model_id')); @@ -217,9 +220,15 @@ class AssetsController extends Controller // Was the asset created? if ($asset->save()) { $asset->logCreate(); - if (Input::get('assigned_to')!='') { - $user = User::find(e(Input::get('assigned_to'))); - $asset->checkOutToUser($user, Auth::user(), date('Y-m-d H:i:s'), '', 'Checked out on asset creation', e(Input::get('name'))); + if(request('assigned_user')) { + $target = User::find(request('assigned_user')); + } elseif(request('assigned_asset')) { + $target = Asset::find(request('assigned_asset')); + } elseif(request('assigned_location')) { + $target = Location::find(request('assigned_location')); + } + if ($target) { + $asset->checkOut($target, Auth::user(), date('Y-m-d H:i:s'), '', 'Checked out on asset creation', e(Input::get('name'))); } // Redirect to the asset listing page \Session::flash('success', trans('admin/hardware/message.create.success')); @@ -416,7 +425,10 @@ class AssetsController extends Controller $this->authorize('checkout', $asset); // Get the dropdown of users and then pass it to the checkout view - return View::make('hardware/checkout', compact('asset'))->with('users_list', Helper::usersList()); + return View::make('hardware/checkout', compact('asset')) + ->with('users_list', Helper::usersList()) + ->with('assets_list', Helper::assetsList()) + ->with('locations_list', Helper::locationsList()); } @@ -431,7 +443,6 @@ class AssetsController extends Controller */ public function postCheckout(AssetCheckoutRequest $request, $assetId) { - // Check if the asset exists if (!$asset = Asset::find($assetId)) { return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.does_not_exist')); @@ -440,7 +451,14 @@ class AssetsController extends Controller } $this->authorize('checkout', $asset); - $user = User::find(Input::get('assigned_to')); + if(request('assigned_user')) { + $target = User::find(request('assigned_user')); + } elseif(request('assigned_asset')) { + $target = Asset::find(request('assigned_asset')); + } elseif(request('assigned_location')) { + $target = Location::find(request('assigned_location')); + } + // $user = User::find(Input::get('assigned_to')); $admin = Auth::user(); if ((Input::has('checkout_at')) && (Input::get('checkout_at')!= date("Y-m-d"))) { @@ -454,7 +472,7 @@ class AssetsController extends Controller } else { $expected_checkin = ''; } - if ($asset->checkOutToUser($user, $admin, $checkout_at, $expected_checkin, e(Input::get('note')), e(Input::get('name')))) { + if ($asset->checkOut($target, $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')); } @@ -509,7 +527,7 @@ class AssetsController extends Controller $admin = Auth::user(); - if (is_null($user = User::find($asset->assigned_to))) { + if (is_null($target = $asset->assignedTo)) { return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.checkin.already_checked_in')); } @@ -518,19 +536,19 @@ class AssetsController extends Controller $asset->expected_checkin = null; $asset->last_checkout = null; $asset->assigned_to = null; + $asset->assignedTo()->disassociate($asset); $asset->accepted = null; $asset->name = e(Input::get('name')); - if (Input::has('status_id')) { $asset->status_id = e(Input::get('status_id')); } // Was the asset updated? if ($asset->save()) { - $logaction = $asset->logCheckin($user, e(request('note'))); + $logaction = $asset->logCheckin($target, e(request('note'))); $data['log_id'] = $logaction->id; - $data['first_name'] = $user->first_name; + $data['first_name'] = get_class($target) == User::class ? $target->first_name : ''; $data['item_name'] = $asset->present()->name(); $data['checkin_date'] = $logaction->created_at; $data['item_tag'] = $asset->asset_tag; @@ -1155,9 +1173,9 @@ class AssetsController extends Controller Setting::getSettings() ); } elseif (Input::get('bulk_actions')=='delete') { - $assets = Asset::with('assigneduser', 'assetloc')->find($asset_ids); - $assets->each(function ($asset) { - $this->authorize('delete', $asset); + $assets = Asset::with('assignedTo', 'assetloc')->find($asset_ids); + $assets->each(function($asset) { + $this->authorize('delete',$asset); }); return View::make('hardware/bulk-delete')->with('assets', $assets); // Bulk edit @@ -1309,9 +1327,10 @@ class AssetsController extends Controller */ 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(); + $this->authorize('index', 'App\Models\Asset'); + $assets = Company::scopeCompanyables(Asset::select('assets.*'))->with( + 'assetLoc', 'assetstatus', 'defaultLoc', 'assetlog', 'company', + 'model.category', 'model.manufacturer', 'model.fieldset'); if ($request->has('search')) { $assets = $assets->TextSearch(e($request->get('search'))); @@ -1417,9 +1436,7 @@ class AssetsController extends Controller $rows = array(); foreach ($assets as $asset) { - $row = $asset->present()->forDataTable($all_custom_fields); - if (($request->has('report')) && ($request->get('report')=='true')) { $rows[]= Helper::stripTagsFromJSON($row); } else { diff --git a/app/Http/Controllers/CategoriesController.php b/app/Http/Controllers/CategoriesController.php index 5599dd5e42..84fcedfba7 100755 --- a/app/Http/Controllers/CategoriesController.php +++ b/app/Http/Controllers/CategoriesController.php @@ -247,7 +247,7 @@ class CategoriesController extends Controller public function getDataViewAssets(Request $request, $categoryID) { $category = Category::find($categoryID); - $category = $category->load('assets.company', 'assets.model', 'assets.assetstatus', 'assets.assigneduser'); + $category = $category->load('assets.company', 'assets.model', 'assets.assetstatus', 'assets.assignedTo'); $category_assets = $category->assets(); if (Input::has('search')) { $category_assets = $category_assets->TextSearch(e($request->input('search'))); diff --git a/app/Http/Controllers/ManufacturersController.php b/app/Http/Controllers/ManufacturersController.php index c346818c76..9fb5320521 100755 --- a/app/Http/Controllers/ManufacturersController.php +++ b/app/Http/Controllers/ManufacturersController.php @@ -246,7 +246,7 @@ class ManufacturersController extends Controller protected function getDataAssetsView(Manufacturer $manufacturer, Request $request) { - $manufacturer = $manufacturer->load('assets.model', 'assets.assigneduser', 'assets.assetstatus', 'assets.company'); + $manufacturer = $manufacturer->load('assets.model', 'assets.assignedTo', 'assets.assetstatus', 'assets.company'); $manufacturer_assets = $manufacturer->assets(); if ($request->has('search')) { diff --git a/app/Http/Controllers/ReportsController.php b/app/Http/Controllers/ReportsController.php index 9af67f3e1b..95239d4eef 100644 --- a/app/Http/Controllers/ReportsController.php +++ b/app/Http/Controllers/ReportsController.php @@ -121,7 +121,7 @@ class ReportsController extends Controller // Open output stream $handle = fopen('php://output', 'w'); - Asset::with('assigneduser', 'assetloc', 'defaultLoc', 'assigneduser.userloc', 'model', 'supplier', 'assetstatus', 'model.manufacturer')->orderBy('created_at', 'DESC')->chunk(500, function ($assets) use ($handle, $customfields) { + Asset::with('assignedTo', 'assetLoc','defaultLoc','assignedTo','model','supplier','assetstatus','model.manufacturer')->orderBy('created_at', 'DESC')->chunk(500, function($assets) use($handle, $customfields) { $headers=[ trans('general.company'), trans('admin/hardware/table.asset_tag'), @@ -160,10 +160,9 @@ class ReportsController extends Controller ($asset->purchase_cost > 0) ? Helper::formatCurrencyOutput($asset->purchase_cost) : '', ($asset->order_number) ? e($asset->order_number) : '', ($asset->supplier) ? e($asset->supplier->name) : '', - ($asset->assigneduser) ? e($asset->assigneduser->present()->fullName()) : '', + ($asset->assignedTo) ? e($asset->assignedTo->present()->name()) : '', ($asset->last_checkout!='') ? e($asset->last_checkout) : '', - ($asset->assigneduser && $asset->assigneduser->userloc!='') ? - e($asset->assigneduser->userloc->name) : ( ($asset->defaultLoc!='') ? e($asset->defaultLoc->name) : ''), + e($asset->assetLoc->present()->name()), ($asset->notes) ? e($asset->notes) : '', ]; foreach ($customfields as $field) { @@ -195,7 +194,7 @@ class ReportsController extends Controller { // Grab all the assets - $assets = Asset::with('model', 'assigneduser', 'assetstatus', 'defaultLoc', 'assetlog', 'company') + $assets = Asset::with('model', 'assignedTo', 'assetstatus', 'defaultLoc', 'assetlog', 'company') ->orderBy('created_at', 'DESC')->get(); return View::make('reports/depreciation', compact('assets')); @@ -213,7 +212,7 @@ class ReportsController extends Controller { // Grab all the assets - $assets = Asset::with('model', 'assigneduser', 'assetstatus', 'defaultLoc', 'assetlog') + $assets = Asset::with('model', 'assignedTo', 'assetstatus', 'defaultLoc', 'assetlog') ->orderBy('created_at', 'DESC')->get(); $csv = \League\Csv\Writer::createFromFileObject(new \SplTempFileObject()); @@ -244,15 +243,13 @@ class ReportsController extends Controller $row[] = e($asset->name); $row[] = e($asset->serial); - if ($asset->assigned_to > 0) { - $user = User::find($asset->assigned_to); - $row[] = e($user->present()->fullName()); + if ($target = $asset->assignedTo) { + $row[] = e($target->present()->name()); } else { $row[] = ''; // Empty string if unassigned } - if (( $asset->assigned_to > 0 ) && ( $asset->assigneduser->location_id > 0 )) { - $location = Location::find($asset->assigneduser->location_id); + if (( $asset->assigned_to > 0 ) && ( $location = $asset->assetLoc )) { if ($location->city) { $row[] = e($location->city) . ', ' . e($location->state); } elseif ($location->name) { @@ -365,8 +362,7 @@ class ReportsController extends Controller $activity_target = ''; } } elseif (($activity->action_type=='accepted') || ($activity->action_type=='declined')) { - $activity_target = '' . e($activity->item->assigneduser->present()->fullName()) . ''; - + $activity_target = $activity->item->assignedTo->nameUrl(); } elseif ($activity->action_type=='requested') { if ($activity->user) { $activity_target = ''.$activity->user->present()->fullName().''; @@ -631,34 +627,25 @@ class ReportsController extends Controller } if (e(Input::get('location')) == '1') { - $show_loc = ''; - - - if (($asset->assigned_to > 0) && ($asset->assigneduser) && ($asset->assigneduser->location)) { - $show_loc .= '"' .e($asset->assigneduser->location->name). '"'; - } elseif ($asset->rtd_location_id!='') { - $location = Location::find($asset->rtd_location_id); - if ($location) { - $show_loc .= '"' .e($location->name). '"'; - } else { - $show_loc .= 'Default location '.$asset->rtd_location_id.' is invalid'; - } + if($asset->assetLoc) { + $show_loc = $asset->assetLoc->present()->name(); + } else { + $show_loc = 'Default location '.$asset->rtd_location_id.' is invalid'; } - $row[] = $show_loc; - } if (e(Input::get('assigned_to')) == '1') { - if ($asset->assigneduser) { - $row[] = '"' .e($asset->assigneduser->present()->fullName()). '"'; + if ($asset->assignedTo) { + $row[] = '"' .e($asset->assignedTo->present()->name()). '"'; } else { $row[] = ''; // Empty string if unassigned } } if (e(Input::get('username')) == '1') { + // Only works if we're checked out to a user, not anything else. if ($asset->assigneduser) { $row[] = '"' .e($asset->assigneduser->username). '"'; } else { @@ -667,6 +654,7 @@ class ReportsController extends Controller } if (e(Input::get('employee_num')) == '1') { + // Only works if we're checked out to a user, not anything else. if ($asset->assigneduser) { $row[] = '"' .e($asset->assigneduser->employee_num). '"'; } else { @@ -859,7 +847,7 @@ class ReportsController extends Controller $row[] = str_replace(',', '', e($assetItem->assetlog->model->name)); $row[] = str_replace(',', '', e($assetItem->assetlog->present()->name())); $row[] = str_replace(',', '', e($assetItem->assetlog->asset_tag)); - $row[] = str_replace(',', '', e($assetItem->assetlog->assigneduser->present()->fullName())); + $row[] = str_replace(',', '', e($assetItem->assetlog->assignedTo->present()->name())); $rows[] = implode($row, ','); } diff --git a/app/Http/Controllers/UsersController.php b/app/Http/Controllers/UsersController.php index e1f77d9dff..d7c9a7b5ca 100755 --- a/app/Http/Controllers/UsersController.php +++ b/app/Http/Controllers/UsersController.php @@ -365,9 +365,9 @@ class UsersController extends Controller // Authorize takes care of many of our logic checks now. $this->authorize('delete', User::class); - if ($user->assets()->count() > 0) { + if ($user->assignedAssets()->count() > 0) { // Redirect to the user management page - return redirect()->route('users.index')->with('error', 'This user still has ' . $user->assets()->count() . ' assets associated with them.'); + return redirect()->route('users.index')->with('error', 'This user still has ' . $user->assignedAssets()->count() . ' assets associated with them.'); } if ($user->licenses()->count() > 0) { @@ -551,7 +551,7 @@ class UsersController extends Controller */ public function show($userId = null) { - if (!$user = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc')->withTrashed()->find($userId)) { + if(!$user = User::with('assignedAssets', 'assignedAssets.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); @@ -1133,7 +1133,7 @@ class UsersController extends Controller // Open output stream $handle = fopen('php://output', 'w'); - User::with('assets', 'accessories', 'consumables', 'licenses', 'manager', 'groups', 'userloc', 'company', 'throttle')->orderBy('created_at', 'DESC')->chunk(500, function ($users) use ($handle) { + User::with('assignedAssets', 'accessories', 'consumables', 'licenses', 'manager', 'groups', 'userloc', 'company','throttle')->orderBy('created_at', 'DESC')->chunk(500, function($users) use($handle) { $headers=[ // strtolower to prevent Excel from trying to open it as a SYLK file strtolower(trans('general.id')), @@ -1175,7 +1175,7 @@ class UsersController extends Controller $user->email, ($user->manager) ? $user->manager->present()->fullName() : '', ($user->userloc) ? $user->userloc->name : '', - $user->assets->count(), + $user->assignedAssets->count(), $user->licenses->count(), $user->accessories->count(), $user->consumables->count(), diff --git a/app/Http/Controllers/ViewAssetsController.php b/app/Http/Controllers/ViewAssetsController.php index 553b5c5c50..8372ab7e03 100755 --- a/app/Http/Controllers/ViewAssetsController.php +++ b/app/Http/Controllers/ViewAssetsController.php @@ -41,8 +41,7 @@ class ViewAssetsController extends Controller { $user = User::with( - 'assets', - 'assets.model', + 'assignedAssets.model', 'consumables', 'accessories', 'licenses', @@ -69,7 +68,7 @@ class ViewAssetsController extends Controller public function getRequestableIndex() { - $assets = Asset::with('model', 'defaultLoc', 'assetloc', 'assigneduser')->Hardware()->RequestableAssets()->get(); + $assets = Asset::with('model', 'defaultLoc', 'assetloc', 'assignedTo')->Hardware()->RequestableAssets()->get(); $models = AssetModel::with('category')->RequestableModels()->get(); return View::make('account/requestable-assets', compact('user', 'assets', 'models')); diff --git a/app/Http/Requests/AssetCheckoutRequest.php b/app/Http/Requests/AssetCheckoutRequest.php index 9b3e98c2d6..7c341b3028 100644 --- a/app/Http/Requests/AssetCheckoutRequest.php +++ b/app/Http/Requests/AssetCheckoutRequest.php @@ -24,7 +24,9 @@ class AssetCheckoutRequest extends Request public function rules() { return [ - "assigned_to" => 'required', + "assigned_user" => 'required_without_all:assigned_asset,assigned_location', + "assigned_asset" => 'required_without_all:assigned_user,assigned_location', + "assigned_location" => 'required_without_all:assigned_user,assigned_asset', ]; } } diff --git a/app/Http/Requests/AssetRequest.php b/app/Http/Requests/AssetRequest.php index 1ebe03e7a6..6a7be8bf7b 100644 --- a/app/Http/Requests/AssetRequest.php +++ b/app/Http/Requests/AssetRequest.php @@ -26,19 +26,21 @@ class AssetRequest extends Request public function rules() { $rules = [ - 'name' => 'min:2|max:255', - 'model_id' => 'required|integer', - 'status_id' => 'required|integer', - 'company_id' => 'integer|nullable', - 'warranty_months' => 'numeric|nullable', - 'physical' => 'integer|nullable', - 'checkout_date' => 'date', - 'checkin_date' => 'date', - 'supplier_id' => 'integer|nullable', - 'status' => 'integer|nullable', - 'asset_tag' => 'required', - 'purchase_cost' => 'numeric|nullable', - + 'name' => 'min:2|max:255', + 'model_id' => 'required|integer', + 'status_id' => 'required|integer', + 'company_id' => 'integer|nullable', + 'warranty_months' => 'numeric|nullable', + 'physical' => 'integer|nullable', + 'checkout_date' => 'date', + 'checkin_date' => 'date', + 'supplier_id' => 'integer|nullable', + 'status' => 'integer|nullable', + 'asset_tag' => 'required', + 'purchase_cost' => 'numeric|nullable', + "assigned_user" => 'required_without_all:assigned_asset,assigned_location', + "assigned_asset" => 'required_without_all:assigned_user,assigned_location', + "assigned_location" => 'required_without_all:assigned_user,assigned_asset', ]; $model = AssetModel::find($this->request->get('model_id')); diff --git a/app/Models/Asset.php b/app/Models/Asset.php index 1781a88cf6..faf7be7b46 100644 --- a/app/Models/Asset.php +++ b/app/Models/Asset.php @@ -22,6 +22,9 @@ class Asset extends Depreciable use Loggable, Requestable, Presentable; use SoftDeletes; + const LOCATION = 'location'; + const ASSET = 'asset'; + const USER = 'user'; /** * The database table used by the model. * @@ -91,9 +94,9 @@ class Asset extends Depreciable * @param null $name * @return bool */ - public function checkOutToUser($user, $admin, $checkout_at = null, $expected_checkin = null, $note = null, $name = null) + public function checkOut($target, $admin, $checkout_at = null, $expected_checkin = null, $note = null, $name = null) { - if (!$user) { + if (!$target) { return false; } @@ -103,7 +106,8 @@ class Asset extends Depreciable $this->last_checkout = $checkout_at; - $this->assigneduser()->associate($user); + $this->assignedTo()->associate($target); + if ($name != null) { $this->name = $name; @@ -113,13 +117,11 @@ class Asset extends Depreciable $this->accepted="pending"; } - - if ($this->save()) { $log = $this->logCheckout($note); - if ((($this->requireAcceptance()=='1') || ($this->getEula())) && ($user->email!='')) { - $this->checkOutNotifyMail($log->id, $user, $checkout_at, $expected_checkin, $note); - } +// if ((($this->requireAcceptance()=='1') || ($this->getEula())) && ($user->email!='')) { +// $this->checkOutNotifyMail($log->id, $user, $checkout_at, $expected_checkin, $note); +// } return true; } return false; @@ -150,11 +152,10 @@ class Asset extends Depreciable } - public function getDetailedNameAttribute() { - if ($this->assignedUser) { - $user_name = $this->assignedUser->present()->fullName(); + if ($this->assignedTo) { + $user_name = $this->assignedTo->present()->name(); } else { $user_name = "Unassigned"; } @@ -203,24 +204,50 @@ class Asset extends Depreciable ->orderBy('created_at', 'desc'); } + + /** + * Even though we allow allow for checkout to things beyond users + * this method is an easy way of seeing if we are checked out to a user. + * @return mixed + */ public function assigneduser() { return $this->belongsTo('\App\Models\User', 'assigned_to') ->withTrashed(); } + public function assignedTo() + { + return $this->morphTo('assigned', 'assigned_type', 'assigned_to'); + } + + public function assignedAssets() + { + return $this->morphMany('App\Models\Asset', 'assigned', 'assigned_type', 'assigned_to')->withTrashed(); + } + /** * Get the asset's location based on the assigned user **/ - public function assetloc() + public function assetLoc() { - if ($this->assigneduser) { - return $this->assigneduser->userloc(); - } else { - return $this->belongsTo('\App\Models\Location', 'rtd_location_id'); + if(!empty($this->assignedType())) { + if ($this->assignedType() == self::ASSET) { + return $this->assignedTo->assetloc(); // Recurse until we have a final location + } elseif ($this->assignedType() == self::LOCATION) { + return $this->assignedTo(); + } + // Default to User +// var_dump($this); + return $this->assignedTo->userLoc(); } + return $this->defaultLoc(); } + public function assignedType() + { + return strtolower(class_basename($this->assigned_type)); + } /** * Get the asset's location based on default RTD location **/ diff --git a/app/Models/CheckoutRequest.php b/app/Models/CheckoutRequest.php index 94d1cffb25..39d046a9f8 100644 --- a/app/Models/CheckoutRequest.php +++ b/app/Models/CheckoutRequest.php @@ -39,10 +39,8 @@ class CheckoutRequest extends Model { if ($this->itemType() == "asset") { $asset = $this->itemRequested(); - if ($asset->assigneduser && $asset->assetloc) { + if ($asset->assignedTo) { return $asset->assetloc; - } elseif ($asset->defaultLoc) { - return $asset->defaultLoc; } } return $this->itemRequested()->location; diff --git a/app/Models/Location.php b/app/Models/Location.php index 174d4c577f..971dc3cc80 100755 --- a/app/Models/Location.php +++ b/app/Models/Location.php @@ -55,9 +55,9 @@ class Location extends SnipeModel return $this->hasManyThrough('\App\Models\Asset', '\App\Models\User', 'location_id', 'assigned_to', 'id'); } - public function assignedassets() + public function locationAssets() { - return $this->hasMany('\App\Models\Asset', 'rtd_location_id'); + return $this->hasMany('\App\Models\Asset', 'rtd_location_id')->orHas('assignedAssets'); } public function parent() @@ -70,6 +70,12 @@ class Location extends SnipeModel return $this->hasMany('\App\Models\Location', 'parent_id'); } + public function assignedAssets() + { + return $this->morphMany('App\Models\Asset', 'assigned', 'assigned_type', 'assigned_to')->withTrashed(); + // return $this->hasMany('\App\Models\Asset', 'assigned_to')->withTrashed(); + } + public static function getLocationHierarchy($locations, $parent_id = null) { diff --git a/app/Models/Loggable.php b/app/Models/Loggable.php index 42c00c5fea..faf53d686c 100644 --- a/app/Models/Loggable.php +++ b/app/Models/Loggable.php @@ -44,6 +44,7 @@ trait Loggable $log->user_id = Auth::user()->id; + // @FIXME This needs to be generalized with new asset checkout. if (!is_null($this->asset_id) || isset($target)) { $log->target_type = Asset::class; $log->target_id = $this->asset_id; @@ -53,7 +54,18 @@ trait Loggable } $item = call_user_func(array($log->target_type, 'find'), $log->target_id); - $log->location_id = $item->location_id; + if($this->assignedTo) { + $item = $this->assignedTo; + } + $class = get_class($item); + if($class == Location::class) { + // We can checkout to a location + $log->location_id = $item->id; + } else if ($class== Asset::class) { + $log->location_id = $item->rtd_location_id; + } else { + $log->location_id = $item->location_id; + } $log->note = $note; $log->logaction('checkout'); diff --git a/app/Models/User.php b/app/Models/User.php index 37433cba71..79c80620b1 100755 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -127,9 +127,10 @@ class User extends SnipeModel implements AuthenticatableContract, CanResetPasswo /** * Get assets assigned to this user */ - public function assets() + public function assignedAssets() { - return $this->hasMany('\App\Models\Asset', 'assigned_to')->withTrashed(); + return $this->morphMany('App\Models\Asset', 'assigned', 'assigned_type', 'assigned_to')->withTrashed(); + // return $this->hasMany('\App\Models\Asset', 'assigned_to')->withTrashed(); } /** diff --git a/app/Presenters/AssetPresenter.php b/app/Presenters/AssetPresenter.php index f43a07f8e5..6077a8fc9e 100644 --- a/app/Presenters/AssetPresenter.php +++ b/app/Presenters/AssetPresenter.php @@ -83,14 +83,14 @@ class AssetPresenter extends Presenter $results['status_label'] = ''; $results['assigned_to'] = ''; - if ($assigned = $this->model->assigneduser) { + if($assigned = $this->model->assignedTo) { $results['status_label'] = 'Deployed'; - $results['assigned_to'] = (string) link_to_route('users.show', $assigned->present()->fullName(), $this->assigned_to); - } elseif ($this->model->assetstatus) { + $results['assigned_to'] = $assigned->present()->nameUrl(); + } else if($this->model->assetstatus) { $results['status_label'] = $this->model->assetstatus->name; } $results['location'] = ''; - if (isset($assigned) and !empty($assignedLoc = $assigned->userloc)) { + if (isset($assigned) and !empty($assignedLoc = $this->model->assetLoc)) { $results['location'] = $assignedLoc->present()->nameUrl(); } elseif (!empty($this->model->defaultLoc)) { $results['location'] = $this->model->defaultLoc->present()->nameUrl(); diff --git a/app/Presenters/LocationPresenter.php b/app/Presenters/LocationPresenter.php index 3dba758a47..98d86ca67c 100644 --- a/app/Presenters/LocationPresenter.php +++ b/app/Presenters/LocationPresenter.php @@ -55,6 +55,15 @@ class LocationPresenter extends Presenter return (string)link_to_route('locations.show', $this->name, $this->id); } + /** + * Getter for Polymorphism. + * @return mixed + */ + public function name() + { + return $this->model->name; + } + /** * Url to view this item. * @return string diff --git a/app/Presenters/UserPresenter.php b/app/Presenters/UserPresenter.php index ccc90f2c17..1beac2d5b6 100644 --- a/app/Presenters/UserPresenter.php +++ b/app/Presenters/UserPresenter.php @@ -71,7 +71,7 @@ class UserPresenter extends Presenter 'location' => ($this->model->userloc) ? $this->model->userloc->present()->nameUrl() : '', 'manager' => ($this->model->manager) ? $this->manager->present()->nameUrl() : '', 'employee_num' => $this->employee_num, - 'assets' => $this->model->assets()->count(), + 'assets' => $this->model->assignedAssets()->count(), 'licenses' => $this->model->licenses()->count(), 'accessories' => $this->model->accessories()->count(), 'consumables' => $this->model->consumables()->count(), @@ -108,6 +108,15 @@ class UserPresenter extends Presenter return "{$this->first_name} {$this->last_name}"; } + /** + * Standard accessor. + * @TODO Remove presenter::fullName() entirely? + * @return string + */ + public function name() + { + return $this->fullName(); + } /** * Returns the user Gravatar image url. * diff --git a/database/migrations/2016_12_27_212631_make_asset_assigned_to_polymorphic.php b/database/migrations/2016_12_27_212631_make_asset_assigned_to_polymorphic.php new file mode 100644 index 0000000000..a00692c7b1 --- /dev/null +++ b/database/migrations/2016_12_27_212631_make_asset_assigned_to_polymorphic.php @@ -0,0 +1,39 @@ +string('assigned_type')->nullable(); + }); + + // Prior to this migration, asset's could only be assigned to users. + Asset::whereNotNull('assigned_to')->orWhere('assigned_to', '')->update(['assigned_type' => User::class]); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('assets', function (Blueprint $table) { + // + $table->dropColumn('assigned_type'); + }); + } +} diff --git a/resources/views/account/requestable-assets.blade.php b/resources/views/account/requestable-assets.blade.php index 68718d72a7..a615ece5e7 100644 --- a/resources/views/account/requestable-assets.blade.php +++ b/resources/views/account/requestable-assets.blade.php @@ -60,11 +60,7 @@ {{ $asset->serial }} - @if ($asset->assigneduser && $asset->assetloc) {{ $asset->assetloc->name }} - @elseif ($asset->defaultLoc) - {{ $asset->defaultLoc->name }} - @endif @if ($asset->assigned_to != '' && $asset->assigned_to > 0) Checked out diff --git a/resources/views/account/view-assets.blade.php b/resources/views/account/view-assets.blade.php index 19584dc8f1..210866c34d 100755 --- a/resources/views/account/view-assets.blade.php +++ b/resources/views/account/view-assets.blade.php @@ -23,7 +23,7 @@ View Assets for {{ $user->present()->fullName() }}
- @if (count($user->assets) > 0) + @if (count($user->assignedAssets) > 0)
@@ -35,7 +35,7 @@ View Assets for {{ $user->present()->fullName() }} - @foreach ($user->assets as $asset) + @foreach ($user->assignedAssets as $asset) diff --git a/resources/views/hardware/checkout.blade.php b/resources/views/hardware/checkout.blade.php index e666b353bc..31a1c982eb 100755 --- a/resources/views/hardware/checkout.blade.php +++ b/resources/views/hardware/checkout.blade.php @@ -47,14 +47,40 @@
- {{ Form::label('assigned_to', trans('admin/hardware/form.checkout_to'), array('class' => 'col-md-3 control-label')) }} + {{ Form::label('assigned_user', trans('admin/hardware/form.checkout_to'), array('class' => 'col-md-3 control-label')) }}
- {{ Form::select('assigned_to', $users_list , Input::old('assigned_to', $asset->assigned_to), array('class'=>'select2', 'id'=>'assigned_to', 'style'=>'width:100%')) }} + {{ Form::select('assigned_user', $users_list , Input::old('assigned_user', $asset->assigned_type == 'App\Models\User' ? $asset->assigned_to : 0), array('class'=>'select2', 'id'=>'assigned_user', 'style'=>'width:100%')) }} - {!! $errors->first('assigned_to', ' :message') !!} + {!! $errors->first('assigned_user', ' :message') !!}
- New + New +
+
+ + +
+ {{ Form::label('assigned_asset', trans('admin/hardware/form.checkout_to'), array('class' => 'col-md-3 control-label')) }} +
+ {{ Form::select('assigned_asset', $assets_list , Input::old('assigned_asset', $asset->assigned_type == 'App\Models\Asset' ? $asset->assigned_to : 0), array('class'=>'select2', 'id'=>'assigned_asset', 'style'=>'width:100%')) }} + + {!! $errors->first('assigned_asset', ' :message') !!} +
+
+ New +
+
+ + +
+ {{ Form::label('assigned_location', trans('admin/hardware/form.checkout_to'), array('class' => 'col-md-3 control-label')) }} +
+ {{ Form::select('assigned_location', $locations_list , Input::old('assigned_location', $asset->assigned_type == 'App\Models\Asset' ? $asset->assigned_to : 0), array('class'=>'select2', 'id'=>'assigned_location', 'style'=>'width:100%')) }} + + {!! $errors->first('assigned_location', ' :message') !!} +
+
+ New
diff --git a/resources/views/hardware/edit.blade.php b/resources/views/hardware/edit.blade.php index 4ddeb43792..392bf56e29 100755 --- a/resources/views/hardware/edit.blade.php +++ b/resources/views/hardware/edit.blade.php @@ -64,17 +64,41 @@ @if (!$item->id) - - + diff --git a/resources/views/reports/index.blade.php b/resources/views/reports/index.blade.php index f16f39eebd..9c5100fa96 100755 --- a/resources/views/reports/index.blade.php +++ b/resources/views/reports/index.blade.php @@ -48,15 +48,12 @@ diff --git a/resources/views/reports/unaccepted_assets.blade.php b/resources/views/reports/unaccepted_assets.blade.php index 5afeb5b37f..c72cc6ea03 100644 --- a/resources/views/reports/unaccepted_assets.blade.php +++ b/resources/views/reports/unaccepted_assets.blade.php @@ -39,9 +39,9 @@ - + - + @endforeach @endif diff --git a/resources/views/users/confirm-bulk-delete.blade.php b/resources/views/users/confirm-bulk-delete.blade.php index d4f66b96c3..f1c6ff124b 100644 --- a/resources/views/users/confirm-bulk-delete.blade.php +++ b/resources/views/users/confirm-bulk-delete.blade.php @@ -70,7 +70,7 @@ Bulk Checkin & Delete @endforeach - @foreach ($user->assets as $asset) + @foreach ($user->assignedAssets as $asset)
@if ($asset->physical=='1') diff --git a/resources/views/hardware/bulk-delete.blade.php b/resources/views/hardware/bulk-delete.blade.php index d60b67e429..a9cbf6e037 100644 --- a/resources/views/hardware/bulk-delete.blade.php +++ b/resources/views/hardware/bulk-delete.blade.php @@ -47,8 +47,8 @@ @endif - @if ($asset->assigneduser) - {{ $asset->assigneduser->present()->fullName() }} ({{ $asset->assigneduser->username }}) + @if ($asset->assignedTo) + {{ $asset->assignedTo->present()->name().' ' .$asset->assigneduser ? '('.$asset->assigneduser->username. ')' : ''}} @endif
{{ trans('admin/hardware/form.depreciation') }}{{ trans('general.depreciation') }} {{ $asset->depreciation->name }} ({{ $asset->depreciation->months }} @@ -347,11 +347,13 @@ @endif - @if (($asset->assigneduser) && ($asset->assigned_to > 0) && ($asset->deleted_at=='')) + @if (($asset->assignedTo) && ($asset->deleted_at==''))

{{ trans('admin/hardware/form.checkedout_to') }}

- {{ $asset->assigneduser->present()->fullName() }} - {{ $asset->assigneduser->present()->fullName() }} + @if($asset->assigned_type == User::class) + {{ $asset->assigneduser->present()->fullName() }} + @endif + {!! $asset->assignedTo->present()->nameUrl() !!}

    @@ -363,37 +365,20 @@
  • {{ $asset->assigneduser->phone }}
  • @endif - @if (isset($asset->userloc)) -
  • {{ $asset->userloc->name }}
  • -
  • {{ $asset->userloc->address }} - @if ($asset->userloc->address2!='') - {{ $asset->userloc->address2 }} + @if (isset($asset->assetLoc)) +
  • {{ $asset->assetLoc->name }}
  • +
  • {{ $asset->assetLoc->address }} + @if ($asset->assetLoc->address2!='') + {{ $asset->assetLoc->address2 }} @endif
  • -
  • {{ $asset->userloc->city }} - @if (($asset->userloc->city!='') && ($asset->userloc->state!='')) +
  • {{ $asset->assetLoc->city }} + @if (($asset->assetLoc->city!='') && ($asset->assetLoc->state!='')) , @endif - {{ $asset->userloc->state }} {{ $asset->userloc->zip }} + {{ $asset->assetLoc->state }} {{ $asset->assetLoc->zip }}
  • - - @elseif (isset($asset->assetloc)) -
  • {{ $asset->assetloc->name }}
  • -
  • {{ $asset->assetloc->address }} - @if ($asset->assetloc->address2!='') - {{ $asset->assetloc->address2 }} - @endif -
  • - -
  • - {{ $asset->assetloc->city }} - @if (($asset->assetloc->city!='') && ($asset->assetloc->state!='')) - , - @endif - {{ $asset->assetloc->state }} {{ $asset->assetloc->zip }} -
  • - @endif
@@ -600,8 +585,8 @@ @endif @elseif (($log->action_type=='accepted') || ($log->action_type=='declined')) {{-- On a declined log, the asset isn't assigned to anyone when we look this up. --}} - @if ($log->item->assigneduser) - {{ $log->item->assigneduser->present()->fullName() }} + @if ($log->item->assignedTo) + {{ $log->item->assignedTo->present()->name() }} @else Unknown @endif diff --git a/resources/views/licenses/view.blade.php b/resources/views/licenses/view.blade.php index cfd3e1ed50..73a8304f68 100755 --- a/resources/views/licenses/view.blade.php +++ b/resources/views/licenses/view.blade.php @@ -68,11 +68,9 @@ @elseif ($licensedto->asset) @if ($licensedto->asset->assigned_to != 0) @can('users.view') - - {{ $licensedto->asset->assigneduser->present()->fullName() }} - + {!! $licensedto->asset->assignedTo->present()->nameUrl() !!} @else - {{ $licensedto->asset->assigneduser->present()->fullName() }} + {{ $licensedto->asset->assignedTo->present()->name() }} @endcan @endif @endif diff --git a/resources/views/reports/depreciation.blade.php b/resources/views/reports/depreciation.blade.php index 1729ba370d..02315ee355 100644 --- a/resources/views/reports/depreciation.blade.php +++ b/resources/views/reports/depreciation.blade.php @@ -74,13 +74,11 @@ @endif
- @if ($asset->assigneduser) - @if ($asset->assigneduser->deleted_at!='') - {{ $asset->assigneduser->present()->fullName() }} + @if ($asset->assignedTo) + @if ($asset->assignedTo->deleted_at!='') + {{ $asset->assignedTo->present()->name() }} @else - - {{ $asset->assigneduser->present()->fullName() }} - + {!! $asset->assignedTo->present()->nameUrl() !!} @endif @endif {{ $asset->serial }} @if ($asset->assigned_to != '') - - {{ $asset->assigneduser->present()->fullName() }} - + {!! $asset->assignedTo->present->nameUrl() !!} @endif - @if (($asset->assigned_to > 0) && ($asset->assigneduser->location_id > 0)) {{ Location::find($asset->assigneduser->location_id)->city }} - , - {{ Location::find($asset->assigneduser->location_id)->state }} + @if (($asset->assignedTo) && ($asset->assigneduser->assetLoc)) + {{ $asset->assignedTo->assetLoc->city }}, {{ $asset->assignedTo->assetLoc->state}} @endif {{ $asset->purchase_date }}{{ is_null($assetItem->company) ? '' : $assetItem->company->name }} {{ $assetItem->model->category->name }} {{ $assetItem->model->name }}{{ link_to_route('hardware.show',$assetItem->present()->name(), [$assetItem->id]) }}{!! $assetItem->present()->nameUrl() !!} {{ $assetItem->asset_tag }}{{ link_to_route('users.show', $assetItem->assigneduser->present()->fullName(), [$assetItem->assigned_to])}}{!! $assetItem->assignedTo->present()->nameUrl() !!}
- {{ number_format($user->assets()->count()) }} + {{ number_format($user->assignedAssets()->count()) }} {{ number_format($user->accessories()->count()) }} diff --git a/resources/views/users/view.blade.php b/resources/views/users/view.blade.php index 61bfd71134..6bf765c866 100755 --- a/resources/views/users/view.blade.php +++ b/resources/views/users/view.blade.php @@ -228,7 +228,7 @@
@if ($asset->physical=='1') diff --git a/routes/api.php b/routes/api.php index 3d7a334c3d..8f08a06da8 100644 --- a/routes/api.php +++ b/routes/api.php @@ -19,7 +19,7 @@ use App\Models\Statuslabel; Route::group(['prefix' => 'v1', 'middleware' => 'auth:api'], function () { /*---Hardware API---*/ - Route::group([ 'prefix' => 'hardware','middleware' => ['web','auth','authorize:assets.view']], function () { + Route::group([ 'prefix' => 'hardware','middleware' => ['web','auth']], function () { Route::get('list/{status?}', [ 'as' => 'api.hardware.list', 'uses' => 'AssetsController@getDatatable' ]); diff --git a/tests/_data/dump.sql b/tests/_data/dump.sql index e08889b2c0..6d6e8580c1 100644 --- a/tests/_data/dump.sql +++ b/tests/_data/dump.sql @@ -1,8 +1,8 @@ --- MySQL dump 10.13 Distrib 5.7.16, for Linux (x86_64) +-- MySQL dump 10.13 Distrib 5.7.9, for Linux (x86_64) -- -- Host: localhost Database: snipeittests -- ------------------------------------------------------ --- Server version 5.7.16-0ubuntu0.16.04.1 +-- Server version 5.7.9 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; @@ -263,6 +263,7 @@ CREATE TABLE `assets` ( `last_checkout` datetime DEFAULT NULL, `expected_checkin` date DEFAULT NULL, `company_id` int(10) unsigned DEFAULT NULL, + `assigned_type` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -273,7 +274,7 @@ CREATE TABLE `assets` ( LOCK TABLES `assets` WRITE; /*!40000 ALTER TABLE `assets` DISABLE KEYS */; -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); +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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL),(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,NULL); /*!40000 ALTER TABLE `assets` ENABLE KEYS */; UNLOCK TABLES; @@ -787,7 +788,7 @@ CREATE TABLE `migrations` ( `migration` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `batch` int(11) NOT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=215 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=216 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -796,7 +797,7 @@ CREATE TABLE `migrations` ( LOCK TABLES `migrations` WRITE; /*!40000 ALTER TABLE `migrations` DISABLE KEYS */; -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); +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),(215,'2016_12_27_212631_make_asset_assigned_to_polymorphic',2); /*!40000 ALTER TABLE `migrations` ENABLE KEYS */; UNLOCK TABLES; @@ -1353,4 +1354,4 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2016-12-19 9:50:57 +-- Dump completed on 2016-12-29 17:04:05 diff --git a/tests/functional/AssetsCest.php b/tests/functional/AssetsCest.php index 18ca5edf87..ec8cff687f 100644 --- a/tests/functional/AssetsCest.php +++ b/tests/functional/AssetsCest.php @@ -35,11 +35,30 @@ class AssetsCest { $asset = factory(App\Models\Asset::class,'asset')->make(); $values = [ + 'company_id' => $asset->company_id, + 'asset_tag' => $asset->asset_tag, + 'model_id' => $asset->model_id, + 'status_id' => $asset->status_id, + 'assigned_user' => $I->getUserId(), + 'serial' => $asset->serial, + 'name' => $asset->name, + 'purchase_date' => '2016-01-01', + 'supplier_id' => $asset->supplier_id, + 'order_number' => $asset->order_number, + 'purchase_cost' => $asset->purchase_cost, + 'warranty_months' => $asset->warranty_months, + 'notes' => $asset->notes, + 'rtd_location_id' => $asset->rtd_location_id, + 'requestable' => $asset->requestable, + ]; + + $seenValues = [ 'company_id' => $asset->company_id, 'asset_tag' => $asset->asset_tag, 'model_id' => $asset->model_id, 'status_id' => $asset->status_id, 'assigned_to' => $I->getUserId(), + 'assigned_type' => 'App\Models\User', 'serial' => $asset->serial, 'name' => $asset->name, 'purchase_date' => '2016-01-01', @@ -55,7 +74,7 @@ class AssetsCest $I->wantTo("Test Validation Succeeds"); $I->amOnPage(route('hardware.create')); $I->submitForm('form#create-form', $values); - $I->seeRecord('assets', $values); + $I->seeRecord('assets', $seenValues); $I->dontSeeElement('.alert-danger'); // We should check for success, but we can't because of the stupid ajaxy way I did things. FIXME when the asset form is rewritten. } diff --git a/tests/functional/UsersCest.php b/tests/functional/UsersCest.php index 3eee506825..5e10734362 100644 --- a/tests/functional/UsersCest.php +++ b/tests/functional/UsersCest.php @@ -91,14 +91,9 @@ class UsersCest public function allowsDelete(FunctionalTester $I) { + $user = factory(App\Models\User::class, 'valid-user')->create(); $I->wantTo('Ensure I can delete a user'); - $userId = User::doesntHave('assets') - ->doesntHave('accessories') - ->doesntHave('consumables') - ->doesntHave('licenses') - ->where('username', '!=', 'snipeit') - ->first()->id; - $I->sendDelete(route('users.destroy', $userId), ['_token' => csrf_token()]); + $I->sendDelete(route('users.destroy', $user->id), ['_token' => csrf_token()]); $I->seeResponseCodeIs(200); } }