Update Rekening Tamsil dan TPG

This commit is contained in:
izuddin
2025-08-07 10:30:44 +07:00
parent a0c2774e81
commit cb273e1256
7 changed files with 255 additions and 70 deletions
+36 -10
View File
@@ -21,6 +21,8 @@ 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
{
@@ -183,16 +185,40 @@ class ItemSearchController extends Controller
{
$no_skprd = $request->no_skprd;
$kode_akun = $request->kode_akun;
$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"]);
$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)){
$sts = array();
$cek = PendapatanRealisasiSts::where("rkud_no_sts",$no_skprd)->count();
if ($cek==0){
$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);
}
@@ -8,6 +8,7 @@ use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Maatwebsite\Excel\Facades\Excel;
use App\Models\PendapatanRealisasi;
use App\Models\PendapatanRealisasiSts;
use App\Models\Sps_pendapatan;
use App\Models\VwJadwalSalur;
use App\Models\User;
@@ -187,6 +188,7 @@ class RealisasiPendapatanController extends Controller
// }
$this->readNotif($realisasi_pendapatan->id);
$this->setSubtitle("Detail Data");
// var_dump($realisasi_pendapatan->hasSts); exit;
return view('realisasi_pendapatan.show',compact("realisasi_pendapatan"));
}
@@ -204,37 +206,51 @@ class RealisasiPendapatanController extends Controller
try{
$date = date("Ymd");
DB::beginTransaction();
$data = PendapatanRealisasi::firstOrNew(array('id' => $realisasiId));
if ($data["simtrad4_bersih"]<>replaceMoney($req["rkud_jumlah"])){
return redirect(URL::to("/realisasi-pendapatan/".$realisasiId))->with('error', "Jumlah STS harus sama dengan Rencana !");
$dataRealisasi = PendapatanRealisasi::where(['id' => $realisasiId])->first();
$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'];
$sisa = 0;
if (in_array($req["rkud_kode_akun"],$arrTPG)){
$totalSts = PendapatanRealisasiSts::where(["id_pendapatan_realisasi" => $realisasiId])->get()->sum("rkud_jumlah");
$totalSts += replaceMoney($req["rkud_jumlah"]);
if (replaceMoney($req["rkud_jumlah"]) > $dataRealisasi["simtrad4_bersih"]){
return redirect(URL::to("/realisasi-pendapatan/".$realisasiId))->with('error', "Jumlah STS harus sama atau lebih kecil dengan Rencana !");
}
$sisa = $dataRealisasi["simtrad4_bersih"] - replaceMoney($req["rkud_jumlah"]);
}else{
if ($dataRealisasi["simtrad4_bersih"]<>replaceMoney($req["rkud_jumlah"])){
return redirect(URL::to("/realisasi-pendapatan/".$realisasiId))->with('error', "Jumlah STS harus sama dengan Rencana !");
}
}
$data["rkud_tgl"] = $req["rkud_tgl"];
$data["rkud_no_sts"] = $req["rkud_no_sts"];
$data["rkud_kode_akun"] = $req["rkud_kode_akun"];
$data["rkud_nama_akun"] = $req["rkud_nama_akun"];
$data["rkud_jumlah"] = replaceMoney($req["rkud_jumlah"]);
$data["sisa_sts"] = $sisa;
$file = $request->file('file_sts');
if ($file){
$fileName = $req["rkud_no_sts"].".".$file->getClientOriginalExtension();
$fileName = str_replace([" ","/"],["_","_"],$req["rkud_no_sts"]).".".$file->getClientOriginalExtension();
$tujuan_upload = config('constants.upload_path_sts').getTA();
File::isDirectory($tujuan_upload) or File::makeDirectory($tujuan_upload, 0777, true, true);
$file->move($tujuan_upload, $fileName);
$data["file_sts"] = $fileName;
}
$data->save();
PendapatanRealisasiSts::updateOrCreate([
"id_pendapatan_realisasi"=>$realisasiId,
"rkud_no_sts"=>$req["rkud_no_sts"]
],$data);
DB::commit();
$userAnggaran = User::where("role_name","anggaran")->get()->toArray();
$userAnggaran = array_column($userAnggaran,"id");
$url = URL::to("/realisasi-pendapatan/".$realisasiId);
$message = "Realisasi Pendapatan dengan No. SP2D BUN ".$data["simtrad4_sp2d_bun"]." telah divalidasi oleh Bidang Perben!";
$this->sendNotif("bendahara", "anggaran", $userAnggaran, $message, $url, "Realisasi Pendapatan", $data->id);
// $userAnggaran = User::where("role_name","anggaran")->get()->toArray();
// $userAnggaran = array_column($userAnggaran,"id");
// $url = URL::to("/realisasi-pendapatan/".$realisasiId);
// $message = "Realisasi Pendapatan dengan No. SP2D BUN ".$data["simtrad4_sp2d_bun"]." telah divalidasi oleh Bidang Perben!";
// $this->sendNotif("bendahara", "anggaran", $userAnggaran, $message, $url, "Realisasi Pendapatan", $data->id);
return redirect(URL::to("/realisasi-pendapatan"))->with('success','STS berhasil diinput.');
return redirect(URL::to("/realisasi-pendapatan/".$realisasiId))->with('success','STS berhasil diinput.');
}catch(\Exception $e){
DB::rollBack();
@@ -319,11 +335,33 @@ class RealisasiPendapatanController extends Controller
public function downloadSts(PendapatanRealisasi $realisasi)
{
$sts = PendapatanRealisasiSts::where("id_pendapatan_realisasi",$realisasi->id)->first();
$headers = [
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'attachment;filename='.$realisasi->file_sts
'Content-Disposition' => 'attachment;filename='.$sts->file_sts
];
return response()->download(config('constants.upload_path_sts').getTA()."/".$realisasi->file_sts, $realisasi->file_sts, $headers);
return response()->download(config('constants.upload_path_sts').getTA()."/".$sts->file_sts, $sts->file_sts, $headers);
}
public function deleteSts(PendapatanRealisasiSts $stsId)
{
try{
DB::beginTransaction();
$uploadDir = config('constants.upload_path_sts').getTA();
if (File::exists($uploadDir.$stsId->file_sts)){
File::delete($uploadDir.$stsId->file_sts);
}
$stsId->delete();
DB::commit();
return redirect(URL::to("/realisasi-pendapatan/".$stsId->id_pendapatan_realisasi))->with('success','Data STS Pendapatan berhasil dihapus!');
}catch(Throwable $e){
DB::rollBack();
return redirect(URL::to("/realisasi-pendapatan/".$stsId->id_pendapatan_realisasi))->with('error','Data STS Pendapatan gagal dihapus.');
}
}
}
+4
View File
@@ -18,4 +18,8 @@ class PendapatanRealisasi extends Eloquent
'retur','bersih','tw','gelombang','potongan_pph','potongan_jkn'
];
public function hasSts() {
return $this->hasMany('App\Models\PendapatanRealisasiSts','id_pendapatan_realisasi','id');
}
}
+15
View File
@@ -0,0 +1,15 @@
<?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;
class PendapatanRealisasiSts extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'pendapatan_realisasi_sts';
protected $guarded = [];
}