Load pembiayaan detail modal whenever user clicks. not loaded it all at page startup

This commit is contained in:
Afiq Hamzah
2024-09-13 16:44:05 +08:00
parent ae117988df
commit 5bd7943ff4
7 changed files with 63 additions and 91 deletions
+7 -15
View File
@@ -8,23 +8,15 @@ use Illuminate\Support\Facades\Http;
class BayaranHistoryService
{
public $norujukanList;
public $norujukan;
public function __construct($norujukanList) {
$this->norujukanList = $norujukanList;
public function __construct($norujukan) {
$this->norujukan = $norujukan;
}
public function getBayaranHistory()
{
$getBayaranHistory = function () {
return Http::pool(function (Pool $pool){
foreach ($this->norujukanList as $norujukan) {
$pool->get(config('api.url') . '/api/transaction/' . $norujukan);
}
});
};
$bayaranHistoryResponse = array_map(fn($x) => $x->json(), $getBayaranHistory());
$bayaranHistory = Http::arrahn()->get('/api/transaction/online/query', ['date' => $this->norujukan])->json();
$formatBayaranHistoryData = function ($x) {
if (sizeof($x) === 0) {
@@ -41,12 +33,12 @@ class BayaranHistoryService
}, $x);
};
return array_map($formatBayaranHistoryData, $bayaranHistoryResponse);
return $formatBayaranHistoryData($bayaranHistory);
}
public static function from($norujukanList)
public static function from($norujukan)
{
return new static($norujukanList);
return new static($norujukan);
}
}
+9 -9
View File
@@ -6,10 +6,10 @@ use Illuminate\Support\Facades\Http;
class MarhunService
{
public $norujukanList;
public $norujukan;
public function __construct($norujukanList) {
$this->norujukanList = $norujukanList;
public function __construct($norujukan) {
$this->norujukan = $norujukan;
}
public function getMarhunDetails()
@@ -30,18 +30,18 @@ class MarhunService
};
$marhunDetailPipelines = [
fn($x) => array_map($getMarhunDetails, $x),
fn($x) => array_map(fn($y) => $x == null ? [] : $y, $x),
fn($x) => $getMarhunDetails($x),
fn($x) => $x == null ? [] : $x,
fn($x) => array_map(fn($y) => array_merge([], ...$y), $x),
fn($x) => array_map($formatMarhunDetailData, $x),
fn($x) => $formatMarhunDetailData($x),
];
return array_reduce($marhunDetailPipelines, fn($x, $y) => $y($x), $this->norujukanList);
return array_reduce($marhunDetailPipelines, fn($x, $y) => $y($x), $this->norujukan);
}
public static function from($norujukanList)
public static function from($norujukan)
{
return new static($norujukanList);
return new static($norujukan);
}
}
+20 -44
View File
@@ -25,7 +25,6 @@ class PembiayaanService
$pembiayaan = array_filter($getPembiayaan(), fn($x) => $x->hargajualan != null || $x->hargajualan != 0);
$pembiayaan = $this->setUpahTawarruq($pembiayaan);
$pembiayaan = $this->formatPembiayaanData($pembiayaan);
$pembiayaan = $this->attachMarhunModalData($pembiayaan);
$pembiayaan = $this->checkPembiayaanPaymentDisabled($pembiayaan);
return $pembiayaan;
@@ -101,51 +100,28 @@ class PembiayaanService
return $formatted;
}
private function attachMarhunModalData($pembiayaan)
public function getMarhunModalData($norujukan)
{
$marhunModalData = $this->getMarhunModalData($pembiayaan);
return array_map(
function ($x, $y) {
$x->marhunModalData = $y;
return $x;
},
$pembiayaan,
$marhunModalData,
);
}
public function getMarhunModalData($pembiayaan)
{
$norujukanList = array_map(fn($x) => $x->norujukan, $pembiayaan);
$marhunDetails = MarhunService::from($norujukanList)->getMarhunDetails();
$bayaranHistoryDetails = BayaranHistoryService::from($norujukanList)->getBayaranHistory();
return array_map(
fn($x, $y, $z) => [
'nilaimarhun' => $x->nilaimarhun,
'berat' => $x->berat,
'bakiupah' => $x->bakiupah,
'pinjaman' => $x->pinjaman,
'bakipjm' => $x->bakipjm,
'taglel' => $x->taglel,
'marhun' => $x->marhun,
'pinjaman' => $x->pinjaman,
'norujukan' => $x->norujukan,
'hargajualan' => $x->hargajualan,
'kodcaw' => $x->kodcaw,
'tempoh' => $x->tempoh,
'cawangan_name' => $x->cawangan_name,
'marhun_details' => $y,
'bayaran_history' => $z,
],
$pembiayaan,
$marhunDetails,
$bayaranHistoryDetails,
);
$gadaianDetails = Http::arrahn()->get('/api/gadai/norujukan/' . $norujukan)->json()[0][0];
$attachCawanganName = function ($x) use ($gadaianDetails) {
$x['cawangan_name'] = Http::arrahn()->get('/api/cawangan/detail/' . $gadaianDetails['kodcaw'])->json()[0]['cawangan'];
return $x;
};
$gadaianDetails = $attachCawanganName($gadaianDetails);
$marhunDetails = MarhunService::from($norujukan)->getMarhunDetails();
$bayaranHistoryDetails = BayaranHistoryService::from($norujukan)->getBayaranHistory();
return [
'gadaianDetails' => $gadaianDetails,
'marhunDetails' => $marhunDetails,
'bayaranHistoryDetails' => $bayaranHistoryDetails,
];
}
private function getNorujukanRecentlyAttemptPayment($norujukanList)