329 lines
12 KiB
PHP
329 lines
12 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Tropd;
|
|
use App\Models\Trbas;
|
|
use App\Models\Program;
|
|
use App\Models\Kegiatan;
|
|
use App\Models\SubKegiatan;
|
|
use App\Models\Rsk;
|
|
use App\Models\Sps_pendapatan;
|
|
use App\Models\MstDauRinci;
|
|
use App\Models\Siesetpembayaran;
|
|
use App\Models\Sp2d;
|
|
use App\Models\BelanjaRealisasi;
|
|
use App\Models\MstJenisDana;
|
|
use App\Models\MstJenisBelanja;
|
|
use App\Models\MstSubJenisBelanja;
|
|
use App\Models\VwRekeningPendapatan;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Facades\Http;
|
|
use App\Models\PendapatanRealisasiSts;
|
|
|
|
class ItemSearchController extends Controller
|
|
{
|
|
/**
|
|
* Display a listing of the resource.
|
|
*
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function index()
|
|
{
|
|
//
|
|
}
|
|
|
|
public function skpd(Request $request)
|
|
{
|
|
$tropd = [];
|
|
$ta = $request->ta;
|
|
$search = strtoupper($request->q);
|
|
if ($request->has('realisasi-belanja')) {
|
|
$sqlStr = "SELECT DISTINCT x.KODE_SKPD AS ID,x.KODE_SKPD||' | '||x.NAMA_SKPD as name
|
|
FROM BELANJA_REALISASI x
|
|
LEFT JOIN NEWSIPKD.TROPD y ON x.KODE_SKPD = y.C_OPD
|
|
WHERE TAHUN_ANGGARAN = $ta ";
|
|
|
|
if (getRole() == "sbpk") {
|
|
$sqlStr .= " AND y.C_WIL_SP2DPROSES=" . Auth::user()->wilayah;
|
|
} elseif (getRole() == "walikota" || getRole() == "induk skpd") {
|
|
$id = Tropd::where("C_OPD", Auth::user()->nrk)->first()["i_id"];
|
|
$sqlStr .= " AND x.KODE_SKPD IN (SELECT C_OPD FROM NEWSIPKD.TROPD WHERE I_IDINDUK=" . $id . ")";
|
|
}
|
|
|
|
if ($request->has('q')) {
|
|
$search = strtolower($request->q);
|
|
$sqlStr .= " AND ( LOWER(x.NAMA_SKPD) LIKE '%$search%' OR x.KODE_SKPD LIKE '%$search%' )";
|
|
}
|
|
|
|
$tropd = DB::select(DB::raw($sqlStr . " ORDER BY x.KODE_SKPD "));
|
|
} else {
|
|
$select = DB::raw("C_OPD AS ID,C_OPD||' | '||N_OPD as name");
|
|
$tropd = Tropd::select($select);
|
|
if ($request->has('q')) {
|
|
$search = strtolower($request->q);
|
|
$tropd->whereRaw("LOWER(N_OPD) LIKE '%$search%'");
|
|
}
|
|
$tropd->orderBy("C_OPD");
|
|
$tropd = $tropd->get();
|
|
}
|
|
return response()->json($tropd);
|
|
}
|
|
|
|
public function prog(Request $request)
|
|
{
|
|
$tropd = [];
|
|
|
|
if ($request->has('q')) {
|
|
$search = strtoupper($request->q);
|
|
$select = DB::raw("C_PROGRAM AS ID,C_PROGRAM||' | '||N_PROGRAM as name");
|
|
$tropd = Program::select($select)
|
|
->where('N_PROGRAM', 'LIKE', "%$search%")
|
|
->get();
|
|
}
|
|
return response()->json($tropd);
|
|
}
|
|
|
|
public function keg(Request $request)
|
|
{
|
|
$tropd = [];
|
|
|
|
if ($request->has('q')) {
|
|
$search = strtoupper($request->q);
|
|
$select = DB::raw("C_GIAT AS ID,C_GIAT||' | '||N_GIAT as name");
|
|
$tropd = Kegiatan::select($select)
|
|
->where('N_GIAT', 'LIKE', "%$search%")
|
|
->get();
|
|
}
|
|
return response()->json($tropd);
|
|
}
|
|
|
|
public function sk(Request $request)
|
|
{
|
|
$sk = [];
|
|
|
|
if ($request->has('q')) {
|
|
if ($request->has('realisasi-belanja')) {
|
|
$search = $request->q;
|
|
$select = DB::raw("DISTINCT KODE_SUB_KEGIATAN AS ID,KODE_SUB_KEGIATAN||' | '||NAMA_SUB_KEGIATAN as name");
|
|
$ta = $request->ta;
|
|
$sk = BelanjaRealisasi::select($select)
|
|
->where("TAHUN_ANGGARAN", $ta)
|
|
->where('NAMA_SUB_KEGIATAN', 'LIKE', "%$search%")
|
|
->get();
|
|
} else {
|
|
$search = strtoupper($request->q);
|
|
$select = DB::raw("C_SUBGIAT AS ID,C_SUBGIAT||' | '||N_SUBGIAT as name");
|
|
$sk = SubKegiatan::select($select)
|
|
->where('N_SUBGIAT', 'LIKE', "%$search%")
|
|
->get();
|
|
}
|
|
}
|
|
return response()->json($sk);
|
|
}
|
|
|
|
public function rsk(Request $request)
|
|
{
|
|
$tropd = [];
|
|
|
|
if ($request->has('q')) {
|
|
$search = strtoupper($request->q);
|
|
$select = DB::raw("I_ID AS ID,I_ID||' | '||N_RSK as name");
|
|
$tropd = Rsk::select($select)
|
|
->where('N_RSK', 'LIKE', "%$search%")
|
|
->get();
|
|
}
|
|
return response()->json($tropd);
|
|
}
|
|
|
|
public function sps(Request $request)
|
|
{
|
|
$sps = [];
|
|
$search = strtolower($request->q);
|
|
$ta = $request->ta;
|
|
$jenis = $request->jenis;
|
|
|
|
if (getRole() == "skpd") {
|
|
$filter = "";
|
|
if (isset($jenis)) {
|
|
$typeDana = strtoupper($jenis);
|
|
$kodeRekening = "'" . implode("','", getKodeRekInduk($typeDana)) . "'";
|
|
$filter = " AND SUBSTR(x.KODE_REKENING,1,12) IN ($kodeRekening) ";
|
|
}
|
|
|
|
$sps = DB::select(DB::raw("SELECT x.KODE_REKENING as IDX,x.KODE_REKENING||' | '||z.NAMA_REKENING as name
|
|
FROM MAPPING_DBH_SKPD x
|
|
LEFT JOIN VW_REKENING_PENDAPATAN z ON x.ID_REKENING = z.ID
|
|
WHERE x.kode_skpd='" . Auth::user()->nrk . "' AND (TAHUN_BERLAKU<=" . getTA() . " AND TAHUN_BERAKHIR>=" . getTA() . ") $filter"));
|
|
} else {
|
|
$select = DB::raw("KODE_REKENING AS IDX,KODE_REKENING||' | '||NAMA_REKENING as name");
|
|
$sps = VwRekeningPendapatan::select($select);
|
|
|
|
$sps->whereRaw("TAHUN_BERLAKU<=" . getTA() . " AND TAHUN_BERAKHIR>=" . getTA());
|
|
|
|
if (!empty($search)) {
|
|
$sps->whereRaw(" (LOWER(KODE_REKENING) LIKE '%$search%' OR LOWER(NAMA_REKENING) LIKE '%$search%') ");
|
|
}
|
|
|
|
if (isset($jenis)) {
|
|
$typeDana = strtoupper($jenis);
|
|
$kodeRekening = "'" . implode("','", getKodeRekInduk($typeDana)) . "'";
|
|
$sps->whereRaw(" SUBSTR(KODE_REKENING,1,12) IN ($kodeRekening)");
|
|
}
|
|
|
|
$sps->orderby("KODE_REKENING");
|
|
$sps = $sps->get();
|
|
}
|
|
|
|
return response()->json($sps);
|
|
}
|
|
|
|
public function sts(Request $request)
|
|
{
|
|
$sts = array();
|
|
$no_skprd = $request->no_skprd;
|
|
$kode_akun = $request->kode_akun;
|
|
|
|
$cek = PendapatanRealisasiSts::where("rkud_no_sts",$no_skprd)->count();
|
|
if ($cek==0){
|
|
$arrTPG = ['4.2.01.01.04.0004','4.2.01.01.04.0005','4.2.01.09.02.0004','4.2.01.09.02.0005'];
|
|
if (in_array($kode_akun,$arrTPG)){
|
|
$urlAPI = "http://10.15.34.90:8820/api/tpg-tamsil/cek-sp2t";
|
|
$httpSTS = Http::withHeaders([
|
|
'Accept' => 'application/json',
|
|
])->withBasicAuth('sidata_tpgtamsil_dev', 'sidataAp!TpgT4ms1lD3v')
|
|
->post($urlAPI, [
|
|
"no_sp2t"=>$no_skprd,
|
|
"kode_rekening"=>$kode_akun
|
|
]);
|
|
if(isset($httpSTS["data"])){
|
|
$sts["no_skprd"] = $httpSTS["data"]["no_sp2t"];
|
|
$sts["tgl_validasi"] = date("Y-m-d", strtotime($httpSTS["data"]["tanggal_pengesahan"]));
|
|
$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)
|
|
->join("NEWSIPKD.TRBAS", "SI_ESET_PEMBAYARAN.KODE_BAS", "=", "TRBAS.C_AKUN")
|
|
->where("NO_SKPRD", $no_skprd)
|
|
->where("SI_ESET_PEMBAYARAN.KODE_BAS", $kode_akun)
|
|
->whereRaw("C_TAHUN_BERLAKU<=" . getTA() . " AND C_TAHUN_BERAKHIR>=" . getTA())
|
|
->first();
|
|
if ($sts) {
|
|
$sts["tgl_validasi"] = date("Y-m-d", strtotime($sts["tgl_validasi"]));
|
|
$sts["nilai_bayar"] = separateNumberIndo($sts["nilai_bayar"]);
|
|
}
|
|
}
|
|
}
|
|
return response()->json($sts);
|
|
}
|
|
|
|
public function sp2d(Request $request)
|
|
{
|
|
$no_sp2d = $request->no_sp2d;
|
|
$sp2d = Sp2d::where(["I_SP2DNO_DOK" => $no_sp2d, "C_SP2D_SAH" => 1])->first();
|
|
return response()->json($sp2d);
|
|
}
|
|
|
|
public function jenisBelanja(Request $request)
|
|
{
|
|
$sk = [];
|
|
$select = DB::raw("ID, NAME");
|
|
$grup = $request->grup;
|
|
if ($request->has('q')) {
|
|
$search = $request->q;
|
|
$sk = MstJenisBelanja::select($select)
|
|
->where('GRUP', $grup)
|
|
->where('NAME', 'LIKE', "%$search%")
|
|
->get();
|
|
} else {
|
|
$sk = MstJenisBelanja::select($select)->where('GRUP', $grup)->get();
|
|
}
|
|
return response()->json($sk);
|
|
}
|
|
|
|
public function subjenisDana(Request $request)
|
|
{
|
|
$sk = [];
|
|
$select = DB::raw("ID, NAME");
|
|
$idGrup = $request->id_grup;
|
|
if ($request->has('q')) {
|
|
$search = $request->q;
|
|
$sk = MstJenisDana::select($select)
|
|
->where("GRUP", $idGrup)
|
|
->where('NAME', 'LIKE', "%$search%")
|
|
->get();
|
|
} else {
|
|
$sk = MstJenisDana::select($select)
|
|
->where("GRUP", $idGrup)
|
|
->get();
|
|
}
|
|
return response()->json($sk);
|
|
}
|
|
|
|
public function subjenisBelanja(Request $request)
|
|
{
|
|
$sk = [];
|
|
$select = DB::raw("ID, NAME");
|
|
$idJenis = $request->id_jenis;
|
|
if ($request->has('q')) {
|
|
$search = $request->q;
|
|
$sk = MstSubJenisBelanja::select($select)
|
|
->where("id_jenis_belanja", $idJenis)
|
|
->where('NAME', 'LIKE', "%$search%")
|
|
->get();
|
|
} else {
|
|
$sk = MstSubJenisBelanja::select($select)
|
|
->where("id_jenis_belanja", $idJenis)
|
|
->get();
|
|
}
|
|
return response()->json($sk);
|
|
}
|
|
|
|
public function rek_dana(Request $request)
|
|
{
|
|
$search = strtolower($request->q);
|
|
$ta = $request->ta;
|
|
|
|
$select = DB::raw("C_AKUN AS IDX,C_AKUN||' | '||N_AKUN as NAME");
|
|
$trbas = Trbas::select($select)->whereRaw("C_TAHUN_BERAKHIR>=$ta AND (C_AKUN LIKE '4.2.01.01%' OR C_AKUN LIKE '4.2.01.02%' OR C_AKUN LIKE '4.2.01.09%') AND LENGTH(C_AKUN)>=17");
|
|
|
|
if (!empty($search)) {
|
|
$trbas->whereRaw(" (LOWER(C_AKUN) LIKE '%$search%' OR LOWER(N_AKUN) LIKE '%$search%') ");
|
|
}
|
|
|
|
$trbas->orderby("C_AKUN");
|
|
$trbas = $trbas->get();
|
|
|
|
return response()->json($trbas);
|
|
}
|
|
|
|
public function dau_rinci(Request $request)
|
|
{
|
|
$sk = [];
|
|
$select = DB::raw("id, name");
|
|
if ($request->has('q')) {
|
|
$search = $request->q;
|
|
$sk = MstDauRinci::select($select)
|
|
->where('name', 'LIKE', "%$search%")
|
|
->get();
|
|
} else {
|
|
$sk = MstDauRinci::select($select)->get();
|
|
}
|
|
return response()->json($sk);
|
|
}
|
|
|
|
public function dau_rinci_detail(Request $request)
|
|
{
|
|
$search = $request->id;
|
|
$sk = MstDauRinci::where('id', $search)->first();
|
|
|
|
return response()->json($sk);
|
|
}
|
|
}
|