diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php
index 25d48bc..5232894 100644
--- a/app/Http/Controllers/Controller.php
+++ b/app/Http/Controllers/Controller.php
@@ -7,6 +7,8 @@ use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;
use View;
+use App\Models\Notifikasi;
+use Illuminate\Support\Facades\Auth;
class Controller extends BaseController
{
@@ -25,4 +27,27 @@ class Controller extends BaseController
View::share ( 'sitesubTitle' , $name );
}
+ public function sendNotif($roleFrom, $roleTo, $userId=[], $message, $url, $jenis, $unik)
+ {
+ foreach($userId as $rowUserId){
+ $notif = new Notifikasi;
+ $notif["role_from"]=$roleFrom;
+ $notif["role_to"]=$roleTo;
+ $notif["userid"]=$rowUserId;
+ $notif["message"]=$message;
+ $notif["url"]=$url;
+ $notif["is_read"]=0;
+ $notif["jenis"]=$jenis;
+ $notif["id_unik"]=$unik;
+ $notif->save();
+ }
+ return true;
+ }
+
+ public function readNotif($idUnik)
+ {
+ $notif = Notifikasi::where(["id_unik"=>$idUnik, "userid"=>Auth::user()->id])->firstOrNew();
+ $notif->update(["is_read"=>1]);
+ }
+
}
diff --git a/app/Http/Controllers/NotifikasiController.php b/app/Http/Controllers/NotifikasiController.php
new file mode 100644
index 0000000..7369ce4
--- /dev/null
+++ b/app/Http/Controllers/NotifikasiController.php
@@ -0,0 +1,27 @@
+Auth::user()->id,"is_read"=>0])->get();
+ return response()->json($notif);
+ }
+}
diff --git a/app/Http/Controllers/RealisasiPendapatanController.php b/app/Http/Controllers/RealisasiPendapatanController.php
index 08ca95c..7392eff 100644
--- a/app/Http/Controllers/RealisasiPendapatanController.php
+++ b/app/Http/Controllers/RealisasiPendapatanController.php
@@ -9,6 +9,7 @@ use Illuminate\Support\Facades\Auth;
use Maatwebsite\Excel\Facades\Excel;
use App\Models\DbhPendapatanRealisasi;
use App\Models\Sps_pendapatan;
+use App\Models\User;
class RealisasiPendapatanController extends Controller
{
@@ -50,14 +51,20 @@ class RealisasiPendapatanController extends Controller
$data["simtrad4_bersih"] = replaceMoney($req["txt_simtrad4_bersih"]);
$data["simtrad4_sp2d_bun"] = $req["txt_simtrad4_sp2d_bun"];
$data["created_by"] = Auth::user()->id;
- //var_dump($data); exit;
- DbhPendapatanRealisasi::create($data);
- DB::commit();
+ $DbhPendapatanRealisasi = DbhPendapatanRealisasi::create($data);
+
+ // SEND NOTIF
+ $userBendahara = User::where("role_name","bendahara")->get()->toArray();
+ $userBendahara = array_column($userBendahara,"id");
+ $url = "/realisasi-pendapatan/".$DbhPendapatanRealisasi->id;
+ $message = "Realisasi Pendapatan telah dibuat oleh Bidang Anggaran dengan No. SP2D BUN ".$req["txt_simtrad4_sp2d_bun"];
+ $this->sendNotif("anggaran", "bendahara", $userBendahara, $message, $url, "Realisasi Pendapatan", $DbhPendapatanRealisasi->id);
+
+ DB::commit();
return redirect()->route('realisasi-pendapatan.index')
->with('success','Realisasi Pendapatan berhasil dibuat.');
}catch(\Exception $e){
-
DB::rollBack();
return redirect()->route('realisasi-pendapatan.create')
->with('error',$e->getMessage());
@@ -156,6 +163,7 @@ class RealisasiPendapatanController extends Controller
// if (!Auth::user()->can("Lihat SKPP")){
// abort(403, 'Youre not allowed to visit this page!');
// }
+ $this->readNotif($realisasi_pendapatan->id);
$this->setSubtitle("Detail Data");
return view('realisasi_pendapatan.show',compact("realisasi_pendapatan"));
}
diff --git a/app/Http/Controllers/SalurdanaController.php b/app/Http/Controllers/SalurdanaController.php
deleted file mode 100644
index 146a44e..0000000
--- a/app/Http/Controllers/SalurdanaController.php
+++ /dev/null
@@ -1,396 +0,0 @@
-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');
- }
-
-}
diff --git a/app/Models/Notifikasi.php b/app/Models/Notifikasi.php
new file mode 100644
index 0000000..20488d5
--- /dev/null
+++ b/app/Models/Notifikasi.php
@@ -0,0 +1,25 @@
+text("url");
$table->boolean("is_read");
$table->string("jenis", 50);
+ $table->string("id_unik",50);
$table->timestamps();
});
}
diff --git a/public/js/app.js b/public/js/app.js
index 94f0d3b..aa7b030 100644
--- a/public/js/app.js
+++ b/public/js/app.js
@@ -342,4 +342,37 @@ $(".has-treeview").removeClass("menu-open active");
$(currentLink).closest(".has-treeview").addClass("menu-open active");
$($(currentLink).closest(".has-treeview")).children("a.nav-link").addClass("active");
$($(currentLink).closest(".nav-treeview")).closest("li.nav-item").addClass("menu-open");
-$($(currentLink).closest(".nav-treeview")).parentsUntil(".nav-sidebar > .nav-treeview").addClass('menu-open');
\ No newline at end of file
+$($(currentLink).closest(".nav-treeview")).parentsUntil(".nav-sidebar > .nav-treeview").addClass('menu-open');
+$("#span_count_notif").hide();
+refreshNotif = ()=>{
+ $.ajax({
+ url: "/notif/get-notif",
+ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
+ type: "json",
+ method: "POST",
+ success: function(data){
+ $("#span_count_notif").hide();
+ if (data.length>0){
+ $("#span_count_notif").html(data.length);
+ $("#span_count_notif").show();
+ $listElm = "";
+ $.each(data, function(x,y){
+ $listElm = `
+ `+y.message+``+ y.jenis +`
+
+
+