table('KPDL_V_BATAS_DESA')->select('ADM1_PCODE, ADM1_EN')->distinct()->get()->getResult() ; // dd($data['all_propinsi']); $data = []; if (session('isLogin')) { echo view('inc/head'); echo view('inc/navbar'); echo view('inc/sidebar'); echo view('kewilayahan/kytp/kpdl', $data); echo view('inc/footer'); } else { return redirect()->to('auth'); } } public function graph_matoa() { $dataReturn['poi_agg'] = $this->get_poi_agg(); $dataReturn['kpdl_agg'] = $this->get_kpdl_agg(); return json_encode($dataReturn); } private function get_poi_agg() { $opsiWilZona = $this->request->getPost('opsiWilZona'); $adm4_pcode = $this->request->getPost('adm4_pcode') ?? []; $id_poly_zona = $this->request->getPost('id_poly_zona') ?? []; $db = \Config\Database::connect(); $sqlGenerate = $db->table("KPDL_MV_JML_POI_AGG") ->select("BULAN, sum(JML) as JML") ->where('TAHUN =', date('Y')) ->where('BULAN <=', (int) date('m')) ->groupBy('BULAN'); if ($opsiWilZona == 'wilayah') { $sqlGenerate->whereIn('ADM4_PCODE', $adm4_pcode); } if ($opsiWilZona == 'zona') { $sqlGenerate->whereIn('ID_POLY_ZONA', $id_poly_zona); } $sqlGenerate = $sqlGenerate->getCompiledSelect(); $data = $db->table("BULAN a") ->select("KODE as BULAN, JML") ->join("(" . $sqlGenerate . ") b", "KODE = BULAN", 'left', false) ->orderBy("BULAN", 'asc', false)->get()->getResult(); $dataPoiAgg = $this->single_array($data, 'JML'); return $dataPoiAgg; } private function get_kpdl_agg() { $opsiWilZona = $this->request->getPost('opsiWilZona'); $adm4_pcode = $this->request->getPost('adm4_pcode') ?? []; $id_poly_zona = $this->request->getPost('id_poly_zona') ?? []; $db = \Config\Database::connect(); $sqlGenerate = $db->table("KPDL_MV_JML_KPDL_AGG") ->select("BULAN, sum(JML) as JML") ->where('TAHUN =', date('Y')) ->where('BULAN <=', (int) date('m')) ->groupBy('BULAN'); if ($opsiWilZona == 'wilayah') { $sqlGenerate->whereIn('ADM4_PCODE', $adm4_pcode); } if ($opsiWilZona == 'zona') { $sqlGenerate->whereIn('ID_POLY_ZONA', $id_poly_zona); } $sqlGenerate = $sqlGenerate->getCompiledSelect(); $data = $db->table("BULAN a") ->select("KODE as BULAN, JML") ->join("(" . $sqlGenerate . ") b", "KODE = BULAN", 'left', false) ->orderBy("BULAN", 'asc', false)->get()->getResult(); $dataPoiAgg = $this->single_array($data, 'JML'); return $dataPoiAgg; } private function single_array($a, $key) { $ret = []; foreach ($a as $b) { array_push($ret, floatval($b->$key)); } for ($i = 0; $i < 12; $i++) { if (!isset($ret[$i])) { array_push($ret, 0); } } return $ret; } }