diff --git a/app/Http/Controllers/AdminPageController.php b/app/Http/Controllers/AdminPageController.php index f7b41eb..e71a418 100644 --- a/app/Http/Controllers/AdminPageController.php +++ b/app/Http/Controllers/AdminPageController.php @@ -3130,7 +3130,7 @@ class AdminPageController extends Controller ->pluck('norujukan'); $sum_keun = Transaction::on('mysql7') - ->selectRaw("trans.norujukan,SUM(CASE WHEN (transaction.trans_type) = 'T' 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' THEN (trans.bayaran_keuntungan) ELSE 0 END) AS sum_bayaran") ->leftJoin('transaksi_keuntungan as trans', function($join) { $join->on('transaction.norujukan', '=', 'trans.norujukan'); @@ -3596,7 +3596,7 @@ class AdminPageController extends Controller ->whereNotNull('hargajualan')->having('result','=',1)->whereYear('t_gadai','>=','2022')->whereYear('t_gadai','<=',$previousYear)->where('sttebus','<>','')->pluck('norujukan'); $sum_keun = Transaction::on('mysql7') - ->selectRaw("trans.norujukan,SUM(CASE WHEN (transaction.trans_type) = 'T' 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' THEN (trans.bayaran_keuntungan) ELSE 0 END) AS sum_bayaran") ->leftJoin('transaksi_keuntungan as trans', function($join) { $join->on('transaction.norujukan', '=', 'trans.norujukan'); diff --git a/app/Http/Controllers/LaporanController.php b/app/Http/Controllers/LaporanController.php index 98abd06..75753e2 100644 --- a/app/Http/Controllers/LaporanController.php +++ b/app/Http/Controllers/LaporanController.php @@ -1257,7 +1257,7 @@ class LaporanController extends Controller ->whereNotNull('hargajualan')->having('result','=',1)->whereDate('t_gadai','>=',$request->mula)->whereDate('t_gadai','<=',$request->hingga)->where('sttebus','<>','')->pluck('norujukan'); $sum_keun = Transaction::on('mysql7') - ->selectRaw("trans.norujukan,SUM(CASE WHEN (transaction.trans_type) = 'T' 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' THEN (trans.bayaran_keuntungan) ELSE 0 END) AS sum_bayaran") ->leftJoin('transaksi_keuntungan as trans', function($join) { $join->on('transaction.norujukan', '=', 'trans.norujukan'); @@ -1276,7 +1276,7 @@ class LaporanController extends Controller ->whereNotNull('hargajualan')->pluck('norujukan'); $summation = Transaction::on('mysql7') - ->selectRaw("SUM(CASE WHEN (transaction.trans_type) = 'T' 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("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") ->leftJoin('transaksi_keuntungan as trans', function($join) { $join->on('transaction.norujukan', '=', 'trans.norujukan'); diff --git a/app/Http/Controllers/Reports/OnePercentController.php b/app/Http/Controllers/Reports/OnePercentController.php index d19f28d..bea2ea4 100644 --- a/app/Http/Controllers/Reports/OnePercentController.php +++ b/app/Http/Controllers/Reports/OnePercentController.php @@ -6,6 +6,7 @@ use App\Http\Controllers\Controller; use App\Services\Reports\OnePercentService as ReportOne; use App\TransaksiKeuntungan; use Illuminate\Http\Request; +use Lcobucci\JWT\Signer\Rsa; class OnePercentController extends Controller { @@ -18,10 +19,10 @@ class OnePercentController extends Controller return response()->json($response); } - public function getUjrahImbangDuga(string $kod_cawangan) + public function getUjrahImbangDuga(string $kod_cawangan,Request $request) { $reports = new ReportOne($kod_cawangan); - $response = $reports->getTotalUjrah('B'); + $response = $reports->getTotalUjrah('B',$request->tarikh); return response()->json($response); } diff --git a/app/Http/Controllers/TebusController.php b/app/Http/Controllers/TebusController.php index b0705b8..75e2511 100644 --- a/app/Http/Controllers/TebusController.php +++ b/app/Http/Controllers/TebusController.php @@ -1527,8 +1527,6 @@ class TebusController extends Controller ->whereYear('t_jual','=',$current->year) ->sum('bakiupah'); - dd($ansuran,$bukanansuran,$upahlelong); - $total = ($ansuran + $bukanansuran + $upahlelong); } @@ -1730,8 +1728,8 @@ class TebusController extends Controller $join->on('transaction.created_at', '=', 'trans.tarikh_bayaran'); }) ->whereIn('trans.norujukan',$get_norujukan) - ->where('transaction.trans_type','T') - // ->where('trans.margin_semasa','=',0) //3.80 + ->where('transaction.trans_type','<>','A') + ->where('trans.margin_semasa','=',0) //3.80 ->sum('keuntungan_rebet'); $sum_keun_ansuran = Transaction::on('mysql7') diff --git a/app/Services/Reports/OnePercentService.php b/app/Services/Reports/OnePercentService.php index 42b89d1..ab366f9 100644 --- a/app/Services/Reports/OnePercentService.php +++ b/app/Services/Reports/OnePercentService.php @@ -62,7 +62,7 @@ class OnePercentService } - public function getTotalKeuntungan($type = 'B',$start = '2023-12-14',$end = '2023-12-14') : Object{ + public function getTotalKeuntungan($type = 'B',$start = '2023-12-14',$end = '2023-12-14') : Float{ if($type == 'B'){ if($start == null){ $akrual = Gadai::on($this->cawangan['mysql'])->where([['sttebus',''],['tagbaru',1]])->sum('tunggakanonepercent'); @@ -79,11 +79,12 @@ class OnePercentService ->orderBy('sirig', 'ASC') ->get(); - $test = $this->calculateTotalProfit($akrual,$start); - return response()->json($test); + $keuntungan = $this->calculateTotalProfit($akrual,$start); + $keuntungan = $keuntungan['onepercent']; } + return $keuntungan; }else if($type == 'L'){ $akrual = Gadai::on($this->cawangan['mysql'])->where([['sttebus',''],['tagbaru',1],['t_update','>=',$start],['t_update','<=',$end]])->sum('tunggakanonepercent'); @@ -108,13 +109,33 @@ class OnePercentService if($type == 'B'){ - $akrual = Gadai::on($this->cawangan['mysql'])->where([['sttebus',''],['tagbaru',1]])->sum('tunggakanujrah'); + // $akrual = Gadai::on($this->cawangan['mysql'])->where([['sttebus',''],['tagbaru',1]])->sum('tunggakanujrah'); - $norujukan = Gadai::on($this->cawangan['mysql'])->where('sttebus','T')->where('tagbaru',1)->pluck('norujukan'); + // $norujukan = Gadai::on($this->cawangan['mysql'])->where('sttebus','T')->where('tagbaru',1)->pluck('norujukan'); - $ujrah = TransaksiKeuntungan::on('mysql7') - ->whereIn('norujukan',$norujukan) - ->sum('ujrah_rebet'); + // $ujrah = TransaksiKeuntungan::on('mysql7') + // ->whereIn('norujukan',$norujukan) + // ->sum('ujrah_rebet'); + + if($start == null){ + $akrual = Gadai::on($this->cawangan['mysql'])->where([['sttebus',''],['tagbaru',1]])->sum('tunggakanujrah'); + $norujukan = Gadai::on($this->cawangan['mysql'])->where('sttebus','T')->where('tagbaru',1)->pluck('norujukan'); + + $keuntungan = TransaksiKeuntungan::on('mysql7') + ->whereIn('norujukan',$norujukan) + ->sum('ujrah_rebet'); + }else{ + $akrual = Gadai::on($this->cawangan['mysql']) + ->where([['tagpalsu','=',0],['t_gadai','<=',$start],['sttebus','=',''],['tagbaru',1]]) + ->orWhere([['tagbaru',1],['tagpalsu','=',0],['t_update','>',$start],['sttebus','!=',''],['t_gadai','<=',$start]]) + ->orderBy('t_gadai', 'ASC') + ->orderBy('sirig', 'ASC') + ->get(); + + $keuntungan = $this->calculateTotalProfit($akrual,$start); + $keuntungan = $keuntungan['ujrah']; + } + return $keuntungan; }else if($type == 'L'){ $akrual = Gadai::on($this->cawangan['mysql'])->where([['sttebus',''],['tagbaru',1],['t_update','>=',$start],['t_update','<=',$end]])->sum('tunggakanujrah'); @@ -145,11 +166,6 @@ class OnePercentService foreach ($chunk as $item) { $trans_keun = TransaksiKeuntungan::on('mysql7')->where([['norujukan','=',$item->norujukan],['bayaran_pembiayaan','>=',0]])->whereDate('tarikh_bayaran','<=',$tarikh)->get(); $calculation = new V2Calculation(); - - // if($item->norujukan == 'KB2240115-0013') - // { - // dd($trans_keun); - // } if($trans_keun->isNotEmpty()){ $bakipinjaman = $item->pinjaman; @@ -181,11 +197,6 @@ class OnePercentService $summationujrah += $ujrah; $summationbkpjm += $item->pinjaman; - // if($item->norujukan == 'KB2240108-0020') - // { - // dd($item->bakipjm); - // } - array_push($array_test,['norujukan' => $item->norujukan,'ujrah' => $ujrah,'onepercent' => $onepercent,'pinjaman' => $item->pinjaman, 'bakipjm' => $item->pinjaman]); } $count++; @@ -194,8 +205,9 @@ class OnePercentService }); // return response()->json($array_test); - dd($summationonepercent,$summationujrah,$count,$summationbkpjm,$array_test); - dd('test'); + // dd($summationonepercent,$summationujrah,$count,$summationbkpjm,$array_test); + // dd('test'); + return ['onepercent' => $summationonepercent,'ujrah' => $summationujrah]; } diff --git a/app/Support/v2/GadaiV2.php b/app/Support/v2/GadaiV2.php index 2bcc1f2..0aa048a 100644 --- a/app/Support/v2/GadaiV2.php +++ b/app/Support/v2/GadaiV2.php @@ -310,7 +310,9 @@ class GadaiV2 DB::connection($cawangan['mysql'])->transaction(function () use($cawangan,$baki_pinjaman,$current,$norujukan,$gadai,$baki_hargajualan,$lelong_tawarruq,$margin_semasa){ $margin_updated = ($baki_pinjaman / $gadai['nilaimarhun']) * 100; - $akrual = $this->kiraupahTawarruqStokAuditUjrahOnePercent($gadai['tempoh'],$gadai['tempohbayar'],$gadai['kadarujrah'],$gadai['bakipjm'],$gadai['nilaimarhun'],$margin_semasa); + + $tempoh_gadai = $this->tempohTransactionGadai($gadai); + $akrual = $this->kiraupahTawarruqStokAuditUjrahOnePercent($tempoh_gadai,$gadai['tempohbayar'],$gadai['kadarujrah'],$gadai['bakipjm'],$gadai['nilaimarhun'],$margin_semasa); $update_gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(array( 'bakipjm' => $baki_pinjaman, @@ -447,6 +449,36 @@ public function kiraupahTawarruqStokAuditUjrahOnePercent($tempoh,$tempohbayar,$k return $arraypendapatan; } +private function tempohTransactionGadai($gadai){ + $tarikh_gadai = Carbon::parse($gadai['t_gadai']. ' 00:00:00'); + $current = Carbon::now(); + $tahun_gadai = $tarikh_gadai->year; + $bulan_gadai = $tarikh_gadai->month; + $hari_gadai = $tarikh_gadai->day; + $tahun_semasa = $current->year; + $bulan_semasa = $current->month; + $hari_semasa = $current->day; + if($hari_semasa >= $hari_gadai){ + $beza_hari = $hari_semasa - $hari_gadai + 1; + }else if($hari_semasa < $hari_gadai){ + $bulan_semasa = $bulan_semasa - 1; + $beza_hari = ($hari_semasa + 30) - $hari_gadai + 1; + } + $extensivemonth_gadai = 0; + if($beza_hari >= 1 && $beza_hari <= 15){ + $extensivemonth_gadai = 0.5; + }else if($beza_hari >= 16){ + $extensivemonth_gadai = 1; + }else{ + $extensivemonth_gadai = 0; + } + $beza_tahun = $tahun_semasa - $tahun_gadai; + $beza_bulan = ($bulan_semasa + ($beza_tahun * 12)) - $bulan_gadai; + $tempoh_gadai = $beza_bulan + $extensivemonth_gadai; + + return $tempoh_gadai; +} + }