update dau rinci (realisasi belanja)

This commit is contained in:
Marsa
2026-07-06 10:00:46 +07:00
parent b6dd0b04bc
commit fbc640485f
6 changed files with 483 additions and 300 deletions
+26 -8
View File
@@ -18,10 +18,12 @@ use App\Models\MstJenisDana;
use App\Models\MstJenisBelanja;
use App\Models\MstSubJenisBelanja;
use App\Models\VwRekeningPendapatan;
use App\Models\MappingDauRinci;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Session;
use App\Models\PendapatanRealisasiSts;
use App\Models\AkunTamsilTpg;
@@ -193,14 +195,14 @@ class ItemSearchController extends Controller
if (in_array($kode_akun, $arrTPG)) {
$cek = PendapatanRealisasiSts::where("rkud_no_sts", $no_skprd)
->where("rkud_kode_akun", $kode_akun)
->count();
->where("rkud_kode_akun", $kode_akun)
->count();
if ($cek > 0) {
$urlAPIDev = "http://10.15.34.90:8820/api/tpg-tamsil/cek-sp2t";
$userDev = "sidata_tpgtamsil_dev";
$passDev = "sidataAp!TpgT4ms1lD3v";
$urlAPI = "https://simpad.jakarta.go.id/api/tpg-tamsil/cek-sp2t'";
$user = "sidata_tpgtamsil";
$pass = "sidataAp!TpgT4ms1l";
@@ -218,8 +220,8 @@ class ItemSearchController extends Controller
$sts["kode_bas"] = $httpSTS["data"]["kode_rekening"];
$sts["n_akun"] = $httpSTS["data"]["nam_rekening"];
$sts["nilai_bayar"] = separateNumberIndo($httpSTS["data"]["jumlah"]);
}
}
}
}
} else {
$select = DB::raw("NO_SKPRD,TGL_VALIDASI,KODE_BAS,NILAI_BAYAR,TRBAS.N_AKUN");
$sts = Siesetpembayaran::select($select)
@@ -334,9 +336,25 @@ class ItemSearchController extends Controller
public function dau_rinci_detail(Request $request)
{
$search = $request->id;
$sk = MstDauRinci::where('id', $search)->first();
// $search = $request->id;
// $sk = MstDauRinci::where('id', $search)->first();
return response()->json($sk);
// return response()->json($sk);
$subJenisDana = $request->sub_jenis_dana;
$tahun = Session::get('Tahun_Anggaran');
$kodeSkpd = Auth::user()->kode_skpd;
if (!$subJenisDana || !$tahun || !$kodeSkpd) {
return response()->json([]);
}
$idDauRinciList = MappingDauRinci::where('ID_JENIS_DANA', $subJenisDana)
->where('TAHUN', $tahun)
->where('KODE_SKPD', $kodeSkpd)
->pluck('ID_DAU_RINCI');
$outputs = MstDauRinci::whereIn('id', $idDauRinciList)->get();
return response()->json($outputs);
}
}
@@ -0,0 +1,65 @@
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Models\MappingDauRinci;
use Illuminate\Http\Request;
class MappingDauRinciController extends Controller
{
public function index()
{
$items = MappingDauRinci::paginate(15);
return response()->json($items);
}
public function create()
{
return response()->json(['message' => 'Display form for creating resource']);
}
public function store(Request $request)
{
$data = $request->validate([
'field1' => 'required|string|max:255',
'field2' => 'nullable|string',
'field3' => 'nullable|numeric',
]);
$item = MappingDauRinci::create($data);
return response()->json($item, 201);
}
public function show(MappingDauRinci $mappingDauRinci)
{
return response()->json($mappingDauRinci);
}
public function edit(MappingDauRinci $mappingDauRinci)
{
return response()->json($mappingDauRinci);
}
public function update(Request $request, MappingDauRinci $mappingDauRinci)
{
$data = $request->validate([
'field1' => 'sometimes|required|string|max:255',
'field2' => 'nullable|string',
'field3' => 'nullable|numeric',
]);
$mappingDauRinci->update($data);
return response()->json($mappingDauRinci);
}
public function destroy(MappingDauRinci $mappingDauRinci)
{
$mappingDauRinci->delete();
return response()->json(null, 204);
}
}
@@ -51,10 +51,10 @@ class RealisasiBelanjaController extends Controller
abort(403, 'Tidak diperbolehkan menambah data oleh admin!');
}
$get = $request->all();
$rskExists = BelanjaRealisasi::where("tahun_anggaran",getTA())
->where("kode_skpd",Auth::user()->kode_skpd)
->where("kode_rsk", $get["rsk"])
->count();
$rskExists = BelanjaRealisasi::where("tahun_anggaran", getTA())
->where("kode_skpd", Auth::user()->kode_skpd)
->where("kode_rsk", $get["rsk"])
->count();
if ($rskExists > 0) {
return redirect(URL::to("/realisasi-belanja"))
->with('error', 'Data dengan RSK yang dipilih sudah ada!');
@@ -305,7 +305,7 @@ class RealisasiBelanjaController extends Controller
if ($BelanjaRealisasi->jenis_dana == "DBH" && $BelanjaRealisasi->nama_subjenis_dana != "CHT") {
$vwSPD = BelanjaRealisasi::getSPD($BelanjaRealisasi->kode_sub_kegiatan, $BelanjaRealisasi->id_skpd);
} else {
$vwSPD = BelanjaRealisasiSPD::where("id_rsk", $BelanjaRealisasi->kode_rsk)->get();
$vwSPD = BelanjaRealisasiSPD::where("id_rsk", $BelanjaRealisasi->kode_rsk)->get();
}
$vwSP2D = DB::select(
@@ -430,18 +430,34 @@ class RealisasiBelanjaController extends Controller
$dataFilter = DB::select(DB::raw("SELECT COUNT(ID) as JML FROM VW_BELANJA_REALISASI " . $this->tableFilter($request)));
$dataTotal = BelanjaRealisasi::where("tahun_anggaran", $ta)->count();
$sqlStr = "SELECT * FROM VW_DPA_RSK WHERE C_ANGG_TAHUN=" . getTA();
// $sqlStr = "SELECT * FROM VW_DPA_RSK WHERE C_ANGG_TAHUN=" . getTA();
if (getRole() == "skpd") {
$dataTotal = BelanjaRealisasi::where("tahun_anggaran", $ta)->whereRaw("KODE_SKPD='" . Auth::user()->nrk . "'")->count();
} elseif (getRole() == "sbpk") {
$dataTotal = BelanjaRealisasi::where("tahun_anggaran", $ta)->whereRaw("KODE_SKPD IN (SELECT C_OPD FROM NEWSIPKD.TROPD WHERE C_WIL_SP2DPROSES=" . Auth::user()->wilayah . ")");
$dataTotal = BelanjaRealisasi::where("tahun_anggaran", $ta)->whereRaw("KODE_SKPD IN (SELECT C_OPD FROM NEWSIPKD.TROPD WHERE C_WIL_SP2DPROSES=" . Auth::user()->wilayah . ")") - count();
}
$filterClause = $this->tableFilter($request);
$grandTotals = DB::select(DB::raw("
SELECT
NVL(SUM(JUMLAH_ANGGARAN),0) AS total_anggaran,
NVL(SUM(JUMLAH_REALISASI),0) AS total_realisasi
FROM VW_BELANJA_REALISASI
$filterClause
"));
$grandTotalAnggaran = !empty($grandTotals) ? $grandTotals[0]->total_anggaran : 0;
$grandTotalRealisasi = !empty($grandTotals) ? $grandTotals[0]->total_realisasi : 0;
$data = DB::select(DB::raw(BelanjaRealisasi::tableDataReport($ta, $this->tableFilter($request), $offset, $limit)));
return response()->json([
"recordsTotal" => $dataTotal,
"recordsFiltered" => $dataFilter[0]->jml,
"data" => $data
"data" => $data,
"grandTotalAnggaran" => $grandTotalAnggaran,
"grandTotalRealisasi" => $grandTotalRealisasi
]);
}
@@ -690,7 +706,7 @@ class RealisasiBelanjaController extends Controller
$semester = "";
$redirect = isset($req["redirect_link"]) ? $req["redirect_link"] : URL::to("/realisasi-belanja");
if ($req["type"] == "sms") {
$sms = (int)$req["sms"];
$sms = (int) $req["sms"];
if ($sms == 1) {
$semester = "SEMESTER 1";
$filter = " AND D_POSTING BETWEEN '" . $ta . "0101' AND '" . $ta . "0630' ";
@@ -714,7 +730,7 @@ class RealisasiBelanjaController extends Controller
$data["volume_satuan_realisasi"] = $req["vol_realisasi"];
$data["unit_satuan_realisasi"] = $req["unit_realisasi"];
// $data["periode_anggaran"] = $req["periode_anggaran"];
$data["semester"] = (int)$req["sms"];
$data["semester"] = (int) $req["sms"];
$data["created_by"] = Auth::user()->id;
BelanjaRealisasiDetail::create($data);
@@ -1092,7 +1108,7 @@ class RealisasiBelanjaController extends Controller
foreach ($arrCol as $key => $fieldVal) {
if (is_array($fieldVal)) {
foreach ($fieldVal as $rowfieldVal) {
$valNotNull = $val[$rowfieldVal] ? $val[$rowfieldVal] : 0;
$valNotNull = $val[$rowfieldVal] ? $val[$rowfieldVal] : 0;
$contentVal = str_contains($rowfieldVal, "volume_satuan_realisasi") ? $valNotNull . " " . $val["unit_satuan"] : $valNotNull;
$sheet->setCellValue(getAlphabetCell($i) . $rows, $contentVal);
$i++;
+20
View File
@@ -0,0 +1,20 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class MappingDauRinci extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'mapping_dau_rinci';
protected $fillable = [
"id_dau_rinci",
"id_jenis_dana",
"tahun",
"kode_skpd"
];
}