Merge branch 'staging' into feature/senior-officer

This commit is contained in:
majid
2024-10-04 10:05:46 +07:00
52 changed files with 4404 additions and 773 deletions

View File

@@ -0,0 +1,200 @@
<?php
namespace Modules\Lpj\Http\Controllers;
use App\Http\Controllers\Controller;
use Exception;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
use Modules\Lpj\Exports\BranchExport;
use Modules\Lpj\Http\Requests\BranchRequest;
use Illuminate\Support\Facades\DB;
use Modules\Lpj\Models\Permohonan;
class AuthorizationController extends Controller
{
public $user;
public function index()
{// dd('hai');
// return view('lpj::branch.index');
// $permohonan = Permohonan::find(2);
// dd($permohonan->get());
return view('lpj::authorization.index');
}
public function store(BranchRequest $request)
{
$validate = $request->validated();
if ($validate) {
try {
// Save to database
Branch::create($validate);
return redirect()
->route('basicdata.branch.index')
->with('success', 'Branch created successfully');
} catch (Exception $e) {
return redirect()
->route('basicdata.branch.create')
->with('error', 'Failed to create branch');
}
}
}
public function create()
{
return view('lpj::branch.create');
}
public function edit($id)
{
$branch = Branch::find($id);
return view('lpj::branch.create', compact('branch'));
}
public function update(BranchRequest $request, $id)
{
$validate = $request->validated();
if ($validate) {
try {
// Update in database
$branch = Branch::find($id);
$branch->update($validate);
return redirect()
->route('basicdata.branch.index')
->with('success', 'Branch updated successfully');
} catch (Exception $e) {
return redirect()
->route('basicdata.branch.edit', $id)
->with('error', 'Failed to update branch');
}
}
}
public function destroy($id)
{
try {
// Delete from database
$branch = Branch::find($id);
$branch->delete();
echo json_encode(['success' => true, 'message' => 'Branch deleted successfully']);
} catch (Exception $e) {
echo json_encode(['success' => false, 'message' => 'Failed to delete branch']);
}
}
public function dataForDatatables(Request $request)
{
// if (is_null($this->user) || !$this->user->can('branch.view')) {
//abort(403, 'Sorry! You are not allowed to view users.');
// }
// Retrieve data from the database
$query = Permohonan::query();
// Get the total count of records
$totalRecords = $query->count();
// Apply pagination if provided
if ($request->has('page') && $request->has('size')) {
$page = $request->get('page');
$size = $request->get('size');
$offset = ($page - 1) * $size; // Calculate the offset
$query->skip($offset)->take($size);
}
// Get the filtered count of records
$filteredRecords = $query->count();
// Get the data for the current page
// $data = $query->get();
$data = $query->select('permohonan.id', 'permohonan.nomor_registrasi'
, 'branches.name AS branche_name'
, 'debitures.name AS debiture_name'
// , 'tujuan_penilaian.name AS debiture_name'
, DB::raw("CONCAT(tujuan_penilaian.code,' - ', tujuan_penilaian.name) AS nama_tujuan_penilaian")
, 'users.name AS account_officer')
->leftJoin('branches', 'branches.id', '=', 'permohonan.branch_id')
->leftJoin('debitures', 'debitures.id', '=', 'permohonan.debiture_id')
->leftJoin('tujuan_penilaian', 'tujuan_penilaian.id', '=', 'permohonan.tujuan_penilaian_id')
->leftJoin('users', 'users.id', '=', 'permohonan.user_id')
->get();
// Calculate the page count
$pageCount = ceil($totalRecords / $request->get('size'));
// Calculate the current page number
$currentPage = 0 + 1;
// Return the response data as a JSON object
return response()->json([
'draw' => $request->get('draw'),
'recordsTotal' => $totalRecords,
'recordsFiltered' => $filteredRecords,
'pageCount' => $pageCount,
'page' => $currentPage,
'totalCount' => $totalRecords,
'data' => $data,
]);
/*
// Apply search filter if provided
if ($request->has('search') && !empty($request->get('search'))) {
$search = $request->get('search');
$query->where(function ($q) use ($search) {
$q->where('code', 'LIKE', "%$search%");
$q->orWhere('name', 'LIKE', "%$search%");
});
}
// Apply sorting if provided
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
$order = $request->get('sortOrder');
$column = $request->get('sortField');
$query->orderBy($column, $order);
}
// Get the total count of records
$totalRecords = $query->count();
// Apply pagination if provided
if ($request->has('page') && $request->has('size')) {
$page = $request->get('page');
$size = $request->get('size');
$offset = ($page - 1) * $size; // Calculate the offset
$query->skip($offset)->take($size);
}
// Get the filtered count of records
$filteredRecords = $query->count();
// Get the data for the current page
$data = $query->get();
// Calculate the page count
$pageCount = ceil($totalRecords / $request->get('size'));
// Calculate the current page number
$currentPage = 0 + 1;
// Return the response data as a JSON object
return response()->json([
'draw' => $request->get('draw'),
'recordsTotal' => $totalRecords,
'recordsFiltered' => $filteredRecords,
'pageCount' => $pageCount,
'page' => $currentPage,
'totalCount' => $totalRecords,
'data' => $data,
]);
*/
}
public function export()
{
return Excel::download(new BranchExport, 'branch.xlsx');
}
}

View File

@@ -0,0 +1,174 @@
<?php
namespace Modules\Lpj\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Maatwebsite\Excel\Facades\Excel;
use Modules\Lpj\Models\JenisLaporan;
use Modules\Lpj\Exports\JenisLaporanExport;
use Modules\Lpj\Http\Requests\JenisLaporanRequest;
use Throwable;
class JenisLaporanController extends Controller
{
public $user;
/**
* Display a listing of the resource.
*/
public function index()
{
return view('lpj::jenis_laporan.index');
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
return view('lpj::jenis_laporan.create');
}
/**
* Store a newly created resource in storage.
*/
public function store(JenisLaporanRequest $request)
{
$validate = $request->validated();
if ($validate) {
try {
JenisLaporan::create($validate);
return redirect()
->route('basicdata.jenis_laporan.index')
->with('success', 'Jenis Laporan created successfully');
} catch (Throwable $e) {
return redirect()
->route('basicdata.jenis_laporan.create')
->with('success', 'Failed to create Jenis Laporan: ' . $e);
}
}
}
/**
* Show the specified resource.
*/
public function show($id)
{
// return view('lpj::show');
}
/**
* Show the form for editing the specified resource.
*/
public function edit($id)
{
$jenisLaporan = JenisLaporan::find($id);
return view('lpj::jenis_laporan.create', compact('jenisLaporan'));
}
/**
* Update the specified resource in storage.
*/
public function update(JenisLaporanRequest $request, $id)
{
$validate = $request->validated();
if ($validate) {
try {
$jenisLaporan = JenisLaporan::find($id);
$jenisLaporan->update($validate);
return redirect()
->route('basicdata.jenis_laporan.index')
->with('success', 'Jenis Laporan updated successfully');
} catch (Throwable $e) {
return redirect()
->route('basicdata.jenis_laporan.edit', $id)
->with('success', 'Failed to update Jenis Laporan: ' . $e);
}
}
}
/**
* Remove the specified resource from storage.
*/
public function destroy($id)
{
try {
// Delete from database
$jenisLaporan = JenisLaporan::find($id);
$jenisLaporan->delete();
echo json_encode(['success' => true, 'message' => 'Jenis Laporan deleted successfully']);
} catch (Throwable $e) {
echo json_encode(['success' => false, 'message' => 'Failed to delete jenis Laporan']);
}
}
public function dataForDatatables(Request $request)
{
if (is_null($this->user) || !$this->user->can('jenis_jaminan.view')) {
//abort(403, 'Sorry! You are not allowed to view users.');
}
// Retrieve data from the database
$query = JenisLaporan::query();
// Apply search filter if provided
if ($request->has('search') && !empty($request->get('search'))) {
$search = $request->get('search');
$query->where(function ($q) use ($search) {
$q->where('code', 'LIKE', "%$search%");
$q->orWhere('name', 'LIKE', "%$search%");
});
}
// Apply sorting if provided
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
$order = $request->get('sortOrder');
$column = $request->get('sortField');
$query->orderBy($column, $order);
}
// Get the total count of records
$totalRecords = $query->count();
// Apply pagination if provided
if ($request->has('page') && $request->has('size')) {
$page = $request->get('page');
$size = $request->get('size');
$offset = ($page - 1) * $size; // Calculate the offset
$query->skip($offset)->take($size);
}
// Get the filtered count of records
$filteredRecords = $query->count();
// Get the data for the current page
$data = $query->get();
// Calculate the page count
$pageCount = ceil($totalRecords / $request->get('size'));
// Calculate the current page number
$currentPage = 0 + 1;
// Return the response data as a JSON object
return response()->json([
'draw' => $request->get('draw'),
'recordsTotal' => $totalRecords,
'recordsFiltered' => $filteredRecords,
'pageCount' => $pageCount,
'page' => $currentPage,
'totalCount' => $totalRecords,
'data' => $data,
]);
}
public function export()
{
return Excel::download(new JenisLaporanExport, 'jenis_laporan.xlsx');
}
}

View File

@@ -40,7 +40,15 @@ class KJPPController extends Controller
$jenis_aset = JenisJaminan::all();
$provinces = Province::all();
return view('lpj::kjpp.create', compact('branch', 'ijin_usaha', 'jenis_aset', 'provinces'));
// Generate KJPP Number
$lastKjpp = KJPP::orderBy('code', 'desc')->first();
$nextNumber = $lastKjpp ? intval(substr($lastKjpp->code, 1, 6)) + 1 : 1;
$kjppNumber = 'K' . str_pad($nextNumber, 6, '0', STR_PAD_LEFT);
// Combine KJPP number with branch code
$fullKjppNumber = $kjppNumber;
return view('lpj::kjpp.create', compact('branch', 'ijin_usaha', 'jenis_aset', 'provinces', 'fullKjppNumber'));
}
/**
@@ -62,6 +70,9 @@ class KJPPController extends Controller
Storage::copy('public/test/default.pdf', 'public/uploads_pdf/' . $filename);
}
$validated['ijin_usaha_id'] = json_encode($request->input('ijin_usaha_id'));
$validated['jenis_aset_id'] = json_encode($request->input('jenis_aset_id'));
// Tambahkan nama file ke data yang divalidasi
$validated['attachment'] = $filename;
@@ -127,7 +138,10 @@ class KJPPController extends Controller
if ($file !== null) {
// Jika ada file dari database maka hapus file yang lama ke file yang baru
$kjpp = KJPP::find($id);
// Storage::delete('public/uploads_pdf/' . $kjpp->attachment);
// Jika filenya ada default.pdf jangan dihapus
if ($kjpp->attachment !== 'default.pdf') {
Storage::delete('public/uploads_pdf/' . $kjpp->attachment);
}
// Simpan file yang diunggah
$file->storeAs('public/uploads_pdf', $filename);
$validated['attachment'] = $filename;

View File

@@ -0,0 +1,271 @@
<?php
namespace Modules\Lpj\Http\Controllers;
use App\Http\Controllers\Controller;
use Exception;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
// use Modules\Location\Models\City;
// use Modules\Location\Models\District;
// use Modules\Location\Models\Province;
// use Modules\Location\Models\Village;
// use Modules\Lpj\Exports\DebitureExport;
// use Modules\Lpj\Http\Requests\DebitureRequest;
// use Modules\Lpj\Http\Requests\DokumenJaminanRequest;
// use Modules\Lpj\Models\Branch;
// use Modules\Lpj\Models\Debiture;
// use Modules\Lpj\Models\DokumenJaminan;
// use Modules\Lpj\Models\JenisJaminan;
// use Modules\Lpj\Models\JenisLegalitasJaminan;
// use Modules\Lpj\Models\PemilikJaminan;
use Modules\Lpj\Models\Permohonan;
use Modules\Lpj\Models\JenisPenilaian;
use Modules\Lpj\Models\Regions;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Auth;
class RegistrasiController extends Controller
{
public $user;
public function index()
{
return view('lpj::registrasi.index');
}
public function dataForDatatables(Request $request)
{
if (is_null($this->user) || !$this->user->can('debitur.view')) {
//abort(403, 'Sorry! You are not allowed to view users.');
}
// Retrieve data from the database
$query = Permohonan::query()->where('status','=','preregister');
// Apply search filter if provided
if ($request->has('search') && !empty($request->get('search'))) {
$search = $request->get('search');
$query->where(function ($q) use ($search) {
$q->where('nomor_registrasi', 'LIKE', '%' . $search . '%');
$q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('user', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('debiture', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%');
$q->orWhere('status', 'LIKE', '%' . $search . '%');
});
}
// Apply sorting if provided
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
$order = $request->get('sortOrder');
$column = $request->get('sortField');
$query->orderBy($column, $order);
}
// Get the total count of records
$totalRecords = $query->count();
// Apply pagination if provided
if ($request->has('page') && $request->has('size')) {
$page = $request->get('page');
$size = $request->get('size');
$offset = ($page - 1) * $size; // Calculate the offset
$query->skip($offset)->take($size);
}
// Get the filtered count of records
$filteredRecords = $query->count();
// Get the data for the current page
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get();
// Calculate the page count
$pageCount = ceil($totalRecords / $request->get('size'));
// Calculate the current page number
$currentPage = 0 + 1;
// Return the response data as a JSON object
return response()->json([
'draw' => $request->get('draw'),
'recordsTotal' => $totalRecords,
'recordsFiltered' => $filteredRecords,
'pageCount' => $pageCount,
'page' => $currentPage,
'totalCount' => $totalRecords,
'data' => $data,
]);
}
public function edit($id)
{
return view('lpj::registrasi.edit', compact('id'));
}
public function setData(Request $request): JsonResponse
{
$data = array();
$datas = array();
if (request()->ajax()) {
$id = $request->id;
$datas = Permohonan::findOrFail($id);
$data['status'] = 'success';
if ($datas) {
$jenisPenilaians=null;
$regions=null;
$regions=Regions::pluck('name', 'id');
$jenisPenilaians=JenisPenilaian::pluck('name', 'id');
$data['regions'] = $regions;
$data['jenisPenilaians'] = $jenisPenilaians;
$data['datas'] = $datas;
$data['message'] = 'data successfully found';
} else {
$data['datas'] = null;
$data['message'] = 'data not found';
}
} else {
$data['status'] = 'error';
$data['message'] = 'no ajax request';
}
return response()->json($data);
}
public function update(Request $request, $id): JsonResponse
{
// init
$data = array();
$dataku = array();
$tindakan = null;
if (request()->ajax()) {
$validator = RegistrasiController::rulesEditnya($request, $id);
if ($validator['fails']) {
$data['message'] = $validator['errors'];
$data['status'] = 'error';
}
else
{
try {
$tindakan=$request->tindakan;
$dataku = ['registrasi_by' => Auth::id(),
'registrasi_at' => now()
];
if($tindakan==0)
{
$dataku['jenis_penilaian_id'] =$request->jenis_penilaian;
$dataku['region_id'] =$request->region;
$dataku['status'] = 'registered';
}
else
{
$dataku['registrasi_catatan'] =$request->catatan;
$dataku['status'] = 'revisi';
}
$data['dataku'] =$dataku;
$modal = Permohonan::find($id);
$modal->update($dataku);
//
$data['status'] = 'success';
$data['message'] = 'Regitrasi '.$modal->nomor_registrasi.' successfully';
} catch (Exception $e) {
$data['status'] = 'error';
$data['message'] = 'Jenis Fasilitas Kredit updated failed.';
}
}
} else {
$data['status'] = 'error';
$data['message'] = 'no ajax request';
}
return response()->json($data);
}
public function rulesEditnya($request, $id)
{
$tindakan=null;
$jenis_penilaian=null;
$validate_catatan='';
$tindakan=$request->tindakan;
$jenis_penilaian=$request->jenis_penilaian;
$validateIt = [
// 'name' diambil dari definisi parameter yang di kirim pada POST Data
'tindakan' => 'required',
];
$messageIt = [
'tindakan.required' => 'Silahkan pilih Tindakan'
];
if($tindakan==0)
{
$validateIt['jenis_penilaian'] = ['required'];
$messageIt ['jenis_penilaian.required']= 'Silahkan pilih Jenis Penilaian';
// INTERNAL
if(1==$jenis_penilaian)
{
$validateIt['region'] = ['required'];
$messageIt ['region.required']= 'Silahkan pilih Region';
}
}
elseif($tindakan==1)
{
$validateIt['catatan'] = ['required'];
$messageIt ['catatan.required']= 'Silahkan isi Catatan';
}
$validator = Validator::make($request->all(), $validateIt, $messageIt);
$data['fails'] = $validator->fails();
$data['errors'] = $validator->errors();
return $data;
}
public function show($id)
{
$permohonan = Permohonan::find($id);
return view('lpj::registrasi.show', compact('id','permohonan'));
}
public function showData(Request $request): JsonResponse
{
$data = array();
$datas = array();
if (request()->ajax()) {
$id = $request->id;
$datas = Permohonan::findOrFail($id);
$data['status'] = 'success';
if ($datas) {
$data['datas'] = $datas;
$data['message'] = 'data successfully found';
} else {
$data['datas'] = null;
$data['message'] = 'data not found';
}
} else {
$data['status'] = 'error';
$data['message'] = 'no ajax request';
}
return response()->json($data);
}
}

View File

@@ -2,18 +2,19 @@
namespace Modules\Lpj\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\RedirectResponse;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Modules\Lpj\Models\Regions;
use Modules\Usermanagement\Models\User;
use Modules\Lpj\Models\Teams;
use Modules\Lpj\Models\TeamsUsers;
use Modules\Lpj\Http\Requests\TeamsRequest;
use Modules\Lpj\Models\Regions;
use Illuminate\Support\Facades\DB;
use Modules\Lpj\Exports\TeamPenilaianExport;
use Modules\Lpj\Models\TeamsUsers;
use App\Http\Controllers\Controller;
use Maatwebsite\Excel\Facades\Excel;
use Illuminate\Http\RedirectResponse;
use Modules\Usermanagement\Models\User;
use Modules\Lpj\Http\Requests\TeamsRequest;
use Modules\Lpj\Exports\TeamPenilaianExport;
class TeamsController extends Controller
{
@@ -39,8 +40,8 @@ class TeamsController extends Controller
// cek user apakah sudah ada di tabel teams_users
$userTeam = TeamsUsers::pluck('user_id')->toArray();
$user = User::whereNotIn('id', $userTeam)
->with('roles')
->get();
->with('roles')
->get();
return view('lpj::teams.form', compact('region', 'user'));
}
@@ -69,15 +70,15 @@ class TeamsController extends Controller
DB::commit();
return redirect()
->route('basicdata.teams.index')
->with('success', 'Data saved successfully. ');
->route('basicdata.teams.index')
->with('success', 'Data saved successfully. ');
} catch (Exception $e) {
DB::rollBack();
return redirect()
->route('basicdata.teams.create')
->with('error', 'Failed to save data. ');
->route('basicdata.teams.create')
->with('error', 'Failed to save data. ');
}
}
@@ -100,8 +101,8 @@ class TeamsController extends Controller
$region = Regions::all();
$usedUsers = TeamsUsers::where('teams_id', '!=', $id)->pluck('user_id')->toArray();
$user = User::whereNotIn('id', $usedUsers)
->with('roles')
->get();
->with('roles')
->get();
// Ambil user yang sudah ada di tim ini
$selectedUsers = $teams->teamsUsers->pluck('user_id')->toArray();
@@ -136,15 +137,15 @@ class TeamsController extends Controller
DB::commit();
return redirect()
->route('basicdata.teams.index')
->with('success', 'Data updated successfully. ');
->route('basicdata.teams.index')
->with('success', 'Data updated successfully. ');
} catch (Exception $e) {
DB::rollBack();
return redirect()
->route('basicdata.teams.create')
->with('error', 'Failed to update data. ');
->route('basicdata.teams.create')
->with('error', 'Failed to update data. ');
}
}
@@ -165,7 +166,6 @@ class TeamsController extends Controller
DB::commit();
echo json_encode(['success' => true, 'message' => 'Team has been deleted successfully']);
} catch (Exception $e) {
DB::rollBack();
echo json_encode(['success' => false, 'message' => 'Failed to delete Team']);
@@ -190,8 +190,8 @@ class TeamsController extends Controller
$search = $request->get('search');
$query->where(function ($q) use ($search) {
$q->where('teams.name', 'LIKE', "%$search%")
->orWhere('regions.name', 'LIKE', "%$search%")
->orWhere('users.name', 'LIKE', "%$search%");
->orWhere('regions.name', 'LIKE', "%$search%")
->orWhere('users.name', 'LIKE', "%$search%");
});
}
@@ -255,6 +255,4 @@ class TeamsController extends Controller
{
return Excel::download(new TeamPenilaianExport(), 'team-penilai.xlsx');
}
}

View File

@@ -2,14 +2,24 @@
namespace Modules\Lpj\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Modules\Lpj\Models\Penawaran;
use App\Http\Controllers\Controller;
use Maatwebsite\Excel\Facades\Excel;
use Modules\Lpj\Models\PenawaranTender;
use Modules\Lpj\Exports\PenawaranTenderExport;
use Modules\Lpj\Http\Requests\TenderPenawaranRequest;
use Modules\Lpj\Models\JenisLaporan;
use Modules\Lpj\Models\KJPP;
use Modules\Lpj\Models\Permohonan;
use Modules\Lpj\Models\StatusPermohonan;
use Modules\Lpj\Models\TujuanPenilaianKJPP;
class TenderController extends Controller
{
public $user;
/**
* Display a listing of the resource.
*/
@@ -21,33 +31,44 @@ class TenderController extends Controller
/**
* Show the form for creating a new resource.
*/
public function penawaran_create()
public function penawaran_create($id)
{
return view('lpj::penawaran/create');
$penawaran = PenawaranTender::find($id);
$status = StatusPermohonan::all();
$tujuan_penilaian_kjpp = TujuanPenilaianKJPP::all();
$jenis_laporan = JenisLaporan::all();
$kjpp = KJPP::all();
return view('lpj::penawaran/create', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'penawaran', 'id'));
}
/**
* Store a newly created resource in storage.
*/
public function penawaran_store(Request $request): RedirectResponse
public function penawaran_store(TenderPenawaranRequest $request, $id)
{
// $validated = $request->validate([
// 'nama_kjpp_sebelumnya' => 'required|string',
// 'biaya_kjpp_sebelumnya' => 'required|numeric',
// 'tgl_penilaian_sebelumnya' => 'required|date',
// 'nama_kjpp_1' => 'required|exists:kjpps,id',
// 'nama_kjpp_2' => 'required|exists:kjpps,id',
// 'nama_kjpp_3' => 'required|exists:kjpps,id',
// 'data_jaminan_legalitas' => 'required|string',
// 'tujuan_penilaian' => 'required|in:Penjaminan Hutang,Lelang,Revaluasi Aset',
// 'jenis_laporan' => 'required|in:Short report,Full report',
// 'batas_waktu' => 'required|date',
// 'catatan' => 'nullable|string'
// ]);
$validated = $request->validated();
// Penawaran::create($validated);
if ($validated) {
$penawaran = PenawaranTender::find($id);
// return redirect()->back()->with('success', 'Data berhasil disimpan!');
$validated['nomor_registrasi'] = $penawaran->nomor_registrasi;
$validated['nama_kjpp_sebelumnya'] = json_encode($request->input('nama_kjpp_sebelumnya'));
dd($validated);
PenawaranTender::create($validated);
return redirect()
->route('tender.penawaran.index')
->with('success', 'Data Penawaran created successfully');
} else {
return redirect()
->route('tender.penawaran.createPenawaran', $id)
->with('error', 'Validation failed');
}
}
/**
@@ -55,7 +76,8 @@ class TenderController extends Controller
*/
public function penawaran_show($id)
{
return view('lpj::show');
$penawaran = PenawaranTender::find($id);
return view('lpj::penawaran.show', compact('id', 'penawaran'));
}
/**
@@ -69,7 +91,7 @@ class TenderController extends Controller
/**
* Update the specified resource in storage.
*/
public function update(Request $request, $id): RedirectResponse
public function update(Request $request, $id)
{
//
}
@@ -82,6 +104,73 @@ class TenderController extends Controller
//
}
public function datatablesPenawaran(Request $request)
{
if (is_null($this->user) || !$this->user->can('penawaran.view')) {
//abort(403, 'Sorry! You are not allowed to view users.');
}
// Retrieve data from the database
$query = PenawaranTender::query();
// Apply search filter if provided
if ($request->has('search') && !empty($request->get('search'))) {
$search = $request->get('search');
$query->where(function ($q) use ($search) {
$q->where('code', 'LIKE', "%$search%");
$q->orWhere('nama_kjpp_sebelumnya', 'LIKE', "%$search%");
$q->orWhere('tanggal_penilaian_sebelumnya', 'LIKE', "%$search%");
});
}
// Apply sorting if provided
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
$order = $request->get('sortOrder');
$column = $request->get('sortField');
$query->orderBy($column, $order);
}
// Get the total count of records
$totalRecords = $query->count();
// Apply pagination if provided
if ($request->has('page') && $request->has('size')) {
$page = $request->get('page');
$size = $request->get('size');
$offset = ($page - 1) * $size; // Calculate the offset
$query->skip($offset)->take($size);
}
// Get the filtered count of records
$filteredRecords = $query->count();
// Get the data for the current page
$data = $query->get();
// Calculate the page count
$pageCount = ceil($totalRecords / $request->get('size'));
// Calculate the current page number
$currentPage = 0 + 1;
// Return the response data as a JSON object
return response()->json([
'draw' => $request->get('draw'),
'recordsTotal' => $totalRecords,
'recordsFiltered' => $filteredRecords,
'pageCount' => $pageCount,
'page' => $currentPage,
'totalCount' => $totalRecords,
'data' => $data,
]);
}
public function exportPenawaran()
{
return Excel::download(new PenawaranTenderExport, 'kjpp.xlsx');
}
public function proses_penawaran_index()
{
return view('lpj::proses_penawaran/index');

View File

@@ -0,0 +1,174 @@
<?php
namespace Modules\Lpj\Http\Controllers;
use Throwable;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Maatwebsite\Excel\Facades\Excel;
use Modules\Lpj\Models\TujuanPenilaianKJPP;
use Modules\Lpj\Exports\TujuanPenilaianKJPPExport;
use Modules\Lpj\Http\Requests\JenisPenilaianKJPPRequest;
class TujuanPenilaianKJPPController extends Controller
{
public $user;
/**
* Display a listing of the resource.
*/
public function index()
{
return view('lpj::tujuan_penilaian_kjpp.index');
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
return view('lpj::tujuan_penilaian_kjpp.create');
}
/**
* Store a newly created resource in storage.
*/
public function store(JenisPenilaianKJPPRequest $request)
{
$validate = $request->validated();
if ($validate) {
try {
TujuanPenilaianKJPP::create($validate);
return redirect()
->route('basicdata.tujuan_penilaian_kjpp.index')
->with('success', 'Tujuan Penilaian KJPP created successfully');
} catch (Throwable $e) {
return redirect()
->route('basicdata.tujuan_penilaian_kjpp.create')
->with('success', 'Failed to create Tujuan Penilaian KJPP: ' . $e);
}
}
}
/**
* Show the specified resource.
*/
public function show($id)
{
return view('lpj::show');
}
/**
* Show the form for editing the specified resource.
*/
public function edit($id)
{
$tujuanPenilaianKJPP = TujuanPenilaianKJPP::find($id);
return view('lpj::tujuan_penilaian_kjpp.create', compact('tujuanPenilaianKJPP'));
}
/**
* Update the specified resource in storage.
*/
public function update(JenisPenilaianKJPPRequest $request, $id)
{
$validate = $request->validated();
if ($validate) {
try {
$tujuanPenilaianKJPP = TujuanPenilaianKJPP::find($id);
$tujuanPenilaianKJPP->update($validate);
return redirect()
->route('basicdata.tujuan_penilaian_kjpp.index')
->with('success', 'Tujuan Penilaian KJPP updated successfully');
} catch (Throwable $e) {
return redirect()
->route('basicdata.tujuan_penilaian_kjpp.edit', $id)
->with('success', 'Failed to update Tujuan Penilaian KJPP: ' . $e);
}
}
}
/**
* Remove the specified resource from storage.
*/
public function destroy($id)
{
try {
// Delete from database
$tujuanPenilaianKJPP = TujuanPenilaianKJPP::find($id);
$tujuanPenilaianKJPP->delete();
echo json_encode(['success' => true, 'message' => 'Tujuan Penilaian deleted successfully']);
} catch (Throwable $e) {
echo json_encode(['success' => false, 'message' => 'Failed to delete deleted']);
}
}
public function dataForDatatables(Request $request)
{
if (is_null($this->user) || !$this->user->can('jenis_jaminan.view')) {
//abort(403, 'Sorry! You are not allowed to view users.');
}
// Retrieve data from the database
$query = TujuanPenilaianKJPP::query();
// Apply search filter if provided
if ($request->has('search') && !empty($request->get('search'))) {
$search = $request->get('search');
$query->where(function ($q) use ($search) {
$q->where('code', 'LIKE', "%$search%");
$q->orWhere('name', 'LIKE', "%$search%");
});
}
// Apply sorting if provided
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
$order = $request->get('sortOrder');
$column = $request->get('sortField');
$query->orderBy($column, $order);
}
// Get the total count of records
$totalRecords = $query->count();
// Apply pagination if provided
if ($request->has('page') && $request->has('size')) {
$page = $request->get('page');
$size = $request->get('size');
$offset = ($page - 1) * $size; // Calculate the offset
$query->skip($offset)->take($size);
}
// Get the filtered count of records
$filteredRecords = $query->count();
// Get the data for the current page
$data = $query->get();
// Calculate the page count
$pageCount = ceil($totalRecords / $request->get('size'));
// Calculate the current page number
$currentPage = 0 + 1;
// Return the response data as a JSON object
return response()->json([
'draw' => $request->get('draw'),
'recordsTotal' => $totalRecords,
'recordsFiltered' => $filteredRecords,
'pageCount' => $pageCount,
'page' => $currentPage,
'totalCount' => $totalRecords,
'data' => $data,
]);
}
public function export()
{
return Excel::download(new TujuanPenilaianKJPPExport, 'jenis_laporan.xlsx');
}
}