Files
sidata/app/Http/Controllers/JadwalSalurdanaController.php
T

173 lines
7.3 KiB
PHP

<?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;
use App\Models\Sps_pendapatan;
class JadwalSalurdanaController extends Controller
{
public function __construct(){
$this->siteTitle = "Jadwal Salur Dana";
parent::__construct();
}
public function index()
{
return view('jadwal_salurdana.index');
}
public function datatable(Request $request)
{
$post = $request->all();
$offset = $post["start"];
$limit = $post["length"];
$src = $post["src"];
$ta = $post["ta"];
$dataFilter=0;
$typeDana=isset($post["type_dana"])?$post["type_dana"]:"";
$sqlstr = 'SELECT kode_rekening,nama_rekening,spsbulan1,spsbulan2,spsbulan3,spsbulan4,
spsbulan5,spsbulan6,spsbulan7,spsbulan8,spsbulan9,spsbulan10,spsbulan11,spsbulan12,
SUBSTR(KODE_REKENING,1,12) AS kodegrup,SUBSTR(KODE_REKENING,1,9) AS groupall,
NVL("1",0) AS "REAL1",NVL("2",0) AS "REAL2",NVL("3",0) AS "REAL3",
NVL("4",0) AS "REAL4",NVL("5",0) AS "REAL5",NVL("6",0) AS "REAL6",
NVL("7",0) AS "REAL7",NVL("8",0) AS "REAL8",NVL("9",0) AS "REAL9",
NVL("10",0) AS "REAL10",NVL("11",0) AS "REAL11",NVL("12",0) AS "REAL12"
FROM PROKSI.SPS_PENDAPATAN x
LEFT JOIN
(
SELECT * FROM (
SELECT ID_SPS,extract(month from RKUD_TGL) AS BULAN,RKUD_JUMLAH
FROM SAMASA.PENDAPATAN_REALISASI
WHERE TAHUN=\''.$ta.'\'
)
PIVOT
(
SUM(RKUD_JUMLAH)
FOR BULAN IN(1,2,3,4,5,6,7,8,9,10,11,12)
)
)y ON x.ID = y.ID_SPS
WHERE x.TAHUN = '.$ta.' AND x.SKPD_ID=980 AND SUBSTR(x.KODE_REKENING,1,3)=\'4.2\'';
if (!empty($typeDana)){
if ($typeDana == "cht"){
$sqlstr.=" AND kode_rekening='4.2.01.01.01.0004'";
}else{
$sqlstr.=" AND SUBSTR(kode_rekening,1,12) IN ('4.2.01.01.03','4.2.01.01.04')";
}
}
$dataTotal = count(DB::select(DB::raw($sqlstr)));
$data = DB::select(DB::raw($sqlstr.'ORDER BY kode_rekening OFFSET '.$offset.' ROWS FETCH NEXT '.$limit.' ROWS ONLY'));
$dataFilter = count(DB::select(DB::raw($sqlstr)));
return response()->json([
"recordsTotal" => $dataTotal,
"recordsFiltered" => $dataFilter,
"data"=> $data
]);
}
public function index_cht_dak(Request $request,$typeDana)
{
$judul = strtoupper($typeDana);
$this->setTitle("Jadwal Salur Dana $judul");
return view("jadwal_salurdana.index_".$typeDana);
}
public function datatable_cht_dak(Request $request)
{
$post = $request->all();
$offset = $post["start"];
$limit = $post["length"];
$src = $post["src"];
$ta = $post["ta"];
// $typeDana = $post["type_dana"];
$dataFilter=0;
$sqlstr = 'SELECT x.kode_rsk, x.nama_rsk, x.jumlah_anggaran, y.*
FROM
SAMASA.BELANJA_REALISASI x
LEFT JOIN
(
SELECT * FROM (
SELECT
IDRSK,
NVL(V_BKU_01,0) AS V_BKU_01,
NVL(V_BKU_02,0) AS V_BKU_02,
NVL(V_BKU_03,0) AS V_BKU_03,
NVL(V_BKU_04,0) AS V_BKU_04,
NVL(V_BKU_05,0) AS V_BKU_05,
NVL(V_BKU_06,0) AS V_BKU_06,
NVL(V_BKU_07,0) AS V_BKU_07,
NVL(V_BKU_08,0) AS V_BKU_08,
NVL(V_BKU_09,0) AS V_BKU_09,
NVL(V_BKU_10,0) AS V_BKU_10,
NVL(V_BKU_11,0) AS V_BKU_11,
NVL(V_BKU_12,0) AS V_BKU_12
FROM (
SELECT IDRSK,
extract(month FROM TO_DATE(D_POSTING, \'YYYYMMDD\')) AS BULAN,
SUM (REALISASI) AS V_REALISASI
FROM NEWSIPKD.VW_BKU_REALISASI_RSK
WHERE TAHUN_ANGGARAN = \''.$ta.'\'
GROUP BY IDRSK,D_POSTING
)
PIVOT
(
SUM(V_REALISASI)
FOR BULAN IN(
1 AS V_BKU_01,
2 AS V_BKU_02,
3 AS V_BKU_03,
4 AS V_BKU_04,
5 AS V_BKU_05,
6 AS V_BKU_06,
7 AS V_BKU_07,
8 AS V_BKU_08,
9 AS V_BKU_09,
10 AS V_BKU_10,
11 AS V_BKU_11,
12 AS V_BKU_12
)
)
) xx
LEFT JOIN
(
SELECT
RSK_BELANJARINCI_ID,
BULAN1 AS V_AKB_01,
BULAN2 AS V_AKB_02,
BULAN3 AS V_AKB_03,
BULAN4 AS V_AKB_04,
BULAN5 AS V_AKB_05,
BULAN6 AS V_AKB_06,
BULAN7 AS V_AKB_07,
BULAN8 AS V_AKB_08,
BULAN9 AS V_AKB_09,
BULAN10 AS V_AKB_10,
BULAN11 AS V_AKB_11,
BULAN12 AS V_AKB_12
FROM BAPEDA_BUDGETING.P_SPB_BELANJARINCIAKB@EBUDGETING
WHERE TAHUN = \''.$ta.'\'
) yy
ON xx.IDRSK = yy.RSK_BELANJARINCI_ID
) y
ON x.KODE_RSK = y.IDRSK';
$data = DB::connection('oracle')->select(DB::raw($sqlstr.' ORDER BY x.id OFFSET '.$offset.' ROWS FETCH NEXT '.$limit.' ROWS ONLY'));
if (!empty($src)){
//$data->whereRaw("(LOWER(NAMA_REKENING) LIKE '%".strtolower($src)."%' OR LOWER(KODE_REKENING) LIKE '%".strtolower($src)."%')");
}
$dataFilter = count(DB::connection('oracle')->select(DB::raw($sqlstr)));
$dataTotal = 0;
return response()->json([
"recordsTotal" => $dataTotal,
"recordsFiltered" => $dataFilter,
"data"=> $data
]);
}
}