Compare commits

...

2 Commits

Author SHA1 Message Date
Daeng Deni Mardaeni
f37707b2f6 Merge remote-tracking branch 'composer/master'
# Conflicts:
#	database/migrations/2025_07_21_033413_create_stmt_entry_detail_table.php
2025-07-21 11:22:41 +07:00
Daeng Deni Mardaeni
ad9780ccd6 feat(webstatement): tambah stmt_entry_detail migrasi, model, dan job processing
Menambahkan fitur pengelolaan data stmt_entry_detail untuk integrasi transaksi dengan detail yang lebih lengkap.

Perubahan yang dilakukan:

- Membuat migrasi create_stmt_entry_detail_table dengan struktur field sesuai kebutuhan bisnis
- Menambahkan index pada kolom penting untuk meningkatkan performa query

- Membuat model StmtEntryDetail dengan relasi ke:
  - Account
  - TempFundsTransfer
  - TempTransaction
  - Teller
  - DataCapture
  - TempArrangement
- Mengimplementasikan $fillable dan $casts sesuai struktur tabel
- Menambahkan relasi untuk memudahkan integrasi antar modul

- Membuat job ProcessStmtEntryDetailDataJob untuk memproses file CSV dengan batch processing
- Mengimplementasikan chunking untuk menangani file besar secara efisien
- Membersihkan trans_reference dari karakter tidak valid sebelum penyimpanan
- Menggunakan updateOrCreate untuk mencegah duplikasi primary key
- Menggunakan database transaction untuk menjaga konsistensi data
- Menambahkan logging komprehensif untuk monitoring dan debugging
- Mengimplementasikan error handling yang robust untuk menghindari job failure tanpa informasi
- Memastikan penggunaan resource memory tetap optimal saat memproses data besar

- Menambahkan case baru di MigrasiController untuk memproses stmt_entry_detail
- Konsisten dengan pattern migrasi data yang sudah ada di sistem

Tujuan perubahan:

- Menyediakan sistem import dan pengolahan data stmt_entry_detail dengan proses yang aman dan efisien
- Memudahkan integrasi transaksi dengan detail tambahan di modul Webstatement
- Menjamin integritas data dengan penggunaan transaction, logging, dan error handling yang komprehensif
2025-07-21 11:21:42 +07:00

View File

@@ -4,25 +4,50 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
class CreateStmtEntryDetailTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up(): void
public function up()
{
Schema::create('stmt_entry_detail', function (Blueprint $table) {
$table->id();
$table->string('stmt_entry_id')->nullable();
$table->string('account_number')->nullable();
$table->string('company_code')->nullable();
$table->string('amount_lcy')->nullable();
$table->string('transaction_code')->nullable();
$table->string('narrative')->nullable();
$table->string('product_category')->nullable();
$table->string('value_date')->nullable();
$table->string('amount_fcy')->nullable();
$table->string('exchange_rate')->nullable();
$table->string('trans_reference')->nullable();
$table->string('booking_date')->nullable();
$table->string('stmt_no')->nullable();
$table->string('date_time')->nullable();
$table->string('currency')->nullable();
$table->string('crf_type')->nullable();
$table->string('consol_key')->nullable();
$table->timestamps();
// Index untuk performa query
$table->index('stmt_entry_id');
$table->index('account_number');
$table->index('trans_reference');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down(): void
public function down()
{
Schema::dropIfExists('stmt_entry_detail');
}
};
}