diff --git a/app/Http/Controllers/JadwalSalurdanaController.php b/app/Http/Controllers/JadwalSalurdanaController.php index 733c4c7..dd3eda4 100644 --- a/app/Http/Controllers/JadwalSalurdanaController.php +++ b/app/Http/Controllers/JadwalSalurdanaController.php @@ -8,13 +8,15 @@ use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Auth; use Maatwebsite\Excel\Facades\Excel; use App\Models\Sps_pendapatan; +use App\Models\Tropd; use App\Models\BelanjaRealisasi; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; class JadwalSalurdanaController extends Controller { - public function __construct(){ + public function __construct() + { parent::__construct(); $this->setTitle("Jadwal Salur Dana"); $this->setIconTitle("fa fa-calendar-alt"); @@ -32,17 +34,17 @@ class JadwalSalurdanaController extends Controller $ta = getTA(); $post = $request->all(); - $typeDana = isset($post["jenis_dana"])?strtoupper($post["jenis_dana"]):""; - $idSPS = isset($post["id_sps"])?$post["id_sps"]:""; + $typeDana = isset($post["jenis_dana"]) ? strtoupper($post["jenis_dana"]) : ""; + $idSPS = isset($post["id_sps"]) ? $post["id_sps"] : ""; $sqlstr = Sps_pendapatan::queryJadwalSalurDana($ta); - - if (!empty($idSPS)){ - $sqlstr.=" AND x.KODE_REKENING='$idSPS'"; + + if (!empty($idSPS)) { + $sqlstr .= " AND x.KODE_REKENING='$idSPS'"; } - if (!empty($typeDana)){ - $kodeRekening = "'".implode("','",getKodeRekInduk($typeDana))."'"; - $sqlstr.=" AND SUBSTR(x.kode_rekening,1,12) IN ($kodeRekening)"; + if (!empty($typeDana)) { + $kodeRekening = "'" . implode("','", getKodeRekInduk($typeDana)) . "'"; + $sqlstr .= " AND SUBSTR(x.kode_rekening,1,12) IN ($kodeRekening)"; } return $sqlstr; @@ -53,27 +55,30 @@ class JadwalSalurdanaController extends Controller $ta = getTA(); $post = $request->all(); - $src = isset($post["src"]) ? $post["src"]:""; - $idSPS = isset($post["id_sps"])?$post["id_sps"]:""; - $skpd = isset($post["skpd"])?$post["skpd"]:""; + $src = isset($post["src"]) ? $post["src"] : ""; + $idSPS = isset($post["id_sps"]) ? $post["id_sps"] : ""; + $skpd = isset($post["skpd"]) ? $post["skpd"] : ""; $where = ""; - if (!empty($typeDana)){ - $where = $typeDana == "cht" ? " AND x.jenis_dana = 'DBH' AND lower(x.NAMA_SUBJENIS_DANA) = 'cht' ": " AND x.jenis_dana = '$typeDana'"; + if (!empty($typeDana)) { + $where = $typeDana == "cht" ? " AND x.jenis_dana = 'DBH' AND lower(x.NAMA_SUBJENIS_DANA) = 'cht' " : " AND x.jenis_dana = '$typeDana'"; } - $where.= !empty($idSPS) ? " AND x.kode_rekening='$idSPS' ":""; + $where .= !empty($idSPS) ? " AND x.kode_rekening='$idSPS' " : ""; $sqlstr = 'SELECT x.kode_skpd, x.nama_skpd, x.kode_rsk, x.nama_rsk, x.kode_rekening, x.nama_rekening, x.jumlah_anggaran, y.* FROM SAMASA.VW_BELANJA_REALISASI x LEFT JOIN SAMASA.MV_ASYNC_AKB_REALISASI y ON x.KODE_RSK = y.I_IDRSK AND x.TAHUN_ANGGARAN = y.C_ANGG_TAHUN - WHERE x.TAHUN_ANGGARAN = \''.$ta.'\''.$where; - - if (getRole()=="skpd"){ - $sqlstr.=" AND KODE_SKPD='".Auth::user()->nrk."'"; - }else{ - if ($skpd){ - $sqlstr.=" AND KODE_SKPD='$skpd'"; + WHERE x.TAHUN_ANGGARAN = \'' . $ta . '\'' . $where; + + if (getRole() == "skpd") { + $sqlstr .= " AND KODE_SKPD='" . Auth::user()->nrk . "'"; + } elseif (getRole() == "walikota") { + $id = Tropd::where("C_OPD", Auth::user()->nrk)->first()["i_id"]; + $sqlstr .= " AND KODE_SKPD IN (SELECT C_OPD FROM NEWSIPKD.TROPD WHERE I_IDINDUK=" . $id . ")"; + } else { + if ($skpd) { + $sqlstr .= " AND KODE_SKPD='$skpd'"; } } @@ -89,19 +94,19 @@ class JadwalSalurdanaController extends Controller $sqlstr = $this->filterJadwalSalur($request); $dataTotal = count(DB::select(DB::raw($sqlstr))); - $sqlLimit = $limit > 0?" OFFSET ".$offset." ROWS FETCH NEXT ".$limit." ROWS ONLY ":""; - $data = DB::select(DB::raw($sqlstr.'ORDER BY x.kode_rekening '.$sqlLimit)); + $sqlLimit = $limit > 0 ? " OFFSET " . $offset . " ROWS FETCH NEXT " . $limit . " ROWS ONLY " : ""; + $data = DB::select(DB::raw($sqlstr . 'ORDER BY x.kode_rekening ' . $sqlLimit)); $dataFilter = count(DB::select(DB::raw($sqlstr))); return response()->json([ "recordsTotal" => $dataTotal, "recordsFiltered" => $dataFilter, - "data"=> $data + "data" => $data ]); } public function index() - { + { return view("jadwal_salurdana.index"); } @@ -114,15 +119,15 @@ class JadwalSalurdanaController extends Controller $sqlstr = $this->filterBelanja($request, $typeDana); - $sqlLimit = $limit > 0?" OFFSET ".$offset." ROWS FETCH NEXT ".$limit." ROWS ONLY ":""; - $data = DB::select(DB::raw($sqlstr.' ORDER BY x.kode_skpd,x.kode_rsk '.$sqlLimit)); + $sqlLimit = $limit > 0 ? " OFFSET " . $offset . " ROWS FETCH NEXT " . $limit . " ROWS ONLY " : ""; + $data = DB::select(DB::raw($sqlstr . ' ORDER BY x.kode_skpd,x.kode_rsk ' . $sqlLimit)); $dataTotal = count(DB::select(DB::raw($sqlstr))); $dataFilter = count(DB::select(DB::raw($sqlstr))); return response()->json([ "recordsTotal" => $dataTotal, "recordsFiltered" => $dataFilter, - "data"=> $data + "data" => $data ]); } @@ -132,66 +137,66 @@ class JadwalSalurdanaController extends Controller $sqlstr .= " ORDER BY kode_rekening"; $data = DB::select(DB::raw($sqlstr)); - $data = json_decode(json_encode($data),true); + $data = json_decode(json_encode($data), true); $spreadsheet = new Spreadsheet(); - $sheet = $spreadsheet->getActiveSheet(); + $sheet = $spreadsheet->getActiveSheet(); $sheet->setTitle('Jadwal Salur'); $sheet->setCellValue('A1', 'Kode Rekening'); $sheet->setCellValue('B1', 'Nama Rekening'); - $alpha = range("A","Z"); + $alpha = range("A", "Z"); $colIndex = 2; // Nama Kolom bulan $bulans = GetBulan(); - foreach($bulans as $bulan){ - $sheet->setCellValue($alpha[$colIndex].'1', $bulan); + foreach ($bulans as $bulan) { + $sheet->setCellValue($alpha[$colIndex] . '1', $bulan); $colIndex++; - $sheet->mergeCells($alpha[$colIndex].'1'.':'.$alpha[$colIndex].'1'); + $sheet->mergeCells($alpha[$colIndex] . '1' . ':' . $alpha[$colIndex] . '1'); $colIndex++; } - $sheet->setCellValue(getAlphabetCell($colIndex).'1', "Total"); - $sheet->mergeCells(getAlphabetCell($colIndex).'1'.':'.getAlphabetCell($colIndex+1).'1'); + $sheet->setCellValue(getAlphabetCell($colIndex) . '1', "Total"); + $sheet->mergeCells(getAlphabetCell($colIndex) . '1' . ':' . getAlphabetCell($colIndex + 1) . '1'); $sheet->mergeCells('A1:A2'); $sheet->mergeCells('B1:B2'); $colIndex++; // Nama Kolom Jadwal dan Realisasi $colName = "Realisasi"; - for($i=2;$i<=$colIndex;$i++){ - $colName = $colName == "Jadwal" ? "Realisasi":"Jadwal"; - $sheet->setCellValue(getAlphabetCell($i).'2', $colName); + for ($i = 2; $i <= $colIndex; $i++) { + $colName = $colName == "Jadwal" ? "Realisasi" : "Jadwal"; + $sheet->setCellValue(getAlphabetCell($i) . '2', $colName); } // Data Kolom Bulan dan Realisasi - $rows = 3; - foreach ($data as $val){ + $rows = 3; + foreach ($data as $val) { $sheet->setCellValue('A' . $rows, $val["kode_rekening"]); $sheet->setCellValue('B' . $rows, $val["nama_rekening"]); $totalJadwalSalur = 0; $totalRealisasi = 0; $currIndex = 2; - for($i=1;$i<=12;$i++){ - $sheet->setCellValue(getAlphabetCell($currIndex).$rows, $val["spsbulan".$i]); - $totalJadwalSalur += $val["spsbulan".$i]; + for ($i = 1; $i <= 12; $i++) { + $sheet->setCellValue(getAlphabetCell($currIndex) . $rows, $val["spsbulan" . $i]); + $totalJadwalSalur += $val["spsbulan" . $i]; $currIndex++; - $sheet->setCellValue(getAlphabetCell($currIndex).$rows, $val["real".$i]); - $totalRealisasi += $val["real".$i]; + $sheet->setCellValue(getAlphabetCell($currIndex) . $rows, $val["real" . $i]); + $totalRealisasi += $val["real" . $i]; $currIndex++; } - $sheet->setCellValue(getAlphabetCell($currIndex).$rows, $totalJadwalSalur); - $sheet->setCellValue(getAlphabetCell($currIndex+1).$rows, $totalRealisasi); + $sheet->setCellValue(getAlphabetCell($currIndex) . $rows, $totalJadwalSalur); + $sheet->setCellValue(getAlphabetCell($currIndex + 1) . $rows, $totalRealisasi); $rows++; - } + } // TOTAL BAWAH - $sheet->setCellValue("A".$rows , "TOTAL"); - $sheet->mergeCells('A'.$rows.':'.'B'.$rows); - for ($x=2;$x<=$colIndex;$x++){ + $sheet->setCellValue("A" . $rows, "TOTAL"); + $sheet->mergeCells('A' . $rows . ':' . 'B' . $rows); + for ($x = 2; $x <= $colIndex; $x++) { $strAlpha = getAlphabetCell($x); - $SUMRANGE = $strAlpha."3:".$strAlpha.($rows-1); - $sheet->setCellValue($strAlpha.$rows , "=SUM($SUMRANGE)"); + $SUMRANGE = $strAlpha . "3:" . $strAlpha . ($rows - 1); + $sheet->setCellValue($strAlpha . $rows, "=SUM($SUMRANGE)"); } return $spreadsheet; @@ -203,13 +208,13 @@ class JadwalSalurdanaController extends Controller $fileName = 'Jadwal-salur-dana.xlsx'; $writer = new Xlsx($spreadsheet); - $writer->save("downloadFiles/".$fileName); + $writer->save("downloadFiles/" . $fileName); $headers = [ 'Content-Type' => 'application/vnd.ms-excel', - 'Content-Disposition' => 'attachment;filename='.$fileName + 'Content-Disposition' => 'attachment;filename=' . $fileName ]; - - return response()->download("downloadFiles/".$fileName, $fileName, $headers); + + return response()->download("downloadFiles/" . $fileName, $fileName, $headers); } @@ -217,13 +222,13 @@ class JadwalSalurdanaController extends Controller { $post = $request->all(); - $fileName = 'Jadwal-salur-belanja-'.date("Ymd").'.xlsx'; + $fileName = 'Jadwal-salur-belanja-' . date("Ymd") . '.xlsx'; $spreadsheet = $this->exportJadwalSalur($request); $spreadsheet->createSheet(); $spreadsheet->setActiveSheetIndex(1); $sheet = $spreadsheet->getActiveSheet(); - + $sheet->setTitle('Akb dan Realisasi'); $sheet->setCellValue('A1', 'KODE SKPD'); $sheet->setCellValue('B1', 'NAMA SKPD'); @@ -232,24 +237,23 @@ class JadwalSalurdanaController extends Controller $sheet->setCellValue('E1', 'KODE REKENING'); $sheet->setCellValue('F1', 'NAMA REKENING'); - $alpha = range("A","Z"); + $alpha = range("A", "Z"); $jmlAlpha = count($alpha); - for($i=0;$i<$jmlAlpha;$i++) - { - $alpha[]="A".$alpha[$i]; + for ($i = 0; $i < $jmlAlpha; $i++) { + $alpha[] = "A" . $alpha[$i]; } $colIndex = 6; // Nama Kolom bulan $bulans = GetBulan(); - foreach($bulans as $bulan){ - $sheet->setCellValue($alpha[$colIndex].'1', $bulan); + foreach ($bulans as $bulan) { + $sheet->setCellValue($alpha[$colIndex] . '1', $bulan); $colIndex++; - $sheet->mergeCells($alpha[$colIndex].'1'.':'.$alpha[$colIndex].'1'); + $sheet->mergeCells($alpha[$colIndex] . '1' . ':' . $alpha[$colIndex] . '1'); $colIndex++; } - $sheet->setCellValue(getAlphabetCell($colIndex).'1', "Total"); - $sheet->mergeCells(getAlphabetCell($colIndex).'1'.':'.getAlphabetCell($colIndex+1).'1'); + $sheet->setCellValue(getAlphabetCell($colIndex) . '1', "Total"); + $sheet->mergeCells(getAlphabetCell($colIndex) . '1' . ':' . getAlphabetCell($colIndex + 1) . '1'); $sheet->mergeCells('A1:A2'); $sheet->mergeCells('B1:B2'); $sheet->mergeCells('C1:C2'); @@ -260,20 +264,20 @@ class JadwalSalurdanaController extends Controller // Nama Kolom Jadwal dan Realisasi $colName = "Realisasi"; - for($i=2;$i<=$colIndex;$i++){ - $colName = $colName == "AKB" ? "Realisasi":"AKB"; - $sheet->setCellValue(getAlphabetCell($i).'2', $colName); + for ($i = 2; $i <= $colIndex; $i++) { + $colName = $colName == "AKB" ? "Realisasi" : "AKB"; + $sheet->setCellValue(getAlphabetCell($i) . '2', $colName); } $sqlstr = $this->filterBelanja($request, $post["jenis_dana"]); $data = DB::select(DB::raw($sqlstr)); - $data = json_decode(json_encode($data),true); + $data = json_decode(json_encode($data), true); // Data Kolom Bulan dan Realisasi - $rows = 3; - foreach ($data as $val){ + $rows = 3; + foreach ($data as $val) { $currIndex = 0; $sheet->setCellValue(getAlphabetCell($currIndex) . $rows, $val["kode_skpd"]); $currIndex++; @@ -290,39 +294,38 @@ class JadwalSalurdanaController extends Controller $totalJadwalSalur = 0; $totalRealisasi = 0; - - for($i=1;$i<=12;$i++){ - $sheet->setCellValue(getAlphabetCell($currIndex).$rows, $val["v_akb_".substr("00".$i,-2)]); - $totalJadwalSalur += $val["v_akb_".substr("00".$i,-2)]; + + for ($i = 1; $i <= 12; $i++) { + $sheet->setCellValue(getAlphabetCell($currIndex) . $rows, $val["v_akb_" . substr("00" . $i, -2)]); + $totalJadwalSalur += $val["v_akb_" . substr("00" . $i, -2)]; $currIndex++; - $sheet->setCellValue(getAlphabetCell($currIndex).$rows, $val["v_bku_".substr("00".$i,-2)]); - $totalRealisasi += $val["v_bku_".substr("00".$i,-2)]; + $sheet->setCellValue(getAlphabetCell($currIndex) . $rows, $val["v_bku_" . substr("00" . $i, -2)]); + $totalRealisasi += $val["v_bku_" . substr("00" . $i, -2)]; $currIndex++; } - $sheet->setCellValue(getAlphabetCell($currIndex).$rows, $totalJadwalSalur); - $sheet->setCellValue(getAlphabetCell($currIndex+1).$rows, $totalRealisasi); + $sheet->setCellValue(getAlphabetCell($currIndex) . $rows, $totalJadwalSalur); + $sheet->setCellValue(getAlphabetCell($currIndex + 1) . $rows, $totalRealisasi); $rows++; - } + } // TOTAL BAWAH - $sheet->setCellValue("A".$rows , "TOTAL"); - $sheet->mergeCells('A'.$rows.':'.'B'.$rows); - for ($x=2;$x<=$colIndex;$x++){ + $sheet->setCellValue("A" . $rows, "TOTAL"); + $sheet->mergeCells('A' . $rows . ':' . 'B' . $rows); + for ($x = 2; $x <= $colIndex; $x++) { $strAlpha = getAlphabetCell($x); - $SUMRANGE = $strAlpha."3:".$strAlpha.($rows-1); - $sheet->setCellValue($strAlpha.$rows , "=SUM($SUMRANGE)"); + $SUMRANGE = $strAlpha . "3:" . $strAlpha . ($rows - 1); + $sheet->setCellValue($strAlpha . $rows, "=SUM($SUMRANGE)"); } $spreadsheet->setActiveSheetIndex(0); $writer = new Xlsx($spreadsheet); - $writer->save("downloadFiles/".$fileName); + $writer->save("downloadFiles/" . $fileName); $headers = [ 'Content-Type' => 'application/vnd.ms-excel', - 'Content-Disposition' => 'attachment;filename='.$fileName + 'Content-Disposition' => 'attachment;filename=' . $fileName ]; - return response()->download("downloadFiles/".$fileName, $fileName, $headers); + return response()->download("downloadFiles/" . $fileName, $fileName, $headers); } - }