Skip to content

Commit 5c8e3fb

Browse files
committed
Refactor various models and metrics to utilize optional helper methods for improved null safety and code clarity
1 parent e0159c3 commit 5c8e3fb

36 files changed

+236
-251
lines changed

app/Helpers/Cetak.php

Lines changed: 102 additions & 102 deletions
Large diffs are not rendered by default.

app/Helpers/Helper.php

Lines changed: 34 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -549,9 +549,9 @@ public static function formatDaftarNama($nama)
549549
$index = 1;
550550

551551
for ($i = 0; $i < count($nama); $i += 2) {
552-
$nama1 = Helper::getPegawaiByUserId($nama[$i]['peserta_user_id'])->name;
552+
$nama1 = self::getPegawaiByUserId($nama[$i]['peserta_user_id'])->name;
553553
$unit_kerja1 = 'BPS '.config('satker.kabupaten');
554-
$nama2 = isset($nama[$i + 1]) ? Helper::getPegawaiByUserId($nama[$i + 1]['peserta_user_id'])->name : '';
554+
$nama2 = isset($nama[$i + 1]) ? self::getPegawaiByUserId($nama[$i + 1]['peserta_user_id'])->name : '';
555555
$unit_kerja2 = isset($nama[$i + 1]) ? 'BPS '.config('satker.kabupaten') : '';
556556

557557
$daftar[] = [
@@ -690,25 +690,25 @@ public static function nomor($tanggal, $jenis_naskah_id, $unit_kerja_id = null,
690690
$replaces['<bulan>'] = $bulan;
691691

692692
$jenis_naskah = JenisNaskah::cache()->get('all')->where('id', $jenis_naskah_id)->first();
693-
$kode_naskah_id = self::getPropertyFromCollection($jenis_naskah, 'kode_naskah_id');
693+
$kode_naskah_id = optional($jenis_naskah)->kode_naskah_id;
694694
$kode_naskah = KodeNaskah::cache()->get('all')->where('id', $kode_naskah_id)->first();
695695

696696
if ($unit_kerja_id !== null) {
697697
$unit_kerja = UnitKerja::cache()->get('all')->where('id', $unit_kerja_id)->first();
698-
$replaces['<kode_unit_kerja>'] = self::getPropertyFromCollection($unit_kerja, 'kode');
698+
$replaces['<kode_unit_kerja>'] = optional($unit_kerja)->kode;
699699
}
700700

701701
if ($kode_arsip_id !== null) {
702702
$kode_arsip = KodeArsip::cache()->get('all')->where('id', $kode_arsip_id)->first();
703-
$replaces['<kode_arsip>'] = self::getPropertyFromCollection($kode_arsip, 'kode');
703+
$replaces['<kode_arsip>'] = optional($kode_arsip)->kode;
704704
}
705705

706706
if ($derajat_naskah_id !== null) {
707707
$derajat_naskah = DerajatNaskah::cache()->get('all')->where('id', $derajat_naskah_id)->first();
708-
$replaces['<derajat>'] = self::getPropertyFromCollection($derajat_naskah, 'kode');
708+
$replaces['<derajat>'] = optional($derajat_naskah)->kode;
709709
}
710710

711-
$naskah = NaskahKeluar::whereYear('tanggal', $tahun)->where('kode_naskah_id', self::getPropertyFromCollection($kode_naskah, 'id'));
711+
$naskah = NaskahKeluar::whereYear('tanggal', $tahun)->where('kode_naskah_id', optional($kode_naskah)->id);
712712
$max_no_urut = $naskah->max('no_urut') ?? 0;
713713
$max_tanggal = $naskah->max('tanggal') ?? '1970-01-01';
714714

@@ -718,20 +718,20 @@ public static function nomor($tanggal, $jenis_naskah_id, $unit_kerja_id = null,
718718
} else {
719719
$no_urut = $naskah->whereDate('tanggal', '<=', $tanggal)->max('no_urut') ?? 1;
720720
$segmen = NaskahKeluar::whereYear('tanggal', $tahun)
721-
->where('kode_naskah_id', self::getPropertyFromCollection($kode_naskah, 'id'))
721+
->where('kode_naskah_id', optional($kode_naskah)->id)
722722
->where('no_urut', $no_urut)
723723
->max('segmen') + 1;
724724
}
725725

726726
$replaces['<no_urut>'] = ($segmen > 0) ? "{$no_urut}.{$segmen}" : $no_urut;
727-
$format = self::getPropertyFromCollection($kode_naskah, 'format');
727+
$format = optional($kode_naskah)->format;
728728
$nomor = strtr($format, $replaces);
729729

730730
return [
731731
'nomor' => $nomor,
732732
'no_urut' => $no_urut,
733733
'segmen' => $segmen,
734-
'kode_naskah_id' => self::getPropertyFromCollection($kode_naskah, 'id'),
734+
'kode_naskah_id' => optional($kode_naskah)->id,
735735
];
736736
}
737737

@@ -757,7 +757,7 @@ public static function getUsersByPengelola($role, $tanggal)
757757
if ($role === 'koordinator') {
758758
$usersIdByUnitKerja = DataPegawai::cache()
759759
->get('all')
760-
->where('unit_kerja_id', self::getPropertyFromCollection(self::getDataPegawaiByUserId(Auth::user()->id, $tanggal), 'unit_kerja_id'))
760+
->where('unit_kerja_id', optional(self::getDataPegawaiByUserId(Auth::user()->id, $tanggal))->unit_kerja_id)
761761
->where('tanggal', '<=', $tanggal)
762762
->pluck('user_id')
763763
->toArray();
@@ -1057,7 +1057,7 @@ public static function formatAnggaran($anggaran)
10571057
{
10581058
$spek = collect($anggaran);
10591059
$spek->transform(function ($item, $index) {
1060-
$item['mak'] = self::getPropertyFromCollection(self::getMataAnggaranById($item['mata_anggaran_id']), 'mak')."\r\n".self::getPropertyFromCollection(self::getMataAnggaranById($item['mata_anggaran_id']), 'uraian');
1060+
$item['mak'] = optional(self::getMataAnggaranById($item['mata_anggaran_id']))->mak."\r\n".optional(self::getMataAnggaranById($item['mata_anggaran_id']))->uraian;
10611061
$item['anggaran_no'] = $index + 1;
10621062
$item['perkiraan'] = self::formatRupiah($item['perkiraan']);
10631063

@@ -1074,7 +1074,7 @@ public static function formatBarangPersediaan($bastp)
10741074
$item['no'] = $index + 1;
10751075
$item['harga_satuan'] = self::formatRupiah($item['harga_satuan']);
10761076
$item['total_harga'] = self::formatRupiah($item['total_harga']);
1077-
$item['kode'] = self::getPropertyFromCollection(self::getMasterPersediaanById($item['master_persediaan_id']), 'kode');
1077+
$item['kode'] = optional(self::getMasterPersediaanById($item['master_persediaan_id']))->kode;
10781078

10791079
return $item;
10801080
});
@@ -1191,10 +1191,10 @@ public static function formatMitra($mitra)
11911191
$mitra->transform(function ($item, $index) {
11921192
$mitra = self::getMitraById($item['mitra_id']);
11931193
$item['nip'] = '-';
1194-
$item['nama'] = self::getPropertyFromCollection($mitra, 'nama');
1195-
$item['nip_lama'] = self::getPropertyFromCollection($mitra, 'nik');
1196-
$item['rekening'] = self::getPropertyFromCollection($mitra, 'rekening');
1197-
$item['kode_bank_id'] = self::getPropertyFromCollection($mitra, 'kode_bank_id');
1194+
$item['nama'] = optional($mitra)->nama;
1195+
$item['nip_lama'] = optional($mitra)->nik;
1196+
$item['rekening'] = optional($mitra)->rekening;
1197+
$item['kode_bank_id'] = optional($mitra)->kode_bank_id;
11981198
$item['golongan'] = '-';
11991199
$item['jabatan'] = 'Mitra Statistik';
12001200
$item['volume'] = $item['volume_realisasi'];
@@ -1263,13 +1263,13 @@ public static function formatPegawai($pegawai, $tanggal_spj)
12631263
{
12641264
$pegawai->transform(function ($item, $index) use ($tanggal_spj) {
12651265
$pegawai = self::getPegawaiByUserId($item['user_id']);
1266-
$item['nama'] = self::getPropertyFromCollection($pegawai, 'name');
1267-
$item['nip'] = self::getPropertyFromCollection($pegawai, 'nip');
1268-
$item['nip_lama'] = self::getPropertyFromCollection($pegawai, 'nip_lama');
1269-
$item['jabatan'] = self::getPropertyFromCollection(self::getDataPegawaiByUserId($item['user_id'], $tanggal_spj), 'jabatan');
1270-
$item['rekening'] = self::getPropertyFromCollection($pegawai, 'rekening');
1271-
$item['kode_bank_id'] = self::getPropertyFromCollection($pegawai, 'kode_bank_id');
1272-
$item['golongan'] = self::getPropertyFromCollection(self::getDataPegawaiByUserId($item['user_id'], $tanggal_spj), 'golongan');
1266+
$item['nama'] = optional($pegawai)->name;
1267+
$item['nip'] = optional($pegawai)->nip;
1268+
$item['nip_lama'] = optional($pegawai)->nip_lama;
1269+
$item['jabatan'] = optional(self::getDataPegawaiByUserId($item['user_id'], $tanggal_spj))->jabatan;
1270+
$item['rekening'] = optional($pegawai)->rekening;
1271+
$item['kode_bank_id'] = optional($pegawai)->kode_bank_id;
1272+
$item['golongan'] = optional(self::getDataPegawaiByUserId($item['user_id'], $tanggal_spj))->golongan;
12731273
$item['bruto'] = $item['volume'] * $item['harga_satuan'];
12741274
$item['pajak'] = round($item['volume'] * $item['harga_satuan'] * $item['persen_pajak'] / 100, 0, PHP_ROUND_HALF_UP);
12751275
$item['netto'] = $item['bruto'] - $item['pajak'];
@@ -1329,7 +1329,7 @@ public static function makeSpjMitraAndPegawai($honor_kegiatan_id, $tanggal)
13291329
$item['spj_no'] = $index + 1;
13301330
$item['bruto'] = self::formatUang($item['bruto']);
13311331
$item['pajak'] = self::formatUang($item['pajak']);
1332-
$item['rekening'] = self::getPropertyFromCollection(self::getKodeBankById($item['kode_bank_id']), 'nama_bank').' '.$item['rekening'];
1332+
$item['rekening'] = optional(self::getKodeBankById($item['kode_bank_id']))->nama_bank.' '.$item['rekening'];
13331333
$item['netto'] = self::formatUang($item['netto']);
13341334
$item['harga_satuan'] = self::formatUang($item['harga_satuan']);
13351335

@@ -1478,7 +1478,7 @@ public static function makeCollectionForMassCn($honor_kegiatan_id, $tanggal, $sa
14781478
$item['Benef Account'] = $item['rekening'];
14791479
$item['Benef Name'] = $item['nama'];
14801480
$item['Benef Address'] = strtoupper(str_replace('Kabupaten ', '', config('satker.kabupaten')));
1481-
$item['Benef Bank'] = Helper::getPropertyFromCollection(Helper::getKodeBankById($item['kode_bank_id']), 'kode');
1481+
$item['Benef Bank'] = optional(self::getKodeBankById($item['kode_bank_id']))->kode;
14821482
$item['Benef eMail'] = '';
14831483
$item['Amount'] = $item['netto'];
14841484
$item['Charge Type'] = 'BEN';
@@ -1529,14 +1529,14 @@ public static function makeKontrakMitra($kontrak_mitra_id)
15291529
$honor_kegiatan = HonorKegiatan::find($item['honor_kegiatan_id']);
15301530
$mata_anggaran = self::getMataAnggaranById($honor_kegiatan->mata_anggaran_id);
15311531
$item['spek_no'] = $index + 1;
1532-
$item['spek_kegiatan'] = self::getPropertyFromCollection($honor_kegiatan, 'kegiatan');
1533-
$item['spek_mak'] = self::getPropertyFromCollection($mata_anggaran, 'mak');
1532+
$item['spek_kegiatan'] = optional($honor_kegiatan)->kegiatan;
1533+
$item['spek_mak'] = optional($mata_anggaran)->mak;
15341534
$item['spek_vol'] = $item['volume_target'];
15351535
$item['spek_vol_target'] = $item['volume_target'];
15361536
$item['spek_vol_realisasi'] = $item['volume_realisasi'];
15371537
$item['spek_selesai'] = $item['status_realisasi'];
1538-
$item['spek_satuan'] = self::getPropertyFromCollection($honor_kegiatan, 'satuan');
1539-
$item['spek_akhir'] = self::terbilangTanggal(self::getPropertyFromCollection($honor_kegiatan, 'akhir'));
1538+
$item['spek_satuan'] = optional($honor_kegiatan)->satuan;
1539+
$item['spek_akhir'] = self::terbilangTanggal(optional($honor_kegiatan)->akhir);
15401540
$item['spek_total'] = self::formatUang($item['volume_target'] * $item['harga_satuan']);
15411541

15421542
return $item;
@@ -1585,18 +1585,6 @@ public static function syncHariLibur($tahun)
15851585
}
15861586
}
15871587

1588-
/**
1589-
* Get property from collection.
1590-
*
1591-
* @param mixed $collection Eloquent collection or null
1592-
* @param string $property Property name
1593-
* @return mixed
1594-
*/
1595-
public static function getPropertyFromCollection($collection, $property)
1596-
{
1597-
return optional($collection)->$property;
1598-
}
1599-
16001588
/**
16011589
* Mendapatkan path template berdasarkan kolom dan value.
16021590
*
@@ -1606,7 +1594,7 @@ public static function getPropertyFromCollection($collection, $property)
16061594
*/
16071595
public static function getTemplatePath($column, $value)
16081596
{
1609-
$file = self::getPropertyFromCollection(Template::cache()->get('all')->where($column, '=', $value)->first(), 'file');
1597+
$file = optional(Template::cache()->get('all')->where($column, '=', $value)->first())->file;
16101598

16111599
return [
16121600
'filename' => $file,
@@ -1644,7 +1632,7 @@ public static function getTemplatePathById($id)
16441632
*/
16451633
public static function getLatestTataNaskahId($tanggal)
16461634
{
1647-
return self::getPropertyFromCollection(TataNaskah::cache()->get('all')->where('tanggal', '<=', $tanggal)->sortByDesc('tanggal')->first(), 'id');
1635+
return optional(TataNaskah::cache()->get('all')->where('tanggal', '<=', $tanggal)->sortByDesc('tanggal')->first())->id;
16481636
}
16491637

16501638
/**
@@ -1655,7 +1643,7 @@ public static function getLatestTataNaskahId($tanggal)
16551643
*/
16561644
public static function getLatestHargaSatuanId($tanggal)
16571645
{
1658-
return self::getPropertyFromCollection(self::getLatestHargaSatuan($tanggal), 'id');
1646+
return optional(self::getLatestHargaSatuan($tanggal))->id;
16591647
}
16601648

16611649
/**
@@ -1876,7 +1864,7 @@ public static function sendReminder($reminder, $method = 'auto')
18761864
$hari = $kegiatan->awal->diffInDays($method === 'auto' ? $reminder->tanggal : now());
18771865
$pesan = strtr($kegiatan->pesan, [
18781866
'{judul}' => $hari > 0 ? '[Reminder Deadline (H-'.$hari.')]' : '[Reminder Deadline]',
1879-
'{tanggal}' => Helper::terbilangTanggal($kegiatan->awal),
1867+
'{tanggal}' => self::terbilangTanggal($kegiatan->awal),
18801868
'{kegiatan}' => $kegiatan->kegiatan,
18811869
'{pj}' => $kegiatan->daftar_kegiatanable_type == \App\Models\UnitKerja::class ? UnitKerja::find($kegiatan->daftar_kegiatanable_id)->unit : User::find($kegiatan->daftar_kegiatanable_id)->name,
18821870
]);

app/Models/AnggaranKerangkaAcuan.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ protected static function booted(): void
4242
$honor->tanggal_spj = $kak->akhir;
4343
$honor->tanggal_st = $kak->tanggal;
4444
$honor->tanggal_sk = $kak->tanggal;
45-
$honor->tahun = Helper::getPropertyFromCollection($dipa, 'tahun');
45+
$honor->tahun = optional($dipa)->tahun;
4646
$honor->unit_kerja_id = $kak->unit_kerja_id;
4747
$honor->save();
4848
}

app/Models/DaftarKontrakMitra.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,17 @@ protected static function booted(): void
4646
$daftar->status_kontrak = 'dibuat';
4747
$daftar->status_bast = 'dibuat';
4848
$kontrak = KontrakMitra::find($daftar->kontrak_mitra_id);
49-
$jenis_kontrak = Helper::getPropertyFromCollection(JenisKontrak::cache()->get('all')->where('id', $kontrak->jenis_kontrak_id)->first(), 'jenis');
49+
$jenis_kontrak = optional(JenisKontrak::cache()->get('all')->where('id', $kontrak->jenis_kontrak_id)->first())->jenis;
5050
$bulan_kontrak = Helper::$bulan[$kontrak->bulan];
5151
$default_naskah = NaskahDefault::cache()->get('all')
52-
->where('jenis', 'kontrak')
53-
->first();
52+
->where('jenis', 'kontrak')
53+
->first();
5454
$naskahkeluar = new NaskahKeluar;
5555
$naskahkeluar->tanggal = $kontrak->tanggal_spk;
56-
$naskahkeluar->jenis_naskah_id = Helper::getPropertyFromCollection($default_naskah, 'jenis_naskah_id');
56+
$naskahkeluar->jenis_naskah_id = optional($default_naskah)->jenis_naskah_id;
5757
$naskahkeluar->kode_arsip_id = $kontrak->kode_arsip_id;
58-
$naskahkeluar->derajat_naskah_id = Helper::getPropertyFromCollection($default_naskah, 'derajat_naskah_id');
59-
$naskahkeluar->tujuan = Helper::getPropertyFromCollection(Helper::getMitraById($daftar->mitra_id), 'nama');
58+
$naskahkeluar->derajat_naskah_id = optional($default_naskah)->derajat_naskah_id;
59+
$naskahkeluar->tujuan = optional(Helper::getMitraById($daftar->mitra_id))->nama;
6060
$naskahkeluar->perihal = 'PERJANJIAN KERJA MITRA STATISTIK PETUGAS '.strtoupper($jenis_kontrak).' BULAN '.strtoupper($bulan_kontrak).' TAHUN '.$kontrak->tahun;
6161
$naskahkeluar->generate = 'A';
6262
$naskahkeluar->save();

app/Models/HonorKegiatan.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ protected static function booted(): void
104104
'tahun' => $honor->tahun,
105105
]
106106
);
107-
$kontrak->nama_kontrak = 'Kontrak '.Helper::getPropertyFromCollection(Helper::getJenisKontrakById($honor->jenis_kontrak_id), 'jenis').' Bulan '.Helper::$bulan[$honor->bulan];
107+
$kontrak->nama_kontrak = 'Kontrak '.optional(Helper::getJenisKontrakById($honor->jenis_kontrak_id))->jenis.' Bulan '.Helper::$bulan[$honor->bulan];
108108
$kontrak->jenis_honor = $honor->jenis_honor;
109109
$kontrak->awal_kontrak = Carbon::createFromDate(session('year'), $honor->bulan)->startOfMonth();
110110
$kontrak->akhir_kontrak = Carbon::createFromDate(session('year'), $honor->bulan)->endOfMonth();
@@ -130,9 +130,9 @@ protected static function booted(): void
130130
->first();
131131
$naskahkeluar = new NaskahKeluar;
132132
$naskahkeluar->tanggal = $honor->tanggal_sk;
133-
$naskahkeluar->jenis_naskah_id = Helper::getPropertyFromCollection($default_naskah, 'jenis_naskah_id');
133+
$naskahkeluar->jenis_naskah_id = optional($default_naskah)->jenis_naskah_id;
134134
$naskahkeluar->kode_arsip_id = $honor->sk_kode_arsip_id;
135-
$naskahkeluar->derajat_naskah_id = Helper::getPropertyFromCollection($default_naskah, 'derajat_naskah_id');
135+
$naskahkeluar->derajat_naskah_id = optional($default_naskah)->derajat_naskah_id;
136136
$naskahkeluar->tujuan = $honor->objek_sk;
137137
$naskahkeluar->perihal = 'SK '.$honor->objek_sk;
138138
$naskahkeluar->generate = 'A';
@@ -155,9 +155,9 @@ protected static function booted(): void
155155
->first();
156156
$naskahkeluar = new NaskahKeluar;
157157
$naskahkeluar->tanggal = $honor->tanggal_st;
158-
$naskahkeluar->jenis_naskah_id = Helper::getPropertyFromCollection($default_naskah, 'jenis_naskah_id');
158+
$naskahkeluar->jenis_naskah_id = optional($default_naskah)->jenis_naskah_id;
159159
$naskahkeluar->kode_arsip_id = $honor->st_kode_arsip_id;
160-
$naskahkeluar->derajat_naskah_id = Helper::getPropertyFromCollection($default_naskah, 'derajat_naskah_id');
160+
$naskahkeluar->derajat_naskah_id = optional($default_naskah)->derajat_naskah_id;
161161
$naskahkeluar->tujuan = $honor->objek_sk;
162162
$naskahkeluar->perihal = 'Surat Tugas '.$honor->objek_sk;
163163
$naskahkeluar->generate = 'A';

0 commit comments

Comments
 (0)