Files
sidata/app/Http/Controllers/ItemSearchController.php
T
2023-02-28 10:54:30 +07:00

298 lines
9.8 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;
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 SAMASA.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;
}
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 SAMASA.MAPPING_DBH_SKPD x
LEFT JOIN SAMASA.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)
{
$no_skprd = $request->no_skprd;
$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)
->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%') 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);
}
}