input('table_name', null); $permissionMapping = [ 'v_t_logs' => 'vt_log_upload_permission', 'radiographic_tests' => 'rt_log_upload_permission', 'p_t_logs' => 'pt_log_upload_permission', 'magnetic_tests' => 'mt_log_upload_permission', 'p_w_h_t_s' => 'pwht_log_upload_permission', 'hardness_tests' => 'ht_log_upload_permission', 'p_m_i_tests' => 'pmi_log_upload_permission', 'ultrasonic_tests' => 'ut_log_upload_permission', 'ferrits' => 'ferrite_log_upload_permission', 'incoming_controls' => 'incoming_control_upload_permission', ]; if ($tableName && isset($permissionMapping[$tableName])) { $permissionKey = $permissionMapping[$tableName]; $allowedLevels = j(setting($permissionKey)); $userLevel = Auth::user()->level ?? null; if (is_array($allowedLevels) && !in_array($userLevel, $allowedLevels)) { http_response_code(403); die(json_encode([ 'status' => 'error', 'message' => 'You do not have permission to upload files for this module.' ])); } } /* $post = $request->all(); $folder = post("folder"); $ext = strtolower($request->file->getClientOriginalExtension()); $name = $request->file->getClientOriginalName(); $name = str_replace(".PDF", ".pdf", $name); $path = $request->file->storeAs($folder, $name); $path = $request->file->storeAs($folder, $name); $onlyFileName = str_replace('.' . $ext, "", $name); $onlyFileName = strtoupper($onlyFileName); */ //$onlyFileName = explode(" ", $onlyFileName)[0]; $post = $request->all(); $folder = $request->input("folder"); $ext = strtolower($request->file('file')->getClientOriginalExtension()); $name = $request->file('file')->getClientOriginalName(); $name = str_replace(".PDF", ".pdf", $name); $onlyFileName = str_replace('.' . $ext, "", $name); $onlyFileName = strtoupper($onlyFileName); // Define the path $cleanFolder = trim($folder, '/'); $fullPath = $cleanFolder . '/' . $name; // Store the file using Storage::put // Check for existing files that match the base name (ignoring Rev suffixes) $uploadedBaseName = pathinfo($name, PATHINFO_FILENAME); // Remove " Rev" suffix to get the root name (e.g. "DocName Rev4" -> "DocName") $uploadedRootName = preg_replace('/\sRev.*$/i', '', $uploadedBaseName); // Get all files in the directory $allFiles = Storage::files($folder); foreach ($allFiles as $existingFile) { $existingFileName = basename($existingFile); $existingBaseName = pathinfo($existingFileName, PATHINFO_FILENAME); $existingRootName = preg_replace('/\sRev.*$/i', '', $existingBaseName); // If the root names match, archive the existing file if ($existingRootName === $uploadedRootName) { // Eski dosyayı arşivle $currentDateTime = Carbon::now()->format('Y_m_d_H_i_s'); $fileExtension = pathinfo($existingFileName, PATHINFO_EXTENSION); // Archive klasör yapısı: Archive/{original_folder}/{file_name_folder}/{file_name}_{datetime}.{ext} $archiveFolder = 'Archive/' . $folder . '/' . $existingRootName; $archivedFileName = $existingBaseName . '_' . $currentDateTime . '.' . $fileExtension; $archivedPath = $archiveFolder . '/' . $archivedFileName; // Archive klasörünü oluştur if (!Storage::exists($archiveFolder)) { Storage::makeDirectory($archiveFolder); } // Eski dosyayı arşive taşı Storage::move($existingFile, $archivedPath); // Document history tablosuna kayıt ekle DocumentHistory::create([ 'file_name' => $existingFileName, 'file_path' => $archivedPath, 'user_name' => Auth::user()->name ?? 'System', 'action' => 'Archive', 'file_size' => Storage::exists($archivedPath) ? round(Storage::size($archivedPath) / 1024, 2) . ' KB' : 'Unknown', 'moved_from' => $existingFile, 'moved_to' => $archivedPath, 'action_date' => Carbon::now(), 'table_name' => $request->input('table_name', null), 'column_name' => $request->input('column_name', null), 'row_id' => $request->input('row_id', null), 'notes' => 'File replaced with new version and archived' ]); } } Storage::put($folder . '/' . $name, file_get_contents($request->file('file')->getRealPath())); // Yeni dosya upload edildiğinde history kaydı ekle DocumentHistory::create([ 'file_name' => $name, 'file_path' => $folder . '/' . $name, 'user_name' => Auth::user()->name ?? 'System', 'action' => 'Upload', 'file_size' => $request->file('file')->getSize() ? round($request->file('file')->getSize() / 1024, 2) . ' KB' : 'Unknown', 'moved_from' => 'Local', 'moved_to' => $folder, 'action_date' => Carbon::now(), 'table_name' => $request->input('table_name', null), 'column_name' => $request->input('column_name', null), 'row_id' => $request->input('row_id', null), 'notes' => 'New file uploaded to server' ]); if(postisset("table_name")) { $tableName = post("table_name"); if($tableName == "weld_logs") { $lineNumber = $name; $lineNumber = str_replace(".pdf", "", $lineNumber); dump($lineNumber); ?> @include("cron.pdf-db-sync", ["lineNumber" => $lineNumber]) @include("cron.document_revisions-pdf-db-document-revisions-sync", [ "lineNumber" => $lineNumber, ]) @include("cron.document_revisions-pdf-db-document-revisions-sync", [ "lineNumber" => $lineNumber, ]) @include("cron.incoming_control_paints-pdf-db-incoming-control-sync", [ "lineNumber" => $lineNumber, ]) @include("cron.pdf-db-ndt-sync", [ "logTable" => $logTable, "logName" => $logName, "fileName" => $fileName, ]) @include("cron.pdf-db-incoming-control-sync", [ "fileName" => $onlyFileName, ]) @include("cron.pdf-db-naks-technology-sync", [ "fileName" => $onlyFileName, ]) @include("cron.pdf-db-naks-consumables-sync", [ "fileName" => $onlyFileName, ]) @include("cron.pdf-db-support-sync", [ "fileName" => $onlyFileName ]) @include("cron.pdf-db-itp-sync", [ "fileName" => $onlyFileName ]) @include("cron.pdf-db-document-procedure-sync", [ "fileName" => $onlyFileName ]) @include("cron.pdf-db-calibration-logs-sync", [ "fileName" => $onlyFileName, ]) @include("cron.pdf-db-rfi-sync", [ "folder" => $folder, "fileName" => $name, ]) $area, 'transmittal_document' => post("transmittal_document"), 'publish_date' => post("publish_date"), 'zone' => post("zone"), 'subcontructer' => post("subcontractor"), 'drawing_no' => $drawingNo, 'revision_no' => $revisionNo ]; dump($documentRevisionData); DocumentRevision::firstOrCreate($documentRevisionData); dump($documentRevisionData); } } echo "storage/documents/" . $fullPath; $return = null;