388 lines
18 KiB
PHP
388 lines
18 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use App\Gadai;
|
|
use App\Tebus;
|
|
use App\Transaction;
|
|
use App\TransaksiKeuntungan;
|
|
use App\Cawangan;
|
|
use App\Customer;
|
|
use App\TuntutBaki;
|
|
use App\Panjar;
|
|
use App\Lelong;
|
|
use App\Advansur;
|
|
use App\Vault;
|
|
use App\Tunai;
|
|
use App\Denominasi;
|
|
use App\HapusKira;
|
|
use App\GlCode;
|
|
use Carbon\Carbon;
|
|
|
|
class LaporanController extends Controller
|
|
{
|
|
public function laporanHarian(Request $request){
|
|
$tarikh_request = $request->tarikh;
|
|
|
|
$startDate = Carbon::parse($tarikh_request);
|
|
$firstDay = $startDate->firstOfMonth();
|
|
$startDateYear = Carbon::parse($tarikh_request);
|
|
$firstDayYear = $startDateYear->firstOfYear();
|
|
|
|
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first();
|
|
$laporan_harian = [];
|
|
//a
|
|
$total_gadai = Gadai::on($cawangan['mysql'])->where('t_gadai','=',$request->tarikh)->sum('pinjaman');
|
|
$total_tebus = Tebus::on($cawangan['mysql'])->where('t_tebus','=',$request->tarikh)->sum('pinjaman');
|
|
$total_ansuran = Transaction::on('mysql7')->whereRaw('DATE(created_at) = ?',[$request->tarikh])->where([['trans_type','=','A'],['kodcaw','=',$request->kodcaw]])->sum('duit_masuk');
|
|
// $total_keuntungan = TransaksiKeuntungan::on('mysql7')->whereDate('tarikh_bayaran','=',$request->tarikh)->sum('bayaran_keuntungan');
|
|
$total_upah = Advansur::on($cawangan['mysql'])->where('tarikh','=',$request->tarikh)->sum('upahdibayar');
|
|
$total_keuntungantebus = Tebus::on($cawangan['mysql'])->where('t_tebus','=',$request->tarikh)->sum('bakiupah');
|
|
|
|
$total_keuntunganansuran = 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');
|
|
})
|
|
->whereDate('trans.created_at','=',$request->tarikh)
|
|
->where('trans.trans_type','=','A')
|
|
->groupBy('trans.id')
|
|
->sum('bayaran_keuntungan');
|
|
|
|
// $total_ansuran = number_format($total_ansuran,2);
|
|
$total_keuntungan = floatval($total_upah) + floatval($total_keuntunganansuran) + floatval($total_keuntungantebus);
|
|
|
|
|
|
//b
|
|
$bilangan_gadai = Gadai::on($cawangan['mysql'])->where('t_gadai','=',$request->tarikh)->count();
|
|
$bilangan_tebus = Tebus::on($cawangan['mysql'])->where('t_tebus','=',$request->tarikh)->count();
|
|
$bilangan_ansuran = Transaction::on('mysql7')->whereRaw('DATE(created_at) = ?',[$request->tarikh])->where([['trans_type','=','A'],['kodcaw','=',$request->kodcaw]])->count();
|
|
$bilangan_customer_baru = Customer::on('mysql7')->where([['tarikhdaftar','=',$request->tarikh],['kodcaw',$request->kodcaw]])->count();
|
|
|
|
//c
|
|
/* Sistem */
|
|
$petibesi_sistem = Vault::on($cawangan['mysql'])->where('tarikh','=', $request->tarikh)->sum('bakiakhir');
|
|
|
|
/* Imbang Duga */
|
|
$totalbakiakhirtunai = 0;
|
|
|
|
$vault=Vault::on($cawangan['mysql'])
|
|
->where('kodcaw','=',$request->kodcaw)
|
|
->where('tarikh','<=', $request->tarikh)
|
|
->orderby('tarikh','desc')->first();
|
|
|
|
$tunai = Tunai::on($cawangan['mysql'])
|
|
->where('kodcaw','=',$request->kodcaw)
|
|
->where('tarikh','=', $request->tarikh)
|
|
->get();
|
|
|
|
$total = 0;
|
|
foreach($tunai as $index=>$money)
|
|
{
|
|
$total+=$money['baki'];
|
|
}
|
|
|
|
|
|
if($total != 0)
|
|
{
|
|
$totalbakiakhirtunai = $vault['bakiakhir'] + $total;
|
|
}else
|
|
{
|
|
$totalbakiakhirtunai = $vault['bakiakhir'];
|
|
}
|
|
|
|
/* Denominasi */
|
|
$petibesi_deno = Denominasi::on($cawangan['mysql'])->where('tarikh','=', $request->tarikh)->sum('txtjumlah');
|
|
|
|
|
|
//d
|
|
$panjar_harian = Panjar::on($cawangan['mysql'])->where('tarikh','=',$request->tarikh)->sum('bayaran');
|
|
$panjar_bulanan = Panjar::on($cawangan['mysql'])->where([['tarikh','<=',$request->tarikh],['tarikh','>=',$firstDay]])->sum('bayaran');
|
|
$panjar_tahunan = Panjar::on($cawangan['mysql'])->where([['tarikh','<=',$request->tarikh],['tarikh','>=',$firstDayYear]])->sum('bayaran');
|
|
|
|
//e
|
|
/* Imbang Duga */
|
|
|
|
$rekodkoop = Gadai::on($cawangan['mysql'])
|
|
->where('tagpalsu','=',0)
|
|
->where([['t_gadai','<=','2021-04-13'],['sttebus','=','']])
|
|
->orWhere([['sttebus','!=',''],['t_update','>',$request->tarikh],['t_gadai','<=','2021-04-13']])
|
|
->sum('pinjaman');
|
|
|
|
if($request->tarikh > '2021-04-13'){
|
|
$rekodtawarruq = Gadai::on($cawangan['mysql'])
|
|
->where('tagpalsu','=',0)
|
|
->where([['t_gadai','<=',$request->tarikh],['t_gadai','>','2021-04-13'],['sttebus','=','']])
|
|
->orWhere([['t_update','>',$request->tarikh],['sttebus','!=',''],['t_gadai','<=',$request->tarikh],['t_gadai','>=','2021-04-14']])
|
|
->sum('pinjaman');
|
|
}
|
|
|
|
$daterequest = new Carbon($request->tarikh);
|
|
$daterequest->addDays(1);
|
|
|
|
$bayaranpendahuluan = TransaksiKeuntungan::on('mysql7')
|
|
->join($cawangan['db_name'].'.gadai as db2','transaksi_keuntungan.norujukan','=','db2.norujukan')
|
|
->where('db2.sttebus','=','')
|
|
->where('db2.hargajualan','<>','null')
|
|
->where('tarikh_bayaran' ,'<=', $daterequest)
|
|
->sum('bayaran_pembiayaan');
|
|
|
|
$outstandingimbangduga = floatval($rekodkoop) + floatval($rekodtawarruq) - floatval($bayaranpendahuluan);
|
|
|
|
/* Stok Audit */
|
|
|
|
$stokaudit = Gadai::on($cawangan['mysql'])
|
|
->where('tagpalsu','=',0)
|
|
->where([['t_gadai','<=',$request->tarikh],['sttebus','=','']])
|
|
->orWhere([['t_update','>',$request->tarikh],['sttebus','!=',''],['t_gadai','<=',$request->tarikh]]);
|
|
|
|
$stokauditget = $stokaudit->get();
|
|
$stokauditnilaimarhun = $stokaudit->sum('nilaimarhun');
|
|
$stokauditcount = $stokaudit->count();
|
|
|
|
$totalstokaudit = 0;
|
|
foreach($stokauditget as $index1=>$stokA)
|
|
{
|
|
if($stokA['hargajualan'] == null)
|
|
$totalstokaudit += $stokA['pinjaman'];
|
|
else
|
|
$totalstokaudit += $stokA['bakipjm'];
|
|
}
|
|
|
|
|
|
/* Kawalan Stok */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//f
|
|
$data_lelong = Lelong::on($cawangan['mysql'])->where('t_jual','=',$request->tarikh)->get();
|
|
$bilangan_lelong = Lelong::on($cawangan['mysql'])->where('t_jual','=',$request->tarikh)->count();
|
|
|
|
$cas_lelong = 0;
|
|
$jumlah_lelong = 0;
|
|
$baki_lelong = 0;
|
|
$rugi_lelong = 0;
|
|
|
|
foreach($data_lelong as $index=>$lelong){
|
|
if($lelong['baki'] >= 0){
|
|
$cas_lelong += $lelong['cajlelong'];
|
|
$jumlah_lelong += $lelong['hargajual'];
|
|
$baki_lelong += $lelong['baki'];
|
|
}elseif($lelong['baki'] < 0){
|
|
$cas_lelong += $lelong['cajlelong'];
|
|
$jumlah_lelong += $lelong['hargajual'];
|
|
$rugi_lelong += abs($lelong['baki']);
|
|
}
|
|
}
|
|
|
|
//g
|
|
$bayar_baki_lelong = TuntutBaki::on($cawangan['mysql'])->where('tarikh','=',$request->tarikh)->sum('jumlah');
|
|
|
|
//h
|
|
$gadai_70 = Gadai::on($cawangan['mysql'])->where([['t_gadai','=',$request->tarikh],['percentpinj','<=',70]])->sum('pinjaman');
|
|
$gadai_75 = Gadai::on($cawangan['mysql'])->where([['t_gadai','=',$request->tarikh],['percentpinj','>',70],['percentpinj','<=',75]])->sum('pinjaman');
|
|
$gadai_80 = Gadai::on($cawangan['mysql'])->where([['t_gadai','=',$request->tarikh],['percentpinj','>',75],['percentpinj','<=',80]])->sum('pinjaman');
|
|
|
|
$nilaimarhun_70 = Gadai::on($cawangan['mysql'])->where([['t_gadai','=',$request->tarikh],['percentpinj','<=',70]])->sum('nilaimarhun');
|
|
$nilaimarhun_75 = Gadai::on($cawangan['mysql'])->where([['t_gadai','=',$request->tarikh],['percentpinj','>',70],['percentpinj','<=',75]])->sum('nilaimarhun');
|
|
$nilaimarhun_80 = Gadai::on($cawangan['mysql'])->where([['t_gadai','=',$request->tarikh],['percentpinj','>',75],['percentpinj','<=',80]])->sum('nilaimarhun');
|
|
|
|
$bilangan_70 = Gadai::on($cawangan['mysql'])->where([['t_gadai','=',$request->tarikh],['percentpinj','<=',70]])->count();
|
|
$bilangan_75 = Gadai::on($cawangan['mysql'])->where([['t_gadai','=',$request->tarikh],['percentpinj','>',70],['percentpinj','<=',75]])->count();
|
|
$bilangan_80 = Gadai::on($cawangan['mysql'])->where([['t_gadai','=',$request->tarikh],['percentpinj','>',75],['percentpinj','<=',80]])->count();
|
|
|
|
array_push($laporan_harian,[
|
|
'total_gadai'=>$total_gadai,
|
|
'total_tebus'=>$total_tebus,
|
|
'total_ansuran'=>$total_ansuran,
|
|
'bilangan_gadai'=>$bilangan_gadai,
|
|
'bilangan_tebus'=>$bilangan_tebus,
|
|
'bilangan_ansuran'=>$bilangan_ansuran,
|
|
'bilangan_customer_baru'=>$bilangan_customer_baru,
|
|
'bayar_baki_lelong'=>$bayar_baki_lelong,
|
|
'gadai_70'=>$gadai_70,
|
|
'gadai_75'=>$gadai_75,
|
|
'gadai_80'=>$gadai_80,
|
|
'nilaimarhun_70'=>$nilaimarhun_70,
|
|
'nilaimarhun_75'=>$nilaimarhun_75,
|
|
'nilaimarhun_80'=>$nilaimarhun_80,
|
|
'bilangan_70'=>$bilangan_70,
|
|
'bilangan_75'=>$bilangan_75,
|
|
'bilangan_80'=>$bilangan_80,
|
|
'panjar_harian'=>$panjar_harian,
|
|
'panjar_bulanan'=>$panjar_bulanan,
|
|
'panjar_tahunan'=>$panjar_tahunan,
|
|
'bilangan_lelong'=>$bilangan_lelong,
|
|
'cas_lelong'=>$cas_lelong,
|
|
'jumlah_lelong'=>$jumlah_lelong,
|
|
'baki_lelong'=>$baki_lelong,
|
|
'rugi_lelong'=>$rugi_lelong,
|
|
'total_keuntungan'=>floatval($total_keuntungan),
|
|
'petibesi_sistem'=>$petibesi_sistem,
|
|
'petibesi_deno'=>$petibesi_deno,
|
|
'stokauditpembiayaan'=>$totalstokaudit,
|
|
'stokauditnilaimarhun'=>$stokauditnilaimarhun,
|
|
'stokauditcount'=>$stokauditcount,
|
|
'petibesiimbangduga'=>$totalbakiakhirtunai,
|
|
'outstandingimbangduga'=>$outstandingimbangduga
|
|
|
|
]);
|
|
|
|
return response()->json($laporan_harian);
|
|
}
|
|
|
|
public function laporanTerkumpul(Request $request){
|
|
|
|
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first();
|
|
$laporan_terkumpul = [];
|
|
|
|
$gadai = Gadai::on($cawangan['mysql'])->where([['t_gadai','>=',$request->mula],['t_gadai','<=',$request->akhir]]);
|
|
|
|
$tebus = Tebus::on($cawangan['mysql'])->where([['t_tebus','>=',$request->mula],['t_tebus','<=',$request->akhir]]);
|
|
$ansuran = Transaction::on('mysql7')->whereDate('created_at','>=',$request->mula)->whereDate('created_at','<=',$request->akhir)->where([['trans_type','=','A'],['kodcaw','=',$request->kodcaw]]);
|
|
|
|
|
|
//a
|
|
$total_gadai = $gadai->sum('pinjaman');
|
|
$total_tebus = $tebus->sum('pinjaman');
|
|
$total_ansuran = $ansuran->sum('duit_masuk');
|
|
// $total_keuntungan = TransaksiKeuntungan::on('mysql7')->whereDate('tarikh_bayaran','=',$request->tarikh)->sum('bayaran_keuntungan');
|
|
$total_upah = Advansur::on($cawangan['mysql'])->where([['tarikh','>=',$request->mula],['tarikh','<=',$request->akhir]])->sum('upahdibayar');
|
|
$total_keuntungantebus = Tebus::on($cawangan['mysql'])->where([['t_tebus','>=',$request->mula],['t_tebus','<=',$request->akhir]])->sum('bakiupah');
|
|
|
|
$total_keuntunganansuran = 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');
|
|
})
|
|
->whereDate('trans.created_at','>=',$request->mula)
|
|
->whereDate('trans.created_at','<=',$request->akhir)
|
|
->where('trans.trans_type','=','A')
|
|
->groupBy('trans.id')
|
|
->sum('keuntungan_rebet');
|
|
|
|
// $total_ansuran = number_format($total_ansuran,2);
|
|
|
|
$total_keuntungan = floatval($total_upah) + floatval($total_keuntunganansuran) + floatval($total_keuntungantebus);
|
|
|
|
|
|
//b
|
|
$bilangan_gadai = $gadai->count();
|
|
$bilangan_tebus = $tebus->count();
|
|
$bilangan_ansuran = $ansuran->count();
|
|
$bilangan_customer_baru = Customer::on($cawangan['mysql'])->where([['tarikhdaftar','>=',$request->mula],['tarikhdaftar','<=',$request->akhir]])->count();
|
|
|
|
//f
|
|
$data_lelong = Lelong::on($cawangan['mysql'])->where([['t_jual','=',$request->mula],['t_jual','=',$request->akhir]])->get();
|
|
$bilangan_lelong = Lelong::on($cawangan['mysql'])->where([['t_jual','=',$request->mula],['t_jual','=',$request->akhir]])->count();
|
|
|
|
$cas_lelong = 0;
|
|
$jumlah_lelong = 0;
|
|
$baki_lelong = 0;
|
|
$rugi_lelong = 0;
|
|
|
|
foreach($data_lelong as $index=>$lelong){
|
|
if($lelong['baki'] >= 0){
|
|
$cas_lelong += $lelong['cajlelong'];
|
|
$jumlah_lelong += $lelong['hargajual'];
|
|
$baki_lelong += $lelong['baki'];
|
|
}elseif($lelong['baki'] < 0){
|
|
$cas_lelong += $lelong['cajlelong'];
|
|
$jumlah_lelong += $lelong['hargajual'];
|
|
$rugi_lelong += abs($lelong['baki']);
|
|
}
|
|
}
|
|
|
|
//g
|
|
$bayar_baki_lelong = TuntutBaki::on($cawangan['mysql'])->where([['tarikh','=',$request->mula],['tarikh','=',$request->akhir]])->sum('jumlah');
|
|
|
|
//h
|
|
$gadai_70 = Gadai::on($cawangan['mysql'])->where([['t_gadai','>=',$request->mula],['t_gadai','<=',$request->akhir],['percentpinj','<=',70]])->sum('pinjaman');
|
|
$gadai_75 = Gadai::on($cawangan['mysql'])->where([['t_gadai','>=',$request->mula],['t_gadai','<=',$request->akhir],['percentpinj','<=',75]])->sum('pinjaman');
|
|
$gadai_80 = Gadai::on($cawangan['mysql'])->where([['t_gadai','>=',$request->mula],['t_gadai','<=',$request->akhir],['percentpinj','>',75],['percentpinj','<=',80]])->sum('pinjaman');
|
|
|
|
$nilaimarhun_70 = Gadai::on($cawangan['mysql'])->where([['t_gadai','>=',$request->mula],['t_gadai','<=',$request->akhir],['percentpinj','<=',70]])->sum('nilaimarhun');
|
|
$nilaimarhun_75 = Gadai::on($cawangan['mysql'])->where([['t_gadai','>=',$request->mula],['t_gadai','<=',$request->akhir],['percentpinj','>',70],['percentpinj','<=',75]])->sum('nilaimarhun');
|
|
$nilaimarhun_80 = Gadai::on($cawangan['mysql'])->where([['t_gadai','>=',$request->mula],['t_gadai','<=',$request->akhir],['percentpinj','>',75],['percentpinj','<=',80]])->sum('nilaimarhun');
|
|
|
|
$bilangan_70 = Gadai::on($cawangan['mysql'])->where([['t_gadai','>=',$request->mula],['t_gadai','<=',$request->akhir],['percentpinj','<=',70]])->count();
|
|
$bilangan_75 = Gadai::on($cawangan['mysql'])->where([['t_gadai','>=',$request->mula],['t_gadai','<=',$request->akhir],['percentpinj','>',70],['percentpinj','<=',75]])->count();
|
|
$bilangan_80 = Gadai::on($cawangan['mysql'])->where([['t_gadai','>=',$request->mula],['t_gadai','<=',$request->akhir],['percentpinj','>',75],['percentpinj','<=',80]])->count();
|
|
|
|
array_push($laporan_terkumpul,[
|
|
'total_gadai'=>$total_gadai,
|
|
'total_tebus'=>$total_tebus,
|
|
'total_ansuran'=>$total_ansuran,
|
|
'bilangan_gadai'=>$bilangan_gadai,
|
|
'bilangan_tebus'=>$bilangan_tebus,
|
|
'bilangan_ansuran'=>$bilangan_ansuran,
|
|
'bilangan_customer_baru'=>$bilangan_customer_baru,
|
|
'bayar_baki_lelong'=>$bayar_baki_lelong,
|
|
'gadai_70'=>$gadai_70,
|
|
'gadai_75'=>$gadai_75,
|
|
'gadai_80'=>$gadai_80,
|
|
'nilaimarhun_70'=>$nilaimarhun_70,
|
|
'nilaimarhun_75'=>$nilaimarhun_75,
|
|
'nilaimarhun_80'=>$nilaimarhun_80,
|
|
'bilangan_70'=>$bilangan_70,
|
|
'bilangan_75'=>$bilangan_75,
|
|
'bilangan_80'=>$bilangan_80,
|
|
'bilangan_lelong'=>$bilangan_lelong,
|
|
'cas_lelong'=>$cas_lelong,
|
|
'jumlah_lelong'=>$jumlah_lelong,
|
|
'baki_lelong'=>$baki_lelong,
|
|
'rugi_lelong'=>$rugi_lelong,
|
|
'total_keuntungan'=>floatval($total_keuntungan)
|
|
|
|
]);
|
|
|
|
return response()->json($laporan_terkumpul);
|
|
}
|
|
|
|
|
|
public function CalcHapusKira($kodcaw,Request $request)
|
|
{
|
|
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
|
|
|
|
$hapuskira = HapusKira::on($cawangan['mysql'])
|
|
->where('kodcaw','=',$kodcaw)
|
|
->where('tarikh','<',$request->tarikh)
|
|
->sum('amaun');
|
|
|
|
return response()->json($hapuskira);
|
|
}
|
|
|
|
public function CalcXtra($kodcaw,Request $request)
|
|
{
|
|
|
|
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
|
|
|
|
$upahsimpan = GlCode::on($cawangan['mysql'])
|
|
->where('glcode','=','5000/413')
|
|
->sum('amaun');
|
|
|
|
$bakilelongxtra = GlCode::on($cawangan['mysql'])
|
|
->where('glcode','=','7000/190')
|
|
->sum('amaun');
|
|
|
|
$untungrugiterkumpul = GlCode::on($cawangan['mysql'])
|
|
->where('glcode','=','7000/201')
|
|
->sum('amaun');
|
|
|
|
$kerugianlelongxtra = GlCode::on($cawangan['mysql'])
|
|
->where('glcode','=','3000/120')
|
|
->sum('amaun');
|
|
|
|
$arrayxtra = ['upahsimpan' => floatval($upahsimpan), 'bakilelong' => floatval($bakilelongxtra), 'untungrugiterkumpul' => floatval($untungrugiterkumpul), 'kerugianlelong' => floatval($kerugianlelongxtra)];
|
|
|
|
return response()->json($arrayxtra);
|
|
}
|
|
|
|
}
|