From d3fe2cf03db9d254a3bbbe5e5c91128e3e99699c Mon Sep 17 00:00:00 2001 From: hafifierahman Date: Tue, 8 Oct 2024 07:48:21 +0800 Subject: [PATCH] added account service --- app/Http/Controllers/AdminPageController.php | 160 +++-- app/Http/Controllers/LaporanController.php | 4 +- app/Http/Controllers/TebusController.php | 121 +++- .../Reports/Account/GeneralLedger.php | 631 ++++++++++++++++++ app/Services/Reports/AccountService.php | 37 + app/Services/Reports/ImbangDugaService.php | 134 ++-- app/Services/Reports/OnePercentService.php | 4 +- 7 files changed, 924 insertions(+), 167 deletions(-) create mode 100644 app/Services/Reports/Account/GeneralLedger.php create mode 100644 app/Services/Reports/AccountService.php diff --git a/app/Http/Controllers/AdminPageController.php b/app/Http/Controllers/AdminPageController.php index 076cf73..5305d2e 100644 --- a/app/Http/Controllers/AdminPageController.php +++ b/app/Http/Controllers/AdminPageController.php @@ -54,6 +54,7 @@ use App\RingkasanGadai; use App\RingkasanLelong; use App\RingkasanMain; use App\RingkasanTebus; +use App\imbangdugabackup; use App\Services\RingkasanHarianServices; use Illuminate\Support\Facades\DB; use DateTime; @@ -3120,80 +3121,111 @@ class AdminPageController extends Controller $year = $current->year; $month = $tarikh->month; - $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 = 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' 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; - - /* Ansuran masuk dalam ni */ - - $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','=',$request->kodcaw) - ->where('trans.trans_type','=','A') - ->where('transaksi_keuntungan.margin_semasa','>','0') - ->whereYear('transaksi_keuntungan.tarikh_bayaran','=',$year) - ->whereMonth('transaksi_keuntungan.tarikh_bayaran','<=',$month) - ->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; - } - } - } - return true; - }); - - $summation_ansuran = $keuntungan_semasa_collection->sum('bayaran_keuntungan'); - - // $get_norujukan_ansuran = Gadai::on($cawangan['mysql']) + // $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','=','') - // ->where('tagbaru','=',1) + // ->where('sttebus','<>','') // ->pluck('norujukan'); - // $summation_ansuran = TransaksiKeuntungan::on('mysql7') - // ->whereIn('norujukan',$get_norujukan_ansuran)->sum('bayaran_keuntungan'); + // $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' 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; + + // /* Ansuran masuk dalam ni */ + + // $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','=',$request->kodcaw) + // ->where('trans.trans_type','=','A') + // ->where('transaksi_keuntungan.margin_semasa','>','0') + // ->whereYear('transaksi_keuntungan.tarikh_bayaran','=',$year) + // ->whereMonth('transaksi_keuntungan.tarikh_bayaran','<=',$month) + // ->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; + // } + // } + // } + // return true; + // }); + + // $summation_ansuran = $keuntungan_semasa_collection->sum('bayaran_keuntungan'); + + + // $total = $sum_keuntungan + $sum_bayaran + $summation_ansuran; + + $lastDayPreviousMonth = $tarikh->subMonthsNoOverflow()->endOfMonth()->toDateString(); + + $get_imbangduga = imbangdugabackup::on($cawangan['mysql'])->where('tarikh',$lastDayPreviousMonth)->first()->toArray(); + + $collection_trans = Transaction::on('mysql7') + ->leftJoin('transaksi_keuntungan as trans', function ($join) { + $join->on('transaction.norujukan', '=', 'trans.norujukan'); + $join->on('transaction.created_at', '=', 'trans.tarikh_bayaran'); + }) + ->where('transaction.kodcaw', $request->kodcaw) + ->whereYear('transaction.created_at', '=', $year) + ->whereMonth('transaction.created_at', '=', $month) + ->get(); + + $array_norujukan = $collection_trans->pluck('norujukan')->toArray(); + + $collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $array_norujukan)->whereYear('t_gadai',$year)->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; + }); + + $total_ansuran = $keuntungan_semasa_collection->filter(function ($transaction){ + return $transaction->trans_type == 'A'; + })->sum('bayaran_keuntungan'); + + $total_tebus = $keuntungan_semasa_collection->filter(function ($transaction){ + return $transaction->trans_type !== 'A'; + })->sum('keuntungan_rebet'); + + $total = $total_ansuran + $total_tebus + $get_imbangduga['keun_sebenar']; - $total = $sum_keuntungan + $sum_bayaran + $summation_ansuran; return response()->json($total); } diff --git a/app/Http/Controllers/LaporanController.php b/app/Http/Controllers/LaporanController.php index 8a625b1..824055d 100644 --- a/app/Http/Controllers/LaporanController.php +++ b/app/Http/Controllers/LaporanController.php @@ -1307,10 +1307,12 @@ class LaporanController extends Controller if ($t_gadai->month !== $t_bayaran->month) { return false; + }else{ + return true; } } } - return true; + return false; }); $summation_ansuran = $keuntungan_semasa_collection->sum('bayaran_keuntungan'); diff --git a/app/Http/Controllers/TebusController.php b/app/Http/Controllers/TebusController.php index eab6438..402f8b9 100644 --- a/app/Http/Controllers/TebusController.php +++ b/app/Http/Controllers/TebusController.php @@ -1736,39 +1736,41 @@ class TebusController extends Controller $result_audit_backdate = $this->StokAuditGenerateTerakru($month_sebelum,$cawangan,$year_generate); } - $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','>',7) - ->whereMonth('t_gadai','=',$month) - ->where('sttebus','<>','') - ->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','>',7) + // ->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','<>','A') - ->where('trans.margin_semasa','=',0) //3.80 - ->sum('keuntungan_rebet'); + // $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','<>','A') + // ->where('trans.margin_semasa','=',0) //3.80 + // ->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') - ->where('trans.margin_semasa','=',0) - ->sum('bayaran_keuntungan'); + // $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') + // ->where('trans.margin_semasa','=',0) + // ->sum('bayaran_keuntungan'); - $total = $sum_keun_tebus + $sum_keun_ansuran; + // $total = $sum_keun_tebus + $sum_keun_ansuran; + + $total = $this->calculateKeuntunganSemasa($tarikh,$request->kodcaw); if(!$determine_past->isToday()){ $calculate_month = (int)$month_sekarang - $latest_month_akrunet->bulan; @@ -1893,6 +1895,65 @@ class TebusController extends Controller return response()->json($total_accrual_net); } + private function calculateKeuntunganSemasa($currentDate,$kodcaw) + { + $cawangan = Cawangan::on('mysql7')->where('kodcaw', '=', $kodcaw)->first(); + + $firstMonth = (clone $currentDate)->firstOfMonth(); + $lastMonth = (clone $currentDate)->endOfMonth(); + /* Start Keuntungan Semasa Calculation */ + + $collection_trans = Transaction::on('mysql7') + ->leftJoin('transaksi_keuntungan as trans', function ($join) { + $join->on('transaction.norujukan', '=', 'trans.norujukan'); + $join->on('transaction.created_at', '=', 'trans.tarikh_bayaran'); + }) + ->where('transaction.kodcaw', $kodcaw) + ->whereYear('transaction.created_at', '=', $currentDate->year) + ->whereMonth('transaction.created_at', '=', $currentDate->month) + ->get(); + + + $array_norujukan = $collection_trans->pluck('norujukan')->toArray(); + + $collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $array_norujukan)->where('tagbaru',0)->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) && ($t_gadai->year == $t_bayaran->year)) { + return false; + }else{ + return true; + } + } + } + return false; + }); + + $total_ansuran = $keuntungan_semasa_collection->filter(function ($transaction){ + return $transaction->trans_type == 'A'; + })->sum('bayaran_keuntungan'); + + $total_tebus = $keuntungan_semasa_collection->filter(function ($transaction){ + return $transaction->trans_type !== 'A'; + })->sum('keuntungan_rebet'); + + /* Keuntungan Lelong */ + $upahlelong = Lelong::on($cawangan['mysql']) + ->where([['t_jual', '>=', $firstMonth], ['t_jual', '<=', $lastMonth], ['t_jual', '>', '2022-07-24']]) + ->whereYear('t_jual', '=', $currentDate->year) + ->sum('bakiupah'); + + $total_keuntungan_semasa = ($total_ansuran + $total_tebus + $upahlelong); + + /* End Keuntungan Semasa Calculation */ + return $total_keuntungan_semasa; + } + public function kiraupahUjrahOnePercent($kodcaw,$norujukan){ $master = new MasterServices($kodcaw); $response = $master->kiraupahUjrahOnePercent($kodcaw,$norujukan); diff --git a/app/Services/Reports/Account/GeneralLedger.php b/app/Services/Reports/Account/GeneralLedger.php new file mode 100644 index 0000000..abe0e49 --- /dev/null +++ b/app/Services/Reports/Account/GeneralLedger.php @@ -0,0 +1,631 @@ +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; + } + +} \ No newline at end of file diff --git a/app/Services/Reports/AccountService.php b/app/Services/Reports/AccountService.php new file mode 100644 index 0000000..28e368a --- /dev/null +++ b/app/Services/Reports/AccountService.php @@ -0,0 +1,37 @@ +where('kodcaw',$kodcaw)->first(); + $date = Carbon::now()->month($month); + $firstDay = (clone $date)->startOfMonth(); + $lastDay = (clone $date)->endOfMonth(); + $previousMonth = (clone $date)->subMonthNoOverflow()->endOfMonth(); + + $BSheetPreviousMonth = imbangdugabackup::on($cawangan['mysql'])->where('tarikh',$previousMonth->toDateString())->get(); + $BSheetCurrentMonth = imbangdugabackup::on($cawangan['mysql'])->where('tarikh',$lastDay->toDateString())->get(); + + $gledger = new GeneralLedger($kodcaw,$firstDay,$lastDay); + $loan_given = $gledger->getPinjamanDiberi(); + $loan_tawarruq = $gledger->getPembiayaanTawarruq(); + $advance_payment = $gledger->getBayaranPendahuluan(); + $submission = $gledger->getPendahuluanSerahan(); + $cash = $gledger->getpanjar(); + $remain_auction = $gledger->BakiLelongCalculation(); + $real_profit = $gledger->getKeuntunganSebenar(); + $current_profit = $gledger->SemakanKeuntunganLejer(); + $unclaimed_money =$gledger->getwtdLejer(); + + $debit = 0; + $credit = 0; + + dd($loan_given,$loan_tawarruq,$advance_payment,$submission,$cash,$remain_auction,$real_profit,$current_profit,$unclaimed_money); + + } +} \ No newline at end of file diff --git a/app/Services/Reports/ImbangDugaService.php b/app/Services/Reports/ImbangDugaService.php index 9a8db17..130c990 100644 --- a/app/Services/Reports/ImbangDugaService.php +++ b/app/Services/Reports/ImbangDugaService.php @@ -127,34 +127,54 @@ class ImbangDugaService $firstMonth = (clone $currentDate)->firstOfMonth(); $lastMonth = (clone $currentDate)->endOfMonth(); - /* 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'); + + $collection_trans = Transaction::on('mysql7') + ->leftJoin('transaksi_keuntungan as trans', function ($join) { + $join->on('transaction.norujukan', '=', 'trans.norujukan'); + $join->on('transaction.created_at', '=', 'trans.tarikh_bayaran'); + }) + ->where('transaction.kodcaw', $this->kodcaw) + ->whereYear('transaction.created_at', '=', $currentDate->year) + ->whereMonth('transaction.created_at', '=', $currentDate->month) + ->get(); - $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', '>=', $firstMonth) - ->whereDate('trans.tarikh_bayaran', '<=', $lastMonth) - ->whereYear('tarikh_bayaran', '=', $currentDate->year) - ->where('trans.kodcaw', $this->kodcaw) - ->get()->toArray(); + $array_norujukan = $collection_trans->pluck('norujukan')->toArray(); + + $collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $array_norujukan)->where('tagbaru',0)->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) && ($t_gadai->year == $t_bayaran->year)) { + return false; + }else{ + return true; + } + } + } + return false; + }); + + $total_ansuran = $keuntungan_semasa_collection->filter(function ($transaction){ + return $transaction->trans_type == 'A'; + })->sum('bayaran_keuntungan'); + + $total_tebus = $keuntungan_semasa_collection->filter(function ($transaction){ + return $transaction->trans_type !== 'A'; + })->sum('keuntungan_rebet'); + + /* Keuntungan Lelong */ $upahlelong = Lelong::on($cawangan['mysql']) ->where([['tagujrah','=',0],['t_jual', '>=', $firstMonth], ['t_jual', '<=', $lastMonth], ['t_jual', '>', '2022-07-24']]) ->whereYear('t_jual', '=', $currentDate->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_semasa = ($total_ansuran + $total_tebus + $upahlelong); /* End Keuntungan Semasa Calculation */ return $total_keuntungan_semasa; @@ -205,10 +225,12 @@ class ImbangDugaService if ($t_gadai->month === $t_bayaran->month) { return false; + }else{ + return true; } } } - return true; + return false; }); @@ -295,62 +317,25 @@ class ImbangDugaService $year = (clone $tarikh)->year; $month = (clone $tarikh)->month; - $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'); + $lastDayPreviousMonth = $tarikh->subMonthsNoOverflow()->endOfMonth()->toDateString(); + $get_imbangduga = imbangdugabackup::on($cawangan['mysql'])->where('tarikh',$lastDayPreviousMonth)->first()->toArray(); - - $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") - // ->select('trans.norujukan','transaction.trans_type','trans.keuntungan_rebet','trans.bayaran_keuntungan','trans.margin_semasa') - ->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; - - /* Ansuran masuk dalam ni */ - - // $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) - // ->whereYear('t_gadai', '=', $year) - // ->whereMonth('t_gadai', '<=', $month) - // ->where('sttebus','=','') - // ->where('tagbaru','=',1) - // ->pluck('norujukan'); - - // $summation_ansuran = TransaksiKeuntungan::on('mysql7') - // ->whereIn('norujukan',$get_norujukan_ansuran)->sum('bayaran_keuntungan'); - $collection_trans = Transaction::on('mysql7') ->leftJoin('transaksi_keuntungan as trans', function ($join) { $join->on('transaction.norujukan', '=', 'trans.norujukan'); $join->on('transaction.created_at', '=', 'trans.tarikh_bayaran'); }) - ->where('transaction.trans_type', 'A') ->where('transaction.kodcaw', $this->kodcaw) - ->where('trans.margin_semasa','>',0) ->whereYear('transaction.created_at', '=', $year) - ->whereMonth('transaction.created_at', '<=', $month) + ->whereMonth('transaction.created_at', '=', $month) ->get(); $array_norujukan = $collection_trans->pluck('norujukan')->toArray(); - $collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $array_norujukan)->where('tagbaru',1)->get(); + $collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $array_norujukan)->whereYear('t_gadai',$year)->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); @@ -358,17 +343,24 @@ class ImbangDugaService if ($t_gadai->month !== $t_bayaran->month) { return false; + }else{ + return true; } } } - return true; + return false; }); - $summation_ansuran = $keuntungan_semasa_collection->sum('bayaran_keuntungan'); + $total_ansuran = $keuntungan_semasa_collection->filter(function ($transaction){ + return $transaction->trans_type == 'A'; + })->sum('bayaran_keuntungan'); + $total_tebus = $keuntungan_semasa_collection->filter(function ($transaction){ + return $transaction->trans_type !== 'A'; + })->sum('keuntungan_rebet'); + + $total = $total_ansuran + $total_tebus + $get_imbangduga['keun_sebenar']; - $total = $sum_keuntungan + $sum_bayaran + $summation_ansuran; - // $total = $sum_keuntungan + $sum_bayaran; return $total; } @@ -911,7 +903,7 @@ class ImbangDugaService $ujrah = $accrual['ujrah']; $onepercent = $accrual['onepercent']; $bayaranpend = -1*($bayaranpend); - $untungrugiterkumpul = $this->getUntungRugiTerkumpul(); + // $untungrugiterkumpul = $this->getUntungRugiTerkumpul(); $totalharta = imbangdugabackup::on($cawangan['mysql'])->where('tarikh', $this->tarikh) ->get() @@ -922,9 +914,9 @@ class ImbangDugaService $totaltanggungan = imbangdugabackup::on($cawangan['mysql'])->where('tarikh', $this->tarikh) ->get() - ->map(function ($ig) use ($ujrah, $onepercent, $keun_sebenar, $pend_terakru,$pendahuluan,$untungrugiterkumpul) { + ->map(function ($ig) use ($ujrah, $onepercent, $keun_sebenar, $pend_terakru,$pendahuluan) { return $pend_terakru + $ig['bds'] + $ig['perubatan'] + $ig['keraian'] + $ig['rugilelong'] + $ig['bakilelong'] - + $ig['wtd'] + $untungrugiterkumpul + $keun_sebenar + $pendahuluan + $ig['cajlelong'] + + $ig['wtd'] + $ig['untungrugiterkumpul'] + $keun_sebenar + $pendahuluan + $ig['cajlelong'] + $ig['cajperkhidmatan'] + $ig['cajlelongxtra'] + $ig['upahsimpanxtra'] + $ig['bakilelongxtra'] + $ig['rugilelongxtra'] + $ig['utgterkumpulxtra'] + $ig['jualan1stop'] + $ig['hapuskira'] + $ujrah + $onepercent; }); @@ -936,7 +928,7 @@ class ImbangDugaService } else { $booltally = false; } - + // dd($totalharta[0],$totaltanggungan[0],$pend_terakru,$keuntungan_penggadai,$keun_sebenar); imbangdugabackup::on($cawangan['mysql'])->where('tarikh', $this->tarikh)->update([ 'tunaiditangan' => $tunaiditangan, @@ -948,7 +940,7 @@ class ImbangDugaService 'bayaranpendahuluan' => $bayaranpend, 'serahan' => $serahan, 'pendahuluan' => $pendahuluan, - 'untungrugiterkumpul' => $untungrugiterkumpul, + // 'untungrugiterkumpul' => $untungrugiterkumpul, 'totalharta' => round($totalharta[0], 2), 'totaltanggungan' => round($totaltanggungan[0], 2), 'tagtally' => $booltally, diff --git a/app/Services/Reports/OnePercentService.php b/app/Services/Reports/OnePercentService.php index 6a6c88b..1d718cf 100644 --- a/app/Services/Reports/OnePercentService.php +++ b/app/Services/Reports/OnePercentService.php @@ -398,10 +398,12 @@ class OnePercentService if ($t_gadai->month === $t_bayaran->month) { return false; + }{ + return true; } } } - return true; + return false; });