|
9 | 9 | use App\Models\DaftarPemeliharaan; |
10 | 10 | use App\Models\DaftarPenilaianReward; |
11 | 11 | use App\Models\DaftarPesertaPerjalanan; |
| 12 | +use App\Models\DaftarPulsaMitra; |
12 | 13 | use App\Models\Dipa; |
13 | 14 | use App\Models\HonorKegiatan; |
14 | 15 | use App\Models\KerangkaAcuan; |
|
19 | 20 | use App\Models\PembelianPersediaan; |
20 | 21 | use App\Models\PerjalananDinas; |
21 | 22 | use App\Models\PermintaanPersediaan; |
| 23 | +use App\Models\PulsaKegiatan; |
22 | 24 | use App\Models\RapatInternal; |
23 | 25 | use App\Models\RewardPegawai; |
24 | 26 | use App\Models\SpesifikasiKerangkaAcuan; |
@@ -174,7 +176,37 @@ public static function getTemplate(string $jenis, $id, $template_id, $tanggal, $ |
174 | 176 | unset($data['daftar_honor_mitra']); |
175 | 177 | HonorKegiatan::where('id', $id)->update(['status' => 'dicetak']); |
176 | 178 | } |
| 179 | + if ($jenis === 'pulsa') { |
| 180 | + $templateProcessor->cloneRowAndSetValues('spj_no', $data['daftar_pulsa_mitra']); |
| 181 | + $detailAnggarans = ['kegiatan', 'kro', 'ro', 'komponen', 'sub', 'akun', 'detail']; |
| 182 | + foreach ($detailAnggarans as $detailAnggaran) { |
| 183 | + if (Str::of($data[$detailAnggaran])->contains('edit manual karena belum ada di POK')) { |
| 184 | + $detail = new TextRun; |
| 185 | + $detail->addText(Str::of($data[$detailAnggaran])->before('edit manual karena belum ada di POK')); |
| 186 | + $detail->addText('edit manual karena belum ada di POK', ['color' => 'red']); |
| 187 | + $templateProcessor->setComplexValue($detailAnggaran, $detail); |
| 188 | + unset($data[$detailAnggaran]); |
| 189 | + } |
| 190 | + } |
| 191 | + $dummies = $data['daftar_pulsa_mitra']; |
| 192 | + unset($data['daftar_pulsa_mitra']); |
| 193 | + PulsaKegiatan::where('id', $id)->update(['status' => 'selesai']); |
| 194 | + } |
177 | 195 | $templateProcessor->setValues($data); |
| 196 | + if ($jenis === 'pulsa') { |
| 197 | + foreach ($dummies as $dummy) { |
| 198 | + $templateProcessor->setImageValue( |
| 199 | + $dummy['nik'], |
| 200 | + [ |
| 201 | + 'path' => Storage::disk('pulsa')->path($dummy['bukti']), |
| 202 | + 'width' => '', |
| 203 | + 'height' => '5.7cm', |
| 204 | + 'ratio' => true, |
| 205 | + ] |
| 206 | + ); |
| 207 | + } |
| 208 | + unset($dummies); |
| 209 | + } |
178 | 210 |
|
179 | 211 | return $templateProcessor; |
180 | 212 | } |
@@ -503,6 +535,44 @@ public static function spj($id) |
503 | 535 | ]; |
504 | 536 | } |
505 | 537 |
|
| 538 | + public static function pulsa($id) |
| 539 | + { |
| 540 | + $data = PulsaKegiatan::find($id); |
| 541 | + $mataanggaran = Helper::getMataAnggaranById($data->mata_anggaran_id); |
| 542 | + $mak = optional($mataanggaran)->mak; |
| 543 | + $koordinator = Helper::getPegawaiByUserId($data->koordinator_user_id); |
| 544 | + $ppk = Helper::getPegawaiByUserId($data->ppk_user_id); |
| 545 | + $harga = DaftarPulsaMitra::where('pulsa_kegiatan_id', $id)->sum('harga'); |
| 546 | + |
| 547 | + return [ |
| 548 | + 'kabupaten' => config('satker.kabupaten'), |
| 549 | + 'u_kabupaten' => strtoupper(config('satker.kabupaten')), |
| 550 | + 'alamat_satker' => config('satker.alamat'), |
| 551 | + 'telepon_satker' => config('satker.telepon'), |
| 552 | + 'website' => config('satker.website'), |
| 553 | + 'email' => config('satker.email'), |
| 554 | + 'tanggal_spj' => Helper::terbilangTanggal($data->tanggal), |
| 555 | + 'ibukota' => config('satker.ibukota'), |
| 556 | + 'nama_kegiatan' => $data->kegiatan, |
| 557 | + 'detail' => optional($mataanggaran)->uraian, |
| 558 | + 'bulan' => Helper::terbilangBulan($data->bulan), |
| 559 | + 'mak' => $mak, |
| 560 | + 'kegiatan' => Helper::getDetailAnggaran($mak, 'kegiatan'), |
| 561 | + 'kro' => Helper::getDetailAnggaran($mak, 'kro'), |
| 562 | + 'ro' => Helper::getDetailAnggaran($mak, 'ro'), |
| 563 | + 'komponen' => Helper::getDetailAnggaran($mak, 'komponen'), |
| 564 | + 'sub' => Helper::getDetailAnggaran($mak, 'sub'), |
| 565 | + 'akun' => Helper::getDetailAnggaran($mak, 'akun'), |
| 566 | + 'daftar_pulsa_mitra' => Helper::makeSpjPulsaMitra($id), |
| 567 | + 'ketua' => optional($koordinator)->name, |
| 568 | + 'nipketua' => optional($koordinator)->nip, |
| 569 | + 'ppk' => optional($ppk)->name, |
| 570 | + 'nipppk' => optional($ppk)->nip, |
| 571 | + 'total_harga' => Helper::formatUang($harga), |
| 572 | + 'terbilang_total' => Helper::terbilang($harga, 'uw', ' rupiah'), |
| 573 | + ]; |
| 574 | + } |
| 575 | + |
506 | 576 | /** |
507 | 577 | * Format the values for the assignment letter. |
508 | 578 | * |
@@ -938,6 +1008,21 @@ public static function validate($jenis, $model_id) |
938 | 1008 | return 'Masih ada rekening yang kosong pada daftar SPJ ini.'; |
939 | 1009 | } |
940 | 1010 | } |
| 1011 | + if ($jenis === 'pulsa') { |
| 1012 | + $honor = PulsaKegiatan::where('id', $model_id)->first(); |
| 1013 | + $notConfirmed = DaftarPulsaMitra::where('pulsa_kegiatan_id', $honor->id) |
| 1014 | + ->where('confirmed', false) |
| 1015 | + ->count(); |
| 1016 | + $notUploaded = DaftarPulsaMitra::where('pulsa_kegiatan_id', $honor->id) |
| 1017 | + ->whereNull('file') |
| 1018 | + ->count(); |
| 1019 | + if ($notConfirmed > 0) { |
| 1020 | + return 'Masih ada data nomor handphone yang belum dikonfirmasi pada daftar ini.'; |
| 1021 | + } |
| 1022 | + if ($notUploaded > 0) { |
| 1023 | + return 'Masih ada bukti pulsa masuk yang belum diunggah pada daftar ini.'; |
| 1024 | + } |
| 1025 | + } |
941 | 1026 | if ($jenis === 'st') { |
942 | 1027 | $honor = HonorKegiatan::where('id', $model_id)->first(); |
943 | 1028 | if (Helper::makeBaseListMitraAndPegawai($honor->id, $honor->tanggal_spj)->count() == 0) { |
|
0 commit comments