From ea234014739e8ec0e40af7986bf7d3476ff8f66e Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Tue, 9 Sep 2025 11:16:48 +0700 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(statement):=20perbaikan=20fitu?= =?UTF-8?q?r=20statement=20dan=20penambahan=20akses=20sentra=20operasi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Memberikan akses penuh fitur multi-branch untuk role `administrator` dan `sentra_operasi`. - Menambahkan akun untuk client **SILOT** dalam daftar monitoring. - Menonaktifkan validasi duplikasi statement di `PrintStatementRequest`. - Memindahkan struktur penyimpanan file dari `statements/{client}` menjadi `partners/{client}`. - Menambahkan pengurutan hasil berdasarkan `branch_code` dan `account_number` untuk laporan. - Memperbaiki tampilan dropdown branch dan menyembunyikan field `end_date` yang tidak relevan. - Menghapus opsi `NO.PRINT` dari dropdown `stmt_sent_type` untuk penyederhanaan UI. - Peningkatan UI dan struktur direktori untuk mempermudah pembacaan dan pengelolaan statement. --- app/Http/Controllers/PrintStatementController.php | 8 ++++++-- app/Http/Controllers/WebstatementController.php | 5 ++++- app/Http/Requests/PrintStatementRequest.php | 4 ++-- app/Jobs/ExportStatementJob.php | 4 ++-- app/Jobs/SendStatementEmailJob.php | 2 ++ 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/PrintStatementController.php b/app/Http/Controllers/PrintStatementController.php index 7242949..0a8b0bd 100644 --- a/app/Http/Controllers/PrintStatementController.php +++ b/app/Http/Controllers/PrintStatementController.php @@ -31,7 +31,11 @@ ini_set('max_execution_time', 300000); ->get(); $branch = Branch::find(Auth::user()->branch_id); - $multiBranch = session('MULTI_BRANCH') ?? false; + + $multiBranch = false; + if(Auth::user()->hasRole(['administrator','sentra_operasi'])){ + $multiBranch = session('MULTI_BRANCH') ?? false; + } return view('webstatement::statements.index', compact('branches', 'branch', 'multiBranch')); } @@ -512,7 +516,7 @@ ini_set('max_execution_time', 300000); $query = PrintStatementLog::query(); $query->whereNotNull('user_id'); - if (!Auth::user()->role === 'administrator') { + if (!Auth::user()->hasRole(['administrator','sentra_operasi'])) { $query->where(function($q) { $q->where('user_id', Auth::id()) ->orWhere('branch_code', Auth::user()->branch->code); diff --git a/app/Http/Controllers/WebstatementController.php b/app/Http/Controllers/WebstatementController.php index a345a24..06c745f 100644 --- a/app/Http/Controllers/WebstatementController.php +++ b/app/Http/Controllers/WebstatementController.php @@ -140,7 +140,10 @@ class WebstatementController extends Controller ], "MONETA"=> [ "1085667890" - ] + ], + "SILOT" => [ + "1083972676" + ] ]; } diff --git a/app/Http/Requests/PrintStatementRequest.php b/app/Http/Requests/PrintStatementRequest.php index aa087e6..9ce4969 100644 --- a/app/Http/Requests/PrintStatementRequest.php +++ b/app/Http/Requests/PrintStatementRequest.php @@ -62,7 +62,7 @@ class PrintStatementRequest extends FormRequest // Hanya cek duplikasi jika account_number ada if (!empty($this->input('account_number'))) { $query = Statement::where('account_number', $this->input('account_number')) - ->where('authorization_status', '!=', 'rejected') + //->where('authorization_status', '!=', 'rejected') ->where(function($query) { $query->where('is_available', true) ->orWhere('is_generated', true); @@ -84,7 +84,7 @@ class PrintStatementRequest extends FormRequest } if ($query->exists()) { - $fail('A statement request with this account number and period already exists.'); + //$fail('A statement request with this account number and period already exists.'); } } } diff --git a/app/Jobs/ExportStatementJob.php b/app/Jobs/ExportStatementJob.php index 15cc849..bbbf8a5 100644 --- a/app/Jobs/ExportStatementJob.php +++ b/app/Jobs/ExportStatementJob.php @@ -361,8 +361,8 @@ { // Determine the base path based on client $basePath = !empty($this->client) - ? "statements/{$this->client}" - : "statements"; + ? "partners/{$this->client}" + : "partners"; $accountPath = "{$basePath}/{$this->account_number}"; diff --git a/app/Jobs/SendStatementEmailJob.php b/app/Jobs/SendStatementEmailJob.php index 1c2c83f..d68573a 100644 --- a/app/Jobs/SendStatementEmailJob.php +++ b/app/Jobs/SendStatementEmailJob.php @@ -231,6 +231,7 @@ break; case 'all_branches': + $query->orderBy('branch_code', 'asc'); // Tidak ada filter tambahan, ambil semua break; @@ -238,6 +239,7 @@ throw new InvalidArgumentException("Invalid request type: {$this->requestType}"); } + $query->orderBy('account_number'); $accounts = $query->get(); // Filter accounts yang memiliki email