From 90780aec4a770edcf618ec0014ba1b00a6c9a0f8 Mon Sep 17 00:00:00 2001 From: wahyun Date: Tue, 2 Apr 2024 10:37:24 +0700 Subject: [PATCH] update uploadTmpImport --- app/Http/Controllers/ActivityController.php | 29 ++++++++++++++++----- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/ActivityController.php b/app/Http/Controllers/ActivityController.php index 55e0444..a804f8a 100755 --- a/app/Http/Controllers/ActivityController.php +++ b/app/Http/Controllers/ActivityController.php @@ -21,6 +21,7 @@ use App\Models\ProductTransaction; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; use App\Helpers\MasterFunctionsHelper; +use Carbon\Carbon; class ActivityController extends Controller { @@ -1126,33 +1127,49 @@ class ActivityController extends Controller public function uploadTmpImport(Request $request) { + DB::beginTransaction(); if ($request->hasFile('dokumen')) { $document = $request->file('dokumen'); $gantt_id = $request->gantt_id; - $name = $document->getClientOriginalName(); + $timeNow = Carbon::now(); + + $originalFilename = $document->getClientOriginalName(); + $extension = pathinfo($originalFilename, PATHINFO_EXTENSION); + $filename = pathinfo($originalFilename, PATHINFO_FILENAME); + $name = $filename . '_' . $timeNow->format('d-m-y-His') . '.' . $extension; + // Limited Storage $company = Company::where('company_name', $request->company_name)->first(); if($company) { $destinationPath = $this->setCustomeDirectoryUpload($company['company_name']); - $getLimitStorage = $this->setLimitsStorage($company, $document, $name, $destinationPath['pathTmpImport'], $destinationPath); + $getLimitStorage = $this->setLimitsStorage($company, $document, $destinationPath['pathTmpImport'], $destinationPath); } - if (isset($getLimitStorage) && $getLimitStorage['resultMove']) { + if (isset($getLimitStorage)) { + if($getLimitStorage === false) { + DB::rollBack(); + return response()->json(['status' => 'failed', 'message' => 'Limited storage maximum!', 'code' => 500], 500); + } + $data = [ 'gantt_id' => (int) $gantt_id, 'file' => $name, 'type_dokumen' => $request->type_dokumen ]; - $getLimitStorage['resultMove'] = TmpImport::create($data); + $result = TmpImport::create($data); - if (!$getLimitStorage['resultMove']) { - unlink($this->pathTmpImport . $name); + if (!$document->move($destinationPath['pathTmpImport'], $name) && $result) { + unlink($destinationPath['pathTmpImport'].$name); + DB::rollBack(); return response()->json(['status' => 'failed', 'message' => 'Upload failed!', 'code' => 500], 500); } + DB::commit(); return response()->json(['status' => 'success', 'message' => 'Upload successful!', 'code' => 200], 200); } + DB::rollBack(); return response()->json(['status' => 'failed', 'message' => 'Upload failed!', 'code' => 500], 500); } + DB::rollBack(); return response()->json(['status' => 'failed', 'message' => 'File is required!', 'code' => 400], 400); }