Melakukan Perubahan

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