Merged in api-laporan-ujrah (pull request #66)

Api laporan ujrah
This commit is contained in:
nur amirah zulkipli
2024-01-01 04:52:06 +00:00
@@ -98,6 +98,12 @@ class RingkasanHarianService
$serahanbayaranOnline = $this->getSerahanBayaranOnline();
$totalSerahan = $this->getTotalSerahan();
$totalPendahuluan = $this->getTotalPendahuluan();
$getOnePercentSimpanKaunter = $this->getOnePercentSimpanKaunter();
$getUjrahSimpanKaunter = $this->getUjrahSimpanKaunter();
$getOnepercentSebenarKaunter = $this->getOnepercentSebenarKaunter();
$getUjrahSebenarKaunter = $this->getUjrahSebenarKaunter();
$getTotalOnePercentOnline = $this->getTotalOnePercentOnline();
$getTotalUjrahOnline = $this->getTotalUjrahOnline();
array_push($laporan_harian, [
'total_gadai' => $total_gadai,
@@ -154,6 +160,12 @@ class RingkasanHarianService
'totalserahan' => $totalSerahan,
'serahanbayaranOnline' => $serahanbayaranOnline,
'totalpendahuluan' => $totalPendahuluan,
'onePercentSimpanKaunter' => $getOnePercentSimpanKaunter,
'ujrahSimpanKaunter' => $getUjrahSimpanKaunter,
'onepercentSebenarKaunter' => $getOnepercentSebenarKaunter,
'ujrahSebenarKaunter' => $getUjrahSebenarKaunter,
'totalOnePercentOnline' => $getTotalOnePercentOnline,
'totalUjrahOnline' => $getTotalUjrahOnline,
]);
return response()->json($laporan_harian);
@@ -436,6 +448,132 @@ class RingkasanHarianService
}
private function getTotalOnePercentOnline()
{
$total_keuntunganansuran_data_online = TransaksiKeuntungan::on('mysql7')
->leftJoin('transaction as trans', function ($join) {
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
})
->whereDate('trans.created_at', '>=', $this->startDate)->whereDate('trans.created_at', '<=', $this->endDate)
->where('trans.teller', '=', 'Online')
->where('trans.trans_type', '=', 'A')
->where('trans.kodcaw', $this->kodCawangan)
->pluck('transaksi_keuntungan.norujukan');
$gadaiDataOnline = Gadai::on($this->connectionCawangan)->whereIn('norujukan', $total_keuntunganansuran_data_online)->whereNotNull('hargajualan')->pluck('norujukan');
$keuntunganansuran_online_query = TransaksiKeuntungan::on('mysql7')
->leftJoin('transaction as trans', function ($join) {
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
})
->whereDate('trans.created_at', '>=', $this->startDate)->whereDate('trans.created_at', '<=', $this->endDate)
->where('trans.teller', '=', 'Online')
->where('trans.trans_type', '=', 'A')
->where('trans.kodcaw', $this->kodCawangan)
->whereIn('trans.norujukan', $gadaiDataOnline)
->whereDate('transaksi_keuntungan.tarikh_bayaran', '>=', $this->startDate)->whereDate('transaksi_keuntungan.tarikh_bayaran', '<=', $this->endDate);
$total_keuntunganansuran_online = $keuntunganansuran_online_query->sum('onepercent');
$total_keuntunganbukanansuran_data_online = TransaksiKeuntungan::on('mysql7')
->leftJoin('transaction as trans', function ($join) {
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
})
->where('trans.trans_type', '!=', 'A')
->where('trans.teller', '=', 'Online')
->whereDate('trans.created_at', '>=', $this->startDate)->whereDate('trans.created_at', '<=', $this->endDate)
->where('trans.kodcaw', '=', $this->kodCawangan)
->pluck('transaksi_keuntungan.norujukan');
$gadaiDataOnline = Gadai::on($this->connectionCawangan)->whereIn('norujukan', $total_keuntunganbukanansuran_data_online)->whereNotNull('hargajualan')->pluck('norujukan');
$keuntunganbukanansuran_online_query = TransaksiKeuntungan::on('mysql7')
->whereIn('norujukan', $gadaiDataOnline)
->whereDate('tarikh_bayaran', '>=', $this->startDate)->whereDate('tarikh_bayaran', '<=', $this->endDate);
$total_keuntunganbukanansuran_online = $keuntunganbukanansuran_online_query->sum('onepercent_rebet');
$keuntungansebenaronline = $total_keuntunganansuran_online + $total_keuntunganbukanansuran_online;
$upahansurOnlineQuery = Advansur::on($this->connectionCawangan)
->where('teller', '=', 'Online')
->whereDate('tarikh', '>=', $this->startDate)->whereDate('tarikh', '<=', $this->endDate);
$upahansurOnline = $upahansurOnlineQuery->sum('upahdibayar');
$upahsimpanonline = $upahansurOnline;
$total_onepercent_online = floatval($upahsimpanonline) + floatval($keuntungansebenaronline);
return floatval($total_onepercent_online);
}
private function getTotalUjrahOnline()
{
$total_keuntunganansuran_data_online = TransaksiKeuntungan::on('mysql7')
->leftJoin('transaction as trans', function ($join) {
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
})
->whereDate('trans.created_at', '>=', $this->startDate)->whereDate('trans.created_at', '<=', $this->endDate)
->where('trans.teller', '=', 'Online')
->where('trans.trans_type', '=', 'A')
->where('trans.kodcaw', $this->kodCawangan)
->pluck('transaksi_keuntungan.norujukan');
$gadaiDataOnline = Gadai::on($this->connectionCawangan)->whereIn('norujukan', $total_keuntunganansuran_data_online)->whereNotNull('hargajualan')->pluck('norujukan');
$keuntunganansuran_online_query = TransaksiKeuntungan::on('mysql7')
->leftJoin('transaction as trans', function ($join) {
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
})
->whereDate('trans.created_at', '>=', $this->startDate)->whereDate('trans.created_at', '<=', $this->endDate)
->where('trans.teller', '=', 'Online')
->where('trans.trans_type', '=', 'A')
->where('trans.kodcaw', $this->kodCawangan)
->whereIn('trans.norujukan', $gadaiDataOnline)
->whereDate('transaksi_keuntungan.tarikh_bayaran', '>=', $this->startDate)->whereDate('transaksi_keuntungan.tarikh_bayaran', '<=', $this->endDate);
$total_keuntunganansuran_online = $keuntunganansuran_online_query->sum('ujrah');
$total_keuntunganbukanansuran_data_online = TransaksiKeuntungan::on('mysql7')
->leftJoin('transaction as trans', function ($join) {
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
})
->where('trans.trans_type', '!=', 'A')
->where('trans.teller', '=', 'Online')
->whereDate('trans.created_at', '>=', $this->startDate)->whereDate('trans.created_at', '<=', $this->endDate)
->where('trans.kodcaw', '=', $this->kodCawangan)
->pluck('transaksi_keuntungan.norujukan');
$gadaiDataOnline = Gadai::on($this->connectionCawangan)->whereIn('norujukan', $total_keuntunganbukanansuran_data_online)->whereNotNull('hargajualan')->pluck('norujukan');
$keuntunganbukanansuran_online_query = TransaksiKeuntungan::on('mysql7')
->whereIn('norujukan', $gadaiDataOnline)
->whereDate('tarikh_bayaran', '>=', $this->startDate)->whereDate('tarikh_bayaran', '<=', $this->endDate);
$total_keuntunganbukanansuran_online = $keuntunganbukanansuran_online_query->sum('ujrah_rebet');
$keuntungansebenaronline = $total_keuntunganansuran_online + $total_keuntunganbukanansuran_online;
$upahansurOnlineQuery = Advansur::on($this->connectionCawangan)
->where('teller', '=', 'Online')
->whereDate('tarikh', '>=', $this->startDate)->whereDate('tarikh', '<=', $this->endDate);
$upahansurOnline = $upahansurOnlineQuery->sum('upahdibayar');
$upahsimpanonline = $upahansurOnline;
$total_ujrah_online = floatval($upahsimpanonline) + floatval($keuntungansebenaronline);
return floatval($total_ujrah_online);
}
private function getTotalKeuntunganKaunter()
{
$total_keuntunganansuran_data_online = TransaksiKeuntungan::on('mysql7')
@@ -756,6 +894,97 @@ class RingkasanHarianService
return floatval($upahsimpankaunter);
}
private function getOnePercentSimpanKaunter()
{
$keuntungan_data_kaunter = TransaksiKeuntungan::on('mysql7')
->leftJoin('transaction as trans', function ($join) {
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
})
->whereDate('transaksi_keuntungan.tarikh_bayaran', '>=', $this->startDate)->whereDate('transaksi_keuntungan.tarikh_bayaran', '<=', $this->endDate)
->where('trans.teller', '<>', 'Online')
->pluck('transaksi_keuntungan.norujukan');
$gadaiDataKaunter = Gadai::on($this->connectionCawangan)->whereIn('norujukan', $keuntungan_data_kaunter)->whereNull('hargajualan')->pluck('norujukan');
$keuntungan_kaunter_query = TransaksiKeuntungan::on('mysql7')
->whereIn('norujukan', $gadaiDataKaunter);
$keuntungan_onepercent = $keuntungan_kaunter_query->sum('onepercent');
$onepercenttebus = Tebus::on($this->connectionCawangan)
->whereDate('t_tebus', '>=', $this->startDate)->whereDate('t_tebus', '<=', $this->endDate)
->sum('onepercent');
$onepercentlelong = Lelong::on($this->connectionCawangan)
->whereDate('t_jual', '>=', $this->startDate)->whereDate('t_jual', '<=', $this->endDate)
->sum('onepercent');
$total_keuntunganbukanansuran_data_kaunter = TransaksiKeuntungan::on('mysql7')
->leftJoin('transaction as trans', function ($join) {
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
})
->where('trans.trans_type', '!=', 'A')
->where('trans.teller', '<>', 'Online')
->whereDate('trans.created_at', '>=', $this->startDate)->whereDate('trans.created_at', '<=', $this->endDate)
->where('trans.kodcaw', '=', $this->kodCawangan);
$total_keuntungan_onepercent_bukanansuran_kaunter = $total_keuntunganbukanansuran_data_kaunter->sum('onepercent_rebet');
$upahsimpanonepercent = $keuntungan_onepercent + $onepercenttebus + $onepercentlelong + $total_keuntungan_onepercent_bukanansuran_kaunter;
return floatval($upahsimpanonepercent);
}
private function getUjrahSimpanKaunter()
{
$keuntungan_data_kaunter = TransaksiKeuntungan::on('mysql7')
->leftJoin('transaction as trans', function ($join) {
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
})
->whereDate('transaksi_keuntungan.tarikh_bayaran', '>=', $this->startDate)->whereDate('transaksi_keuntungan.tarikh_bayaran', '<=', $this->endDate)
->where('trans.teller', '<>', 'Online')
->pluck('transaksi_keuntungan.norujukan');
$gadaiDataKaunter = Gadai::on($this->connectionCawangan)->whereIn('norujukan', $keuntungan_data_kaunter)->whereNull('hargajualan')->pluck('norujukan');
$keuntungan_kaunter_query = TransaksiKeuntungan::on('mysql7')
->whereIn('norujukan', $gadaiDataKaunter);
$keuntungan_ujrah = $keuntungan_kaunter_query->sum('ujrah');
$ujrahtebus = Tebus::on($this->connectionCawangan)
->whereDate('t_tebus', '>=', $this->startDate)->whereDate('t_tebus', '<=', $this->endDate)
->sum('ujrah');
$ujrahlelong = Lelong::on($this->connectionCawangan)
->whereDate('t_jual', '>=', $this->startDate)->whereDate('t_jual', '<=', $this->endDate)
->sum('ujrah');
$total_keuntunganbukanansuran_data_kaunter = TransaksiKeuntungan::on('mysql7')
->leftJoin('transaction as trans', function ($join) {
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
})
->where('trans.trans_type', '!=', 'A')
->where('trans.teller', '<>', 'Online')
->whereDate('trans.created_at', '>=', $this->startDate)->whereDate('trans.created_at', '<=', $this->endDate)
->where('trans.kodcaw', '=', $this->kodCawangan);
$total_keuntungan_onepercent_bukanansuran_kaunter = $total_keuntunganbukanansuran_data_kaunter->sum('ujrah_rebet');
$upahsimpanujrah = $keuntungan_ujrah + $ujrahtebus + $ujrahlelong + $total_keuntungan_onepercent_bukanansuran_kaunter;
return floatval($upahsimpanujrah);
}
private function getKeuntunganSebenarKaunter()
{
$total_keuntunganansuran_data_kaunter = TransaksiKeuntungan::on('mysql7')
@@ -788,6 +1017,70 @@ class RingkasanHarianService
return floatval($keuntungansebenarkaunter);
}
private function getOnepercentSebenarKaunter()
{
$total_keuntunganansuran_data_kaunter = TransaksiKeuntungan::on('mysql7')
->leftJoin('transaction as trans', function ($join) {
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
})
->whereDate('trans.created_at', '>=', $this->startDate)->whereDate('trans.created_at', '<=', $this->endDate)
->where('trans.teller', '<>', 'Online')
->where('trans.trans_type', '=', 'A')
->where('trans.kodcaw', $this->kodCawangan)
->pluck('transaksi_keuntungan.norujukan');
$gadaiDataKaunter = Gadai::on($this->connectionCawangan)->whereIn('norujukan', $total_keuntunganansuran_data_kaunter)->whereNotNull('hargajualan')->pluck('norujukan');
$onepercentansuran_kaunter_query = TransaksiKeuntungan::on('mysql7')
->leftJoin('transaction as trans', function ($join) {
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
})
->where('trans.teller', '<>', 'Online')
->where('trans.trans_type', '=', 'A')
->whereIn('transaksi_keuntungan.norujukan', $gadaiDataKaunter)
->whereDate('transaksi_keuntungan.tarikh_bayaran', '>=', $this->startDate)->whereDate('transaksi_keuntungan.tarikh_bayaran', '<=', $this->endDate);
$total_onepercent_ansuran_kaunter = $onepercentansuran_kaunter_query->sum('onepercent');
$onepercentsebenarkaunter = $total_onepercent_ansuran_kaunter;
return floatval($onepercentsebenarkaunter);
}
private function getUjrahSebenarKaunter()
{
$total_keuntunganansuran_data_kaunter = TransaksiKeuntungan::on('mysql7')
->leftJoin('transaction as trans', function ($join) {
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
})
->whereDate('trans.created_at', '>=', $this->startDate)->whereDate('trans.created_at', '<=', $this->endDate)
->where('trans.teller', '<>', 'Online')
->where('trans.trans_type', '=', 'A')
->where('trans.kodcaw', $this->kodCawangan)
->pluck('transaksi_keuntungan.norujukan');
$gadaiDataKaunter = Gadai::on($this->connectionCawangan)->whereIn('norujukan', $total_keuntunganansuran_data_kaunter)->whereNotNull('hargajualan')->pluck('norujukan');
$ujrahansuran_kaunter_query = TransaksiKeuntungan::on('mysql7')
->leftJoin('transaction as trans', function ($join) {
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
})
->where('trans.teller', '<>', 'Online')
->where('trans.trans_type', '=', 'A')
->whereIn('transaksi_keuntungan.norujukan', $gadaiDataKaunter)
->whereDate('transaksi_keuntungan.tarikh_bayaran', '>=', $this->startDate)->whereDate('transaksi_keuntungan.tarikh_bayaran', '<=', $this->endDate);
$total_ujrah_ansuran_kaunter = $ujrahansuran_kaunter_query->sum('ujrah');
$ujrahsebenarkaunter = $total_ujrah_ansuran_kaunter;
return floatval($ujrahsebenarkaunter);
}
public function getSerahanBayaranOnline()
{
$serahanpkb = '1000/020';