Tambah model HolidayCalendar dan fungsi hitungHariKerja
Menambahkan file model HolidayCalendar dan fungsi hitungHariKerja ke dalam helper Lpj.php untuk menghitung jumlah hari kerja antara dua tanggal dengan mengabaikan akhir pekan dan hari libur yang tercatat dalam HolidayCalendar.
This commit is contained in:
@@ -1,11 +1,13 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Modules\Lpj\Models\PenawaranDetailTender;
|
use Modules\Lpj\Models\HolidayCalendar;
|
||||||
use Modules\Lpj\Models\PenawaranTender;
|
use Modules\Lpj\Models\PenawaranDetailTender;
|
||||||
|
use Modules\Lpj\Models\PenawaranTender;
|
||||||
|
|
||||||
function formatTanggalIndonesia($date)
|
|
||||||
{
|
function formatTanggalIndonesia($date)
|
||||||
|
{
|
||||||
$carbonDate = Carbon::parse($date);
|
$carbonDate = Carbon::parse($date);
|
||||||
$indonesianMonths = [
|
$indonesianMonths = [
|
||||||
'Januari',
|
'Januari',
|
||||||
@@ -23,35 +25,31 @@ function formatTanggalIndonesia($date)
|
|||||||
];
|
];
|
||||||
$month = $indonesianMonths[$carbonDate->month - 1];
|
$month = $indonesianMonths[$carbonDate->month - 1];
|
||||||
return $carbonDate->format('d') . ' ' . $month . ' ' . $carbonDate->format('Y');
|
return $carbonDate->format('d') . ' ' . $month . ' ' . $carbonDate->format('Y');
|
||||||
}
|
}
|
||||||
|
|
||||||
function formatTanggalIndonesia2($date)
|
function formatTanggalIndonesia2($date)
|
||||||
{
|
{
|
||||||
\Carbon\Carbon::setLocale('id');
|
Carbon::setLocale('id');
|
||||||
$waktu = \Carbon\Carbon::parse($date);
|
$waktu = Carbon::parse($date);
|
||||||
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 . ', ' : '') .
|
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 ?? '');
|
||||||
(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);
|
||||||
@@ -73,17 +71,15 @@ function checkActiveDateRangePenawaran($id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
return $allow;
|
return $allow;
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkKelengkapanDetailKJPP($id)
|
function checkKelengkapanDetailKJPP($id)
|
||||||
{
|
{
|
||||||
$allow = true;
|
$allow = true;
|
||||||
// DB::enableQueryLog();
|
// DB::enableQueryLog();
|
||||||
// detail_penawaran apakah isian biaya_penawaran, attachment, dokumen_persetujuan sudah lengkap?
|
// detail_penawaran apakah isian biaya_penawaran, attachment, dokumen_persetujuan sudah lengkap?
|
||||||
$query = PenawaranDetailTender::select('id')
|
$query = PenawaranDetailTender::select('id')->where('penawaran_id', '=', $id)->where('status', '=', 1)->where(
|
||||||
->where('penawaran_id', '=', $id)
|
function ($query) {
|
||||||
->where('status','=',1)
|
|
||||||
->where(function ($query) {
|
|
||||||
// no_proposal
|
// no_proposal
|
||||||
$query->orWhere('no_proposal', '', "");
|
$query->orWhere('no_proposal', '', "");
|
||||||
$query->orWhereNull('no_proposal');
|
$query->orWhereNull('no_proposal');
|
||||||
@@ -100,7 +96,8 @@ function checkKelengkapanDetailKJPP($id)
|
|||||||
|
|
||||||
$query->orWhere('dokumen_persetujuan', '', "");
|
$query->orWhere('dokumen_persetujuan', '', "");
|
||||||
$query->orWhereNull('dokumen_persetujuan');
|
$query->orWhereNull('dokumen_persetujuan');
|
||||||
})->get();
|
},
|
||||||
|
)->get();
|
||||||
// $sql = DB::getQueryLog();
|
// $sql = DB::getQueryLog();
|
||||||
|
|
||||||
|
|
||||||
@@ -109,12 +106,11 @@ function checkKelengkapanDetailKJPP($id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
return $allow;
|
return $allow;
|
||||||
}
|
}
|
||||||
|
|
||||||
// convert
|
|
||||||
function convertSlug($slug)
|
|
||||||
{
|
|
||||||
|
|
||||||
|
// convert
|
||||||
|
function convertSlug($slug)
|
||||||
|
{
|
||||||
$words = explode('-', $slug);
|
$words = explode('-', $slug);
|
||||||
|
|
||||||
foreach ($words as $index => $word) {
|
foreach ($words as $index => $word) {
|
||||||
@@ -122,5 +118,33 @@ function convertSlug($slug)
|
|||||||
}
|
}
|
||||||
|
|
||||||
return implode(' ', $words);
|
return implode(' ', $words);
|
||||||
}
|
}
|
||||||
// andy add
|
|
||||||
|
// andy add
|
||||||
|
|
||||||
|
|
||||||
|
function hitungHariKerja($tanggalMulai, $tanggalSelesai)
|
||||||
|
{
|
||||||
|
$tanggalMulai = Carbon::parse($tanggalMulai)->startOfDay();
|
||||||
|
$tanggalSelesai = Carbon::parse($tanggalSelesai)->endOfDay();
|
||||||
|
|
||||||
|
$hariKerja = 0;
|
||||||
|
$tanggalSekarang = $tanggalMulai->copy();
|
||||||
|
|
||||||
|
// Ambil semua tanggal libur dari tabel holiday calendar
|
||||||
|
$tanggalLibur = HolidayCalendar::whereBetween('date', [$tanggalMulai, $tanggalSelesai])->pluck('date')->map(
|
||||||
|
function ($item) {
|
||||||
|
return Carbon::parse($item)->format('Y-m-d');
|
||||||
|
},
|
||||||
|
)->toArray();
|
||||||
|
|
||||||
|
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'), $tanggalLibur)) {
|
||||||
|
$hariKerja++;
|
||||||
|
}
|
||||||
|
$tanggalSekarang->addDay();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $hariKerja;
|
||||||
|
}
|
||||||
|
|||||||
10
app/Models/HolidayCalendar.php
Normal file
10
app/Models/HolidayCalendar.php
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Models;
|
||||||
|
|
||||||
|
use Modules\Basicdata\Models\HolidayCalendar as BasicdataHolidayCalendar;
|
||||||
|
|
||||||
|
class HolidayCalendar extends BasicdataHolidayCalendar
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user