siteTitle = "Realisasi Belanja"; parent::__construct(); $this->setIconTitle("fa fa-share"); } public function index() { return view('realisasi_belanja.index'); } public function create(Request $request) { $get = $request->all(); $rskExists = BelanjaRealisasi::where("kode_rsk",$get["rsk"])->count(); if ($rskExists > 0) { return redirect(URL::to("/realisasi-belanja")) ->with('error','Data dengan RSK yand dipilih sudah ada!'); } $VwDpaRsk = VwDpaRsk::where("I_ID",$get["rsk"])->first(); $unitSatuan = UnitSatuan::orderBy("id")->get(); return view('realisasi_belanja.create', compact("unitSatuan","VwDpaRsk")); } public function createFromRsk() { return view('realisasi_belanja.create_from_rsk'); } public function createFromRskDatatable(Request $request) { $post = $request->all(); $offset = $post["start"]; $limit = $post["length"]; $src = isset($post["search"]["value"]) ? strtolower($post["search"]["value"]):""; $skpd = ""; $sqlStr = "SELECT * FROM SAMASA.VW_DPA_RSK WHERE C_ANGG_TAHUN=".getTA(); if (getRole()=="skpd"){ $sqlStr.=" AND C_OPD='".Auth::user()->nrk."'"; }elseif (getRole()=="sbpk"){ $sqlStr.=" AND C_WIL_SP2DPROSES=".Auth::user()->wilayah; }else{ if (!empty($skpd)){ $sqlStr.=" AND C_OPD='".$skpd."'"; } } $filter=""; if (!empty($src)) { $src = strtolower($src); $filter=" AND ( LOWER(N_SUBGIAT) like '%".$src."%' OR LOWER(N_RSK) like '%".$src."%')"; } $dataFilter = DB::select(DB::raw("SELECT COUNT(I_ID) as JML FROM ($sqlStr $filter) x")); $dataTotal = DB::select(DB::raw("SELECT COUNT(I_ID) as JML FROM ($sqlStr) x")); $data = DB::select(DB::raw("SELECT * FROM (".$sqlStr.$filter.") a ORDER BY a.I_IDOPD, a.I_ID OFFSET ".$offset." ROWS FETCH NEXT ".$limit." ROWS ONLY")); return response()->json([ "recordsTotal" => $dataTotal[0]->jml, "recordsFiltered" => $dataFilter[0]->jml, "data"=> $data ]); } public function store(Request $request) { $request->validate([ "jenis_dana"=>"required", "sub_jenis_dana"=>"required", "jenis"=>"required", "sub_jenis"=>"required", "rsk"=>"required", "vol"=>"required", "unit"=>"required", "jml_rencana_kontrak"=>"required", "id_sps"=>"required", ]); $req = $request->all(); $VwDpaRsk = VwDpaRsk::where("I_ID",$req["rsk"])->first(); try{ DB::beginTransaction(); $input = [ "tahun_anggaran"=>getTA(), "jenis_belanja"=>$req["jenis"], "sub_jenis_belanja"=>$req["sub_jenis"], "kode_program"=>$VwDpaRsk["c_program"], "nama_program"=>$VwDpaRsk["n_program"], "kode_skpd"=>$VwDpaRsk["c_opd"], "nama_skpd"=>$VwDpaRsk["n_opd"], "kode_kegiatan"=>$VwDpaRsk["c_giat"], "nama_kegiatan"=>$VwDpaRsk["n_giat"], "kode_sub_kegiatan"=>$VwDpaRsk["c_subgiat"], "nama_sub_kegiatan"=>$VwDpaRsk["n_subgiat"], "kode_rsk"=>$VwDpaRsk["i_id"], "nama_rsk"=>$VwDpaRsk["n_rsk"], "jumlah_anggaran"=>$VwDpaRsk["v_angg_tapd"], "volume_satuan"=>$req["vol"], "unit_satuan"=>$req["unit"], "jml_rencana_kontrak"=>$req["jml_rencana_kontrak"], "jenis_dana"=>$req["jenis_dana"], "sub_jenis_dana"=>$req["sub_jenis_dana"], "id_sps"=>$req["id_sps"], "created_by"=>Auth::user()->id ]; BelanjaRealisasi::create($input); DB::commit(); return redirect(URL::to("/realisasi-belanja")) ->with('success','Data Realisasi Belanja berhasil dibuat!'); }catch(Throwable $e){ DB::rollBack(); return redirect(URL::to("/realisasi-belanja")) ->with('error','Data Realisasi Belanja gagal dibuat.'); } } public function edit(VwBelanjaRealisasi $realisasi_belanja) { $VwDpaRsk = VwDpaRsk::where("I_ID",$realisasi_belanja->kode_rsk)->first(); $unitSatuan = UnitSatuan::orderBy("id")->get(); $sps = Sps_pendapatan::select(DB::raw("ID,KODE_REKENING||' | '||NAMA_REKENING as name"))->where("ID", $realisasi_belanja->id_sps)->first(); return view('realisasi_belanja.edit', compact("realisasi_belanja","sps","unitSatuan","VwDpaRsk")); } public function update(Request $request, BelanjaRealisasi $realisasi_belanja) { $request->validate([ "jenis_dana"=>"required", "sub_jenis_dana"=>"required", "jenis"=>"required", "sub_jenis"=>"required", "rsk"=>"required", "vol"=>"required", "unit"=>"required", "jml_rencana_kontrak"=>"required", "id_sps"=>"required", ]); $req = $request->all(); $VwDpaRsk = VwDpaRsk::where("I_ID",$req["rsk"])->first(); try{ DB::beginTransaction(); $input = [ "tahun_anggaran"=>getTA(), "jenis_belanja"=>$req["jenis"], "sub_jenis_belanja"=>$req["sub_jenis"], "kode_program"=>$VwDpaRsk["c_program"], "nama_program"=>$VwDpaRsk["n_program"], "kode_skpd"=>$VwDpaRsk["c_opd"], "nama_skpd"=>$VwDpaRsk["n_opd"], "kode_kegiatan"=>$VwDpaRsk["c_giat"], "nama_kegiatan"=>$VwDpaRsk["n_giat"], "kode_sub_kegiatan"=>$VwDpaRsk["c_subgiat"], "nama_sub_kegiatan"=>$VwDpaRsk["n_subgiat"], "kode_rsk"=>$VwDpaRsk["i_id"], "nama_rsk"=>$VwDpaRsk["n_rsk"], "jumlah_anggaran"=>$VwDpaRsk["v_angg_tapd"], "volume_satuan"=>$req["vol"], "unit_satuan"=>$req["unit"], "jml_rencana_kontrak"=>$req["jml_rencana_kontrak"], "jenis_dana"=>$req["jenis_dana"], "sub_jenis_dana"=>$req["sub_jenis_dana"], "id_sps"=>$req["id_sps"] ]; $realisasi_belanja->update($input); DB::commit(); return redirect(URL::to("/realisasi-belanja")) ->with('success','Data Realisasi Belanja berhasil diubah!'); }catch(Throwable $e){ DB::rollBack(); return redirect(URL::to("/realisasi-belanja")) ->with('error','Data Realisasi Belanja gagal diubah.'); } } public function submit(Request $request, $id) { // $BelanjaRealisasi = BelanjaRealisasi::where("id", $id)->firstOrNew(); $BelanjaRealisasi = DB::select(DB::raw( "SELECT * FROM SAMASA.VW_BELANJA_REALISASI WHERE id='$id' " )); $BelanjaRealisasi = $BelanjaRealisasi[0]; if (getRole()=="sbpk"){ $sbpkUpdate = BelanjaRealisasi::where("id", $id)->firstOrNew(); $sbpkUpdate->update(["f_view_sbpk"=>date("Y-m-d H:i")]); } if (getRole()=="skpd"){ if ($BelanjaRealisasi->kode_skpd != Auth::user()->nrk) { abort(403, 'Tidak diperbolehkan mengunjungi halaman ini!'); } } $BelanjaRealisasiDetail = BelanjaRealisasiDetail::where("belanja_realisasi_id",$BelanjaRealisasi->id)->get(); // var_dump($BelanjaRealisasi->kode_rsk,$BelanjaRealisasi->kode_sub_kegiatan); exit; $this->setTitle("Realisasi Belanja"); $this->setSubtitle("Realisasi Belanja :: ".$BelanjaRealisasi->jenis_dana." ".$BelanjaRealisasi->sub_jenis_dana); if ($request->isMethod('post')) { $req = $request->all(); $data["volume_satuan"] = $req["vol"]; $data["unit_satuan"] = $req["unit"]; $data["updated_by"] = Auth::user()->id; $BelanjaRealisasi->update($data); return redirect(URL::to("/realisasi-belanja/$id/submit"))->with('success','Data Realisasi Belanja berhasil di ubah!'); } $vwAKB = VwAkbSpdRealRsk::where("I_IDRSK",$BelanjaRealisasi->kode_rsk)->firstorNew(); $BelanjaRealisasiKontrak = BelanjaRealisasiKontrak::where("belanja_realisasi_id",$id)->get(); $vwSPD = DB::select(DB::raw( "SELECT x.I_SPDNO_DOK, x.D_SPDNO, sum(z.V_SPP) AS JML FROM NEWSIPKD.TMSPD x LEFT JOIN NEWSIPKD.TMSPPRINCIBLJ y ON x.I_ID = y.I_IDSPD LEFT JOIN NEWSIPKD.TMSPPRINCIBLJRSK z ON y.I_IDSPP = z.I_IDSPP WHERE z.I_IDRSK=".$BelanjaRealisasi->kode_rsk."GROUP BY x.I_SPDNO_DOK, x.D_SPDNO ORDER BY x.D_SPDNO " )); $vwSP2D = DB::select(DB::raw('SELECT x.I_ID as IDSP2D, x.I_SP2DNO_DOK, TO_CHAR(x.D_SP2D_SAH,\'DD-MM-YYYY\') AS D_SP2D_SAH, sum(y.V_SPP) as V_SPP FROM NEWSIPKD.TMSP2D x LEFT JOIN NEWSIPKD.V_SPPBLJRSK y ON x.I_ID = y.I_IDSP2D WHERE y.I_IDRSK='.$BelanjaRealisasi->kode_rsk.' GROUP BY x.I_ID, x.I_SP2DNO_DOK,x.D_SP2D_SAH ORDER BY x.D_SP2D_SAH ' ) ); $unitSatuan = UnitSatuan::orderBy("id")->get(); $jmlRealisasi1 = $this->getRealisasi($BelanjaRealisasi->kode_rsk, 1); $jmlRealisasi2 = $this->getRealisasi($BelanjaRealisasi->kode_rsk, 2); $sps = Sps_pendapatan::select(DB::raw("ID,KODE_REKENING||' | '||NAMA_REKENING as name"))->where("ID", $BelanjaRealisasi->id_sps)->first(); return view('realisasi_belanja.submit', compact("BelanjaRealisasi","BelanjaRealisasiDetail","BelanjaRealisasiKontrak","vwAKB","vwSPD","vwSP2D","unitSatuan","jmlRealisasi1","jmlRealisasi2","sps")); } public function datatable(Request $request) { $post = $request->all(); $offset = $post["start"]; $limit = $post["length"]; //$src = $post["src"]; $ta = $post["ta"]; $JenisDana = isset($post["jenis_dana"])?$post["jenis_dana"]:""; $SubJenisDana = isset($post["sub_jenis_dana"])?$post["sub_jenis_dana"]:""; $skpd = isset($post["skpd"])?$post["skpd"]:""; $subkeg = isset($post["subkeg"])?$post["subkeg"]:""; $idSPS = isset($post["id_sps"])?$post["id_sps"]:""; $sqlStr = "SELECT x.* FROM BELANJA_REALISASI x LEFT JOIN NEWSIPKD.TROPD z ON x.KODE_SKPD = z.C_OPD WHERE x.tahun_anggaran='$ta'"; if (getRole()=="skpd"){ $sqlStr.=" AND KODE_SKPD='".Auth::user()->nrk."'"; }elseif (getRole()=="sbpk"){ $sqlStr.=" AND z.C_WIL_SP2DPROSES=".Auth::user()->wilayah; } if (!empty($skpd)){ $sqlStr.=" AND KODE_SKPD='".$skpd."'"; } $filter=""; if (!empty($JenisDana)){ $filter.= " AND x.JENIS_DANA = '".$JenisDana."'"; } if (!empty($SubJenisDana)){ $filter.= " AND x.SUB_JENIS_DANA = '".$SubJenisDana."'"; } if (!empty($subkeg)){ $filter.= " AND x.KODE_SUB_KEGIATAN = '".$subkeg."'"; } if (!empty($idSPS)){ $filter.= " AND x.id_sps = ".$idSPS; } $dataFilter = DB::select(DB::raw("SELECT COUNT(ID) as JML FROM ($sqlStr $filter) x")); $dataTotal = DB::select(DB::raw("SELECT COUNT(ID) as JML FROM ($sqlStr) x")); $data = DB::select(DB::raw("SELECT a.*,b.jml FROM (".$sqlStr.$filter.") a LEFT JOIN ( SELECT I_IDRSK,SUM(V_SPP) as jml FROM NEWSIPKD.V_SPPBLJRSK WHERE D_SP2D_SAH IS NOT NULL AND C_ANGG_TAHUN = $ta GROUP BY I_IDRSK ) b ON a.kode_rsk = b.I_IDRSK ORDER BY a.KODE_SKPD, a.KODE_RSK OFFSET ".$offset." ROWS FETCH NEXT ".$limit." ROWS ONLY")); return response()->json([ "recordsTotal" => $dataTotal[0]->jml, "recordsFiltered" => $dataFilter[0]->jml, "data"=> $data ]); } public function destroy(BelanjaRealisasi $realisasi_belanja) { try{ DB::beginTransaction(); $realisasi_belanja->delete(); DB::commit(); return redirect(URL::to("/realisasi-belanja")) ->with('success','Data Realisasi Belanja berhasil dihapus!'); }catch(Throwable $e){ DB::rollBack(); return redirect(URL::to("/realisasi-belanja")) ->with('error','Data Realisasi Belanja gagal dihapus.'); } } public function show(BelanjaRealisasi $realisasi_belanja) { // if (!Auth::user()->can("Lihat SKPP")){ // abort(403, 'Youre not allowed to visit this page!'); // } $this->setSubtitle("Detail Data"); return view('realisasi_belanja.show',compact("realisasi_belanja")); } public function upload(Request $request, $typeDana) { if (Auth::user()->is_lock_upload == 1){ abort(403, 'Tidak diperbolehkan mengupload data oleh admin!'); } $method = $request->method(); $this->setTitle("Upload Rencana Belanja ".strtoupper($typeDana)); $this->setSubtitle("Upload File"); $this->setIconTitle("fas fa-upload"); if ($request->isMethod('post')) { $req = $request->all(); try{ $this->validate($request, [ 'file' => 'required|mimes:xls,xlsx', ]); $file = $request->file('file'); $subJenisDana = $request->optJenisDana; $ta = $request->ta; $tujuan_upload = 'uploadFiles'; $file->move($tujuan_upload,$file->getClientOriginalName()); DB::beginTransaction(); TempRealisasiBelanja::where("userid",Auth::user()->id)->delete(); if ($typeDana == "dbh") { Excel::import(new RealisasiBelanjaImport($ta, strtoupper($typeDana),$subJenisDana), $tujuan_upload."/".$file->getClientOriginalName()); } else { Excel::import(new RealisasiBelanjaImportDak($ta, strtoupper($typeDana),$subJenisDana), $tujuan_upload."/".$file->getClientOriginalName()); } DB::commit(); return redirect(URL::to("/upload-realisasi-belanja/".$typeDana))->with('success','Data Rencana belanja berhasil diupload, Silahkan validasi data!'); } catch(\Exception $e) { // throw new \Exception($e->getMessage()); DB::rollBack(); abort(500, $e->getMessage()); // return redirect(URL::to("/upload-realisasi-belanja/".$typeDana))->with('error',$e->getMessage()); } } $VwJenisBelanja = VwJenisBelanja::orderBy("ID_JENIS_BELANJA")->get(); $this->siteTitle = "Rencana Belanja"; $view = $typeDana == "dbh"?"upload":"upload_dak"; return view('realisasi_belanja.'.$view, compact("VwJenisBelanja")); } public function uploadDatatable(Request $request) { $post = $request->all(); $offset = $post["start"]; $limit = $post["length"]; $src = isset($post["search"])?$post["search"]["value"]:""; $dataFilter=0; $data = TempRealisasiBelanja::where("userid",Auth::user()->id)->orderBy("id","ASC"); if (!empty($src)){ $data->whereRaw("(LOWER(jenis_belanja) LIKE '%".strtolower($src)."%' OR LOWER(sub_jenis_belanja) LIKE '%".strtolower($src)."%' OR LOWER(nama_program) LIKE '%".strtolower($src)."%' OR LOWER(nama_skpd) LIKE '%".strtolower($src)."%' OR LOWER(nama_kegiatan) LIKE '%".strtolower($src)."%' OR LOWER(nama_sub_kegiatan) LIKE '%".strtolower($src)."%' OR LOWER(nama_rsk) LIKE '%".strtolower($src)."%' OR LOWER(nama_rekening) LIKE '%".strtolower($src)."%' )"); } $dataFilter = $data->count(); $dataTotal = TempRealisasiBelanja::where("userid",Auth::user()->id)->count(); return response()->json([ "recordsTotal" => $dataTotal, "recordsFiltered" => $dataFilter, "data"=> $data->skip($offset)->take($limit)->get() ]); } public function uploadValidate(Request $request, $typeDana) { try{ DB::beginTransaction(); $datas = TempRealisasiBelanja::where("userid",Auth::user()->id)->orderBy("id","ASC")->get(); for($i=0;$i<$datas->count();$i++){ $cekData = BelanjaRealisasi::where([ "kode_rsk"=>$datas[$i]["kode_rsk"], // "kode_rekening"=>$datas[$i]["kode_rekening"] ])->firstOrNew(); /* if (!$cekData==null){ $cekData->delete(); // BelanjaRealisasi::where(["kode_rsk"=>$datas[$i]["kode_rsk"],"kode_rekening"=>$datas[$i]["kode_rekening"]])->delete(); } */ $input = [ "tahun_anggaran"=>$datas[$i]["tahun_anggaran"], "jenis_belanja"=>$datas[$i]["jenis_belanja"], "sub_jenis_belanja"=>$datas[$i]["sub_jenis_belanja"], "kode_program"=>$datas[$i]["kode_program"], "nama_program"=>$datas[$i]["nama_program"], "kode_skpd"=>$datas[$i]["kode_skpd"], "nama_skpd"=>$datas[$i]["nama_skpd"], "kode_kegiatan"=>$datas[$i]["kode_kegiatan"], "nama_kegiatan"=>$datas[$i]["nama_kegiatan"], "kode_sub_kegiatan"=>$datas[$i]["kode_sub_kegiatan"], "nama_sub_kegiatan"=>$datas[$i]["nama_sub_kegiatan"], "kode_rsk"=>$datas[$i]["kode_rsk"], "nama_rsk"=>$datas[$i]["nama_rsk"], "jumlah_anggaran"=>$datas[$i]["jumlah_anggaran"], "volume_satuan"=>$datas[$i]["volume_satuan"], "unit_satuan"=>$datas[$i]["unit_satuan"], "jml_rencana_kontrak"=>$datas[$i]["jml_rencana_kontrak"], "jenis_dana"=>$datas[$i]["jenis_dana"], "sub_jenis_dana"=>$datas[$i]["sub_jenis_dana"], "created_by"=>$datas[$i]["userid"] ]; if (!$cekData==null){ $cekData->update($input); }else{ BelanjaRealisasi::create($input); } } TempRealisasiBelanja::where("userid",Auth::user()->id)->delete(); DB::commit(); return redirect(URL::to("/upload-realisasi-belanja/".$typeDana))->with('success','Data Realisasi belanja berhasil diupload.'); }catch(\Exception $e){ throw new \Exception($e->getMessage()); DB::rollBack(); return redirect(URL::to("/upload-realisasi-belanja/".$typeDana))->with('error',$e->getMessage()); } return view('realisasi_belanja.upload'); } public function getRealisasi($kdRsk,$sms=1) { $semester = ""; if($sms==1) { $semester = "SEMESTER 1"; $filter = " AND D_POSTING BETWEEN '".getTA()."0101' AND '".getTA()."0630' "; }else{ $semester = "SEMESTER 2"; $filter = " AND D_POSTING BETWEEN '".getTA()."0101' AND '".getTA()."1231' "; } $jmlRealisasi = DB::select(DB::raw("SELECT sum(REALISASI) as jml FROM NEWSIPKD.VW_BKU_REALISASI_RSK WHERE IDRSK = ".$kdRsk.$filter)); return $jmlRealisasi[0]->jml; } public function inputRealisasi(Request $request, $id) { $req = $request->all(); $BelanjaRealisasi = BelanjaRealisasi::where("id", $id)->firstOrNew(); $ta = $BelanjaRealisasi->tahun_anggaran; $filter = ""; $semester = ""; $sms = (int)$req["sms"]; if($sms==1) { $semester = "SEMESTER 1"; $filter = " AND D_POSTING BETWEEN '".$ta."0101' AND '".$ta."0630' "; }else{ $semester = "SEMESTER 2"; $filter = " AND D_POSTING BETWEEN '".$ta."0101' AND '".$ta."1231' "; } $BelanjaRealisasiDetail = BelanjaRealisasiDetail::where("belanja_realisasi_id",$BelanjaRealisasi->id)->where("semester",$sms)->firstorNew(); $jmlRealisasi = DB::select(DB::raw("SELECT sum(REALISASI) as jml FROM NEWSIPKD.VW_BKU_REALISASI_RSK WHERE IDRSK = ".$BelanjaRealisasi->kode_rsk.$filter)); $jmlRealisasi = $jmlRealisasi[0]; $redirect = isset($req["redirect_link"])?$req["redirect_link"]:URL::to("/realisasi-belanja"); if ($request->isMethod('post')) { try{ DB::beginTransaction(); $BelanjaRealisasiDetail->delete(); $data["belanja_realisasi_id"] = $BelanjaRealisasi->id; $data["jumlah_realisasi"] = $jmlRealisasi->jml; $data["volume_satuan_realisasi"] = $req["vol_realisasi"]; $data["unit_satuan_realisasi"] = $req["unit_realisasi"]; $data["semester"] = (int)$req["sms"]; $data["created_by"] = Auth::user()->id; BelanjaRealisasiDetail::create($data); $BelanjaRealisasiDetail = BelanjaRealisasiDetail::where("belanja_realisasi_id",$BelanjaRealisasi->id)->orderby("semester")->get(); $dataBelanjaRealisasi = []; if (count($BelanjaRealisasiDetail)==1) { $dataBelanjaRealisasi["jumlah_realisasi"] = $BelanjaRealisasiDetail[0]->jumlah_realisasi; $dataBelanjaRealisasi["volume_satuan_realisasi"] = $BelanjaRealisasiDetail[0]->volume_satuan_realisasi; $dataBelanjaRealisasi["unit_satuan_realisasi"] = $BelanjaRealisasiDetail[0]->unit_satuan_realisasi; }else if(count($BelanjaRealisasiDetail)>1) { $dataBelanjaRealisasi["jumlah_realisasi"] = $BelanjaRealisasiDetail[1]->jumlah_realisasi; $dataBelanjaRealisasi["volume_satuan_realisasi"] = $BelanjaRealisasiDetail[1]->volume_satuan_realisasi; $dataBelanjaRealisasi["unit_satuan_realisasi"] = $BelanjaRealisasiDetail[1]->unit_satuan_realisasi; } $dataBelanjaRealisasi["realisasi_by"] = Auth::user()->id; $BelanjaRealisasi->update($dataBelanjaRealisasi); DB::commit(); return redirect($redirect)->with('success','Data Realisasi berhasil di input!'); }catch(\Exception $e){ throw new \Exception($e->getMessage()); DB::rollBack(); return redirect($redirect)->with('error',$e->getMessage()); } } $unitSatuan = UnitSatuan::orderBy("id")->get(); return view('realisasi_belanja.form_input_realisasi',compact("BelanjaRealisasi", "BelanjaRealisasiDetail", "jmlRealisasi", "unitSatuan","redirect","semester","sms")); } public function datatableInputRealisasi(Request $request) { $post = $request->all(); $offset = $post["start"]; $limit = $post["length"]; $src = isset($post["search"])?$post["search"]["value"]:""; $dataFilter=0; $data = DB::select( DB::raw('SELECT x.I_ID as IDSP2D, x.I_IDOPD,x.I_SP2DNO_DOK,TO_CHAR(x.D_SP2D_SAH,\'DD-MM-YYYY\') AS D_SP2D_SAH,x.V_SPP, a.no_sp2d,a.jumlah_realisasi,a.VOLUME_SATUAN_REALISASI,a.UNIT_SATUAN_REALISASI,a.ID FROM NEWSIPKD.TMSP2D x LEFT JOIN NEWSIPKD.TMSPPRINCIBLJRSK y ON x.I_IDSPP = y.I_IDSPP LEFT JOIN SAMASA.DBH_BELANJA_REALISASI_DETAIL a ON x.I_SP2DNO_DOK = a.NO_SP2D WHERE y.I_IDRSK = '.$request->id.' ORDER BY x.D_SP2D_SAH ' ) ); $dataFilter = count($data); $dataTotal = $dataFilter; return response()->json([ "recordsTotal" => $dataTotal, "recordsFiltered" => $dataFilter, "data"=> $data ]); } protected function uploadFileKontrak($request, $id) { $file = $request->file('file_kontrak'); if ($file){ $fileName = $file->getClientOriginalName(); $tujuan_upload = config('constants.upload_path_kontrak').$id; File::isDirectory($tujuan_upload) or File::makeDirectory($tujuan_upload, 0777, true, true); $file->move($tujuan_upload, $fileName); return $fileName; } return false; } public function kontrak(Request $request, $id) { $BelanjaRealisasi = BelanjaRealisasi::where("id", $id)->firstOrNew(); $req = $request->all(); $redirect = "/realisasi-belanja/".$id."/submit"; $action = "/realisasi-belanja/".$id."/kontrak"; // var_dump("WOY"); exit; if ($request->isMethod('post')) { try{ DB::beginTransaction(); $this->validate($request, [ 'file_kontrak' => 'required|mimes:pdf', ]); $fileName = $this->uploadFileKontrak($request, $id); BelanjaRealisasiKontrak::where("belanja_realisasi_id",$id)->where("nomor_kontrak",$req["nomor_kontrak"])->firstOrNew()->delete(); $data["belanja_realisasi_id"] = $id; $data["nomor_kontrak"] = $req["nomor_kontrak"]; $data["tgl_kontrak"] = ConvertIndoDate($req["tgl_kontrak"]); $data["nominal_kontrak"] = replaceMoney($req["nominal_kontrak"]); $data["file_kontrak"] = $fileName; $data["nomor_bast"] = ""; $data["created_by"] = Auth::user()->id; BelanjaRealisasiKontrak::create($data); DB::commit(); return redirect($redirect)->with('success','Data Kontrak berhasil di input!'); }catch(\Exception $e){ throw new \Exception($e->getMessage()); DB::rollBack(); return redirect($redirect)->with('error',$e->getMessage()); } } return view('realisasi_belanja.form_kontrak',compact("BelanjaRealisasi","action")); } public function kontrakUpdate(Request $request, $idKontrak) { $BelanjaRealisasiKontrak = BelanjaRealisasiKontrak::where("id",$idKontrak)->firstorNew(); $BelanjaRealisasi = BelanjaRealisasi::where("id", $BelanjaRealisasiKontrak->belanja_realisasi_id)->firstOrNew(); $req = $request->all(); $redirect = "/realisasi-belanja/".$BelanjaRealisasiKontrak->belanja_realisasi_id."/submit"; $action = "/realisasi-belanja/".$idKontrak."/kontrak"; if ($request->isMethod('put')) { try{ DB::beginTransaction(); $data["nomor_kontrak"] = $req["nomor_kontrak"]; $data["tgl_kontrak"] = ConvertIndoDate($req["tgl_kontrak"]); $data["nominal_kontrak"] = replaceMoney($req["nominal_kontrak"]); $data["nomor_bast"] = ""; $fileName = $this->uploadFileKontrak($request, $BelanjaRealisasi->id); if ($fileName){ $data["file_kontrak"] = $fileName; } $BelanjaRealisasiKontrak->update($data); DB::commit(); return redirect($redirect)->with('success','Data Kontrak berhasil di input!'); }catch(\Exception $e){ throw new \Exception($e->getMessage()); DB::rollBack(); return redirect($redirect)->with('error',$e->getMessage()); } } return view('realisasi_belanja.form_kontrak',compact("BelanjaRealisasi","BelanjaRealisasiKontrak","action")); } public function destroyKontrak($id) { try{ DB::beginTransaction(); $BelanjaRealisasiKontrak = BelanjaRealisasiKontrak::where("id",$id)->firstorNew(); $alamatFile = config('constants.upload_path_kontrak').$BelanjaRealisasiKontrak->belanja_realisasi_id."/".$BelanjaRealisasiKontrak->file_kontrak; if (file_exists($alamatFile)){ unlink($alamatFile); } $basts = BelanjaRealisasiBast::where("id_kontrak",$id)->get(); foreach($basts as $bast) { $this->delBast($bast->id); } BelanjaRealisasiKontrak::where("id",$id)->delete(); DB::commit(); return redirect(URL::to("/realisasi-belanja/".$BelanjaRealisasiKontrak->belanja_realisasi_id."/submit")) ->with('success','Data Kontrak Realisasi Belanja berhasil dihapus!'); }catch(Throwable $e){ DB::rollBack(); return redirect(URL::to("/realisasi-belanja/".$BelanjaRealisasiKontrak->belanja_realisasi_id."/submit")) ->with('error','Data Kontrak Realisasi Belanja gagal dihapus.'); } } public function downloadKontrak($kode) { $kode = explode("__",$kode); $BelanjaRealisasiKontrak = BelanjaRealisasiKontrak::where(["belanja_realisasi_id"=>$kode[0], "id"=>$kode[1]])->firstorNew(); $headers = [ 'Content-Type' => 'application/pdf', 'Content-Disposition' => 'attachment;filename='.$BelanjaRealisasiKontrak->file_kontrak ]; if ($BelanjaRealisasiKontrak){ return response()->download(config('constants.upload_path_kontrak').$BelanjaRealisasiKontrak->file_kontrak, $BelanjaRealisasiKontrak->file_kontrak, $headers); }else{ echo "File tidak ditemukan!"; } } protected function uploadFileBast($request, $id) { $file = $request->file('file_bast'); if ($file){ $fileName = $file->getClientOriginalName(); $tujuan_upload = config('constants.upload_path_kontrak').$id."/bast"; File::isDirectory($tujuan_upload) or File::makeDirectory($tujuan_upload, 0777, true, true); $file->move($tujuan_upload, $fileName); return $fileName; } return false; } public function bast(Request $request, $id) { $kontrak = BelanjaRealisasiKontrak::where("id", $id)->firstOrNew(); $BelanjaRealisasiBast = BelanjaRealisasiBast::where("id_kontrak",$id)->get(); return view('realisasi_belanja.list_bast',compact("BelanjaRealisasiBast","kontrak")); } public function bastCreate(Request $request, $idKontrak) { $req = $request->all(); $kontrak = BelanjaRealisasiKontrak::where("id", $idKontrak)->firstOrNew(); $redirect = "/realisasi-belanja/".$kontrak->belanja_realisasi_id."/submit"; $action = "/realisasi-belanja/".$idKontrak."/bast/add"; // var_dump("WOY"); exit; if ($request->isMethod('post')) { try{ DB::beginTransaction(); $this->validate($request, [ 'file_bast' => 'required|mimes:pdf', ]); $fileName = $this->uploadFileBast($request, $kontrak->belanja_realisasi_id); BelanjaRealisasiBast::where("id_kontrak",$idKontrak)->where("nomor_bast",$req["nomor_bast"])->firstOrNew()->delete(); $data["id_kontrak"] = $idKontrak; $data["nomor_bast"] = $req["nomor_bast"]; $data["tgl_bast"] = ConvertIndoDate($req["tgl_bast"]); $data["nominal_bast"] = replaceMoney($req["nominal_bast"]); $data["file_bast"] = $fileName; $data["created_by"] = Auth::user()->id; BelanjaRealisasiBast::create($data); DB::commit(); return redirect($redirect)->with('success','Data BAST berhasil di input!'); }catch(\Exception $e){ throw new \Exception($e->getMessage()); DB::rollBack(); return redirect($redirect)->with('error',$e->getMessage()); } } return view('realisasi_belanja.form_bast',compact("kontrak","action")); } protected function delBast($id) { $BelanjaRealisasiBast = BelanjaRealisasiBast::where("id",$id)->firstorNew(); $BelanjaRealisasiKontrak = BelanjaRealisasiKontrak::where("id",$BelanjaRealisasiBast->id_kontrak)->firstorNew(); $alamatFile = config('constants.upload_path_kontrak').$BelanjaRealisasiKontrak->belanja_realisasi_id."/bast/".$BelanjaRealisasiBast->file_bast; if (file_exists($alamatFile)){ unlink($alamatFile); } return BelanjaRealisasiBast::where("id",$id)->delete(); } public function destroyBast($id) { try{ DB::beginTransaction(); $this->delBast($id); DB::commit(); return redirect(URL::to("/realisasi-belanja/".$BelanjaRealisasiKontrak->belanja_realisasi_id."/submit")) ->with('success','Data BAST Realisasi Belanja berhasil dihapus!'); }catch(Throwable $e){ DB::rollBack(); return redirect(URL::to("/realisasi-belanja/".$BelanjaRealisasiKontrak->belanja_realisasi_id."/submit")) ->with('error','Data BAST Realisasi Belanja gagal dihapus.'); } } public function downloadBast($kode) { $kode = explode("__",$kode); $BelanjaRealisasiKontrak = BelanjaRealisasiKontrak::where(["belanja_realisasi_id"=>$kode[0], "id"=>$kode[1]])->firstorNew(); $headers = [ 'Content-Type' => 'application/pdf', 'Content-Disposition' => 'attachment;filename='.$BelanjaRealisasiKontrak->file_kontrak ]; if ($BelanjaRealisasiKontrak){ return response()->download(config('constants.upload_path_kontrak').$BelanjaRealisasiKontrak->file_kontrak, $BelanjaRealisasiKontrak->file_kontrak, $headers); }else{ echo "File tidak ditemukan!"; } } public function download(Request $request) { $post = $request->all(); $sps = isset($post["sps"])?$post["sps"]:""; $ta = $post["ta"]; $data = BelanjaRealisasi::orderBy("created_at","ASC"); if (!empty($sps)){ $data->where("id_sps",$sps); } $fileName = 'Realisasi-belanja.xlsx'; $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue(getAlphabetCell(0).'1', 'Kode SKPD'); $sheet->setCellValue(getAlphabetCell(1).'1', 'Nama SKPD'); $sheet->setCellValue(getAlphabetCell(2).'1', 'Kode Program'); $sheet->setCellValue(getAlphabetCell(3).'1', 'Nama Program'); $sheet->setCellValue(getAlphabetCell(4).'1', 'Kode Sub Kegiatan'); $sheet->setCellValue(getAlphabetCell(5).'1', 'Sub Kegiatan'); $sheet->setCellValue(getAlphabetCell(6).'1', 'Kode Rinci Sub Kegiatan'); $sheet->setCellValue(getAlphabetCell(7).'1', 'Rinci Sub Kegiatan'); $sheet->setCellValue(getAlphabetCell(8).'1', 'Anggaran'); $sheet->setCellValue(getAlphabetCell(9).'1', 'Volume'); $sheet->setCellValue(getAlphabetCell(10).'1', 'Unit'); $sheet->setCellValue(getAlphabetCell(11).'1', 'Realisasi'); $sheet->setCellValue(getAlphabetCell(12).'1', 'Volume'); $sheet->setCellValue(getAlphabetCell(13).'1', 'Unit'); $rows = 2; foreach ($data->get() as $val){ $sheet->setCellValue(getAlphabetCell(0) . $rows, $val["kode_skpd"]); $sheet->setCellValue(getAlphabetCell(1) . $rows, $val["nama_skpd"]); $sheet->setCellValue(getAlphabetCell(2) . $rows, $val["kode_program"]); $sheet->setCellValue(getAlphabetCell(3) . $rows, $val["nama_program"]); $sheet->setCellValue(getAlphabetCell(4) . $rows, $val["kode_sub_kegiatan"]); $sheet->setCellValue(getAlphabetCell(5) . $rows, $val["nama_sub_kegiatan"]); $sheet->setCellValue(getAlphabetCell(6) . $rows, $val["kode_rsk"]); $sheet->setCellValue(getAlphabetCell(7) . $rows, $val["nama_rsk"]); $sheet->setCellValue(getAlphabetCell(8) . $rows, $val["jumlah_anggaran"]); $sheet->setCellValue(getAlphabetCell(9) . $rows, $val["volume_satuan"]); $sheet->setCellValue(getAlphabetCell(10) . $rows, $val["unit_satuan"]); $sheet->setCellValue(getAlphabetCell(11) . $rows, $val["jumlah_realisasi"]); $sheet->setCellValue(getAlphabetCell(12) . $rows, $val["volume_satuan_realisasi"]); $sheet->setCellValue(getAlphabetCell(13) . $rows, $val["unit_satuan_realisasi"]); $rows++; } $writer = new Xlsx($spreadsheet); $writer->save("downloadFiles/".$fileName); $headers = [ 'Content-Type' => 'application/vnd.ms-excel', 'Content-Disposition' => 'attachment;filename='.$fileName ]; return response()->download("downloadFiles/".$fileName, $fileName, $headers); } }