feat(webstatement): tambahkan command untuk ekspor pernyataan rekening berdasarkan periode

- Menambahkan command baru `webstatement:export-period-statements`:
  - Mendukung opsi parameter `--account_number` dan `--period` untuk menentukan rekening dan periode ekspor.
  - Memproses data pernyataan rekening dengan memanggil fungsi `printStatementRekening` pada `WebstatementController`.
  - Menampilkan log proses, termasuk jumlah job ekspor yang berhasil diajukan dan pesan error jika terjadi.

- Memperbarui fungsi `printStatementRekening` di `WebstatementController`:
  - Menambahkan parameter input `$accountNumber` dan `$period` untuk mendukung multi-periode secara dinamis.
  - Menyesuaikan periode default ke bulan dan tahun saat ini jika parameter tidak disediakan.
  - Memvalidasi dan mengambil data saldo berdasarkan `account_number` dan `period`.

- Tujuan pembaruan ini:
  - Mendukung efisiensi proses ekspor data rekening dalam periode tertentu.
  - Memberikan fleksibilitas lebih dalam command-line operasi pengolahan data pernyataan.
  - Menyediakan feedback proses yang jelas kepada pengguna, baik sukses maupun error.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
This commit is contained in:
Daeng Deni Mardaeni
2025-06-04 15:20:14 +07:00
parent 701432a6e7
commit e5f3a67374
2 changed files with 60 additions and 10 deletions

View File

@@ -5,15 +5,9 @@
use App\Http\Controllers\Controller;
use Carbon\Carbon;
use Illuminate\Contracts\Bus\Dispatcher;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage;
use Modules\Webstatement\Jobs\ExportStatementJob;
use Modules\Webstatement\Models\AccountBalance;
use Modules\Webstatement\Models\StmtEntry;
use Modules\Webstatement\Models\TempFundsTransfer;
use Modules\Webstatement\Models\TempStmtNarrFormat;
use Modules\Webstatement\Models\TempStmtNarrParam;
use Modules\Webstatement\Jobs\ExportStatementPeriodJob;
class WebstatementController extends Controller
{
@@ -142,9 +136,8 @@
}
function printStatementRekening() {
$accountNumber = '1234567890';
$period = '202505';
function printStatementRekening($accountNumber, $period = null) {
$period = $period ?? date('Ym');
$balance = AccountBalance::where('account_number', $accountNumber)
->when($period === '202505', function($query) {
return $query->where('period', '>=', '20250512')