updated for previous issues about tuntutbaki duplicate and customer audit

This commit is contained in:
hafifierahman
2022-11-14 00:20:16 +08:00
parent 1baa436a74
commit b9f00bb2bf
5 changed files with 520 additions and 39 deletions
@@ -45,6 +45,7 @@ use App\StokAudit12;
use App\AuditCustomer;
use DB;
use DateTime;
use Carbon\Carbon;
use Illuminate\Pagination\Paginator;
use Illuminate\Support\Collection;
@@ -2947,4 +2948,254 @@ class AdminPageController extends Controller
return response()->json($gadai);
}
public function AkruKeuntunganSebenar(Request $request){
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first();
$current = Carbon::now();
$current = new Carbon();
$tarikh = new Carbon($request->tarikh);
$year = $current->year;
$month = $tarikh->month;
$test = Gadai::on($cawangan['mysql'])
->whereBetween('tempoh',[0.5,1])
->where('sttebus','<>','')
->whereYear('t_gadai',$current->year())
->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','<=',$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;
return response()->json($total);
}
public function getLaporanGadaiAllCaw(Request $request){
$cawangan_all = Cawangan::on('mysql7')->get();
$arraygadai = [];
foreach($cawangan_all as $index=>$cawangan){
// gadaian
$gadai=Gadai::on($cawangan['mysql'])
->where([['t_gadai','>=',$request->mula_date],['t_gadai','<=',$request->hingga_date]]);
$jumlah_gadai = $gadai->sum('pinjaman');
$data_gadai = $gadai->get();
$nokp_gadai = $gadai->distinct('nokp') ;
$jum_org_gadai = $nokp_gadai->count('nokp');
$jum_surat_gadai = $data_gadai->count('norujukan');
//penebusan (Tebus + Lelong + Ansuran)
$myDateTime = DateTime::createFromFormat('Y-m-d', $request->hingga_date);
$datez = $myDateTime->modify('+1 day')->format('Y-m-d');
$tebus = Gadai::on($cawangan['mysql'])
->where('sttebus','!=','')
->where([['t_update','>=',$request->mula_date],['t_update','<=',$request->hingga_date]]);
$jum_tebus = $tebus->sum('bakipjm');
// dd($jum_tebus) ;
$orgtebus = Gadai::on($cawangan['mysql'])
->where('sttebus','=','T')
->where([['t_update','>=',$request->mula_date],['t_update','<=',$request->hingga_date]]);
$jum_surat_t = $orgtebus->count('norujukan');
$nokp_tebus = $orgtebus->distinct('nokp') ;
$jum_org_tebus = $nokp_tebus->count('nokp');
$ansuran = Transaction::on('mysql7')
->leftJoin('transaksi_keuntungan', function($join)
{
$join->on('transaction.norujukan', '=', 'transaksi_keuntungan.norujukan');
$join->on('transaction.created_at', '=', 'transaksi_keuntungan.tarikh_bayaran');
})
->where('trans_type','=','A')
->where('transaksi_keuntungan.kodcaw','=',$cawangan['kodcaw'])
->where([['tarikh_bayaran','>=',$request->mula_date],['tarikh_bayaran','<=', $datez]]);
$jum_ansuran = $ansuran->sum('transaksi_keuntungan.bayaran_pembiayaan');
$jum_penebusan = $jum_tebus + $jum_ansuran ;
//Upah tebus (KEUNTUNGAN)
$myDateTime = DateTime::createFromFormat('Y-m-d', $request->hingga_date);
$datez = $myDateTime->modify('+1 day')->format('Y-m-d');
$lelongupahsimpan = Lelong::on($cawangan['mysql'])
->where([['t_jual','>=',$request->mula_date],['t_jual','<=',$request->hingga_date]]);
$jum_lelongupahsimpan = $lelongupahsimpan->sum('bakiupah');
$upahtebus = Tebus::on($cawangan['mysql'])
->rightJoin('gadai', 'gadai.norujukan', '=', 'tebus.norujukan')
->where([['tebus.jenistebus','=','T'],['gadai.hargajualan','=',NULL]])
->where([['t_tebus','>=',$request->mula_date],['t_tebus','<=',$request->hingga_date]]);
$jum_upahtebus = $upahtebus->sum('tebus.bakiupah');
$advansur = Advansur::on($cawangan['mysql'])
->where([['tarikh','>=',$request->mula_date],['tarikh','<=',$request->hingga_date]]);
$jum_advansur = $advansur->sum('upahDibayar');
$ansuranupah = Transaction::on('mysql7')
->leftJoin('transaksi_keuntungan', function($join)
{
$join->on('transaction.norujukan', '=', 'transaksi_keuntungan.norujukan');
$join->on('transaction.created_at', '=', 'transaksi_keuntungan.tarikh_bayaran');
})
->where('trans_type','=','A')
->where('transaksi_keuntungan.kodcaw','=',$cawangan['kodcaw'])
->where([['tarikh_bayaran','>=',$request->mula_date],['tarikh_bayaran','<=',$datez]]);
$jum_ansuranupah = $ansuranupah->sum('transaksi_keuntungan.bayaran_keuntungan');
$upahtawarruq = Transaction::on('mysql7')
->leftJoin('transaksi_keuntungan', function($join)
{
$join->on('transaction.norujukan', '=', 'transaksi_keuntungan.norujukan');
$join->on('transaction.created_at', '=', 'transaksi_keuntungan.tarikh_bayaran');
})
->where('trans_type','!=','A')
->where('transaksi_keuntungan.kodcaw','=',$cawangan['kodcaw'])
->where([['tarikh_bayaran','>=',$request->mula_date],['tarikh_bayaran','<=',$datez]]);
$jum_upahtawarruq = $upahtawarruq->sum('transaksi_keuntungan.keuntungan_rebet');
$jumlah_upah = $jum_lelongupahsimpan + $jum_upahtebus + $jum_advansur + $jum_upahtawarruq;
$jum_keseluruhan_upah = $jumlah_upah + $jum_ansuranupah;
$jum_pinjaman_semasa = $jumlah_gadai - $jum_penebusan;
//baki awal dan baki akhir
$myDateMonth = DateTime::createFromFormat('Y-m-d', $request->mula_date);
$month = $myDateMonth->modify('-1 day')->format('m');
// dd($month);
$myDateYear = DateTime::createFromFormat('Y-m-d', $request->mula_date);
$year = $myDateYear->format('Y');
// dd($year);
if($month == 1){
$audit = StokAudit1::on($cawangan['mysql'])->where('tahun',$year);
}elseif($month == 2){
$audit = StokAudit2::on($cawangan['mysql'])->where('tahun',$year);
}elseif($month == 3){
$audit = StokAudit3::on($cawangan['mysql'])->where('tahun',$year);
}elseif($month == 4){
$audit = StokAudit4::on($cawangan['mysql'])->where('tahun',$year);
}elseif($month == 5){
$audit = StokAudit5::on($cawangan['mysql'])->where('tahun',$year);
}elseif($month == 6){
$audit = StokAudit6::on($cawangan['mysql'])->where('tahun',$year);
}elseif($month == 7){
$audit = StokAudit7::on($cawangan['mysql'])->where('tahun',$year);
}elseif($month == 8){
$audit = StokAudit8::on($cawangan['mysql'])->where('tahun',$year);
}elseif($month == 9){
$audit = StokAudit9::on($cawangan['mysql'])->where('tahun',$year);
}elseif($month == 10){
$audit = StokAudit10::on($cawangan['mysql'])->where('tahun',$year);
}elseif($month == 11){
$audit = StokAudit11::on($cawangan['mysql'])->where('tahun',$year);
}elseif($month == 12){
$audit = StokAudit12::on($cawangan['mysql'])->where('tahun',$year);
}
$rekodaudit = $audit->get();
$bakiawal = $audit->sum('bakipjm');
$bakiakhir = $bakiawal + $jumlah_gadai - $jum_penebusan;
//pelanggan baru
$pelanggan_baru = Customer::on('mysql7')
->where('kodcaw','=',$cawangan['kodcaw'])
->where([['tarikhdaftar','>=',$request->mula_date],['tarikhdaftar','<=',$request->hingga_date]]);
$bil_pelanggan_baru = $pelanggan_baru->count('id');
array_push($arraygadai,[
"data_gadai" => $data_gadai,
"cawangan" => $cawangan['details_caw'],
"cawangankod" => $cawangan['kodcaw'],
"jum_org_gadai" => $jum_org_gadai,
"jumlah_gadai"=> $jumlah_gadai,
"jum_surat_gadai"=>$jum_surat_gadai,
"jum_surat_t" => $jum_surat_t,
"jum_org_tebus" => $jum_org_tebus,
"jum_penebusan" => $jum_penebusan,
"jum_pinjaman_semasa" => $jum_pinjaman_semasa,
"bil_pelanggan_baru" => $bil_pelanggan_baru,
"jumlah_upah" => $jumlah_upah,
"jum_ansuranupah" => $jum_ansuranupah,
"jum_keseluruhan_upah" => $jum_keseluruhan_upah,
"bakiawal" => $bakiawal,
"bakiakhir" => $bakiakhir
]);
}
// dd($jum_lelongupahsimpan, $jum_upahtebus, $jum_advansur, $jum_ansuranupah, $jum_upahtawarruq );
return response()->json($arraygadai,200);
}
}