diff --git a/app/Services/Reports/RingkasanHarianService.php b/app/Services/Reports/RingkasanHarianService.php index bb45ef9..aa2a3bd 100644 --- a/app/Services/Reports/RingkasanHarianService.php +++ b/app/Services/Reports/RingkasanHarianService.php @@ -106,6 +106,7 @@ class RingkasanHarianService $getTotalUjrahOnline = $this->getTotalUjrahOnline(); $getUpahSimpanKaunterLama = $this->getUpahSimpanKaunterLama(); $getKeuntunganSebenarKaunterLama = $this->getKeuntunganSebenarKaunterLama(); + $getTotalKeuntunganOnlineLama = $this->getTotalKeuntunganOnlineLama(); array_push($laporan_harian, [ 'total_gadai' => $total_gadai, @@ -170,6 +171,7 @@ class RingkasanHarianService 'totalUjrahOnline' => $getTotalUjrahOnline, 'upahSimpanKaunterLama' => $getUpahSimpanKaunterLama, 'keuntunganSebenarKaunterLama' => $getKeuntunganSebenarKaunterLama, + 'totalKeuntunganOnlineLama' => $getTotalKeuntunganOnlineLama, ]); return response()->json($laporan_harian); @@ -452,6 +454,73 @@ class RingkasanHarianService } + private function getTotalKeuntunganOnlineLama() + { + $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('transaksi_keuntungan.margin_semasa', '=' ,0.00) + ->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) + ->where('transaksi_keuntungan.margin_semasa', '=' ,0.00) + ->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('bayaran_keuntungan'); + + $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') + ->where('transaksi_keuntungan.margin_semasa', '=' ,0.00) + ->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) + ->where('margin_semasa', '=' ,0.00) + ->whereDate('tarikh_bayaran', '>=', $this->startDate)->whereDate('tarikh_bayaran', '<=', $this->endDate); + + $total_keuntunganbukanansuran_online = $keuntunganbukanansuran_online_query->sum('keuntungan_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_keuntungan_online = floatval($upahsimpanonline) + floatval($keuntungansebenaronline); + + return floatval($total_keuntungan_online); + + } + private function getTotalOnePercentOnline() { $total_keuntunganansuran_data_online = TransaksiKeuntungan::on('mysql7')