updated for previous issues about tuntutbaki duplicate and customer audit
This commit is contained in:
@@ -35,6 +35,7 @@ use App\StokAudit10;
|
||||
use App\StokAudit11;
|
||||
use App\StokAudit12;
|
||||
|
||||
use App\AkruNet;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
@@ -1932,56 +1933,214 @@ class TebusController extends Controller
|
||||
return response(0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function calculationKeuntunganPenggadai($kodcaw,Request $request)
|
||||
{
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
|
||||
|
||||
$determine_past = new Carbon($request->tarikh);
|
||||
$date = new Carbon($request->tarikh);
|
||||
$date_sekarang = clone $date;
|
||||
$month_sebelum = $date->subMonth()->format('m');
|
||||
$month_sekarang = $date->format('m');
|
||||
$month_sekarang = $date_sekarang->format('m');
|
||||
$year_generate = $date->format('Y');
|
||||
|
||||
switch($month_sebelum){
|
||||
case '01': $audit_backdate = StokAudit1::on($cawangan['mysql'])->where('tahun',$year_generate);
|
||||
if($determine_past->isToday())
|
||||
{
|
||||
$audit_now = Gadai::on($cawangan['mysql'])
|
||||
->where([['tagpalsu','=',0],['t_gadai','<=',$request->tarikh],['sttebus','=','']])
|
||||
->orWhere([['tagpalsu','=',0],['t_update','>',$request->tarikh],['sttebus','!=',''],['t_gadai','<=',$request->tarikh]])
|
||||
->orderBy('t_gadai', 'ASC')
|
||||
->orderBy('sirig', 'ASC');
|
||||
|
||||
$totaltunggakan_now = $audit_now->sum('tunggakan');
|
||||
}else{
|
||||
|
||||
$result_audit_backdate = $this->StokAuditGenerateTerakru($month_sekarang,$cawangan,$year_generate);
|
||||
$totaltunggakan_now = $result_audit_backdate->sum('upahblmbyar');
|
||||
}
|
||||
|
||||
return response()->json($totaltunggakan_now);
|
||||
|
||||
}
|
||||
|
||||
public function StokAuditGenerateTerakru($Month = null, $cawangan = [], $year_generate = null) : Object{
|
||||
switch($Month){
|
||||
case '01': return $audit_backdate = StokAudit1::on($cawangan['mysql'])->where('tahun',$year_generate);
|
||||
break;
|
||||
case '02': $audit_backdate = StokAudit2::on($cawangan['mysql'])->where('tahun',$year_generate);
|
||||
case '02': return $audit_backdate = StokAudit2::on($cawangan['mysql'])->where('tahun',$year_generate);
|
||||
break;
|
||||
case '03': $audit_backdate = StokAudit3::on($cawangan['mysql'])->where('tahun',$year_generate);
|
||||
case '03': return $audit_backdate = StokAudit3::on($cawangan['mysql'])->where('tahun',$year_generate);
|
||||
break;
|
||||
case '04': $audit_backdate = StokAudit4::on($cawangan['mysql'])->where('tahun',$year_generate);
|
||||
case '04': return $audit_backdate = StokAudit4::on($cawangan['mysql'])->where('tahun',$year_generate);
|
||||
break;
|
||||
case '05': $audit_backdate = StokAudit5::on($cawangan['mysql'])->where('tahun',$year_generate);
|
||||
case '05': return $audit_backdate = StokAudit5::on($cawangan['mysql'])->where('tahun',$year_generate);
|
||||
break;
|
||||
case '06': $audit_backdate = StokAudit6::on($cawangan['mysql'])->where('tahun',$year_generate);
|
||||
case '06': return $audit_backdate = StokAudit6::on($cawangan['mysql'])->where('tahun',$year_generate);
|
||||
break;
|
||||
case '07': $audit_backdate = StokAudit7::on($cawangan['mysql'])->where('tahun',$year_generate);
|
||||
case '07': return $audit_backdate = StokAudit7::on($cawangan['mysql'])->where('tahun',$year_generate);
|
||||
break;
|
||||
case '08': $audit_backdate = StokAudit8::on($cawangan['mysql'])->where('tahun',$year_generate);
|
||||
case '08': return $audit_backdate = StokAudit8::on($cawangan['mysql'])->where('tahun',$year_generate);
|
||||
break;
|
||||
case '09': $audit_backdate = StokAudit9::on($cawangan['mysql'])->where('tahun',$year_generate);
|
||||
case '09': return $audit_backdate = StokAudit9::on($cawangan['mysql'])->where('tahun',$year_generate);
|
||||
break;
|
||||
case '10': $audit_backdate = StokAudit10::on($cawangan['mysql'])->where('tahun',$year_generate);
|
||||
case '10': return $audit_backdate = StokAudit10::on($cawangan['mysql'])->where('tahun',$year_generate);
|
||||
break;
|
||||
case '11': $audit_backdate = StokAudit11::on($cawangan['mysql'])->where('tahun',$year_generate);
|
||||
case '11': return $audit_backdate = StokAudit11::on($cawangan['mysql'])->where('tahun',$year_generate);
|
||||
break;
|
||||
case '12': $audit_backdate = StokAudit12::on($cawangan['mysql'])->where('tahun',$year_generate);
|
||||
case '12': return $audit_backdate = StokAudit12::on($cawangan['mysql'])->where('tahun',$year_generate);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public function CalculationPendapatanTerakru(Request $request)
|
||||
{
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first();
|
||||
|
||||
$date = new Carbon($request->tarikh);
|
||||
|
||||
$current = Carbon::now();
|
||||
$current = new Carbon();
|
||||
$tarikh = new Carbon($request->tarikh);
|
||||
|
||||
$date_sebelum = clone $date;
|
||||
$determine_past = new Carbon($request->tarikh);
|
||||
$date_sebelum = $date_sebelum->firstOfMonth();
|
||||
$month_sebelum = $date_sebelum->subMonth()->format('m');
|
||||
$month_sekarang = $date->format('m');
|
||||
$year_generate = $date->format('Y');
|
||||
$haripertama = $date->firstOfMonth();
|
||||
$haripertama_extension = $haripertama->toDateString();
|
||||
$datenow = new Carbon($request->tarikh);
|
||||
$year = $current->year;
|
||||
$month = $tarikh->month;
|
||||
|
||||
|
||||
$audit_now = Gadai::on($cawangan['mysql'])
|
||||
$intmonth_sebelum = (int)$month_sebelum;
|
||||
$intmonth_sekarang = (int)$month_sekarang;
|
||||
|
||||
$latest_month_akrunet = AkruNet::on($cawangan['mysql'])
|
||||
->where('tahun','=',$year_generate)
|
||||
->latest('bulan')->first();
|
||||
|
||||
|
||||
$calculate_month = (int)$month_sekarang - $latest_month_akrunet->bulan;
|
||||
|
||||
if($calculate_month > 1){
|
||||
|
||||
}else if($calculate_month == 1){
|
||||
|
||||
$jumlahakru = AkruNet::on($cawangan['mysql'])
|
||||
->sum('jumlah');
|
||||
|
||||
}else if($calculate_month <= 0){
|
||||
$jumlahakru = AkruNet::on($cawangan['mysql'])
|
||||
->where('bulan','<',$intmonth_sekarang)
|
||||
->sum('jumlah');
|
||||
}
|
||||
|
||||
if($year_generate == 2022 && $intmonth_sebelum > 4)
|
||||
{
|
||||
$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');
|
||||
|
||||
$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','T')
|
||||
->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')
|
||||
->sum('bayaran_keuntungan');
|
||||
|
||||
$total = $sum_keun_tebus + $sum_keun_ansuran;
|
||||
|
||||
|
||||
if($determine_past->isToday())
|
||||
{
|
||||
$audit_now = Gadai::on($cawangan['mysql'])
|
||||
->where([['tagpalsu','=',0],['t_gadai','<=',$request->tarikh],['sttebus','=','']])
|
||||
->orWhere([['tagpalsu','=',0],['t_update','>',$request->tarikh],['sttebus','!=',''],['t_gadai','<=',$request->tarikh]])
|
||||
->orderBy('t_gadai', 'ASC')
|
||||
->orderBy('sirig', 'ASC');
|
||||
|
||||
$totaltunggakan_now = $audit_now->sum('tunggakan');
|
||||
$totaltunggakan_sebelum = $audit_backdate->sum('upahblmbyar');
|
||||
$totaltunggakan_now = $audit_now->sum('tunggakan');
|
||||
$totaltunggakan_sebelum = $result_audit_backdate->sum('upahblmbyar');
|
||||
|
||||
$request_dibina = new \Illuminate\Http\Request([
|
||||
'mula' => $haripertama_extension,
|
||||
'hingga' => $datenow->toDateString(),
|
||||
'kodcaw' => $request->kodcaw,
|
||||
]);
|
||||
|
||||
$calculation_keuntungan_sebenar = $this->untungrugicalculationLejer($request->kodcaw,$request_dibina);
|
||||
$upah_diterima = $calculation_keuntungan_sebenar->getContent();
|
||||
$calculation = $totaltunggakan_sebelum - $upah_diterima;
|
||||
$accrual_net = $totaltunggakan_now - $calculation;
|
||||
|
||||
}else{
|
||||
|
||||
|
||||
$result_audit_stated = $this->StokAuditGenerateTerakru($month_sekarang,$cawangan,$year_generate);
|
||||
|
||||
$totaltunggakan_now = $result_audit_stated->sum('upahblmbyar');
|
||||
$totaltunggakan_sebelum = $result_audit_backdate->sum('upahblmbyar');
|
||||
|
||||
$request_dibina = new \Illuminate\Http\Request([
|
||||
'mula' => $haripertama_extension,
|
||||
'hingga' => $date->endOfMonth()->toDateString(),
|
||||
'kodcaw' => $request->kodcaw,
|
||||
]);
|
||||
|
||||
$calculation_keuntungan_sebenar = $this->untungrugicalculationLejer($request->kodcaw,$request_dibina);
|
||||
$calculation_upahsimpan = $this->calculationKeuntunganSebenarLejer($request->kodcaw,$request_dibina);
|
||||
|
||||
$upah_diterima = $calculation_keuntungan_sebenar->getContent() + $calculation_upahsimpan->getContent();
|
||||
$calculation = $totaltunggakan_sebelum - $upah_diterima;
|
||||
$accrual_net = $totaltunggakan_now - $calculation;
|
||||
|
||||
}
|
||||
|
||||
if($calculate_month <= 1){
|
||||
$available_akru = AkruNet::on($cawangan['mysql'])
|
||||
->where('bulan', (int)$month_sekarang)
|
||||
->get()->toArray();
|
||||
|
||||
if(sizeof($available_akru) == 0)
|
||||
{
|
||||
$akrunet = new AkruNet();
|
||||
$akrunet->setConnection($cawangan['mysql']);
|
||||
$akrunet->tahun = $current->year;
|
||||
$akrunet->bulan = $tarikh->month;
|
||||
$akrunet->jumlah = $accrual_net;
|
||||
$akrunet->save();
|
||||
}
|
||||
}
|
||||
|
||||
dd($totaltunggakan_now,$totaltunggakan_sebelum);
|
||||
|
||||
|
||||
$total_accrual_net = ($jumlahakru + $accrual_net) - $total;
|
||||
|
||||
return response()->json($total_accrual_net);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user