From 154fb642b1acc10b7fee21219c620f4d121f149a Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Wed, 29 Jan 2025 19:43:16 +0700 Subject: [PATCH] feat(jobs): tambahkan job untuk memproses data format narasi - Menambahkan kelas ProcessStmtNarrFormatDataJob untuk memproses file CSV. - Menambahkan model TempStmtNarrFormat untuk menyimpan data format narasi. - Membuat migrasi untuk tabel temp_stmt_narr_format dengan atribut yang diperlukan. --- app/Jobs/ProcessStmtNarrFormatDataJob.php | 67 +++++++++++++++++++ app/Models/TempStmtNarrFormat.php | 24 +++++++ ...956_create_temp_stmt_narr_format_table.php | 35 ++++++++++ 3 files changed, 126 insertions(+) create mode 100644 app/Jobs/ProcessStmtNarrFormatDataJob.php create mode 100644 app/Models/TempStmtNarrFormat.php create mode 100644 database/migrations/2025_01_28_053956_create_temp_stmt_narr_format_table.php diff --git a/app/Jobs/ProcessStmtNarrFormatDataJob.php b/app/Jobs/ProcessStmtNarrFormatDataJob.php new file mode 100644 index 0000000..b8885a3 --- /dev/null +++ b/app/Jobs/ProcessStmtNarrFormatDataJob.php @@ -0,0 +1,67 @@ +getFillable(); + while (($row = fgetcsv($handle, 0, ";")) !== false) { + if (count($headers) === count($row)) { + $data = array_combine($headers, $row); + try { + TempStmtNarrFormat::updateOrCreate(['_id' => $data['_id']], $data); + } catch (Exception $e) { + Log::error('Error processing stmt narr format: ' . $e->getMessage()); + } + } + } + fclose($handle); + } else { + throw new Exception("Unable to open file: {$filePath}"); + } + } catch (Exception $e) { + Log::error('Error in ProcessStmtNarrFormatDataJob: ' . $e->getMessage()); + throw $e; + } + } + } diff --git a/app/Models/TempStmtNarrFormat.php b/app/Models/TempStmtNarrFormat.php new file mode 100644 index 0000000..8fbeec8 --- /dev/null +++ b/app/Models/TempStmtNarrFormat.php @@ -0,0 +1,24 @@ +id(); + foreach ($fieldsArray as $field) { + $field = trim($field); + $table->string($field)->nullable(); + } + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('temp_stmt_narr_format'); + } +};