diff --git a/app/Http/Controllers/Admin/MstJenisDanaController.php b/app/Http/Controllers/Admin/MstJenisDanaController.php
new file mode 100644
index 0000000..41d7306
--- /dev/null
+++ b/app/Http/Controllers/Admin/MstJenisDanaController.php
@@ -0,0 +1,105 @@
+siteTitle = "Master Jenis Dana";
+ parent::__construct();
+ }
+
+ public function index()
+ {
+ $data = null;
+ // $data = User::where('role_name', "<>", "superadmin")->latest()->paginate(10);
+ return view('admin.mst_jenis_dana.index',compact('data'))
+ ->with('i', (request()->input('page', 1) - 1) * 10);
+ }
+
+ public function create()
+ {
+ $this->setSubtitle("Tambah Data");
+ return view('admin.mst_jenis_dana.create');
+ }
+
+ public function store(Request $request)
+ {
+ $request->validate([
+ 'name' => 'required',
+ 'grup' => 'required',
+ ]);
+
+ $req = $request->all();
+ MstJenisDana::where("name", $req["name"])->delete();
+ $data["name"] = $req["name"];
+ $data["grup"] = $req["grup"];
+ MstJenisDana::create($data);
+
+ return redirect("/admin/MstJenisDana")->with('success','Jenis Belanja berhasil dibuat.');
+ }
+
+ public function show(MstJenisDana $MstJenisDana)
+ {
+ $SubJenisBelanja = MstSubJenisBelanja::where("id_jenis_belanja",$MstJenisDana->id)->get();
+ $this->setSubtitle("Detail Jenis Belanja");
+ return view('admin.mst_jenis_dana.show',compact('MstJenisDana','SubJenisBelanja'));
+ }
+
+ public function edit(MstJenisDana $MstJenisDana)
+ {
+ $this->setSubtitle("Ubah Data");
+ return view('admin.mst_jenis_dana.edit',compact('MstJenisDana'));
+ }
+
+ public function update(Request $request, MstJenisDana $MstJenisDana)
+ {
+ $request->validate([
+ 'grup' => 'required',
+ 'name' => 'required',
+ ]);
+
+ $req = $request->all();
+ $data["grup"] = $req["grup"];
+ $data["name"] = $req["name"];
+ $MstJenisDana->update($req);
+
+ return redirect()->route('MstJenisDana.index')
+ ->with('success','Data Jenis Dana berhasil diubah!');
+ }
+
+ public function destroy(MstJenisDana $MstJenisDana)
+ {
+ $MstJenisDana->delete();
+ return redirect()->route('MstJenisDana.index')
+ ->with('success','Data Jenis Dana berhasil dihapus!');
+ }
+
+ public function datatable(Request $request)
+ {
+ $post = $request->all();
+ $offset = $post["start"];
+ $limit = $post["length"];
+ $src = isset($post["search"]["value"]) ? strtolower($post["search"]["value"]):"";
+ $select = DB::raw("ID,NAME,GRUP");
+ $sqlstr = MstJenisDana::select($select);
+ $dataTotal = $sqlstr->count();
+ $data = $sqlstr->orderBy("GRUP","DESC");
+ if (!empty($src)){
+ $data->whereRaw(" ( lower(NAME) like '%$src%' ) ");
+ }
+ $dataFilter = $data->count();
+
+ return response()->json([
+ "recordsTotal" => $dataTotal,
+ "recordsFiltered" => $dataFilter,
+ "data"=> $data->skip($offset)->take($limit)->get()
+ ]);
+ }
+}
\ No newline at end of file
diff --git a/app/Http/Controllers/ItemSearchController.php b/app/Http/Controllers/ItemSearchController.php
index c66c065..8df819f 100644
--- a/app/Http/Controllers/ItemSearchController.php
+++ b/app/Http/Controllers/ItemSearchController.php
@@ -12,6 +12,7 @@ use App\Models\Sps_pendapatan;
use App\Models\Siesetpembayaran;
use App\Models\Sp2d;
use App\Models\BelanjaRealisasi;
+use App\Models\MstJenisDana;
use App\Models\MstJenisBelanja;
use App\Models\MstSubJenisBelanja;
use Illuminate\Http\Request;
@@ -183,13 +184,52 @@ class ItemSearchController extends Controller
public function jenisBelanja(Request $request)
{
$sk = [];
-
+ $select = DB::raw("ID, NAME");
if($request->has('q')){
$search = $request->q;
- $select = DB::raw("ID, NAME");
$sk = MstJenisBelanja::select($select)
->where('NAME', 'LIKE', "%$search%")
->get();
+ }else{
+ $sk = MstJenisBelanja::select($select)->get();
+ }
+ return response()->json($sk);
+ }
+
+ public function subjenisDana(Request $request)
+ {
+ $sk = [];
+ $select = DB::raw("NAME AS ID_NAME, NAME");
+ $idGrup = $request->id_grup;
+ if($request->has('q')){
+ $search = $request->q;
+ $sk = MstJenisDana::select($select)
+ ->where("GRUP",$idGrup)
+ ->where('NAME', 'LIKE', "%$search%")
+ ->get();
+ }else{
+ $sk = MstJenisDana::select($select)
+ ->where("GRUP",$idGrup)
+ ->get();
+ }
+ return response()->json($sk);
+ }
+
+ public function subjenisBelanja(Request $request)
+ {
+ $sk = [];
+ $select = DB::raw("ID, NAME");
+ $idJenis = $request->id_jenis;
+ if($request->has('q')){
+ $search = $request->q;
+ $sk = MstSubJenisBelanja::select($select)
+ ->where("id_jenis_belanja",$idJenis)
+ ->where('NAME', 'LIKE', "%$search%")
+ ->get();
+ }else{
+ $sk = MstSubJenisBelanja::select($select)
+ ->where("id_jenis_belanja",$idJenis)
+ ->get();
}
return response()->json($sk);
}
diff --git a/app/Http/Controllers/RealisasiBelanjaController.php b/app/Http/Controllers/RealisasiBelanjaController.php
index 889e54f..8ebb2a5 100644
--- a/app/Http/Controllers/RealisasiBelanjaController.php
+++ b/app/Http/Controllers/RealisasiBelanjaController.php
@@ -14,8 +14,10 @@ use App\Models\BelanjaRealisasiBast;
use App\Models\TempRealisasiBelanja;
use App\Models\VwAkbSpdRealRsk;
use App\Models\VwJenisBelanja;
+use App\Models\VwDpaRsk;
use App\Models\UnitSatuan;
use App\Models\Sp2d;
+use App\Models\Sps_pendapatan;
use App\Imports\RealisasiBelanjaImport;
use App\Imports\RealisasiBelanjaImportDak;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
@@ -36,12 +38,112 @@ class RealisasiBelanjaController extends Controller
return view('realisasi_belanja.index');
}
- public function create()
+ public function create(Request $request)
{
+ $get = $request->all();
+ $VwDpaRsk = VwDpaRsk::where("I_ID",$get["rsk"])->firstorCreate();
+ $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"])->firstorCreate();
+ 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(BelanjaRealisasi $realisasi_belanja)
@@ -97,7 +199,8 @@ class RealisasiBelanjaController extends Controller
$unitSatuan = UnitSatuan::orderBy("id")->get();
$jmlRealisasi1 = $this->getRealisasi($BelanjaRealisasi->kode_rsk, 1);
$jmlRealisasi2 = $this->getRealisasi($BelanjaRealisasi->kode_rsk, 2);
- return view('realisasi_belanja.submit', compact("BelanjaRealisasi","BelanjaRealisasiDetail","BelanjaRealisasiKontrak","vwAKB","vwSPD","vwSP2D","unitSatuan","jmlRealisasi1","jmlRealisasi2"));
+ $sps = Sps_pendapatan::select(DB::raw("ID,KODE_REKENING||' | '||NAMA_REKENING as name"))->where("ID", $BelanjaRealisasi->id_sps)->firstorCreate();
+ return view('realisasi_belanja.submit', compact("BelanjaRealisasi","BelanjaRealisasiDetail","BelanjaRealisasiKontrak","vwAKB","vwSPD","vwSP2D","unitSatuan","jmlRealisasi1","jmlRealisasi2","sps"));
}
public function datatable(Request $request)
@@ -140,7 +243,7 @@ class RealisasiBelanjaController extends Controller
$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.") a
+ $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
diff --git a/app/Models/BelanjaRealisasi.php b/app/Models/BelanjaRealisasi.php
index 4c5fb6a..aab8bc9 100644
--- a/app/Models/BelanjaRealisasi.php
+++ b/app/Models/BelanjaRealisasi.php
@@ -39,6 +39,7 @@ class BelanjaRealisasi extends Eloquent
"realisasi_by",
"created_by",
"jenis_dana",
- "sub_jenis_dana"
+ "sub_jenis_dana",
+ "id_sps"
];
}
diff --git a/app/Models/MstJenisDana.php b/app/Models/MstJenisDana.php
new file mode 100644
index 0000000..ec699db
--- /dev/null
+++ b/app/Models/MstJenisDana.php
@@ -0,0 +1,18 @@
+string("sub_jenis_dana",50);
$table->uuid('realisasi_by')->nullable();
$table->uuid('created_by')->nullable();
+ $table->integer('id_sps')->nullable();
$table->timestamps();
});
}
diff --git a/database/migrations/2022_09_10_023755_create_mst_jenis_dana_table.php b/database/migrations/2022_09_10_023755_create_mst_jenis_dana_table.php
new file mode 100644
index 0000000..87e22ac
--- /dev/null
+++ b/database/migrations/2022_09_10_023755_create_mst_jenis_dana_table.php
@@ -0,0 +1,33 @@
+id();
+ $table->string('name', 50);
+ $table->enum('grup',["DBH","DAK"])->default("DBH");
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('mst_jenis_dana');
+ }
+}
diff --git a/public/js/app.js b/public/js/app.js
index f5536a8..e8ec6ad 100644
--- a/public/js/app.js
+++ b/public/js/app.js
@@ -1,6 +1,7 @@
// Currency Separator
var commaCounter = 10;
var Url = document.currentScript.getAttribute('myUrl');
+var ta = document.currentScript.getAttribute('ta');
function numberSeparator(Number) {
Number += '';
@@ -317,7 +318,49 @@ $('.jenis_belanja_search').select2({
$('.sub_jenis_belanja_search').select2({
placeholder: 'Pilih Sub Jenis Belanja',
ajax: {
- url: Url+'/item-search-rsk',
+ url: Url+'/item-search-subjenisbelanja',
+ dataType: 'json',
+ delay: 250,
+ processResults: function (data) {
+ return {
+ results: $.map(data, function (item) {
+ return {
+ text: item.name,
+ id: item.id
+ }
+ })
+ };
+ },
+ cache: true
+ }
+});
+
+let subJenisDana = (idGrup)=>{
+ $('.sub_jenis_dana').select2({
+ placeholder: 'Pilih Sub Jenis Dana',
+ ajax: {
+ url: Url+'/item-search-subjenisdana?id_grup='+idGrup,
+ dataType: 'json',
+ delay: 250,
+ processResults: function (data) {
+ return {
+ results: $.map(data, function (item) {
+ return {
+ text: item.name,
+ id: item.id_name
+ }
+ })
+ };
+ },
+ cache: true
+ }
+ });
+}
+
+$('.sps_search').select2({
+ placeholder: 'Pilih DBH / DAK',
+ ajax: {
+ url: Url+'/item-search-sps?ta='+ta,
dataType: 'json',
delay: 250,
processResults: function (data) {
diff --git a/resources/views/admin/mst_jenis_dana/create.blade.php b/resources/views/admin/mst_jenis_dana/create.blade.php
new file mode 100644
index 0000000..e228f69
--- /dev/null
+++ b/resources/views/admin/mst_jenis_dana/create.blade.php
@@ -0,0 +1,52 @@
+@php
+ $siteBreadcumb = [
+ ["url"=>"/admin/MstJenisDana","label"=>$siteTitle],
+ ["url"=>"/admin/MstJenisDana","label"=>$sitesubTitle]
+ ];
+@endphp
+
+@extends('layouts.app')
+
+@section('content')
+
+
+
+
@php echo $sitesubTitle; @endphp
+
+
+
+
+
+
+@endsection
+@section('scripts')
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/admin/mst_jenis_dana/edit.blade.php b/resources/views/admin/mst_jenis_dana/edit.blade.php
new file mode 100644
index 0000000..e6749ef
--- /dev/null
+++ b/resources/views/admin/mst_jenis_dana/edit.blade.php
@@ -0,0 +1,53 @@
+@php
+ $siteBreadcumb = [
+ ["url"=>"/admin/MstJenisDana","label"=>$siteTitle],
+ ["url"=>"/admin/MstJenisDana","label"=>$sitesubTitle]
+ ];
+@endphp
+
+@extends('layouts.app')
+
+@section('content')
+
+
+
+
@php echo $sitesubTitle; @endphp
+
+
+
+
+
+
+@endsection
+@section('scripts')
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/admin/mst_jenis_dana/index.blade.php b/resources/views/admin/mst_jenis_dana/index.blade.php
new file mode 100644
index 0000000..9c59ff6
--- /dev/null
+++ b/resources/views/admin/mst_jenis_dana/index.blade.php
@@ -0,0 +1,118 @@
+@php
+ $siteBreadcumb = [
+ ["url"=>"/admin/MstJenisDana","label"=>$siteTitle],
+ ["url"=>"/admin/MstJenisDana","label"=>$sitesubTitle]
+ ];
+@endphp
+
+@extends('layouts.empty')
+
+@section('styles')
+
+
+
+
+
+@endsection
+
+@section('content')
+
+
+
+
+
+
+ | No |
+ Grup |
+ Nama |
+ Action |
+
+
+
+
+
+
+ @section('scripts')
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @endsection
+@stop
\ No newline at end of file
diff --git a/resources/views/admin/mst_jenis_dana/show.blade.php b/resources/views/admin/mst_jenis_dana/show.blade.php
new file mode 100644
index 0000000..83d81c6
--- /dev/null
+++ b/resources/views/admin/mst_jenis_dana/show.blade.php
@@ -0,0 +1,148 @@
+@php
+ $siteBreadcumb = [
+ ["url"=>"/admin/MstJenisBelanja","label"=>$siteTitle],
+ ["url"=>"/admin/MstJenisBelanja","label"=>$sitesubTitle]
+ ];
+@endphp
+
+@section('styles')
+
+
+
+
+
+@endsection
+
+@extends('layouts.empty')
+
+@section('content')
+
+
+
+
+
+
+
+ | No |
+ Kode |
+ Nama |
+ Deskripsi |
+ Action |
+
+
+
+
+
+@endsection
+@section('scripts')
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/partials/footer.blade.php b/resources/views/partials/footer.blade.php
index 2d30e15..527fdc0 100644
--- a/resources/views/partials/footer.blade.php
+++ b/resources/views/partials/footer.blade.php
@@ -37,6 +37,6 @@
$("#loader-wrapper").hide();
});
-
+