Files
api_arrahn/app/Http/Controllers/LaporanController.php
T
e.arrahn c620d015d9 server
2021-06-20 15:18:43 +08:00

280 lines
12 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('keuntungan_rebet');
// $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 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);
}
}