<?php
namespace App\Helpers;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use App\Models\Pengumuman;
use App\Models\Level;
use App\Models\UserLogs;
use App\Models\UraianPasal;
use App\Models\Opd;
use App\Models\PerangkatDaerah;
use App\Models\Urusan;
use App\Models\BidangUrusan;
use App\Models\Program;
use App\Models\Kegiatan;
use App\Models\SubKegiatan;
use App\Models\Kelurahan;
use App\Models\EvaluasiFile;
use App\Models\RenstraProgram;
use App\Models\RenstraKegiatan;
use App\Models\RenstraSubKegiatan;
use App\Models\Rt;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Auth;
class Helper {
public static function formatPaguKomitmen($input)
{
// Hilangkan tanda titik sebagai pemisah ribuan
$input = str_replace('.', '', $input);
// Ubah koma menjadi titik untuk desimal
$input = str_replace(',', '.', $input);
// Kembalikan sebagai float
return (float)$input;
}
public static function hakAkses($nama_menu,$aksi){
$cek = Level::whereHas('Menu',function ($q) use($nama_menu,$aksi)
{
$q->where('nama_menu', $nama_menu)
->where('aksi_menu', $aksi);
})->where('id',Auth::user()->level->id)->count();
if ( $cek > 0 ) {
return true;
} else {
return false;
}
}
public static function getOpd($id){
$data = Opd::find($id);
return $data;
}
public static function angka($string)
{
// Hilangkan spasi, enter
// Hilangkan koma, titik
$result = str_replace(" ", "", trim(preg_replace('/\s+/', '', strtolower($string))));
$result = str_replace(",","",$result);
$result = str_replace(".","",$result);
return $result;
}
public static function hitungPersen($value, $ttl)
{
$value = (float) $value;
$ttl = (float) $ttl;
$result = ($ttl > 0) ? $value / $ttl * 100 : 0;
return round($result, 2);
}
public static function hitungAvg($ttl, $jumlah_data)
{
$result = ($jumlah_data > 0) ? $ttl / $jumlah_data : 0;
return round($result, 2);
}
public static function checkIfKecamatan(){
if(count(Auth::user()->perangkatDaerah) > 0){
foreach (Auth::user()->perangkatDaerah as $pd) {
if(str_contains(strtolower($pd->nama_perangkat_daerah), 'kecamatan')){
return true;
}
}
}
return false;
}
public static function getOnlyKecamatan(){
$result = [];
if(count(Auth::user()->perangkatDaerah) > 0){
foreach (Auth::user()->perangkatDaerah as $pd) {
if(str_contains(strtolower($pd->nama_perangkat_daerah), 'kecamatan')){
$result[] = $pd;
}
}
}
return $result;
}
public static function checkIfKelurahan(){
if(Auth::user()->level->nama_level == 'Kelurahan'){
return true;
}else{
return false;
}
}
// Ambil Semua Id perangkat daerah berdasarkan login
public static function getIdPerangkatDaerahLoginUser(){
$result = [];
foreach (Auth::user()->perangkatDaerah as $pd) {
$result[] = $pd->id;
}
return $result;
}
public static function masterUrusanGetAnggaranPd($perangkat_daerah_id, $tahun){
$pd = PerangkatDaerah::find($perangkat_daerah_id);
$pd_bun = $pd->bidangUrusan->toArray();
$arr_bidang_urusan = [];
foreach ($pd_bun as $bun) {
$arr_bidang_urusan[] = $bun['id'];
}
$bidang_urusan = BidangUrusan::whereIn('id', $arr_bidang_urusan)->where('tahun_upload', $tahun)->get();
if ($bidang_urusan) {
return response()->json([
'status' => 'success',
'data' => $bidang_urusan,
]);
}else{
return response()->json([
'status' => 'error',
'message' => 'Data Bidang Urusan Apbd Pada Dinas Ini Tidak Ditemukan',
]);
}
}
public static function findKelurahanByKecamatanId($kecamatan_id){
if (is_array($kecamatan_id)) {
return Kelurahan::whereIn('kecamatan_id',$kecamatan_id)->get();
}else{
return Kelurahan::where('kecamatan_id',$kecamatan_id)->get();
}
}
public static function findRtByKelurahanId($kelurahan_id){
return Rt::where('kelurahan_id',$kelurahan_id)->get();
}
public static function findNameKecamatanById($kecamatan_id){
return PerangkatDaerah::where('id',$kecamatan_id)->first()->nama_perangkat_daerah;
}
public static function findNameKelurahanById($kelurahan_id){
return Kelurahan::where('id',$kelurahan_id)->first()->nama_kelurahan;
}
public static function sendMailProfil($email, $data, $judul, $pesan, $alasan = null, $arr = null){
try{
Mail::send('emails.profil', ['data' => $data, 'pesan' => $pesan, 'judul' => $judul, 'alasan' => $alasan], function ($message) use ($judul,$email, $arr)
{
$message->subject( '[Notifikasi] ' . $judul);
$message->from('[email protected]', env("APP_NAME"));
$message->to($email);
if ($arr != null) {
foreach ($arr as $data) {
$message->attach($data);
}
}
});
}catch(Exception $e){
return response(['status' => false, 'errors' => $e->getMessage() ]);
}
}
public static function getMyIP()
{
$ipaddress = '';
if (getenv('HTTP_CLIENT_IP'))
$ipaddress = getenv('HTTP_CLIENT_IP');
else if(getenv('HTTP_X_FORWARDED_FOR'))
$ipaddress = getenv('HTTP_X_FORWARDED_FOR');
else if(getenv('HTTP_X_FORWARDED'))
$ipaddress = getenv('HTTP_X_FORWARDED');
else if(getenv('HTTP_FORWARDED_FOR'))
$ipaddress = getenv('HTTP_FORWARDED_FOR');
else if(getenv('HTTP_FORWARDED'))
$ipaddress = getenv('HTTP_FORWARDED');
else if(getenv('REMOTE_ADDR'))
$ipaddress = getenv('REMOTE_ADDR');
else
$ipaddress = 'UNKNOWN';
return $ipaddress;
}
public static function getIpDetail($ip)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://ipinfo.io/{$ip}/json");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
return [
'ip'=>$ip,
'ip_detail'=>$output
];
}
public static function addUserLog($action,$actionDetail = null,$ip = null)
{
if($ip == null){
$ip = Helper::getMyIP();
}
// Mengonversi $actionDetail ke dalam format JSON jika tidak null
$actionDetailJson = $actionDetail !== null ? json_encode($actionDetail) : null;
// Memeriksa panjang data $actionDetailJson
$max_length = 65535; // Panjang maksimum untuk tipe data TEXT di MySQL
if ($actionDetailJson !== null && strlen($actionDetailJson) > $max_length) {
$actionDetailJson = substr($actionDetailJson, 0, $max_length);
}
UserLogs::create([
'action'=>$action,
'action_detail'=>$actionDetailJson,
'user_id'=>Auth::user()->id,
'ip'=>$ip,
'ip_detail'=>NULL
]);
}
public static function getPengumuman()
{
$pengumuman = Pengumuman::first();
return ($pengumuman) ? $pengumuman->pengumuman : '';
}
public static function hitungKeselarasan($arrayKodeMerge, $tahun, $table, $status1, $status2){
$hasilKeselarasan = [];
$tidakSelaras = [];
$dupe = [];
$tes = 0;
foreach(array_count_values($arrayKodeMerge) as $key => $value){
if($value > 1){
if($value > 2){
if($table == 'pm'){
$statusA = Program::where('tahun_upload', '2021')->where('kode_baru', $key)->where('status', $status1)->count();
$statusB = Program::where('tahun_upload', $tahun)->where('kode_baru', $key)->where('status', $status2)->count();
}
if($table == 'kn'){
$statusA = Kegiatan::where('tahun_upload', $tahun)->where('kode_baru', $key)->where('status', $status1)->count();
$statusB = Kegiatan::where('tahun_upload', $tahun)->where('kode_baru', $key)->where('status', $status2)->count();
}
if($table == 'sk'){
$statusA = SubKegiatan::where('tahun_upload', $tahun)->where('kode_baru', $key)->where('status', $status1)->count();
$statusB = SubKegiatan::where('tahun_upload', $tahun)->where('kode_baru', $key)->where('status', $status2)->count();
}
$min = min($statusA, $statusB);
$max = max($statusA, $statusB);
$selisih = $max - $min;
for ($i=0; $i < $selisih; $i++) {
$tidakSelaras[] = $key;
}
for ($i=0; $i < $min; $i++) {
$hasilKeselarasan[] = $key;
}
$dupe[] = $key. "=" . $value;
}else{
$hasilKeselarasan[] = $key;
}
}else{
$tidakSelaras[] = $key;
}
}
return [
'tidak_selaras' => $tidakSelaras,
'hasil_keselarasan' => count($hasilKeselarasan),
'dupe' => $dupe,
];
}
public static function hitungKeselarasan2($kode_table1, $kode_table2, $tahun, $table, $status1, $status2, $debug = false){
$hasilKeselarasan = [];
$tidakSelarasTable1Table2 = [];
$tidakSelarasTable2Table1 = [];
$dupe = [];
$tes = 0;
$min = min(count($kode_table1), count($kode_table2));
$max = max(count($kode_table1), count($kode_table2));
for ($i=0; $i < $max; $i++) {
try {
$index_kode_table_min = array_search($kode_table1[$i], $kode_table2);
if(is_numeric($index_kode_table_min)){
$hasilKeselarasan[] = $kode_table1[$i];
unset($kode_table1[$i]);
unset($kode_table2[$index_kode_table_min]);
}
} catch (\Throwable $th) {
//throw $th;
}
}
foreach ($kode_table1 as $kode1) {
$tidakSelarasTable1Table2[] = $kode1;
}
foreach ($kode_table2 as $kode2) {
$tidakSelarasTable2Table1[] = $kode2;
}
return [
'tidak_selaras_table1_table2' => $tidakSelarasTable1Table2,
'tidak_selaras_table2_table1' => $tidakSelarasTable2Table1,
'hasil_keselarasan' => count($hasilKeselarasan)
];
}
public static function penjabaranDanKeselarasanProgramRpjmdRkpdByBun($masterUrusan, $getTahun = null)
{
$tahun = ($getTahun) ?? date('Y');
$datas = [];
$tidak_selaras_table1_table2[0] = [];
$tidak_selaras_table2_table1[0] = [];
$i = 0;
foreach ($masterUrusan as $mun) {
$data_mbun = [];
$ttl_table1 = 0;
$ttl_table2 = 0;
$ttl_sesuai = 0;
foreach ($mun->masterBidangUrusan as $mbun) {
// KESELARASAN PROGRAM Table1 - Table2
// Cari Data Program Sesuai Perangkat Daerah
$program_rkpd = Program::where('tahun_upload', $tahun)->whereHas('bidangUrusan', function($bun) use($mbun) {
$bun->where('master_bidang_urusan_id', $mbun->id);
})->where('status', 'rkpd_perubahan')->get();
// HASIL Keselerasan PROGRAM Table1 - Table2
$kode_table1 = [];
$kode_table2 = [];
foreach($program_rkpd as $item){
$kode_table2[] = $item->kode_baru;
}
$program_rpjmd = Program::where('tahun_upload', '2021')->orderBy('kode', "ASC")->whereHas('bidangUrusan', function($bun) use($mbun) {
$bun->where('master_bidang_urusan_id', $mbun->id);
})->where('status', 'rpjmd')->get();
foreach($program_rpjmd as $item){
$kode_table1[] = $item->kode_baru;
}
if($mbun->id == 5){
// dd($kode_table2);
}
$callFunc = \Helper::hitungKeselarasan2($kode_table1, $kode_table2, $tahun, 'pm', 'rpjmd', 'rkpd_perubahan');
// Merge Ke Array data Ketidak Selarasan Table 1 Dan Table 2
if($i == 0){
$tidak_selaras_table1_table2[0] = $callFunc['tidak_selaras_table1_table2'];
$tidak_selaras_table2_table1[0] = $callFunc['tidak_selaras_table2_table1'];
}else{
$tidak_selaras_table1_table2[0] = array_merge($tidak_selaras_table1_table2[0], $callFunc['tidak_selaras_table1_table2']);
$tidak_selaras_table2_table1[0] = array_merge($tidak_selaras_table2_table1[0], $callFunc['tidak_selaras_table2_table1']);
}
$i++;
$keselarasan_program = $callFunc['hasil_keselarasan'];
$count_table1 = $program_rpjmd->count();
$count_table2 = $program_rkpd->count();
$data_mbun[] = [
"id" => $mbun->id,
"nama" => $mbun->nama_bidang_urusan,
"table1" => $count_table1,
"table2" => $count_table2,
"sesuai" => $keselarasan_program,
"selisih_table1" => ( $count_table1 - $keselarasan_program),
"selisih_table2" => ( $count_table2 - $keselarasan_program),
];
$ttl_table1 += $count_table1;
$ttl_table2 += $count_table2;
$ttl_sesuai += $keselarasan_program;
}
$datas[] = [
"id" => $mun->id,
"nama" => $mun->nama_urusan,
"table1" => $ttl_table1,
"table2" => $ttl_table2,
"sesuai" => $ttl_sesuai,
"selisih_table1" => ( $ttl_table1 - $ttl_sesuai),
"selisih_table2" => ( $ttl_table2 - $ttl_sesuai),
"data_mbun" => $data_mbun,
];
}
$table1 = 0;
$table2 = 0;
$sesuai = 0;
$selisih_table1 = 0;
$selisih_table2 = 0;
foreach ($datas as $data) {
foreach ($data['data_mbun'] as $d) {
$table1 += $d['table1'];
$table2 += $d['table2'];
$sesuai += $d['sesuai'];
$selisih_table1 += $d['selisih_table1'];
$selisih_table2 += $d['selisih_table2'];
}
}
$total = [
'table1' => $table1,
'table2' => $table2,
'sesuai' => $sesuai,
'selisih_table1' => $selisih_table1,
'selisih_table2' => $selisih_table2,
];
$program_table1_tidak_dijabarkan_table2 = [];
$program_table2_tidak_dijabarkan_table1 = [];
// Hitung Ketidak Selarasan Table 1 Ke Table 2
foreach($tidak_selaras_table1_table2[0] as $item){
$sk = Program::where('kode_baru', $item)->first();
$program_table1_tidak_dijabarkan_table2[] = $sk;
}
// Hitung Ketidak Selarasan Table 2 Ke Table 1
foreach($tidak_selaras_table2_table1[0] as $item){
$sk = Program::where('kode_baru', $item)->first();
$program_table2_tidak_dijabarkan_table1[] = $sk;
}
$result = [
'total' => $total,
'datas' => $datas,
'program_rpjmd_tidak_dijabarkan_rkpd' => $program_table1_tidak_dijabarkan_table2,
'program_rkpd_tidak_direncanakan_rpjmd' => $program_table2_tidak_dijabarkan_table1,
];
return $result;
}
public static function penjabaranDanKeselarasanProgramByBun($table1, $table2, $masterUrusan, $getTahun = null)
{
$tahun = ($getTahun) ?? date('Y');
$datas = [];
$tidak_selaras_table1_table2[0] = [];
$tidak_selaras_table2_table1[0] = [];
$i = 0;
foreach ($masterUrusan as $mun) {
$data_mbun = [];
$ttl_table1 = 0;
$ttl_table2 = 0;
$ttl_sesuai = 0;
foreach ($mun->masterBidangUrusan as $mbun) {
// KESELARASAN PROGRAM Table1 - Table2
// Cari Data Program Sesuai Bidang Urusan
$data_program = Program::where('tahun_upload', $tahun)->whereHas('bidangUrusan', function($bun) use($mbun) {
$bun->where('master_bidang_urusan_id', $mbun->id);
})->whereIn('status', [$table1, $table2])->get();
$program_table1 = $data_program->where('status', $table1)->count();
$program_table2 = $data_program->where('status', $table2)->count();
// HASIL Keselerasan PROGRAM Table1 - Table2
$kode_table1 = [];
$kode_table2 = [];
foreach($data_program as $item){
if ($item->status == $table1) {
$kode_table1[] = $item->kode_baru;
}elseif($item->status == $table2) {
$kode_table2[] = $item->kode_baru;
}
}
$callFunc = \Helper::hitungKeselarasan2($kode_table1, $kode_table2, $tahun, 'pm', $table1, $table2);
// Merge Ke Array data Ketidak Selarasan Table 1 Dan Table 2
if($i == 0){
$tidak_selaras_table1_table2[0] = $callFunc['tidak_selaras_table1_table2'];
$tidak_selaras_table2_table1[0] = $callFunc['tidak_selaras_table2_table1'];
}else{
$tidak_selaras_table1_table2[0] = array_merge($tidak_selaras_table1_table2[0], $callFunc['tidak_selaras_table1_table2']);
$tidak_selaras_table2_table1[0] = array_merge($tidak_selaras_table2_table1[0], $callFunc['tidak_selaras_table2_table1']);
}
$i++;
$keselarasan_program = $callFunc['hasil_keselarasan'];
$data_mbun[] = [
"id" => $mbun->id,
"nama" => $mbun->nama_bidang_urusan,
"table1" => $program_table1,
"table2" => $program_table2,
"sesuai" => $keselarasan_program,
"selisih_table1" => ( $program_table1 - $keselarasan_program),
"selisih_table2" => ( $program_table2 - $keselarasan_program),
];
$ttl_table1 += $program_table1;
$ttl_table2 += $program_table2;
$ttl_sesuai += $keselarasan_program;
}
$datas[] = [
"id" => $mun->id,
"nama" => $mun->nama_urusan,
"table1" => $ttl_table1,
"table2" => $ttl_table2,
"sesuai" => $ttl_sesuai,
"selisih_table1" => ( $ttl_table1 - $ttl_sesuai),
"selisih_table2" => ( $ttl_table2 - $ttl_sesuai),
"data_mbun" => $data_mbun,
];
}
$table1 = 0;
$table2 = 0;
$sesuai = 0;
$selisih_table1 = 0;
$selisih_table2 = 0;
foreach ($datas as $data) {
foreach ($data['data_mbun'] as $d) {
$table1 += $d['table1'];
$table2 += $d['table2'];
$sesuai += $d['sesuai'];
$selisih_table1 += $d['selisih_table1'];
$selisih_table2 += $d['selisih_table2'];
}
}
$total = [
'table1' => $table1,
'table2' => $table2,
'sesuai' => $sesuai,
'selisih_table1' => $selisih_table1,
'selisih_table2' => $selisih_table2,
];
$program_table1_tidak_dijabarkan_table2 = [];
$program_table2_tidak_dijabarkan_table1 = [];
// Hitung Ketidak Selarasan Table 1 Ke Table 2
foreach($tidak_selaras_table1_table2[0] as $item){
$sk = Program::where('kode_baru', $item)->first();
$program_table1_tidak_dijabarkan_table2[] = $sk;
}
// Hitung Ketidak Selarasan Table 2 Ke Table 1
foreach($tidak_selaras_table2_table1[0] as $item){
$sk = Program::where('kode_baru', $item)->first();
$program_table2_tidak_dijabarkan_table1[] = $sk;
}
$result = [
'total' => $total,
'datas' => $datas,
'program_rkpd_tidak_dijabarkan_apbd' => $program_table1_tidak_dijabarkan_table2,
'program_apbd_tidak_direncanakan_rkpd' => $program_table2_tidak_dijabarkan_table1,
];
return $result;
}
public static function penjabaranDanKeselarasanKegiatanByBun($table1, $table2, $masterUrusan, $getTahun = null)
{
$tahun = ($getTahun) ?? date('Y');
$datas = [];
$tidak_selaras_table1_table2[0] = [];
$tidak_selaras_table2_table1[0] = [];
$i = 0;
foreach ($masterUrusan as $mun) {
$data_mbun = [];
$ttl_table1 = 0;
$ttl_table2 = 0;
$ttl_sesuai = 0;
foreach ($mun->masterBidangUrusan as $mbun) {
// KESELARASAN Kegiatan Table1 - Table2
// Cari Data Kegiatan Sesuai Perangkat Daerah
$data_kegiatan = Kegiatan::where('tahun_upload', $tahun)->whereHas('program', function($pm)use($mbun){
$pm->whereHas('bidangUrusan', function($bun) use($mbun){
$bun->where('master_bidang_urusan_id', $mbun->id);
});
})->whereIn('status', [$table1, $table2])->get();
$kegiatan_table1 = $data_kegiatan->where('status', $table1)->count();
$kegiatan_table2 = $data_kegiatan->where('status', $table2)->count();
// HASIL Keselerasan Kegiatan Table1 - Table2
$kode_table1 = [];
$kode_table2 = [];
foreach($data_kegiatan as $item){
if ($item->status == $table1) {
$kode_table1[] = $item->kode_baru;
}elseif($item->status == $table2) {
$kode_table2[] = $item->kode_baru;
}
}
$callFunc = \Helper::hitungKeselarasan2($kode_table1, $kode_table2, $tahun, 'kn', $table1, $table2);
$keselarasan_kegiatan = $callFunc['hasil_keselarasan'];
// Merge Ke Array data Ketidak Selarasan Table 1 Dan Table 2
if($i == 0){
$tidak_selaras_table1_table2[0] = $callFunc['tidak_selaras_table1_table2'];
$tidak_selaras_table2_table1[0] = $callFunc['tidak_selaras_table2_table1'];
}else{
$tidak_selaras_table1_table2[0] = array_merge($tidak_selaras_table1_table2[0], $callFunc['tidak_selaras_table1_table2']);
$tidak_selaras_table2_table1[0] = array_merge($tidak_selaras_table2_table1[0], $callFunc['tidak_selaras_table2_table1']);
}
$i++;
// $keselarasan_kegiatan = $data_kegiatan->where($appendKeselarasan, '1')->count() / 2;
$data_mbun[] = [
"id" => $mbun->id,
"nama" => $mbun->nama_bidang_urusan,
"table1" => $kegiatan_table1,
"table2" => $kegiatan_table2,
"sesuai" => $keselarasan_kegiatan,
"selisih_table1" => ( $kegiatan_table1 - $keselarasan_kegiatan),
"selisih_table2" => ( $kegiatan_table2 - $keselarasan_kegiatan),
];
$ttl_table1 += $kegiatan_table1;
$ttl_table2 += $kegiatan_table2;
$ttl_sesuai += $keselarasan_kegiatan;
}
$datas[] = [
"id" => $mun->id,
"nama" => $mun->nama_urusan,
"table1" => $ttl_table1,
"table2" => $ttl_table2,
"sesuai" => $ttl_sesuai,
"selisih_table1" => ( $ttl_table1 - $ttl_sesuai),
"selisih_table2" => ( $ttl_table2 - $ttl_sesuai),
"data_mbun" => $data_mbun,
];
}
$table1 = 0;
$table2 = 0;
$sesuai = 0;
$selisih_table1 = 0;
$selisih_table2 = 0;
foreach ($datas as $data) {
$table1 += $data['table1'];
$table2 += $data['table2'];
$sesuai += $data['sesuai'];
$selisih_table1 += $data['selisih_table1'];
$selisih_table2 += $data['selisih_table2'];
}
$total = [
'table1' => $table1,
'table2' => $table2,
'sesuai' => $sesuai,
'selisih_table1' => $selisih_table1,
'selisih_table2' => $selisih_table2,
];
$kegiatan_table1_tidak_dijabarkan_table2 = [];
$kegiatan_table2_tidak_dijabarkan_table1 = [];
// Hitung Ketidak Selarasan Table 1 Ke Table 2
foreach($tidak_selaras_table1_table2[0] as $item){
$k = Kegiatan::where('kode_baru', $item)->first();
$kegiatan_table1_tidak_dijabarkan_table2[] = $k;
}
// Hitung Ketidak Selarasan Table 2 Ke Table 1
foreach($tidak_selaras_table2_table1[0] as $item){
$kn = Kegiatan::where('kode_baru', $item)->first();
$kegiatan_table2_tidak_dijabarkan_table1[] = $kn;
}
$result = [
'total' => $total,
'datas' => $datas,
'kegiatan_rkpd_tidak_dijabarkan_apbd' => $kegiatan_table1_tidak_dijabarkan_table2,
'kegiatan_apbd_tidak_direncanakan_rkpd' => $kegiatan_table2_tidak_dijabarkan_table1,
];
return $result;
}
public static function penjabaranDanKeselarasanSubKegiatanByBun($table1, $table2, $masterUrusan, $getTahun = null)
{
$tahun = ($getTahun) ?? date('Y');
$append1 = $table1;
$append2 = $table2;
if ($table1 == 'rkpd_perubahan') {
$append1 = 'rkpd';
}
if ($table2 == 'rkpd_perubahan') {
$append2 = 'rkpd';
}
if ($table1 == 'belanja_perubahan') {
$append1 = 'apbd';
}
if ($table2 == 'belanja_perubahan') {
$append2 = 'apbd';
}
$appendKeselarasan = $append1 . '_' . $append2;
$datas = [];
$tidak_selaras_table1_table2[0] = [];
$tidak_selaras_table2_table1[0] = [];
$i = 0;
foreach ($masterUrusan as $mun) {
$data_mbun = [];
$ttl_table1 = 0;
$ttl_table2 = 0;
$ttl_sesuai = 0;
foreach ($mun->masterBidangUrusan as $mbun) {
// KESELARASAN Sub Kegiatan Table1 - Table2
// Cari Data Sub Kegiatan Sesuai Perangkat Daerah
$data_sub_kegiatan = SubKegiatan::where('tahun_upload', $tahun)->whereHas('kegiatan', function($kn) use($mbun){
$kn->whereHas('program', function($pm) use($mbun){
$pm->whereHas('bidangUrusan', function($bun) use($mbun){
$bun->where('master_bidang_urusan_id', $mbun->id);
});
});
})->whereIn('status', [$table1, $table2])->get();
$sub_kegiatan_table1 = $data_sub_kegiatan->where('status', $table1)->count();
$sub_kegiatan_table2 = $data_sub_kegiatan->where('status', $table2)->count();
// HASIL Keselerasan Sub Kegiatan Table1 - Table2
$kode_table1 = [];
$kode_table2 = [];
foreach($data_sub_kegiatan as $item){
if ($item->status == $table1) {
$kode_table1[] = $item->kode_baru;
}elseif($item->status == $table2) {
$kode_table2[] = $item->kode_baru;
}
}
$callFunc = \Helper::hitungKeselarasan2($kode_table1, $kode_table2, $tahun, 'sk', $table1, $table2, true);
$keselarasan_sub_kegiatan = $callFunc['hasil_keselarasan'];
// Merge Ke Array data Ketidak Selarasan Table 1 Dan Table 2
if($i == 0){
$tidak_selaras_table1_table2[0] = $callFunc['tidak_selaras_table1_table2'];
$tidak_selaras_table2_table1[0] = $callFunc['tidak_selaras_table2_table1'];
}else{
$tidak_selaras_table1_table2[0] = array_merge($tidak_selaras_table1_table2[0], $callFunc['tidak_selaras_table1_table2']);
$tidak_selaras_table2_table1[0] = array_merge($tidak_selaras_table2_table1[0], $callFunc['tidak_selaras_table2_table1']);
}
$i++;
// $keselarasan_sub_kegiatan = $data_sub_kegiatan->where($appendKeselarasan, '1')->count() / 2;
$data_mbun[] = [
"id" => $mbun->id,
"nama" => $mbun->nama_bidang_urusan,
"table1" => $sub_kegiatan_table1,
"table2" => $sub_kegiatan_table2,
"sesuai" => $keselarasan_sub_kegiatan,
"selisih_table1" => ( $sub_kegiatan_table1 - $keselarasan_sub_kegiatan),
"selisih_table2" => ( $sub_kegiatan_table2 - $keselarasan_sub_kegiatan),
];
$ttl_table1 += $sub_kegiatan_table1;
$ttl_table2 += $sub_kegiatan_table2;
$ttl_sesuai += $keselarasan_sub_kegiatan;
}
$datas[] = [
"id" => $mun->id,
"nama" => $mun->nama_urusan,
"table1" => $ttl_table1,
"table2" => $ttl_table2,
"sesuai" => $ttl_sesuai,
"selisih_table1" => ( $ttl_table1 - $ttl_sesuai),
"selisih_table2" => ( $ttl_table2 - $ttl_sesuai),
"data_mbun" => $data_mbun,
];
}
$table1 = 0;
$table2 = 0;
$sesuai = 0;
$selisih_table1 = 0;
$selisih_table2 = 0;
foreach ($datas as $data) {
foreach ($data['data_mbun'] as $d) {
$table1 += $d['table1'];
$table2 += $d['table2'];
$sesuai += $d['sesuai'];
$selisih_table1 += $d['selisih_table1'];
$selisih_table2 += $d['selisih_table2'];
}
}
$total = [
'table1' => $table1,
'table2' => $table2,
'sesuai' => $sesuai,
'selisih_table1' => $selisih_table1,
'selisih_table2' => $selisih_table2,
];
$sub_kegiatan_table1_tidak_dijabarkan_table2 = [];
$sub_kegiatan_table2_tidak_dijabarkan_table1 = [];
// Hitung Ketidak Selarasan Table 1 Ke Table 2
foreach($tidak_selaras_table1_table2[0] as $item){
$sk = SubKegiatan::where('kode_baru', $item)->first();
$sub_kegiatan_table1_tidak_dijabarkan_table2[] = $sk;
}
// Hitung Ketidak Selarasan Table 2 Ke Table 1
foreach($tidak_selaras_table2_table1[0] as $item){
$sk = SubKegiatan::where('kode_baru', $item)->first();
$sub_kegiatan_table2_tidak_dijabarkan_table1[] = $sk;
}
$result = [
'total' => $total,
'datas' => $datas,
'sub_kegiatan_rkpd_tidak_dijabarkan_apbd' => $sub_kegiatan_table1_tidak_dijabarkan_table2,
'sub_kegiatan_apbd_tidak_direncanakan_rkpd' => $sub_kegiatan_table2_tidak_dijabarkan_table1,
];
return $result;
}
public static function penjabaranDanKeselarasanProgramRpjmdRkpdByPd($masterUrusan, $getTahun = null)
{
$tahun = ($getTahun) ?? date('Y');
$datas = [];
foreach ($masterUrusan as $mun) {
$perangkatDaerah = PerangkatDaerah::whereHas('bidangUrusan', function($bun) use($mun) {
$bun->whereHas('masterBidangUrusan', function($mbun) use($mun) {
$mbun->where('master_urusan_id', $mun->id);
});
})->get();
foreach ($perangkatDaerah as $pd) {
// KESELARASAN PROGRAM Table1 - Table2
// Cari Data Program Sesuai Perangkat Daerah
$program_rkpd = Program::where('tahun_upload', $tahun)->whereHas('bidangUrusan', function($bun) use($pd, $mun) {
$bun->whereHas('masterBidangUrusan', function($mbun) use($mun){
$mbun->where('master_urusan_id', $mun->id);
})->whereHas('perangkatDaerah', function($bun_pd) use($pd){
$bun_pd->where('perangkat_daerah_id', $pd->id);
});
})->where('status', 'rkpd_perubahan')->get();
// HASIL Keselerasan PROGRAM Table1 - Table2
$kode_table1 = [];
$kode_table2 = [];
foreach($program_rkpd as $item){
$kode_table2[] = $item->kode_baru;
}
$program_rpjmd = Program::where('tahun_upload', '2021')->orderBy('kode', "ASC")->whereHas('bidangUrusan', function($bun) use($pd, $mun) {
$bun->whereHas('masterBidangUrusan', function($mbun) use($mun){
$mbun->where('master_urusan_id', $mun->id);
})->whereHas('perangkatDaerah', function($bun_pd) use($pd){
$bun_pd->where('perangkat_daerah_id', $pd->id);
});
})->where('status', 'rpjmd')->get();
foreach($program_rpjmd as $item){
$kode_table1[] = $item->kode_baru;
}
$callFunc = \Helper::hitungKeselarasan2($kode_table1, $kode_table2, $tahun, 'pm', 'rpjmd', 'rkpd_perubahan');
$keselarasan_program = $callFunc['hasil_keselarasan'];
$datas[] = [
"id" => $pd->id,
"nama" => $pd->nama_perangkat_daerah,
"table1" => $program_rpjmd->count(),
"table2" => $program_rkpd->count(),
"sesuai" => $keselarasan_program,
"selisih_table1" => ( $program_rpjmd->count() - $keselarasan_program),
"selisih_table2" => ( $program_rkpd->count() - $keselarasan_program),
];
}
}
$table1 = 0;
$table2 = 0;
$sesuai = 0;
$selisih_table1 = 0;
$selisih_table2 = 0;
foreach ($datas as $data) {
$table1 += $data['table1'];
$table2 += $data['table2'];
$sesuai += $data['sesuai'];
$selisih_table1 += $data['selisih_table1'];
$selisih_table2 += $data['selisih_table2'];
}
$total = [
'table1' => $table1,
'table2' => $table2,
'sesuai' => $sesuai,
'selisih_table1' => $selisih_table1,
'selisih_table2' => $selisih_table2,
];
$result = [
'total' => $total,
'datas' => $datas,
];
return $result;
}
public static function penjabaranDanKeselarasanProgramByPd($table1, $table2, $masterUrusan, $getTahun = null)
{
$tahun = ($getTahun) ?? date('Y');
$append1 = $table1;
$append2 = $table2;
if ($table1 == 'rkpd_perubahan') {
$append1 = 'rkpd';
}
if ($table2 == 'rkpd_perubahan') {
$append2 = 'rkpd';
}
if ($table1 == 'belanja_perubahan') {
$append1 = 'apbd';
}
if ($table2 == 'belanja_perubahan') {
$append2 = 'apbd';
}
$appendKeselarasan = $append1 . '_' . $append2;
$datas = [];
foreach ($masterUrusan as $mun) {
$data_pd = [];
$ttl_table1 = 0;
$ttl_table2 = 0;
$ttl_sesuai = 0;
$perangkatDaerah = PerangkatDaerah::whereHas('bidangUrusan', function($bun) use($mun) {
$bun->whereHas('masterBidangUrusan', function($mbun) use($mun) {
$mbun->where('master_urusan_id', $mun->id);
});
})->get();
foreach ($perangkatDaerah as $pd) {
// KESELARASAN PROGRAM Table1 - Table2
// Cari Data Program Sesuai Perangkat Daerah
$data_program = Program::where('tahun_upload', $tahun)->whereHas('bidangUrusan', function($bun) use($pd,$mun) {
$bun->whereHas('masterBidangUrusan', function($mbun) use($mun){
$mbun->where('master_urusan_id', $mun->id);
})->whereHas('perangkatDaerah', function($bun_pd) use($pd){
$bun_pd->where('perangkat_daerah_id', $pd->id);
});
})->whereIn('status', [$table1, $table2])->get();
$program_table1 = $data_program->where('status', $table1)->count();
$program_table2 = $data_program->where('status', $table2)->count();
// HASIL Keselerasan PROGRAM Table1 - Table2
$kode_table1 = [];
$kode_table2 = [];
foreach($data_program as $item){
if ($item->status == $table1) {
$kode_table1[] = $item->kode_baru;
}elseif($item->status == $table2) {
$kode_table2[] = $item->kode_baru;
}
}
$callFunc = \Helper::hitungKeselarasan2($kode_table1, $kode_table2, $tahun, 'pm', $table1, $table2);
$keselarasan_program = $callFunc['hasil_keselarasan'];
$data_pd[] = [
"id" => $pd->id,
"nama" => $pd->nama_perangkat_daerah,
"table1" => $program_table1,
"table2" => $program_table2,
"sesuai" => $keselarasan_program,
"selisih_table1" => ( $program_table1 - $keselarasan_program),
"selisih_table2" => ( $program_table2 - $keselarasan_program),
];
$ttl_table1 += $program_table1;
$ttl_table2 += $program_table2;
$ttl_sesuai += $keselarasan_program;
}
$datas[] = [
"id" => $mun->id,
"nama" => $mun->nama_urusan,
"table1" => $ttl_table1,
"table2" => $ttl_table2,
"sesuai" => $ttl_sesuai,
"selisih_table1" => ( $ttl_table1 - $ttl_sesuai),
"selisih_table2" => ( $ttl_table2 - $ttl_sesuai),
"data_pd" => $data_pd,
];
}
$table1 = 0;
$table2 = 0;
$sesuai = 0;
$selisih_table1 = 0;
$selisih_table2 = 0;
foreach ($datas as $data) {
$table1 += $data['table1'];
$table2 += $data['table2'];
$sesuai += $data['sesuai'];
$selisih_table1 += $data['selisih_table1'];
$selisih_table2 += $data['selisih_table2'];
}
$total = [
'table1' => $table1,
'table2' => $table2,
'sesuai' => $sesuai,
'selisih_table1' => $selisih_table1,
'selisih_table2' => $selisih_table2,
];
$result = [
'total' => $total,
'datas' => $datas,
];
return $result;
}
public static function penjabaranDanKeselarasanKegiatanByPd($table1, $table2, $masterUrusan, $getTahun = null)
{
$tahun = ($getTahun) ?? date('Y');
$append1 = $table1;
$append2 = $table2;
if ($table1 == 'rkpd_perubahan') {
$append1 = 'rkpd';
}
if ($table2 == 'rkpd_perubahan') {
$append2 = 'rkpd';
}
if ($table1 == 'belanja_perubahan') {
$append1 = 'apbd';
}
if ($table2 == 'belanja_perubahan') {
$append2 = 'apbd';
}
$appendKeselarasan = $append1 . '_' . $append2;
$datas = [];
foreach ($masterUrusan as $mun) {
$data_mbun = [];
$ttl_table1 = 0;
$ttl_table2 = 0;
$ttl_sesuai = 0;
$perangkatDaerah = PerangkatDaerah::whereHas('bidangUrusan', function($bun) use($mun) {
$bun->whereHas('masterBidangUrusan', function($mbun) use($mun) {
$mbun->where('master_urusan_id', $mun->id);
});
})->get();
foreach ($perangkatDaerah as $pd) {
// KESELARASAN Kegiatan Table1 - Table2
// Cari Data Kegiatan Sesuai Perangkat Daerah
$data_kegiatan = Kegiatan::where('tahun_upload', $tahun)->whereHas('program', function($pm)use($pd){
$pm->whereHas('bidangUrusan', function($bun) use($pd){
$bun->whereHas('perangkatDaerah', function($bun_pd) use($pd){
$bun_pd->where('perangkat_daerah_id', $pd->id);
});
});
})->whereIn('status', [$table1, $table2])->get();
$kegiatan_table1 = $data_kegiatan->where('status', $table1)->count();
$kegiatan_table2 = $data_kegiatan->where('status', $table2)->count();
// HASIL Keselerasan Kegiatan Table1 - Table2
$kode_table1 = [];
$kode_table2 = [];
foreach($data_kegiatan as $item){
if ($item->status == $table1) {
$kode_table1[] = $item->kode_baru;
}elseif($item->status == $table2) {
$kode_table2[] = $item->kode_baru;
}
}
$callFunc = \Helper::hitungKeselarasan2($kode_table1, $kode_table2, $tahun, 'pm', $table1, $table2);
$keselarasan_kegiatan = $callFunc['hasil_keselarasan'];
$data_pd[] = [
"id" => $pd->id,
"nama" => $pd->nama_perangkat_daerah,
"table1" => $kegiatan_table1,
"table2" => $kegiatan_table2,
"sesuai" => $keselarasan_kegiatan,
"selisih_table1" => ( $kegiatan_table1 - $keselarasan_kegiatan),
"selisih_table2" => ( $kegiatan_table2 - $keselarasan_kegiatan),
];
$ttl_table1 += $kegiatan_table1;
$ttl_table2 += $kegiatan_table2;
$ttl_sesuai += $keselarasan_kegiatan;
}
$datas[] = [
"id" => $mun->id,
"nama" => $mun->nama_urusan,
"table1" => $ttl_table1,
"table2" => $ttl_table2,
"sesuai" => $ttl_sesuai,
"selisih_table1" => ( $ttl_table1 - $ttl_sesuai),
"selisih_table2" => ( $ttl_table2 - $ttl_sesuai),
"data_pd" => $data_pd,
];
}
$table1 = 0;
$table2 = 0;
$sesuai = 0;
$selisih_table1 = 0;
$selisih_table2 = 0;
foreach ($datas as $data) {
$table1 += $data['table1'];
$table2 += $data['table2'];
$sesuai += $data['sesuai'];
$selisih_table1 += $data['selisih_table1'];
$selisih_table2 += $data['selisih_table2'];
}
$total = [
'table1' => $table1,
'table2' => $table2,
'sesuai' => $sesuai,
'selisih_table1' => $selisih_table1,
'selisih_table2' => $selisih_table2,
];
$result = [
'total' => $total,
'datas' => $datas,
];
return $result;
}
public static function penjabaranDanKeselarasanProgramRpjmd($perangkatDaerah, $getTahun = null)
{
$tahun = ($getTahun) ?? date('Y');
$datas = [];
$opd_gak_dipakai = [13, 22, 24, 26, 27, 29, 35];
$tes = [];
foreach ($perangkatDaerah as $pd) {
// KESELARASAN Program Table1 - Table2
// Cari Data Program Sesuai Perangkat Daerah
$program_rkpd = Program::where('tahun_upload', $tahun)->whereHas('bidangUrusan', function($bun) use($pd){
$bun->whereHas('perangkatDaerah', function($bun_pd) use($pd){
$bun_pd->where('perangkat_daerah_id', $pd->id);
});
})->whereIn('status', ['rkpd_perubahan'])->get();
$kode_table1 = [];
$kode_table2 = [];
if(in_array($pd->id, $opd_gak_dipakai) && $getTahun == '2022'){
$program_rkpd = collect();
}
foreach($program_rkpd as $item){
$kode_table2[] = $item->kode_baru;
}
$program_rpjmd = Program::where('tahun_upload', '2021')->whereHas('bidangUrusan', function($bun) use($pd){
$bun->whereHas('perangkatDaerah', function($bun_pd) use($pd){
$bun_pd->where('perangkat_daerah_id', $pd->id);
});
})->whereIn('status', ['rpjmd'])->get();
foreach($program_rpjmd as $item){
$kode_table1[] = $item->kode_baru;
}
// $tes = array_merge($tes, $kode_table1);
// if(in_array("2-13-programpemberdayaanlembagakemasyarakatan,lembagaadatdanmasyarakathukumadat", $kode_table1)){
// dd($pd);
// }
$callFunc = \Helper::hitungKeselarasan2($kode_table1, $kode_table2, $tahun, 'pm', 'rpjmd', 'rkpd_perubahan');
$keselarasan_program = $callFunc['hasil_keselarasan'];
$datas[] = [
"id" => $pd->id,
"nama" => $pd->nama_perangkat_daerah,
"table1" => $program_rpjmd->count(),
"table2" => $program_rkpd->count(),
"sesuai" => $keselarasan_program,
"selisih_table1" => ( $program_rpjmd->count() - $keselarasan_program),
"selisih_table2" => ( $program_rkpd->count() - $keselarasan_program),
];
}
// $dups = [];
// foreach(array_count_values($tes) as $val => $c){
// if($c > 1) $dups[] = $val;
// }
// dd($tes);
$table1 = 0;
$table2 = 0;
$sesuai = 0;
$selisih_table1 = 0;
$selisih_table2 = 0;
foreach ($datas as $data) {
$table1 += $data['table1'];
$table2 += $data['table2'];
$sesuai += $data['sesuai'];
$selisih_table1 += $data['selisih_table1'];
$selisih_table2 += $data['selisih_table2'];
}
$total = [
'table1' => $table1,
'table2' => $table2,
'sesuai' => $sesuai,
'selisih_table1' => $selisih_table1,
'selisih_table2' => $selisih_table2,
];
$result = [
'total' => $total,
'datas' => $datas,
];
return $result;
}
public static function penjabaranDanKeselarasanProgram($perangkatDaerah, $getTahun = null)
{
$tahun = ($getTahun) ?? date('Y');
$datas = [];
$opd_gak_dipakai = [13, 22, 24, 26, 27, 29, 35];
$tes = [];
foreach ($perangkatDaerah as $pd) {
if(in_array($pd->id, $opd_gak_dipakai) && $getTahun == '2022'){
continue;
}
// KESELARASAN Program Table1 - Table2
// Cari Data Program Sesuai Perangkat Daerah
$data_program = Program::where('tahun_upload', $tahun)->whereHas('bidangUrusan', function($bun) use($pd){
$bun->whereHas('perangkatDaerah', function($bun_pd) use($pd){
$bun_pd->where('perangkat_daerah_id', $pd->id);
});
})->whereIn('status', ['rkpd_perubahan', 'belanja_perubahan'])->get();
$program_table1 = $data_program->where('status', 'rkpd_perubahan')->count();
$program_table2 = $data_program->where('status', 'belanja_perubahan')->count();
// HASIL Keselerasan program Table1 - Table2
$kode_table1 = [];
$kode_table2 = [];
foreach($data_program as $item){
if ($item->status == 'rkpd_perubahan') {
$kode_table1[] = $item->kode_baru;
}elseif($item->status == 'belanja_perubahan') {
$kode_table2[] = $item->kode_baru;
}
}
// $tes = array_merge($tes, $kode_table1);
// if(in_array("2-13-programpemberdayaanlembagakemasyarakatan,lembagaadatdanmasyarakathukumadat", $kode_table1)){
// dd($pd);
// }
$callFunc = \Helper::hitungKeselarasan2($kode_table1, $kode_table2, $tahun, 'kn', 'rkpd_perubahan', 'belanja_perubahan');
$keselarasan_program = $callFunc['hasil_keselarasan'];
// $keselarasan_program = $data_program->where($appendKeselarasan, '1')->count() / 2;
$datas[] = [
"id" => $pd->id,
"nama" => $pd->nama_perangkat_daerah,
"table1" => $program_table1,
"table2" => $program_table2,
"sesuai" => $keselarasan_program,
"selisih_table1" => ( $program_table1 - $keselarasan_program),
"selisih_table2" => ( $program_table2 - $keselarasan_program),
];
}
// $dups = [];
// foreach(array_count_values($tes) as $val => $c){
// if($c > 1) $dups[] = $val;
// }
// dd($dups);
$table1 = 0;
$table2 = 0;
$sesuai = 0;
$selisih_table1 = 0;
$selisih_table2 = 0;
foreach ($datas as $data) {
$table1 += $data['table1'];
$table2 += $data['table2'];
$sesuai += $data['sesuai'];
$selisih_table1 += $data['selisih_table1'];
$selisih_table2 += $data['selisih_table2'];
}
$total = [
'table1' => $table1,
'table2' => $table2,
'sesuai' => $sesuai,
'selisih_table1' => $selisih_table1,
'selisih_table2' => $selisih_table2,
];
$result = [
'total' => $total,
'datas' => $datas,
];
return $result;
}
public static function penjabaranDanKeselarasanKegiatan($perangkatDaerah, $getTahun = null)
{
$tahun = ($getTahun) ?? date('Y');
$datas = [];
$opd_gak_dipakai = [13, 22, 24, 26, 27, 29, 35];
foreach ($perangkatDaerah as $pd) {
if(in_array($pd->id, $opd_gak_dipakai) && $getTahun == '2022'){
continue;
}
// KESELARASAN Kegiatan Table1 - Table2
// Cari Data Kegiatan Sesuai Perangkat Daerah
$data_kegiatan = Kegiatan::where('tahun_upload', $tahun)->whereHas('program', function($pm)use($pd){
$pm->whereHas('bidangUrusan', function($bun) use($pd){
$bun->whereHas('perangkatDaerah', function($bun_pd) use($pd){
$bun_pd->where('perangkat_daerah_id', $pd->id);
});
});
})->whereIn('status', ['rkpd_perubahan', 'belanja_perubahan'])->get();
$kegiatan_table1 = $data_kegiatan->where('status', 'rkpd_perubahan')->count();
$kegiatan_table2 = $data_kegiatan->where('status', 'belanja_perubahan')->count();
// HASIL Keselerasan Kegiatan Table1 - Table2
$kode_table1 = [];
$kode_table2 = [];
foreach($data_kegiatan as $item){
if ($item->status == 'rkpd_perubahan') {
$kode_table1[] = $item->kode_baru;
}elseif($item->status == 'belanja_perubahan') {
$kode_table2[] = $item->kode_baru;
}
}
$callFunc = \Helper::hitungKeselarasan2($kode_table1, $kode_table2, $tahun, 'kn', 'rkpd_perubahan', 'belanja_perubahan');
$keselarasan_kegiatan = $callFunc['hasil_keselarasan'];
// $keselarasan_kegiatan = $data_kegiatan->where($appendKeselarasan, '1')->count() / 2;
$datas[] = [
"id" => $pd->id,
"nama" => $pd->nama_perangkat_daerah,
"table1" => $kegiatan_table1,
"table2" => $kegiatan_table2,
"sesuai" => $keselarasan_kegiatan,
"selisih_table1" => ( $kegiatan_table1 - $keselarasan_kegiatan),
"selisih_table2" => ( $kegiatan_table2 - $keselarasan_kegiatan),
];
}
$table1 = 0;
$table2 = 0;
$sesuai = 0;
$selisih_table1 = 0;
$selisih_table2 = 0;
foreach ($datas as $data) {
$table1 += $data['table1'];
$table2 += $data['table2'];
$sesuai += $data['sesuai'];
$selisih_table1 += $data['selisih_table1'];
$selisih_table2 += $data['selisih_table2'];
}
$total = [
'table1' => $table1,
'table2' => $table2,
'sesuai' => $sesuai,
'selisih_table1' => $selisih_table1,
'selisih_table2' => $selisih_table2,
];
$result = [
'total' => $total,
'datas' => $datas,
];
return $result;
}
public static function penjabaranDanKeselarasanSubKegiatan($perangkatDaerah, $getTahun = null)
{
$tahun = ($getTahun) ?? date('Y');
$datas = [];
$tidak_selaras[0] = [];
$i = 0;
$opd_gak_dipakai = [13, 22, 24, 26, 27, 29, 35];
foreach ($perangkatDaerah as $pd) {
if(in_array($pd->id, $opd_gak_dipakai) && $getTahun == '2022'){
continue;
}
// KESELARASAN Sub Kegiatan Table1 - Table2
// Cari Data Sub Kegiatan Sesuai Perangkat Daerah
$data_sub_kegiatan = SubKegiatan::where('tahun_upload', $tahun)->whereHas('kegiatan', function($kn) use($pd){
$kn->whereHas('program', function($pm) use($pd){
$pm->whereHas('bidangUrusan', function($bun) use($pd){
$bun->whereHas('perangkatDaerah', function($bun_pd) use($pd){
$bun_pd->where('perangkat_daerah_id', $pd->id);
});
});
});
})->whereIn('status', ['rkpd_perubahan', 'belanja_perubahan'])->get();
$sub_kegiatan_table1 = $data_sub_kegiatan->where('status', 'rkpd_perubahan')->count();
$sub_kegiatan_table2 = $data_sub_kegiatan->where('status', 'belanja_perubahan')->count();
// HASIL Keselerasan Sub Kegiatan Table1 - Table2
$kode_table1 = [];
$kode_table2 = [];
foreach($data_sub_kegiatan as $item){
if ($item->status == 'rkpd_perubahan') {
$kode_table1[] = $item->kode_baru;
}elseif($item->status == 'belanja_perubahan') {
$kode_table2[] = $item->kode_baru;
}
}
$callFunc = \Helper::hitungKeselarasan2($kode_table1, $kode_table2, $tahun, 'sk', 'rkpd_perubahan', 'belanja_perubahan');
$keselarasan_sub_kegiatan = $callFunc['hasil_keselarasan'];
// $keselarasan_kegiatan = $data_kegiatan->where($appendKeselarasan, '1')->count() / 2;
$datas[] = [
"id" => $pd->id,
"nama" => $pd->nama_perangkat_daerah,
"table1" => $sub_kegiatan_table1,
"table2" => $sub_kegiatan_table2,
"sesuai" => $keselarasan_sub_kegiatan,
"selisih_table1" => ( $sub_kegiatan_table1 - $keselarasan_sub_kegiatan),
"selisih_table2" => ( $sub_kegiatan_table2 - $keselarasan_sub_kegiatan),
];
}
$table1 = 0;
$table2 = 0;
$sesuai = 0;
$selisih_table1 = 0;
$selisih_table2 = 0;
foreach ($datas as $data) {
$table1 += $data['table1'];
$table2 += $data['table2'];
$sesuai += $data['sesuai'];
$selisih_table1 += $data['selisih_table1'];
$selisih_table2 += $data['selisih_table2'];
}
$total = [
'table1' => $table1,
'table2' => $table2,
'sesuai' => $sesuai,
'selisih_table1' => $selisih_table1,
'selisih_table2' => $selisih_table2,
];
$result = [
'total' => $total,
'datas' => $datas,
];
return $result;
}
public static function penjabaranDanKeselarasanSubKegiatanByPd($table1, $table2, $masterUrusan, $getTahun = null)
{
$tahun = ($getTahun) ?? date('Y');
$append1 = $table1;
$append2 = $table2;
if ($table1 == 'rkpd_perubahan') {
$append1 = 'rkpd';
}
if ($table2 == 'rkpd_perubahan') {
$append2 = 'rkpd';
}
if ($table1 == 'belanja_perubahan') {
$append1 = 'apbd';
}
if ($table2 == 'belanja_perubahan') {
$append2 = 'apbd';
}
$appendKeselarasan = $append1 . '_' . $append2;
$datas = [];
foreach ($masterUrusan as $mun) {
$data_mbun = [];
$ttl_table1 = 0;
$ttl_table2 = 0;
$ttl_sesuai = 0;
$perangkatDaerah = PerangkatDaerah::whereHas('bidangUrusan', function($bun) use($mun) {
$bun->whereHas('masterBidangUrusan', function($mbun) use($mun) {
$mbun->where('master_urusan_id', $mun->id);
});
})->get();
foreach ($perangkatDaerah as $pd) {
// KESELARASAN Kegiatan Table1 - Table2
// Cari Data Kegiatan Sesuai Perangkat Daerah
$data_sub_kegiatan = SubKegiatan::where('tahun_upload', $tahun)->whereHas('kegiatan', function($kn) use($pd){
$kn->whereHas('program', function($pm) use($pd){
$pm->whereHas('bidangUrusan', function($bun) use($pd){
$bun->whereHas('perangkatDaerah', function($bun_pd) use($pd){
$bun_pd->where('perangkat_daerah_id', $pd->id);
});
});
});
})->whereIn('status', [$table1, $table2])->get();
$sub_kegiatan_table1 = $data_sub_kegiatan->where('status', $table1)->count();
$sub_kegiatan_table2 = $data_sub_kegiatan->where('status', $table2)->count();
// HASIL Keselerasan Kegiatan Table1 - Table2
$kode_table1 = [];
$kode_table2 = [];
foreach($data_sub_kegiatan as $item){
if ($item->status == $table1) {
$kode_table1[] = $item->kode_baru;
}elseif($item->status == $table2) {
$kode_table2[] = $item->kode_baru;
}
}
$callFunc = \Helper::hitungKeselarasan2($kode_table1, $kode_table2, $tahun, 'sk', $table1, $table2);
$keselarasan_sub_kegiatan = $callFunc['hasil_keselarasan'];
$data_pd[] = [
"id" => $pd->id,
"nama" => $pd->nama_perangkat_daerah,
"table1" => $sub_kegiatan_table1,
"table2" => $sub_kegiatan_table2,
"sesuai" => $keselarasan_sub_kegiatan,
"selisih_table1" => ( $sub_kegiatan_table1 - $keselarasan_sub_kegiatan),
"selisih_table2" => ( $sub_kegiatan_table2 - $keselarasan_sub_kegiatan),
];
$ttl_table1 += $sub_kegiatan_table1;
$ttl_table2 += $sub_kegiatan_table2;
$ttl_sesuai += $keselarasan_sub_kegiatan;
}
$datas[] = [
"id" => $mun->id,
"nama" => $mun->nama_urusan,
"table1" => $ttl_table1,
"table2" => $ttl_table2,
"sesuai" => $ttl_sesuai,
"selisih_table1" => ( $ttl_table1 - $ttl_sesuai),
"selisih_table2" => ( $ttl_table2 - $ttl_sesuai),
"data_pd" => $data_pd,
];
}
$table1 = 0;
$table2 = 0;
$sesuai = 0;
$selisih_table1 = 0;
$selisih_table2 = 0;
foreach ($datas as $data) {
$table1 += $data['table1'];
$table2 += $data['table2'];
$sesuai += $data['sesuai'];
$selisih_table1 += $data['selisih_table1'];
$selisih_table2 += $data['selisih_table2'];
}
$total = [
'table1' => $table1,
'table2' => $table2,
'sesuai' => $sesuai,
'selisih_table1' => $selisih_table1,
'selisih_table2' => $selisih_table2,
];
$result = [
'total' => $total,
'datas' => $datas,
];
return $result;
}
/**
* Digunakan Untuk Mencari Data RKPD Lama di Menu Rician RKPD PERUBAHAN
*/
public static function findRkpd($kode, $table, $tahun)
{
if($table == 'bun'){
$rkpd = BidangUrusan::where('kode', $kode)->where('status', 'rkpd_perubahan')->whereNotNull('pagu_indikatif')->where('tahun_upload', $tahun)->first();
}elseif($table == 'pm'){
$rkpd = Program::where('kode', $kode)->where('status', 'rkpd_perubahan')->whereNotNull('pagu_indikatif')->where('tahun_upload', $tahun)->first();
}elseif($table == 'kn'){
$rkpd = Kegiatan::where('kode', $kode)->where('status', 'rkpd_perubahan')->whereNotNull('pagu_indikatif')->where('tahun_upload', $tahun)->first();
}elseif($table == 'sk'){
$rkpd = SubKegiatan::where('kode', $kode)->where('status', 'rkpd_perubahan')->whereNotNull('pagu_indikatif')->where('tahun_upload', $tahun)->first();
}
return ($rkpd) ?? '-';
}
public static function findApbd($kode, $table, $tahun = null)
{
if (!$tahun) {
$tahun = date("Y");
}
if($table == 'un'){
$apbd = Urusan::where('kode', $kode)->where('status', 'belanja_perubahan')->whereNotNull('jumlah_belanja')->where('tahun_upload', $tahun)->first();
}elseif($table == 'bun'){
$apbd = BidangUrusan::where('kode', $kode)->where('status', 'belanja_perubahan')->whereNotNull('jumlah_belanja')->where('tahun_upload', $tahun)->first();
}elseif($table == 'pm'){
$apbd = Program::where('kode', $kode)->where('status', 'belanja_perubahan')->whereNotNull('jumlah_belanja')->where('tahun_upload', $tahun)->first();
}elseif($table == 'kn'){
$apbd = Kegiatan::where('kode', $kode)->where('status', 'belanja_perubahan')->whereNotNull('jumlah_belanja')->where('tahun_upload', $tahun)->first();
}elseif($table == 'sk'){
$apbd = SubKegiatan::where('kode', $kode)->where('status', 'belanja_perubahan')->whereNotNull('jumlah_belanja')->where('tahun_upload', $tahun)->first();
}
return ($apbd) ?? '-';
}
/**
* Digunakan Untuk Mencari Renstra (Tolak Ukur) Berdasarkan Table
*/
public static function findRenstraTk($nama, $table, $pd)
{
$tk = '';
if ($table == "pm") {
$tk = RenstraProgram::where('nama_renstra', $nama)->where('perangkat_daerah_id', $pd)->first();
}elseif ($table == "kn") {
$tk = RenstraKegiatan::where('nama_renstra', $nama)->whereHas('renstraProgram', function($pm) use($pd){
$pm->where('perangkat_daerah_id', $pd);
})->first();
}elseif ($table == "sk") {
$tk = RenstraSubKegiatan::where('nama_renstra', $nama)->whereHas('renstraKegiatan', function($kn) use($pd){
$kn->whereHas('renstraProgram', function($pm) use($pd){
$pm->where('perangkat_daerah_id', $pd);
});
})->first();
}
return ($tk) ? $tk->indikator_kinerja : '';
}
/**
* Digunakan Untuk Mencari Renstra (Target) Berdasarkan Table
*/
public static function findRenstraT($nama, $table, $tahun, $pd)
{
$tk = '';
if ($table == "pm") {
$tk = RenstraProgram::where('nama_renstra', $nama)->where('perangkat_daerah_id', $pd)->first();
}elseif ($table == "kn") {
$tk = RenstraKegiatan::where('nama_renstra', $nama)->whereHas('renstraProgram', function($pm) use($pd){
$pm->where('perangkat_daerah_id', $pd);
})->first();
}elseif ($table == "sk") {
$tk = RenstraSubKegiatan::where('nama_renstra', $nama)->whereHas('renstraKegiatan', function($kn) use($pd){
$kn->whereHas('renstraProgram', function($pm) use($pd){
$pm->where('perangkat_daerah_id', $pd);
});
})->first();
}
if ($tk) {
$kurang = $tahun - $tk->tahun_upload;
if ($kurang == 0) {
return $tk->kondisi_awal_1;
}
if ($kurang == 1) {
return $tk->c_rp_1;
}
if ($kurang == 2) {
return $tk->c_rp_2;
}
if ($kurang == 3) {
return $tk->c_rp_3;
}
if ($kurang == 4) {
return $tk->c_rp_4;
}
if ($kurang == 5) {
return $tk->c_rp_5;
}
return '';
}
return '';
}
/**
* Digunakan Untuk Mencari Indikaotr Data RPJMD yang berhubungan dengan data Evaluasi
*/
public static function findIndikatorRkpd($data, $table, $tahun, $debug = false)
{
$indikator = "";
if(!$data){
return null;
}
if ($table == 'pm') {
$rkpd = Program::where('status', 'rkpd_perubahan')->where('kode_baru', $data->kode_baru)->where('tahun_upload', $tahun)->first();
if ($rkpd) {
// $indikator = $rkpd->k_tolak_ukur;
$indikator = $rkpd->indikator;
}
}
if ($table == 'kn') {
$rkpd = Kegiatan::where('status', 'rkpd_perubahan')->where('kode_baru', $data->kode_baru)->where('tahun_upload', $tahun)->first();
if ($rkpd) {
// $indikator = $rkpd->k_tolak_ukur;
$indikator = $rkpd->indikator;
}
}
if ($table == 'sk') {
$rkpd = SubKegiatan::where('status', 'rkpd_perubahan')->where('kode_baru', $data->kode_baru)->where('tahun_upload', $tahun)->first();
if ($rkpd) {
$indikator = $rkpd->indikator;
}
}
if($indikator != ""){
return $indikator;
}else{
return [];
}
}
/**
* Digunakan Untuk Mencari Indikaotr Data RPJMD yang berhubungan dengan data Evaluasi
*/
public static function findIndikatorRpjmd($data, $table, $tahun, $debug = false)
{
$indikator = "";
if ($table == 'pm') {
$nama_program = trim(preg_replace('/\s+/', ' ', $data->nama_program));
$rpjmd = Program::where('status', 'rpjmd')->where('kode_baru', $data->kode_baru)->first();
if ($rpjmd) {
$cariTahun = $tahun - $rpjmd->tahun_upload;
foreach ($rpjmd->detailProgram as $detailProgram) {
$value_target = $detailProgram->indikator_kinerja . "<br> <br>";
$indikator = $indikator . $value_target;
}
}
}
return $indikator;
}
/**
* Digunakan Untuk Mencari Indikaotr Data RPJMD yang berhubungan dengan data Evaluasi
*/
public static function findKTargetRkpd($data, $table, $tahun, $debug = false)
{
$indikator = "";
if(!$data){
return null;
}
if ($table == 'pm') {
$rkpd = Program::where('status', 'rkpd_perubahan')->where('kode_baru', $data->kode_baru)->where('tahun_upload', $tahun)->first();
if ($rkpd) {
$indikator = $rkpd->k_target;
}
}
if ($table == 'kn') {
$rkpd = Kegiatan::where('status', 'rkpd_perubahan')->where('kode_baru', $data->kode_baru)->where('tahun_upload', $tahun)->first();
if ($rkpd) {
$indikator = $rkpd->k_target;
}
}
return $indikator;
}
/**
* Digunakan Untuk Mencari Realisasi RKPD yang berhubungan dengan data Evaluasi
*/
public static function findRealisasiRkpd($data, $table, $tahun, $debug = false)
{
$indikator = "";
if(!$data){
return null;
}
if ($table == 'pm') {
$rkpd = Program::where('status', 'rkpd_perubahan')->where('kode_baru', $data->kode_baru)->where('tahun_upload', $tahun)->first();
if ($rkpd) {
$indikator = $rkpd->realisasi_target;
}
}
if ($table == 'kn') {
$rkpd = Kegiatan::where('status', 'rkpd_perubahan')->where('kode_baru', $data->kode_baru)->where('tahun_upload', $tahun)->first();
if ($rkpd) {
$indikator = $rkpd;
}
}
return $indikator;
}
/**
* Digunakan Untuk Mencari K Target (Akhir) Data RPJMD yang berhubungan dengan data Evaluasi
*/
public static function findKTargetRpjmd($data, $table, $tahun, $debug = false)
{
$k_target = "";
if ($table == 'pm') {
$nama_program = trim(preg_replace('/\s+/', ' ', $data->nama_program));
$rpjmd = Program::where('status', 'rpjmd')->where('kode_baru', $data->kode_baru)->first();
if ($rpjmd) {
$cariTahun = $tahun - $rpjmd->tahun_upload;
foreach ($rpjmd->detailProgram as $detailProgram) {
if($cariTahun == 0){
$value_target = $detailProgram->kondisi_awal_0 . "<br> <br>";
}elseif($cariTahun == 1){
$value_target = $detailProgram->kondisi_awal_1 . "<br> <br>";
}elseif($cariTahun == 2){
$value_target = $detailProgram->c_target_1 . "<br> <br>";
}elseif($cariTahun == 3){
$value_target = $detailProgram->c_target_2 . "<br> <br>";
}elseif($cariTahun == 4){
$value_target = $detailProgram->c_target_3 . "<br> <br>";
}elseif($cariTahun == 5){
$value_target = $detailProgram->c_target_4 . "<br> <br>";
}elseif($cariTahun == 6){
$value_target = $detailProgram->c_target_5 . "<br> <br>";
}
$k_target = $k_target . $value_target;
}
}
}
if ($table == 'bun') {
foreach ($data->program as $pm) {
$nama_program = trim(preg_replace('/\s+/', ' ', $pm->nama_program));
$rpjmd = Program::where('status', 'rpjmd')->where('tahun_upload', $tahun)->where('nama_program', $nama_program)->get();
$rpjm = $rpjmd->where('pd', $pm->bidangUrusan->urusan->perangkatDaerah->kode)->first();
if ($rpjm) {
$k_target += $rpjm->total_akhir_k_detail_program;
}
}
}
if ($table == 'un') {
foreach ($data->bidangUrusan as $bun) {
foreach ($bun->program as $pm) {
$nama_program = trim(preg_replace('/\s+/', ' ', $pm->nama_program));
$rpjmd = Program::where('status', 'rpjmd')->where('tahun_upload', $tahun)->where('nama_program', $nama_program)->get();
$rpjm = $rpjmd->where('pd', $pm->bidangUrusan->urusan->perangkatDaerah->kode)->first();
if ($rpjm) {
$k_target += $rpjm->total_akhir_k_detail_program;
}
}
}
}
return $k_target;
}
/**
* Digunakan Untuk Mencari Rp Target Data RPJMD yang berhubungan dengan data Evaluasi
*/
public static function findRpTargetRpjmd($data, $table, $tahun)
{
$k_target = 0;
if ($table == 'pm') {
$nama_program = trim(preg_replace('/\s+/', ' ', $data->nama_program));
$rpjmd = Program::where('status', 'rpjmd')->where('tahun_upload', $tahun)->where('nama_program', $nama_program)->get();
$rpjm = $rpjmd->where('pd', $data->bidangUrusan->urusan->perangkatDaerah->kode)->first();
if ($rpjm) {
$k_target += $rpjm->total_akhir_rp_detail_program;
}
}
if ($table == 'bun') {
foreach ($data->program as $pm) {
$nama_program = trim(preg_replace('/\s+/', ' ', $pm->nama_program));
$rpjmd = Program::where('status', 'rpjmd')->where('tahun_upload', $tahun)->where('nama_program', $nama_program)->get();
$rpjm = $rpjmd->where('pd', $pm->bidangUrusan->urusan->perangkatDaerah->kode)->first();
if ($rpjm) {
$k_target += $rpjm->total_akhir_rp_detail_program;
}
}
}
if ($table == 'un') {
foreach ($data->bidangUrusan as $bun) {
foreach ($bun->program as $pm) {
$nama_program = trim(preg_replace('/\s+/', ' ', $pm->nama_program));
$rpjmd = Program::where('status', 'rpjmd')->where('tahun_upload', $tahun)->where('nama_program', $nama_program)->get();
$rpjm = $rpjmd->where('pd', $pm->bidangUrusan->urusan->perangkatDaerah->kode)->first();
if ($rpjm) {
$k_target += $rpjm->total_akhir_rp_detail_program;
}
}
}
}
return $k_target;
}
/**
* Digunakan Untuk Mencari Realisasi Kinerja Tahun Lalu
*/
public static function findRealisasiTahunLalu($kode, $table, $tahun)
{
$realisasi = [];
if ($table == 'un') {
$realisasi = Urusan::where('kode', $kode)->where('tahun_upload', $tahun)->where('status', 'belanja_perubahan')->first();
}elseif($table == 'bun'){
$realisasi = BidangUrusan::where('kode', $kode)->where('tahun_upload', $tahun)->where('status', 'belanja_perubahan')->first();
}elseif($table == 'pm'){
$realisasi = Program::where('kode', $kode)->where('tahun_upload', $tahun)->where('status', 'belanja_perubahan')->first();
}elseif($table == 'kn'){
$realisasi = Kegiatan::where('kode', $kode)->where('tahun_upload', $tahun)->where('status', 'belanja_perubahan')->first();
}elseif($table == 'sk'){
$realisasi = SubKegiatan::where('kode', $kode)->where('tahun_upload', $tahun)->where('status', 'belanja_perubahan')->first();
}
return ($realisasi) ?? '-';
}
public static function numberToRoman($number) {
$map = array('M' => 1000, 'CM' => 900, 'D' => 500, 'CD' => 400, 'C' => 100, 'XC' => 90, 'L' => 50, 'XL' => 40, 'X' => 10, 'IX' => 9, 'V' => 5, 'IV' => 4, 'I' => 1);
$returnValue = '';
while ($number > 0) {
foreach ($map as $roman => $int) {
if($number >= $int) {
$number -= $int;
$returnValue .= $roman;
break;
}
}
}
return $returnValue;
}
public static function checkIfNotSame($string1, $string2)
{
// Hilangkan Spasi
// Hilangkan Enter
// Str To Lower
return str_replace(" ", "", trim(preg_replace('/\s+/', '', strtolower(@$string1)))) != str_replace(" ", "", trim(preg_replace('/\s+/', '', strtolower($string2))));
}
public static function checkIfImage($path){
$imageExtensions = ['jpg', 'jpeg', 'gif', 'png', 'bmp', 'svg', 'svgz', 'cgm', 'djv', 'djvu', 'ico', 'ief','jpe', 'pbm', 'pgm', 'pnm', 'ppm', 'ras', 'rgb', 'tif', 'tiff', 'wbmp', 'xbm', 'xpm', 'xwd'];
$explodeImage = explode('.', $path);
$extension = end($explodeImage);
if(in_array($extension, $imageExtensions))
{
return true;
}else
{
return false;
}
}
public static function getExtension($path){
$imageExtensions = ['jpg', 'jpeg', 'gif', 'png', 'bmp', 'svg', 'svgz', 'cgm', 'djv', 'djvu', 'ico', 'ief','jpe', 'pbm', 'pgm', 'pnm', 'ppm', 'ras', 'rgb', 'tif', 'tiff', 'wbmp', 'xbm', 'xpm', 'xwd'];
$explodeImage = explode('.', $path);
$extension = end($explodeImage);
return $extension;
}
public static function clean($string)
{
// Hilangkan Spasi
// Hilangkan Enter
// Str To Lower
try {
$result = str_replace(" ", "", trim(preg_replace('/\s+/', '', strtolower($string))));
$result = str_replace(",",".",$result);
return round($result, 2);
} catch (\Throwable $th) {
$integer = 0;
$cleanEnter = trim(preg_replace('/\s+/', ' ', $string));
$seperate = explode(' ', $cleanEnter);
for ($i=0; $i < count($seperate); $i++) {
$integer += (int) filter_var( $seperate[$i], FILTER_SANITIZE_NUMBER_INT);
}
return $integer;
$result = ($integer) ? $this->k_tri_4 / $integer * 100 : 0;
return ltrim(\Helper::removeString($string), '-');
}
}
public static function removeString($string)
{
return $result = preg_replace('/[^.0-9]/', '', $string);
}
public static function removeEnterAndSpace($string)
{
// Hilangkan Spasi
// Hilangkan Enter
$result = trim(preg_replace('/\s+/', ' ', $string));
$result = str_replace(' ', '', $result);
return strtolower($result);
}
public static function removeEnter($string)
{
// Hilangkan Enter
return $result = trim(preg_replace('/\s+/', ' ', $string));
}
// Bulan ini triwulan berapa ?
public static function hitungTriwulan()
{
$month = date('m');
$result = 'tri1';
if ($month < 4) {
return $result = 'tri1';
} else if ($month < 7) {
return $result = 'tri2';
} else if ($month < 10) {
return $result = 'tri3';
} else {
return $result = 'tri4';
}
return $result;
}
public static function hitungPredikat($persen)
{
if ($persen <= 50.99 ) {
$predikat = 'SR';
}elseif ($persen <= 65.99 ) {
$predikat = 'R';
}elseif ($persen <= 75.99 ) {
$predikat = 'S';
}elseif ($persen <= 90.99 ) {
$predikat = 'T';
}else{
$predikat = 'ST';
}
return $predikat;
}
public static function judulUntukPasal($pasal = null){
$title = '';
if($pasal){
$findPasal = UraianPasal::find($pasal);
$title = ' Untuk ' . $findPasal->NomorPasal->pasal . ' ' . $findPasal->kode_uraian . '. ' . $findPasal->NomorPasal->desc;
}
return $title;
}
public static function checkIfDokumenEvaluasiUploaded($sk_id, $triwulan){
$files = EvaluasiFile::where('sub_kegiatan_id',$sk_id)->get();
if ($files->where('triwulan', $triwulan)->count() > 0) {
return 'btn-success';
}else{
return 'btn-danger';
}
}
public static function getTotalAnggaran(){
$opd = Opd::all()->map(function($item,$key){
return $item->anggaran;
})->sum();
return $opd;
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]