Export excel, adjust anggaran

This commit is contained in:
Pusdatin BPKD Jkt
2022-11-17 11:08:28 +07:00
parent 16afa0b405
commit d65cfe6991
10 changed files with 204 additions and 121 deletions
@@ -222,7 +222,7 @@ class RealisasiBelanjaController extends Controller
$BelanjaRealisasi = $BelanjaRealisasi[0];
$this->setTitle("Realisasi Belanja");
$this->setSubtitle("Realisasi Belanja :: ".$BelanjaRealisasi->jenis_dana." ".$BelanjaRealisasi->nama_jenis_dana);
$this->setSubtitle("Realisasi Belanja :: ".$BelanjaRealisasi->jenis_dana." ".$BelanjaRealisasi->nama_subjenis_dana);
if (getRole()=="sbpk"){
$sbpkUpdate = BelanjaRealisasi::where("id", $id)->firstOrNew();
@@ -266,7 +266,7 @@ class RealisasiBelanjaController extends Controller
$vwAKB = json_decode(json_encode($vwAKB[0]), true);
$vwSPD = [];
if ($BelanjaRealisasi->jenis_dana == "DBH" && $BelanjaRealisasi->nama_jenis_dana != "CHT")
if ($BelanjaRealisasi->jenis_dana == "DBH" && $BelanjaRealisasi->nama_subjenis_dana != "CHT")
{
$vwSPD = BelanjaRealisasi::getSPD($BelanjaRealisasi->kode_sub_kegiatan,$BelanjaRealisasi->id_skpd);
}else{
@@ -305,13 +305,10 @@ class RealisasiBelanjaController extends Controller
return view('realisasi_belanja.submit_realisasi', compact("BelanjaRealisasi","BelanjaRealisasiDetail","BelanjaRealisasiRinci","jmlRealisasi1","jmlRealisasi2"));
}
public function datatable(Request $request)
public function tableFilter(Request $request)
{
$post = $request->all();
$offset = $post["start"];
$limit = $post["length"];
$src = isset($post["search"]["value"]) ? strtolower($post["search"]["value"]):"";
$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"]:"";
@@ -319,43 +316,33 @@ class RealisasiBelanjaController extends Controller
$idSPS = isset($post["id_sps"])?$post["id_sps"]:"";
$fReview = isset($post["f_review"])?$post["f_review"]:"";
$sqlStr = "SELECT x.*,z1.name as nama_subjenis_dana
FROM BELANJA_REALISASI x
LEFT JOIN NEWSIPKD.TROPD z ON x.KODE_SKPD = z.C_OPD
LEFT JOIN MST_JENIS_DANA z1 ON x.sub_jenis_dana = z1.id
WHERE x.tahun_anggaran='$ta'";
$filter=" WHERE tahun_anggaran = ".getTA();
if (getRole()=="skpd"){
$sqlStr.=" AND KODE_SKPD='".Auth::user()->nrk."'";
$filter.=" AND KODE_SKPD='".Auth::user()->nrk."'";
}elseif (getRole()=="sbpk"){
$sqlStr.=" AND z.C_WIL_SP2DPROSES=".Auth::user()->wilayah;
$filter.=" AND KODE_SKPD IN (SELECT C_OPD FROM NEWSIPKD.TROPD WHERE C_WIL_SP2DPROSES=".Auth::user()->wilayah.")";
}
if (!empty($skpd)){
$sqlStr.=" AND KODE_SKPD='".$skpd."'";
$filter.=" AND KODE_SKPD='".$skpd."'";
}
$filter="";
if (!empty($JenisDana)){
$filter.= " AND x.JENIS_DANA = '".$JenisDana."'";
$filter.= " AND JENIS_DANA = '".$JenisDana."'";
}
if (!empty($SubJenisDana)){
// CHT
$filter.= " AND x.SUB_JENIS_DANA = ".$SubJenisDana;
$filter.= " AND SUB_JENIS_DANA = ".$SubJenisDana;
}
// if (!empty($subkeg)){
// $filter.= " AND x.KODE_SUB_KEGIATAN = '".$subkeg."'";
// }
if (!empty($idSPS)){
$filter.= " AND x.id_sps = ".$idSPS;
$filter.= " AND id_sps = ".$idSPS;
}
if (!empty($fReview)){
$fReview = $fReview == 2 ? 0: $fReview;
$filter.= " AND x.f_view_sbpk = $fReview";
$filter.= " AND f_view_sbpk = $fReview";
}
if (!empty($src)){
@@ -366,40 +353,27 @@ class RealisasiBelanjaController extends Controller
kode_rsk = '".$src."' ) ";
}
$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.*,NVL(b.jml,0) as jml,
CASE WHEN a.jenis_dana = 'DBH' AND a.nama_subjenis_dana<>'CHT' THEN NVL(d.jml_spd, 0) ELSE NVL(c.jml_spd, 0) END AS jml_spd
FROM (".$sqlStr.$filter.") a
LEFT JOIN (
SELECT I_IDRSK, SUM(REALISASI_1) AS jml
FROM NEWSIPKD.VW_REALISASI_BELANJA_PERBULAN
WHERE C_ANGG_TAHUN = $ta
GROUP BY I_IDRSK
) b ON a.kode_rsk = b.I_IDRSK
LEFT JOIN (
SELECT id_rsk,count(id_rsk) as jml_spd
FROM SAMASA.belanja_realisasi_spd
WHERE TO_CHAR(TGL,'YYYY') = $ta
GROUP BY id_rsk
) c ON a.kode_rsk = c.id_rsk
LEFT JOIN (
SELECT C_OPD,C_SUBGIAT,COUNT(JML) AS jml_spd
FROM
(
SELECT C_OPD,C_SUBGIAT,SUM(V_SPD) AS JML
FROM NEWSIPKD.TMSPDRINCIBLJ x
LEFT JOIN NEWSIPKD.TMDPASUBGIAT y ON x.I_IDSUBGIAT = y.I_ID
AND x.C_ANGG_TAHUN = $ta
LEFT JOIN NEWSIPKD.TROPD z ON z.I_ID = y.I_IDOPD
WHERE C_SUBGIAT IS NOT NULL
GROUP BY C_OPD,C_SUBGIAT,I_IDSPD
) GROUP BY C_OPD,C_SUBGIAT
) d ON a.KODE_SUB_KEGIATAN = d.C_SUBGIAT AND a.KODE_SKPD = d.C_OPD
ORDER BY a.KODE_SKPD, a.KODE_RSK OFFSET ".$offset." ROWS FETCH NEXT ".$limit." ROWS ONLY"));
return $filter;
}
public function datatable(Request $request)
{
$post = $request->all();
$offset = $post["start"];
$limit = $post["length"];
$ta = $post["ta"];
$dataFilter = DB::select(DB::raw("SELECT COUNT(ID) as JML FROM VW_BELANJA_REALISASI ".$this->tableFilter($request)));
$dataTotal = BelanjaRealisasi::count();
if (getRole()=="skpd"){
$dataTotal = BelanjaRealisasi::whereRaw("KODE_SKPD='".Auth::user()->nrk."'")->count();
}elseif (getRole()=="sbpk"){
$dataTotal = BelanjaRealisasi::whereRaw("KODE_SKPD IN (SELECT C_OPD FROM NEWSIPKD.TROPD WHERE C_WIL_SP2DPROSES=".Auth::user()->wilayah.")");
}
$data = DB::select(DB::raw(BelanjaRealisasi::tableData($ta, $this->tableFilter($request), $offset, $limit)));
return response()->json([
"recordsTotal" => $dataTotal[0]->jml,
"recordsTotal" => $dataTotal,
"recordsFiltered" => $dataFilter[0]->jml,
"data"=> $data
]);
@@ -1003,47 +977,8 @@ class RealisasiBelanjaController extends Controller
public function download(Request $request)
{
$post = $request->all();
$sps = isset($post["sps"])?$post["sps"]:"";
$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"]:"";
$fReview = isset($post["f_review"])?$post["f_review"]:"";
$data = BelanjaRealisasi::orderBy("created_at","ASC");
$filter="";
if (!empty($sps)){
$filter.= " AND id_sps = ".$sps;
}
if (getRole()=="skpd"){
$filter.=" AND KODE_SKPD='".Auth::user()->nrk."'";
}elseif (getRole()=="sbpk"){
// $filter.=" AND z.C_WIL_SP2DPROSES=".Auth::user()->wilayah;
}
if (!empty($skpd)){
$filter.=" AND KODE_SKPD='".$skpd."'";
}
if (!empty($JenisDana)){
$filter.= " AND JENIS_DANA = '".$JenisDana."'";
}
if (!empty($SubJenisDana)){
$filter.= " AND SUB_JENIS_DANA = ".$SubJenisDana;
}
if (!empty($idSPS)){
$filter.= " AND id_sps = ".$idSPS;
}
if (!empty($fReview)){
$fReview = $fReview == 2 ? 0: $fReview;
$filter.= " AND f_view_sbpk = $fReview";
}
$data = DB::select(DB::raw(BelanjaRealisasi::tableData(getTA(), $this->tableFilter($request))));
$data = json_decode(json_encode($data), true);
$fileName = 'Realisasi-belanja.xlsx';
$spreadsheet = new Spreadsheet();
@@ -1056,17 +991,17 @@ class RealisasiBelanjaController extends Controller
$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(6).'1', 'Kode Rekening');
$sheet->setCellValue(getAlphabetCell(7).'1', 'Nama Rekening');
$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');
$sheet->setCellValue(getAlphabetCell(8).'1', 'Kode Rekening');
$sheet->setCellValue(getAlphabetCell(9).'1', 'Nama Rekening');
$sheet->setCellValue(getAlphabetCell(10).'1', 'Anggaran');
$sheet->setCellValue(getAlphabetCell(11).'1', 'Volume');
$sheet->setCellValue(getAlphabetCell(12).'1', 'Unit');
$sheet->setCellValue(getAlphabetCell(13).'1', 'Realisasi');
$sheet->setCellValue(getAlphabetCell(14).'1', 'Volume');
$sheet->setCellValue(getAlphabetCell(15).'1', 'Unit');
$rows = 2;
foreach ($data->get() as $val){
foreach ($data 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"]);
@@ -1075,14 +1010,14 @@ class RealisasiBelanjaController extends Controller
$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(6) . $rows, $val["kode_rekening"]);
$sheet->setCellValue(getAlphabetCell(7) . $rows, $val["nama_rekening"]);
$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"]);
$sheet->setCellValue(getAlphabetCell(8) . $rows, $val["kode_rekening"]);
$sheet->setCellValue(getAlphabetCell(9) . $rows, $val["nama_rekening"]);
$sheet->setCellValue(getAlphabetCell(10) . $rows, $val["jumlah_anggaran"]);
$sheet->setCellValue(getAlphabetCell(11) . $rows, $val["volume_satuan"]);
$sheet->setCellValue(getAlphabetCell(12) . $rows, $val["unit_satuan"]);
$sheet->setCellValue(getAlphabetCell(13) . $rows, $val["jml"]);
$sheet->setCellValue(getAlphabetCell(14) . $rows, $val["volume_satuan_realisasi"]);
$sheet->setCellValue(getAlphabetCell(15) . $rows, $val["unit_satuan_realisasi"]);
$rows++;
}