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();
$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);

View File

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

View File

@@ -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.');
}
}
}

View File

@@ -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}";

View File

@@ -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