added account service

This commit is contained in:
hafifierahman
2024-10-08 07:48:21 +08:00
parent 1bb813e22e
commit d3fe2cf03d
7 changed files with 924 additions and 167 deletions
+91 -30
View File
@@ -1736,39 +1736,41 @@ class TebusController extends Controller
$result_audit_backdate = $this->StokAuditGenerateTerakru($month_sebelum,$cawangan,$year_generate);
}
$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)
->whereYear('t_gadai','=',$year)
//->whereMonth('t_gadai','>',7)
->whereMonth('t_gadai','=',$month)
->where('sttebus','<>','')
->pluck('norujukan');
// $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)
// ->whereYear('t_gadai','=',$year)
// //->whereMonth('t_gadai','>',7)
// ->whereMonth('t_gadai','=',$month)
// ->where('sttebus','<>','')
// ->pluck('norujukan');
$sum_keun_tebus = Transaction::on('mysql7')
->leftJoin('transaksi_keuntungan as trans', function($join)
{
$join->on('transaction.norujukan', '=', 'trans.norujukan');
$join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
})
->whereIn('trans.norujukan',$get_norujukan)
->where('transaction.trans_type','<>','A')
->where('trans.margin_semasa','=',0) //3.80
->sum('keuntungan_rebet');
// $sum_keun_tebus = Transaction::on('mysql7')
// ->leftJoin('transaksi_keuntungan as trans', function($join)
// {
// $join->on('transaction.norujukan', '=', 'trans.norujukan');
// $join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
// })
// ->whereIn('trans.norujukan',$get_norujukan)
// ->where('transaction.trans_type','<>','A')
// ->where('trans.margin_semasa','=',0) //3.80
// ->sum('keuntungan_rebet');
$sum_keun_ansuran = Transaction::on('mysql7')
->leftJoin('transaksi_keuntungan as trans', function($join)
{
$join->on('transaction.norujukan', '=', 'trans.norujukan');
$join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
})
->whereIn('trans.norujukan',$get_norujukan)
->where('transaction.trans_type','A')
->where('trans.margin_semasa','=',0)
->sum('bayaran_keuntungan');
// $sum_keun_ansuran = Transaction::on('mysql7')
// ->leftJoin('transaksi_keuntungan as trans', function($join)
// {
// $join->on('transaction.norujukan', '=', 'trans.norujukan');
// $join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
// })
// ->whereIn('trans.norujukan',$get_norujukan)
// ->where('transaction.trans_type','A')
// ->where('trans.margin_semasa','=',0)
// ->sum('bayaran_keuntungan');
$total = $sum_keun_tebus + $sum_keun_ansuran;
// $total = $sum_keun_tebus + $sum_keun_ansuran;
$total = $this->calculateKeuntunganSemasa($tarikh,$request->kodcaw);
if(!$determine_past->isToday()){
$calculate_month = (int)$month_sekarang - $latest_month_akrunet->bulan;
@@ -1893,6 +1895,65 @@ class TebusController extends Controller
return response()->json($total_accrual_net);
}
private function calculateKeuntunganSemasa($currentDate,$kodcaw)
{
$cawangan = Cawangan::on('mysql7')->where('kodcaw', '=', $kodcaw)->first();
$firstMonth = (clone $currentDate)->firstOfMonth();
$lastMonth = (clone $currentDate)->endOfMonth();
/* Start Keuntungan Semasa Calculation */
$collection_trans = Transaction::on('mysql7')
->leftJoin('transaksi_keuntungan as trans', function ($join) {
$join->on('transaction.norujukan', '=', 'trans.norujukan');
$join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
})
->where('transaction.kodcaw', $kodcaw)
->whereYear('transaction.created_at', '=', $currentDate->year)
->whereMonth('transaction.created_at', '=', $currentDate->month)
->get();
$array_norujukan = $collection_trans->pluck('norujukan')->toArray();
$collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $array_norujukan)->where('tagbaru',0)->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) && ($t_gadai->year == $t_bayaran->year)) {
return false;
}else{
return true;
}
}
}
return false;
});
$total_ansuran = $keuntungan_semasa_collection->filter(function ($transaction){
return $transaction->trans_type == 'A';
})->sum('bayaran_keuntungan');
$total_tebus = $keuntungan_semasa_collection->filter(function ($transaction){
return $transaction->trans_type !== 'A';
})->sum('keuntungan_rebet');
/* Keuntungan Lelong */
$upahlelong = Lelong::on($cawangan['mysql'])
->where([['t_jual', '>=', $firstMonth], ['t_jual', '<=', $lastMonth], ['t_jual', '>', '2022-07-24']])
->whereYear('t_jual', '=', $currentDate->year)
->sum('bakiupah');
$total_keuntungan_semasa = ($total_ansuran + $total_tebus + $upahlelong);
/* End Keuntungan Semasa Calculation */
return $total_keuntungan_semasa;
}
public function kiraupahUjrahOnePercent($kodcaw,$norujukan){
$master = new MasterServices($kodcaw);
$response = $master->kiraupahUjrahOnePercent($kodcaw,$norujukan);