mirror of
https://github.com/snipe/snipe-it.git
synced 2024-11-11 08:04:09 -08:00
Merge branch 'develop'
This commit is contained in:
commit
7a0e695ea0
|
@ -37,7 +37,7 @@ class DemoData extends Command
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
protected $signature = 'snipeit:demo-seed {--username=*}';
|
protected $signature = 'snipeit:demo-seed {--nukeusers}';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The console command description.
|
* The console command description.
|
||||||
|
@ -74,23 +74,6 @@ class DemoData extends Command
|
||||||
|
|
||||||
if ($this->confirm("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n This will overwrite your existing database. Do you wish to continue?")) {
|
if ($this->confirm("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n This will overwrite your existing database. Do you wish to continue?")) {
|
||||||
|
|
||||||
|
|
||||||
$this->dropRealCustomFieldsColumns();
|
|
||||||
$this->dropAndCreateCategories();
|
|
||||||
$this->dropAndCreateManufacturers();
|
|
||||||
$this->dropAndCreateLocations();
|
|
||||||
$this->dropAndCreateActionlogs();
|
|
||||||
$this->dropAndCreateAssetModels();
|
|
||||||
$this->dropAndCreateStatusLabels();
|
|
||||||
$this->dropAndCreateAssets();
|
|
||||||
$this->dropAndCreateDepreciations();
|
|
||||||
$this->dropAndCreateSuppliers();
|
|
||||||
$this->dropAndCreateAccessories();
|
|
||||||
$this->dropAndCreateLicenses();
|
|
||||||
$this->dropAndCreateComponents();
|
|
||||||
$this->dropAndCreateConsumables();
|
|
||||||
|
|
||||||
|
|
||||||
Import::truncate();
|
Import::truncate();
|
||||||
AssetMaintenance::truncate();
|
AssetMaintenance::truncate();
|
||||||
Group::truncate();
|
Group::truncate();
|
||||||
|
@ -98,13 +81,31 @@ class DemoData extends Command
|
||||||
CustomField::truncate();
|
CustomField::truncate();
|
||||||
Group::truncate();
|
Group::truncate();
|
||||||
CustomFieldset::truncate();
|
CustomFieldset::truncate();
|
||||||
Department::truncate();
|
|
||||||
User::where('username', '!=', 'snipe')
|
|
||||||
->where('username', '!=', 'admin')
|
|
||||||
->forceDelete();
|
|
||||||
DB::table('custom_field_custom_fieldset')->truncate();
|
DB::table('custom_field_custom_fieldset')->truncate();
|
||||||
DB::table('checkout_requests')->truncate();
|
DB::table('checkout_requests')->truncate();
|
||||||
|
|
||||||
|
$this->dropRealCustomFieldsColumns();
|
||||||
|
$this->dropAndCreateCategories();
|
||||||
|
$this->dropAndCreateManufacturers();
|
||||||
|
$this->dropAndCreateAssetModels();
|
||||||
|
$this->dropAndCreateStatusLabels();
|
||||||
|
$this->dropAndCreateDepreciations();
|
||||||
|
$this->dropAndCreateSuppliers();
|
||||||
|
$this->dropAndCreateAccessories();
|
||||||
|
$this->dropAndCreateLicenses();
|
||||||
|
$this->dropAndCreateComponents();
|
||||||
|
$this->dropAndCreateConsumables();
|
||||||
|
$this->dropAndCreateLocations();
|
||||||
|
if ($this->option('nukeusers')) {
|
||||||
|
$this->dropAndCreateUsers();
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->dropAndCreateAssets();
|
||||||
|
$this->dropAndCreateActionlogs();
|
||||||
|
$this->dropAndCreateDepartments();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -289,6 +290,81 @@ class DemoData extends Command
|
||||||
'serial' => self::generateRandomString(),
|
'serial' => self::generateRandomString(),
|
||||||
'asset_tag' => '1000311'
|
'asset_tag' => '1000311'
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
'id' => 12,
|
||||||
|
'user_id' => 1,
|
||||||
|
'name' => null,
|
||||||
|
'model_id' => 14,
|
||||||
|
'assigned_to' => null,
|
||||||
|
'assigned_type' => null,
|
||||||
|
'purchase_cost' => '899.56',
|
||||||
|
'purchase_date' => date('Y-m-d'),
|
||||||
|
'supplier_id' => rand(1,4),
|
||||||
|
'status_id' => 1,
|
||||||
|
'rtd_location_id' => rand(1,4),
|
||||||
|
'serial' => self::generateRandomString(),
|
||||||
|
'asset_tag' => '1000312'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'id' => 13,
|
||||||
|
'user_id' => 1,
|
||||||
|
'name' => null,
|
||||||
|
'model_id' => 14,
|
||||||
|
'assigned_to' => null,
|
||||||
|
'assigned_type' => null,
|
||||||
|
'purchase_cost' => '899.56',
|
||||||
|
'purchase_date' => date('Y-m-d'),
|
||||||
|
'supplier_id' => rand(1,4),
|
||||||
|
'status_id' => 1,
|
||||||
|
'rtd_location_id' => rand(1,4),
|
||||||
|
'serial' => self::generateRandomString(),
|
||||||
|
'asset_tag' => '1000313'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'id' => 14,
|
||||||
|
'user_id' => 1,
|
||||||
|
'name' => null,
|
||||||
|
'model_id' => 14,
|
||||||
|
'assigned_to' => null,
|
||||||
|
'assigned_type' => null,
|
||||||
|
'purchase_cost' => '899.56',
|
||||||
|
'purchase_date' => date('Y-m-d'),
|
||||||
|
'supplier_id' => rand(1,4),
|
||||||
|
'status_id' => 4,
|
||||||
|
'rtd_location_id' => rand(1,4),
|
||||||
|
'serial' => self::generateRandomString(),
|
||||||
|
'asset_tag' => '1000314'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'id' => 15,
|
||||||
|
'user_id' => 1,
|
||||||
|
'name' => 'Reception Laptop',
|
||||||
|
'model_id' => 4,
|
||||||
|
'assigned_to' => 3,
|
||||||
|
'assigned_type' => Location::class,
|
||||||
|
'purchase_cost' => '3025.56',
|
||||||
|
'purchase_date' => date('Y-m-d'),
|
||||||
|
'supplier_id' => rand(1,4),
|
||||||
|
'status_id' => 1,
|
||||||
|
'rtd_location_id' => rand(1,4),
|
||||||
|
'serial' => self::generateRandomString(),
|
||||||
|
'asset_tag' => '1000315'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'id' => 16,
|
||||||
|
'user_id' => 1,
|
||||||
|
'name' => 'Testing Laptop',
|
||||||
|
'model_id' => 4,
|
||||||
|
'assigned_to' => 2,
|
||||||
|
'assigned_type' => User::class,
|
||||||
|
'purchase_cost' => '3025.56',
|
||||||
|
'purchase_date' => date('Y-m-d'),
|
||||||
|
'supplier_id' => rand(1,4),
|
||||||
|
'status_id' => 1,
|
||||||
|
'rtd_location_id' => rand(1,4),
|
||||||
|
'serial' => self::generateRandomString(),
|
||||||
|
'asset_tag' => '1000316'
|
||||||
|
],
|
||||||
|
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -362,7 +438,7 @@ class DemoData extends Command
|
||||||
|
|
||||||
|
|
||||||
public function dropAndCreateSuppliers() {
|
public function dropAndCreateSuppliers() {
|
||||||
|
$this->info('Dropping suppliers data');
|
||||||
Supplier::truncate();
|
Supplier::truncate();
|
||||||
|
|
||||||
$supppliers = [
|
$supppliers = [
|
||||||
|
@ -390,12 +466,13 @@ class DemoData extends Command
|
||||||
|
|
||||||
// Create Depreciations
|
// Create Depreciations
|
||||||
DB::table('suppliers')->insert($supppliers);
|
DB::table('suppliers')->insert($supppliers);
|
||||||
|
$this->info('Generating suppliers data');
|
||||||
return $supppliers;
|
return $supppliers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function dropAndCreateDepreciations() {
|
public function dropAndCreateDepreciations() {
|
||||||
|
$this->info('Dropping depreciations data');
|
||||||
Depreciation::truncate();
|
Depreciation::truncate();
|
||||||
|
|
||||||
$depreciations = [
|
$depreciations = [
|
||||||
|
@ -414,13 +491,15 @@ class DemoData extends Command
|
||||||
];
|
];
|
||||||
|
|
||||||
// Create Depreciations
|
// Create Depreciations
|
||||||
|
$this->info('Generating suppliers data');
|
||||||
DB::table('depreciations')->insert($depreciations);
|
DB::table('depreciations')->insert($depreciations);
|
||||||
|
|
||||||
return $depreciations;
|
return $depreciations;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function dropAndCreateAssetModels() {
|
public function dropAndCreateAssetModels() {
|
||||||
|
$this->info('Dropping asset model data');
|
||||||
AssetModel::truncate();
|
AssetModel::truncate();
|
||||||
|
|
||||||
$models = [
|
$models = [
|
||||||
|
@ -582,14 +661,17 @@ class DemoData extends Command
|
||||||
'model_number' => rand(111111,99999)
|
'model_number' => rand(111111,99999)
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
// Create Models
|
// Create Models
|
||||||
|
$this->info('generating asset model data');
|
||||||
DB::table('models')->insert($models);
|
DB::table('models')->insert($models);
|
||||||
return $models;
|
return $models;
|
||||||
}
|
}
|
||||||
public function dropAndCreateCategories() {
|
public function dropAndCreateCategories() {
|
||||||
|
|
||||||
|
$this->info('Dropping category data');
|
||||||
Category::truncate();
|
Category::truncate();
|
||||||
$categories = [
|
$categories = [
|
||||||
|
|
||||||
|
@ -686,12 +768,14 @@ class DemoData extends Command
|
||||||
|
|
||||||
|
|
||||||
// Create Categories
|
// Create Categories
|
||||||
|
$this->info('Generating category data');
|
||||||
DB::table('categories')->insert($categories);
|
DB::table('categories')->insert($categories);
|
||||||
return $categories;
|
return $categories;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function dropAndCreateLocations() {
|
public function dropAndCreateLocations() {
|
||||||
|
|
||||||
|
$this->info('Dropping location data');
|
||||||
Location::truncate();
|
Location::truncate();
|
||||||
|
|
||||||
$locations = [
|
$locations = [
|
||||||
|
@ -720,6 +804,7 @@ class DemoData extends Command
|
||||||
];
|
];
|
||||||
|
|
||||||
// Create Locations
|
// Create Locations
|
||||||
|
$this->info('Generating location data');
|
||||||
DB::table('locations')->insert($locations);
|
DB::table('locations')->insert($locations);
|
||||||
return $locations;
|
return $locations;
|
||||||
|
|
||||||
|
@ -727,6 +812,7 @@ class DemoData extends Command
|
||||||
|
|
||||||
public function dropAndCreateLicenses() {
|
public function dropAndCreateLicenses() {
|
||||||
|
|
||||||
|
$this->info('Dropping licenses and seat data');
|
||||||
License::truncate();
|
License::truncate();
|
||||||
LicenseSeat::truncate();
|
LicenseSeat::truncate();
|
||||||
|
|
||||||
|
@ -789,6 +875,7 @@ class DemoData extends Command
|
||||||
];
|
];
|
||||||
|
|
||||||
// Create Licenses
|
// Create Licenses
|
||||||
|
$this->info('Dropping license and seat data');
|
||||||
DB::table('licenses')->insert($licenses);
|
DB::table('licenses')->insert($licenses);
|
||||||
|
|
||||||
foreach ($licenses as $license) {
|
foreach ($licenses as $license) {
|
||||||
|
@ -811,6 +898,7 @@ class DemoData extends Command
|
||||||
|
|
||||||
public function dropAndCreateAccessories() {
|
public function dropAndCreateAccessories() {
|
||||||
|
|
||||||
|
$this->info('Dropping accessory data');
|
||||||
Accessory::truncate();
|
Accessory::truncate();
|
||||||
DB::table('accessories_users')->truncate();
|
DB::table('accessories_users')->truncate();
|
||||||
|
|
||||||
|
@ -869,6 +957,7 @@ class DemoData extends Command
|
||||||
];
|
];
|
||||||
|
|
||||||
// Create Locations
|
// Create Locations
|
||||||
|
$this->info('Generating accessory data');
|
||||||
DB::table('accessories')->insert($accessories);
|
DB::table('accessories')->insert($accessories);
|
||||||
return $accessories;
|
return $accessories;
|
||||||
|
|
||||||
|
@ -878,6 +967,7 @@ class DemoData extends Command
|
||||||
|
|
||||||
public function dropAndCreateComponents() {
|
public function dropAndCreateComponents() {
|
||||||
|
|
||||||
|
$this->info('Dropping component data');
|
||||||
Component::truncate();
|
Component::truncate();
|
||||||
DB::table('components_assets')->truncate();
|
DB::table('components_assets')->truncate();
|
||||||
|
|
||||||
|
@ -898,6 +988,7 @@ class DemoData extends Command
|
||||||
];
|
];
|
||||||
|
|
||||||
// Create Locations
|
// Create Locations
|
||||||
|
$this->info('Generating component data');
|
||||||
DB::table('components')->insert($components);
|
DB::table('components')->insert($components);
|
||||||
return $components;
|
return $components;
|
||||||
|
|
||||||
|
@ -906,6 +997,7 @@ class DemoData extends Command
|
||||||
|
|
||||||
public function dropAndCreateConsumables() {
|
public function dropAndCreateConsumables() {
|
||||||
|
|
||||||
|
$this->info('Dropping consumable data');
|
||||||
Consumable::truncate();
|
Consumable::truncate();
|
||||||
DB::table('consumables_users')->truncate();
|
DB::table('consumables_users')->truncate();
|
||||||
|
|
||||||
|
@ -927,16 +1019,139 @@ class DemoData extends Command
|
||||||
];
|
];
|
||||||
|
|
||||||
// Create Locations
|
// Create Locations
|
||||||
|
$this->info('Generating consumable data');
|
||||||
DB::table('consumables')->insert($consumables);
|
DB::table('consumables')->insert($consumables);
|
||||||
return $consumables;
|
return $consumables;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function dropAndCreateUsers() {
|
||||||
|
|
||||||
|
$this->info('Dropping users data (except user: admin)');
|
||||||
|
User::where('username', '!=', 'snipe')
|
||||||
|
->where('username', '!=', 'admin')
|
||||||
|
->forceDelete();
|
||||||
|
|
||||||
|
$users = [
|
||||||
|
|
||||||
|
// Users
|
||||||
|
[
|
||||||
|
'first_name' => 'Test',
|
||||||
|
'last_name' => 'User',
|
||||||
|
'username' => 'testuser',
|
||||||
|
'email' => 'testuser@snipe.net',
|
||||||
|
'jobtitle' => 'Just a test user',
|
||||||
|
'notes' => 'Created by demo seeder',
|
||||||
|
'location_id' => 1,
|
||||||
|
'department_id' => 1,
|
||||||
|
'password' => bcrypt('password'),
|
||||||
|
'activated' => 1,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'first_name' => 'Donald',
|
||||||
|
'last_name' => 'Duck',
|
||||||
|
'username' => 'donaldduck',
|
||||||
|
'email' => 'donaldduck@example.com',
|
||||||
|
'jobtitle' => 'Director of Engineering',
|
||||||
|
'notes' => 'Created by demo seeder',
|
||||||
|
'location_id' => 2,
|
||||||
|
'department_id' => 3,
|
||||||
|
'password' => bcrypt('password'),
|
||||||
|
'activated' => 1,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'first_name' => 'Adrian',
|
||||||
|
'last_name' => 'Whapcaplet',
|
||||||
|
'username' => 'adrianwhapcaplet',
|
||||||
|
'email' => 'adrianwhapcaplet@example.com',
|
||||||
|
'jobtitle' => 'HR Manager',
|
||||||
|
'notes' => 'Created by demo seeder',
|
||||||
|
'location_id' => 2,
|
||||||
|
'department_id' => 1,
|
||||||
|
'password' => bcrypt('password'),
|
||||||
|
'activated' => 1,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'first_name' => 'Arthur',
|
||||||
|
'last_name' => 'Nudge',
|
||||||
|
'username' => 'arthurnudge',
|
||||||
|
'email' => 'arthurnudge@example.com',
|
||||||
|
'jobtitle' => 'Social Media Manager',
|
||||||
|
'notes' => 'Created by demo seeder',
|
||||||
|
'location_id' => 2,
|
||||||
|
'department_id' => 2,
|
||||||
|
'password' => bcrypt('password'),
|
||||||
|
'activated' => 1,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'first_name' => 'Spiny',
|
||||||
|
'last_name' => 'Norman',
|
||||||
|
'username' => 'spinynorman',
|
||||||
|
'email' => 'spinynorman@example.com',
|
||||||
|
'jobtitle' => 'CEO',
|
||||||
|
'notes' => 'Created by demo seeder',
|
||||||
|
'location_id' => 2,
|
||||||
|
'department_id' => 2,
|
||||||
|
'password' => bcrypt('password'),
|
||||||
|
'activated' => 1,
|
||||||
|
],
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
// Create Locations
|
||||||
|
$this->info('Generating user data');
|
||||||
|
DB::table('users')->insert($users);
|
||||||
|
return $users;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function dropAndCreateDepartments() {
|
||||||
|
|
||||||
|
$this->info('Dropping department data');
|
||||||
|
Department::truncate();
|
||||||
|
|
||||||
|
$departments = [
|
||||||
|
|
||||||
|
// Departments
|
||||||
|
[
|
||||||
|
'id' => 1,
|
||||||
|
'name' => 'Human Resources',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'id' => 2,
|
||||||
|
'name' => 'Dept of Silly Walks',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'id' => 3,
|
||||||
|
'name' => 'Engineering',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'id' => 4,
|
||||||
|
'name' => 'Marketing',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'id' => 5,
|
||||||
|
'name' => 'Client Services',
|
||||||
|
],
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
// Create Locations
|
||||||
|
$this->info('Generating suppliers data');
|
||||||
|
DB::table('departments')->insert($departments);
|
||||||
|
return $departments;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public function dropAndCreateActionlogs() {
|
public function dropAndCreateActionlogs() {
|
||||||
|
|
||||||
|
$this->info('Dropping actionlog data');
|
||||||
Actionlog::truncate();
|
Actionlog::truncate();
|
||||||
|
|
||||||
|
|
||||||
$action_logs = [
|
$action_logs = [
|
||||||
|
|
||||||
// Action logs
|
// Action logs
|
||||||
|
@ -1010,16 +1225,38 @@ class DemoData extends Command
|
||||||
'created_at' => date('Y-m-d'),
|
'created_at' => date('Y-m-d'),
|
||||||
'note' => 'Created by demo seeder',
|
'note' => 'Created by demo seeder',
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
'user_id' => 1,
|
||||||
|
'action_type' => 'checkout',
|
||||||
|
'target_id' => 3,
|
||||||
|
'target_type' => Location::class,
|
||||||
|
'item_type' => Asset::class,
|
||||||
|
'item_id' => 15,
|
||||||
|
'created_at' => date('Y-m-d'),
|
||||||
|
'note' => 'Created by demo seeder',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'user_id' => 1,
|
||||||
|
'action_type' => 'checkout',
|
||||||
|
'target_id' => 1,
|
||||||
|
'target_type' => User::class,
|
||||||
|
'item_type' => Asset::class,
|
||||||
|
'item_id' => 16,
|
||||||
|
'created_at' => date('Y-m-d'),
|
||||||
|
'note' => 'Created by demo seeder',
|
||||||
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
// Create Logs
|
// Create Logs
|
||||||
|
$this->info('Generating actionlog data');
|
||||||
DB::table('action_logs')->insert($action_logs);
|
DB::table('action_logs')->insert($action_logs);
|
||||||
return $action_logs;
|
return $action_logs;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function dropAndCreateStatusLabels() {
|
public function dropAndCreateStatusLabels() {
|
||||||
|
|
||||||
|
$this->info('Dropping statuslabel data');
|
||||||
Statuslabel::truncate();
|
Statuslabel::truncate();
|
||||||
|
|
||||||
$statuslabels = [
|
$statuslabels = [
|
||||||
|
@ -1076,23 +1313,30 @@ class DemoData extends Command
|
||||||
];
|
];
|
||||||
|
|
||||||
// Create status labels
|
// Create status labels
|
||||||
|
$this->info('Dropping statuslabel data');
|
||||||
DB::table('status_labels')->insert($statuslabels);
|
DB::table('status_labels')->insert($statuslabels);
|
||||||
return $statuslabels;
|
return $statuslabels;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function dropRealCustomFieldsColumns() {
|
public function dropRealCustomFieldsColumns() {
|
||||||
// delete custom field columns on the asset table
|
// delete custom field columns on the asset table
|
||||||
|
$this->info('Dropping custom fields from asset table');
|
||||||
$fields = Customfield::all();
|
$fields = Customfield::all();
|
||||||
|
$fieldcount = 0;
|
||||||
foreach ($fields as $field) {
|
foreach ($fields as $field) {
|
||||||
if ($field->db_column!='') {
|
if ($field->db_column!='') {
|
||||||
|
$fieldcount++;
|
||||||
$this->info('Dropping DB column: '.$field->db_column);
|
$this->info('Dropping DB column: '.$field->db_column);
|
||||||
Schema::table('assets', function (Blueprint $table) {
|
Schema::table('assets', function (Blueprint $table) {
|
||||||
$table->dropColumn($field->db_column);
|
$table->dropColumn($field->db_column);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$this->info('Dropped '.$fieldcount.' fields from asset table');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function generateRandomString($length = 10) {
|
public function generateRandomString($length = 10) {
|
||||||
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
||||||
$charactersLength = strlen($characters);
|
$charactersLength = strlen($characters);
|
||||||
|
|
|
@ -369,143 +369,5 @@ class AccessoriesController extends Controller
|
||||||
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.checkin.error'));
|
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.checkin.error'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Generates the JSON response for accessories listing view.
|
|
||||||
*
|
|
||||||
* Example:
|
|
||||||
* {
|
|
||||||
* "actions": "(links to available actions)",
|
|
||||||
* "category": "(link to category)",
|
|
||||||
* "company": "My Company",
|
|
||||||
* "location": "My Location",
|
|
||||||
* "min_amt": 2,
|
|
||||||
* "name": "(link to accessory),
|
|
||||||
* "numRemaining": 6,
|
|
||||||
* "order_number": null,
|
|
||||||
* "purchase_cost": "0.00",
|
|
||||||
* "purchase_date": null,
|
|
||||||
* "qty": 7
|
|
||||||
* },
|
|
||||||
*
|
|
||||||
* The names of the fields in the returns JSON correspond directly to the the
|
|
||||||
* names of the fields in the bootstrap-tables in the view.
|
|
||||||
*
|
|
||||||
* For debugging, see at /api/accessories/list
|
|
||||||
*
|
|
||||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
|
||||||
* @param Request $request
|
|
||||||
* @return string JSON containing accessories and their associated atrributes.
|
|
||||||
* @internal param int $accessoryId
|
|
||||||
*/
|
|
||||||
public function getDatatable(Request $request)
|
|
||||||
{
|
|
||||||
$this->authorize('index', Accessory::class);
|
|
||||||
$accessories = Company::scopeCompanyables(
|
|
||||||
Accessory::select('accessories.*')
|
|
||||||
->whereNull('accessories.deleted_at')
|
|
||||||
->with('category', 'company', 'manufacturer', 'users', 'location')
|
|
||||||
);
|
|
||||||
if (Input::has('search')) {
|
|
||||||
$accessories = $accessories->TextSearch(e(Input::get('search')));
|
|
||||||
}
|
|
||||||
$offset = request('offset', 0);
|
|
||||||
$limit = request('limit', 50);
|
|
||||||
|
|
||||||
$allowed_columns = ['name','min_amt','order_number','purchase_date','purchase_cost','company','category','model_number', 'manufacturer', 'location'];
|
|
||||||
$order = Input::get('order') === 'asc' ? 'asc' : 'desc';
|
|
||||||
$sort = in_array(Input::get('sort'), $allowed_columns) ? e(Input::get('sort')) : 'created_at';
|
|
||||||
|
|
||||||
switch ($sort) {
|
|
||||||
case 'category':
|
|
||||||
$accessories = $accessories->OrderCategory($order);
|
|
||||||
break;
|
|
||||||
case 'company':
|
|
||||||
$accessories = $accessories->OrderCompany($order);
|
|
||||||
break;
|
|
||||||
case 'location':
|
|
||||||
$accessories = $accessories->OrderLocation($order);
|
|
||||||
break;
|
|
||||||
case 'manufacturer':
|
|
||||||
$accessories = $accessories->OrderManufacturer($order);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
$accessories = $accessories->orderBy($sort, $order);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
$accessCount = $accessories->count();
|
|
||||||
$accessories = $accessories->skip($offset)->take($limit)->get();
|
|
||||||
|
|
||||||
$rows = array();
|
|
||||||
|
|
||||||
foreach ($accessories as $accessory) {
|
|
||||||
$rows[] = $accessory->present()->forDataTable();
|
|
||||||
}
|
|
||||||
|
|
||||||
$data = array('total'=>$accessCount, 'rows'=>$rows);
|
|
||||||
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Generates the JSON response for accessory detail view.
|
|
||||||
*
|
|
||||||
* Example:
|
|
||||||
* <code>
|
|
||||||
* {
|
|
||||||
* "rows": [
|
|
||||||
* {
|
|
||||||
* "actions": "(link to available actions)",
|
|
||||||
* "name": "(link to user)"
|
|
||||||
* }
|
|
||||||
* ],
|
|
||||||
* "total": 1
|
|
||||||
* }
|
|
||||||
* </code>
|
|
||||||
*
|
|
||||||
* The names of the fields in the returns JSON correspond directly to the the
|
|
||||||
* names of the fields in the bootstrap-tables in the view.
|
|
||||||
*
|
|
||||||
* For debugging, see at /api/accessories/$accessoryID/view
|
|
||||||
*
|
|
||||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
|
||||||
* @param int $accessoryId
|
|
||||||
* @return string JSON containing accessories and their associated atrributes.
|
|
||||||
**/
|
|
||||||
public function getDataView(Request $request, $accessoryID)
|
|
||||||
{
|
|
||||||
$accessory = Accessory::find($accessoryID);
|
|
||||||
|
|
||||||
if (!Company::isCurrentUserHasAccess($accessory)) {
|
|
||||||
return ['total' => 0, 'rows' => []];
|
|
||||||
}
|
|
||||||
|
|
||||||
$accessory_users = $accessory->users;
|
|
||||||
$count = $accessory_users->count();
|
|
||||||
|
|
||||||
$rows = array();
|
|
||||||
|
|
||||||
foreach ($accessory_users as $user) {
|
|
||||||
$actions = '';
|
|
||||||
if (Gate::allows('checkin', $accessory)) {
|
|
||||||
$actions .= Helper::generateDatatableButton('checkin', route('checkin/accessory', $user->pivot->id));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Gate::allows('view', $user)) {
|
|
||||||
$name = (string) link_to_route('users.show', e($user->present()->fullName()), [$user->id]);
|
|
||||||
} else {
|
|
||||||
$name = e($user->present()->fullName());
|
|
||||||
}
|
|
||||||
|
|
||||||
$rows[] = array(
|
|
||||||
'name' => $name,
|
|
||||||
'actions' => $actions
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
$data = array('total'=>$count, 'rows'=>$rows);
|
|
||||||
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -158,6 +158,6 @@ class ComponentsController extends Controller
|
||||||
$limit = $request->input('limit', 50);
|
$limit = $request->input('limit', 50);
|
||||||
$total = $assets->count();
|
$total = $assets->count();
|
||||||
$assets = $assets->skip($offset)->take($limit)->get();
|
$assets = $assets->skip($offset)->take($limit)->get();
|
||||||
return (new ComponentsAssetsTransformer)->transformAssets($assets, $total);
|
return (new ComponentsTransformer)->transformCheckedoutComponents($assets, $total);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -366,49 +366,6 @@ class AssetModelsController extends Controller
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the asset information to present to the model view detail page
|
|
||||||
*
|
|
||||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
|
||||||
* @since [v2.0]
|
|
||||||
* @param Request $request
|
|
||||||
* @param $modelID
|
|
||||||
* @return String JSON
|
|
||||||
* @internal param int $modelId
|
|
||||||
*/
|
|
||||||
public function getDataView(Request $request, $modelID)
|
|
||||||
{
|
|
||||||
$assets = Asset::where('model_id', '=', $modelID)->with('company', 'assetstatus');
|
|
||||||
|
|
||||||
if (Input::has('search')) {
|
|
||||||
$assets = $assets->TextSearch(e($request->input('search')));
|
|
||||||
}
|
|
||||||
$offset = request('offset', 0);
|
|
||||||
$limit = request('limit', 50);
|
|
||||||
|
|
||||||
|
|
||||||
$allowed_columns = ['name', 'serial','asset_tag'];
|
|
||||||
$order = $request->input('order') === 'asc' ? 'asc' : 'desc';
|
|
||||||
$sort = in_array($request->input('sort'), $allowed_columns) ? e($request->input('sort')) : 'created_at';
|
|
||||||
|
|
||||||
$assets = $assets->orderBy($sort, $order);
|
|
||||||
|
|
||||||
$assetsCount = $assets->count();
|
|
||||||
$assets = $assets->skip($offset)->take($limit)->get();
|
|
||||||
|
|
||||||
$rows = array();
|
|
||||||
|
|
||||||
$all_custom_fields = CustomField::all();
|
|
||||||
foreach ($assets as $asset) {
|
|
||||||
|
|
||||||
$rows[] = $asset->present()->forDataTable($all_custom_fields);
|
|
||||||
}
|
|
||||||
|
|
||||||
$data = array('total' => $assetsCount, 'rows' => $rows);
|
|
||||||
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a view that allows the user to bulk edit model attrbutes
|
* Returns a view that allows the user to bulk edit model attrbutes
|
||||||
|
|
|
@ -673,7 +673,8 @@ class AssetsController extends Controller
|
||||||
return response()->file($barcode_file, $header);
|
return response()->file($barcode_file, $header);
|
||||||
} else {
|
} else {
|
||||||
$barcode = new \Com\Tecnick\Barcode\Barcode();
|
$barcode = new \Com\Tecnick\Barcode\Barcode();
|
||||||
$barcode_obj = $barcode->getBarcodeObj($settings->alt_barcode, $asset->asset_tag, 250, 20);
|
$barcode_obj = $barcode->getBarcodeObj($settings->alt_barcode,$asset->asset_tag,300,50);
|
||||||
|
|
||||||
file_put_contents($barcode_file, $barcode_obj->getPngData());
|
file_put_contents($barcode_file, $barcode_obj->getPngData());
|
||||||
return response($barcode_obj->getPngData())->header('Content-type', 'image/png');
|
return response($barcode_obj->getPngData())->header('Content-type', 'image/png');
|
||||||
}
|
}
|
||||||
|
|
|
@ -288,35 +288,4 @@ class ComponentsController extends Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return JSON data to populate the components view,
|
|
||||||
*
|
|
||||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
|
||||||
* @see ComponentsController::getView() method that returns the view.
|
|
||||||
* @since [v3.0]
|
|
||||||
* @param int $componentId
|
|
||||||
* @return string JSON
|
|
||||||
*/
|
|
||||||
public function getDataView($componentId)
|
|
||||||
{
|
|
||||||
if (is_null($component = Component::with('assets')->find($componentId))) {
|
|
||||||
// Redirect to the component management page with error
|
|
||||||
return redirect()->route('components.index')->with('error', trans('admin/components/message.not_found'));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Company::isCurrentUserHasAccess($component)) {
|
|
||||||
return ['total' => 0, 'rows' => []];
|
|
||||||
}
|
|
||||||
$this->authorize('view', $component);
|
|
||||||
|
|
||||||
$rows = array();
|
|
||||||
$all_custom_fields = CustomField::all(); // Cached for table;
|
|
||||||
foreach ($component->assets as $component_assignment) {
|
|
||||||
$rows[] = $component_assignment->present()->forDataTable($all_custom_fields);
|
|
||||||
}
|
|
||||||
|
|
||||||
$componentCount = $component->assets->count();
|
|
||||||
$data = array('total' => $componentCount, 'rows' => $rows);
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -591,61 +591,10 @@ class LicensesController extends Controller
|
||||||
$file = $log->get_src('licenses');
|
$file = $log->get_src('licenses');
|
||||||
return Response::download($file);
|
return Response::download($file);
|
||||||
}
|
}
|
||||||
// Prepare the error message
|
return redirect()->route('licenses.index')->with('error', trans('admin/licenses/message.does_not_exist', compact('id')));
|
||||||
$error = trans('admin/licenses/message.does_not_exist', compact('id'));
|
|
||||||
// Redirect to the licence management page
|
|
||||||
return redirect()->route('licenses.index')->with('error', $error);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Generates a JSON response to populate the licence index datatables.
|
|
||||||
*
|
|
||||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
|
||||||
* @see LicensesController::getIndex() method that provides the view
|
|
||||||
* @since [v1.0]
|
|
||||||
* @return String JSON
|
|
||||||
*/
|
|
||||||
public function getDatatable(Request $request)
|
|
||||||
{
|
|
||||||
$this->authorize('view', License::class);
|
|
||||||
$licenses = Company::scopeCompanyables(License::with('company', 'licenseSeatsRelation', 'manufacturer'));
|
|
||||||
|
|
||||||
if (Input::has('search')) {
|
|
||||||
$licenses = $licenses->TextSearch($request->input('search'));
|
|
||||||
}
|
|
||||||
$offset = request('offset', 0);
|
|
||||||
$limit = request('limit', 50);
|
|
||||||
|
|
||||||
$allowed_columns = ['id','name','purchase_cost','expiration_date','purchase_order','order_number','notes','purchase_date','serial','manufacturer','company'];
|
|
||||||
$order = $request->input('order') === 'asc' ? 'asc' : 'desc';
|
|
||||||
$sort = in_array($request->input('sort'), $allowed_columns) ? e($request->input('sort')) : 'created_at';
|
|
||||||
|
|
||||||
switch ($sort) {
|
|
||||||
case 'manufacturer':
|
|
||||||
$licenses = $licenses->OrderManufacturer($order);
|
|
||||||
break;
|
|
||||||
case 'company':
|
|
||||||
$licenses = $licenses->OrderCompany($order);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
$licenses = $licenses->orderBy($sort, $order);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
$licenseCount = $licenses->count();
|
|
||||||
$licenses = $licenses->skip($offset)->take($limit)->get();
|
|
||||||
|
|
||||||
$rows = array();
|
|
||||||
|
|
||||||
foreach ($licenses as $license) {
|
|
||||||
$rows[] = $license->present()->forDataTable();
|
|
||||||
}
|
|
||||||
|
|
||||||
$data = array('total' => $licenseCount, 'rows' => $rows);
|
|
||||||
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generates the next free seat ID for checkout.
|
* Generates the next free seat ID for checkout.
|
||||||
|
|
|
@ -212,116 +212,5 @@ class ManufacturersController extends Controller
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getDataAssetsView(Manufacturer $manufacturer, Request $request)
|
|
||||||
{
|
|
||||||
$manufacturer = $manufacturer->load('assets.model', 'assets.assignedTo', 'assets.assetstatus', 'assets.company');
|
|
||||||
$manufacturer_assets = $manufacturer->assets();
|
|
||||||
|
|
||||||
if ($request->has('search')) {
|
|
||||||
$manufacturer_assets = $manufacturer_assets->TextSearch(e($request->input('search')));
|
|
||||||
}
|
|
||||||
|
|
||||||
$offset = request('offset', 0);
|
|
||||||
$limit = request('limit', 50);
|
|
||||||
|
|
||||||
$order = $request->input('order') === 'asc' ? 'asc' : 'desc';
|
|
||||||
|
|
||||||
$allowed_columns = ['id','name','serial','asset_tag'];
|
|
||||||
$sort = in_array($request->input('sort'), $allowed_columns) ? $request->input('sort') : 'created_at';
|
|
||||||
$count = $manufacturer_assets->count();
|
|
||||||
$manufacturer_assets = $manufacturer_assets->skip($offset)->take($limit)->get();
|
|
||||||
$rows = array();
|
|
||||||
$all_custom_fields = CustomField::all(); // cached;
|
|
||||||
foreach ($manufacturer_assets as $asset) {
|
|
||||||
$rows[] = $asset->present()->forDataTable($all_custom_fields);
|
|
||||||
}
|
|
||||||
|
|
||||||
$data = array('total' => $count, 'rows' => $rows);
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function getDataLicensesView(Manufacturer $manufacturer, Request $request)
|
|
||||||
{
|
|
||||||
$manufacturer = $manufacturer->load('licenses.company', 'licenses.manufacturer', 'licenses.licenseSeatsRelation');
|
|
||||||
$licenses = $manufacturer->licenses;
|
|
||||||
|
|
||||||
if ($request->has('search')) {
|
|
||||||
$licenses = $licenses->TextSearch($request->input('search'));
|
|
||||||
}
|
|
||||||
|
|
||||||
$licenseCount = $licenses->count();
|
|
||||||
|
|
||||||
$rows = array();
|
|
||||||
|
|
||||||
foreach ($licenses as $license) {
|
|
||||||
$rows[] = $license->present()->forDataTable();
|
|
||||||
}
|
|
||||||
|
|
||||||
$data = array('total' => $licenseCount, 'rows' => $rows);
|
|
||||||
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getDataAccessoriesView(Manufacturer $manufacturer, Request $request)
|
|
||||||
{
|
|
||||||
$manufacturer = $manufacturer->load(
|
|
||||||
'accessories.location',
|
|
||||||
'accessories.company',
|
|
||||||
'accessories.category',
|
|
||||||
'accessories.manufacturer',
|
|
||||||
'accessories.users'
|
|
||||||
);
|
|
||||||
$accessories = $manufacturer->accessories();
|
|
||||||
|
|
||||||
if ($request->has('search')) {
|
|
||||||
$accessories = $accessories->TextSearch(e($request->input('search')));
|
|
||||||
}
|
|
||||||
|
|
||||||
$offset = request('offset', 0);
|
|
||||||
$limit = request('limit', 50);
|
|
||||||
|
|
||||||
$accessCount = $accessories->count();
|
|
||||||
$accessories = $accessories->skip($offset)->take($limit)->get();
|
|
||||||
$rows = array();
|
|
||||||
|
|
||||||
foreach ($accessories as $accessory) {
|
|
||||||
$rows[] = $accessory->present()->forDataTable();
|
|
||||||
}
|
|
||||||
|
|
||||||
$data = array('total'=>$accessCount, 'rows'=>$rows);
|
|
||||||
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getDataConsumablesView($manufacturer, Request $request)
|
|
||||||
{
|
|
||||||
$manufacturer = $manufacturer->load(
|
|
||||||
'consumables.location',
|
|
||||||
'consumables.company',
|
|
||||||
'consumables.category',
|
|
||||||
'consumables.manufacturer',
|
|
||||||
'consumables.users'
|
|
||||||
);
|
|
||||||
$consumables = $manufacturer->consumables();
|
|
||||||
|
|
||||||
if ($request->has('search')) {
|
|
||||||
$consumables = $consumables->TextSearch(e($request->input('search')));
|
|
||||||
}
|
|
||||||
|
|
||||||
$offset = request('offset', 0);
|
|
||||||
$limit = request('limit', 50);
|
|
||||||
|
|
||||||
|
|
||||||
$consumCount = $consumables->count();
|
|
||||||
$consumables = $consumables->skip($offset)->take($limit)->get();
|
|
||||||
$rows = array();
|
|
||||||
|
|
||||||
foreach ($consumables as $consumable) {
|
|
||||||
$rows[] = $consumable->present()->forDataTable();
|
|
||||||
}
|
|
||||||
|
|
||||||
$data = array('total' => $consumCount, 'rows' => $rows);
|
|
||||||
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,8 +79,6 @@ class AccessoriesTransformer
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return (new DatatablesTransformer)->transformDatatables($array, $total);
|
return (new DatatablesTransformer)->transformDatatables($array, $total);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -58,12 +58,22 @@ class ComponentsTransformer
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function transformCheckedoutComponents(Collection $components_users, $total)
|
public function transformCheckedoutComponents(Collection $components_assets, $total)
|
||||||
{
|
{
|
||||||
$array = array();
|
$array = array();
|
||||||
foreach ($components_users as $user) {
|
foreach ($components_assets as $asset) {
|
||||||
$array[] = (new UsersTransformer)->transformUser($user);
|
$array[] = [
|
||||||
|
'assigned_pivot_id' => $asset->pivot->id,
|
||||||
|
'id' => (int) $asset->id,
|
||||||
|
'name' => e($asset->model->present()->name) .' '.e($asset->present()->name),
|
||||||
|
'qty' => $asset->pivot->assigned_qty,
|
||||||
|
'type' => 'asset',
|
||||||
|
'created_at' => Helper::getFormattedDateObject($asset->pivot->created_at, 'datetime'),
|
||||||
|
'available_actions' => ['checkin' => true]
|
||||||
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return (new DatatablesTransformer)->transformDatatables($array, $total);
|
return (new DatatablesTransformer)->transformDatatables($array, $total);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,6 +42,7 @@ class UsersTransformer
|
||||||
'id' => (int) $user->userloc->id,
|
'id' => (int) $user->userloc->id,
|
||||||
'name'=> e($user->userloc->name)
|
'name'=> e($user->userloc->name)
|
||||||
] : null,
|
] : null,
|
||||||
|
'notes'=> e($user->notes),
|
||||||
'permissions' => $user->decodePermissions(),
|
'permissions' => $user->decodePermissions(),
|
||||||
'activated' => ($user->activated =='1') ? true : false,
|
'activated' => ($user->activated =='1') ? true : false,
|
||||||
'two_factor_activated' => ($user->two_factor_active()) ? true : false,
|
'two_factor_activated' => ($user->two_factor_active()) ? true : false,
|
||||||
|
|
|
@ -64,7 +64,7 @@ class Component extends SnipeModel
|
||||||
|
|
||||||
public function assets()
|
public function assets()
|
||||||
{
|
{
|
||||||
return $this->belongsToMany('\App\Models\Asset', 'components_assets')->withPivot('assigned_qty', 'created_at', 'user_id');
|
return $this->belongsToMany('\App\Models\Asset', 'components_assets')->withPivot('id', 'assigned_qty', 'created_at', 'user_id');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function admin()
|
public function admin()
|
||||||
|
|
|
@ -122,55 +122,6 @@ class AccessoryPresenter extends Presenter
|
||||||
return json_encode($layout);
|
return json_encode($layout);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* JSON representation of Accessory for datatable.
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function forDataTable()
|
|
||||||
{
|
|
||||||
|
|
||||||
$actions = '<nobr>';
|
|
||||||
if (Gate::allows('checkout', $this->model)) {
|
|
||||||
$actions .= Helper::generateDatatableButton(
|
|
||||||
'checkout',
|
|
||||||
route('checkout/accessory', $this->id),
|
|
||||||
$this->numRemaining() > 0
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (Gate::allows('update', $this->model)) {
|
|
||||||
$actions .= Helper::generateDatatableButton('edit', route('accessories.edit', $this->id));
|
|
||||||
}
|
|
||||||
if (Gate::allows('delete', $this->model)) {
|
|
||||||
$actions .= Helper::generateDatatableButton(
|
|
||||||
'delete',
|
|
||||||
route('accessories.destroy', $this->id),
|
|
||||||
true, /*enabled*/
|
|
||||||
trans('admin/accessories/message.delete.confirm'),
|
|
||||||
$this->name
|
|
||||||
);
|
|
||||||
}
|
|
||||||
$actions .= '</nobr>';
|
|
||||||
|
|
||||||
$results = [];
|
|
||||||
$results['name'] = $this->nameUrl();
|
|
||||||
$results['category'] = '';
|
|
||||||
if ($this->model->category) {
|
|
||||||
$results['category'] = $this->model->category->present()->nameUrl();
|
|
||||||
}
|
|
||||||
$results['model_number'] = $this->model_number;
|
|
||||||
$results['qty'] = $this->qty;
|
|
||||||
$results['order_number'] = $this->order_number;
|
|
||||||
$results['min_amt'] = $this->min_amt;
|
|
||||||
$results['location'] = $this->model->location ? $this->model->location->present()->nameUrl() : '';
|
|
||||||
$results['purchase_date'] = $this->purchase_date;
|
|
||||||
$results['purchase_cost'] = Helper::formatCurrencyOutput($this->purchase_cost);
|
|
||||||
$results['numRemaining'] = $this->numRemaining();
|
|
||||||
$results['companyName'] = $this->model->company ? $this->model->company->present()->nameUrl() : '';
|
|
||||||
$results['manufacturer'] = $this->model->manufacturer ? $this->model->manufacturer->present()->nameUrl() : '';
|
|
||||||
$results['actions'] = $actions;
|
|
||||||
|
|
||||||
return $results;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pregenerated link to this accessories view page.
|
* Pregenerated link to this accessories view page.
|
||||||
|
|
|
@ -120,5 +120,14 @@ class ComponentPresenter extends Presenter
|
||||||
return (string) link_to_route('consumables.show', e($this->name), $this->id);
|
return (string) link_to_route('consumables.show', e($this->name), $this->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Url to view this item.
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function viewUrl()
|
||||||
|
{
|
||||||
|
return route('accessories.show', $this->id);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -110,6 +110,12 @@ class LicensePresenter extends Presenter
|
||||||
"sortable" => true,
|
"sortable" => true,
|
||||||
"visible" => false,
|
"visible" => false,
|
||||||
"title" => trans('general.order_number'),
|
"title" => trans('general.order_number'),
|
||||||
|
], [
|
||||||
|
"field" => "notes",
|
||||||
|
"searchable" => true,
|
||||||
|
"sortable" => true,
|
||||||
|
"visible" => false,
|
||||||
|
"title" => trans('general.notes'),
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
65
database/factories/AccessoryFactory.php
Normal file
65
database/factories/AccessoryFactory.php
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Asset Model Factories
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Factories related exclusively to creating models ..
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
$factory->define(App\Models\Accessory::class, function (Faker\Generator $faker) {
|
||||||
|
return [
|
||||||
|
'user_id' => 1,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Accessory::class, 'apple-bt-keyboard', function ($faker) {
|
||||||
|
|
||||||
|
return [
|
||||||
|
'name' => 'Bluetooth Keyboard',
|
||||||
|
'category_id' => 8,
|
||||||
|
'manufacturer_id' => 1,
|
||||||
|
'qty' => 10,
|
||||||
|
'min_amt' => 2
|
||||||
|
];
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Accessory::class, 'apple-usb-keyboard', function ($faker) {
|
||||||
|
|
||||||
|
return [
|
||||||
|
'name' => 'USB Keyboard',
|
||||||
|
'category_id' => 8,
|
||||||
|
'manufacturer_id' => 1,
|
||||||
|
'qty' => 15,
|
||||||
|
'min_amt' => 2
|
||||||
|
];
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Accessory::class, 'apple-mouse', function ($faker) {
|
||||||
|
|
||||||
|
return [
|
||||||
|
'name' => 'Magic Mouse',
|
||||||
|
'category_id' => 9,
|
||||||
|
'manufacturer_id' => 1,
|
||||||
|
'qty' => 13,
|
||||||
|
'min_amt' => 2
|
||||||
|
];
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Accessory::class, 'microsoft-mouse', function ($faker) {
|
||||||
|
|
||||||
|
return [
|
||||||
|
'name' => 'Sculpt Comfort Mouse\'',
|
||||||
|
'category_id' => 9,
|
||||||
|
'manufacturer_id' => 2,
|
||||||
|
'qty' => 13,
|
||||||
|
'min_amt' => 2
|
||||||
|
];
|
||||||
|
|
||||||
|
});
|
||||||
|
|
|
@ -1,76 +1,101 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
use App\Models\Actionlog;
|
use App\Models\Actionlog;
|
||||||
|
use App\Models\Company;
|
||||||
|
use App\Models\User;
|
||||||
|
use App\Models\Location;
|
||||||
|
use App\Models\Asset;
|
||||||
|
|
||||||
$factory->defineAs(App\Models\Actionlog::class, 'asset-upload', function ($faker) {
|
|
||||||
$asset = factory(App\Models\Asset::class)->create();
|
$factory->define(Actionlog::class, function (Faker\Generator $faker) {
|
||||||
return [
|
return [
|
||||||
'item_type' => get_class($asset),
|
'note' => 'Sample checkout from DB seeder!',
|
||||||
'item_id' => $asset->id,
|
|
||||||
'user_id' => function () {
|
|
||||||
return factory(App\Models\User::class)->create()->id;
|
|
||||||
},
|
|
||||||
'filename' => $faker->word,
|
|
||||||
'action_type' => 'uploaded'
|
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
$factory->defineAs(Actionlog::class, 'asset-checkout', function (Faker\Generator $faker) {
|
|
||||||
$company = factory(App\Models\Company::class)->create();
|
|
||||||
$user = factory(App\Models\User::class)->create(['company_id' => $company->id]);
|
$factory->defineAs(Actionlog::class, 'asset-checkout-user', function (Faker\Generator $faker) {
|
||||||
$target = factory(App\Models\User::class)->create(['company_id' => $company->id]);
|
$target = User::inRandomOrder()->first();
|
||||||
do {
|
$item = Asset::inRandomOrder()->RTD()->first();
|
||||||
$item = factory(App\Models\Asset::class)->create(['company_id' => $company->id]);
|
$user_id = rand(1,2); // keep it simple - make it one of the two superadmins
|
||||||
} while (!$item->isValid());
|
$asset = App\Models\Asset::where('id', $item->id)
|
||||||
// dd($item);
|
->update(
|
||||||
|
[
|
||||||
|
'assigned_to' => $target->id,
|
||||||
|
'assigned_type' => App\Models\User::class
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'user_id' => $user->id,
|
'created_at' => $faker->dateTimeBetween('-1 years','now', date_default_timezone_get()),
|
||||||
|
'user_id' => $user_id,
|
||||||
'action_type' => 'checkout',
|
'action_type' => 'checkout',
|
||||||
'item_id' => $item->id,
|
'item_id' => $item->id,
|
||||||
'item_type' => App\Models\Asset::class,
|
'item_type' => App\Models\Asset::class,
|
||||||
'target_id' => $target->id,
|
'target_id' => $target->id,
|
||||||
'target_type' => get_class($target),
|
'target_type' => get_class($target),
|
||||||
'created_at' => $faker->dateTime(),
|
|
||||||
'note' => $faker->sentence,
|
|
||||||
'company_id' => $company->id
|
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
$factory->defineAs(Actionlog::class, 'license-checkout-asset', function (Faker\Generator $faker) {
|
$factory->defineAs(Actionlog::class, 'asset-checkout-location', function (Faker\Generator $faker) {
|
||||||
$company = factory(App\Models\Company::class)->create();
|
$target = Location::inRandomOrder()->first();
|
||||||
$user = factory(App\Models\User::class)->create(['company_id' => $company->id]);
|
$item = Asset::inRandomOrder()->RTD()->first();
|
||||||
$target = factory(App\Models\Asset::class)->create(['company_id' => $company->id]);
|
$user_id = rand(1,2); // keep it simple - make it one of the two superadmins
|
||||||
$item = factory(App\Models\License::class)->create(['company_id' => $company->id]);
|
$asset = App\Models\Asset::where('id', $item->id)
|
||||||
|
->update(
|
||||||
|
[
|
||||||
|
'assigned_to' => $target->id,
|
||||||
|
'assigned_type' => App\Models\Location::class
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'user_id' => $user->id,
|
'created_at' => $faker->dateTimeBetween('-1 years','now', date_default_timezone_get()),
|
||||||
|
'user_id' => $user_id,
|
||||||
|
'action_type' => 'checkout',
|
||||||
|
'item_id' => $item->id,
|
||||||
|
'item_type' => App\Models\Asset::class,
|
||||||
|
'target_id' => $target->id,
|
||||||
|
'target_type' => get_class($target),
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// This doesn't work - we need to assign a seat
|
||||||
|
$factory->defineAs(Actionlog::class, 'license-checkout-asset', function (Faker\Generator $faker) {
|
||||||
|
$target = Asset::inRandomOrder()->RTD()->first();
|
||||||
|
$item = License::inRandomOrder()->first();
|
||||||
|
$user_id = rand(1,2); // keep it simple - make it one of the two superadmins
|
||||||
|
|
||||||
|
return [
|
||||||
|
'user_id' => $user_id,
|
||||||
'action_type' => 'checkout',
|
'action_type' => 'checkout',
|
||||||
'item_id' => $item->id,
|
'item_id' => $item->id,
|
||||||
'item_type' => get_class($item),
|
'item_type' => get_class($item),
|
||||||
'target_id' => $target->id,
|
'target_id' => $target->id,
|
||||||
'target_type' => get_class($target),
|
'target_type' => get_class($target),
|
||||||
'created_at' => $faker->dateTime(),
|
'created_at' => $faker->dateTime(),
|
||||||
'note' => $faker->sentence,
|
'note' => $faker->sentence
|
||||||
'company_id' => $company->id
|
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
$factory->defineAs(Actionlog::class, 'accessory-checkout', function (Faker\Generator $faker) {
|
$factory->defineAs(Actionlog::class, 'accessory-checkout', function (Faker\Generator $faker) {
|
||||||
$company = factory(App\Models\Company::class)->create();
|
$target = Asset::inRandomOrder()->RTD()->first();
|
||||||
$user = factory(App\Models\User::class)->create(['company_id' => $company->id]);
|
$item = Accessory::inRandomOrder()->first();
|
||||||
$target = factory(App\Models\User::class)->create(['company_id' => $company->id]);
|
$user_id = rand(1,2); // keep it simple - make it one of the two superadmins
|
||||||
$item = factory(App\Models\Accessory::class)->create(['company_id' => $company->id]);
|
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'user_id' => $user->id,
|
'user_id' => $user_id,
|
||||||
'action_type' => 'checkout',
|
'action_type' => 'checkout',
|
||||||
'item_id' => $item->id,
|
'item_id' => $item->id,
|
||||||
'item_type' => get_class($item),
|
'item_type' => get_class($item),
|
||||||
'target_id' => $target->id,
|
'target_id' => $target->id,
|
||||||
'target_type' => get_class($target),
|
'target_type' => get_class($target),
|
||||||
'created_at' => $faker->dateTime(),
|
'created_at' => $faker->dateTime(),
|
||||||
'note' => $faker->sentence,
|
'note' => $faker->sentence
|
||||||
'company_id' => $company->id
|
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -15,89 +15,186 @@ use App\Models\Category;
|
||||||
|
|
||||||
$factory->define(Asset::class, function (Faker\Generator $faker) {
|
$factory->define(Asset::class, function (Faker\Generator $faker) {
|
||||||
return [
|
return [
|
||||||
'name' => $faker->catchPhrase,
|
'name' => null,
|
||||||
'model_id' => function () {
|
'rtd_location_id' => 1,
|
||||||
return factory(App\Models\AssetModel::class)->create()->id;
|
|
||||||
},
|
|
||||||
'rtd_location_id' => function () {
|
|
||||||
return factory(App\Models\Location::class)->create()->id;
|
|
||||||
},
|
|
||||||
'serial' => $faker->uuid,
|
'serial' => $faker->uuid,
|
||||||
'status_id' => function () {
|
'status_id' => 1,
|
||||||
return factory(App\Models\Statuslabel::class)->states('rtd')->create()->id;
|
'user_id' => 1,
|
||||||
},
|
|
||||||
'user_id' => function () {
|
|
||||||
return factory(App\Models\User::class)->create()->id;
|
|
||||||
},
|
|
||||||
'asset_tag' => $faker->unixTime('now'),
|
'asset_tag' => $faker->unixTime('now'),
|
||||||
'notes' => $faker->sentence,
|
'notes' => 'Created by DB seeder',
|
||||||
'purchase_date' => $faker->dateTime(),
|
'purchase_date' => $faker->dateTimeBetween('-1 years','now', date_default_timezone_get()),
|
||||||
'purchase_cost' => $faker->randomFloat(2),
|
'purchase_cost' => $faker->randomFloat(2, '299.99', '2999.99'),
|
||||||
'order_number' => $faker->numberBetween(1000000, 50000000),
|
'order_number' => $faker->numberBetween(1000000, 50000000),
|
||||||
'supplier_id' => function () {
|
'supplier_id' => 1,
|
||||||
return factory(App\Models\Supplier::class)->create()->id;
|
|
||||||
},
|
|
||||||
'company_id' => function () {
|
|
||||||
return factory(App\Models\Company::class)->create()->id;
|
|
||||||
},
|
|
||||||
'requestable' => $faker->boolean()
|
'requestable' => $faker->boolean()
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
$factory->state(Asset::class, 'deleted', function ($faker) {
|
|
||||||
|
|
||||||
|
|
||||||
|
$factory->state(Asset::class, 'laptop-mbp', function ($faker) {
|
||||||
return [
|
return [
|
||||||
'deleted_at' => $faker->dateTime(),
|
'model_id' => 1
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$factory->state(Asset::class, 'laptop-mbp-pending', function ($faker) {
|
||||||
|
return [
|
||||||
|
'model_id' => 1,
|
||||||
|
'status_id' => 2,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(Asset::class, 'laptop-mbp-archived', function ($faker) {
|
||||||
|
return [
|
||||||
|
'model_id' => 1,
|
||||||
|
'status_id' => 3,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(Asset::class, 'laptop-air', function ($faker) {
|
||||||
|
return [
|
||||||
|
'model_id' => 2
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(Asset::class, 'laptop-surface', function ($faker) {
|
||||||
|
return [
|
||||||
|
'model_id' => 3
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(Asset::class, 'laptop-xps', function ($faker) {
|
||||||
|
return [
|
||||||
|
'model_id' => 4
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(Asset::class, 'laptop-spectre', function ($faker) {
|
||||||
|
return [
|
||||||
|
'model_id' => 5
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(Asset::class, 'laptop-zenbook', function ($faker) {
|
||||||
|
return [
|
||||||
|
'model_id' => 6
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(Asset::class, 'laptop-yoga', function ($faker) {
|
||||||
|
return [
|
||||||
|
'model_id' => 7
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(Asset::class, 'desktop-macpro', function ($faker) {
|
||||||
|
return [
|
||||||
|
'model_id' => 8
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(Asset::class, 'desktop-lenovo-i5', function ($faker) {
|
||||||
|
return [
|
||||||
|
'model_id' => 9
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(Asset::class, 'desktop-optiplex', function ($faker) {
|
||||||
|
return [
|
||||||
|
'model_id' => 10
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(Asset::class, 'conf-polycom', function ($faker) {
|
||||||
|
return [
|
||||||
|
'model_id' => 11
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(Asset::class, 'conf-polycomcx', function ($faker) {
|
||||||
|
return [
|
||||||
|
'model_id' => 12
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(Asset::class, 'tablet-ipad', function ($faker) {
|
||||||
|
return [
|
||||||
|
'model_id' => 13
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(Asset::class, 'tablet-tab3', function ($faker) {
|
||||||
|
return [
|
||||||
|
'model_id' => 14
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(Asset::class, 'phone-iphone6s', function ($faker) {
|
||||||
|
return [
|
||||||
|
'model_id' => 15
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(Asset::class, 'phone-iphone7', function ($faker) {
|
||||||
|
return [
|
||||||
|
'model_id' => 16
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(Asset::class, 'ultrafine', function ($faker) {
|
||||||
|
return [
|
||||||
|
'model_id' => 17
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(Asset::class, 'ultrasharp', function ($faker) {
|
||||||
|
return [
|
||||||
|
'model_id' => 18
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// These are just for unit tests, not to generate data
|
||||||
|
|
||||||
$factory->state(Asset::class, 'assigned-to-user', function ($faker) {
|
$factory->state(Asset::class, 'assigned-to-user', function ($faker) {
|
||||||
return [
|
return [
|
||||||
|
'model_id' => 1,
|
||||||
'assigned_to' => factory(App\Models\User::class)->create()->id,
|
'assigned_to' => factory(App\Models\User::class)->create()->id,
|
||||||
'assigned_type' => App\Models\User::class,
|
'assigned_type' => App\Models\User::class,
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
$factory->state(Asset::class, 'assigned-to-location', function ($faker) {
|
$factory->state(Asset::class, 'assigned-to-location', function ($faker) {
|
||||||
return [
|
return [
|
||||||
|
'model_id' => 1,
|
||||||
'assigned_to' => factory(App\Models\Location::class)->create()->id,
|
'assigned_to' => factory(App\Models\Location::class)->create()->id,
|
||||||
'assigned_type' => App\Models\Location::class,
|
'assigned_type' => App\Models\Location::class,
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
$factory->state(Asset::class, 'assigned-to-asset', function ($faker) {
|
$factory->state(Asset::class, 'assigned-to-asset', function ($faker) {
|
||||||
return [
|
return [
|
||||||
|
'model_id' => 1,
|
||||||
'assigned_to' => factory(App\Models\Asset::class)->create()->id,
|
'assigned_to' => factory(App\Models\Asset::class)->create()->id,
|
||||||
'assigned_type' => App\Models\Asset::class,
|
'assigned_type' => App\Models\Asset::class,
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
$factory->state(Asset::class, 'requires-acceptance', function ($faker) {
|
$factory->state(Asset::class, 'requires-acceptance', function ($faker) {
|
||||||
$cat = factory(Category::class)->states('asset-category', 'requires-acceptance')->create();
|
|
||||||
$model = factory(AssetModel::class)->create(['category_id' => $cat->id]);
|
|
||||||
return [
|
return [
|
||||||
'model_id' => $model->id
|
'model_id' => 1,
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
$factory->define(App\Models\AssetModel::class, function (Faker\Generator $faker) {
|
|
||||||
|
$factory->state(Asset::class, 'deleted', function ($faker) {
|
||||||
return [
|
return [
|
||||||
'name' => $faker->catchPhrase,
|
'model_id' => 1,
|
||||||
'manufacturer_id' => function () {
|
'deleted_at' => $faker->dateTime()
|
||||||
return factory(App\Models\Manufacturer::class)->create()->id;
|
|
||||||
},
|
|
||||||
'category_id' => function () {
|
|
||||||
return factory(App\Models\Category::class)->states('asset-category')->create()->id;
|
|
||||||
},
|
|
||||||
'model_number' => $faker->numberBetween(1000000, 50000000),
|
|
||||||
'eol' => 1,
|
|
||||||
'notes' => $faker->paragraph(),
|
|
||||||
'requestable' => $faker->boolean(),
|
|
||||||
'depreciation_id' => function () {
|
|
||||||
return factory(App\Models\Depreciation::class)->create()->id;
|
|
||||||
},
|
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
$factory->define(App\Models\AssetMaintenance::class, function (Faker\Generator $faker) {
|
$factory->define(App\Models\AssetMaintenance::class, function (Faker\Generator $faker) {
|
||||||
return [
|
return [
|
||||||
'asset_id' => function () {
|
'asset_id' => function () {
|
||||||
|
|
255
database/factories/AssetModelFactory.php
Normal file
255
database/factories/AssetModelFactory.php
Normal file
|
@ -0,0 +1,255 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Asset Model Factories
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Factories related exclusively to creating models ..
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Laptops
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
$factory->define(App\Models\AssetModel::class, function (Faker\Generator $faker) {
|
||||||
|
return [
|
||||||
|
'user_id' => 1,
|
||||||
|
'model_number' => $faker->creditCardNumber(),
|
||||||
|
'notes' => 'Created by demo seeder',
|
||||||
|
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// 1
|
||||||
|
$factory->state(App\Models\AssetModel::class, 'mbp-13-model', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Macbook Pro 13"',
|
||||||
|
'category_id' => 1,
|
||||||
|
'manufacturer_id' => 1,
|
||||||
|
'eol' => '36',
|
||||||
|
'depreciation_id' => 1,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// 2
|
||||||
|
$factory->state(App\Models\AssetModel::class, 'mbp-air-model', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Macbook Air',
|
||||||
|
'category_id' => 1,
|
||||||
|
'manufacturer_id' => 1,
|
||||||
|
'eol' => '36',
|
||||||
|
'depreciation_id' => 1,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// 3
|
||||||
|
$factory->state(App\Models\AssetModel::class, 'surface-model', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Surface',
|
||||||
|
'category_id' => 1,
|
||||||
|
'manufacturer_id' => 2,
|
||||||
|
'eol' => '36',
|
||||||
|
'depreciation_id' => 1,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// 4
|
||||||
|
$factory->state(App\Models\AssetModel::class, 'xps13-model', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'XPS 13',
|
||||||
|
'category_id' => 1,
|
||||||
|
'manufacturer_id' => 3,
|
||||||
|
'eol' => '36',
|
||||||
|
'depreciation_id' => 1,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// 5
|
||||||
|
$factory->state(App\Models\AssetModel::class, 'zenbook-model', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'ZenBook UX310',
|
||||||
|
'category_id' => 1,
|
||||||
|
'manufacturer_id' => 4,
|
||||||
|
'eol' => '36',
|
||||||
|
'depreciation_id' => 1,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// 6
|
||||||
|
$factory->state(App\Models\AssetModel::class, 'spectre-model', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Spectre',
|
||||||
|
'category_id' => 1,
|
||||||
|
'manufacturer_id' => 5,
|
||||||
|
'eol' => '36',
|
||||||
|
'depreciation_id' => 1,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// 7
|
||||||
|
$factory->state(App\Models\AssetModel::class, 'yoga-model', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Yoga 910',
|
||||||
|
'category_id' => 1,
|
||||||
|
'manufacturer_id' => 6,
|
||||||
|
'eol' => '36',
|
||||||
|
'depreciation_id' => 1,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Desktops
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
$factory->state(App\Models\AssetModel::class, 'macpro-model', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'iMac Pro',
|
||||||
|
'category_id' => 2,
|
||||||
|
'manufacturer_id' => 1,
|
||||||
|
'eol' => '24',
|
||||||
|
'depreciation_id' => 1,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\AssetModel::class, 'lenovo-i5-model', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Lenovo Intel Core i5',
|
||||||
|
'category_id' => 2,
|
||||||
|
'manufacturer_id' => 6,
|
||||||
|
'eol' => '24',
|
||||||
|
'depreciation_id' => 1,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\AssetModel::class, 'optiplex-model', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'OptiPlex',
|
||||||
|
'category_id' => 2,
|
||||||
|
'manufacturer_id' => 3,
|
||||||
|
'model_number' => '5040 (MRR81)',
|
||||||
|
'eol' => '24',
|
||||||
|
'depreciation_id' => 1,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Conference Phones
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
$factory->state(App\Models\AssetModel::class, 'polycom-model', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'SoundStation 2',
|
||||||
|
'category_id' => 6,
|
||||||
|
'manufacturer_id' => 8,
|
||||||
|
'eol' => '12',
|
||||||
|
'depreciation_id' => 1,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\AssetModel::class, 'polycomcx-model', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Polycom CX3000 IP Conference Phone',
|
||||||
|
'category_id' => 6,
|
||||||
|
'manufacturer_id' => 8,
|
||||||
|
'eol' => '12',
|
||||||
|
'depreciation_id' => 1,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Tablets
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
$factory->state(App\Models\AssetModel::class, 'ipad-model', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'iPad Pro',
|
||||||
|
'category_id' => 3,
|
||||||
|
'manufacturer_id' => 1,
|
||||||
|
'eol' => '12',
|
||||||
|
'depreciation_id' => 1,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
$factory->state(App\Models\AssetModel::class, 'tab3-model', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Tab3',
|
||||||
|
'category_id' => 3,
|
||||||
|
'manufacturer_id' => 6,
|
||||||
|
'eol' => '12',
|
||||||
|
'depreciation_id' => 1,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Mobile Phones
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
$factory->state(App\Models\AssetModel::class, 'iphone6s-model', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'iPhone 6s',
|
||||||
|
'category_id' => 4,
|
||||||
|
'manufacturer_id' => 1,
|
||||||
|
'eol' => '12',
|
||||||
|
'depreciation_id' => 3,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\AssetModel::class, 'iphone7-model', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'iPhone 7',
|
||||||
|
'category_id' => 4,
|
||||||
|
'manufacturer_id' => 1,
|
||||||
|
'eol' => '12',
|
||||||
|
'depreciation_id' => 1,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Displays
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
$factory->state(App\Models\AssetModel::class, 'ultrafine', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Ultrafine 4k',
|
||||||
|
'category_id' => 5,
|
||||||
|
'manufacturer_id' => 7,
|
||||||
|
'eol' => '12',
|
||||||
|
'depreciation_id' => 2,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\AssetModel::class, 'ultrasharp', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Ultrasharp U2415',
|
||||||
|
'category_id' => 5,
|
||||||
|
'manufacturer_id' => 3,
|
||||||
|
'eol' => '12',
|
||||||
|
'depreciation_id' => 2,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -12,8 +12,7 @@
|
||||||
|
|
||||||
$factory->define(App\Models\Category::class, function (Faker\Generator $faker) {
|
$factory->define(App\Models\Category::class, function (Faker\Generator $faker) {
|
||||||
return [
|
return [
|
||||||
'name' => $faker->text(20),
|
'user_id' => 1,
|
||||||
'category_type' => $faker->randomElement(['asset', 'accessory', 'component', 'consumable']),
|
|
||||||
'eula_text' => $faker->paragraph(),
|
'eula_text' => $faker->paragraph(),
|
||||||
'require_acceptance' => false,
|
'require_acceptance' => false,
|
||||||
'use_default_eula' => $faker->boolean(),
|
'use_default_eula' => $faker->boolean(),
|
||||||
|
@ -21,32 +20,97 @@ $factory->define(App\Models\Category::class, function (Faker\Generator $faker) {
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
$factory->state(App\Models\Category::class, 'asset-category', function ($faker) {
|
$factory->state(App\Models\Category::class, 'asset-laptop-category', function ($faker) {
|
||||||
return [
|
return [
|
||||||
|
'name' => 'Laptops',
|
||||||
|
'category_type' => 'asset',
|
||||||
|
'require_acceptance' => true,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Category::class, 'asset-desktop-category', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Desktops',
|
||||||
'category_type' => 'asset',
|
'category_type' => 'asset',
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
$factory->state(App\Models\Category::class, 'accessory-category', function ($faker) {
|
$factory->state(App\Models\Category::class, 'asset-display-category', function ($faker) {
|
||||||
return [
|
return [
|
||||||
|
'name' => 'Displays',
|
||||||
|
'category_type' => 'asset',
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Category::class, 'asset-tablet-category', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Tablets',
|
||||||
|
'category_type' => 'asset',
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Category::class, 'asset-mobile-category', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Mobile Phones',
|
||||||
|
'category_type' => 'asset',
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Category::class, 'asset-conference-category', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Conference Phones',
|
||||||
|
'category_type' => 'asset',
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Category::class, 'asset-voip-category', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'VOIP Phones',
|
||||||
|
'category_type' => 'asset',
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
$factory->state(App\Models\Category::class, 'accessory-keyboard-category', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Keyboards',
|
||||||
'category_type' => 'accessory',
|
'category_type' => 'accessory',
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
$factory->state(App\Models\Category::class, 'component-category', function ($faker) {
|
$factory->state(App\Models\Category::class, 'accessory-mouse-category', function ($faker) {
|
||||||
return [
|
return [
|
||||||
|
'name' => 'Mouse',
|
||||||
|
'category_type' => 'accessory',
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
$factory->state(App\Models\Category::class, 'component-hdd-category', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'HDD/SSD',
|
||||||
'category_type' => 'component',
|
'category_type' => 'component',
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
$factory->state(App\Models\Category::class, 'consumable-category', function ($faker) {
|
$factory->state(App\Models\Category::class, 'component-ram-category', function ($faker) {
|
||||||
return [
|
return [
|
||||||
|
'name' => 'RAM',
|
||||||
|
'category_type' => 'component',
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Category::class, 'consumable-paper-category', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Printer Paper',
|
||||||
'category_type' => 'consumable',
|
'category_type' => 'consumable',
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
$factory->state(App\Models\Category::class, 'requires-acceptance', function ($faker) {
|
$factory->state(App\Models\Category::class, 'consumable-ink-category', function ($faker) {
|
||||||
return [
|
return [
|
||||||
'require_acceptance' => true,
|
'name' => 'Printer Ink',
|
||||||
|
'category_type' => 'consumable',
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
64
database/factories/ComponentsFactory.php
Normal file
64
database/factories/ComponentsFactory.php
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Components Factories
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Factories related exclusively to creating components ..
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
$factory->define(App\Models\Component::class, function (Faker\Generator $faker) {
|
||||||
|
return [
|
||||||
|
'user_id' => 1,
|
||||||
|
'order_number' => $faker->numberBetween(1000000, 50000000),
|
||||||
|
'purchase_date' => $faker->dateTimeBetween('-1 years','now', date_default_timezone_get()),
|
||||||
|
'purchase_cost' => $faker->randomFloat(2, 1, 50),
|
||||||
|
'qty' => $faker->numberBetween(5, 10),
|
||||||
|
'min_amt' => $faker->numberBetween($min = 1, $max = 2),
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Component::class, 'ram-crucial4', function ($faker) {
|
||||||
|
|
||||||
|
return [
|
||||||
|
'name' => 'Crucial 4GB DDR3L-1600 SODIMM',
|
||||||
|
'category_id' => 13,
|
||||||
|
'qty' => 10,
|
||||||
|
'min_amt' => 2
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Component::class, 'ram-crucial8', function ($faker) {
|
||||||
|
|
||||||
|
return [
|
||||||
|
'name' => 'Crucial 8GB DDR3L-1600 SODIMM Memory for Mac',
|
||||||
|
'category_id' => 13,
|
||||||
|
'qty' => 10,
|
||||||
|
'min_amt' => 2
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Component::class, 'ssd-crucial120', function ($faker) {
|
||||||
|
|
||||||
|
return [
|
||||||
|
'name' => 'Crucial BX300 120GB SATA Internal SSD',
|
||||||
|
'category_id' => 12,
|
||||||
|
'qty' => 10,
|
||||||
|
'min_amt' => 2
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Component::class, 'ssd-crucial240', function ($faker) {
|
||||||
|
|
||||||
|
return [
|
||||||
|
'name' => 'Crucial BX300 240GB SATA Internal SSD',
|
||||||
|
'category_id' => 12,
|
||||||
|
'qty' => 10,
|
||||||
|
'min_amt' => 2
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
58
database/factories/ConsumableFactory.php
Normal file
58
database/factories/ConsumableFactory.php
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Consumables Factories
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Factories related exclusively to creating consumables ..
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
$factory->define(App\Models\Consumable::class, function (Faker\Generator $faker) {
|
||||||
|
return [
|
||||||
|
'user_id' => 1,
|
||||||
|
'item_no' => $faker->numberBetween(1000000, 50000000),
|
||||||
|
'order_number' => $faker->numberBetween(1000000, 50000000),
|
||||||
|
'purchase_date' => $faker->dateTimeBetween('-1 years','now', date_default_timezone_get()),
|
||||||
|
'purchase_cost' => $faker->randomFloat(2, 1, 50),
|
||||||
|
'qty' => $faker->numberBetween(5, 10),
|
||||||
|
'min_amt' => $faker->numberBetween($min = 1, $max = 2),
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Consumable::class, 'cardstock', function ($faker) {
|
||||||
|
|
||||||
|
return [
|
||||||
|
'name' => 'Cardstock (White)',
|
||||||
|
'category_id' => 10,
|
||||||
|
'manufacturer_id' => 10,
|
||||||
|
'qty' => 10,
|
||||||
|
'min_amt' => 2
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Consumable::class, 'paper', function ($faker) {
|
||||||
|
|
||||||
|
return [
|
||||||
|
'name' => 'Laserjet Paper (Ream)',
|
||||||
|
'category_id' => 10,
|
||||||
|
'manufacturer_id' => 10,
|
||||||
|
'qty' => 20,
|
||||||
|
'min_amt' => 2
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Consumable::class, 'ink', function ($faker) {
|
||||||
|
|
||||||
|
return [
|
||||||
|
'name' => 'Laserjet Toner (black)',
|
||||||
|
'category_id' => 11,
|
||||||
|
'manufacturer_id' => 5,
|
||||||
|
'qty' => 20,
|
||||||
|
'min_amt' => 2
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
62
database/factories/DepartmentsFactory.php
Normal file
62
database/factories/DepartmentsFactory.php
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Asset Model Factories
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Factories related exclusively to creating models ..
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
$factory->define(App\Models\Department::class, function (Faker\Generator $faker) {
|
||||||
|
return [
|
||||||
|
'user_id' => 1,
|
||||||
|
'location_id' => rand(1,5),
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Department::class, 'hr', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Human Resources',
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Department::class, 'engineering', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Engineering',
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Department::class, 'marketing', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Marketing',
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Department::class, 'client', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Client Services',
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Department::class, 'design', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Graphic Design',
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Department::class, 'product', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Product Management',
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Department::class, 'silly', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Dept of Silly Walks',
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
41
database/factories/DepreciationFactory.php
Normal file
41
database/factories/DepreciationFactory.php
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Asset Model Factories
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Factories related exclusively to creating models ..
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
$factory->define(App\Models\Depreciation::class, function (Faker\Generator $faker) {
|
||||||
|
return [
|
||||||
|
'user_id' => 1,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Depreciation::class, 'computer', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Computer Depreciation',
|
||||||
|
'months' => 36,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Depreciation::class, 'display', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Display Depreciation',
|
||||||
|
'months' => 12,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\Depreciation::class, 'mobile-phones', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Mobile Phone Depreciation',
|
||||||
|
'months' => 24,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
101
database/factories/LicenseFactory.php
Normal file
101
database/factories/LicenseFactory.php
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Asset Model Factories
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Factories related exclusively to creating models ..
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
$factory->define(App\Models\License::class, function (Faker\Generator $faker) {
|
||||||
|
|
||||||
|
return [
|
||||||
|
'user_id' => 1,
|
||||||
|
'license_name' => $faker->name,
|
||||||
|
'license_email' => $faker->safeEmail,
|
||||||
|
'serial' => $faker->uuid,
|
||||||
|
'notes' => 'Created by DB seeder',
|
||||||
|
'purchase_date' => $faker->dateTimeBetween('-1 years','now', date_default_timezone_get()),
|
||||||
|
'order_number' => $faker->numberBetween(1000000, 50000000),
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// 1
|
||||||
|
$factory->state(App\Models\License::class, 'photoshop', function ($faker) {
|
||||||
|
$data = [
|
||||||
|
'name' => 'Photoshop',
|
||||||
|
'manufacturer_id' => 9,
|
||||||
|
'purchase_cost' => '299.99',
|
||||||
|
'seats' => 10,
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
for ($x = 0; $x < $data['seats']; $x++) {
|
||||||
|
$seat = new App\Models\LicenseSeat;
|
||||||
|
$seat->license_id = 1;
|
||||||
|
$seat->create();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
// 2
|
||||||
|
$factory->state(App\Models\License::class, 'acrobat', function ($faker) {
|
||||||
|
|
||||||
|
$data = [
|
||||||
|
'name' => 'Acrobat',
|
||||||
|
'manufacturer_id' => 9,
|
||||||
|
'purchase_cost' => '29.99',
|
||||||
|
'seats' => 10,
|
||||||
|
];
|
||||||
|
|
||||||
|
for ($x = 0; $x < $data['seats']; $x++) {
|
||||||
|
$seat = new App\Models\LicenseSeat;
|
||||||
|
$seat->license_id = 2;
|
||||||
|
$seat->create();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
});
|
||||||
|
|
||||||
|
// 3
|
||||||
|
$factory->state(App\Models\License::class, 'indesign', function ($faker) {
|
||||||
|
$data = [
|
||||||
|
'name' => 'InDesign',
|
||||||
|
'manufacturer_id' => 9,
|
||||||
|
'purchase_cost' => '199.99',
|
||||||
|
'seats' => 10,
|
||||||
|
];
|
||||||
|
|
||||||
|
for ($x = 0; $x < $data['seats']; $x++) {
|
||||||
|
$seat = new App\Models\LicenseSeat;
|
||||||
|
$seat->license_id = 3;
|
||||||
|
$seat->create();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// 4
|
||||||
|
$factory->state(App\Models\License::class, 'office', function ($faker) {
|
||||||
|
$data = [
|
||||||
|
'name' => 'Office',
|
||||||
|
'manufacturer_id' => 2,
|
||||||
|
'purchase_cost' => '49.99',
|
||||||
|
'seats' => 20,
|
||||||
|
];
|
||||||
|
|
||||||
|
for ($x = 0; $x < $data['seats']; $x++) {
|
||||||
|
$seat = new App\Models\LicenseSeat;
|
||||||
|
$seat->license_id = 4;
|
||||||
|
$seat->create();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
});
|
||||||
|
|
||||||
|
|
123
database/factories/ManufacturerFactory.php
Normal file
123
database/factories/ManufacturerFactory.php
Normal file
|
@ -0,0 +1,123 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Asset Model Factories
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Factories related exclusively to creating models ..
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
$factory->define(App\Models\Manufacturer::class, function (Faker\Generator $faker) {
|
||||||
|
return [
|
||||||
|
'user_id' => 1,
|
||||||
|
'support_phone' => $faker->phoneNumber(),
|
||||||
|
'url' => $faker->url(),
|
||||||
|
'support_email' => $faker->safeEmail(),
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// 1
|
||||||
|
$factory->state(App\Models\Manufacturer::class, 'apple', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Apple',
|
||||||
|
'url' => 'https://apple.com',
|
||||||
|
'support_url' => 'https://support.apple.com'
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// 2
|
||||||
|
$factory->state(App\Models\Manufacturer::class, 'microsoft', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Microsoft',
|
||||||
|
'url' => 'https://microsoft.com',
|
||||||
|
'support_url' => 'https://support.microsoft.com'
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// 3
|
||||||
|
$factory->state(App\Models\Manufacturer::class, 'dell', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Dell',
|
||||||
|
'url' => 'https://dell.com',
|
||||||
|
'support_url' => 'https://support.dell.com'
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// 4
|
||||||
|
$factory->state(App\Models\Manufacturer::class, 'asus', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Asus',
|
||||||
|
'url' => 'https://asus.com',
|
||||||
|
'support_url' => 'https://support.asus.com'
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// 5
|
||||||
|
$factory->state(App\Models\Manufacturer::class, 'hp', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'HP',
|
||||||
|
'url' => 'https://hp.com',
|
||||||
|
'support_url' => 'https://support.hp.com'
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// 6
|
||||||
|
$factory->state(App\Models\Manufacturer::class, 'lenovo', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Lenovo',
|
||||||
|
'url' => 'https://lenovo.com',
|
||||||
|
'support_url' => 'https://support.lenovo.com'
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// 7
|
||||||
|
$factory->state(App\Models\Manufacturer::class, 'lg', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'LG',
|
||||||
|
'url' => 'https://lg.com',
|
||||||
|
'support_url' => 'https://support.lg.com'
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// 8
|
||||||
|
$factory->state(App\Models\Manufacturer::class, 'polycom', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Polycom',
|
||||||
|
'url' => 'https://polycom.com',
|
||||||
|
'support_url' => 'https://support.polycom.com'
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// 9
|
||||||
|
$factory->state(App\Models\Manufacturer::class, 'adobe', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Adobe',
|
||||||
|
'url' => 'https://adobe.com',
|
||||||
|
'support_url' => 'https://support.adobe.com'
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// 10
|
||||||
|
$factory->state(App\Models\Manufacturer::class, 'avery', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Avery',
|
||||||
|
'url' => 'https://avery.com',
|
||||||
|
'support_url' => 'https://support.avery.com'
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// 11
|
||||||
|
$factory->state(App\Models\Manufacturer::class, 'crucial', function ($faker) {
|
||||||
|
return [
|
||||||
|
'name' => 'Crucial',
|
||||||
|
'url' => 'https://crucial.com',
|
||||||
|
'support_url' => 'https://support.crucial.com'
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -19,28 +19,6 @@ use App\Models\Manufacturer;
|
||||||
use App\Models\Statuslabel;
|
use App\Models\Statuslabel;
|
||||||
use App\Models\Supplier;
|
use App\Models\Supplier;
|
||||||
|
|
||||||
$factory->define(App\Models\Accessory::class, function (Faker\Generator $faker) {
|
|
||||||
return [
|
|
||||||
'company_id' => function () {
|
|
||||||
return factory(App\Models\Company::class)->create()->id;
|
|
||||||
},
|
|
||||||
'name' => $faker->text(20),
|
|
||||||
'category_id' => function () {
|
|
||||||
return factory(App\Models\Category::class)->states('accessory-category')->create()->id;
|
|
||||||
},
|
|
||||||
'manufacturer_id' => function () {
|
|
||||||
return factory(App\Models\Manufacturer::class)->create()->id;
|
|
||||||
},
|
|
||||||
'location_id' => function () {
|
|
||||||
return factory(App\Models\Location::class)->create()->id;
|
|
||||||
},
|
|
||||||
'order_number' => $faker->numberBetween(1000000, 50000000),
|
|
||||||
'purchase_date' => $faker->dateTime(),
|
|
||||||
'purchase_cost' => $faker->randomFloat(2),
|
|
||||||
'qty' => $faker->numberBetween(5, 10),
|
|
||||||
'min_amt' => $faker->numberBetween($min = 1, $max = 2),
|
|
||||||
];
|
|
||||||
});
|
|
||||||
|
|
||||||
$factory->define(App\Models\Company::class, function (Faker\Generator $faker) {
|
$factory->define(App\Models\Company::class, function (Faker\Generator $faker) {
|
||||||
return [
|
return [
|
||||||
|
@ -54,9 +32,7 @@ $factory->define(App\Models\Component::class, function (Faker\Generator $faker)
|
||||||
'category_id' => function () {
|
'category_id' => function () {
|
||||||
return factory(App\Models\Category::class)->create()->id;
|
return factory(App\Models\Category::class)->create()->id;
|
||||||
},
|
},
|
||||||
'location_id' => function () {
|
'location_id' => 1,
|
||||||
return factory(App\Models\Location::class)->create()->id;
|
|
||||||
},
|
|
||||||
'serial' => $faker->uuid,
|
'serial' => $faker->uuid,
|
||||||
'qty' => $faker->numberBetween(3, 10),
|
'qty' => $faker->numberBetween(3, 10),
|
||||||
'order_number' => $faker->numberBetween(1000000, 50000000),
|
'order_number' => $faker->numberBetween(1000000, 50000000),
|
||||||
|
@ -69,94 +45,10 @@ $factory->define(App\Models\Component::class, function (Faker\Generator $faker)
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
$factory->define(App\Models\Consumable::class, function (Faker\Generator $faker) {
|
|
||||||
return [
|
|
||||||
'name' => $faker->text(20),
|
|
||||||
'company_id' => function () {
|
|
||||||
return factory(App\Models\Company::class)->create()->id;
|
|
||||||
},
|
|
||||||
'category_id' => function () {
|
|
||||||
return factory(App\Models\Category::class)->create()->id;
|
|
||||||
},
|
|
||||||
'location_id' => function () {
|
|
||||||
return factory(App\Models\Location::class)->create()->id;
|
|
||||||
},
|
|
||||||
'manufacturer_id' => function () {
|
|
||||||
return factory(App\Models\Manufacturer::class)->create()->id;
|
|
||||||
},
|
|
||||||
'user_id' => function () {
|
|
||||||
return factory(App\Models\User::class)->create()->id;
|
|
||||||
},
|
|
||||||
'model_number' => $faker->numberBetween(1000000, 50000000),
|
|
||||||
'item_no' => $faker->numberBetween(1000000, 50000000),
|
|
||||||
'order_number' => $faker->numberBetween(1000000, 50000000),
|
|
||||||
'purchase_date' => $faker->dateTime(),
|
|
||||||
'purchase_cost' => $faker->randomFloat(2),
|
|
||||||
'qty' => $faker->numberBetween(5, 10),
|
|
||||||
'min_amt' => $faker->numberBetween($min = 1, $max = 2),
|
|
||||||
];
|
|
||||||
});
|
|
||||||
|
|
||||||
$factory->define(App\Models\Department::class, function (Faker\Generator $faker) {
|
|
||||||
return [
|
|
||||||
'name' => $faker->catchPhrase,
|
|
||||||
'user_id' => '1',
|
|
||||||
'location_id' => function () {
|
|
||||||
return factory(App\Models\Location::class)->create()->id;
|
|
||||||
},
|
|
||||||
'company_id' => function () {
|
|
||||||
return factory(App\Models\Company::class)->create()->id;
|
|
||||||
},
|
|
||||||
'manager_id' => function () {
|
|
||||||
return factory(App\Models\User::class)->create()->id;
|
|
||||||
},
|
|
||||||
|
|
||||||
];
|
|
||||||
});
|
|
||||||
|
|
||||||
$factory->define(App\Models\Depreciation::class, function (Faker\Generator $faker) {
|
|
||||||
return [
|
|
||||||
'name' => $faker->text(20),
|
|
||||||
'months' => $faker->numberBetween(1, 10),
|
|
||||||
];
|
|
||||||
});
|
|
||||||
|
|
||||||
$factory->define(App\Models\License::class, function (Faker\Generator $faker) {
|
|
||||||
return [
|
|
||||||
'name' => $faker->catchPhrase,
|
|
||||||
'serial' => $faker->uuid,
|
|
||||||
'seats' => $faker->numberBetween(1, 10),
|
|
||||||
'license_email' => $faker->safeEmail,
|
|
||||||
'license_name' => $faker->name,
|
|
||||||
'order_number' => $faker->numberBetween(1500, 13250),
|
|
||||||
'purchase_order' => $faker->numberBetween(1500, 13250),
|
|
||||||
'purchase_date' => $faker->dateTime(),
|
|
||||||
'purchase_cost' => $faker->randomFloat(2),
|
|
||||||
'notes' => $faker->sentence,
|
|
||||||
'supplier_id' => function () {
|
|
||||||
return factory(App\Models\Supplier::class)->create()->id;
|
|
||||||
},
|
|
||||||
'company_id' =>function () {
|
|
||||||
return factory(App\Models\Company::class)->create()->id;
|
|
||||||
},
|
|
||||||
];
|
|
||||||
});
|
|
||||||
|
|
||||||
$factory->define(App\Models\LicenseSeat::class, function (Faker\Generator $faker) {
|
|
||||||
return [
|
|
||||||
'license_id' => function () {
|
|
||||||
return factory(App\Models\License::class)->create()->id;
|
|
||||||
},
|
|
||||||
'created_at' => $faker->dateTime(),
|
|
||||||
'updated_at' => $faker->dateTime(),
|
|
||||||
'notes' => $faker->sentence,
|
|
||||||
'user_id' => '1',
|
|
||||||
];
|
|
||||||
});
|
|
||||||
|
|
||||||
$factory->define(App\Models\Location::class, function (Faker\Generator $faker) {
|
$factory->define(App\Models\Location::class, function (Faker\Generator $faker) {
|
||||||
return [
|
return [
|
||||||
'name' => $faker->catchPhrase,
|
'name' => $faker->city,
|
||||||
'address' => $faker->streetAddress,
|
'address' => $faker->streetAddress,
|
||||||
'address2' => $faker->secondaryAddress,
|
'address2' => $faker->secondaryAddress,
|
||||||
'city' => $faker->city,
|
'city' => $faker->city,
|
||||||
|
@ -167,11 +59,6 @@ $factory->define(App\Models\Location::class, function (Faker\Generator $faker) {
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
$factory->define(App\Models\Manufacturer::class, function (Faker\Generator $faker) {
|
|
||||||
return [
|
|
||||||
'name' => $faker->company,
|
|
||||||
];
|
|
||||||
});
|
|
||||||
|
|
||||||
$factory->define(App\Models\Supplier::class, function (Faker\Generator $faker) {
|
$factory->define(App\Models\Supplier::class, function (Faker\Generator $faker) {
|
||||||
return [
|
return [
|
||||||
|
|
|
@ -2,12 +2,14 @@
|
||||||
|
|
||||||
use App\Models\Company;
|
use App\Models\Company;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$factory->define(App\Models\User::class, function (Faker\Generator $faker) {
|
$factory->define(App\Models\User::class, function (Faker\Generator $faker) {
|
||||||
return [
|
return [
|
||||||
'first_name' => $faker->firstName,
|
'first_name' => $faker->firstName,
|
||||||
'last_name' => $faker->lastName,
|
'last_name' => $faker->lastName,
|
||||||
'username' => $faker->username,
|
'username' => $faker->username,
|
||||||
'password' => $faker->password,
|
'password' => bcrypt('password'),
|
||||||
'permissions' => '{"user":"0"}',
|
'permissions' => '{"user":"0"}',
|
||||||
'email' => $faker->safeEmail,
|
'email' => $faker->safeEmail,
|
||||||
'company_id' => function () {
|
'company_id' => function () {
|
||||||
|
@ -15,14 +17,36 @@ $factory->define(App\Models\User::class, function (Faker\Generator $faker) {
|
||||||
},
|
},
|
||||||
'locale' => $faker->locale,
|
'locale' => $faker->locale,
|
||||||
'employee_num' => $faker->numberBetween(3500, 35050),
|
'employee_num' => $faker->numberBetween(3500, 35050),
|
||||||
'jobtitle' => $faker->word,
|
'jobtitle' => $faker->jobTitle,
|
||||||
|
'department_id' => rand(1,6),
|
||||||
'phone' => $faker->phoneNumber,
|
'phone' => $faker->phoneNumber,
|
||||||
'notes' => $faker->sentence,
|
'notes' => 'Created by DB seeder',
|
||||||
'location_id' => function () {
|
'location_id' => rand(1,5),
|
||||||
return factory(App\Models\Location::class)->create()->id;
|
'activated' => 1,
|
||||||
},
|
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
$factory->state(App\Models\User::class, 'first-admin', function ($faker) {
|
||||||
|
return [
|
||||||
|
'first_name' => 'Admin',
|
||||||
|
'last_name' => 'User',
|
||||||
|
'username' => 'admin',
|
||||||
|
'permissions' => '{"superuser":"1"}',
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Models\User::class, 'snipe-admin', function ($faker) {
|
||||||
|
return [
|
||||||
|
'first_name' => 'Snipe E.',
|
||||||
|
'last_name' => 'Head',
|
||||||
|
'username' => 'snipe',
|
||||||
|
'email' => 'snipe@snipe.net',
|
||||||
|
'permissions' => '{"superuser":"1"}',
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
// USER GLOBAL PERMISSION STATES
|
// USER GLOBAL PERMISSION STATES
|
||||||
$factory->state(App\Models\User::class, 'superuser', function ($faker) {
|
$factory->state(App\Models\User::class, 'superuser', function ($faker) {
|
||||||
return [
|
return [
|
||||||
|
@ -33,6 +57,7 @@ $factory->state(App\Models\User::class, 'superuser', function ($faker) {
|
||||||
$factory->state(App\Models\User::class, 'admin', function ($faker) {
|
$factory->state(App\Models\User::class, 'admin', function ($faker) {
|
||||||
return [
|
return [
|
||||||
'permissions' => '{"admin":"1"}',
|
'permissions' => '{"admin":"1"}',
|
||||||
|
'manager_id' => rand(1,2),
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
// USER ASSET PERMISSION STATES
|
// USER ASSET PERMISSION STATES
|
||||||
|
|
|
@ -2,11 +2,16 @@
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
use App\Models\Accessory;
|
use App\Models\Accessory;
|
||||||
|
|
||||||
|
|
||||||
class AccessorySeeder extends Seeder
|
class AccessorySeeder extends Seeder
|
||||||
{
|
{
|
||||||
public function run()
|
public function run()
|
||||||
{
|
{
|
||||||
Accessory::truncate();
|
Accessory::truncate();
|
||||||
factory(Accessory::class,15)->create();
|
DB::table('accessories_users')->truncate();
|
||||||
|
factory(Accessory::class, 1)->states('apple-usb-keyboard')->create();
|
||||||
|
factory(Accessory::class, 1)->states('apple-bt-keyboard')->create();
|
||||||
|
factory(Accessory::class, 1)->states('apple-mouse')->create();
|
||||||
|
factory(Accessory::class, 1)->states('microsoft-mouse')->create();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,10 +7,7 @@ class ActionlogSeeder extends Seeder
|
||||||
public function run()
|
public function run()
|
||||||
{
|
{
|
||||||
Actionlog::truncate();
|
Actionlog::truncate();
|
||||||
factory(Actionlog::class, 'asset-checkout',25)->create();
|
factory(Actionlog::class, 'asset-checkout-user',5)->create();
|
||||||
// factory(Actionlog::class, 'accessory-checkout',15)->create();
|
factory(Actionlog::class, 'asset-checkout-location',5)->create();
|
||||||
// factory(Actionlog::class, 'consumable-checkout', 15)->create();
|
|
||||||
// factory(Actionlog::class, 'component-checkout', 15)->create();
|
|
||||||
// factory(Actionlog::class, 'license-checkout-asset', 15)->create();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,38 @@ class AssetModelSeeder extends Seeder
|
||||||
public function run()
|
public function run()
|
||||||
{
|
{
|
||||||
AssetModel::truncate();
|
AssetModel::truncate();
|
||||||
factory(AssetModel::class,5)->create();
|
|
||||||
|
// Laptops
|
||||||
|
factory(AssetModel::class, 1)->states('mbp-13-model')->create(); // 1
|
||||||
|
factory(AssetModel::class, 1)->states('mbp-air-model')->create(); // 2
|
||||||
|
factory(AssetModel::class, 1)->states('surface-model')->create(); // 3
|
||||||
|
factory(AssetModel::class, 1)->states('xps13-model')->create(); // 4
|
||||||
|
factory(AssetModel::class, 1)->states('spectre-model')->create(); // 5
|
||||||
|
factory(AssetModel::class, 1)->states('zenbook-model')->create(); // 6
|
||||||
|
factory(AssetModel::class, 1)->states('yoga-model')->create(); // 7
|
||||||
|
|
||||||
|
// Desktops
|
||||||
|
factory(AssetModel::class, 1)->states('macpro-model')->create(); // 8
|
||||||
|
factory(AssetModel::class, 1)->states('lenovo-i5-model')->create(); // 9
|
||||||
|
factory(AssetModel::class, 1)->states('optiplex-model')->create(); // 10
|
||||||
|
|
||||||
|
// Conference Phones
|
||||||
|
factory(AssetModel::class, 1)->states('polycom-model')->create(); // 11
|
||||||
|
factory(AssetModel::class, 1)->states('polycomcx-model')->create(); // 12
|
||||||
|
|
||||||
|
// Tablets
|
||||||
|
factory(AssetModel::class, 1)->states('ipad-model')->create(); // 13
|
||||||
|
factory(AssetModel::class, 1)->states('tab3-model')->create(); // 14
|
||||||
|
|
||||||
|
// Phones
|
||||||
|
factory(AssetModel::class, 1)->states('iphone6s-model')->create(); // 15
|
||||||
|
factory(AssetModel::class, 1)->states('iphone7-model')->create(); // 16
|
||||||
|
|
||||||
|
// Displays
|
||||||
|
factory(AssetModel::class, 1)->states('ultrafine')->create(); // 17
|
||||||
|
factory(AssetModel::class, 1)->states('ultrasharp')->create(); // 18
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,32 @@ class AssetSeeder extends Seeder
|
||||||
public function run()
|
public function run()
|
||||||
{
|
{
|
||||||
Asset::truncate();
|
Asset::truncate();
|
||||||
factory(Asset::class, 100)->create();
|
factory(Asset::class, 10)->states('laptop-mbp')->create();
|
||||||
|
factory(Asset::class, 5)->states('laptop-mbp-pending')->create();
|
||||||
|
factory(Asset::class, 5)->states('laptop-mbp-archived')->create();
|
||||||
|
factory(Asset::class, 10)->states('laptop-air')->create();
|
||||||
|
factory(Asset::class, 5)->states('laptop-surface')->create();
|
||||||
|
factory(Asset::class, 5)->states('laptop-xps')->create();
|
||||||
|
factory(Asset::class, 5)->states('laptop-spectre')->create();
|
||||||
|
factory(Asset::class, 5)->states('laptop-zenbook')->create();
|
||||||
|
factory(Asset::class, 3)->states('laptop-yoga')->create();
|
||||||
|
|
||||||
|
factory(Asset::class, 3)->states('desktop-macpro')->create();
|
||||||
|
factory(Asset::class, 3)->states('desktop-lenovo-i5')->create();
|
||||||
|
factory(Asset::class, 10)->states('desktop-optiplex')->create();
|
||||||
|
|
||||||
|
factory(Asset::class, 5)->states('conf-polycom')->create();
|
||||||
|
factory(Asset::class, 2)->states('conf-polycomcx')->create();
|
||||||
|
|
||||||
|
factory(Asset::class, 12)->states('tablet-ipad')->create();
|
||||||
|
factory(Asset::class, 4)->states('tablet-tab3')->create();
|
||||||
|
|
||||||
|
factory(Asset::class, 27)->states('phone-iphone6s')->create();
|
||||||
|
factory(Asset::class, 40)->states('phone-iphone7')->create();
|
||||||
|
|
||||||
|
factory(Asset::class, 10)->states('ultrafine')->create();
|
||||||
|
factory(Asset::class, 10)->states('ultrasharp')->create();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,10 +7,20 @@ class CategorySeeder extends Seeder
|
||||||
public function run()
|
public function run()
|
||||||
{
|
{
|
||||||
Category::truncate();
|
Category::truncate();
|
||||||
factory(Category::class, 10)->states('asset-category')->create();
|
|
||||||
factory(Category::class, 10)->states('accessory-category')->create();
|
factory(Category::class, 1)->states('asset-laptop-category')->create(); // 1
|
||||||
factory(Category::class, 10)->states('component-category')->create();
|
factory(Category::class, 1)->states('asset-desktop-category')->create(); // 2
|
||||||
factory(Category::class, 10)->states('consumable-category')->create();
|
factory(Category::class, 1)->states('asset-tablet-category')->create(); // 3
|
||||||
|
factory(Category::class, 1)->states('asset-mobile-category')->create(); // 4
|
||||||
|
factory(Category::class, 1)->states('asset-display-category')->create(); // 5
|
||||||
|
factory(Category::class, 1)->states('asset-voip-category')->create(); // 6
|
||||||
|
factory(Category::class, 1)->states('asset-conference-category')->create(); // 7
|
||||||
|
factory(Category::class, 1)->states('accessory-keyboard-category')->create(); // 8
|
||||||
|
factory(Category::class, 1)->states('accessory-mouse-category')->create(); // 9
|
||||||
|
factory(Category::class, 1)->states('consumable-paper-category')->create(); // 10
|
||||||
|
factory(Category::class, 1)->states('consumable-ink-category')->create(); // 11
|
||||||
|
factory(Category::class, 1)->states('component-hdd-category')->create(); // 12
|
||||||
|
factory(Category::class, 1)->states('component-ram-category')->create(); // 13
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,9 @@ class ComponentSeeder extends Seeder
|
||||||
{
|
{
|
||||||
Component::truncate();
|
Component::truncate();
|
||||||
DB::table('components_assets')->truncate();
|
DB::table('components_assets')->truncate();
|
||||||
factory(Component::class, 10)->create();
|
factory(Component::class, 1)->states('ram-crucial4')->create(); // 1
|
||||||
|
factory(Component::class, 1)->states('ram-crucial8')->create(); // 1
|
||||||
|
factory(Component::class, 1)->states('ssd-crucial120')->create(); // 1
|
||||||
|
factory(Component::class, 1)->states('ssd-crucial240')->create(); // 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,9 @@ class ConsumableSeeder extends Seeder
|
||||||
public function run()
|
public function run()
|
||||||
{
|
{
|
||||||
Consumable::truncate();
|
Consumable::truncate();
|
||||||
factory(Consumable::class, 25)->create();
|
DB::table('consumables_users')->truncate();
|
||||||
|
factory(Consumable::class, 1)->states('cardstock')->create(); // 1
|
||||||
|
factory(Consumable::class, 1)->states('paper')->create(); // 2
|
||||||
|
factory(Consumable::class, 1)->states('ink')->create(); // 3
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@ class DatabaseSeeder extends Seeder
|
||||||
$this->call(CategorySeeder::class);
|
$this->call(CategorySeeder::class);
|
||||||
$this->call(UserSeeder::class);
|
$this->call(UserSeeder::class);
|
||||||
$this->call(DepreciationSeeder::class);
|
$this->call(DepreciationSeeder::class);
|
||||||
|
$this->call(DepartmentSeeder::class);
|
||||||
$this->call(ManufacturerSeeder::class);
|
$this->call(ManufacturerSeeder::class);
|
||||||
$this->call(LocationSeeder::class);
|
$this->call(LocationSeeder::class);
|
||||||
$this->call(SupplierSeeder::class);
|
$this->call(SupplierSeeder::class);
|
||||||
|
@ -29,7 +30,6 @@ class DatabaseSeeder extends Seeder
|
||||||
$this->call(LicenseSeeder::class);
|
$this->call(LicenseSeeder::class);
|
||||||
$this->call(ComponentSeeder::class);
|
$this->call(ComponentSeeder::class);
|
||||||
$this->call(ConsumableSeeder::class);
|
$this->call(ConsumableSeeder::class);
|
||||||
$this->call(LicenseSeeder::class);
|
|
||||||
$this->call(ActionlogSeeder::class);
|
$this->call(ActionlogSeeder::class);
|
||||||
$this->call(CustomFieldSeeder::class);
|
$this->call(CustomFieldSeeder::class);
|
||||||
|
|
||||||
|
|
17
database/seeds/DepartmentSeeder.php
Normal file
17
database/seeds/DepartmentSeeder.php
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<?php
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use App\Models\Department;
|
||||||
|
|
||||||
|
class DepartmentSeeder extends Seeder
|
||||||
|
{
|
||||||
|
public function run()
|
||||||
|
{
|
||||||
|
Department::truncate();
|
||||||
|
factory(Department::class, 1)->states('hr')->create(); // 1
|
||||||
|
factory(Department::class, 1)->states('engineering')->create(); // 2
|
||||||
|
factory(Department::class, 1)->states('marketing')->create(); // 3
|
||||||
|
factory(Department::class, 1)->states('client')->create(); // 4
|
||||||
|
factory(Department::class, 1)->states('product')->create(); // 5
|
||||||
|
factory(Department::class, 1)->states('silly')->create(); // 6
|
||||||
|
}
|
||||||
|
}
|
|
@ -7,6 +7,8 @@ class DepreciationSeeder extends Seeder
|
||||||
public function run()
|
public function run()
|
||||||
{
|
{
|
||||||
Depreciation::truncate();
|
Depreciation::truncate();
|
||||||
factory(Depreciation::class, 5)->create();
|
factory(Depreciation::class, 1)->states('computer')->create(); // 1
|
||||||
|
factory(Depreciation::class, 1)->states('display')->create(); // 2
|
||||||
|
factory(Depreciation::class, 1)->states('mobile-phones')->create(); // 3
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,9 +8,10 @@ class LicenseSeeder extends Seeder
|
||||||
public function run()
|
public function run()
|
||||||
{
|
{
|
||||||
License::truncate();
|
License::truncate();
|
||||||
factory(License::class, 10)->create();
|
|
||||||
|
|
||||||
LicenseSeat::truncate();
|
LicenseSeat::truncate();
|
||||||
factory(LicenseSeat::class, 10)->create();
|
factory(License::class, 1)->states('photoshop')->create();
|
||||||
|
factory(License::class, 1)->states('acrobat')->create();
|
||||||
|
factory(License::class, 1)->states('indesign')->create();
|
||||||
|
factory(License::class, 1)->states('office')->create();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,16 @@ class ManufacturerSeeder extends Seeder
|
||||||
public function run()
|
public function run()
|
||||||
{
|
{
|
||||||
Manufacturer::truncate();
|
Manufacturer::truncate();
|
||||||
factory(Manufacturer::class, 10)->create();
|
factory(Manufacturer::class, 1)->states('apple')->create(); // 1
|
||||||
|
factory(Manufacturer::class, 1)->states('microsoft')->create(); // 2
|
||||||
|
factory(Manufacturer::class, 1)->states('dell')->create(); // 3
|
||||||
|
factory(Manufacturer::class, 1)->states('asus')->create(); // 4
|
||||||
|
factory(Manufacturer::class, 1)->states('hp')->create(); // 5
|
||||||
|
factory(Manufacturer::class, 1)->states('lenovo')->create(); // 6
|
||||||
|
factory(Manufacturer::class, 1)->states('lg')->create(); // 7
|
||||||
|
factory(Manufacturer::class, 1)->states('polycom')->create(); // 8
|
||||||
|
factory(Manufacturer::class, 1)->states('adobe')->create(); // 9
|
||||||
|
factory(Manufacturer::class, 1)->states('avery')->create(); // 10
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,45 @@ class UserSeeder extends Seeder
|
||||||
*/
|
*/
|
||||||
public function run()
|
public function run()
|
||||||
{
|
{
|
||||||
// Don't truncate the user column, that might suck.
|
User::truncate();
|
||||||
factory(User::class, 10)->create();
|
factory(User::class, 1)->states('first-admin')->create();
|
||||||
|
factory(User::class, 1)->states('snipe-admin')->create();
|
||||||
|
factory(User::class, 3)->states('superuser')->create();
|
||||||
|
factory(User::class, 3)->states('admin')->create();
|
||||||
|
factory(User::class, 1)->states('view-assets')->create();
|
||||||
|
// factory(User::class, 1)->states('create-assets')->create();
|
||||||
|
// factory(User::class, 1)->states('edit-assets')->create();
|
||||||
|
// factory(User::class, 1)->states('delete-assets')->create();
|
||||||
|
// factory(User::class, 1)->states('checkin-assets')->create();
|
||||||
|
// factory(User::class, 1)->states('checkout-assets')->create();
|
||||||
|
// factory(User::class, 1)->states('view-requestable-assets')->create();
|
||||||
|
// factory(User::class, 1)->states('view-accessories')->create();
|
||||||
|
// factory(User::class, 1)->states('create-accessories')->create();
|
||||||
|
// factory(User::class, 1)->states('view-accessories')->create();
|
||||||
|
// factory(User::class, 1)->states('delete-accessories')->create();
|
||||||
|
// factory(User::class, 1)->states('edit-accessories')->create();
|
||||||
|
// factory(User::class, 1)->states('checkout-accessories')->create();
|
||||||
|
// factory(User::class, 1)->states('checkin-accessories')->create();
|
||||||
|
// factory(User::class, 1)->states('view-consumables')->create();
|
||||||
|
// factory(User::class, 1)->states('create-consumables')->create();
|
||||||
|
// factory(User::class, 1)->states('edit-consumables')->create();
|
||||||
|
// factory(User::class, 1)->states('delete-consumables')->create();
|
||||||
|
// factory(User::class, 1)->states('checkout-consumables')->create();
|
||||||
|
// factory(User::class, 1)->states('view-licenses')->create();
|
||||||
|
// factory(User::class, 1)->states('edit-licenses')->create();
|
||||||
|
// factory(User::class, 1)->states('delete-licenses')->create();
|
||||||
|
// factory(User::class, 1)->states('create-licenses')->create();
|
||||||
|
// factory(User::class, 1)->states('checkout-licenses')->create();
|
||||||
|
// factory(User::class, 1)->states('view-keys-licenses')->create();
|
||||||
|
// factory(User::class, 1)->states('view-components')->create();
|
||||||
|
// factory(User::class, 1)->states('edit-components')->create();
|
||||||
|
// factory(User::class, 1)->states('create-components')->create();
|
||||||
|
// factory(User::class, 1)->states('delete-components')->create();
|
||||||
|
// factory(User::class, 1)->states('checkout-components')->create();
|
||||||
|
// factory(User::class, 1)->states('checkin-components')->create();
|
||||||
|
// factory(User::class, 1)->states('view-users')->create();
|
||||||
|
// factory(User::class, 1)->states('edit-users')->create();
|
||||||
|
// factory(User::class, 1)->states('delete-users')->create();
|
||||||
|
// factory(User::class, 1)->states('create-users')->create();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,7 +57,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th data-switchable="false" data-searchable="false" data-sortable="false" data-field="name" data-formatter="hardwareLinkFormatter">{{ trans('general.asset') }}</th>
|
<th data-switchable="false" data-searchable="false" data-sortable="false" data-field="name" data-formatter="hardwareLinkFormatter">{{ trans('general.asset') }}</th>
|
||||||
<th data-switchable="false" data-searchable="false" data-sortable="false" data-field="qty">{{ trans('general.qty') }}</th>
|
<th data-switchable="false" data-searchable="false" data-sortable="false" data-field="qty">{{ trans('general.qty') }}</th>
|
||||||
<th data-switchable="false" data-searchable="false" data-sortable="false" data-field="created_at">{{ trans('general.date') }}</th>
|
<th data-switchable="false" data-searchable="false" data-sortable="false" data-field="created_at" data-formatter="dateDisplayFormatter">{{ trans('general.date') }}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
</table>
|
</table>
|
||||||
|
|
Loading…
Reference in a new issue