public function upload(Request $request) { $uploads = Upload::getUploads(); $upload = $uploads->first(); $pre_state = $upload->state; $pre_state_arr = explode('-', $pre_state); $destinationPath = 'uploads/'; if ($request->file('crop')) { $file = $request->file('crop'); $filename = User::getSignedInUserId() . '$' . $file->getClientOriginalName(); if ($file->getClientOriginalName() != 'crops.xlsx') { return redirect()->route('user-uploads-list')->with('global', 'The crop file name should be "crops.xlsx". Please try again!'); } $upload_success = $file->move($destinationPath, $filename); if ($upload_success) { $result = Upload::uploadInputFile(Config::getUploadBaseDirectory() . 'uploads/' . $filename, 'crop', User::getSignedInUserId()); $upload->crop = $file->getClientOriginalName(); $upload->crop_at = date('Y-m-d H:i:s'); if (strpos($result, "NOT OK") !== false) { $pre_state_arr[0] = 0; } else { $pre_state_arr[0] = 1; } $state = $pre_state_arr[0]; for ($i = 1; $i < count($pre_state_arr); $i++) { $state .= '-' . $pre_state_arr[$i]; } $upload->state = $state; $upload->save(); if (strpos($result, "NOT OK") !== false) { return redirect()->route('user-uploads-list')->with('global', "The crop file cannot be uploaded to HS server. Please try again!"); } } else { return redirect()->route('user-uploads-list')->with('global', 'The crop file cannot be uploaded. Please try again!'); } return redirect()->route('user-uploads-list')->with('global', 'The crop file has been successfully uploaded!'); } if ($request->file('soil')) { $file = $request->file('soil'); $filename = User::getSignedInUserId() . '$' . $file->getClientOriginalName(); if ($file->getClientOriginalName() != 'soils.xlsx') { return redirect()->route('user-uploads-list')->with('global', 'The soil file name should be "soils.xlsx". Please try again!'); } $upload_success = $file->move($destinationPath, $filename); if ($upload_success) { $result = Upload::uploadInputFile(Config::getUploadBaseDirectory() . 'uploads/' . $filename, 'soil', User::getSignedInUserId()); $upload->soil = $file->getClientOriginalName(); $upload->soil_at = date('Y-m-d H:i:s'); if (strpos($result, "NOT OK") !== false) { $pre_state_arr[1] = 0; } else { $pre_state_arr[1] = 1; } $state = $pre_state_arr[0]; for ($i = 1; $i < count($pre_state_arr); $i++) { $state .= '-' . $pre_state_arr[$i]; } $upload->state = $state; $upload->save(); if (strpos($result, "NOT OK") !== false) { return redirect()->route('user-uploads-list')->with('global', "The soil file cannot be uploaded to HS server. Please try again!"); } } else { return redirect()->route('user-uploads-list')->with('global', 'The soil file cannot be uploaded. Please try again!'); } return redirect()->route('user-uploads-list')->with('global', 'The soil file has been successfully uploaded!'); } if ($request->file('efficiency')) { $file = $request->file('efficiency'); $filename = User::getSignedInUserId() . '$' . $file->getClientOriginalName(); if ($file->getClientOriginalName() != 'efficiency.xlsx') { return redirect()->route('user-uploads-list')->with('global', 'The efficiency file name should be "efficiency.xlsx". Please try again!'); } $upload_success = $file->move($destinationPath, $filename); if ($upload_success) { $result = Upload::uploadInputFile(Config::getUploadBaseDirectory() . 'uploads/' . $filename, 'efficiency', User::getSignedInUserId()); $upload->efficiency = $file->getClientOriginalName(); $upload->efficiency_at = date('Y-m-d H:i:s'); if (strpos($result, "NOT OK") !== false) { $pre_state_arr[2] = 0; } else { $pre_state_arr[2] = 1; } $state = $pre_state_arr[0]; for ($i = 1; $i < count($pre_state_arr); $i++) { $state .= '-' . $pre_state_arr[$i]; } $upload->state = $state; $upload->save(); if (strpos($result, "NOT OK") !== false) { return redirect()->route('user-uploads-list')->with('global', "The irrigation efficiency file cannot be uploaded to HS server. Please try again!"); } } else { return redirect()->route('user-uploads-list')->with('global', 'The irrigation efficiency file cannot be uploaded. Please try again!'); } return redirect()->route('user-uploads-list')->with('global', 'The irrigation efficiency file has been successfully uploaded!'); } if ($request->file('yield')) { $file = $request->file('yield'); $filename = User::getSignedInUserId() . '$' . $file->getClientOriginalName(); if ($file->getClientOriginalName() != 'yield.xlsx') { return redirect()->route('user-uploads-list')->with('global', 'The yield file name should be "yield.xlsx". Please try again!'); } $upload_success = $file->move($destinationPath, $filename); if ($upload_success) { $result = Upload::uploadInputFile(Config::getUploadBaseDirectory() . 'uploads/' . $filename, 'yield', User::getSignedInUserId()); $upload->yield = $file->getClientOriginalName(); $upload->yield_at = date('Y-m-d H:i:s'); if (strpos($result, "NOT OK") !== false) { $pre_state_arr[3] = 0; } else { $pre_state_arr[3] = 1; } $state = $pre_state_arr[0]; for ($i = 1; $i < count($pre_state_arr); $i++) { $state .= '-' . $pre_state_arr[$i]; } $upload->state = $state; $upload->save(); if (strpos($result, "NOT OK") !== false) { return redirect()->route('user-uploads-list')->with('global', "The crop yield file cannot be uploaded to HS server. Please try again!"); } } else { return redirect()->route('user-uploads-list')->with('global', 'The crop yield file cannot be uploaded. Please try again!'); } return redirect()->route('user-uploads-list')->with('global', 'The crop yield file has been successfully uploaded!'); } if ($request->get('climate_model') != '') { if ($request->get('climate_model') == 'SelfSuppliedStation') { if ($request->file('weather_data')) { $file = $request->file('weather_data'); } else { return redirect()->route('user-uploads-list')->with('global', 'Please attach weather data file!'); } } if ($request->get('climate_model') == 'SelfSuppliedStation' && $file->getClientOriginalName() != 'WeatherData.xlsx') { return redirect()->route('user-uploads-list')->with('global', 'The weather data file name should be "WeatherData.xlsx". Please try again!'); } $file1 = fopen("uploads/" . User::getSignedInUserId() . "\$" . "IC_ClimIn.txt", "w+") or exit("Unable to open txt file!"); $climateModels = Upload::getClimateModels(); $climate_model_value = ''; foreach ($climateModels as $cm) { if ($cm == $request->get('climate_model')) { fwrite($file1, $cm . "\t\t1\n"); $climate_model_value = $cm; } else { fwrite($file1, $cm . "\t\t0\n"); } } fclose($file1); $result = Upload::uploadInputFile(Config::getUploadBaseDirectory() . 'uploads/' . User::getSignedInUserId() . "\$" . "IC_ClimIn.txt", 'climate_model', User::getSignedInUserId()); $upload->climate_model = $climate_model_value; $upload->climate_model_at = date('Y-m-d H:i:s'); if (strpos($result, "NOT OK") !== false) { $pre_state_arr[4] = 0; } else { $pre_state_arr[4] = 1; } $state = $pre_state_arr[0]; for ($i = 1; $i < count($pre_state_arr); $i++) { $state .= '-' . $pre_state_arr[$i]; } $upload->state = $state; $upload->save(); if (strpos($result, "NOT OK") !== false) { return redirect()->route('user-uploads-list')->with('global', "The climate model file cannot be uploaded to HS server. Please try again!"); } if ($request->get('climate_model') == 'SelfSuppliedStation') { $filename = User::getSignedInUserId() . '$' . $file->getClientOriginalName(); $upload_success = $file->move($destinationPath, $filename); if ($upload_success) { $result = Upload::uploadInputFile(Config::getUploadBaseDirectory() . 'uploads/' . $filename, 'weather_data', User::getSignedInUserId()); $upload->weather_data = $file->getClientOriginalName(); $upload->weather_data_at = date('Y-m-d H:i:s'); if (strpos($result, "NOT OK") !== false) { $pre_state_arr[5] = 0; } else { $pre_state_arr[5] = 1; } $state = $pre_state_arr[0]; for ($i = 1; $i < count($pre_state_arr); $i++) { $state .= '-' . $pre_state_arr[$i]; } $upload->state = $state; $upload->save(); if (strpos($result, "NOT OK") !== false) { return redirect()->route('user-uploads-list')->with('global', "The weather data file cannot be uploaded to HS server. Please try again!"); } } else { return redirect()->route('user-uploads-list')->with('global', 'The weather data file cannot be uploaded. Please try again!'); } } return redirect()->route('user-uploads-list')->with('global', 'Climate Model has been successfully uploaded!'); } if ($request->get('model') != '' && $request->file('kml')) { $file = $request->file('kml'); if ($request->get('model') == 'Spatial Data') { if (substr($file->getClientOriginalName(), -4) != '.kml') { return redirect()->route('user-uploads-list')->with('global', 'The file has to be ".kml" file. Please try again!'); } } else { if ($request->get('model') == 'Tabular Data') { if (substr($file->getClientOriginalName(), -5) != '.xlsx') { return redirect()->route('user-uploads-list')->with('global', 'The Field Data has to be provided in ".xlsx" Format.'); } } } $file1 = fopen("uploads/" . User::getSignedInUserId() . "\$" . "ModelType.txt", "w+") or exit("Unable to open txt file!"); $models = Upload::getModels(); $model_value = ''; foreach ($models as $m) { if ($m == $request->get('model')) { fwrite($file1, $m . "\t\t1\n"); $model_value = $m; } else { fwrite($file1, $m . "\t\t0\n"); } } fclose($file1); $filename = User::getSignedInUserId() . '$' . $file->getClientOriginalName(); $upload_success = $file->move($destinationPath, $filename); if ($upload_success) { $result1 = Upload::uploadInputFile(Config::getUploadBaseDirectory() . 'uploads/' . User::getSignedInUserId() . "\$" . "ModelType.txt", 'model', User::getSignedInUserId()); $result2 = Upload::uploadInputFile(Config::getUploadBaseDirectory() . 'uploads/' . $filename, 'kml', User::getSignedInUserId()); if (strpos($result2, 'MODEL ALREADY RUNNING') !== false) { return redirect()->route('user-uploads-list')->with('global', "The model is in progress. Please wait!"); } $upload->model = $model_value; $upload->model_at = date('Y-m-d H:i:s'); $upload->kml = $file->getClientOriginalName(); $upload->kml_at = date('Y-m-d H:i:s'); $upload->output = ''; $upload->output_at = ''; if (strpos($result1, "NOT OK") !== false) { $pre_state_arr[6] = 0; } else { $pre_state_arr[6] = 1; } if (strpos($result2, "NOT OK") !== false) { $pre_state_arr[7] = 0; } else { $pre_state_arr[7] = 1; } $pre_state_arr[8] = 0; $state = $pre_state_arr[0]; for ($i = 1; $i < count($pre_state_arr); $i++) { $state .= '-' . $pre_state_arr[$i]; } $upload->state = $state; $upload->save(); if (strpos($result1, "NOT OK") !== false) { return redirect()->route('user-uploads-list')->with('global', "The model type file cannot be uploaded to HS server. Please try again!"); } if (strpos($result2, "NOT OK") !== false) { return redirect()->route('user-uploads-list')->with('global', "The kml file cannot be uploaded to HS server. Please try again!"); } } else { return redirect()->route('user-uploads-list')->with('global', 'The kml file cannot be uploaded. Please try again!'); } return redirect()->route('user-uploads-list')->with('global', 'Model Type has been successfully uploaded!'); } if ($request->get('climate_data_radio') != '') { if ($request->get('climate_data_radio') == 'Coordinates') { $validator = Validator::make($request->all(), array('minLat' => 'required|numeric|min:-90|max:90', 'minLng' => 'required|numeric|min:-180|max:180', 'maxLat' => 'required|numeric|min:-90|max:90', 'maxLng' => 'required|numeric|min:-180|max:180')); $validator->sometimes('minLat', 'email', function ($request) { return abs($request->get('minLat')) > abs($request->get('maxLat')); }); $validator->sometimes('minLng', 'email', function ($request) { return abs($request->get('minLng')) > abs($request->get('maxLng')); }); if ($validator->fails()) { return redirect()->route('user-climate-data')->withErrors($validator)->withInput(); } $file1 = fopen("uploads/" . User::getSignedInUserId() . "\$" . "CD_bBox.txt", "w+") or exit("Unable to open txt file!"); fwrite($file1, $request->get('minLat') . "\t" . $request->get('minLng') . "\t" . $request->get('maxLat') . "\t" . $request->get('maxLng')); fclose($file1); $result = Upload::uploadInputFile(Config::getUploadBaseDirectory() . 'uploads/' . User::getSignedInUserId() . "\$" . "CD_bBox.txt", 'climate_data', User::getSignedInUserId()); $upload->climate_data = 'bBox.txt'; $upload->climate_data_at = date('Y-m-d H:i:s'); if (strpos($result, "NOT OK") !== false) { $pre_state_arr[9] = 0; } else { $pre_state_arr[9] = 1; } $state = $pre_state_arr[0]; for ($i = 1; $i < count($pre_state_arr); $i++) { $state .= '-' . $pre_state_arr[$i]; } $upload->state = $state; $upload->save(); if (strpos($result, "NOT OK") !== false) { return redirect()->route('user-uploads-list')->with('global', "The climate data coordinates cannot be uploaded to HS server. Please try again!"); } return redirect()->route('user-climate-data')->with('global', 'The climate data coordinates has been successfully uploaded!'); } else { if ($request->file('climate_data')) { $file = $request->file('climate_data'); $filename = User::getSignedInUserId() . '$CD_' . $file->getClientOriginalName(); if (substr($file->getClientOriginalName(), -4) != '.kml') { return redirect()->route('user-climate-data')->with('global', 'The file has to be ".kml" file. Please try again!'); } $upload_success = $file->move($destinationPath, $filename); if ($upload_success) { $result = Upload::uploadInputFile(Config::getUploadBaseDirectory() . 'uploads/' . $filename, 'climate_data', User::getSignedInUserId()); $upload->climate_data = $file->getClientOriginalName(); $upload->climate_data_at = date('Y-m-d H:i:s'); if (strpos($result, "NOT OK") !== false) { $pre_state_arr[9] = 0; } else { $pre_state_arr[9] = 1; } $state = $pre_state_arr[0]; for ($i = 1; $i < count($pre_state_arr); $i++) { $state .= '-' . $pre_state_arr[$i]; } $upload->state = $state; $upload->save(); if (strpos($result, "NOT OK") !== false) { return redirect()->route('user-uploads-list')->with('global', "The climate data kml cannot be uploaded to HS server. Please try again!"); } } else { return redirect()->route('user-climate-data')->with('global', 'The climate data kml file cannot be uploaded. Please try again!'); } return redirect()->route('user-climate-data')->with('global', 'The climate data kml file has been successfully uploaded!'); } else { return redirect()->route('user-climate-data')->with('global', 'Please attach climate data kml file'); } } } //Logging::created('Water Level', array($upload_successful_for_the_last_two_weeks)); return redirect()->route('user-uploads-list')->with('global', 'Nothing has been uploaded'); //$upload_successful_for_the_last_two_weeks); }