192 lines
8.9 KiB
PHP
192 lines
8.9 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
use App\Traits\Uuids;
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class BelanjaRealisasi extends Eloquent
|
|
{
|
|
use HasFactory;
|
|
use Uuids;
|
|
protected $connection = 'Samasa';
|
|
protected $table = 'belanja_realisasi';
|
|
protected $fillable = [
|
|
"tahun_anggaran",
|
|
"jenis_belanja",
|
|
"sub_jenis_belanja",
|
|
"kode_program",
|
|
"nama_program",
|
|
"kode_skpd",
|
|
"nama_skpd",
|
|
"kode_kegiatan",
|
|
"nama_kegiatan",
|
|
"kode_sub_kegiatan",
|
|
"nama_sub_kegiatan",
|
|
"kode_rsk",
|
|
"nama_rsk",
|
|
"kode_rekening",
|
|
"nama_rekening",
|
|
"jumlah_anggaran",
|
|
"alokasi_anggaran",
|
|
"volume_satuan",
|
|
"unit_satuan",
|
|
"jumlah_realisasi",
|
|
"volume_satuan_realisasi",
|
|
"unit_satuan_realisasi",
|
|
"no_sp2d",
|
|
"jml_rencana_kontrak",
|
|
"realisasi_by",
|
|
"created_by",
|
|
"jenis_dana",
|
|
"sub_jenis_dana",
|
|
"id_sps",
|
|
"f_view_sbpk"
|
|
];
|
|
|
|
public function getSPD($subgiat,$skpd)
|
|
{
|
|
return DB::select(DB::raw(
|
|
"SELECT a.I_SPDNO_DOK as NO_SPD, a.D_SPDNO as TGL, b.JML as jumlah
|
|
FROM NEWSIPKD.TMSPD a
|
|
INNER JOIN (
|
|
SELECT I_IDSPD, SUM(V_SPD) AS JML
|
|
FROM NEWSIPKD.TMSPDRINCIBLJ x
|
|
LEFT JOIN NEWSIPKD.TMDPASUBGIAT y
|
|
ON x.I_IDSUBGIAT = y.I_ID
|
|
WHERE y.C_SUBGIAT = '".$subgiat."'
|
|
AND y.I_IDOPD = '".$skpd."'
|
|
GROUP BY I_IDSPD
|
|
) b
|
|
ON a.I_ID = b.I_IDSPD
|
|
WHERE a.C_ANGG_TAHUN = ".getTA()." ORDER BY a.D_SPDNO"
|
|
));
|
|
}
|
|
|
|
public function tableData($ta, $filter, $offset=0, $limit=0)
|
|
{
|
|
$ta = getTA();
|
|
$sqlstr = "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,
|
|
a2.semester1,a2.semester2,a2.satuan_sms1,a2.satuan_sms2,
|
|
volume_satuan_realisasi_1,volume_satuan_realisasi_2,volume_satuan_realisasi_3,volume_satuan_realisasi_4,volume_satuan_realisasi_5,volume_satuan_realisasi_6,volume_satuan_realisasi_7,
|
|
volume_satuan_realisasi_8,volume_satuan_realisasi_9,volume_satuan_realisasi_10,volume_satuan_realisasi_11,volume_satuan_realisasi_12,
|
|
jumlah_realisasi_1,jumlah_realisasi_2,jumlah_realisasi_3,jumlah_realisasi_4,jumlah_realisasi_5,jumlah_realisasi_6,jumlah_realisasi_7,
|
|
jumlah_realisasi_8,jumlah_realisasi_9,jumlah_realisasi_10,jumlah_realisasi_11,jumlah_realisasi_12
|
|
FROM VW_BELANJA_REALISASI a
|
|
LEFT JOIN BELANJA_REALISASI_RINCI a1
|
|
ON a.id=a1.belanja_realisasi_id
|
|
LEFT JOIN (
|
|
SELECT BELANJA_REALISASI_ID,SUM(SEMESTER1) SEMESTER1,SUM(SEMESTER2) SEMESTER2,
|
|
SUM(SATUAN_SMS1) SATUAN_SMS1,SUM(SATUAN_SMS2) SATUAN_SMS2
|
|
FROM ( SELECT BELANJA_REALISASI_ID,JUMLAH_REALISASI AS SEMESTER1, 0 AS SEMESTER2,
|
|
VOLUME_SATUAN_REALISASI AS SATUAN_SMS1, 0 AS SATUAN_SMS2
|
|
FROM BELANJA_REALISASI_DETAIL WHERE SEMESTER = 1
|
|
UNION ALL SELECT BELANJA_REALISASI_ID,0 AS SEMESTER1, JUMLAH_REALISASI AS SEMESTER2,
|
|
0 AS SATUAN_SMS2, VOLUME_SATUAN_REALISASI AS SATUAN_SMS2
|
|
FROM BELANJA_REALISASI_DETAIL WHERE SEMESTER = 2
|
|
) GROUP BY BELANJA_REALISASI_ID
|
|
) a2 ON a.id = a2.BELANJA_REALISASI_ID
|
|
LEFT JOIN (
|
|
SELECT I_IDRSK,SUM(REALISASI) AS jml
|
|
FROM MV_ANGGARAN_REALISASI_RSK
|
|
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 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
|
|
".$filter."
|
|
ORDER BY a.KODE_SKPD, a.KODE_RSK ";
|
|
|
|
$sqlstr.= $limit > 0?" OFFSET ".$offset." ROWS FETCH NEXT ".$limit." ROWS ONLY ":"";
|
|
|
|
return $sqlstr;
|
|
}
|
|
|
|
public function tableDataReport($ta, $filter, $offset=0, $limit=0)
|
|
{
|
|
$ta = getTA();
|
|
$sqlstr = "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,
|
|
a2.semester1,a2.semester2,a2.satuan_sms1,a2.satuan_sms2,
|
|
volume_satuan_realisasi_1,volume_satuan_realisasi_2,volume_satuan_realisasi_3,volume_satuan_realisasi_4,volume_satuan_realisasi_5,volume_satuan_realisasi_6,volume_satuan_realisasi_7,
|
|
volume_satuan_realisasi_8,volume_satuan_realisasi_9,volume_satuan_realisasi_10,volume_satuan_realisasi_11,volume_satuan_realisasi_12,
|
|
jumlah_realisasi_1,jumlah_realisasi_2,jumlah_realisasi_3,jumlah_realisasi_4,jumlah_realisasi_5,jumlah_realisasi_6,jumlah_realisasi_7,
|
|
jumlah_realisasi_8,jumlah_realisasi_9,jumlah_realisasi_10,jumlah_realisasi_11,jumlah_realisasi_12
|
|
FROM VW_BELANJA_REALISASI_REPORT a
|
|
LEFT JOIN BELANJA_REALISASI_RINCI a1
|
|
ON a.id=a1.belanja_realisasi_id
|
|
LEFT JOIN (
|
|
SELECT BELANJA_REALISASI_ID,SUM(SEMESTER1) SEMESTER1,SUM(SEMESTER2) SEMESTER2,
|
|
SUM(SATUAN_SMS1) SATUAN_SMS1,SUM(SATUAN_SMS2) SATUAN_SMS2
|
|
FROM ( SELECT BELANJA_REALISASI_ID,JUMLAH_REALISASI AS SEMESTER1, 0 AS SEMESTER2,
|
|
VOLUME_SATUAN_REALISASI AS SATUAN_SMS1, 0 AS SATUAN_SMS2
|
|
FROM BELANJA_REALISASI_DETAIL WHERE SEMESTER = 1
|
|
UNION ALL SELECT BELANJA_REALISASI_ID,0 AS SEMESTER1, JUMLAH_REALISASI AS SEMESTER2,
|
|
0 AS SATUAN_SMS2, VOLUME_SATUAN_REALISASI AS SATUAN_SMS2
|
|
FROM BELANJA_REALISASI_DETAIL WHERE SEMESTER = 2
|
|
) GROUP BY BELANJA_REALISASI_ID
|
|
) a2 ON a.id = a2.BELANJA_REALISASI_ID
|
|
LEFT JOIN (
|
|
SELECT I_IDRSK,SUM(REALISASI) AS jml
|
|
FROM MV_ANGGARAN_REALISASI_RSK
|
|
WHERE C_ANGG_TAHUN = $ta
|
|
GROUP BY I_IDRSK
|
|
) b ON a.kode_rsk = b.I_IDRSK
|
|
LEFT JOIN (
|
|
SELECT id_rsk,SUM(jumlah) as jml_spd
|
|
FROM 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
|
|
".$filter."
|
|
ORDER BY a.KODE_SKPD, a.KODE_RSK ";
|
|
|
|
$sqlstr.= $limit > 0?" OFFSET ".$offset." ROWS FETCH NEXT ".$limit." ROWS ONLY ":"";
|
|
|
|
return $sqlstr;
|
|
}
|
|
|
|
public function akbRealisasi()
|
|
{
|
|
$ta = getTA();
|
|
$sqlstr = "SELECT * FROM MV_ASYNC_AKB_REALISASI WHERE TAHUN = $ta";
|
|
|
|
return $sqlstr;
|
|
}
|
|
}
|