- Memperbarui pemrosesan parameter pada `ProcessDailyMigration`:
- Mengubah logika pengiriman parameter `process_parameter` ke `MigrasiController`:
- Sebelumnya mengirimkan parameter dalam bentuk array.
- Sekarang parameter dikirimkan langsung tanpa pembungkusan array.
- Memastikan parameter diterima dan diproses sesuai dengan perubahan pada controller.
- Memodifikasi fungsi `index` pada `MigrasiController`:
- Menambahkan parameter opsional `$processParameter` pada fungsi.
- Mengganti penggunaan `request('process_parameter')` dengan langsung memeriksa `$processParameter`.
- Menghilangkan dependensi langsung terhadap input request untuk meningkatkan fleksibilitas pemrosesan.
- Tujuan pembaruan ini:
- Menyederhanakan struktur parameter yang digunakan dalam pemrosesan migrasi harian.
- Mengurangi gangguan yang mungkin terjadi akibat ketergantungan terhadap input langsung dari request.
- Memastikan konsistensi dan kompatibilitas pengiriman parameter dari command ke controller.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Menghapus opsi `--date` dan `--type` dari command `webstatement:process-daily-migration` dan menggantinya dengan opsi baru `--process_parameter`.
- Memperbarui pesan log pada eksekusi command untuk mencatat nilai `process_parameter` sebagai pengganti parameter `date` dan `type`.
- Memperbarui logika pengiriman parameter ke controller:
- Sebelumnya mengirimkan `date` dan `type`, kini diganti menjadi `process_parameter`.
- Tujuan perubahan ini:
- Menyederhanakan pengaturan parameter untuk command migrasi harian.
- Memberikan fleksibilitas lebih dalam penanganan parameter proses migrasi.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Menambahkan opsi baru `--process_parameter` pada command `webstatement:process-daily-migration`.
- Memungkinkan pengguna untuk menentukan parameter proses migrasi seperti tanggal (`date`) dan tipe (`type`).
- Menambahkan logging tambahan untuk mencatat nilai parameter yang diproviding pengguna.
- Memperbarui logika command dan controller:
- Mengirimkan parameter `date` dan `type` ke controller untuk mendukung proses migrasi dengan parameter yang lebih spesifik.
- Menambahkan proses migrasi baru untuk data sektor:
- Membuat job `ProcessSectorDataJob` yang bertugas membaca file CSV terkait sektor dari SFTP.
- Melakukan validasi keberadaan file, memproses tiap baris data, dan menyimpannya ke database jika valid.
- Logging untuk setiap aktivitas proses sektor, termasuk error dan kesuksesan per baris.
- Membuat model `Sector` untuk mendukung operasi database data sektor:
- Menambah atribut dapat diolah (`fillable`) seperti `sector_code`, `co_code`, `description`, dll.
- Menambahkan cast `date_time` ke tipe datetime.
- Menambahkan migrasi baru untuk tabel `sectors`:
- Tabel memiliki kolom seperti `id`, `date_time`, `description`, `curr_no`, `co_code`, dan `sector_code`.
- Meningkatkan pendukung penyimpanan data sektor untuk migrasi masa depan.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Menambahkan command baru `webstatement:unlock-pdf` untuk membuka file PDF yang dilindungi password:
- Dapat menerima parameter `directory` untuk menetapkan direktori file sumber.
- Opsi `--password` untuk menentukan password yang digunakan dalam proses unlock, dengan default `123456`.
- Menampilkan log proses unlock PDF dengan pesan sukses atau error.
- Membuat job baru `UnlockPdfJob` untuk menangani proses unlock PDF secara asinkron:
- Memindai direktori utama berdasarkan struktur folder (tahun dan ID).
- Membuka proteksi file PDF dengan menggunakan library `qpdf`.
- Menghasilkan file PDF yang telah didekripsi di direktori yang sama dengan nama file ekstensi `.dec.pdf`.
- Melakukan logging untuk setiap file yang berhasil diproses atau ketika terjadi error.
- Menghindari duplikasi dengan memeriksa keberadaan file decrypted sebelumnya.
- Memperbarui `WebstatementServiceProvider`:
- Mendaftarkan command `UnlockPdf` untuk digunakan dalam aplikasi.
- Menambah jadwal otomatisasi harian pada pukul 09:30 untuk menjalankan command `webstatement:unlock-pdf`.
- Logging hasil proses executables ke file `logs/unlock-pdf.log`.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Menambahkan command baru `webstatement:convert-html-to-pdf` untuk melakukan konversi file HTML menjadi PDF secara otomatis:
- Dapat menerima parameter `directory` untuk menentukan direktori sumber file HTML.
- Menampilkan pesan sukses atau error selama proses berjalan.
- Menggunakan konsep asinkron melalui job untuk meningkatkan efisiensi.
- Membuat job baru `ConvertHtmlToPdfJob` untuk menangani proses konversi file:
- Memproses folder yang berisi file HTML berdasarkan struktur direktori tertentu.
- Mengambil semua file HTML dalam suatu folder, kemudian mengonversinya menjadi file PDF.
- Menggunakan library `Barryvdh\DomPDF\Facade\Pdf` untuk konversi format HTML ke PDF.
- Melakukan logging untuk setiap proses berhasil atau ketika terjadi error.
- Memastikan suksesnya konversi ke direktori yang sama dengan file HTML.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Menambahkan command baru `webstatement:combine-pdf` melalui `CombinePdf` untuk menjalankan proses penggabungan file PDF.
- Proses ini mencakup penggabungan file PDF dari folder r14 dan r23 berdasarkan periode tertentu.
- File PDF yang dihasilkan juga dilindungi dengan password berbasis nomor rekening.
- Membuat controller `CombinePdfController` dengan fungsi utama `combinePdfs` untuk mengontrol alur penggabungan file PDF:
- Mendapatkan daftar akun yang relevan.
- Mengecek file dari folder r14 dan r23 untuk setiap akun.
- Melakukan logging saat file tidak ditemukan atau jika terdapat error dalam proses.
- Mendaftarkan job `CombinePdfJob` untuk memproses file secara async.
- Menambahkan job baru `CombinePdfJob`:
- Menggunakan library `PDFMerger` untuk menggabungkan file.
- Terapkan proteksi password menggunakan library `PDFPasswordProtect`.
- Memastikan direktori output dibuat jika belum ada.
- Melakukan logging saat proses berhasil maupun saat terjadi error.
- Memperbarui `WebstatementServiceProvider`:
- Mendaftarkan command baru ke dalam provider.
- Menambahkan penjadwalan otomatis untuk menjalankan perintah `webstatement:combine-pdf` setiap hari pada pukul 09:30.
- Logging hasil eksekusi ke file log `logs/combine-pdf.log`.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Menambahkan dua console command baru:
1. `webstatement:process-daily-migration` untuk memproses migrasi data harian.
2. `webstatement:export-statements` untuk mengekspor laporan harian.
- Mendefinisikan command `webstatement:process-daily-migration`:
- Menggunakan `MigrasiController` untuk memproses data migrasi.
- Menangkap error selama proses migrasi dan memberikan output informasi status.
- Mendefinisikan command `webstatement:export-statements`:
- Menggunakan `WebstatementController` untuk memproses ekspor laporan harian.
- Memberikan informasi terkait jumlah job ekspor yang berhasil di-queue dan menangkap error selama proses.
- Menambahkan schedule untuk kedua command:
1. `webstatement:process-daily-migration` dijalankan setiap hari pukul 09:00 dan log aktivitas disimpan di `daily-migration.log`.
2. `webstatement:export-statements` dijalankan setiap hari pukul 09:30 dan log aktivitas disimpan di `statement-export.log`.
- Melengkapi `WebstatementServiceProvider` dengan pendaftaran command dan konfigurasi jadwal baru.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Menambahkan command `GenerateBiayaKartuCsvCommand` ke dalam ServiceProvider.
- Memperbaiki typo pada pemanggilan job `GenerateBiayaKartuCsvJob`.
- Menambahkan konfigurasi scheduler untuk `GenerateBiayaKartuCsvCommand` dengan nilai default dari file `.env`.
- Menyesuaikan log output file scheduler pada perintah yang baru.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Tambahkan `GenerateBiayaKartuCsvCommand` untuk membuat file CSV biaya kartu ATM melalui console command.
- Implementasikan job `GenerateBiayaKartuCsvJob` sebagai pengganti proses manual pembuatan CSV di controller.
- Hapus logika pembuatan CSV manual di `BiayaKartuController`.
- Update scheduler untuk menjalankan command baru (`webstatement:generate-biaya-kartu-csv`) setiap tanggal 15 pukul 00:00.
- Perbarui waktu schedule command `webstatement:generate-biaya-kartu` menjadi pukul 22:00 setiap tanggal 14.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Menambahkan `GenerateBiayakartuCommand` untuk memproses biaya kartu ATM.
- Mendaftarkan command baru di `WebstatementServiceProvider`.
- Menjadwalkan command `webstatement:generate-biaya-kartu` pada tanggal 14 setiap bulan pukul 18:00.
- Menambahkan log output untuk scheduler ke file `biaya-kartu-scheduler.log`.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>