feat(webstatement): tambahkan hubungan branch dan account di model
Perubahan yang dilakukan: - Menambahkan relasi branch di model Account berdasarkan kolom branch_code. - Menambahkan relasi account di model PrintStatementLog untuk akses data account dari log. - Memperbaiki referensi branch_name di PrintStatementController agar menggunakan relasi dari model Account. - Menonaktifkan eager loading pada query di PrintStatementController untuk optimasi performa. Tujuan perubahan: - Memastikan data branch dan account dapat diakses langsung melalui relasi antar model. - Menghindari potensi masalah N+1 query saat mengambil data terkait branch. - Meningkatkan efisiensi kode dan menjaga konsistensi data dalam proses statement.
This commit is contained in:
@@ -584,7 +584,7 @@ ini_set('max_execution_time', 300000);
|
||||
$filteredRecords = $query->count();
|
||||
|
||||
// Eager load relationships to avoid N+1 query problems
|
||||
$query->with(['user', 'branch', 'authorizer']);
|
||||
//$query->with(['user', 'branch', 'authorizer']);
|
||||
|
||||
// Get the data for the current page
|
||||
$data = $query->get()->map(function ($item) {
|
||||
@@ -592,7 +592,7 @@ ini_set('max_execution_time', 300000);
|
||||
return [
|
||||
'id' => $item->id,
|
||||
'branch_code' => $item->branch_code,
|
||||
'branch_name' => $item->branch->name ?? 'N/A',
|
||||
'branch_name' => $item->account->branch->name ?? 'N/A',
|
||||
'account_number' => $item->account_number,
|
||||
'period_from' => $item->period_from,
|
||||
'period_to' => $item->is_period_range ? $item->period_to : null,
|
||||
|
||||
@@ -4,6 +4,7 @@ namespace Modules\Webstatement\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Modules\Basicdata\Models\Branch;
|
||||
// use Modules\Webstatement\Database\Factories\AccountFactory;
|
||||
|
||||
class Account extends Model
|
||||
@@ -34,7 +35,7 @@ class Account extends Model
|
||||
{
|
||||
return $this->belongsTo(Customer::class, 'customer_code', 'customer_code');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get all balances for this account.
|
||||
*/
|
||||
@@ -42,10 +43,10 @@ class Account extends Model
|
||||
{
|
||||
return $this->hasMany(AccountBalance::class, 'account_number', 'account_number');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get balance for a specific period.
|
||||
*
|
||||
*
|
||||
* @param string $period Format: YYYY-MM
|
||||
* @return AccountBalance|null
|
||||
*/
|
||||
@@ -53,4 +54,8 @@ class Account extends Model
|
||||
{
|
||||
return $this->balances()->where('period', $period)->first();
|
||||
}
|
||||
|
||||
public function branch(){
|
||||
return $this->belongsTo(Branch::class, 'branch_code','code');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -293,4 +293,8 @@ class PrintStatementLog extends Model
|
||||
{
|
||||
return $query->where('request_type', 'single_account');
|
||||
}
|
||||
|
||||
public function account(){
|
||||
return $this->belongsTo(Account::class, 'account_number','account_number');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -388,13 +388,7 @@
|
||||
title: 'Branch',
|
||||
},
|
||||
account_number: {
|
||||
title: 'Account Number',
|
||||
render: (item, data) => {
|
||||
if (data.request_type == "multi_account") {
|
||||
return data.stmt_sent_type ?? 'N/A';
|
||||
}
|
||||
return data.account_number ?? '';
|
||||
},
|
||||
title: 'Account Number'
|
||||
},
|
||||
period: {
|
||||
title: 'Period',
|
||||
|
||||
Reference in New Issue
Block a user