108 lines
3.6 KiB
PHP
108 lines
3.6 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 = 'SAMASA.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
|
|
FROM VW_BELANJA_REALISASI 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
|
|
".$filter."
|
|
ORDER BY a.KODE_SKPD, a.KODE_RSK ";
|
|
|
|
$sqlstr.= " OFFSET ".$offset." ROWS FETCH NEXT ".$limit." ROWS ONLY ";
|
|
|
|
return $sqlstr;
|
|
}
|
|
}
|