Merge remote-tracking branch 'composer/andydev' into staging
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
<?php
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Modules\Lpj\Models\HolidayCalendar;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Modules\Lpj\Models\HolidayCalendar;
|
||||
use Modules\Lpj\Models\PenawaranDetailTender;
|
||||
use Modules\Lpj\Models\PenawaranTender;
|
||||
|
||||
@@ -101,6 +102,28 @@
|
||||
return implode(' ', $words);
|
||||
}
|
||||
|
||||
// generate last penawaran.code
|
||||
function onLastnumberCodePenawaran(): string
|
||||
{
|
||||
// chek data penawaran terakhir --> mengurutkan data berdasarkan kolom `created_at` secara DESC
|
||||
$maxCode = PenawaranTender::max('code');
|
||||
// $penawaran = PenawaranTender::latest()->first();
|
||||
$penawaran = PenawaranTender::where('code','=',$maxCode)->first();
|
||||
$code_penawaran_last='';
|
||||
$noUrutAkhirString = sprintf("%04s", 1);
|
||||
if($penawaran)
|
||||
{
|
||||
$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));
|
||||
}
|
||||
}
|
||||
|
||||
return 'NP'.Carbon::now()->format('y').$noUrutAkhirString;
|
||||
}
|
||||
// andy add
|
||||
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ namespace Modules\Lpj\Http\Controllers;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Carbon\Carbon;
|
||||
use Exception;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
@@ -40,7 +41,18 @@ class OtorisasiPenawaranController extends Controller
|
||||
|
||||
// Retrieve data from the database
|
||||
$query =PenawaranTender::query()
|
||||
->select('penawaran.*',DB::raw("CONCAT(DATE_FORMAT(penawaran.start_date, '%d %M %Y'), ' - ', DATE_FORMAT(penawaran.end_date, '%d %M %Y')) AS date_range"), 'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name')
|
||||
->select('penawaran.*',
|
||||
'debitures.name as debitures_name',
|
||||
'permohonan.tanggal_permohonan',
|
||||
'users.name as user_pemohon',
|
||||
'branches.name as branches_name',
|
||||
'tujuan_penilaian.name as tujuan_penilaian_name',
|
||||
'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name')
|
||||
->leftJoin('permohonan', 'permohonan.nomor_registrasi', '=', 'penawaran.nomor_registrasi')
|
||||
->leftJoin('debitures', 'debitures.id', '=', 'permohonan.debiture_id')
|
||||
->leftJoin('users', 'users.id', '=', 'permohonan.user_id')
|
||||
->leftJoin('branches', 'branches.id', '=', 'permohonan.branch_id')
|
||||
->leftJoin('tujuan_penilaian', 'tujuan_penilaian.id','=','permohonan.tujuan_penilaian_id')
|
||||
->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id')
|
||||
->where('penawaran.status','=','proposal-tender')
|
||||
->withCount('penawarandetails');
|
||||
@@ -82,6 +94,27 @@ class OtorisasiPenawaranController extends Controller
|
||||
//$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get();
|
||||
$data = $query->get();
|
||||
|
||||
// format date
|
||||
$i = 0;
|
||||
foreach ($data as $obj) {
|
||||
|
||||
// tanggal_permohonan
|
||||
if ($obj->tanggal_permohonan) {
|
||||
$data[$i]->tanggal_permohonan = Carbon::parse($obj->tanggal_permohonan)->format('d M Y');
|
||||
}
|
||||
|
||||
// date_range
|
||||
$data[$i]->date_range = "-";
|
||||
if ($obj->start_date && $obj->end_date)
|
||||
{
|
||||
$data[$i]->date_range = Carbon::parse($obj->start_date)->format('d M Y') . ' - ' .
|
||||
Carbon::parse($obj->end_date)->format('d M Y');
|
||||
}
|
||||
|
||||
$i++;
|
||||
}
|
||||
// format date
|
||||
|
||||
// Calculate the page count
|
||||
$pageCount = ceil($totalRecords / $request->get('size'));
|
||||
|
||||
|
||||
@@ -13,12 +13,16 @@ use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Modules\Lpj\Http\Requests\ProsesPenawaranRequest;
|
||||
use Modules\Lpj\Models\JenisLaporan;
|
||||
use Modules\Lpj\Models\KJPP;
|
||||
use Modules\Lpj\Models\PenawaranDetailTender;
|
||||
use Modules\Lpj\Models\PenawaranDetailTenderLog;
|
||||
use Modules\Lpj\Models\PenawaranTender;
|
||||
|
||||
use Modules\Lpj\Models\Permohonan;
|
||||
use Modules\Lpj\Models\StatusPermohonan;
|
||||
use Modules\Lpj\Models\TujuanPenilaianKJPP;
|
||||
|
||||
class ProsesPenawaranController extends Controller
|
||||
{
|
||||
@@ -40,7 +44,51 @@ class ProsesPenawaranController extends Controller
|
||||
}
|
||||
|
||||
// Retrieve data from the database
|
||||
$query = PenawaranTender::query()->whereIn('status', ['tender', 'proposal-tender'])->withCount('penawarandetails');
|
||||
// $query = PenawaranTender::query()->whereIn('status', ['tender', 'proposal-tender'])->withCount('penawarandetails');
|
||||
|
||||
// penawaran need union with permohonan
|
||||
$query = PenawaranTender::query()->whereIn('penawaran.status', ['tender', 'proposal-tender'])
|
||||
->select('penawaran.id',
|
||||
'penawaran.nomor_registrasi',
|
||||
'penawaran.code as penawaran_code',
|
||||
'penawaran.start_date',
|
||||
'penawaran.end_date',
|
||||
'penawaran.status as statusnya',
|
||||
'debitures.name as debitures_name',
|
||||
'permohonan.tanggal_permohonan',
|
||||
'users.name as user_pemohon',
|
||||
'branches.name as branches_name',
|
||||
'tujuan_penilaian.name as tujuan_penilaian_name',
|
||||
'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name'
|
||||
)
|
||||
->withCount('penawarandetails')
|
||||
->leftJoin('permohonan', 'permohonan.nomor_registrasi', '=', 'penawaran.nomor_registrasi')
|
||||
->leftJoin('users', 'users.id', '=', 'permohonan.user_id')
|
||||
->leftJoin('branches', 'branches.id', '=', 'permohonan.branch_id')
|
||||
->leftJoin('tujuan_penilaian', 'tujuan_penilaian.id','=','permohonan.tujuan_penilaian_id')
|
||||
->leftJoin('debitures', 'debitures.id', '=', 'permohonan.debiture_id')
|
||||
->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id', '=', 'penawaran.tujuan_penilaian_kjpp_id');
|
||||
|
||||
$permohonanQuery = Permohonan::whereIn('permohonan.status', ['registered'])->where('permohonan.jenis_penilaian_id', '=', 2)
|
||||
->select('permohonan.id',
|
||||
'permohonan.nomor_registrasi',
|
||||
DB::raw('"" as penawaran_code'),
|
||||
DB::raw('"" as start_date'),
|
||||
DB::raw('"" as end_date'),
|
||||
'permohonan.status as statusnya',
|
||||
'debitures.name as debitures_name',
|
||||
'permohonan.tanggal_permohonan',
|
||||
'users.name as user_pemohon',
|
||||
'branches.name as branches_name',
|
||||
'tujuan_penilaian.name as tujuan_penilaian_name',
|
||||
DB::raw('"" as tujuan_penilaian_kjpp_name'),
|
||||
DB::raw('"-" as penawarandetails_count'))
|
||||
->leftJoin('users', 'users.id', '=', 'permohonan.user_id')
|
||||
->leftJoin('branches', 'branches.id', '=', 'permohonan.branch_id')
|
||||
->leftJoin('debitures', 'debitures.id', '=', 'permohonan.debiture_id')
|
||||
->leftJoin('tujuan_penilaian', 'tujuan_penilaian.id','=','permohonan.tujuan_penilaian_id');
|
||||
$query->union($permohonanQuery);
|
||||
// penawaran need union with permohonan
|
||||
|
||||
// Apply search filter if provided
|
||||
if ($request->has('search') && !empty($request->get('search'))) {
|
||||
@@ -76,8 +124,29 @@ class ProsesPenawaranController extends Controller
|
||||
$filteredRecords = $query->count();
|
||||
|
||||
// Get the data for the current page
|
||||
//$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get();
|
||||
$data = $query->with(['tujuanPenilaianKjpp','permohonan','permohonan.debiture'])->get();
|
||||
// $data = $query->with(['tujuanPenilaianKjpp','permohonan','permohonan.debiture'])->get();
|
||||
$data = $query->get();
|
||||
|
||||
// format date
|
||||
$i = 0;
|
||||
foreach ($data as $obj) {
|
||||
|
||||
// tanggal_permohonan
|
||||
if ($obj->tanggal_permohonan) {
|
||||
$data[$i]->tanggal_permohonan = Carbon::parse($obj->tanggal_permohonan)->format('d M Y');
|
||||
}
|
||||
|
||||
// date_range
|
||||
$data[$i]->date_range = "-";
|
||||
if ($obj->start_date && $obj->end_date)
|
||||
{
|
||||
$data[$i]->date_range = Carbon::parse($obj->start_date)->format('d M Y') . ' - ' .
|
||||
Carbon::parse($obj->end_date)->format('d M Y');
|
||||
}
|
||||
|
||||
$i++;
|
||||
}
|
||||
// format date
|
||||
|
||||
// Calculate the page count
|
||||
$pageCount = ceil($totalRecords / $request->get('size'));
|
||||
@@ -826,4 +895,77 @@ class ProsesPenawaranController extends Controller
|
||||
|
||||
return response()->json($data);
|
||||
}
|
||||
|
||||
// merger permohonan
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*/
|
||||
public function createPenawaran($id)
|
||||
{
|
||||
// id ==> permohonan.id
|
||||
$permohonan = Permohonan::find($id);
|
||||
// dd($permohonan);
|
||||
$status = StatusPermohonan::all();
|
||||
$tujuan_penilaian_kjpp = TujuanPenilaianKJPP::all();
|
||||
$jenis_laporan = JenisLaporan::all();
|
||||
$kjpp = KJPP::all();
|
||||
|
||||
return view('lpj::prosespenawaran.createPenawaran', compact('id', 'status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'permohonan'));
|
||||
}
|
||||
|
||||
public function storePenawaran(ProsesPenawaranRequest $request, $id)
|
||||
{
|
||||
$validated = $request->validated();
|
||||
|
||||
DB::beginTransaction();
|
||||
|
||||
try {
|
||||
|
||||
$permohonan = Permohonan::find($id);
|
||||
|
||||
$userId = Auth::user()->id;
|
||||
$validated['nomor_registrasi'] = $permohonan->nomor_registrasi;
|
||||
$validated['status'] = 'tender';
|
||||
$validated['updated_by'] = $userId; // Updating the record
|
||||
$validated['end_date'] = $request->input('end_date') . ' 23:59:59';
|
||||
|
||||
$permohonan->update($validated);
|
||||
|
||||
// Adding created_by for the new penawaran record
|
||||
$validated['created_by'] = $userId;
|
||||
$validated['code'] = onLastnumberCodePenawaran();
|
||||
$penawaran = PenawaranTender::create($validated);
|
||||
|
||||
$kjpps = $request->input('kjpp', []);
|
||||
|
||||
foreach ($kjpps as $kjpp) {
|
||||
PenawaranDetailTender::create([
|
||||
'penawaran_id' => $penawaran->id,
|
||||
'kjpp_rekanan_id' => $kjpp,
|
||||
'created_by' => $userId, // Set created_by for details
|
||||
'updated_by' => $userId
|
||||
]);
|
||||
}
|
||||
|
||||
// Commit the transaction
|
||||
DB::commit();
|
||||
|
||||
return redirect()
|
||||
->route('tender.prosespenawaran.index')
|
||||
->with('success', 'Data Penawaran created successfully');
|
||||
} catch (Exception $e) {
|
||||
DB::rollBack();
|
||||
|
||||
return redirect()
|
||||
->route('tender.prosespenawaran.createPenawaran', $id)
|
||||
->with('error', 'Validation failed: ' . $e);
|
||||
}
|
||||
}
|
||||
|
||||
public function showPermohonan($id)
|
||||
{
|
||||
$permohonan = Permohonan::find($id);
|
||||
return view('lpj::prosespenawaran.showPermohonan', compact('id', 'permohonan'));
|
||||
}
|
||||
// merger permohonan
|
||||
}
|
||||
|
||||
85
app/Http/Requests/ProsesPenawaranRequest.php
Normal file
85
app/Http/Requests/ProsesPenawaranRequest.php
Normal file
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class ProsesPenawaranRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
$rules = [
|
||||
'kjpp.*' => 'exists:kjpp,id',
|
||||
'tujuan_penilaian_kjpp_id' => 'required',
|
||||
'jenis_laporan_id' => 'required',
|
||||
'start_date' => 'required',
|
||||
'end_date' => 'required',
|
||||
'catatan' => 'nullable'
|
||||
];
|
||||
|
||||
// if ($this->method() == 'PUT') {
|
||||
// $rules['code'] = 'required|max:50';
|
||||
// } else {
|
||||
// $rules['code'] = 'required|max:50|unique:penawaran,code';
|
||||
// }
|
||||
|
||||
return $rules;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'code.required' => 'Kode Penawaran Wajib diisi!',
|
||||
'code.max' => 'Kode Penawaran maksimal 255 huruf!',
|
||||
'code.unique' => 'Kode Penawaran tidak boleh sama!',
|
||||
'tujuan_penilaian_kjpp_id.required' => 'Tujuan Penilaian KJPP Wajib diisi!',
|
||||
'jenis_laporan_id.required' => 'Jenis Laporan Wajib diisi!',
|
||||
'start_date.required' => 'Tanggal Awal Wajib diisi!',
|
||||
'end_date.required' => 'Tanggal Akhir Wajib diisi!',
|
||||
];
|
||||
}
|
||||
|
||||
public function withValidator($validator)
|
||||
{
|
||||
$validator->after(function ($validator) {
|
||||
$startDate = strtotime($this->input('start_date'));
|
||||
$endDate = strtotime($this->input('end_date'));
|
||||
$today = strtotime(date('Y-m-d'));
|
||||
|
||||
// Jika dalam keadaan tambah penawaran maka munculkan pesan ini
|
||||
// if ($this->method() !== 'PUT') {
|
||||
// if ($startDate < $today) {
|
||||
// $validator->errors()->add('start_date', 'Tanggal Awal tidak boleh sebelum hari ini.');
|
||||
// }
|
||||
// }
|
||||
|
||||
if ($endDate < $startDate) {
|
||||
$validator->errors()->add('end_date', 'Tanggal Akhir tidak boleh lebih awal dari Tanggal Awal.');
|
||||
}
|
||||
|
||||
|
||||
// Validasi minimal 3 pilihan pada nama_kjpp
|
||||
$namaKjpp = $this->input('kjpp', []);
|
||||
|
||||
// jika nama KJPP itu kosong
|
||||
if (empty($namaKjpp)) {
|
||||
$validator->errors()->add('kjpp', 'Nama KJPP wajib diisi.');
|
||||
}
|
||||
// jika terisi kurang dari 3 item
|
||||
elseif (is_array($namaKjpp) && count($namaKjpp) < 3) {
|
||||
$validator->errors()->add('kjpp', 'Nama KJPP minimal 3 pilihan.');
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -36,14 +36,6 @@
|
||||
"permission": "",
|
||||
"roles": ["administrator", "admin"],
|
||||
"sub": [
|
||||
{
|
||||
"title": "Data Penawaran",
|
||||
"path": "tender.penawaran",
|
||||
"classes": "",
|
||||
"attributes": [],
|
||||
"permission": "",
|
||||
"roles": ["administrator", "admin"]
|
||||
},
|
||||
{
|
||||
"title": "Data Proses Penawaran",
|
||||
"path": "tender.prosespenawaran",
|
||||
|
||||
@@ -36,11 +36,11 @@
|
||||
|
||||
<div class="mb-5">
|
||||
<h3 class="text-md font-medium text-gray-900">
|
||||
Kode Penawaran:
|
||||
Nomor Penawaran:
|
||||
</h3>
|
||||
<span class="text-2sm text-gray-700">
|
||||
<label class="card-title" id="textCodePenawaran">
|
||||
Kode Penawaran
|
||||
Nomor Penawaran
|
||||
</label>
|
||||
</span>
|
||||
</div>
|
||||
@@ -69,7 +69,9 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="w-14 text-center">No</th>
|
||||
<th class="min-w-[250px]">KJPP</th>
|
||||
<th class="min-w-[80px]">KJPP</th>
|
||||
<th>No Proposal</th>
|
||||
<th>Tanggal Proposal</th>
|
||||
<th>Biaya Penawaran</th>
|
||||
<th>Dokumen Penawaran</th>
|
||||
<th class="min-w-[50px] text-center">Action</th>
|
||||
@@ -98,7 +100,9 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="w-14 text-center">No</th>
|
||||
<th class="min-w-[250px]">KJPP</th>
|
||||
<th class="min-w-[80px]">KJPP</th>
|
||||
<th>No Proposal</th>
|
||||
<th>Tanggal Proposal</th>
|
||||
<th>Biaya Penawaran</th>
|
||||
<th>Dokumen Penawaran</th>
|
||||
<th>created_at</th>
|
||||
|
||||
@@ -36,17 +36,37 @@
|
||||
<span class="sort-icon"> </span> </span>
|
||||
</th>
|
||||
<th class="min-w-[150px]" data-datatable-column="code">
|
||||
<span class="sort"> <span class="sort-label"> Kode Penawaran </span>
|
||||
<span class="sort"> <span class="sort-label"> Nomor Penawaran</span>
|
||||
<span class="sort-icon"> </span> </span>
|
||||
</th>
|
||||
<th class="min-w-[150px]" data-datatable-column="start_date">
|
||||
<th class="min-w-[150px]" data-datatable-column="tanggal_permohonan">
|
||||
<span class="sort"> <span class="sort-label"> Tanggal Permohonan </span>
|
||||
<span class="sort-icon"> </span> </span>
|
||||
</th>
|
||||
<th class="min-w-[150px]" data-datatable-column="user_pemohon">
|
||||
<span class="sort"> <span class="sort-label"> User Pemohon </span>
|
||||
<span class="sort-icon"> </span> </span>
|
||||
</th>
|
||||
<th class="min-w-[150px]" data-datatable-column="branches_name">
|
||||
<span class="sort"> <span class="sort-label"> Cabang Pemohon </span>
|
||||
<span class="sort-icon"> </span> </span>
|
||||
</th>
|
||||
<th class="min-w-[150px]" data-datatable-column="debiture">
|
||||
<span class="sort"> <span class="sort-label"> Nama Debitur </span>
|
||||
<span class="sort-icon"> </span> </span>
|
||||
</th>
|
||||
<th class="min-w-[150px]" data-datatable-column="date_range">
|
||||
<span class="sort"> <span class="sort-label"> Tanggal Penawaran </span>
|
||||
<span class="sort-icon"> </span> </span>
|
||||
</th>
|
||||
<th class="min-w-[150px]" data-datatable-column="tujuan_penilaian_kjpp_id">
|
||||
<th class="min-w-[150px]" data-datatable-column="tujuan_penilaian_name">
|
||||
<span class="sort"> <span class="sort-label"> Tujuan Penilaian </span>
|
||||
<span class="sort-icon"> </span> </span>
|
||||
</th>
|
||||
<th class="min-w-[150px]" data-datatable-column="tujuan_penilaian_kjpp_id">
|
||||
<span class="sort"> <span class="sort-label"> Tujuan Penilaian KJPP </span>
|
||||
<span class="sort-icon"> </span> </span>
|
||||
</th>
|
||||
<th class="min-w-[150px]" data-datatable-column="penawarandetails_count">
|
||||
<span class="sort"> <span class="sort-label"> Total KJPP </span>
|
||||
<span class="sort-icon"> </span> </span>
|
||||
@@ -107,13 +127,40 @@
|
||||
title: 'Nomor Registrasi',
|
||||
},
|
||||
code: {
|
||||
title: 'Kode Penawaran',
|
||||
title: 'Nomor Penawaran',
|
||||
},
|
||||
tanggal_permohonan: {
|
||||
title: 'Tanggal Permohonan',
|
||||
},
|
||||
user_pemohon: {
|
||||
title: 'User Pemohon',
|
||||
},
|
||||
branches_name: {
|
||||
title: 'Cabang Pemohon',
|
||||
},
|
||||
debiture: {
|
||||
title: 'Nama Debitur',
|
||||
render: (item, data) => {
|
||||
if(data.debitures_name) {
|
||||
return `${data.debitures_name}`;
|
||||
}
|
||||
return "-";
|
||||
}
|
||||
},
|
||||
date_range: {
|
||||
title: 'Tanggal Penawaran',
|
||||
},
|
||||
tujuan_penilaian_kjpp_name: {
|
||||
tujuan_penilaian_name: {
|
||||
title: 'Tujuan Penilaian',
|
||||
render: (item, data) => {
|
||||
return data.tujuan_penilaian_name
|
||||
}
|
||||
},
|
||||
tujuan_penilaian_kjpp: {
|
||||
title: 'Tujuan Penilaian KJPP',
|
||||
render: (item, data) => {
|
||||
return data.tujuan_penilaian_kjpp_name
|
||||
}
|
||||
},
|
||||
penawarandetails_count: {
|
||||
title: 'Total KJPP',
|
||||
@@ -122,7 +169,10 @@
|
||||
},
|
||||
},
|
||||
status: {
|
||||
title: 'Status'
|
||||
title: 'Status',
|
||||
render: (item, data) => {
|
||||
return data.status.toUpperCase()
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
title: 'Status',
|
||||
|
||||
@@ -63,6 +63,8 @@
|
||||
$.each(datas, function(key, value){
|
||||
|
||||
var kjppName = value.kjpp_code+' - '+value.kjpp_name;
|
||||
var no_proposal = (value.no_proposal)??'';// alert(no_proposal);
|
||||
var tgl_proposal = (value.tgl_proposal)??'';// alert(tgl_proposal);
|
||||
var biaya_penawaran = value.biaya_penawaran;// alert(biaya_penawaran);
|
||||
var htmlDokumenPersetujuanDownload='';
|
||||
var dokumenPersetujuanDownload = value.dokumen_persetujuan;
|
||||
@@ -79,6 +81,8 @@
|
||||
var markup = '<tr>';
|
||||
markup +='<td valign="top">'+i+'</td>';
|
||||
markup +='<td valign="top"><label id="{{$route[1]}}_kjppName_'+value.id+'">'+kjppName+'</label></td>';
|
||||
markup +='<td valign="top">'+no_proposal+'</td>';
|
||||
markup +='<td valign="top">'+tgl_proposal+'</td>';
|
||||
markup +='<td valign="top" align="right">Rp.'+biaya_penawaran_format+'</td>';
|
||||
markup +='<td><em id="{{$route[1]}}_dokumenPersetujuan_msg_'+value.id+'" class="alert text-danger text-sm"></em>'+htmlDokumenPersetujuanDownload+'</td>';
|
||||
markup +='<td><div class="flex flex-nowrap justify-center">';
|
||||
@@ -113,6 +117,8 @@
|
||||
$.each(datas, function(key, value){
|
||||
|
||||
var kjppName = value.kjpp_code+' - '+value.kjpp_name;
|
||||
var no_proposal = (value.no_proposal)??'';// alert(no_proposal);
|
||||
var tgl_proposal = (value.tgl_proposal)??'';// alert(tgl_proposal);
|
||||
var biaya_penawaran = value.biaya_penawaran;// alert(biaya_penawaran);
|
||||
var htmlDokumenPersetujuanDownload='';
|
||||
var dokumenPersetujuanDownload = value.dokumen_persetujuan;
|
||||
@@ -129,6 +135,8 @@
|
||||
var markup = '<tr>';
|
||||
markup +='<td valign="top">'+i+'</td>';
|
||||
markup +='<td valign="top"><label id="{{$route[1]}}_kjppName_'+value.id+'">'+kjppName+'</label></td>';
|
||||
markup +='<td valign="top">'+no_proposal+'</td>';
|
||||
markup +='<td valign="top">'+tgl_proposal+'</td>';
|
||||
markup +='<td valign="top" align="right">Rp.'+biaya_penawaran_format+'</td>';
|
||||
markup +='<td><em id="{{$route[1]}}_dokumenPersetujuan_msg_'+value.id+'" class="alert text-danger text-sm"></em>'+htmlDokumenPersetujuanDownload+'</td>';
|
||||
markup +='<td valign="top"><label id="{{$route[1]}}_kjppName_'+value.id+'">'+value.created_at2+'</label></td>';
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
</div>
|
||||
<div class="mb-5">
|
||||
<h3 class="text-md font-medium text-gray-900">
|
||||
Kode Penawaran:
|
||||
Nomor Penawaran:
|
||||
</h3>
|
||||
<span class="text-2sm text-gray-700">
|
||||
{{ $prosespenawaran->code }}
|
||||
|
||||
222
resources/views/prosespenawaran/createPenawaran.blade.php
Normal file
222
resources/views/prosespenawaran/createPenawaran.blade.php
Normal file
@@ -0,0 +1,222 @@
|
||||
@extends('layouts.main')
|
||||
@section('breadcrumbs')
|
||||
{{ Breadcrumbs::render(request()->route()->getName()) }}
|
||||
@endsection
|
||||
@php
|
||||
// $route = Route::currentRouteName();
|
||||
// dd($route); tender.prosespenawaran.create
|
||||
$route = explode('.', Route::currentRouteName());
|
||||
@endphp
|
||||
|
||||
@section('content')
|
||||
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
|
||||
|
||||
<div class="card pb-2.5">
|
||||
<div class="card-header" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
Tambah Data Penawaran
|
||||
</h3>
|
||||
<div class="flex items-center gap-2">
|
||||
<a href="{{ route('tender.prosespenawaran.showPermohonan', $id) }}" class="btn btn-xs btn-primary" title="Detail"><i class="ki-filled ki-abstract-26"></i> Detail</a>
|
||||
<a href="{{ route('tender.prosespenawaran.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
|
||||
</div>
|
||||
</div><!-- $id = permohonan.id -->
|
||||
<form action="{{ route('tender.prosespenawaran.storePenawaran', $id) }}" method="POST">
|
||||
@csrf
|
||||
<div class="card-body grid gap-5">
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Nomor Registrasi
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input class="flex w-full text-gray-600 font-medium text-sm input-custom" type="text"
|
||||
name="nomor_registrasi" readonly value="{{ $permohonan->nomor_registrasi ?? '-' }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Nama KJPP Sebelumnya
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input class="flex w-full text-gray-600 font-medium text-sm input-custom" type="text"
|
||||
name="nama_kjpp_sebelumnya" readonly value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Biaya KJPP Sebelumnya
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input class="flex w-full text-gray-600 font-medium text-sm input-custom" type="text"
|
||||
name="biaya_kjpp_sebelumnya" readonly value="">
|
||||
</div>
|
||||
<label class="form-label max-w-56">
|
||||
Tanggal Penilaian Sebelumnya
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input class="flex w-full text-gray-600 font-medium text-sm input-custom" type="text"
|
||||
name="tanggal_penilaian_sebelumnya" readonly value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Nomor Penawaran
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
-
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Data KJPP
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<select name="kjpp[]" multiple="multiple"
|
||||
class="input tomselect w-full @error('kjpp') border-danger @enderror" id="kjpp_select">
|
||||
<option value=""> - Pilih KJPP - </option>
|
||||
@foreach ($kjpp as $row)
|
||||
@if (isset($kjpp))
|
||||
<option value="{{ $row->id }}"
|
||||
{{ in_array($row->id, old('kjpp', [])) ? 'selected' : '' }}>
|
||||
{{ $row->name }}
|
||||
</option>
|
||||
@endif
|
||||
@endforeach
|
||||
</select>
|
||||
@error('kjpp')
|
||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Tujuan Penilaian KJPP
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<select id="tujuan_penilaian_kjpp_id"
|
||||
class="select w-full @error('tujuan_penilaian_kjpp_id') border-danger @enderror"
|
||||
name="tujuan_penilaian_kjpp_id">
|
||||
<option value=""> - Pilih Tujuan Penilaian KJPP - </option>
|
||||
@if (isset($tujuan_penilaian_kjpp))
|
||||
@foreach ($tujuan_penilaian_kjpp as $tp)
|
||||
<option value="{{ $tp->id }}"
|
||||
{{ old('tujuan_penilaian_kjpp_id') == $tp->id ? 'selected' : '' }}>
|
||||
{{ $tp->name }}
|
||||
</option>
|
||||
@endforeach
|
||||
@endif
|
||||
</select>
|
||||
@error('tujuan_penilaian_kjpp_id')
|
||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Tanggal Batas Waktu
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input class="input @error('start_date') border-danger @enderror" type="date"
|
||||
name="start_date" value="{{ old('start_date') }}">
|
||||
@error('start_date')
|
||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||
@enderror
|
||||
</div>
|
||||
-
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input class="input @error('end_date') border-danger @enderror" name="end_date"
|
||||
value="{{ old('end_date') }}" type="date">
|
||||
@error('end_date')
|
||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Catatan
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<textarea class="textarea @error('catatan') border-danger @enderror" name="catatan" rows="3" id="address">{{ old('catatan') }}</textarea>
|
||||
@error('catatan')
|
||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Jenis Laporan
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<select id="jenis_laporan_id"
|
||||
class="select w-full @error('jenis_laporan_id') border-danger @enderror"
|
||||
name="jenis_laporan_id">
|
||||
<option value=""> - Pilih Jenis Laporan - </option>
|
||||
@if (isset($jenis_laporan))
|
||||
@foreach ($jenis_laporan as $jl)
|
||||
<option value="{{ $jl->id }}"
|
||||
{{ old('jenis_laporan_id') == $jl->id ? 'selected' : '' }}>
|
||||
{{ $jl->name }}
|
||||
</option>
|
||||
@endforeach
|
||||
@endif
|
||||
</select>
|
||||
@error('jenis_laporan_id')
|
||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 status-custom">
|
||||
<label class="form-label max-w-56">
|
||||
Status
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<select class="select w-full @error('status') border-danger @enderror" name="status">
|
||||
<option value="">Pilih Status</option>
|
||||
@if (isset($status))
|
||||
@foreach ($status as $s)
|
||||
<option value="{{ $s->name }}"
|
||||
{{ old('status') == $s->name ? 'selected' : '' }}>
|
||||
{{ $s->name }}
|
||||
</option>
|
||||
@endforeach
|
||||
@endif
|
||||
</select>
|
||||
@error('status')
|
||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex justify-end gap-1.5">
|
||||
@if (isset($penawaran->nomor_registrasi))
|
||||
<a href="{{ route('tender.penawaran.showSuratTender', $noreg) }}" class="btn btn-primary">
|
||||
Surat Tender
|
||||
</a>
|
||||
@endif
|
||||
<button type="submit" class="btn btn-primary">
|
||||
Save
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@push('styles')
|
||||
<style>
|
||||
input.input-custom:focus {
|
||||
outline: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
input.input-custom {
|
||||
background: none;
|
||||
color: var(--tw-gray-600);
|
||||
}
|
||||
}
|
||||
|
||||
.status-custom {
|
||||
display: none
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
@@ -38,11 +38,11 @@
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Kode Penawaran
|
||||
Nomor Penawaran
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<label class="card-title" id="textCodePenawaran">
|
||||
Kode Penawaran
|
||||
Nomor Penawaran
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -37,11 +37,11 @@
|
||||
|
||||
<div class="mb-5">
|
||||
<h3 class="text-md font-medium text-gray-900">
|
||||
Kode Penawaran:
|
||||
Nomor Penawaran:
|
||||
</h3>
|
||||
<span class="text-2sm text-gray-700">
|
||||
<label class="card-title" id="textCodePenawaran">
|
||||
Kode Penawaran
|
||||
Nomor Penawaran
|
||||
</label>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -38,6 +38,23 @@
|
||||
<span class="sort"> <span class="sort-label"> Nomor Registrasi </span>
|
||||
<span class="sort-icon"> </span> </span>
|
||||
</th>
|
||||
<th class="min-w-[150px]" data-datatable-column="penawaran_code">
|
||||
<span class="sort"> <span class="sort-label"> Nomor Penawaran</span>
|
||||
<span class="sort-icon"> </span> </span>
|
||||
</th>
|
||||
|
||||
<th class="min-w-[150px]" data-datatable-column="tanggal_permohonan">
|
||||
<span class="sort"> <span class="sort-label"> Tanggal Permohonan </span>
|
||||
<span class="sort-icon"> </span> </span>
|
||||
</th>
|
||||
<th class="min-w-[150px]" data-datatable-column="user_pemohon">
|
||||
<span class="sort"> <span class="sort-label"> User Pemohon </span>
|
||||
<span class="sort-icon"> </span> </span>
|
||||
</th>
|
||||
<th class="min-w-[150px]" data-datatable-column="branches_name">
|
||||
<span class="sort"> <span class="sort-label"> Cabang Pemohon </span>
|
||||
<span class="sort-icon"> </span> </span>
|
||||
</th>
|
||||
<th class="min-w-[150px]" data-datatable-column="debiture">
|
||||
<span class="sort"> <span class="sort-label"> Nama Debitur </span>
|
||||
<span class="sort-icon"> </span> </span>
|
||||
@@ -46,6 +63,10 @@
|
||||
<span class="sort"> <span class="sort-label"> Tanggal Penawaran </span>
|
||||
<span class="sort-icon"> </span> </span>
|
||||
</th>
|
||||
<th class="min-w-[150px]" data-datatable-column="tujuan_penilaian_name">
|
||||
<span class="sort"> <span class="sort-label"> Tujuan Penilaian</span>
|
||||
<span class="sort-icon"> </span> </span>
|
||||
</th>
|
||||
<th class="min-w-[150px]" data-datatable-column="tujuan_penilaian_kjpp_id">
|
||||
<span class="sort"> <span class="sort-label"> Tujuan Penilaian KJPP </span>
|
||||
<span class="sort-icon"> </span> </span>
|
||||
@@ -82,29 +103,11 @@
|
||||
|
||||
@push('scripts')
|
||||
<script type="text/javascript">
|
||||
function formatDate(date) {
|
||||
const day = date.getDate().toString().padStart(2, '0');
|
||||
const month = (date.getMonth() + 1).toString().padStart(2, '0');
|
||||
// Months are 0-indexed
|
||||
const year = date.getFullYear();
|
||||
|
||||
return `${day} ${getIndonesianMonth(month)} ${year}`;
|
||||
function showPermohonanData(regId) {
|
||||
var url = "{{ url('tender/prosespenawaran') }}/" + regId + "/showPermohonan";
|
||||
$(location).attr('href', url);
|
||||
}
|
||||
|
||||
function getIndonesianMonth(month) {
|
||||
const months = ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni',
|
||||
'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'
|
||||
];
|
||||
return months[month -
|
||||
1];
|
||||
}
|
||||
|
||||
function capitalizeWords(str) {
|
||||
return str.replace(/\b\w/g, function(char) {
|
||||
return char.toUpperCase();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function showPenawaranData(regId) {
|
||||
var url = "{{ url('tender/prosespenawaran') }}/" + regId;
|
||||
$(location).attr('href', url);
|
||||
@@ -132,27 +135,40 @@
|
||||
'nomor_registrasi': {
|
||||
title: 'Nomor Registrasi',
|
||||
},
|
||||
'penawaran_code': {
|
||||
title: 'Kode Penawaran',
|
||||
},
|
||||
tanggal_permohonan: {
|
||||
title: 'Tanggal Permohonan',
|
||||
},
|
||||
user_pemohon: {
|
||||
title: 'User Pemohon',
|
||||
},
|
||||
branches_name: {
|
||||
title: 'Cabang Pemohon',
|
||||
},
|
||||
debiture: {
|
||||
title: 'Nama Debitur',
|
||||
render: (item, data) => {
|
||||
if(data.permohonan) {
|
||||
return `${data.permohonan.debiture.name}`;
|
||||
if(data.debitures_name) {
|
||||
return `${data.debitures_name}`;
|
||||
}
|
||||
return "-";
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
start_date: {
|
||||
date_range: {
|
||||
title: 'Tanggal Penawaran',
|
||||
},
|
||||
tujuan_penilaian_name: {
|
||||
title: 'Tujuan Penilaian',
|
||||
render: (item, data) => {
|
||||
return `${formatDate(new Date(data.start_date))} - ${formatDate(new Date(data.end_date))}`
|
||||
return data.tujuan_penilaian_name
|
||||
}
|
||||
},
|
||||
tujuan_penilaian_kjpp: {
|
||||
title: 'Tujuan Penilaian KJPP',
|
||||
render: (item, data) => {
|
||||
return data.tujuan_penilaian_kjpp.name
|
||||
return data.tujuan_penilaian_kjpp_name
|
||||
}
|
||||
},
|
||||
penawarandetails_count: {
|
||||
@@ -164,32 +180,43 @@
|
||||
status: {
|
||||
title: 'Status',
|
||||
render: (item, data) => {
|
||||
return capitalizeWords(data.status)
|
||||
return data.statusnya.toUpperCase()
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
title: 'Status',
|
||||
render: (item, data) => {
|
||||
// data.id ==> penawaran.id
|
||||
|
||||
var iconProses ='';
|
||||
if('tender'==data.status)
|
||||
var iconDetail =`<a onclick="showPenawaranData(${data.id})" class="btn btn-sm btn-icon btn-clear btn-primary" title="Detail">
|
||||
<i class="ki-outline ki-eye"></i>
|
||||
</a>`;
|
||||
if('registered'==data.statusnya)
|
||||
{
|
||||
// data.id ==> permohonan.id
|
||||
iconProses=`<a class="btn btn-sm btn-icon btn-clear btn-info" title="Penawaran" href="tender/prosespenawaran/${data.id}/createPenawaran">
|
||||
<i class="ki-outline ki-feather"></i>
|
||||
</a>`;
|
||||
iconDetail=`<a onclick="showPermohonanData(${data.id})" class="btn btn-sm btn-icon btn-clear btn-primary" title="Detail">
|
||||
<i class="ki-outline ki-eye"></i>
|
||||
</a>`;
|
||||
}
|
||||
else if('tender'==data.statusnya)
|
||||
{
|
||||
// data.id ==> penawaran.id
|
||||
iconProses=`<a class="btn btn-sm btn-icon btn-clear btn-info" title="Proses Penawaran" href="tender/prosespenawaran/${data.id}/edit">
|
||||
<i class="ki-outline ki-notepad-edit"></i>
|
||||
</a>`;
|
||||
}
|
||||
else if('proposal-tender'==data.status)
|
||||
else if('proposal-tender'==data.statusnya)
|
||||
{
|
||||
// data.id ==> penawaran.id
|
||||
iconProses=`<a class="btn btn-sm btn-icon btn-clear btn-info" title="Proses Penawaran Ulang" href="tender/prosespenawaran/${data.id}/editulang">
|
||||
<i class="ki-outline ki-arrow-circle-right"></i>
|
||||
</a>`;
|
||||
}
|
||||
|
||||
return `<div class="flex flex-nowrap justify-center">
|
||||
<a onclick="showPenawaranData(${data.id})" class="btn btn-sm btn-icon btn-clear btn-primary" title="Detail">
|
||||
<i class="ki-outline ki-eye"></i>
|
||||
</a>`+iconProses+`
|
||||
</div>`;
|
||||
return `<div class="flex flex-nowrap justify-center">`+iconDetail+iconProses+`</div>`;
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
</div>
|
||||
<div class="mb-5">
|
||||
<h3 class="text-md font-medium text-gray-900">
|
||||
Kode Penawaran:
|
||||
Nomor Penawaran:
|
||||
</h3>
|
||||
<span class="text-2sm text-gray-700">
|
||||
{{ $prosespenawaran->code }}
|
||||
|
||||
50
resources/views/prosespenawaran/showPermohonan.blade.php
Normal file
50
resources/views/prosespenawaran/showPermohonan.blade.php
Normal file
@@ -0,0 +1,50 @@
|
||||
@extends('layouts.main')
|
||||
|
||||
@section('breadcrumbs')
|
||||
{{ Breadcrumbs::render(request()->route()->getName()) }}
|
||||
@endsection
|
||||
@php
|
||||
$route = explode('.', Route::currentRouteName());
|
||||
@endphp
|
||||
@section('content')
|
||||
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
|
||||
<div class="card pb-2.5">
|
||||
<div class="card-header" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
Detail Data Proses Penawaran
|
||||
</h3>
|
||||
<div class="flex items-center gap-2">
|
||||
@php
|
||||
$buttonProses='';
|
||||
if('registered'==$permohonan->status)
|
||||
{
|
||||
$buttonProses='<a href="'. route('tender.prosespenawaran.createPenawaran', $id) .'" class="btn btn-xs btn-primary" title="Penawaran"><i class="ki-outline ki-notepad-edit"></i>Penawaran</a>';
|
||||
}
|
||||
@endphp
|
||||
{!! $buttonProses !!}
|
||||
<a href="{{ route('tender.prosespenawaran.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body lg:py-7.5 grid grid-cols-3">
|
||||
<div class="mb-5">
|
||||
<h3 class="text-md font-medium text-gray-900">
|
||||
Nomor Register Permohonan:
|
||||
</h3>
|
||||
<span class="text-2sm text-gray-700">
|
||||
{{ $permohonan->nomor_registrasi }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="mb-5">
|
||||
<h3 class="text-md font-medium text-gray-900">
|
||||
Nomor Penawaran:
|
||||
</h3>
|
||||
<span class="text-2sm text-gray-700">
|
||||
-
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@endsection
|
||||
@@ -20,38 +20,48 @@ Breadcrumbs::for('registrasi.show', function (BreadcrumbTrail $trail) {
|
||||
// prosespenawaran
|
||||
Breadcrumbs::for('tender.prosespenawaran', function (BreadcrumbTrail $trail) {
|
||||
$trail->parent('tender');
|
||||
$trail->push('Data Proses Penawaran', route('tender.prosespenawaran.index'));
|
||||
$trail->push('Proses Penawaran', route('tender.prosespenawaran.index'));
|
||||
});
|
||||
|
||||
Breadcrumbs::for('tender.prosespenawaran.edit', function (BreadcrumbTrail $trail) {
|
||||
$trail->parent('tender.prosespenawaran');
|
||||
$trail->push('Tambah Data Proses Penawaran');
|
||||
$trail->push('Tambah Proses Penawaran');
|
||||
});
|
||||
|
||||
Breadcrumbs::for('tender.prosespenawaran.show', function (BreadcrumbTrail $trail) {
|
||||
$trail->parent('tender.prosespenawaran');
|
||||
$trail->push('Detail Data Proses Penawaran');
|
||||
$trail->push('Detail Proses Penawaran');
|
||||
});
|
||||
|
||||
Breadcrumbs::for('tender.prosespenawaran.editulang', function (BreadcrumbTrail $trail) {
|
||||
$trail->parent('tender.prosespenawaran');
|
||||
$trail->push('Tambah Data Proses Penawaran Ulang');
|
||||
$trail->push('Tambah Proses Penawaran Ulang');
|
||||
});
|
||||
|
||||
Breadcrumbs::for('tender.prosespenawaran.createPenawaran', function (BreadcrumbTrail $trail) {
|
||||
$trail->parent('tender.prosespenawaran');
|
||||
$trail->push('Tambah Data Penawaran');
|
||||
});
|
||||
|
||||
Breadcrumbs::for('tender.prosespenawaran.showPermohonan', function (BreadcrumbTrail $trail) {
|
||||
$trail->parent('tender.prosespenawaran');
|
||||
$trail->push('Detail Proses Penawaran');
|
||||
});
|
||||
// prosespenawaran
|
||||
// Proses Penawaran Ulang
|
||||
Breadcrumbs::for('tender.prosespenawaranulang', function (BreadcrumbTrail $trail) {
|
||||
$trail->parent('tender');
|
||||
$trail->push('Data Proses Penawaran Ulang', route('tender.prosespenawaranulang.index'));
|
||||
$trail->push('Proses Penawaran Ulang', route('tender.prosespenawaranulang.index'));
|
||||
});
|
||||
|
||||
Breadcrumbs::for('tender.prosespenawaranulang.edit', function (BreadcrumbTrail $trail) {
|
||||
$trail->parent('tender.prosespenawaranulang');
|
||||
$trail->push('Tambah Data Proses Penawaran Ulang');
|
||||
$trail->push('Tambah Proses Penawaran Ulang');
|
||||
});
|
||||
|
||||
Breadcrumbs::for('tender.prosespenawaranulang.show', function (BreadcrumbTrail $trail) {
|
||||
$trail->parent('tender.prosespenawaranulang');
|
||||
$trail->push('Detail Data Proses Penawaran Ulang');
|
||||
$trail->push('Detail Proses Penawaran Ulang');
|
||||
});
|
||||
// Proses Penawaran Ulang
|
||||
// Otorisasi Tender
|
||||
|
||||
@@ -59,6 +59,12 @@ Route::middleware(['auth'])->group(function () {
|
||||
Route::post('prosespenawaran/setDataUlang', 'setDataUlang')->name('prosespenawaran.setDataUlang');
|
||||
Route::put('/prosespenawaran2/{prosespenawaran2}', 'updateulang')->name('prosespenawaran.updateulang');
|
||||
Route::put('/prosespenawaranKJPPStatusUlang/{prosespenawaranKJPPStatusUlang}', 'updateKJPPStatusUlang')->name('prosespenawaran.updateKJPPStatusUlang');
|
||||
|
||||
// merger penawaran
|
||||
Route::get('/prosespenawaran/{prosespenawaran}/showPermohonan', 'showPermohonan')->name('prosespenawaran.showPermohonan');
|
||||
Route::get('prosespenawaran/{prosespenawaran}/createPenawaran', 'createPenawaran')->name('prosespenawaran.createPenawaran');
|
||||
Route::post('prosespenawaran/{prosespenawaran}/storePenawaran', 'storePenawaran')->name('prosespenawaran.storePenawaran');
|
||||
// merger penawaran
|
||||
});
|
||||
|
||||
// Proses Penawaran Ulang
|
||||
|
||||
Reference in New Issue
Block a user