feat(statement): perbaikan fitur statement dan penambahan akses sentra operasi

- 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.
This commit is contained in:
Daeng Deni Mardaeni
2025-09-09 11:16:48 +07:00
parent 5d0dbfcf21
commit ea23401473
5 changed files with 16 additions and 7 deletions

View File

@@ -31,7 +31,11 @@ ini_set('max_execution_time', 300000);
->get(); ->get();
$branch = Branch::find(Auth::user()->branch_id); $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')); return view('webstatement::statements.index', compact('branches', 'branch', 'multiBranch'));
} }
@@ -512,7 +516,7 @@ ini_set('max_execution_time', 300000);
$query = PrintStatementLog::query(); $query = PrintStatementLog::query();
$query->whereNotNull('user_id'); $query->whereNotNull('user_id');
if (!Auth::user()->role === 'administrator') { if (!Auth::user()->hasRole(['administrator','sentra_operasi'])) {
$query->where(function($q) { $query->where(function($q) {
$q->where('user_id', Auth::id()) $q->where('user_id', Auth::id())
->orWhere('branch_code', Auth::user()->branch->code); ->orWhere('branch_code', Auth::user()->branch->code);

View File

@@ -140,7 +140,10 @@ class WebstatementController extends Controller
], ],
"MONETA"=> [ "MONETA"=> [
"1085667890" "1085667890"
] ],
"SILOT" => [
"1083972676"
]
]; ];
} }

View File

@@ -62,7 +62,7 @@ class PrintStatementRequest extends FormRequest
// Hanya cek duplikasi jika account_number ada // Hanya cek duplikasi jika account_number ada
if (!empty($this->input('account_number'))) { if (!empty($this->input('account_number'))) {
$query = Statement::where('account_number', $this->input('account_number')) $query = Statement::where('account_number', $this->input('account_number'))
->where('authorization_status', '!=', 'rejected') //->where('authorization_status', '!=', 'rejected')
->where(function($query) { ->where(function($query) {
$query->where('is_available', true) $query->where('is_available', true)
->orWhere('is_generated', true); ->orWhere('is_generated', true);
@@ -84,7 +84,7 @@ class PrintStatementRequest extends FormRequest
} }
if ($query->exists()) { 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.');
} }
} }
} }

View File

@@ -361,8 +361,8 @@
{ {
// Determine the base path based on client // Determine the base path based on client
$basePath = !empty($this->client) $basePath = !empty($this->client)
? "statements/{$this->client}" ? "partners/{$this->client}"
: "statements"; : "partners";
$accountPath = "{$basePath}/{$this->account_number}"; $accountPath = "{$basePath}/{$this->account_number}";

View File

@@ -231,6 +231,7 @@
break; break;
case 'all_branches': case 'all_branches':
$query->orderBy('branch_code', 'asc');
// Tidak ada filter tambahan, ambil semua // Tidak ada filter tambahan, ambil semua
break; break;
@@ -238,6 +239,7 @@
throw new InvalidArgumentException("Invalid request type: {$this->requestType}"); throw new InvalidArgumentException("Invalid request type: {$this->requestType}");
} }
$query->orderBy('account_number');
$accounts = $query->get(); $accounts = $query->get();
// Filter accounts yang memiliki email // Filter accounts yang memiliki email