diff --git a/app/Services/Reports/ImbangDugaService.php b/app/Services/Reports/ImbangDugaService.php index 63c12ad..8516993 100644 --- a/app/Services/Reports/ImbangDugaService.php +++ b/app/Services/Reports/ImbangDugaService.php @@ -15,6 +15,12 @@ use App\TransaksiKeuntungan; use App\GlDetail; use App\imbangdugalama; use App\GlCode; +use App\Customer; +use App\Tebus; +use App\Advansur; +use App\HapusKira; +use App\Panjar; +use App\Services\Reports\OnePercentService as ReportOne; use Carbon\Carbon; use Illuminate\Database\Eloquent\ModelNotFoundException; use Illuminate\Http\Response; @@ -609,6 +615,263 @@ class ImbangDugaService return $transaksi; } + + public function getUntungRugiTerkumpul() + { + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first(); + + $current = new Carbon($this->tarikh); + + $daterequest = new Carbon($this->tarikh); + $daterequest->addDays(1); + + $total = 0; + + //Untung Rugi Terkumpul Sebelum 01.12.2013 + $utgrugilama = imbangdugalama::on($cawangan['mysql']) //--masuk + ->sum('untung_t'); + + //Yuran Ahli + $yuranTlama = imbangdugalama::on($cawangan['mysql']) + ->sum('yuran_t'); + + $yuranbaru = Customer::on('mysql7') + ->where('tarikhdaftar','>','2013-12-31') + ->whereYear('tarikhdaftar','<',$current->year) + ->sum('yuranahli'); + + //Caj Lelong + $lelong = Lelong::on($cawangan['mysql']) //--masuk + ->whereNotNull('t_jual') + ->where('t_jual','>','2013-12-31') + ->whereYear('t_jual','<',$current->year) + ->sum('cajlelong'); + + $cajlelonglama = imbangdugalama::on($cawangan['mysql']) + ->sum('cajlelong_t'); + + + //Upah Simpan Tebus + $upahsimpantebus = Tebus::on($cawangan['mysql']) //--masuk + ->where('t_tebus','>','2013-12-31') + ->whereYear('t_tebus','<',$current->year) + ->sum('upahdibayar'); + + //Upah Simpan Lelong + $upahsimpanlelong = Lelong::on($cawangan['mysql']) //--masuk + ->where('t_jual','>','2013-12-31') + ->whereYear('t_jual','<',$current->year) + ->sum('bakiupah'); + + //Upah Simpan Advansur + $upahsimpanansur = Advansur::on($cawangan['mysql']) //--masuk + ->whereYear('tarikh','<',$current->year) + ->sum('upahdibayar'); + + //Upah Tawarruq + + $keuntungan_data = TransaksiKeuntungan::on('mysql7') + ->where('transaksi_keuntungan.tarikh_bayaran' ,'<=', $daterequest) + ->whereYear('transaksi_keuntungan.tarikh_bayaran','<',$current->year) + ->where('kodcaw',$this->kodcaw) + ->pluck('norujukan'); + + $gadaiData = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $keuntungan_data)->whereNull('hargajualan')->pluck('norujukan'); + + $upahsimpankeuntungansebelumtawarruq = TransaksiKeuntungan::on('mysql7') + ->where('tarikh_bayaran' ,'<=', $daterequest) + ->whereYear('tarikh_bayaran','<',$current->year) + ->whereIn('norujukan',$gadaiData) + ->sum('bayaran_keuntungan'); + + $upahsimpanlama = imbangdugalama::on($cawangan['mysql']) + ->sum('upah_t'); + + //GST Caj Lelong + $gstcajlelong = Lelong::on($cawangan['mysql']) //--masuk + ->where('t_jual','<=',$this->tarikh) + ->whereYear('t_jual','<',$current->year) + ->sum('gst_cl'); + + //Upah Hapus Kira + $upahhapuskira = HapusKira::on($cawangan['mysql']) + ->where('tarikh','>','2013-12-31') + ->whereYear('tarikh','<',$current->year) + ->sum('bakiupah'); + + $panjar1 = Panjar::on($cawangan['mysql']) + ->whereYear('tarikh','<',$current->year) + ->where('tag','=','1') + ->sum('bayaran'); + + $panjar2 = Panjar::on($cawangan['mysql']) + ->whereYear('tarikh','<',$current->year) + ->where('tag','=','2') + ->sum('bayaran'); + + $panjar3 = Panjar::on($cawangan['mysql']) + ->whereYear('tarikh','<',$current->year) + ->where('tag','=','3') + ->sum('bayaran'); + + $parameter = ($panjar1*-1) + ($panjar2*-1) + ($panjar3*-1); + + // $parameter = Parameter::on($cawangan['mysql']) //--masuk + // ->sum('sumpanjarlama'); + + //Keuntungan Tawarruq Sebenar + $keuntungansebenar = 0; + $dateSM = '2021-04-24'; + + if($this->tarikh < '2021-06-09') + { + $keuntungan_data = TransaksiKeuntungan::on('mysql7') + ->whereDate('transaksi_keuntungan.tarikh_bayaran', '<=', $this->tarikh) + ->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'<', $dateSM) + ->whereYear('tarikh_bayaran','<',$current->year) + ->where('kodcaw',$this->kodcaw) + ->pluck('norujukan'); + + $gadaiData = Gadai::on($cawangan['mysql'])->whereIn('norujukan',$keuntungan_data)->whereNotNull('hargajualan')->pluck('norujukan'); + + $keuntungan = TransaksiKeuntungan::on('mysql7') + ->whereIn('norujukan',$gadaiData) + ->whereDate('tarikh_bayaran', '<=', $this->tarikh) + ->whereDate('tarikh_bayaran' ,'<', $dateSM) + ->whereYear('tarikh_bayaran','<',$current->year) + ->sum('bayaran_keuntungan'); + + $keuntunganreducing_data = TransaksiKeuntungan::on('mysql7') + ->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'<=', $this->tarikh) + ->whereDate('transaksi_keuntungan.tarikh_bayaran','>=', $dateSM) + ->whereYear('tarikh_bayaran','<',$current->year) + ->where('kodcaw',$this->kodcaw) + ->pluck('norujukan'); + + $gadaiData = Gadai::on($cawangan['mysql'])->whereIn('norujukan',$keuntunganreducing_data)->whereNotNull('hargajualan')->pluck('norujukan'); + + $keuntunganreducing = TransaksiKeuntungan::on('mysql7') + ->whereIn('norujukan',$gadaiData) + ->whereDate('tarikh_bayaran' ,'<=', $this->tarikh) + ->whereDate('tarikh_bayaran','>=', $dateSM) + ->whereYear('tarikh_bayaran','<',$current->year) + ->sum('keuntungan_rebet'); + + $keuntungansebenar = ($keuntungan + $keuntunganreducing); + + + }else{ + + $keuntungan_data = TransaksiKeuntungan::on('mysql7') + ->whereDate('transaksi_keuntungan.tarikh_bayaran', '<=', $this->tarikh) + ->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'<', $dateSM) + ->whereYear('tarikh_bayaran','<',$current->year) + ->where('kodcaw',$this->kodcaw) + ->pluck('norujukan'); + + + $gadaiData = Gadai::on($cawangan['mysql'])->whereIn('norujukan',$keuntungan_data)->whereNotNull('hargajualan')->pluck('norujukan'); + + $keuntungan = TransaksiKeuntungan::on('mysql7')->whereIn('norujukan',$gadaiData)->sum('bayaran_keuntungan'); + + $keuntunganreducing_data = TransaksiKeuntungan::on('mysql7') + ->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'<', '2021-06-09') + ->whereDate('transaksi_keuntungan.tarikh_bayaran','>=', $dateSM) + ->whereYear('tarikh_bayaran','<',$current->year) + ->where('kodcaw',$this->kodcaw) + ->pluck('norujukan'); + + $gadaiData = Gadai::on($cawangan['mysql'])->whereIn('norujukan',$keuntunganreducing_data)->whereNotNull('hargajualan')->pluck('norujukan'); + + $keuntunganreducing = TransaksiKeuntungan::on('mysql7') + ->whereIn('norujukan',$gadaiData) + ->whereDate('tarikh_bayaran' ,'<', '2021-06-09') + ->whereDate('tarikh_bayaran','>=', $dateSM) + ->sum('keuntungan_rebet'); + + $bukanansuran_data = 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'); + }) + ->where('trans.trans_type','!=','A') + ->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'<=', $this->tarikh) + ->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'>=', '2021-06-09') + ->whereYear('tarikh_bayaran','<',$current->year) + ->where('trans.kodcaw',$this->kodcaw) + ->pluck('transaksi_keuntungan.norujukan'); + + $gadaiData = Gadai::on($cawangan['mysql']) + ->whereIn('norujukan',$bukanansuran_data) + ->whereNotNull('hargajualan') + ->pluck('norujukan'); + + $bukanansuran = TransaksiKeuntungan::on('mysql7') + ->whereIn('transaksi_keuntungan.norujukan',$gadaiData) + ->leftJoin('transaction as trans', function($join) + { + $join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan'); + $join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at'); + }) + ->where('trans.trans_type','!=','A') + ->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'<=', $this->tarikh) + ->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'>=', '2021-06-09') + ->whereYear('transaksi_keuntungan.tarikh_bayaran','<',$current->year) + ->sum('transaksi_keuntungan.keuntungan_rebet'); + + $ansuran_data = 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'); + }) + ->where('trans.trans_type','=','A') + ->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'<=', $this->tarikh) + ->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'>=', '2021-06-09') + ->whereYear('tarikh_bayaran','<',$current->year) + ->where('trans.kodcaw',$this->kodcaw) + ->pluck('transaksi_keuntungan.norujukan'); + + $gadaiData = Gadai::on($cawangan['mysql']) + ->whereIn('norujukan',$ansuran_data) + ->whereNotNull('hargajualan') + ->pluck('norujukan'); + + $ansuran = TransaksiKeuntungan::on('mysql7') + ->whereIn('transaksi_keuntungan.norujukan',$gadaiData) + ->leftJoin('transaction as trans', function($join) + { + $join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan'); + $join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at'); + }) + ->where('trans.trans_type','=','A') + ->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'<=', $this->tarikh) + ->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'>=', '2021-06-09') + ->whereYear('transaksi_keuntungan.tarikh_bayaran','<',$current->year) + ->sum('transaksi_keuntungan.bayaran_keuntungan'); + + $reports = new ReportOne($this->kodcaw); + $previous_date = new Carbon($this->tarikh); + $previous_date->subMonth()->endOfMonth()->toDateString(); + $onepercent = $reports->getTotalKeuntungan('B',$previous_date); + $ujrah = $reports->getTotalUjrah('B',$previous_date); + + $keuntungansebenar = ($keuntungan + $keuntunganreducing + $ansuran + $bukanansuran) + $onepercent + $ujrah; + + } + + + + $total = ($utgrugilama + $lelong + $upahsimpantebus + $upahsimpanlelong + $upahsimpanansur + $gstcajlelong + $keuntungansebenar + $upahsimpankeuntungansebelumtawarruq) + $parameter; + + if($this->kodcaw == '011229') + $total -= 45390.37; + + + return $total; + } + public function setImbangDugaBackup() { @@ -627,19 +890,21 @@ class ImbangDugaService $serahan = $totalpendser['serahan']; $ujrah = $accrual['ujrah']; $onepercent = $accrual['onepercent']; + $bayaranpend = -1*($bayaranpend); + $untungrugiterkumpul = $this->getUntungRugiTerkumpul(); $totalharta = imbangdugabackup::on($cawangan['mysql'])->where('tarikh', $this->tarikh) ->get() ->map(function ($ig) use ($keuntungan_penggadai,$tunaiditangan,$serahan,$bayaranpend) { - return floatval($tunaiditangan) + $ig['pembiayaantawarruq'] + $bayaranpend + $ig['pinjamankoop'] + $ig['emaspalsu'] + return floatval($tunaiditangan) + $ig['pembiayaantawarruq'] + (-$bayaranpend) + $ig['pinjamankoop'] + $ig['emaspalsu'] + $ig['pindahkekpkb'] + $ig['penghutangkaki'] + $ig['phapuskira'] + $ig['belian1stop'] + $keuntungan_penggadai + $serahan; }); $totaltanggungan = imbangdugabackup::on($cawangan['mysql'])->where('tarikh', $this->tarikh) ->get() - ->map(function ($ig) use ($ujrah, $onepercent, $keun_sebenar, $pend_terakru,$pendahuluan) { + ->map(function ($ig) use ($ujrah, $onepercent, $keun_sebenar, $pend_terakru,$pendahuluan,$untungrugiterkumpul) { return $pend_terakru + $ig['bds'] + $ig['perubatan'] + $ig['keraian'] + $ig['rugilelong'] + $ig['bakilelong'] - + $ig['wtd'] + $ig['untungrugiterkumpul'] + $keun_sebenar + $pendahuluan + $ig['cajlelong'] + + $ig['wtd'] + $untungrugiterkumpul + $keun_sebenar + $pendahuluan + $ig['cajlelong'] + $ig['cajperkhidmatan'] + $ig['cajlelongxtra'] + $ig['upahsimpanxtra'] + $ig['bakilelongxtra'] + $ig['rugilelongxtra'] + $ig['utgterkumpulxtra'] + $ig['jualan1stop'] + $ig['hapuskira'] + $ujrah + $onepercent; }); @@ -660,6 +925,7 @@ class ImbangDugaService 'pend_terakru' => $pend_terakru, 'ujrah' => $ujrah, 'onepercent' => $onepercent, + 'untungrugiterkumpul' => $untungrugiterkumpul, 'totalharta' => round($totalharta[0], 2), 'totaltanggungan' => round($totaltanggungan[0], 2), 'tagtally' => $booltally,