Develop Notifikasi

This commit is contained in:
Pusdatin BPKD Jkt
2022-07-21 10:51:47 +07:00
parent 170888ba34
commit bd7998178f
19 changed files with 132 additions and 1791 deletions
+25
View File
@@ -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]);
}
}
@@ -0,0 +1,27 @@
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Models\Notifikasi;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class NotifikasiController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
public function getNotif(Request $request)
{
$notif = Notifikasi::where(["userid"=>Auth::user()->id,"is_read"=>0])->get();
return response()->json($notif);
}
}
@@ -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"));
}
@@ -1,396 +0,0 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Maatwebsite\Excel\Facades\Excel;
class SalurdanaController extends Controller
{
public function __construct(){
$this->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');
}
}
+25
View File
@@ -0,0 +1,25 @@
<?php
namespace App\Models;
use App\Traits\Uuids;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class Notifikasi extends Eloquent
{
use HasFactory;
use Uuids;
protected $connection = 'Samasa';
protected $table = 'SAMASA.notifikasi';
protected $fillable = [
"role_from",
"role_to",
"userid",
"message",
"url",
"is_read",
"jenis",
"id_unik"
];
}