From 76ebdce2ea5813c9167a716208c191f594893c00 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 29 May 2025 19:40:35 +0700 Subject: [PATCH] fix(webstatement): ubah metode upsert menjadi updateOrCreate pada ProcessStmtEntryDataJob - Refactor proses penyimpanan data pada `ProcessStmtEntryDataJob`: - Mengganti metode `StmtEntry::upsert` dengan `StmtEntry::updateOrCreate` untuk setiap entri dalam batch. - Metode `updateOrCreate` memungkinkan pembaruan data atau penyisipan data baru berdasarkan `stmt_entry_id` sebagai kunci unik. - Meningkatkan fleksibilitas pembaruan data dengan menggunakan loop per entry dibandingkan bulk operation, sehingga lebih kompatibel untuk kasus tertentu. - Tambahkan file migrasi baru untuk penyesuaian tabel `stmt_entry`: - File migrasi telah dibuat sebagai dasar, namun implementasi detail dalam tabel masih kosong. - File ini akan digunakan untuk perubahan skema di masa mendatang sesuai kebutuhan pengembangan. Signed-off-by: Daeng Deni Mardaeni --- app/Jobs/ProcessStmtEntryDataJob.php | 12 ++++---- ..._unique_constraint_to_stmt_entry_table.php | 28 +++++++++++++++++++ 2 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 database/migrations/2025_05_29_123622_add_unique_constraint_to_stmt_entry_table.php diff --git a/app/Jobs/ProcessStmtEntryDataJob.php b/app/Jobs/ProcessStmtEntryDataJob.php index 9970186..a9d5d63 100644 --- a/app/Jobs/ProcessStmtEntryDataJob.php +++ b/app/Jobs/ProcessStmtEntryDataJob.php @@ -191,12 +191,12 @@ { try { if (!empty($this->entryBatch)) { - // Bulk insert/update statement entries - StmtEntry::upsert( - $this->entryBatch, - ['stmt_entry_id'], // Unique key - array_diff((new StmtEntry())->getFillable(), ['stmt_entry_id']) // Update columns - ); + foreach ($this->entryBatch as $entry) { + StmtEntry::updateOrCreate( + ['stmt_entry_id' => $entry['stmt_entry_id']], // Find by this key + $entry // Update or create with these values + ); + } // Reset entry batch after processing $this->entryBatch = []; diff --git a/database/migrations/2025_05_29_123622_add_unique_constraint_to_stmt_entry_table.php b/database/migrations/2025_05_29_123622_add_unique_constraint_to_stmt_entry_table.php new file mode 100644 index 0000000..48ac884 --- /dev/null +++ b/database/migrations/2025_05_29_123622_add_unique_constraint_to_stmt_entry_table.php @@ -0,0 +1,28 @@ +