diff --git a/app/Http/Controllers/AdminPageController.php b/app/Http/Controllers/AdminPageController.php index 048ea6b..076cf73 100644 --- a/app/Http/Controllers/AdminPageController.php +++ b/app/Http/Controllers/AdminPageController.php @@ -3143,23 +3143,57 @@ class AdminPageController extends Controller /* Ansuran masuk dalam ni */ - $get_norujukan_ansuran = Gadai::on($cawangan['mysql']) - ->selectRaw("norujukan,CASE WHEN (YEAR(t_gadai) = YEAR(t_update) and MONTH(t_gadai) = MONTH(t_update)) THEN '1' ELSE '0' END AS result") - ->whereNotNull('hargajualan') - ->having('result','=',1) - ->whereYear('t_gadai','=',$year) - ->whereMonth('t_gadai','<=',$month) - ->where('sttebus','=','') - ->where('tagbaru','=',1) - ->pluck('norujukan'); + $collection_trans = 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.kodcaw','=',$request->kodcaw) + ->where('trans.trans_type','=','A') + ->where('transaksi_keuntungan.margin_semasa','>','0') + ->whereYear('transaksi_keuntungan.tarikh_bayaran','=',$year) + ->whereMonth('transaksi_keuntungan.tarikh_bayaran','<=',$month) + ->get(); - $summation_ansuran = TransaksiKeuntungan::on('mysql7') - ->whereIn('norujukan',$get_norujukan_ansuran)->sum('bayaran_keuntungan'); + + $array_norujukan = $collection_trans->pluck('norujukan')->toArray(); + + $collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan',$array_norujukan)->where('tagbaru',1)->get(); + + $keuntungan_semasa_collection = $collection_trans->filter(function ($trans) use ($collection_gadai) { + + foreach ($collection_gadai as $gadai) { + if($gadai->norujukan === $trans->norujukan){ + $t_gadai = Carbon::parse($gadai->t_gadai); + $t_bayaran = Carbon::parse($trans->tarikh_bayaran); + + if ($t_gadai->month !== $t_bayaran->month) { + return false; + } + } + } + return true; + }); + + $summation_ansuran = $keuntungan_semasa_collection->sum('bayaran_keuntungan'); + + // $get_norujukan_ansuran = Gadai::on($cawangan['mysql']) + // ->selectRaw("norujukan,CASE WHEN (YEAR(t_gadai) = YEAR(t_update) and MONTH(t_gadai) = MONTH(t_update)) THEN '1' ELSE '0' END AS result") + // ->whereNotNull('hargajualan') + // ->having('result','=',1) + // ->whereYear('t_gadai','=',$year) + // ->whereMonth('t_gadai','<=',$month) + // ->where('sttebus','=','') + // ->where('tagbaru','=',1) + // ->pluck('norujukan'); + + // $summation_ansuran = TransaksiKeuntungan::on('mysql7') + // ->whereIn('norujukan',$get_norujukan_ansuran)->sum('bayaran_keuntungan'); $total = $sum_keuntungan + $sum_bayaran + $summation_ansuran; - // $total = $sum_keuntungan + $sum_bayaran; return response()->json($total); } diff --git a/app/Http/Controllers/GadaiController.php b/app/Http/Controllers/GadaiController.php index 359b9c0..db5f349 100644 --- a/app/Http/Controllers/GadaiController.php +++ b/app/Http/Controllers/GadaiController.php @@ -2938,18 +2938,11 @@ class GadaiController extends Controller $Gadai = Gadai::on($cawangan['mysql'])->where([['t_gadai','>=',$request->mula],['t_gadai','<=',$request->hingga],['hargajualan','<>','NULL']])->sum('pinjaman'); $Tebus = Gadai::on($cawangan['mysql']) - ->join('tebus as teb','teb.norujukan','=','gadai.norujukan') ->where('gadai.tagpalsu','=',0) - ->where([['teb.t_tebus','>=',$request->mula],['teb.t_tebus','<=',$request->hingga],['gadai.sttebus','=','T'],['gadai.hargajualan','<>','NULL']]) + ->where([['gadai.t_update','>=',$request->mula],['gadai.t_update','<=',$request->hingga],['gadai.hargajualan','<>','NULL']]) + ->whereIn('gadai.sttebus', ['T', 'L']) ->sum('gadai.pinjaman'); - $pembiayaanlelong = Lelong::on($cawangan['mysql']) - ->join('gadai as gad','gad.norujukan','=','lelong.norujukan') - ->where('gad.hargajualan','!=',null) - ->where([['t_jual','>=',$request->mula],['t_jual','<=',$request->hingga]]) - ->sum('lelong.pinjaman'); - - $Tebus += $pembiayaanlelong; $rekod_pinjamandiberi = ['Gadai' => $Gadai,'Tebus' => $Tebus]; @@ -3188,9 +3181,8 @@ class GadaiController extends Controller $tebus = Gadai::on($cawangan['mysql']) ->select('gadai.norujukan','gadai.hargajualan','gadai.bakihargajualan') - ->join('tebus as t','gadai.norujukan','=','t.norujukan') - ->where('gadai.sttebus','T') - ->where([['t_tebus','>=',$request->mula],['t_tebus','<=',$request->hingga]]) + ->whereIn('gadai.sttebus',['T','L']) + ->where([['t_update','>=',$request->mula],['t_update','<=',$request->hingga]]) ->groupBy('gadai.norujukan') ->get(); diff --git a/app/Http/Controllers/LaporanController.php b/app/Http/Controllers/LaporanController.php index 63904a7..a281168 100644 --- a/app/Http/Controllers/LaporanController.php +++ b/app/Http/Controllers/LaporanController.php @@ -278,7 +278,6 @@ class LaporanController extends Controller $upahsimpankaunter = $keuntungan_kaunter + $upahtebus + $upahlelong + $upahansurKaunter + $total_keuntunganbukanansuran_kaunter; - // dd($keuntungan_kaunter,$upahtebus,$upahlelong,$upahansurKaunter,$total_keuntunganbukanansuran_kaunter,$upahsimpankaunter); $keuntungansebenarkaunter = $total_keuntunganansuran_kaunter; $upahsimpanonline = $upahansurOnline; @@ -1254,10 +1253,9 @@ class LaporanController extends Controller /* Start Keuntungan Sebenar Calculation */ $get_norujukan = Gadai::on($cawangan['mysql']) ->selectRaw("norujukan,CASE WHEN (YEAR(t_gadai) = YEAR(t_update) and MONTH(t_gadai) = MONTH(t_update)) THEN '1' ELSE '0' END AS result") - ->whereNotNull('hargajualan')->having('result','=',1)->whereDate('t_gadai','>=',$request->mula)->whereDate('t_gadai','<=',$request->hingga)->where('sttebus','<>','')->pluck('norujukan'); - + ->whereNotNull('hargajualan')->having('result','=',1)->whereDate('t_update','>=',$request->mula)->whereDate('t_update','<=',$request->hingga)->where('sttebus','<>','')->pluck('norujukan'); $sum_keun = Transaction::on('mysql7') - ->selectRaw("trans.norujukan,SUM(CASE WHEN (transaction.trans_type) <> 'A' THEN (trans.keuntungan_rebet) ELSE 0 END) AS sum_keun,SUM(CASE WHEN (transaction.trans_type) = 'A' THEN (trans.bayaran_keuntungan) ELSE 0 END) AS sum_bayaran") + ->selectRaw("trans.norujukan,SUM(CASE WHEN (transaction.trans_type) <> 'A' THEN (trans.keuntungan_rebet) ELSE 0 END) AS sum_keun,SUM(CASE WHEN (transaction.trans_type) = 'A' AND (trans.margin_semasa) = 0 THEN (trans.bayaran_keuntungan) ELSE 0 END) AS sum_bayaran") ->leftJoin('transaksi_keuntungan as trans', function($join) { $join->on('transaction.norujukan', '=', 'trans.norujukan'); @@ -1268,17 +1266,52 @@ class LaporanController extends Controller $sum_keuntungan = ($sum_keun) ? $sum_keun[0]['sum_keun'] : 0; $sum_bayaran = ($sum_keun) ? $sum_keun[0]['sum_bayaran'] : 0; - $get_norujukan_ansuran = Gadai::on($cawangan['mysql']) - ->selectRaw("norujukan,CASE WHEN (YEAR(t_gadai) = YEAR(t_update) and MONTH(t_gadai) = MONTH(t_update)) THEN '1' ELSE '0' END AS result") - ->whereNotNull('hargajualan') - ->having('result','=',1) - ->whereDate('t_gadai','>=',$request->mula)->whereDate('t_gadai','<=',$request->hingga) - ->where('sttebus','=','') - ->where('tagbaru','=',1) - ->pluck('norujukan'); + // $get_norujukan_ansuran = Gadai::on($cawangan['mysql']) + // ->selectRaw("norujukan,CASE WHEN (YEAR(t_gadai) = YEAR(t_update) and MONTH(t_gadai) = MONTH(t_update)) THEN '1' ELSE '0' END AS result") + // ->whereNotNull('hargajualan') + // ->having('result','=',1) + // ->whereDate('t_update','>=',$request->mula)->whereDate('t_update','<=',$request->hingga) + // ->where('sttebus','=','') + // ->where('tagbaru','=',1) + // ->pluck('norujukan'); - $summation_ansuran = TransaksiKeuntungan::on('mysql7') - ->whereIn('norujukan',$get_norujukan_ansuran)->sum('bayaran_keuntungan'); + // $summation_ansuran = TransaksiKeuntungan::on('mysql7') + // ->whereIn('norujukan',$get_norujukan_ansuran)->sum('bayaran_keuntungan'); + + $collection_trans = 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.kodcaw','=',$request->kodcaw) + ->where('trans.trans_type','=','A') + ->where('transaksi_keuntungan.margin_semasa','>','0') + ->whereDate('transaksi_keuntungan.tarikh_bayaran','>=',$request->mula) + ->whereDate('transaksi_keuntungan.tarikh_bayaran','<=',$request->hingga) + ->get(); + + + $array_norujukan = $collection_trans->pluck('norujukan')->toArray(); + + $collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan',$array_norujukan)->where('tagbaru',1)->get(); + + $keuntungan_semasa_collection = $collection_trans->filter(function ($trans) use ($collection_gadai) { + + foreach ($collection_gadai as $gadai) { + if($gadai->norujukan === $trans->norujukan){ + $t_gadai = Carbon::parse($gadai->t_gadai); + $t_bayaran = Carbon::parse($trans->tarikh_bayaran); + + if ($t_gadai->month !== $t_bayaran->month) { + return false; + } + } + } + return true; + }); + + $summation_ansuran = $keuntungan_semasa_collection->sum('bayaran_keuntungan'); $total_keuntungan_sebenar = $sum_keuntungan + $sum_bayaran + $summation_ansuran; /* End Keuntungan Sebenar Calculation */ @@ -1426,7 +1459,7 @@ class LaporanController extends Controller $firstmonth_behind_extension = $firstmonth_behind->toDateString(); $firstmonth_behind_extension_end = $firstmonth_behind_end->toDateString(); - $cawangan = Cawangan::on('mysql7')->where('zone',$request->zone)->get(); + $cawangan = Cawangan::on('mysql7')->where('zone',$request->zone)->where('version','v1')->get(); $tebuscontroller = new TebusController(); @@ -1580,7 +1613,7 @@ class LaporanController extends Controller $firstmonth_behind_extension = $firstmonth_behind->toDateString(); $firstmonth_behind_extension_end = $firstmonth_behind_end->toDateString(); - $cawangan = Cawangan::on('mysql7')->where('zone',$request->zone)->get(); + $cawangan = Cawangan::on('mysql7')->where('zone',$request->zone)->where('version','v1')->get(); $tebuscontroller = new TebusController();