55use Symfony \Component \Console \Input \InputArgument ;
66use League \Csv \Reader ;
77
8- class ImportCommand extends Command {
8+ class AssetImportCommand extends Command {
99
1010 /**
1111 * The console command name.
1212 *
1313 * @var string
1414 */
15- protected $ name = 'import:csv ' ;
15+ protected $ name = 'asset- import:csv ' ;
1616
1717 /**
1818 * The console command description.
1919 *
2020 * @var string
2121 */
22- protected $ description = 'Import from CSV ' ;
22+ protected $ description = 'Import Assets from CSV ' ;
2323
2424 /**
2525 * Create a new command instance.
@@ -42,9 +42,9 @@ public function fire()
4242
4343
4444 if (!$ this ->option ('testrun ' )=='true ' ) {
45- $ this ->comment ('======= Importing ' .$ filename .' ========= ' );
45+ $ this ->comment ('======= Importing Assets from ' .$ filename .' ========= ' );
4646 } else {
47- $ this ->comment ('====== TEST ONLY Import for ' .$ filename .' ==== ' );
47+ $ this ->comment ('====== TEST ONLY Asset Import for ' .$ filename .' ==== ' );
4848 $ this ->comment ('============== NO DATA WILL BE WRITTEN ============== ' );
4949 }
5050
@@ -63,66 +63,77 @@ public function fire()
6363
6464 // Let's just map some of these entries to more user friendly words
6565
66+ // User's name
6667 if (array_key_exists ('0 ' ,$ row )) {
67- $ user_name = $ row [0 ];
68+ $ user_name = trim ( $ row [0 ]) ;
6869 } else {
6970 $ user_name = '' ;
7071 }
7172
73+ // User's email
7274 if (array_key_exists ('1 ' ,$ row )) {
73- $ user_email = $ row [1 ];
75+ $ user_email = trim ( $ row [1 ]) ;
7476 } else {
7577 $ user_email = '' ;
7678 }
7779
80+ // Asset Category
7881 if (array_key_exists ('2 ' ,$ row )) {
79- $ user_asset_category = $ row [2 ];
82+ $ user_asset_category = trim ( $ row [2 ]) ;
8083 } else {
8184 $ user_asset_category = '' ;
8285 }
8386
87+ // Asset Name
8488 if (array_key_exists ('3 ' ,$ row )) {
85- $ user_asset_name = $ row [3 ];
89+ $ user_asset_name = trim ( $ row [3 ]) ;
8690 } else {
8791 $ user_asset_name = '' ;
8892 }
8993
94+ // Asset Manufacturer
9095 if (array_key_exists ('4 ' ,$ row )) {
91- $ user_asset_mfgr = $ row [4 ];
96+ $ user_asset_mfgr = trim ( $ row [4 ]) ;
9297 } else {
9398 $ user_asset_mfgr = '' ;
9499 }
95100
101+ // Asset model number
96102 if (array_key_exists ('5 ' ,$ row )) {
97- $ user_asset_modelno = $ row [5 ];
103+ $ user_asset_modelno = trim ( $ row [5 ]) ;
98104 } else {
99105 $ user_asset_modelno = '' ;
100106 }
101107
108+ // Asset serial number
102109 if (array_key_exists ('6 ' ,$ row )) {
103- $ user_asset_serial = $ row [6 ];
110+ $ user_asset_serial = trim ( $ row [6 ]) ;
104111 } else {
105112 $ user_asset_serial = '' ;
106113 }
107114
115+ // Asset tag
108116 if (array_key_exists ('7 ' ,$ row )) {
109- $ user_asset_tag = $ row [7 ];
117+ $ user_asset_tag = trim ( $ row [7 ]) ;
110118 } else {
111119 $ user_asset_tag = '' ;
112120 }
113121
122+ // Asset location
114123 if (array_key_exists ('8 ' ,$ row )) {
115- $ user_asset_location = $ row [8 ];
124+ $ user_asset_location = trim ( $ row [8 ]) ;
116125 } else {
117126 $ user_asset_location = '' ;
118127 }
119128
129+ // Asset notes
120130 if (array_key_exists ('9 ' ,$ row )) {
121- $ user_asset_notes = $ row [9 ];
131+ $ user_asset_notes = trim ( $ row [9 ]) ;
122132 } else {
123133 $ user_asset_notes = '' ;
124134 }
125135
136+ // Asset purchase date
126137 if (array_key_exists ('10 ' ,$ row )) {
127138 if ($ row [10 ]!='' ) {
128139 $ user_asset_purchase_date = date ("Y-m-d 00:00:01 " , strtotime ($ row [10 ]));
@@ -136,17 +147,21 @@ public function fire()
136147 // A number was given instead of a name
137148 if (is_numeric ($ user_name )) {
138149 $ this ->comment ('User ' .$ user_name .' is not a name - assume this user already exists ' );
139- // No name was given
150+ $ user_username = '' ;
140151
152+ // No name was given
141153 } elseif ($ user_name =='' ) {
142154 $ this ->comment ('No user data provided - skipping user creation, just adding asset ' );
143155 $ first_name = '' ;
144156 $ last_name = '' ;
157+ $ user_username = '' ;
158+
145159 } else {
146160
147161 $ name = explode (" " , $ user_name );
148162 $ first_name = $ name [0 ];
149163 $ email_last_name = '' ;
164+ $ email_prefix = $ first_name ;
150165
151166 if (!array_key_exists (1 , $ name )) {
152167 $ last_name ='' ;
@@ -171,6 +186,9 @@ public function fire()
171186
172187 }
173188
189+
190+ $ user_username = $ email_prefix ;
191+
174192 // Generate an email based on their name if no email address is given
175193 if ($ user_email =='' ) {
176194 if ($ first_name =='Unknown ' ) {
@@ -179,14 +197,12 @@ public function fire()
179197 $ email = strtolower ($ email_prefix ).'@ ' .$ this ->option ('domain ' );
180198 $ user_email = str_replace ("' " ,'' ,$ email );
181199 }
182-
183-
184-
185200 }
186201
187202 $ this ->comment ('Full Name: ' .$ user_name );
188203 $ this ->comment ('First Name: ' .$ first_name );
189204 $ this ->comment ('Last Name: ' .$ last_name );
205+ $ this ->comment ('Username: ' .$ user_username );
190206 $ this ->comment ('Email: ' .$ user_email );
191207 $ this ->comment ('Category Name: ' .$ user_asset_category );
192208 $ this ->comment ('Item: ' .$ user_asset_name );
@@ -200,22 +216,23 @@ public function fire()
200216
201217 $ this ->comment ('------------- Action Summary ---------------- ' );
202218
203- if ($ user_email !='' ) {
204- if ($ user = User::where ('email ' , $ user_email )->first ()) {
205- $ this ->comment ('User ' .$ user_email .' already exists ' );
219+ if ($ user_username !='' ) {
220+ if ($ user = User::where ('username ' , $ user_username )-> whereNotNull ( ' username ' )->first ()) {
221+ $ this ->comment ('User ' .$ user_username .' already exists ' );
206222 } else {
207223 // Create the user
208224 $ user = Sentry::createUser (array (
209225 'first_name ' => $ first_name ,
210226 'last_name ' => $ last_name ,
211227 'email ' => $ user_email ,
228+ 'username ' => $ user_username ,
212229 'password ' => substr (str_shuffle ("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ " ), 0 , 10 ),
213230 'activated ' => true ,
214231 'permissions ' => array (
215232 'admin ' => 0 ,
216233 'user ' => 1 ,
217234 ),
218- 'notes ' => 'Imported user '
235+ 'notes ' => 'User imported through asset importer '
219236 ));
220237
221238 // Find the group using the group id
@@ -311,6 +328,11 @@ public function fire()
311328
312329 $ asset = new Asset ();
313330 $ asset ->name = e ($ user_asset_name );
331+ if ($ user_asset_purchase_date !='' ) {
332+ $ asset ->purchase_date = $ user_asset_purchase_date ;
333+ } else {
334+ $ asset ->purchase_date = NULL ;
335+ }
314336 $ asset ->serial = e ($ user_asset_serial );
315337 $ asset ->asset_tag = e ($ user_asset_tag );
316338 $ asset ->model_id = $ asset_model ->id ;
0 commit comments