prbaikan output foto di laporan dan penilai dan surveyor by region
This commit is contained in:
@@ -1,331 +1,340 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Modules\Lpj\Models\HolidayCalendar;
|
use Modules\Lpj\Models\HolidayCalendar;
|
||||||
use Modules\Lpj\Models\PenawaranDetailTender;
|
use Modules\Lpj\Models\PenawaranDetailTender;
|
||||||
use Modules\Lpj\Models\PenawaranTender;
|
use Modules\Lpj\Models\PenawaranTender;
|
||||||
use Modules\Lpj\Models\Penilaian;
|
use Modules\Lpj\Models\Penilaian;
|
||||||
use Modules\Lpj\Models\JenisDokumen;
|
use Modules\Lpj\Models\JenisDokumen;
|
||||||
use Modules\Usermanagement\Models\User;
|
use Modules\Lpj\Models\TeamsUsers;
|
||||||
|
use Modules\Usermanagement\Models\User;
|
||||||
|
|
||||||
function formatTanggalIndonesia($date, $time = false)
|
function formatTanggalIndonesia($date, $time = false)
|
||||||
{
|
{
|
||||||
Carbon::setLocale('id');
|
Carbon::setLocale('id');
|
||||||
$waktu = Carbon::parse($date);
|
$waktu = Carbon::parse($date);
|
||||||
if (!$time) {
|
if (!$time) {
|
||||||
return $waktu->translatedFormat('d F Y');
|
return $waktu->translatedFormat('d F Y');
|
||||||
}
|
|
||||||
return $waktu->translatedFormat('d F Y') . ' pukul ' . $waktu->format('H.i') . ' WIB';
|
|
||||||
}
|
}
|
||||||
|
return $waktu->translatedFormat('d F Y') . ' pukul ' . $waktu->format('H.i') . ' WIB';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function formatRupiah($number)
|
function formatRupiah($number)
|
||||||
{
|
{
|
||||||
$number = (float) $number;
|
$number = (float) $number;
|
||||||
return 'Rp ' . number_format($number, 2, ',', '.');
|
return 'Rp ' . number_format($number, 2, ',', '.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function formatAlamat($alamat)
|
function formatAlamat($alamat)
|
||||||
{
|
{
|
||||||
return ($alamat->address ? $alamat->address . ', ' : '') . (isset($alamat->village) ? $alamat->village->name . ', ' : '') . (isset($alamat->city) ? $alamat->city->name . ', ' : '') . (isset($alamat->province) ? $alamat->province->name . ', ' : '') . ($alamat->postal_code ?? '');
|
return ($alamat->address ? $alamat->address . ', ' : '') . (isset($alamat->village) ? $alamat->village->name . ', ' : '') . (isset($alamat->city) ? $alamat->city->name . ', ' : '') . (isset($alamat->province) ? $alamat->province->name . ', ' : '') . ($alamat->postal_code ?? '');
|
||||||
}
|
}
|
||||||
|
|
||||||
// andy add
|
// andy add
|
||||||
function checkActiveDateRangePenawaran($id)
|
function checkActiveDateRangePenawaran($id)
|
||||||
{
|
{
|
||||||
$penawaran = PenawaranTender::find($id);
|
$penawaran = PenawaranTender::find($id);
|
||||||
|
|
||||||
$start_date = strtotime($penawaran->start_date);
|
$start_date = strtotime($penawaran->start_date);
|
||||||
$end_date = strtotime($penawaran->end_date);
|
$end_date = strtotime($penawaran->end_date);
|
||||||
// $todays_date = strtotime(now());
|
// $todays_date = strtotime(now());
|
||||||
$todays_date = strtotime("+1 day", strtotime(now()));
|
$todays_date = strtotime("+1 day", strtotime(now()));
|
||||||
|
|
||||||
|
$allow = true;
|
||||||
|
if ($todays_date >= $start_date && $todays_date <= $end_date) {
|
||||||
|
//Penawaran dibuka
|
||||||
$allow = true;
|
$allow = true;
|
||||||
if ($todays_date >= $start_date && $todays_date <= $end_date) {
|
} else {
|
||||||
//Penawaran dibuka
|
if ($todays_date < $start_date) {
|
||||||
|
//Penawaran Belum dibuka
|
||||||
$allow = true;
|
$allow = true;
|
||||||
} else {
|
} else {
|
||||||
if ($todays_date < $start_date) {
|
//Penawaran sudah ditutup
|
||||||
//Penawaran Belum dibuka
|
|
||||||
$allow = true;
|
|
||||||
} else {
|
|
||||||
//Penawaran sudah ditutup
|
|
||||||
$allow = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $allow;
|
|
||||||
}
|
|
||||||
|
|
||||||
function checkKelengkapanDetailKJPP($id)
|
|
||||||
{
|
|
||||||
$allow = true;
|
|
||||||
// DB::enableQueryLog();
|
|
||||||
// detail_penawaran apakah isian biaya_penawaran, attachment, dokumen_persetujuan sudah lengkap?
|
|
||||||
$query = PenawaranDetailTender::select('id')->where('penawaran_id', '=', $id)->where('status', '=', 1)->where(
|
|
||||||
function ($query) {
|
|
||||||
// no_proposal
|
|
||||||
$query->orWhere('no_proposal', '', "");
|
|
||||||
$query->orWhereNull('no_proposal');
|
|
||||||
|
|
||||||
// tgl_proposal
|
|
||||||
$query->orWhere('tgl_proposal', '', "");
|
|
||||||
$query->orWhereNull('tgl_proposal');
|
|
||||||
|
|
||||||
$query->orWhere('biaya_penawaran', '', "");
|
|
||||||
$query->orWhereNull('biaya_penawaran');
|
|
||||||
|
|
||||||
$query->orWhere('attachment', '', "");
|
|
||||||
$query->orWhereNull('attachment');
|
|
||||||
|
|
||||||
$query->orWhere('dokumen_persetujuan', '', "");
|
|
||||||
$query->orWhereNull('dokumen_persetujuan');
|
|
||||||
},
|
|
||||||
)->get();
|
|
||||||
// $sql = DB::getQueryLog();
|
|
||||||
|
|
||||||
|
|
||||||
if (sizeof($query) > 0) {
|
|
||||||
$allow = false;
|
$allow = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $allow;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// convert
|
return $allow;
|
||||||
function convertSlug($slug)
|
}
|
||||||
{
|
|
||||||
$words = explode('-', $slug);
|
|
||||||
|
|
||||||
foreach ($words as $index => $word) {
|
function checkKelengkapanDetailKJPP($id)
|
||||||
$words[$index] = strtoupper($word);
|
{
|
||||||
}
|
$allow = true;
|
||||||
|
// DB::enableQueryLog();
|
||||||
|
// detail_penawaran apakah isian biaya_penawaran, attachment, dokumen_persetujuan sudah lengkap?
|
||||||
|
$query = PenawaranDetailTender::select('id')->where('penawaran_id', '=', $id)->where('status', '=', 1)->where(
|
||||||
|
function ($query) {
|
||||||
|
// no_proposal
|
||||||
|
$query->orWhere('no_proposal', '', "");
|
||||||
|
$query->orWhereNull('no_proposal');
|
||||||
|
|
||||||
return implode(' ', $words);
|
// tgl_proposal
|
||||||
|
$query->orWhere('tgl_proposal', '', "");
|
||||||
|
$query->orWhereNull('tgl_proposal');
|
||||||
|
|
||||||
|
$query->orWhere('biaya_penawaran', '', "");
|
||||||
|
$query->orWhereNull('biaya_penawaran');
|
||||||
|
|
||||||
|
$query->orWhere('attachment', '', "");
|
||||||
|
$query->orWhereNull('attachment');
|
||||||
|
|
||||||
|
$query->orWhere('dokumen_persetujuan', '', "");
|
||||||
|
$query->orWhereNull('dokumen_persetujuan');
|
||||||
|
},
|
||||||
|
)->get();
|
||||||
|
// $sql = DB::getQueryLog();
|
||||||
|
|
||||||
|
|
||||||
|
if (sizeof($query) > 0) {
|
||||||
|
$allow = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// generate last penawaran.code
|
return $allow;
|
||||||
function onLastnumberCodePenawaran()
|
}
|
||||||
: string
|
|
||||||
{
|
|
||||||
// ambil code terakhir
|
|
||||||
$maxCode = PenawaranTender::max('code');
|
|
||||||
// chek data penawaran terakhir --> mengurutkan data berdasarkan kolom `created_at` secara DESC
|
|
||||||
// $penawaran = PenawaranTender::latest()->first();
|
|
||||||
$penawaran = PenawaranTender::where('code','=',$maxCode)->first();
|
|
||||||
$code_penawaran_last='';
|
|
||||||
|
|
||||||
// nomor di set 0001
|
// convert
|
||||||
$noUrutAkhirString = sprintf("%04s", 1);
|
function convertSlug($slug)
|
||||||
if($penawaran)
|
{
|
||||||
{
|
$words = explode('-', $slug);
|
||||||
$isNum = substr($maxCode, 2); // memastikan string ke 3 s/d 8 adalan numiric
|
|
||||||
$isNP = substr($maxCode, 0, 2);
|
foreach ($words as $index => $word) {
|
||||||
if((8 == strlen($maxCode)) && ("NP"==$isNP) && (isNumeric($isNum)))
|
$words[$index] = strtoupper($word);
|
||||||
{
|
}
|
||||||
$code_penawaran_last = substr ($maxCode, -4);
|
|
||||||
$year_penawaran_last = Carbon::parse($penawaran->created_at)->year;
|
return implode(' ', $words);
|
||||||
$year_now = Carbon::now()->year;
|
}
|
||||||
if ($year_now == $year_penawaran_last) {
|
|
||||||
$noUrutAkhirString = sprintf("%04s", abs($code_penawaran_last + 1));
|
// generate last penawaran.code
|
||||||
}
|
function onLastnumberCodePenawaran(): string
|
||||||
// jika ternyata tahun tdk sama (kurang dari tahun sekarang), maka nomor di set 0001
|
{
|
||||||
|
// ambil code terakhir
|
||||||
|
$maxCode = PenawaranTender::max('code');
|
||||||
|
// chek data penawaran terakhir --> mengurutkan data berdasarkan kolom `created_at` secara DESC
|
||||||
|
// $penawaran = PenawaranTender::latest()->first();
|
||||||
|
$penawaran = PenawaranTender::where('code', '=', $maxCode)->first();
|
||||||
|
$code_penawaran_last = '';
|
||||||
|
|
||||||
|
// nomor di set 0001
|
||||||
|
$noUrutAkhirString = sprintf("%04s", 1);
|
||||||
|
if ($penawaran) {
|
||||||
|
$isNum = substr($maxCode, 2); // memastikan string ke 3 s/d 8 adalan numiric
|
||||||
|
$isNP = substr($maxCode, 0, 2);
|
||||||
|
if ((8 == strlen($maxCode)) && ("NP" == $isNP) && (isNumeric($isNum))) {
|
||||||
|
$code_penawaran_last = substr($maxCode, -4);
|
||||||
|
$year_penawaran_last = Carbon::parse($penawaran->created_at)->year;
|
||||||
|
$year_now = Carbon::now()->year;
|
||||||
|
if ($year_now == $year_penawaran_last) {
|
||||||
|
$noUrutAkhirString = sprintf("%04s", abs($code_penawaran_last + 1));
|
||||||
}
|
}
|
||||||
|
// jika ternyata tahun tdk sama (kurang dari tahun sekarang), maka nomor di set 0001
|
||||||
}
|
|
||||||
|
|
||||||
return 'NP' . Carbon::now()->format('y') . $noUrutAkhirString;
|
|
||||||
}
|
|
||||||
|
|
||||||
function isNumeric($str)
|
|
||||||
{
|
|
||||||
return ctype_digit($str);
|
|
||||||
}
|
|
||||||
|
|
||||||
// generate last penawaran.no_spk
|
|
||||||
function onLastnumberCodePenawaranSPK($jenis_laporan_code): string
|
|
||||||
{
|
|
||||||
|
|
||||||
// 20241124_001 ==> spk_no_core
|
|
||||||
// XXX / PJ / JKT / MONTH-ROM / FR|SR / 2024
|
|
||||||
// 001 / PJ / JKT / XI / FR / 2024
|
|
||||||
$maxCode = PenawaranTender::max('spk_no_core');
|
|
||||||
$penawaran = PenawaranTender::where('spk_no_core','=',$maxCode)->first();
|
|
||||||
$no_spk_penawaran_last='';
|
|
||||||
$year_penawaran_last='';
|
|
||||||
$year_now = Carbon::now()->year;
|
|
||||||
// nomor di set 001
|
|
||||||
$noUrutAkhirString = sprintf("%03s", 1);
|
|
||||||
if($penawaran)
|
|
||||||
{
|
|
||||||
$no_spk_penawaran_last = substr ($maxCode, -3);
|
|
||||||
$year_penawaran_last = substr ($maxCode, 0, 4);
|
|
||||||
|
|
||||||
if($year_now == $year_penawaran_last)
|
|
||||||
{
|
|
||||||
$noUrutAkhirString = sprintf("%03s", abs($no_spk_penawaran_last + 1));
|
|
||||||
}
|
|
||||||
// jika ternyata tahun tdk sama (kurang dari tahun sekarang), maka nomor di set 001
|
|
||||||
}
|
|
||||||
|
|
||||||
$month = onRomawi(Carbon::now()->month);
|
|
||||||
|
|
||||||
$lastSPK = $noUrutAkhirString.' / PJ / JKT / '. $month .' / ' .$jenis_laporan_code.' / '.$year_now;
|
|
||||||
return $lastSPK;
|
|
||||||
}
|
|
||||||
|
|
||||||
function onRomawi(int $bln): string
|
|
||||||
{
|
|
||||||
switch ($bln){
|
|
||||||
case 1:
|
|
||||||
return "I";
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
return "II";
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
return "III";
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
return "IV";
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
return "V";
|
|
||||||
break;
|
|
||||||
case 6:
|
|
||||||
return "VI";
|
|
||||||
break;
|
|
||||||
case 7:
|
|
||||||
return "VII";
|
|
||||||
break;
|
|
||||||
case 8:
|
|
||||||
return "VIII";
|
|
||||||
break;
|
|
||||||
case 9:
|
|
||||||
return "IX";
|
|
||||||
break;
|
|
||||||
case 10:
|
|
||||||
return "X";
|
|
||||||
break;
|
|
||||||
case 11:
|
|
||||||
return "XI";
|
|
||||||
break;
|
|
||||||
case 12:
|
|
||||||
return "XII";
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function penyebut($nilai) {
|
return 'NP' . Carbon::now()->format('y') . $noUrutAkhirString;
|
||||||
$nilai = abs($nilai);
|
}
|
||||||
$huruf = array("", "satu", "dua", "tiga", "empat", "lima", "enam", "tujuh", "delapan", "sembilan", "sepuluh", "sebelas");
|
|
||||||
$temp = "";
|
|
||||||
if ($nilai < 12) {
|
|
||||||
$temp = " ". $huruf[$nilai];
|
|
||||||
} else if ($nilai <20) {
|
|
||||||
$temp = penyebut($nilai - 10). " belas";
|
|
||||||
} else if ($nilai < 100) {
|
|
||||||
$temp = penyebut($nilai/10)." puluh". penyebut($nilai % 10);
|
|
||||||
} else if ($nilai < 200) {
|
|
||||||
$temp = " seratus" . penyebut($nilai - 100);
|
|
||||||
} else if ($nilai < 1000) {
|
|
||||||
$temp = penyebut($nilai/100) . " ratus" . penyebut($nilai % 100);
|
|
||||||
} else if ($nilai < 2000) {
|
|
||||||
$temp = " seribu" . penyebut($nilai - 1000);
|
|
||||||
} else if ($nilai < 1000000) {
|
|
||||||
$temp = penyebut($nilai/1000) . " ribu" . penyebut($nilai % 1000);
|
|
||||||
} else if ($nilai < 1000000000) {
|
|
||||||
$temp = penyebut($nilai/1000000) . " juta" . penyebut($nilai % 1000000);
|
|
||||||
} else if ($nilai < 1000000000000) {
|
|
||||||
$temp = penyebut($nilai/1000000000) . " milyar" . penyebut(fmod($nilai,1000000000));
|
|
||||||
} else if ($nilai < 1000000000000000) {
|
|
||||||
$temp = penyebut($nilai/1000000000000) . " trilyun" . penyebut(fmod($nilai,1000000000000));
|
|
||||||
}
|
|
||||||
return $temp;
|
|
||||||
}
|
|
||||||
|
|
||||||
function terbilang($nilai) {
|
function isNumeric($str)
|
||||||
if($nilai<0) {
|
{
|
||||||
$hasil = "minus ". trim(penyebut($nilai));
|
return ctype_digit($str);
|
||||||
} else {
|
}
|
||||||
$hasil = trim(penyebut($nilai));
|
|
||||||
}
|
|
||||||
return $hasil;
|
|
||||||
}
|
|
||||||
// andy add
|
|
||||||
|
|
||||||
|
// generate last penawaran.no_spk
|
||||||
|
function onLastnumberCodePenawaranSPK($jenis_laporan_code): string
|
||||||
|
{
|
||||||
|
|
||||||
function hitungHariKerja($tanggalMulai, $tanggalSelesai)
|
// 20241124_001 ==> spk_no_core
|
||||||
{
|
// XXX / PJ / JKT / MONTH-ROM / FR|SR / 2024
|
||||||
$tanggalMulai = Carbon::parse($tanggalMulai)->startOfDay();
|
// 001 / PJ / JKT / XI / FR / 2024
|
||||||
$tanggalSelesai = Carbon::parse($tanggalSelesai)->endOfDay();
|
$maxCode = PenawaranTender::max('spk_no_core');
|
||||||
|
$penawaran = PenawaranTender::where('spk_no_core', '=', $maxCode)->first();
|
||||||
|
$no_spk_penawaran_last = '';
|
||||||
|
$year_penawaran_last = '';
|
||||||
|
$year_now = Carbon::now()->year;
|
||||||
|
// nomor di set 001
|
||||||
|
$noUrutAkhirString = sprintf("%03s", 1);
|
||||||
|
if ($penawaran) {
|
||||||
|
$no_spk_penawaran_last = substr($maxCode, -3);
|
||||||
|
$year_penawaran_last = substr($maxCode, 0, 4);
|
||||||
|
|
||||||
$hariKerja = 0;
|
if ($year_now == $year_penawaran_last) {
|
||||||
$tanggalSekarang = $tanggalMulai->copy();
|
$noUrutAkhirString = sprintf("%03s", abs($no_spk_penawaran_last + 1));
|
||||||
|
|
||||||
while ($tanggalSekarang <= $tanggalSelesai) {
|
|
||||||
// Cek apakah hari ini bukan Sabtu atau Minggu dan bukan hari libur
|
|
||||||
if (!$tanggalSekarang->isWeekend() && !in_array($tanggalSekarang->format('Y-m-d'), holidays())) {
|
|
||||||
$hariKerja++;
|
|
||||||
}
|
|
||||||
$tanggalSekarang->addDay();
|
|
||||||
}
|
}
|
||||||
|
// jika ternyata tahun tdk sama (kurang dari tahun sekarang), maka nomor di set 001
|
||||||
return $hariKerja;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function holidays()
|
$month = onRomawi(Carbon::now()->month);
|
||||||
{
|
|
||||||
return HolidayCalendar::pluck('date')->map(
|
|
||||||
function ($item) {
|
|
||||||
return Carbon::parse($item)->format('Y-m-d');
|
|
||||||
},
|
|
||||||
)->toArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
function countPermohonanForUser($userId)
|
$lastSPK = $noUrutAkhirString.' / PJ / JKT / '. $month .' / ' .$jenis_laporan_code.' / '.$year_now;
|
||||||
{
|
return $lastSPK;
|
||||||
return Penilaian::whereHas('userPenilai', function ($query) use ($userId) {
|
}
|
||||||
$query->where('user_id', $userId);
|
|
||||||
})
|
function onRomawi(int $bln): string
|
||||||
->whereHas('permohonan', function ($query) {
|
{
|
||||||
$query->where('status', 'assign');
|
switch ($bln) {
|
||||||
})
|
case 1:
|
||||||
->count();
|
return "I";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
return "II";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
return "III";
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
return "IV";
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
return "V";
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
return "VI";
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
return "VII";
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
return "VIII";
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
return "IX";
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
return "X";
|
||||||
|
break;
|
||||||
|
case 11:
|
||||||
|
return "XI";
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
return "XII";
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
function getMaxFileSize($jenis)
|
function penyebut($nilai)
|
||||||
{
|
{
|
||||||
$jenisDokumen = JenisDokumen::where('name', $jenis)->first();
|
$nilai = abs($nilai);
|
||||||
if (!$jenisDokumen) {
|
$huruf = array("", "satu", "dua", "tiga", "empat", "lima", "enam", "tujuh", "delapan", "sembilan", "sepuluh", "sebelas");
|
||||||
return 2048;
|
$temp = "";
|
||||||
|
if ($nilai < 12) {
|
||||||
|
$temp = " ". $huruf[$nilai];
|
||||||
|
} elseif ($nilai < 20) {
|
||||||
|
$temp = penyebut($nilai - 10). " belas";
|
||||||
|
} elseif ($nilai < 100) {
|
||||||
|
$temp = penyebut($nilai / 10)." puluh". penyebut($nilai % 10);
|
||||||
|
} elseif ($nilai < 200) {
|
||||||
|
$temp = " seratus" . penyebut($nilai - 100);
|
||||||
|
} elseif ($nilai < 1000) {
|
||||||
|
$temp = penyebut($nilai / 100) . " ratus" . penyebut($nilai % 100);
|
||||||
|
} elseif ($nilai < 2000) {
|
||||||
|
$temp = " seribu" . penyebut($nilai - 1000);
|
||||||
|
} elseif ($nilai < 1000000) {
|
||||||
|
$temp = penyebut($nilai / 1000) . " ribu" . penyebut($nilai % 1000);
|
||||||
|
} elseif ($nilai < 1000000000) {
|
||||||
|
$temp = penyebut($nilai / 1000000) . " juta" . penyebut($nilai % 1000000);
|
||||||
|
} elseif ($nilai < 1000000000000) {
|
||||||
|
$temp = penyebut($nilai / 1000000000) . " milyar" . penyebut(fmod($nilai, 1000000000));
|
||||||
|
} elseif ($nilai < 1000000000000000) {
|
||||||
|
$temp = penyebut($nilai / 1000000000000) . " trilyun" . penyebut(fmod($nilai, 1000000000000));
|
||||||
|
}
|
||||||
|
return $temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
function terbilang($nilai)
|
||||||
|
{
|
||||||
|
if ($nilai < 0) {
|
||||||
|
$hasil = "minus ". trim(penyebut($nilai));
|
||||||
|
} else {
|
||||||
|
$hasil = trim(penyebut($nilai));
|
||||||
|
}
|
||||||
|
return $hasil;
|
||||||
|
}
|
||||||
|
// andy add
|
||||||
|
|
||||||
|
|
||||||
|
function hitungHariKerja($tanggalMulai, $tanggalSelesai)
|
||||||
|
{
|
||||||
|
$tanggalMulai = Carbon::parse($tanggalMulai)->startOfDay();
|
||||||
|
$tanggalSelesai = Carbon::parse($tanggalSelesai)->endOfDay();
|
||||||
|
|
||||||
|
$hariKerja = 0;
|
||||||
|
$tanggalSekarang = $tanggalMulai->copy();
|
||||||
|
|
||||||
|
while ($tanggalSekarang <= $tanggalSelesai) {
|
||||||
|
// Cek apakah hari ini bukan Sabtu atau Minggu dan bukan hari libur
|
||||||
|
if (!$tanggalSekarang->isWeekend() && !in_array($tanggalSekarang->format('Y-m-d'), holidays())) {
|
||||||
|
$hariKerja++;
|
||||||
}
|
}
|
||||||
//konversi ke KB (1 MB = 1024 KB)
|
$tanggalSekarang->addDay();
|
||||||
$maxSizeInKB = (int) $jenisDokumen->max_size * 1024;
|
|
||||||
|
|
||||||
return $maxSizeInKB;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getUser($userId){
|
return $hariKerja;
|
||||||
return User::find($userId);
|
}
|
||||||
|
|
||||||
|
function holidays()
|
||||||
|
{
|
||||||
|
return HolidayCalendar::pluck('date')->map(
|
||||||
|
function ($item) {
|
||||||
|
return Carbon::parse($item)->format('Y-m-d');
|
||||||
|
},
|
||||||
|
)->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
function countPermohonanForUser($userId)
|
||||||
|
{
|
||||||
|
return Penilaian::whereHas('userPenilai', function ($query) use ($userId) {
|
||||||
|
$query->where('user_id', $userId);
|
||||||
|
})
|
||||||
|
->whereHas('permohonan', function ($query) {
|
||||||
|
$query->where('status', 'assign');
|
||||||
|
})
|
||||||
|
->count();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function getMaxFileSize($jenis)
|
||||||
|
{
|
||||||
|
$jenisDokumen = JenisDokumen::where('name', $jenis)->first();
|
||||||
|
if (!$jenisDokumen) {
|
||||||
|
return 2048;
|
||||||
}
|
}
|
||||||
|
//konversi ke KB (1 MB = 1024 KB)
|
||||||
|
$maxSizeInKB = (int) $jenisDokumen->max_size * 1024;
|
||||||
|
|
||||||
function generateLpjUniqueCode($randomLength = 6)
|
return $maxSizeInKB;
|
||||||
{
|
}
|
||||||
|
|
||||||
$year = date('y');
|
function getUser($userId)
|
||||||
$month = str_pad(date('m'), 2, '0', STR_PAD_LEFT);
|
{
|
||||||
$day = str_pad(date('d'), 2, '0', STR_PAD_LEFT);
|
return User::find($userId);
|
||||||
|
}
|
||||||
|
|
||||||
// Generate random numbers
|
function generateLpjUniqueCode($randomLength = 6)
|
||||||
$randomNumber = str_pad(mt_rand(0, pow(10, $randomLength) - 1), $randomLength, '0', STR_PAD_LEFT);
|
{
|
||||||
|
|
||||||
// Concatenate components to create the custom code
|
$year = date('y');
|
||||||
return $year . $month . $day . $randomNumber;
|
$month = str_pad(date('m'), 2, '0', STR_PAD_LEFT);
|
||||||
|
$day = str_pad(date('d'), 2, '0', STR_PAD_LEFT);
|
||||||
|
|
||||||
|
// Generate random numbers
|
||||||
|
$randomNumber = str_pad(mt_rand(0, pow(10, $randomLength) - 1), $randomLength, '0', STR_PAD_LEFT);
|
||||||
|
|
||||||
|
// Concatenate components to create the custom code
|
||||||
|
return $year . $month . $day . $randomNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkRegionUserName($userId)
|
||||||
|
{
|
||||||
|
$region = TeamsUsers::where('user_id', $userId)->first();
|
||||||
|
if ($region) {
|
||||||
|
return $region->team->regions->name;
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -75,7 +75,7 @@
|
|||||||
@endforeach
|
@endforeach
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if (isset($formFoto['foto_lingkungan']['foto_lingkungan']))
|
{{-- @if (isset($formFoto['foto_lingkungan']['foto_lingkungan']))
|
||||||
@foreach ($formFoto['foto_lingkungan']['foto_lingkungan'][0] as $index => $item)
|
@foreach ($formFoto['foto_lingkungan']['foto_lingkungan'][0] as $index => $item)
|
||||||
<div class="border photo-item">
|
<div class="border photo-item">
|
||||||
<h2 class="text-gray-600 font-semibold text-xl">
|
<h2 class="text-gray-600 font-semibold text-xl">
|
||||||
@@ -91,7 +91,7 @@
|
|||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
@endif
|
@endif --}}
|
||||||
|
|
||||||
@if (isset($formFoto['foto_basement']))
|
@if (isset($formFoto['foto_basement']))
|
||||||
<div class="border photo-item">
|
<div class="border photo-item">
|
||||||
|
|||||||
@@ -263,7 +263,7 @@
|
|||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
|
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
|
||||||
<img src="{{ asset('storage/' . $imagePath) }}" alt="{{ $type }}"
|
<img src="{{ Storage::url($imagePath) }}" alt="{{ $type }}"
|
||||||
class="photo-image">
|
class="photo-image">
|
||||||
@endif
|
@endif
|
||||||
<p class="mt-2 text-sm">{{ Str::title(str_replace('_', ' ', $type)) }}</p>
|
<p class="mt-2 text-sm">{{ Str::title(str_replace('_', ' ', $type)) }}</p>
|
||||||
|
|||||||
@@ -1067,7 +1067,7 @@
|
|||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
|
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
|
||||||
<img src="{{ asset('storage/' . $imagePath) }}" alt="{{ $type }}"
|
<img src="{{ storage_path('app/public/' . $imagePath) }}" alt="{{ $type }}"
|
||||||
class="photo-image">
|
class="photo-image">
|
||||||
@endif
|
@endif
|
||||||
<p class="mt-2 text-sm">{{ Str::title(str_replace('_', ' ', $type)) }}</p>
|
<p class="mt-2 text-sm">{{ Str::title(str_replace('_', ' ', $type)) }}</p>
|
||||||
|
|||||||
@@ -1422,6 +1422,42 @@
|
|||||||
<div class="page-break"></div>
|
<div class="page-break"></div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="section">
|
||||||
|
<div class="judul">
|
||||||
|
<h6 class="border">
|
||||||
|
PETA
|
||||||
|
</h6>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
@php
|
||||||
|
$fotoTypes = ['foto_gistaru', 'foto_bhumi', 'foto_argis_region', 'foto_tempat'];
|
||||||
|
if (($key = array_search('foto_tempat', $fotoTypes)) !== false) {
|
||||||
|
unset($fotoTypes[$key]);
|
||||||
|
array_unshift($fotoTypes, 'foto_tempat');
|
||||||
|
}
|
||||||
|
@endphp
|
||||||
|
|
||||||
|
@if (isset($forminspeksi))
|
||||||
|
@forelse ($fotoTypes as $type)
|
||||||
|
<div class="border photo-item">
|
||||||
|
@php
|
||||||
|
$imagePath = $forminspeksi[$type] ?? null;
|
||||||
|
@endphp
|
||||||
|
|
||||||
|
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
|
||||||
|
<img src="{{ storage_path('app/public/' . $imagePath) }}" alt="{{ $type }}"
|
||||||
|
class="photo-image">
|
||||||
|
@endif
|
||||||
|
<p class="mt-2 text-sm">{{ Str::title(str_replace('_', ' ', $type)) }}</p>
|
||||||
|
</div>
|
||||||
|
@empty
|
||||||
|
<p>Tidak ada tipe foto yang tersedia</p>
|
||||||
|
@endforelse
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
<div class="section">
|
<div class="section">
|
||||||
<div class="judul">
|
<div class="judul">
|
||||||
<h6 class="border">
|
<h6 class="border">
|
||||||
|
|||||||
@@ -116,7 +116,7 @@
|
|||||||
{{ $surveyor->userPenilaiTeam->name }}
|
{{ $surveyor->userPenilaiTeam->name }}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="flex w-full text-gray-600 font-medium text-sm">{{ $permohonan->region->name }}
|
<p class="flex w-full text-gray-600 font-medium text-sm">{{ checkRegionUserName($surveyor->userPenilaiTeam->id) }}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<label class="form-label max-w-56">
|
<label class="form-label max-w-56">
|
||||||
@@ -129,7 +129,7 @@
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="flex w-full text-gray-600 font-medium text-sm">
|
<p class="flex w-full text-gray-600 font-medium text-sm">
|
||||||
{{ $permohonan->region->name }}
|
{{ checkRegionUserName($penilai->userPenilaiTeam->id) }}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user