copy()->startOfMonth(); $end = $dateS->copy()->endOfMonth(); $amaunt_kompaun_keluar = 0; $compound = Compound::whereBetween('created_at', array($start, $end))->where('jbkod', $jabatan)->get(); foreach ($compound as $key => $c) { $amaunt_kompaun_keluar = $amaunt_kompaun_keluar + floatval($c->jumlah_asal_kompaun); } return number_format($amaunt_kompaun_keluar, 2, '.', ''); } private function jumlah_kompaun_kurang($year, $month, $jabatan){ $dateS = Carbon::createFromFormat('Y-m-d', $year.'-'.$month.'-01'); $start = $dateS->copy()->startOfMonth(); $end = $dateS->copy()->endOfMonth(); $amaun_kurang = 0; $compound = Compound::whereBetween('created_at', array($start, $end))->where('jbkod', $jabatan)->get(); foreach ($compound as $key => $c) { if($c->jumlah_kemaskini_kompaun != ''){ $amaun_kurang = $amaun_kurang + floatval($c->jumlah_kemaskini_kompaun); } } return number_format($amaun_kurang, 2, '.', ''); } private function jumlah_kompaun_kutipan($year, $month, $jabatan){ $dateS = Carbon::createFromFormat('Y-m-d', $year.'-'.$month.'-01'); $start = $dateS->copy()->startOfMonth(); $end = $dateS->copy()->endOfMonth(); $amaun_kutipan = 0; $compound = Compound::whereBetween('created_at', array($start, $end))->where('jbkod', $jabatan)->get(); foreach ($compound as $key => $c) { if($c->status == 'Berbayar'){ $amaun_kutipan = $amaun_kutipan + floatval($c->amount_payment); } } return number_format($amaun_kutipan, 2, '.', ''); } public function returnReportCurrentCompound(Request $request){ $nested_data = array(); $start_year = $request->start_year; $end_year = $request->end_year; $budget1 = number_format((int)$request->budget1, 2, '.', ''); $budget2 = number_format((int)$request->budget2, 2, '.', ''); $jabatan = $request->jabatan; if($start_year != 'null' && $end_year != 'null' && $budget1 !='' && $budget2 !='' && $jabatan != 'null'){ $year1= date('Y', strtotime($start_year)); $year2= date('Y', strtotime($end_year)); $first_month = date('m', strtotime($start_year)); $first_text_month = strtoupper(date('M', strtotime($start_year))); $first_month_number = date('n', strtotime($start_year)); $end_month_number = date('n', strtotime($end_year)); array_push($nested_data, array( 'month' => $first_text_month, 'budget1' => $budget1, 'kompaun_keluar1' => $this->jumlah_kompaun_keluar($year1,$first_month,$jabatan), 'kompaun_kurang1' => $this->jumlah_kompaun_kurang($year1,$first_month,$jabatan), 'kutipan_bulanan1' => $this->jumlah_kompaun_kutipan($year1,$first_month,$jabatan), 'kutipan_terkumpul1' => $this->jumlah_kompaun_kutipan($year1,$first_month,$jabatan), 'kutipan1' => round(($this->jumlah_kompaun_kutipan($year1,$first_month,$jabatan)/$budget1) * 100, 2), 'terkumpul1' => round(($this->jumlah_kompaun_kutipan($year1,$first_month,$jabatan)/$budget1) * 100, 2), 'budget2' => $budget2, 'kompaun_keluar2' => $this->jumlah_kompaun_keluar($year2,$first_month,$jabatan), 'kompaun_kurang2' => $this->jumlah_kompaun_kurang($year2,$first_month,$jabatan), 'kutipan_bulanan2' => $this->jumlah_kompaun_kutipan($year2,$first_month,$jabatan), 'kutipan_terkumpul2' => $this->jumlah_kompaun_kutipan($year2,$first_month,$jabatan), 'kutipan2' => round(($this->jumlah_kompaun_kutipan($year2,$first_month,$jabatan)/$budget2) * 100, 2), 'terkumpul2' => round(($this->jumlah_kompaun_kutipan($year2,$first_month,$jabatan)/$budget2) * 100, 2), )); for($m=($first_month_number+1); $m<=12; ++$m){ $prev_month = date('m', mktime(0, 0, 0, $m-1, 1)); $month = date('m', mktime(0, 0, 0, $m, 1)); $text_month = strtoupper(date('M', mktime(0, 0, 0, $m, 1))); $k1 = $this->jumlah_kompaun_kutipan($year1,$prev_month,$jabatan) + $this->jumlah_kompaun_kutipan($year1,$month,$jabatan); if($m<=$end_month_number){ $k2 = $this->jumlah_kompaun_kutipan($year2,$prev_month,$jabatan) + $this->jumlah_kompaun_kutipan($year2,$month,$jabatan); array_push($nested_data, array( 'month' => $text_month, 'budget1' => '', 'kompaun_keluar1' => $this->jumlah_kompaun_keluar($year1,$month,$jabatan), 'kompaun_kurang1' => $this->jumlah_kompaun_kurang($year1,$month,$jabatan), 'kutipan_bulanan1' => $this->jumlah_kompaun_kutipan($year1,$month,$jabatan), 'kutipan_terkumpul1' => number_format($k1, 2, '.', ''), 'kutipan1' => round(($this->jumlah_kompaun_kutipan($year1,$month,$jabatan)/$budget1) * 100, 2), 'terkumpul1' => round(($k1/$budget1) * 100, 2), 'budget2' => '', 'kompaun_keluar2' => $this->jumlah_kompaun_keluar($year2,$month,$jabatan), 'kompaun_kurang2' => $this->jumlah_kompaun_keluar($year2,$month,$jabatan), 'kutipan_bulanan2' => $this->jumlah_kompaun_kutipan($year2,$month,$jabatan), 'kutipan_terkumpul2' => number_format($k2, 2, '.', ''), 'kutipan2' => round(($this->jumlah_kompaun_kutipan($year2,$month,$jabatan)/$budget2) * 100, 2), 'terkumpul2' => round(($k2/$budget2) * 100, 2), )); }else { $k2 = $this->jumlah_kompaun_kutipan($year2,$prev_month,$jabatan) + $this->jumlah_kompaun_kutipan($year2,$month,$jabatan); array_push($nested_data, array( 'month' => $text_month, 'budget1' => '', 'kompaun_keluar1' => $this->jumlah_kompaun_keluar($year1,$month,$jabatan), 'kompaun_kurang1' => $this->jumlah_kompaun_kurang($year1,$month,$jabatan), 'kutipan_bulanan1' => $this->jumlah_kompaun_kutipan($year1,$month,$jabatan), 'kutipan_terkumpul1' => number_format($k1, 2, '.', ''), 'kutipan1' => round(($this->jumlah_kompaun_kutipan($year1,$month,$jabatan)/$budget1) * 100, 2), 'terkumpul1' => round(($k1/$budget1) * 100, 2), 'budget2' => '', 'kompaun_keluar2' => $this->jumlah_kompaun_keluar($year2,$month,$jabatan), 'kompaun_kurang2' => $this->jumlah_kompaun_keluar($year2,$month,$jabatan), 'kutipan_bulanan2' => $this->jumlah_kompaun_kutipan($year2,$month,$jabatan), 'kutipan_terkumpul2' => number_format($k2, 2, '.', ''), 'kutipan2' => round(($this->jumlah_kompaun_kutipan($year2,$month,$jabatan)/$budget2) * 100, 2), 'terkumpul2' => round(($k2/$budget2) * 100, 2), )); } } } return \DataTables::of($nested_data)->make(true); } }