Mengubah Tujuan Penilaian KJPP sebelumnya diambil dari tabel penawaran.tujuan_penilaian_kjpp_id menjadi tabel tujuan_penilaian_kjpp.name di proses_penawaran

This commit is contained in:
2024-10-18 10:32:05 +07:00
parent 82d5b54d04
commit f8867005af
3 changed files with 133 additions and 148 deletions

View File

@@ -46,7 +46,7 @@ class ProsesPenawaranController extends Controller
$query->where(function ($q) use ($search) { $query->where(function ($q) use ($search) {
$q->where('nomor_registrasi', 'LIKE', '%' . $search . '%'); $q->where('nomor_registrasi', 'LIKE', '%' . $search . '%');
$q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%'); $q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('tujuanPenilaianKJPP', 'name', 'LIKE', '%' . $search . '%');
$q->orWhere('status', 'LIKE', '%' . $search . '%'); $q->orWhere('status', 'LIKE', '%' . $search . '%');
}); });
} }
@@ -75,7 +75,7 @@ class ProsesPenawaranController extends Controller
// Get the data for the current page // Get the data for the current page
//$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get(); //$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get();
$data = $query->get(); $data = $query->with(['tujuanPenilaianKJPP'])->get();
// Calculate the page count // Calculate the page count
$pageCount = ceil($totalRecords / $request->get('size')); $pageCount = ceil($totalRecords / $request->get('size'));
@@ -117,11 +117,9 @@ class ProsesPenawaranController extends Controller
$data['status'] = 'success'; $data['status'] = 'success';
if ($penawaran) { if ($penawaran) {
$i = 0; $i = 0;
foreach($penawrandetails as $obj) foreach ($penawrandetails as $obj) {
{
// dd($obj->dokumen_persetujuan); // dd($obj->dokumen_persetujuan);
if($obj->dokumen_persetujuan && Storage::disk('public')->exists($obj->dokumen_persetujuan)) if ($obj->dokumen_persetujuan && Storage::disk('public')->exists($obj->dokumen_persetujuan)) {
{
$penawrandetails_path = Storage::url($obj->dokumen_persetujuan); $penawrandetails_path = Storage::url($obj->dokumen_persetujuan);
$penawrandetails[$i]->dokumen_persetujuan = $penawrandetails_path; $penawrandetails[$i]->dokumen_persetujuan = $penawrandetails_path;
$i++; $i++;
@@ -161,22 +159,19 @@ class ProsesPenawaranController extends Controller
if ($validator['fails']) { if ($validator['fails']) {
$data['message'] = $validator['errors']; $data['message'] = $validator['errors'];
$data['status'] = 'error'; $data['status'] = 'error';
} } else {
else
{
try { try {
$dataku = ['updated_by' => Auth::id(), $dataku = [
'updated_by' => Auth::id(),
'updated_at' => now(), 'updated_at' => now(),
'biaya_penawaran' => str_replace(".", "", $request->biaya_penawaran) 'biaya_penawaran' => str_replace(".", "", $request->biaya_penawaran)
]; ];
if ($request->hasFile('dokumen_persetujuan')) if ($request->hasFile('dokumen_persetujuan')) {
{
$file_tmp = $request->file('dokumen_persetujuan'); $file_tmp = $request->file('dokumen_persetujuan');
$folderPath = 'uploads/penawaran/'; $folderPath = 'uploads/penawaran/';
if ($file_tmp->isValid()) if ($file_tmp->isValid()) {
{
$myFile = $file_tmp->getClientOriginalName(); // nama file with extension $myFile = $file_tmp->getClientOriginalName(); // nama file with extension
$file_name = pathinfo($myFile, PATHINFO_FILENAME); // nama file without extension $file_name = pathinfo($myFile, PATHINFO_FILENAME); // nama file without extension
@@ -195,26 +190,20 @@ class ProsesPenawaranController extends Controller
$data['status'] = 'success'; $data['status'] = 'success';
$data['detailpenawaran_id'] = $id; $data['detailpenawaran_id'] = $id;
$data['message'] = 'Proses Penawarn KJPP successfully'; $data['message'] = 'Proses Penawarn KJPP successfully';
} } else {
else
{
$data['status'] = 'error'; $data['status'] = 'error';
$data['message'] = 'Silahkan upload file pdf'; $data['message'] = 'Silahkan upload file pdf';
} }
} } else {
else
{
$data['status'] = 'error'; $data['status'] = 'error';
$data['message'] = 'Silahkan upload file'; $data['message'] = 'Silahkan upload file';
} }
} catch (Exception $e) { } catch (Exception $e) {
$data['status'] = 'error'; $data['status'] = 'error';
$data['message'] = 'Proses Penawarn KJPP failed.'; $data['message'] = 'Proses Penawarn KJPP failed.';
} }
} }
} else { } else {
$data['status'] = 'error'; $data['status'] = 'error';
$data['message'] = 'no ajax request'; $data['message'] = 'no ajax request';
@@ -258,20 +247,20 @@ class ProsesPenawaranController extends Controller
$checkActiveDateRange = $this->checkActiveDateRangePenawaran($model->start_date, $model->end_date); $checkActiveDateRange = $this->checkActiveDateRangePenawaran($model->start_date, $model->end_date);
// cek masa aktif penawaran // cek masa aktif penawaran
if($checkActiveDateRange) if ($checkActiveDateRange) {
{
$checkKelengkapanDetailKJPP = $this->checkKelengkapanDetailKJPP($id); $checkKelengkapanDetailKJPP = $this->checkKelengkapanDetailKJPP($id);
if($checkKelengkapanDetailKJPP) if ($checkKelengkapanDetailKJPP) {
{
DB::beginTransaction(); DB::beginTransaction();
try { try {
$dataku = ['status' => 'tendered', $dataku = [
'status' => 'tendered',
'updated_by' => Auth::id(), 'updated_by' => Auth::id(),
'updated_at' => now() 'updated_at' => now()
]; ];
$dataPermohonan = ['status' => 'tendered', $dataPermohonan = [
'status' => 'tendered',
'updated_by' => Auth::id(), 'updated_by' => Auth::id(),
'updated_at' => now() 'updated_at' => now()
]; ];
@@ -285,24 +274,17 @@ class ProsesPenawaranController extends Controller
$data['message'] = "Sukses melakukan Proses Penawaran"; $data['message'] = "Sukses melakukan Proses Penawaran";
$data['status'] = 'success'; $data['status'] = 'success';
} catch (Exception $e) { } catch (Exception $e) {
DB::rollBack(); DB::rollBack();
// dd($e); // dd($e);
$data['message'] = "Gagal melakukan Proses Penawaran"; $data['message'] = "Gagal melakukan Proses Penawaran";
$data['status'] = 'error'; $data['status'] = 'error';
} }
} else {
}
else
{
$data['message'] = "Silahkan lengkapi data KJPP"; $data['message'] = "Silahkan lengkapi data KJPP";
$data['status'] = 'error'; $data['status'] = 'error';
} }
} else {
}
else
{
$data['message'] = "Penawaran sudah di tutup"; $data['message'] = "Penawaran sudah di tutup";
$data['status'] = 'error'; $data['status'] = 'error';
} }
@@ -317,27 +299,20 @@ class ProsesPenawaranController extends Controller
$todays_date = strtotime(now()); $todays_date = strtotime(now());
$allow = true; $allow = true;
if ($todays_date >= $start_date && $todays_date <= $end_date) if ($todays_date >= $start_date && $todays_date <= $end_date) {
{
//Penawaran dibuka //Penawaran dibuka
$allow = true; $allow = true;
} } else {
else if ($todays_date < $start_date) {
{
if($todays_date < $start_date)
{
//Penawaran Belum dibuka //Penawaran Belum dibuka
$allow = true; $allow = true;
} } else {
else
{
//Penawaran sudah ditutup //Penawaran sudah ditutup
$allow = false; $allow = false;
} }
} }
return $allow; return $allow;
} }
public function checkKelengkapanDetailKJPP($id) public function checkKelengkapanDetailKJPP($id)
@@ -360,13 +335,11 @@ class ProsesPenawaranController extends Controller
// $sql = DB::getQueryLog(); // $sql = DB::getQueryLog();
if (sizeof($query)>0) if (sizeof($query) > 0) {
{
$allow = false; $allow = false;
} }
return $allow; return $allow;
} }
public function updateStatusPenawaranKJPP(Request $request, $id): JsonResponse public function updateStatusPenawaranKJPP(Request $request, $id): JsonResponse
@@ -379,7 +352,8 @@ class ProsesPenawaranController extends Controller
$model = PenawaranDetailTender::findOrFail($id); $model = PenawaranDetailTender::findOrFail($id);
$data['id'] = $id; $data['id'] = $id;
$dataku = ['status' => '0', $dataku = [
'status' => '0',
'updated_by' => Auth::id(), 'updated_by' => Auth::id(),
'updated_at' => now() 'updated_at' => now()
]; ];

View File

@@ -3,6 +3,7 @@
namespace Modules\Lpj\Models; namespace Modules\Lpj\Models;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Modules\Lpj\Models\TujuanPenilaianKJPP;
use Modules\Lpj\Models\PenawaranDetailTender; use Modules\Lpj\Models\PenawaranDetailTender;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\HasMany; // andy add use Illuminate\Database\Eloquent\Relations\HasMany; // andy add
@@ -29,4 +30,10 @@ class PenawaranTender extends Model
{ {
return $this->hasMany(PenawaranDetailTender::class, 'penawaran_id'); return $this->hasMany(PenawaranDetailTender::class, 'penawaran_id');
} }
// menambahkan relasi tujuan penilaian KJPP
public function tujuanPenilaianKJPP()
{
return $this->hasMany(TujuanPenilaianKJPP::class, 'id', 'tujuan_penilaian_kjpp_id');
}
} }

View File

@@ -6,7 +6,9 @@
@section('content') @section('content')
<div class="grid"> <div class="grid">
<div class="card card-grid min-w-full" data-datatable="false" data-datatable-page-size="5" data-datatable-state-save="false" id="prosespenawaran-table" data-api-url="{{ route('tender.prosespenawaran.datatables') }}"> <div class="card card-grid min-w-full" data-datatable="false" data-datatable-page-size="5"
data-datatable-state-save="false" id="prosespenawaran-table"
data-api-url="{{ route('tender.prosespenawaran.datatables') }}">
<div class="card-header py-5 flex-wrap"> <div class="card-header py-5 flex-wrap">
<h3 class="card-title"> <h3 class="card-title">
Daftar Proses Penawaran Daftar Proses Penawaran
@@ -25,7 +27,8 @@
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="scrollable-x-auto"> <div class="scrollable-x-auto">
<table class="table table-auto table-border align-middle text-gray-700 font-medium text-sm" data-datatable-table="true"> <table class="table table-auto table-border align-middle text-gray-700 font-medium text-sm"
data-datatable-table="true">
<thead> <thead>
<tr> <tr>
<th class="w-14"> <th class="w-14">
@@ -44,7 +47,7 @@
<span class="sort-icon"> </span> </span> <span class="sort-icon"> </span> </span>
</th> </th>
<th class="min-w-[150px]" data-datatable-column="tujuan_penilaian_kjpp_id"> <th class="min-w-[150px]" data-datatable-column="tujuan_penilaian_kjpp_id">
<span class="sort"> <span class="sort-label"> Tujuan Penilaian </span> <span class="sort"> <span class="sort-label"> Tujuan Penilaian KJPP </span>
<span class="sort-icon"> </span> </span> <span class="sort-icon"> </span> </span>
</th> </th>
<th class="min-w-[150px]" data-datatable-column="penawarandetails_count"> <th class="min-w-[150px]" data-datatable-column="penawarandetails_count">
@@ -60,7 +63,8 @@
</thead> </thead>
</table> </table>
</div> </div>
<div class="card-footer justify-center md:justify-between flex-col md:flex-row gap-3 text-gray-600 text-2sm font-medium"> <div
class="card-footer justify-center md:justify-between flex-col md:flex-row gap-3 text-gray-600 text-2sm font-medium">
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
Show Show
<select class="select select-sm w-16" data-datatable-size="true" name="perpage"> </select> per page <select class="select select-sm w-16" data-datatable-size="true" name="perpage"> </select> per page
@@ -78,8 +82,7 @@
@push('scripts') @push('scripts')
<script type="text/javascript"> <script type="text/javascript">
function showPenawaranData(regId) function showPenawaranData(regId) {
{
var url = "{{ url('tender/prosespenawaran') }}/" + regId; var url = "{{ url('tender/prosespenawaran') }}/" + regId;
$(location).attr('href', url); $(location).attr('href', url);
} }
@@ -112,8 +115,11 @@
start_date: { start_date: {
title: 'Tanggal Penawaran', title: 'Tanggal Penawaran',
}, },
tujuan_penilaian_kjpp_id: { tujuan_penilaian_k_j_p_p: {
title: 'Tujuan Penilaian', title: 'Tujuan Penilaian KJPP',
render: (item, data) => {
return data.tujuan_penilaian_k_j_p_p[0].name
}
}, },
penawarandetails_count: { penawarandetails_count: {
title: 'Total KJPP', title: 'Total KJPP',
@@ -147,7 +153,5 @@
dataTable.search(searchValue, true); dataTable.search(searchValue, true);
}); });
</script> </script>
@endpush @endpush