siteTitle = "Data Salur Dana"; parent::__construct(); } public function index() { return view('salurdana.index') ->with('i', (request()->input('page', 1) - 1) * 10); } public function create() { // if (!Auth::user()->can("Tambah SKPP")){ // abort(403, 'Youre not allowed to visit this page!'); // } $this->setSubtitle("Tambah Data"); return view('salurdana.create'); } public function store(Request $request) { try{ $date = date("Ymd"); DB::beginTransaction(); $req = $request->all(); // var_dump($req); exit; $data = $this->setInputData($req); $noUrut = date("ymd")."00001"; $cekNoUrut = TxSkpp::select(["id_pen"]) ->whereRaw("date(created_at)='".date("Y-m-d")."'") ->orderBy("created_at","DESC") ->first(); if ($cekNoUrut){ $noUrut = substr($cekNoUrut["id_pen"], -5) + 1; $noUrut = date("ymd").substr("00000".$noUrut, -5); } $data["id_pen"] = $noUrut; $data["no_skpp"] = $noUrut."/SKPP/073.521"; $data["created_by"] = Auth::user()->id; $cekData = TxSkpp::where("nip", $data["nip"]) ->orWhere("nrk", $data["nrk"]) ->first(); if ($cekData){ throw new \Exception("Data dengan NIP ".$data["nip"]." Sudah ada"); } $TSkpp = TxSkpp::create($data); DB::commit(); return redirect()->route('tx-salurdana.index') ->with('success','SKPP berhasil dibuat.'); }catch(\Exception $e){ DB::rollBack(); return redirect()->route('tx-salurdana.index') ->with('error',$e->getMessage()); } } protected function setInputData($req){ $dinas = MstUnit::where("N_OPD", $req["personal"]["nama_dinas"])->first(); $data["nama"]=$req["personal"]["nama"]; $data["nip"]=$req["personal"]["nip"]; $data["nrk"]=$req["personal"]["nrk"]; $data["golongan"]=$req["personal"]["golongan_id"]; $data["status_pegawai"]=$req["personal"]["status_kepegawaian"]; $data["id_unit"]=isset($dinas["I_ID"])?$dinas["I_ID"]:0; $data["dinas"]=$req["personal"]["nama_dinas"]; $data["tugas"]=$req["personal"]["tempat_tugas"]; $data["tgl_akhir"]=ConvertIndoDate($req["personal"]["penerimaan_gaji_akhir"]); $data["id_kep"]=$req["keputusan"]["keputusan_id"]; $data["no_pen"]=$req["keputusan"]["nomor"]; $data["tgl_pen"]=ConvertIndoDate($req["keputusan"]["tgl"]); $data["id_hak"]=$req["keputusan"]["hak_id"]; $data["tgl_tmt"]=ConvertIndoDate($req["keputusan"]["tmt"]); $data["keterangan"]=$req["keputusan"]["keterangan_kantor"]; $data["nama_kantor1"]=$req["keputusan"]["nama_kantor1"]; $data["nama_kantor2"]=$req["keputusan"]["nama_kantor2"]; $data["wilayah"]=$req["keputusan"]["wilayah_kantor"]; $data["ga_pok"]=replaceMoney($req["rincian_gaji"]["gaji_pokok"]); $data["t_issum"]=replaceMoney($req["rincian_gaji"]["tunjangan_suami_istri"]); $data["t_anak"]=replaceMoney($req["rincian_gaji"]["tunjangan_anak"]); $data["t_lain"]=replaceMoney($req["rincian_gaji"]["tunjangan_lain"]); $data["t_jab"]=replaceMoney($req["rincian_gaji"]["tunjangan_jabatan"]); $data["t_beras"]=replaceMoney($req["rincian_gaji"]["tunjangan_beras"]); $data["tpph"]=replaceMoney($req["rincian_gaji"]["tunjangan_pph"]); $data["bulat"]=replaceMoney($req["rincian_gaji"]["pembulatan"]); $data["p_beras"]=replaceMoney($req["rincian_gaji"]["potongan_beras"]); $data["iuran"]=replaceMoney($req["rincian_gaji"]["potongan_iuran_pfk"]); $data["ppph"]=replaceMoney($req["rincian_gaji"]["potongan_pph"]); $data["lain_2"]=replaceMoney($req["rincian_gaji"]["potongan_lain"]); $data["potong"]=replaceMoney($req["rincian_gaji"]["total_potongan"]); // Total Seluruh potongan $data["gaber"]=replaceMoney($req["rincian_gaji"]["total_gaji_bersih"]); // Total gaji bersih $data["u_gaji1"]=null; // Hutang Gaji 1 date $data["u_gaji2"]=null; // Hutang Gaji 2 date $data["jml_u_gaji"]=0; // Total Hutang Gaji $data["u_beras1"]=null; // Hutang Beras 1 date $data["u_beras2"]=null; // Hutang Beras 2 date $data["jml_u_beras"]=0; // Total Hutang Beras $data["id_kan"]=$req["personal_kepala"]["kantor"]; $data["status_id"]=1; $data["id_kpkd"]=$req["id_kpkd"]; $data["total_utang"]=replaceMoney($req["rincian_utang"]["total"]); $data["total_utang_angsur"]=replaceMoney($req["rincian_utang"]["angsur"]); $data["total_utang_sisa"]=replaceMoney($req["rincian_utang"]["sisa_utang"]); $family = isset($req["family"])?$req["family"]:null; TxKeluarga::where("nip",$data["nip"])->delete(); if ($family){ foreach($family["nama"] as $key=>$itemFamilyName){ if ($itemFamilyName){ $dataFamily["nip"] = $data["nip"]; $dataFamily["nama"] = $itemFamilyName; $dataFamily["tgl_lahir"] = $family["tgl_lahir"][$key]?ConvertIndoDate($family["tgl_lahir"][$key]):null; $dataFamily["hubungan"] = $family["hubungan"][$key]; TxKeluarga::create($dataFamily); } } } $debt = $req["debt"]; if ($debt){ TxSkppUtang::where("nip",$data["nip"])->delete(); foreach($debt["deskripsi"] as $key=>$itemDebt){ if ($itemDebt){ $dataDebt["nip"] = $data["nip"]; $dataDebt["uraian"] = $itemDebt; $dataDebt["jumlah"] = $debt["jumlah"][$key]?replaceMoney($debt["jumlah"][$key]):0; TxSkppUtang::create($dataDebt); } } } return $data; } public function show(TxSkpp $TxSkpp) { if (!Auth::user()->can("Lihat SKPP")){ abort(403, 'Youre not allowed to visit this page!'); } $this->setSubtitle("Detail Data"); $txSkpp = TxSkpp::where("id", $TxSkpp->id)->with(["mst_golongan","mst_utang","mst_keputusan","mst_hak","mst_kantor"])->first(); $txSkppHst = TxSkppHst::where("tx_skpp_id", $TxSkpp->id)->with(["mst_golongan","mst_keputusan","mst_hak","mst_kantor"])->orderBy("created_at","DESC")->get(); return view('salurdana.show',compact("txSkpp","txSkppHst")); } public function edit(TxSkpp $txSkpp) { if (!Auth::user()->can("Ubah SKPP")){ abort(403, 'Youre not allowed to visit this page!'); } $this->setSubtitle("Ubah Data"); $f_edit = "edit"; return view('salurdana.edit',compact("txSkpp","f_edit")); } public function update(Request $request, TxSkpp $txSkpp) { try{ DB::beginTransaction(); $req = $request->all(); $data = $this->setInputData($req); $data["updated_by"] = Auth::user()->id; $txSkpp->update($data); DB::commit(); return redirect()->route('tx-salurdana.index') ->with('success','SKPP berhasil diubah.'); }catch(Throwable $e){ DB::rollBack(); return redirect()->route('tx-salurdana.index') ->with('error','SKPP gagal diubah!'); } } public function revisi($id) { if (!Auth::user()->can("Ubah SKPP")){ abort(403, 'Youre not allowed to visit this page!'); } $txSkpp = TxSkpp::where("id", $id)->first(); $this->setSubtitle("Revisi Data"); $f_edit = "revisi"; return view('salurdana.edit',compact("txSkpp","f_edit")); } public function revisiStore(Request $request, $id) { try{ DB::beginTransaction(); $txSkpp = TxSkpp::where("id", $id)->first(); $txtSkppRevisi = $txSkpp->toArray(); $txtSkppRevisi["tx_skpp_id"]=$txtSkppRevisi["id"]; unset($txtSkppRevisi["id"]); TxSkppHst::create($txtSkppRevisi); $req = $request->all(); $revisiNo = intval($txSkpp->f_revisi) + 1; $data = $this->setInputData($req); $data["f_revisi"]=$revisiNo; $data["tgl_cetak"]=null; $data["no_skpp"]="R".$revisiNo."/".$txSkpp->id_pen."/SKPP/073.521"; $data["revisi_remarks"]=$req["personal"]["alasan_revisi"]; $data["revised_at"] = date("Y-m-d H:i"); $data["revised_by"] = Auth::user()->id; $txSkpp->update($data); DB::commit(); return redirect()->route('tx-salurdana.index') ->with('success','SKPP berhasil direvisi.'); }catch(Throwable $e){ DB::rollBack(); return redirect()->route('tx-salurdana.index') ->with('error','SKPP gagal direvisi!'); } } public function destroy(TxSkpp $txSkpp) { try{ DB::beginTransaction(); // $txSkpp->delete(); $txSkpp->update(["f_deleted"=>1,"deleted_at"=>date("Y-m-d H:i"), "deleted_by"=>Auth::user()->id]); // TxKeluarga::where("nip",$txSkpp["nip"])->delete(); // TxSkppUtang::where("nip",$txSkpp["nip"])->delete(); DB::commit(); return redirect()->route('tx-salurdana.index') ->with('success','SKPP berhasil dihapus!'); }catch(Throwable $e){ DB::rollBack(); return redirect()->route('tx-salurdana.index') ->with('error','SKPP gagal di hapus.'); } } public function datatable(Request $request) { $post = $request->all(); $offset = $post["start"]; $limit = $post["length"]; $src = $post["src"]; $srcdate1 = $post["srcDate1"]; $srcdate2 = $post["srcDate2"]; $statusCetak = $post["statusCetak"]; $jenisTgl = $post["jenisTgl"]; $data = []; $dataFilter=0; $select = DB::raw("id,no_skpp,CONVERT(created_at, DATE) AS tgldibuat,CONVERT(tgl_cetak, DATE) AS tgldicetak,no_pen,nrk,nip,nama,tgl_cetak,f_migrasi_data"); if ($src){ $data = TxSkpp::select($select) ->where("nrk","like","%$src%") ->orWhere("nip","like","%$src%") ->orWhere("nama","like","%$src%") ->orWhere("no_pen","like","%$src%") ->orWhere("no_skpp","like","$src%"); }else{ $data = TxSkpp::select($select); } $data->whereNull("f_deleted"); if ($srcdate1 && $srcdate2){ $data->whereDate($jenisTgl, ">=", ConvertIndoDate($srcdate1)); $data->whereDate($jenisTgl, "<=", ConvertIndoDate($srcdate2)); } if ($statusCetak){ if ($statusCetak == "sudah"){ $data->whereNotNull("tgl_cetak"); }else{ $data->whereNull("tgl_cetak"); } } $dataFilter = $data->count(); $dataTotal = TxSkpp::count(); return response()->json([ "recordsTotal" => $dataTotal, "recordsFiltered" => $dataFilter, "data"=> $data->orderBy("created_at","DESC")->skip($offset)->take($limit)->get() ]); } function updateTerbilang($idSKPP, $val){ TxTerbilang::where("tx_skpp_id",$idSKPP)->delete(); return TxTerbilang::create(["tx_skpp_id"=>$idSKPP, "description"=>terbilang($val)]); } public function getPegawai(Request $request){ // NRK = 178998 181188 181199 // $NRK = "181199"; $response = Http::withHeaders( ['Authorization' => 'Basic ' . base64_encode(env("SOA_PEGAWAI_USER").":".env("SOA_PEGAWAI_PASSWORD"))]) ->accept('application/json') ->get(env("SOA_PEGAWAI")."?nrk=".$request->NRK); $getData = $response->json(); if (count($getData["results"])>0){ $PEG = $getData["results"][0]; $iuranPFK = doubleval($PEG["POTONGAN_THT"]) + doubleval($PEG["POTONGAN_TASPEN"]) + doubleval($PEG["POTONGAN_ASKES_GAJI"]); $tunjanganLain = doubleval($PEG["TUNJANGAN_LAIN"]) + doubleval($PEG["TUNJANGAN_FUNGSIONAL"]); return response()->json([ "THBL" => $PEG["THBL"], "NRK"=>$PEG["NRK"], "NAMA"=>$PEG["NAMA"], "NIP"=>$PEG["NIP"], "GOLONGAN"=>$PEG["GOLONGAN"], "PANGKAT"=>$PEG["PANGKAT"], "STATUS"=>$PEG["STATUS"], "PERANGKAT_DAERAH"=>$PEG["PERANGKAT_DAERAH"], "UNIT_KERJA"=>$PEG["UNIT_KERJA"], "GAPOK"=>separateNumberIndo($PEG["GAPOK"]), "NAMA_PASANGAN"=>$PEG["NAMA_PASANGAN"], "TUNJANGAN_ISTRI_SUAMI"=>separateNumberIndo($PEG["TUNJANGAN_ISTRI_SUAMI"]), "TANGGAL_LAHIR_PASANGAN"=>$PEG["TANGGAL_LAHIR_PASANGAN"] == "" ? "":date("d/m/Y",strtotime($PEG["TANGGAL_LAHIR_PASANGAN"])), "ANAKTUNJANG1"=>$PEG["ANAKTUNJANG1"], "TGLAHIRANAK1"=>$PEG["TGLAHIRANAK1"] == "" ? "": date("d/m/Y",strtotime($PEG["TGLAHIRANAK1"])), "ANAKTUNJANG2"=>$PEG["ANAKTUNJANG2"], "TGLAHIRANAK2"=>$PEG["TGLAHIRANAK2"] == "" ? "": date("d/m/Y",strtotime($PEG["TGLAHIRANAK2"])), "ANAKTUNJANG3"=>$PEG["ANAKTUNJANG3"], "TGLAHIRANAK3"=>$PEG["TGLAHIRANAK3"] == "" ? "": date("d/m/Y",strtotime($PEG["TGLAHIRANAK3"])), "TUNJANGAN_ANAK"=>separateNumberIndo($PEG["TUNJANGAN_ANAK"]), "TUNJANGAN_JABATAN"=>separateNumberIndo($PEG["TUNJANGAN_JABATAN"]), "TUNJANGAN_LAIN"=>separateNumberIndo($tunjanganLain), "TUNJANGAN_BERAS"=>separateNumberIndo($PEG["TUNJANGAN_BERAS"]), "TUNJANGAN_PPH"=>0, "PEMBULATAN"=>separateNumberIndo($PEG["PEMBULATAN"]), "IURAN_PFK"=>separateNumberIndo($iuranPFK), "POTONGAN_BERAS"=>0, "POTONGAN_PPH"=>0, "POTONGAN_LAIN"=>0 ]); } return []; } public function printData(Request $request) { $req = $request->all(); DB::beginTransaction(); $txSkpp = txSkpp::where("id",$req["id_skpp"])->first(); $txSkpp->update(["tgl_cetak"=>date("Y-m-d")]); $this->updateTerbilang($req["id_skpp"], $txSkpp->gaber); DB::commit(); $params = [ "ParamId"=>$req["id_skpp"], "serverLocation"=>public_path() ]; $fileReport = reportProceed("skpp","skpp", $params); return response()->file($fileReport); } public function exportHst(Request $request, $id) { $req = $request->all(); return Excel::download(new SkppHstExport($id),'skpp_hst.xlsx'); } }