kodcaw = $kodcaw; $this->mula = $mula; $this->hingga = $hingga; } private function getTarikhTawarruq($kodcaw){ switch ($this->kodcaw) { case 'KB2': $tarikhtawarruq = '2021-04-13'; break; case 'WCY': $tarikhtawarruq = '2021-05-04'; break; case '1STOP': $tarikhtawarruq = '2021-05-09'; break; case '020301': $tarikhtawarruq = '2021-05-18'; break; case 'ALS': $tarikhtawarruq = '2021-05-24'; break; case 'WB': $tarikhtawarruq = '2021-05-24'; break; case 'APM': $tarikhtawarruq = '2021-06-08'; break; case 'ARM': $tarikhtawarruq = '2021-06-08'; break; case '020306': $tarikhtawarruq = '2021-06-08'; break; case '010311': $tarikhtawarruq = '2021-06-13'; break; case 'GC': $tarikhtawarruq = '2021-06-13'; break; case 'JLI': $tarikhtawarruq = '2021-06-13'; break; case '010621': $tarikhtawarruq = '2021-06-15'; break; case 'ARP': $tarikhtawarruq = '2021-06-15'; break; case '010621': $tarikhtawarruq = '2021-06-21'; break; case '010136': $tarikhtawarruq = '2021-06-20'; break; case '011235': $tarikhtawarruq = '2021-06-21'; break; case '011227': $tarikhtawarruq = '2021-06-21'; break; case '010620': $tarikhtawarruq = '2021-06-21'; break; case '010617': $tarikhtawarruq = '2021-06-21'; break; case '010915': $tarikhtawarruq = '2021-06-22'; break; case '011228': $tarikhtawarruq = '2021-06-22'; break; case '010219': $tarikhtawarruq = '2021-06-22'; break; case '011230': $tarikhtawarruq = '2021-06-23'; break; case '011229': $tarikhtawarruq = '2021-06-22'; break; case '011013': $tarikhtawarruq = '2021-06-23'; break; case '011412': $tarikhtawarruq = '2021-06-23'; break; case '011234': $tarikhtawarruq = '2021-06-28'; break; case '020303': $tarikhtawarruq = '2021-06-29'; break; case '010618': $tarikhtawarruq = '2021-06-29'; break; case '011231': $tarikhtawarruq = '2021-06-23'; break; case '011232': $tarikhtawarruq = '2021-06-28'; break; case '011233': $tarikhtawarruq = '2021-06-28'; break; } return $tarikhtawarruq; } public function getPinjamanDiberi() { $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first(); $gadai = Gadai::on($cawangan['mysql']) ->where('tagpalsu','=',0) ->where([['t_gadai','>=',$this->mula],['t_gadai','<=',$this->hingga]]) ->sum('pinjaman'); $tebus = Gadai::on($cawangan['mysql']) ->join('tebus as teb','teb.norujukan','=','gadai.norujukan') ->where('gadai.sttebus','=','T') ->where([['teb.t_tebus','>=',$this->mula],['teb.t_tebus','<=',$this->hingga]]) ->sum('teb.pinjaman'); $pembiayaanlelong = Lelong::on($cawangan['mysql']) ->join('gadai as gad','gad.norujukan','=','lelong.norujukan') ->where([['t_jual','>=',$this->mula],['t_jual','<=',$this->hingga]]) ->sum('lelong.pinjaman'); $tebus = $tebus + $pembiayaanlelong; $array_rekodemas = ['Gadai' => $gadai,'Tebus' => $tebus]; return $array_rekodemas; } public function getPembiayaanTawarruq() { $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first(); $Gadai = Gadai::on($cawangan['mysql'])->where([['t_gadai','>=',$this->mula],['t_gadai','<=',$this->hingga],['hargajualan','<>','NULL']])->sum('pinjaman'); $Tebus = Gadai::on($cawangan['mysql']) ->where('gadai.tagpalsu','=',0) ->where([['gadai.t_update','>=',$this->mula],['gadai.t_update','<=',$this->hingga],['gadai.hargajualan','<>','NULL']]) ->whereIn('gadai.sttebus', ['T', 'L']) ->sum('gadai.pinjaman'); $rekod_pinjamandiberi = ['Gadai' => $Gadai,'Tebus' => $Tebus]; return $rekod_pinjamandiberi; } public function getBayaranPendahuluan() { $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first(); $datemula = new Carbon($this->mula); $datemula->addDays(1); $datehingga = new Carbon($this->hingga); $datehingga->addDays(1); $transaksi_data = TransaksiKeuntungan::on('mysql7') ->whereDate('tarikh_bayaran','<=', $this->hingga) ->whereDate('tarikh_bayaran','>=', $this->mula) ->where('kodcaw',$this->kodcaw) ->pluck('norujukan'); $transaksi_kredit_gadai = Gadai::on($cawangan['mysql']) ->whereIn('norujukan',$transaksi_data) ->where([['hargajualan','<>','null']]) ->pluck('norujukan'); $transaksi_kredit = 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'); }) ->whereIn('transaksi_keuntungan.norujukan',$transaksi_kredit_gadai) ->where('trans.trans_type','=','A') ->whereDate('tarikh_bayaran','<=', $this->hingga) ->whereDate('tarikh_bayaran','>=', $this->mula) ->sum('bayaran_pembiayaan'); $tebus = Gadai::on($cawangan['mysql']) ->select('gadai.norujukan','gadai.hargajualan','gadai.bakihargajualan') ->whereIn('gadai.sttebus',['T','L']) ->where([['t_update','>=',$this->mula],['t_update','<=',$this->hingga]]) ->groupBy('gadai.norujukan') ->get(); $arraytebus = array(); foreach($tebus as $index => $t) { if($t['hargajualan'] != $t['bakihargajualan']) { array_push($arraytebus,$t['norujukan']); } } $transaksi_debit = 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') ->whereIn('trans.norujukan',$arraytebus) ->sum('bayaran_pembiayaan'); $arraylejer = ["keluar" => $transaksi_debit,"masuk" => $transaksi_kredit]; return $arraylejer; } public function getPendahuluanSerahan() { $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first(); $serahanpkb = '1000/020'; $serahanjmc = '1000/026'; $pendahuluanpkb = '7000/102'; $pendahuluanjmc = '7000/106'; $serahankoperasi = '1000/090'; //Selepas Tawarruq $serahanpkbTawarruq = GlDetail::on($cawangan['mysql']) ->where('ktacct','=',$serahanpkb) ->where('tarikh','>=', $this->mula) ->where('tarikh','<=', $this->hingga) ->where('tarikh','>','2021-03-24') ->sum('serahan'); //Sebelum Tawarruq if($this->kodcaw == 'KB2' || $this->kodcaw == 'WCY' || $this->kodcaw == '1STOP' || $this->kodcaw == 'ARM' || $this->kodcaw == 'APM' || $this->kodcaw == '010621' || $this->kodcaw == '010915') { $serahanpkb = GlDetail::on($cawangan['mysql']) ->where('dtacct','=',$serahanpkb) ->where('tarikh','>=', $this->mula) ->where('tarikh','<=', $this->hingga) ->where('tarikh','>','2013-12-31') ->sum('amaun'); $serahanJMC = GlDetail::on($cawangan['mysql']) ->where('dtacct','=',$serahanjmc) ->where('tarikh','>=', $this->mula) ->where('tarikh','<=', $this->hingga) ->where('tarikh','>','2013-12-31') ->sum('amaun'); if($this->mula <= '2013-12-31') { $serahanpkblama = imbangdugalama::on($cawangan['mysql']) ->sum('serahan_pkb'); $serahanjmclama = imbangdugalama::on($cawangan['mysql']) ->sum('serahan_jmc'); $totaljmc = $serahanJMC + $serahanjmclama; $totalpkb = $serahanpkb + $serahanpkblama; $totalserahan = $serahanpkbTawarruq + $totaljmc + $totalpkb; }else{ $totaljmc = $serahanJMC; $totalpkb = $serahanpkb; $totalserahan = $serahanpkbTawarruq + $totaljmc + $totalpkb; } }else{ if($this->kodcaw == '020301') $serahanbaru = '1000/030'; else $serahanbaru = '1000/026'; $serahanpkb = GlDetail::on($cawangan['mysql']) ->where('dtacct','=',$serahanpkb) ->where('tarikh','>=', $this->mula) ->where('tarikh','<=', $this->hingga) ->sum('amaun'); $serahanJMC = GlDetail::on($cawangan['mysql']) ->where('dtacct','=',$serahanbaru) ->where('tarikh','>=', $this->mula) ->where('tarikh','<=', $this->hingga) ->sum('amaun'); $totalserahan = $serahanpkbTawarruq + $serahanpkb + $serahanJMC; } //Selepas Tawarruq $pendahuluanPKBtawarruq = GlDetail::on($cawangan['mysql']) ->where('ktacct','=',$pendahuluanpkb) ->where([['tarikh','>=', $this->mula],['tarikh','<=', $this->hingga],['tarikh','>','2021-03-24']]) ->sum('pendahuluan'); //Sebelum Tawarruq $pendahuluanPKB = GlDetail::on($cawangan['mysql']) ->where('ktacct','=',$pendahuluanpkb) ->where([['tarikh','>=', $this->mula],['tarikh','<=', $this->hingga],['tarikh','>','2013-12-31']]) ->sum('amaun'); $pendahuluanJMC = GlDetail::on($cawangan['mysql']) ->where('ktacct','=','7000/106') ->where([['tarikh','>=', $this->mula],['tarikh','<=', $this->hingga],['tarikh','>','2013-12-31']]) ->sum('amaun'); if($this->mula <= '2013-12-31') { $pendahuluanpkblama = imbangdugalama::on($cawangan['mysql']) ->sum('pendahuluan_pkb'); $pendahuluanjmclama = imbangdugalama::on($cawangan['mysql']) ->sum('pendahuluan_jmc'); $total = $pendahuluanPKBtawarruq + $pendahuluanjmclama + $pendahuluanpkblama + $pendahuluanPKB + $pendahuluanJMC; $pindahkekpkb = GlCode::on($cawangan['mysql']) ->where('glcode','=',$serahankoperasi) ->sum('amaun'); }else{ $total = $pendahuluanPKBtawarruq + $pendahuluanPKB + $pendahuluanJMC; $pindahkekpkb = 0; } $arraypend = ['pendahuluan' => $total,'serahan' => $totalserahan,'pindahkekpkb' => $pindahkekpkb]; return $arraypend; } public function getpanjar() { $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first(); $baikidanselenggara = Panjar::on($cawangan['mysql']) ->where('tarikh','>=', $this->mula) ->where('tarikh','<=', $this->hingga) ->where('tag', '=', 2) ->sum('bayaran'); $perubatan = Panjar::on($cawangan['mysql']) ->where('tarikh','>=', $this->mula) ->where('tarikh','<=', $this->hingga) ->where('tag', '=', 1) ->sum('bayaran'); $keraian = Panjar::on($cawangan['mysql']) ->where('tarikh','>=', $this->mula) ->where('tarikh','<=', $this->hingga) ->where('tag', '=', 3) ->sum('bayaran'); $arraycalculation = ['bds' => $baikidanselenggara, 'perubatan' => $perubatan, 'keraian' => $keraian]; return $arraycalculation; } public function BakiLelongCalculation() { $cas_lelong = 0; $jumlah_lelong = 0; $baki_lelong = 0; $rugi_lelong = 0; $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first(); $bakilelong = Lelong::on($cawangan['mysql']) ->where('trkhtuntut','>=',$this->mula) ->where('trkhtuntut','<=',$this->hingga) ->where('baki','>=',0) ->sum('baki'); $rugilelong = Lelong::on($cawangan['mysql']) ->where('trkhtuntut','>=',$this->mula) ->where('trkhtuntut','<=',$this->hingga) ->where('baki','<',0) ->sum('baki'); $data_lelong = Lelong::on($cawangan['mysql'])->where([['t_jual','>=',$this->mula],['t_jual','<=',$this->hingga]])->get(); 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']); } } $arraylelong = ['bakilelong' => $bakilelong, 'rugilelong' => $rugilelong, 'baki' => $baki_lelong, 'rugi' => $rugi_lelong, 'jumlahlelong' => $jumlah_lelong, 'caslelong' => $cas_lelong]; return $arraylelong; } public function getKeuntunganSebenar() { $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first(); $total = 0; $keuntungansebelumtawarruq = 0; //Keuntungan Selepas Tawarruq $keuntungan_data = TransaksiKeuntungan::on('mysql7') // ->join($cawangan['db_name'].'.gadai as db2','transaksi_keuntungan.norujukan','=','db2.norujukan') ->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'>=', $this->mula) ->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'<=', $this->hingga) // ->whereYear('transaksi_keuntungan.tarikh_bayaran','=',$current->year) // ->whereNull('db2.hargajualan') // ->sum('bayaran_keuntungan'); // ->get(); ->pluck('norujukan'); $gadaiData = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $keuntungan_data)->whereNull('hargajualan')->pluck('norujukan'); $keuntungan = TransaksiKeuntungan::on('mysql7')->whereIn('norujukan',$gadaiData)->sum('bayaran_keuntungan'); // $keuntungan = 0; // if($keuntungan_data){ // foreach($keuntungan_data as $index=>$keuntunganData){ // $gadaiData = Gadai::on($cawangan['mysql'])->where([['norujukan',$keuntunganData['norujukan']],['hargajualan',null]])->first(); // if($gadaiData){ // $keuntungan += $keuntunganData['bayaran_keuntungan']; // } // } // } $upahtebus = Tebus::on($cawangan['mysql']) ->where([['t_tebus','>=',$this->mula],['t_tebus','<=',$this->hingga],['t_tebus','>','2013-12-31']]) // ->whereYear('t_tebus','=',$current->year) ->sum('upahdibayar'); $upahlelong = Lelong::on($cawangan['mysql']) ->where([['t_jual','>=',$this->mula],['t_jual','<=',$this->hingga],['t_jual','>','2013-12-31'],['t_jual','<=','2022-07-24']]) // ->whereYear('t_jual','=',$current->year) ->sum('bakiupah'); $upahansur = Advansur::on($cawangan['mysql']) ->where('tarikh','>=',$this->mula) ->where('tarikh','<=',$this->hingga) // ->whereYear('tarikh','=',$current->year) ->sum('upahdibayar'); $keuntungansebelumtawarruq = $upahtebus + $upahlelong + $upahansur; // $keuntunganselepastawarruq = $keuntunganselepastawarruqupah; // $total = $keuntungansebelumtawarruq + $keuntunganselepastawarruq; $total = $keuntungansebelumtawarruq + $keuntungan; return $total; } public function SemakanKeuntunganLejer(){ $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first(); $current = Carbon::now(); $current = new Carbon(); $mulaCarbon = new Carbon($this->mula); $hinggaCarbon = new Carbon($this->hingga); /* Start Keuntungan Sebenar Calculation */ $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)->whereDate('t_update','>=',$this->mula)->whereDate('t_update','<=',$this->hingga)->where('sttebus','<>','')->pluck('norujukan'); $sum_keun = Transaction::on('mysql7') ->selectRaw("trans.norujukan,SUM(CASE WHEN (transaction.trans_type) <> 'A' THEN (trans.keuntungan_rebet) ELSE 0 END) AS sum_keun,SUM(CASE WHEN (transaction.trans_type) = 'A' AND (trans.margin_semasa) = 0 THEN (trans.bayaran_keuntungan) ELSE 0 END) AS sum_bayaran") ->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)->get()->toArray(); $sum_keuntungan = ($sum_keun) ? $sum_keun[0]['sum_keun'] : 0; $sum_bayaran = ($sum_keun) ? $sum_keun[0]['sum_bayaran'] : 0; // $get_norujukan_ansuran = 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) // ->whereDate('t_update','>=',$this->mula)->whereDate('t_update','<=',$this->hingga) // ->where('sttebus','=','') // ->where('tagbaru','=',1) // ->pluck('norujukan'); // $summation_ansuran = TransaksiKeuntungan::on('mysql7') // ->whereIn('norujukan',$get_norujukan_ansuran)->sum('bayaran_keuntungan'); $collection_trans = 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.kodcaw','=',$this->kodcaw) ->where('trans.trans_type','=','A') ->where('transaksi_keuntungan.margin_semasa','>','0') ->whereDate('transaksi_keuntungan.tarikh_bayaran','>=',$this->mula) ->whereDate('transaksi_keuntungan.tarikh_bayaran','<=',$this->hingga) ->get(); $array_norujukan = $collection_trans->pluck('norujukan')->toArray(); $collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan',$array_norujukan)->where('tagbaru',1)->get(); $keuntungan_semasa_collection = $collection_trans->filter(function ($trans) use ($collection_gadai) { foreach ($collection_gadai as $gadai) { if($gadai->norujukan === $trans->norujukan){ $t_gadai = Carbon::parse($gadai->t_gadai); $t_bayaran = Carbon::parse($trans->tarikh_bayaran); if ($t_gadai->month !== $t_bayaran->month) { return false; }else{ return true; } } } return false; }); $summation_ansuran = $keuntungan_semasa_collection->sum('bayaran_keuntungan'); $total_keuntungan_sebenar = $sum_keuntungan + $sum_bayaran + $summation_ansuran; /* End Keuntungan Sebenar Calculation */ /* Start Keuntungan Semasa Calculation */ $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')->where('tagbaru',0)->having('result','=',0)->pluck('norujukan'); $summation = Transaction::on('mysql7') ->selectRaw("SUM(CASE WHEN (transaction.trans_type) <> 'A' THEN (trans.keuntungan_rebet) ELSE 0 END) AS sum_keun,SUM(CASE WHEN (transaction.trans_type) = 'A' THEN (trans.bayaran_keuntungan) ELSE 0 END) AS sum_bayaran") ->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) ->whereDate('trans.tarikh_bayaran' ,'>=', $this->mula) ->whereDate('trans.tarikh_bayaran' ,'<=', $this->hingga) ->whereYear('tarikh_bayaran','=',$mulaCarbon->year) ->where('trans.kodcaw',$this->kodcaw) ->get()->toArray(); $upahlelong = Lelong::on($cawangan['mysql']) ->where([['t_jual','>=',$this->mula],['t_jual','<=',$this->hingga],['t_jual','>','2022-07-24']]) ->whereYear('t_jual','=',$mulaCarbon->year) ->sum('bakiupah'); $sum_keuntungan = ($summation) ? $summation[0]['sum_keun'] : 0; $sum_bayaran = ($summation) ? $summation[0]['sum_bayaran'] : 0; // $total_keuntungan_semasa = ($sum_keuntungan + $sum_bayaran + $upahlelong) - $total_keuntungan_sebenar; $total_keuntungan_semasa = ($sum_keuntungan + $sum_bayaran + $upahlelong); /* End Keuntungan Semasa Calculation */ $array_keuntungan = ['keuntungan_sebenar' => $total_keuntungan_sebenar, 'keuntungan_semasa' => $total_keuntungan_semasa]; return $array_keuntungan; } public function getwtdLejer() { $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first(); $wtd = WTD::on($cawangan['mysql']) ->where('tarikh','>=', $this->mula) ->where('tarikh','<=', $this->hingga) ->sum('wtd'); return $wtd; } }