Merge branch 'staging' into feature/senior-officer
This commit is contained in:
@@ -1,49 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Exports;
|
||||
|
||||
use Maatwebsite\Excel\Concerns\FromCollection;
|
||||
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
|
||||
use Maatwebsite\Excel\Concerns\WithHeadings;
|
||||
use Maatwebsite\Excel\Concerns\WithMapping;
|
||||
use Modules\Lpj\Models\Branch;
|
||||
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
|
||||
|
||||
class BranchExport implements WithColumnFormatting, WithHeadings, FromCollection, withMapping
|
||||
{
|
||||
public function collection()
|
||||
{
|
||||
return Branch::all();
|
||||
}
|
||||
|
||||
public function map($row)
|
||||
: array
|
||||
{
|
||||
return [
|
||||
$row->id,
|
||||
$row->code,
|
||||
$row->name,
|
||||
$row->created_at
|
||||
];
|
||||
}
|
||||
|
||||
public function headings()
|
||||
: array
|
||||
{
|
||||
return [
|
||||
'ID',
|
||||
'Code',
|
||||
'Name',
|
||||
'Created At'
|
||||
];
|
||||
}
|
||||
|
||||
public function columnFormats()
|
||||
: array
|
||||
{
|
||||
return [
|
||||
'A' => NumberFormat::FORMAT_NUMBER,
|
||||
'D' => NumberFormat::FORMAT_DATE_DATETIME
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -1,54 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Exports;
|
||||
|
||||
use Maatwebsite\Excel\Concerns\FromCollection;
|
||||
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
|
||||
use Maatwebsite\Excel\Concerns\WithHeadings;
|
||||
use Maatwebsite\Excel\Concerns\WithMapping;
|
||||
use Modules\Lpj\Models\Currency;
|
||||
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
|
||||
|
||||
class CurrencyExport implements WithColumnFormatting, WithHeadings, FromCollection, withMapping
|
||||
{
|
||||
public function collection()
|
||||
{
|
||||
return Currency::all();
|
||||
}
|
||||
|
||||
public function map($row)
|
||||
: array
|
||||
{
|
||||
return [
|
||||
$row->id,
|
||||
$row->code,
|
||||
$row->name,
|
||||
$row->decimal_places,
|
||||
$row->updated_at,
|
||||
$row->deleted_at,
|
||||
$row->created_at
|
||||
];
|
||||
}
|
||||
|
||||
public function headings()
|
||||
: array
|
||||
{
|
||||
return [
|
||||
'ID',
|
||||
'Code',
|
||||
'Name',
|
||||
'Decimal Places',
|
||||
'Created At'
|
||||
];
|
||||
}
|
||||
|
||||
public function columnFormats()
|
||||
: array
|
||||
{
|
||||
return [
|
||||
'A' => NumberFormat::FORMAT_NUMBER,
|
||||
'B' => NumberFormat::FORMAT_NUMBER,
|
||||
'E' => NumberFormat::FORMAT_DATE_DATETIME
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
<?php
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Modules\Lpj\Models\PenawaranDetailTender;
|
||||
use Modules\Lpj\Models\PenawaranTender;
|
||||
|
||||
function formatTanggalIndonesia($date)
|
||||
{
|
||||
@@ -39,3 +41,70 @@ function formatAlamat($alamat)
|
||||
(isset($alamat->province) ? $alamat->province->name . ', ' : '') .
|
||||
($alamat->postal_code ?? '');
|
||||
}
|
||||
|
||||
// andy add
|
||||
function checkActiveDateRangePenawaran($id)
|
||||
{
|
||||
$penawaran = PenawaranTender::find($id);
|
||||
|
||||
$start_date = strtotime($penawaran->start_date);
|
||||
$end_date = strtotime($penawaran->end_date);
|
||||
$todays_date = strtotime(now());
|
||||
|
||||
$allow = true;
|
||||
if ($todays_date >= $start_date && $todays_date <= $end_date) {
|
||||
//Penawaran dibuka
|
||||
$allow = true;
|
||||
} else {
|
||||
if ($todays_date < $start_date) {
|
||||
//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(function ($query) {
|
||||
$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;
|
||||
}
|
||||
|
||||
return $allow;
|
||||
}
|
||||
|
||||
// convert
|
||||
function convertSlug($slug) {
|
||||
|
||||
$words = explode('-', $slug);
|
||||
|
||||
foreach ($words as $index => $word) {
|
||||
$words[$index] = strtoupper($word);
|
||||
}
|
||||
|
||||
return implode(' ', $words);
|
||||
}
|
||||
// andy add
|
||||
|
||||
|
||||
@@ -1,200 +0,0 @@
|
||||
<?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');
|
||||
}
|
||||
}
|
||||
@@ -1,150 +0,0 @@
|
||||
<?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 Modules\Lpj\Models\Branch;
|
||||
|
||||
class BranchController extends Controller
|
||||
{
|
||||
public $user;
|
||||
|
||||
public function index()
|
||||
{
|
||||
return view('lpj::branch.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 = Branch::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 BranchExport, 'branch.xlsx');
|
||||
}
|
||||
}
|
||||
@@ -1,150 +0,0 @@
|
||||
<?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\CurrencyExport;
|
||||
use Modules\Lpj\Http\Requests\CurrencyRequest;
|
||||
use Modules\Lpj\Models\Currency;
|
||||
|
||||
class CurrencyController extends Controller
|
||||
{
|
||||
public $user;
|
||||
|
||||
public function index()
|
||||
{
|
||||
return view('lpj::currency.index');
|
||||
}
|
||||
|
||||
public function store(CurrencyRequest $request)
|
||||
{
|
||||
$validate = $request->validated();
|
||||
|
||||
if ($validate) {
|
||||
try {
|
||||
// Save to database
|
||||
Currency::create($validate);
|
||||
return redirect()
|
||||
->route('basicdata.currency.index')
|
||||
->with('success', 'Currency created successfully');
|
||||
} catch (Exception $e) {
|
||||
return redirect()
|
||||
->route('basicdata.currency.create')
|
||||
->with('error', 'Failed to create currency');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
return view('lpj::currency.create');
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
$currency = Currency::find($id);
|
||||
return view('lpj::currency.create', compact('currency'));
|
||||
}
|
||||
|
||||
public function update(CurrencyRequest $request, $id)
|
||||
{
|
||||
$validate = $request->validated();
|
||||
|
||||
if ($validate) {
|
||||
try {
|
||||
// Update in database
|
||||
$currency = Currency::find($id);
|
||||
$currency->update($validate);
|
||||
return redirect()
|
||||
->route('basicdata.currency.index')
|
||||
->with('success', 'Currency updated successfully');
|
||||
} catch (Exception $e) {
|
||||
return redirect()
|
||||
->route('basicdata.currency.edit', $id)
|
||||
->with('error', 'Failed to update currency');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function destroy($id)
|
||||
{
|
||||
try {
|
||||
// Delete from database
|
||||
$currency = Currency::find($id);
|
||||
$currency->delete();
|
||||
|
||||
echo json_encode(['success' => true, 'message' => 'Currency deleted successfully']);
|
||||
} catch (Exception $e) {
|
||||
echo json_encode(['success' => false, 'message' => 'Failed to delete currency']);
|
||||
}
|
||||
}
|
||||
|
||||
public function dataForDatatables(Request $request)
|
||||
{
|
||||
if (is_null($this->user) || !$this->user->can('currency.view')) {
|
||||
//abort(403, 'Sorry! You are not allowed to view users.');
|
||||
}
|
||||
|
||||
// Retrieve data from the database
|
||||
$query = Currency::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 CurrencyExport, 'currency.xlsx');
|
||||
}
|
||||
}
|
||||
@@ -14,9 +14,11 @@
|
||||
use Modules\Lpj\Models\Debiture;
|
||||
use Modules\Lpj\Models\DetailDokumenJaminan;
|
||||
use Modules\Lpj\Models\DokumenJaminan;
|
||||
use Modules\Lpj\Models\HubunganPemilikJaminan;
|
||||
use Modules\Lpj\Models\JenisJaminan;
|
||||
use Modules\Lpj\Models\JenisLegalitasJaminan;
|
||||
use Modules\Lpj\Models\PemilikJaminan;
|
||||
use ZipArchive;
|
||||
|
||||
class DokumenJaminanController extends Controller
|
||||
{
|
||||
@@ -86,6 +88,7 @@
|
||||
'dokumen_jaminan' => 'jaminan/' . $debitur->id . '/' . $document->id . '/' . $file_name,
|
||||
'name' => $request->name[$key],
|
||||
'keterangan' => $request->keterangan[$key],
|
||||
'details' => isset($request->custom_field[$key]) ? json_encode($request->custom_field[$key]) : '',
|
||||
];
|
||||
DetailDokumenJaminan::create($detail);
|
||||
} catch (Exception $e) {
|
||||
@@ -124,10 +127,18 @@
|
||||
$jenisJaminan = JenisJaminan::all();
|
||||
$jenisLegalitasJaminan = JenisLegalitasJaminan::all();
|
||||
$pemilikJaminan = PemilikJaminan::where('debiture_id', $id)->get();
|
||||
$hubunganPemilik = HubunganPemilikJaminan::all();
|
||||
|
||||
return view(
|
||||
'lpj::debitur.jaminan',
|
||||
compact('debitur', 'provinces', 'jenisJaminan', 'jenisLegalitasJaminan', 'pemilikJaminan'),
|
||||
compact(
|
||||
'debitur',
|
||||
'provinces',
|
||||
'jenisJaminan',
|
||||
'jenisLegalitasJaminan',
|
||||
'pemilikJaminan',
|
||||
'hubunganPemilik',
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -141,6 +152,52 @@
|
||||
DB::beginTransaction();
|
||||
$validate['debiture_id'] = $id;
|
||||
|
||||
if ($validate['pemilik_jaminan_id'] == 00) {
|
||||
$pemilik_jaminan = [
|
||||
'hubungan_pemilik_jaminan_id' => request()->get('hubungan_pemilik_jaminan_id'),
|
||||
'province_code' => $debitur->province_code,
|
||||
'city_code' => $debitur->city_code,
|
||||
'district_code' => $debitur->district_code,
|
||||
'village_code' => $debitur->village_code,
|
||||
'postal_code' => $debitur->postal_code,
|
||||
'address' => $debitur->address,
|
||||
'nomor_id' => request()->get('nomor_id'),
|
||||
'name' => request()->get('pemilik_name'),
|
||||
];
|
||||
|
||||
$detailSertifikat = [];
|
||||
$names = request()->input('detail_sertifikat.name', []);
|
||||
$nomorIds = request()->input('detail_sertifikat.nomor_id', []);
|
||||
|
||||
foreach ($names as $index => $name) {
|
||||
if (isset($nomorIds[$index])) {
|
||||
$detailSertifikat[] = [
|
||||
'name' => $name,
|
||||
'nomor_id' => $nomorIds[$index],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
$pemilik_jaminan['detail_sertifikat'] = json_encode($detailSertifikat);
|
||||
|
||||
//dd($pemilik_jaminan);
|
||||
|
||||
try {
|
||||
$pemilikJaminan = PemilikJaminan::updateOrCreate([
|
||||
'debiture_id' => $id,
|
||||
'name' => request()->get('pemilik_name'),
|
||||
], $pemilik_jaminan);
|
||||
} catch (Exception $e) {
|
||||
return redirect()->route('debitur.jaminan.index', $id)->with(
|
||||
'error',
|
||||
'Gagal update pemilik jaminan: ' . $e->getMessage(),
|
||||
);
|
||||
}
|
||||
|
||||
$validate['pemilik_jaminan_id'] = $pemilikJaminan->id;
|
||||
}
|
||||
|
||||
|
||||
if ($validate['pemilik_jaminan_id'] == 0) {
|
||||
$pemilik_jaminan = [
|
||||
'hubungan_pemilik_jaminan_id' => 1,
|
||||
@@ -159,11 +216,14 @@
|
||||
'debiture_id' => $id,
|
||||
'name' => $debitur->name,
|
||||
], $pemilik_jaminan);
|
||||
|
||||
$validate['pemilik_jaminan_id'] = $pemilikJaminan->id;
|
||||
}
|
||||
|
||||
$document = DokumenJaminan::find($jaminan);
|
||||
$document->update($validate);
|
||||
|
||||
|
||||
if ($request->detail_dokumen_jaminan_id) {
|
||||
foreach ($request->detail_dokumen_jaminan_id as $key => $value) {
|
||||
if (isset($request->dokumen_jaminan[$key])) {
|
||||
@@ -217,16 +277,14 @@
|
||||
'success',
|
||||
'Dokumen Jaminan berhasil diubah',
|
||||
);
|
||||
} catch
|
||||
(Exception $e) {
|
||||
} catch (Exception $e) {
|
||||
DB::rollBack();
|
||||
return redirect()->route('debitur.jaminan.index', $id)->with('error', $e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public
|
||||
function edit(
|
||||
public function edit(
|
||||
$id,
|
||||
$jaminan,
|
||||
) {
|
||||
@@ -240,6 +298,7 @@
|
||||
$jenisJaminan = JenisJaminan::all();
|
||||
$jenisLegalitasJaminan = JenisLegalitasJaminan::all();
|
||||
$pemilikJaminan = PemilikJaminan::where('debiture_id', $document->debiture_id)->get();
|
||||
$hubunganPemilik = HubunganPemilikJaminan::all();
|
||||
|
||||
return view(
|
||||
'lpj::debitur.jaminan',
|
||||
@@ -254,20 +313,20 @@
|
||||
'districts',
|
||||
'villages',
|
||||
'pemilikJaminan',
|
||||
'hubunganPemilik',
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
public
|
||||
function destroy(
|
||||
public function destroy(
|
||||
$id,
|
||||
$jaminan_id,
|
||||
) {
|
||||
try {
|
||||
$jaminan = DokumenJaminan::find($jaminan_id);
|
||||
$details = DetailDokumenJaminan::where('dokumen_jaminan_id',$jaminan->id)->get();
|
||||
foreach ($details as $detail){
|
||||
Storage::delete('public/'. $detail->dokumen_jaminan);
|
||||
$details = DetailDokumenJaminan::where('dokumen_jaminan_id', $jaminan->id)->get();
|
||||
foreach ($details as $detail) {
|
||||
Storage::delete('public/' . $detail->dokumen_jaminan);
|
||||
$detail->delete();
|
||||
}
|
||||
$jaminan->delete();
|
||||
@@ -277,11 +336,58 @@
|
||||
}
|
||||
}
|
||||
|
||||
public
|
||||
function download(
|
||||
$id,
|
||||
) {
|
||||
$document = DetailDokumenJaminan::find($id);
|
||||
public function bulkDownload()
|
||||
{
|
||||
$dokumenIds = request()->get('jaminan'); // Expecting an array of dokumen_jaminan_id
|
||||
$documents = DetailDokumenJaminan::where('dokumen_jaminan_id', $dokumenIds)->get();
|
||||
if ($documents->isEmpty()) {
|
||||
return redirect()->back()->with('error', 'No documents found for the provided IDs.');
|
||||
}
|
||||
|
||||
$zip = new ZipArchive;
|
||||
$zipFileName = 'documents_jaminan_' . $dokumenIds . '.zip';
|
||||
$zipFilePath = storage_path('app/public/' . $zipFileName);
|
||||
|
||||
if ($zip->open($zipFilePath, ZipArchive::CREATE) === true) {
|
||||
foreach ($documents as $document) {
|
||||
$filePath = storage_path('app/public/' . $document->dokumen_jaminan);
|
||||
if (file_exists($filePath)) {
|
||||
$zip->addFile($filePath, basename($filePath));
|
||||
} else {
|
||||
// Log or display an error message for missing files
|
||||
return redirect()->back()->with('error', 'File not found: ' . $filePath);
|
||||
}
|
||||
}
|
||||
$zip->close();
|
||||
|
||||
if (!file_exists($zipFilePath)) {
|
||||
return redirect()->back()->with('error', 'Failed to create ZIP file.');
|
||||
}
|
||||
} else {
|
||||
return redirect()->back()->with('error', 'Failed to create ZIP file.');
|
||||
}
|
||||
|
||||
return response()->download($zipFilePath, $zipFileName, [
|
||||
'Content-Type' => 'application/zip',
|
||||
'Content-Disposition' => 'attachment; filename="' . $zipFileName . '"',
|
||||
'Content-Length' => filesize($zipFilePath),
|
||||
])->deleteFileAfterSend(false);
|
||||
}
|
||||
|
||||
|
||||
public function download()
|
||||
{
|
||||
$dokumen = request()->get('dokumen');
|
||||
$document = DetailDokumenJaminan::find($dokumen);
|
||||
return response()->download(storage_path('app/public/' . $document->dokumen_jaminan));
|
||||
}
|
||||
|
||||
public function legalitasJaminan($id, $jaminan)
|
||||
{
|
||||
$jenisJaminan = JenisJaminan::find($id);
|
||||
$legalitasJaminan = $jenisJaminan->jenis_legalitas_jaminan_id;
|
||||
|
||||
$legalitas = JenisLegalitasJaminan::whereIn('code', json_decode($legalitasJaminan, true))->get();
|
||||
echo json_encode($legalitas);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
|
||||
class JenisFasilitasKreditController extends Controller
|
||||
{
|
||||
use LpjHelpers; // <---- Using the LpjHelpers Trait
|
||||
public $user;
|
||||
|
||||
public function index()
|
||||
@@ -28,12 +27,6 @@
|
||||
if ($validate) {
|
||||
try {
|
||||
// Save to database
|
||||
// andy add
|
||||
$lastNumberCodeJFK = LpjHelpers::onLastCodeJFK();
|
||||
|
||||
$validate['name'] =strtoupper($request->name);
|
||||
$validate['code'] =$lastNumberCodeJFK;
|
||||
// andy add
|
||||
|
||||
JenisFasilitasKredit::create($validate);
|
||||
return redirect()
|
||||
|
||||
34
app/Http/Controllers/LaporanController.php
Normal file
34
app/Http/Controllers/LaporanController.php
Normal file
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class LaporanController extends Controller
|
||||
{
|
||||
public $user;
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function sederhana_index()
|
||||
{
|
||||
return view('lpj::laporan.sederhana_index');
|
||||
}
|
||||
|
||||
public function standard_index()
|
||||
{
|
||||
return view('lpj::laporan.standard_index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*/
|
||||
public function show($id) {}
|
||||
/**
|
||||
* Store form inspeksi.
|
||||
*/
|
||||
public function store(Request $request) {}
|
||||
|
||||
public function update(Request $request, $id) {}
|
||||
}
|
||||
290
app/Http/Controllers/OtorisasiPenawaranController.php
Normal file
290
app/Http/Controllers/OtorisasiPenawaranController.php
Normal file
@@ -0,0 +1,290 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Exception;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
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;
|
||||
|
||||
class OtorisasiPenawaranController extends Controller
|
||||
{
|
||||
public $user;
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
// dd('hai otorisasi');
|
||||
return view('lpj::otorisasipenawaran.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 =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')
|
||||
->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id')
|
||||
->where('penawaran.status','=','proposal-tender')
|
||||
->withCount('penawarandetails');
|
||||
|
||||
// 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->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();
|
||||
$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 edit($id)
|
||||
{
|
||||
return view('lpj::otorisasipenawaran.edit', compact('id'));
|
||||
}
|
||||
|
||||
public function setData(Request $request): JsonResponse
|
||||
{
|
||||
$data = array();
|
||||
$penawaran = array();
|
||||
$penawrandetails = array();
|
||||
$penawarandetailLogs = array();
|
||||
|
||||
if (request()->ajax()) {
|
||||
$id = $request->id;
|
||||
$penawaran = PenawaranTender::where('status','=','proposal-tender')->find($id);
|
||||
|
||||
if ($penawaran) {
|
||||
$penawarandetailLogs = PenawaranDetailTenderLog::where('penawaran_id',$id)
|
||||
->leftJoin('kjpp', 'kjpp.id', '=', 'detail_penawaran_logs.kjpp_rekanan_id')
|
||||
->select('detail_penawaran_logs.*', DB::raw("DATE_FORMAT(detail_penawaran_logs.created_at, '%d-%m-%Y %H:%i') AS created_at2"),'kjpp.code AS kjpp_code', 'kjpp.name AS kjpp_name')
|
||||
->get();
|
||||
$penawrandetails = PenawaranDetailTender::where('penawaran_id','=',$id)
|
||||
->leftJoin('kjpp', 'kjpp.id', '=', 'detail_penawaran.kjpp_rekanan_id')
|
||||
->select('detail_penawaran.*', 'kjpp.code AS kjpp_code', 'kjpp.name AS kjpp_name')
|
||||
->where('detail_penawaran.status','=',1)
|
||||
->get();
|
||||
|
||||
if(sizeof($penawarandetailLogs)>0)
|
||||
{
|
||||
$h=0;
|
||||
foreach($penawarandetailLogs as $obj1)
|
||||
{
|
||||
if($obj1->dokumen_persetujuan && Storage::disk('public')->exists($obj1->dokumen_persetujuan))
|
||||
{
|
||||
$penawarandetailLogs_path = Storage::url($obj1->dokumen_persetujuan);
|
||||
$penawarandetailLogs[$h]->dokumen_persetujuan = $penawarandetailLogs_path;
|
||||
}
|
||||
$h++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$i=0;
|
||||
foreach($penawrandetails as $obj)
|
||||
{
|
||||
if($obj->dokumen_persetujuan && Storage::disk('public')->exists($obj->dokumen_persetujuan))
|
||||
{
|
||||
$penawrandetails_path = Storage::url($obj->dokumen_persetujuan);
|
||||
$penawrandetails[$i]->dokumen_persetujuan = $penawrandetails_path;
|
||||
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
|
||||
$penawaranString = "";
|
||||
if($penawaran->status)
|
||||
{
|
||||
$penawaranString = convertSlug($penawaran->status);
|
||||
$penawaran->status = $penawaranString;
|
||||
}
|
||||
|
||||
$kjpp=null;
|
||||
$kjpp = KJPP::pluck('name', 'id');
|
||||
$data['penawaran'] = $penawaran;
|
||||
$data['penawrandetails'] = $penawrandetails;
|
||||
$data['penawarandetailLogs'] = $penawarandetailLogs;
|
||||
$data['status'] = 'success';
|
||||
$data['message']['message_success'] = array("data successfully found");
|
||||
} else {
|
||||
$data['status'] = 'error';
|
||||
$data['penawaran'] = null;
|
||||
$data['penawrandetails'] = null;
|
||||
$data['message']['message_data'] = array("data not found");
|
||||
}
|
||||
} else {
|
||||
$data['status'] = 'error';
|
||||
$data['message']['message_ajax'] = array("no ajax request");
|
||||
}
|
||||
|
||||
return response()->json($data);
|
||||
}
|
||||
|
||||
public function otorisasiPenawaranKJPP(Request $request, $id): JsonResponse
|
||||
{
|
||||
$data = array();
|
||||
$dataDetailPenawaranLog=[];
|
||||
if (request()->ajax()) {
|
||||
|
||||
// cek masa aktif penawaran
|
||||
$detailpenawaran = PenawaranDetailTender::find($id);
|
||||
$penawaran = PenawaranTender::findOrFail($detailpenawaran->penawaran_id);
|
||||
$checkActiveDateRange = checkActiveDateRangePenawaran($detailpenawaran->penawaran_id);
|
||||
// cek masa aktif penawaran
|
||||
if($checkActiveDateRange)
|
||||
{
|
||||
DB::beginTransaction();
|
||||
try {
|
||||
|
||||
// update status KJPP yg tidak terpilih menjadi 2 -> kalah
|
||||
// update status Penawaran menjadi SPK
|
||||
// update status Permohonan menjadi SPK
|
||||
// insert detail_permohonan_log
|
||||
|
||||
PenawaranDetailTender::where('status', 1)
|
||||
->where('penawaran_id', $request->penawaran_id)
|
||||
->whereNotIn('id', [$id])
|
||||
->update(['status' => 2,
|
||||
'updated_by' => Auth::id(),
|
||||
'updated_at' => now()
|
||||
]);
|
||||
|
||||
PenawaranTender::where('id', $request->penawaran_id)
|
||||
->update(['status'=>'spk',
|
||||
'nama_kjpp_sebelumnya'=>$request->kjppName,
|
||||
'biaya_kjpp_sebelumnya'=>$request->biaya_penawaran,
|
||||
'tanggal_penilaian_sebelumnya'=>now(),
|
||||
'authorized_status'=>1,
|
||||
'authorized_at'=>now(),
|
||||
'authorized_by'=>Auth::id(),
|
||||
'updated_by' => Auth::id(),
|
||||
'updated_at' => now()
|
||||
]);
|
||||
|
||||
Permohonan::where('nomor_registrasi',$request->noReg)
|
||||
->update(['status'=>'spk',
|
||||
'updated_by' => Auth::id(),
|
||||
'updated_at' => now()
|
||||
]);
|
||||
|
||||
// log
|
||||
$detailPenawaran = PenawaranDetailTender::where('penawaran_id', $request->penawaran_id)->get();
|
||||
if(sizeof($detailPenawaran)>0)
|
||||
{
|
||||
|
||||
foreach ($detailPenawaran as $model) {
|
||||
array_push($dataDetailPenawaranLog, [
|
||||
'detail_penawaran_id' =>$model->id,
|
||||
'kjpp_rekanan_id' =>$model->kjpp_rekanan_id,
|
||||
'penawaran_id' =>$model->penawaran_id,
|
||||
'biaya_penawaran' =>$model->biaya_penawaran,
|
||||
'attachment' =>$model->attachment,
|
||||
'dokumen_persetujuan' =>$model->dokumen_persetujuan,
|
||||
'status' =>$model->status,
|
||||
'authorized_status' =>$model->authorized_status,
|
||||
'authorized_at' =>$model->authorized_at,
|
||||
'authorized_at' =>$model->authorized_at,
|
||||
'created_at' =>$model->created_at,
|
||||
'updated_at' =>$model->updated_at,
|
||||
'deleted_at' =>$model->deleted_at,
|
||||
'created_by' =>$model->created_by,
|
||||
'updated_by' =>$model->updated_by,
|
||||
'deleted_by' =>$model->deleted_by
|
||||
]);
|
||||
|
||||
}
|
||||
|
||||
PenawaranDetailTenderLog::insert($dataDetailPenawaranLog);
|
||||
}
|
||||
// log
|
||||
|
||||
DB::commit();
|
||||
$data['status'] = 'success';
|
||||
$data['message']['message_success'] = array('Otorisasi Penawaran KJPP '.$request->kjppName.' successfully');
|
||||
} catch (Exception $e) {
|
||||
DB::rollBack();
|
||||
$data['status'] = 'error';
|
||||
$data['message']['message_error'] = array("Otorisasi Penawaran KJPP failed..");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['status'] = 'error';
|
||||
$data['message'] ['active_date_range'] = array("Penawaran sudah di tutup");
|
||||
}
|
||||
|
||||
} else {
|
||||
$data['status'] = 'error';
|
||||
$data['message']['message_ajax'] = array("no ajax request");
|
||||
}
|
||||
return response()->json($data);
|
||||
}
|
||||
|
||||
public function show($id)
|
||||
{
|
||||
$prosespenawaran = PenawaranTender::find($id);
|
||||
return view('lpj::otorisasipenawaran.show', compact('id','prosespenawaran'));
|
||||
}
|
||||
}
|
||||
@@ -63,6 +63,7 @@
|
||||
public function update(PemilikJaminanRequest $request, $id, $pemilik)
|
||||
{
|
||||
$validate = $request->validated();
|
||||
|
||||
if ($validate) {
|
||||
try {
|
||||
$pemilik = PemilikJaminan::find($pemilik);
|
||||
@@ -88,6 +89,7 @@
|
||||
$districts = District::where('city_code', $pemilik->city_code)->get();
|
||||
$villages = Village::where('district_code', $pemilik->district_code)->get();
|
||||
$hubunganPemilik = HubunganPemilikJaminan::all();
|
||||
$detailSertifikat = $pemilik->detail_sertifikat;
|
||||
|
||||
return view(
|
||||
'lpj::pemilik_jaminan.form',
|
||||
@@ -99,6 +101,7 @@
|
||||
'villages',
|
||||
'hubunganPemilik',
|
||||
'pemilik',
|
||||
'detailSertifikat'
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
135
app/Http/Controllers/PenilaiController.php
Normal file
135
app/Http/Controllers/PenilaiController.php
Normal file
@@ -0,0 +1,135 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Modules\Lpj\Models\Permohonan;
|
||||
use App\Http\Controllers\Controller;
|
||||
|
||||
class PenilaiController extends Controller
|
||||
{
|
||||
public $user;
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return view('lpj::penilai.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('lpj::create');
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
$permohonan = Permohonan::with('debiture.documents.jenisjaminan')->find($id);
|
||||
|
||||
return view('lpj::penilai.show', compact('permohonan'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
return view('lpj::edit');
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
public function dataForDatatables(Request $request)
|
||||
{
|
||||
if (is_null($this->user) || !$this->user->can('penilai.view')) {
|
||||
//abort(403, 'Sorry! You are not allowed to view users.');
|
||||
}
|
||||
|
||||
// Retrieve data from the database
|
||||
$query = Permohonan::query()->where('status', '=', 'done');
|
||||
|
||||
// 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->orWhereRelation('debiture', 'name', 'LIKE', '%' . $search . '%');
|
||||
$q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%');
|
||||
$q->orWhereRelation('user', 'name', 'LIKE', '%' . $search . '%');
|
||||
$q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%');
|
||||
$q->orWhereRelation('jenisfasilitasKredit', '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->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'jenisfasilitasKredit'])->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,
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@
|
||||
namespace Modules\Lpj\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Barryvdh\DomPDF\Facade\Pdf;
|
||||
use Exception;
|
||||
use Illuminate\Http\Request;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
@@ -304,4 +305,19 @@
|
||||
|
||||
return redirect()->route('authorization.index')->with('success', 'Permohonan updated successfully');
|
||||
}
|
||||
|
||||
public function show($id)
|
||||
{
|
||||
$permohonan = Permohonan::find($id);
|
||||
|
||||
return view('lpj::permohonan.show', compact('permohonan'));
|
||||
}
|
||||
|
||||
public function print($id){
|
||||
$permohonan = Permohonan::find($id);
|
||||
return view('lpj::permohonan.print', compact('permohonan'));
|
||||
|
||||
// $pdf = Pdf::loadView('lpj::permohonan.print', compact('permohonan'));
|
||||
// return $pdf->stream();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,7 +75,7 @@ class ProsesPenawaranController extends Controller
|
||||
|
||||
// Get the data for the current page
|
||||
//$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get();
|
||||
$data = $query->with(['tujuanPenilaianKJPP'])->get();
|
||||
$data = $query->with(['tujuanPenilaianKJPP','permohonan','permohonan.debiture'])->get();
|
||||
|
||||
// Calculate the page count
|
||||
$pageCount = ceil($totalRecords / $request->get('size'));
|
||||
@@ -108,37 +108,39 @@ class ProsesPenawaranController extends Controller
|
||||
|
||||
if (request()->ajax()) {
|
||||
$id = $request->id;
|
||||
$penawaran = PenawaranTender::findOrFail($id);
|
||||
$penawrandetails = PenawaranDetailTender::where('penawaran_id', '=', $id)
|
||||
->leftJoin('kjpp', 'kjpp.id', '=', 'detail_penawaran.kjpp_rekanan_id')
|
||||
->select('detail_penawaran.*', 'kjpp.code AS kjpp_code', 'kjpp.name AS kjpp_name')
|
||||
->where('detail_penawaran.status', '=', 1)
|
||||
->get();
|
||||
$data['status'] = 'success';
|
||||
$penawaran = PenawaranTender::find($id);
|
||||
$penawrandetails = PenawaranDetailTender::where('penawaran_id','=',$id)
|
||||
->leftJoin('kjpp', 'kjpp.id', '=', 'detail_penawaran.kjpp_rekanan_id')
|
||||
->select('detail_penawaran.*', 'kjpp.code AS kjpp_code', 'kjpp.name AS kjpp_name')
|
||||
->where('detail_penawaran.status','=',1)
|
||||
->get();
|
||||
|
||||
if ($penawaran) {
|
||||
$i = 0;
|
||||
foreach ($penawrandetails as $obj) {
|
||||
// dd($obj->dokumen_persetujuan);
|
||||
if ($obj->dokumen_persetujuan && Storage::disk('public')->exists($obj->dokumen_persetujuan)) {
|
||||
|
||||
$i=0;
|
||||
foreach($penawrandetails as $obj)
|
||||
{
|
||||
if($obj->dokumen_persetujuan && Storage::disk('public')->exists($obj->dokumen_persetujuan))
|
||||
{
|
||||
$penawrandetails_path = Storage::url($obj->dokumen_persetujuan);
|
||||
$penawrandetails[$i]->dokumen_persetujuan = $penawrandetails_path;
|
||||
$i++;
|
||||
$penawrandetails[$i]['dokumen_persetujuan']=$penawrandetails_path;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
|
||||
$kjpp = null;
|
||||
$kjpp = KJPP::pluck('name', 'id');
|
||||
$data['penawaran'] = $penawaran;
|
||||
$data['penawrandetails'] = $penawrandetails;
|
||||
$data['message'] = 'data successfully found';
|
||||
$data['status'] = 'success';
|
||||
$data['message'] ['message_success'] = array("data successfully found");
|
||||
} else {
|
||||
$data['penawaran'] = null;
|
||||
$data['penawrandetails'] = null;
|
||||
$data['message'] = 'data not found';
|
||||
$data['status'] = 'error';
|
||||
$data['message'] ['message_data'] = array("data not found");
|
||||
}
|
||||
} else {
|
||||
$data['status'] = 'error';
|
||||
$data['message'] = 'no ajax request';
|
||||
$data['message'] ['message_ajax'] = array("no ajax request");
|
||||
}
|
||||
|
||||
return response()->json($data);
|
||||
@@ -151,62 +153,71 @@ class ProsesPenawaranController extends Controller
|
||||
{
|
||||
// init
|
||||
$data = array();
|
||||
$dataku = array();
|
||||
$tindakan = null;
|
||||
$dataPenawaranDetail = array();
|
||||
if (request()->ajax()) {
|
||||
$validator = ProsesPenawaranController::rulesEditnya($request, $id);
|
||||
|
||||
if ($validator['fails']) {
|
||||
$data['message'] = $validator['errors'];
|
||||
$data['status'] = 'error';
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
try {
|
||||
|
||||
$dataku = [
|
||||
'updated_by' => Auth::id(),
|
||||
'updated_at' => now(),
|
||||
'biaya_penawaran' => str_replace(".", "", $request->biaya_penawaran)
|
||||
];
|
||||
$dataPenawaranDetail = ['updated_by' => Auth::id(),
|
||||
'updated_at' => now(),
|
||||
'biaya_penawaran' => str_replace(".","",$request->biaya_penawaran)
|
||||
];
|
||||
|
||||
if ($request->hasFile('dokumen_persetujuan')) {
|
||||
if ($request->hasFile('dokumen_persetujuan'))
|
||||
{
|
||||
$file_tmp = $request->file('dokumen_persetujuan');
|
||||
$folderPath = 'uploads/penawaran/';
|
||||
if ($file_tmp->isValid()) {
|
||||
$myFile = $file_tmp->getClientOriginalName(); // nama file with extension
|
||||
if ($file_tmp->isValid())
|
||||
{
|
||||
$myFile=$file_tmp->getClientOriginalName(); // nama file with extension
|
||||
$file_name = pathinfo($myFile, PATHINFO_FILENAME); // nama file without extension
|
||||
|
||||
$extension = $file_tmp->getClientOriginalExtension();
|
||||
// kjppID_penawaranID_namaFile_userID_time
|
||||
$newFileName = $request->kjpp_rekanan_id . '_' . $id . '_' . $file_name . '_' . Auth::user()->id . "_" . time() . '.' . $extension;
|
||||
Storage::disk('public')->put($folderPath . '/' . $newFileName, file_get_contents($file_tmp));
|
||||
$newFileName = $request->kjpp_rekanan_id.'_'.$id.'_'.$file_name.'_'.Auth::user()->id."_".time() .'.'. $extension;
|
||||
Storage::disk('public')->put($folderPath.'/'.$newFileName,file_get_contents($file_tmp));
|
||||
|
||||
$newFileNameWithPath = $folderPath . $newFileName;
|
||||
$dataku['attachment'] = $myFile;
|
||||
$dataku['dokumen_persetujuan'] = $newFileNameWithPath;
|
||||
$dataPenawaranDetail['attachment'] = $myFile;
|
||||
$dataPenawaranDetail['dokumen_persetujuan'] = $newFileNameWithPath;
|
||||
|
||||
$model = PenawaranDetailTender::findOrFail($id);
|
||||
$model->update($dataku);
|
||||
$penawarandetail = PenawaranDetailTender::findOrFail($id);
|
||||
$penawarandetail->update($dataPenawaranDetail);
|
||||
|
||||
$data['status'] = 'success';
|
||||
$data['detailpenawaran_id'] = $id;
|
||||
$data['message'] = 'Proses Penawarn KJPP successfully';
|
||||
} else {
|
||||
$data['status'] = 'error';
|
||||
$data['message'] = 'Silahkan upload file pdf';
|
||||
$data['status'] = 'success';
|
||||
$data['message'] ['message_success'] = array('Proses Penawarn KJPP successfully');
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['status'] = 'error';
|
||||
$data['message'] ['check_file_jenis'] = array("Silahkan upload file pdf");
|
||||
}
|
||||
} else {
|
||||
$data['status'] = 'error';
|
||||
$data['message'] = 'Silahkan upload file';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['status'] = 'error';
|
||||
$data['message'] ['check_file'] = array("Silahkan upload file");
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception $e) {
|
||||
|
||||
$data['status'] = 'error';
|
||||
$data['message'] = 'Proses Penawarn KJPP failed.';
|
||||
$data['message'] ['message_error_try_catch'] = array('Proses Penawarn KJPP failed.');
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
$data['status'] = 'error';
|
||||
$data['message'] = 'no ajax request';
|
||||
$data['message'] ['message_ajax'] = array("no ajax request");
|
||||
}
|
||||
|
||||
return response()->json($data);
|
||||
@@ -240,134 +251,86 @@ class ProsesPenawaranController extends Controller
|
||||
*/
|
||||
public function updateAll(Request $request, $id): JsonResponse
|
||||
{
|
||||
// init
|
||||
$data = array();
|
||||
$dataku = array();
|
||||
$model = PenawaranTender::findOrFail($id);
|
||||
$checkActiveDateRange = $this->checkActiveDateRangePenawaran($model->start_date, $model->end_date);
|
||||
// init
|
||||
$data = array();
|
||||
$dataPermohonan = array();
|
||||
$dataPenawaran = array();
|
||||
$penawaran = PenawaranTender::find($id);
|
||||
$checkActiveDateRange = checkActiveDateRangePenawaran($id);
|
||||
|
||||
// cek masa aktif penawaran
|
||||
if ($checkActiveDateRange) {
|
||||
// cek masa aktif penawaran
|
||||
if($checkActiveDateRange)
|
||||
{
|
||||
|
||||
$checkKelengkapanDetailKJPP = $this->checkKelengkapanDetailKJPP($id);
|
||||
if ($checkKelengkapanDetailKJPP) {
|
||||
DB::beginTransaction();
|
||||
try {
|
||||
$dataku = [
|
||||
'status' => 'tendered',
|
||||
'updated_by' => Auth::id(),
|
||||
'updated_at' => now()
|
||||
];
|
||||
$checkKelengkapanDetailKJPP = checkKelengkapanDetailKJPP($id);
|
||||
if($checkKelengkapanDetailKJPP)
|
||||
{
|
||||
DB::beginTransaction();
|
||||
try {
|
||||
$_updatestatus = ['status' => 'proposal-tender',
|
||||
'updated_by' => Auth::id(),
|
||||
'updated_at' => now()
|
||||
];
|
||||
|
||||
$dataPermohonan = [
|
||||
'status' => 'tendered',
|
||||
'updated_by' => Auth::id(),
|
||||
'updated_at' => now()
|
||||
];
|
||||
$permohonan = Permohonan::where('nomor_registrasi','=', $penawaran->nomor_registrasi)->first();
|
||||
|
||||
$permohonan = Permohonan::where('nomor_registrasi', '=', $model->nomor_registrasi)->first();
|
||||
$penawaran->update($_updatestatus);
|
||||
$permohonan->update($_updatestatus);
|
||||
|
||||
$model->update($dataku);
|
||||
$permohonan->update($dataPermohonan);
|
||||
DB::commit();
|
||||
|
||||
DB::commit();
|
||||
$data['message'] ['message_success'] = array('Sukses melakukan Proses Penawaran');
|
||||
$data['status'] = 'success';
|
||||
|
||||
$data['message'] = "Sukses melakukan Proses Penawaran";
|
||||
$data['status'] = 'success';
|
||||
} catch (Exception $e) {
|
||||
DB::rollBack();
|
||||
// dd($e);
|
||||
$data['message'] = "Gagal melakukan Proses Penawaran";
|
||||
$data['status'] = 'error';
|
||||
}
|
||||
} else {
|
||||
$data['message'] = "Silahkan lengkapi data KJPP";
|
||||
$data['status'] = 'error';
|
||||
}
|
||||
} else {
|
||||
$data['message'] = "Penawaran sudah di tutup";
|
||||
$data['status'] = 'error';
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
DB::rollBack();
|
||||
// dd($e);
|
||||
$data['message'] ['message_error_try_catch'] = array("Gagal melakukan Proses Penawaran");
|
||||
$data['status'] = 'error';
|
||||
}
|
||||
|
||||
return response()->json($data);
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['message'] ['cek_kelengkapan_data'] = array("Silahkan lengkapi data KJPP");
|
||||
$data['status'] = 'error';
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['message'] ['active_date_range'] = array("Penawaran sudah di tutup");
|
||||
$data['status'] = 'error';
|
||||
}
|
||||
|
||||
return response()->json($data);
|
||||
}
|
||||
|
||||
public function checkActiveDateRangePenawaran($start_date1, $end_date1)
|
||||
{
|
||||
$start_date = strtotime($start_date1);
|
||||
$end_date = strtotime($end_date1);
|
||||
$todays_date = strtotime(now());
|
||||
|
||||
$allow = true;
|
||||
if ($todays_date >= $start_date && $todays_date <= $end_date) {
|
||||
//Penawaran dibuka
|
||||
$allow = true;
|
||||
} else {
|
||||
if ($todays_date < $start_date) {
|
||||
//Penawaran Belum dibuka
|
||||
$allow = true;
|
||||
} else {
|
||||
//Penawaran sudah ditutup
|
||||
$allow = false;
|
||||
}
|
||||
}
|
||||
|
||||
return $allow;
|
||||
}
|
||||
|
||||
public 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(function ($query) {
|
||||
$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;
|
||||
}
|
||||
|
||||
return $allow;
|
||||
}
|
||||
|
||||
public function updateStatusPenawaranKJPP(Request $request, $id): JsonResponse
|
||||
public function updateKJPPStatus(Request $request, $id): JsonResponse
|
||||
{
|
||||
// init
|
||||
$data = array();
|
||||
$dataku = array();
|
||||
$dataDetailPenawaran = array();
|
||||
|
||||
try {
|
||||
$model = PenawaranDetailTender::findOrFail($id);
|
||||
$data['id'] = $id;
|
||||
$detailpenawaran = PenawaranDetailTender::findOrFail($id);
|
||||
$data['id']=$id;
|
||||
|
||||
$dataku = [
|
||||
'status' => '0',
|
||||
$dataDetailPenawaran = ['status' => '0',
|
||||
'updated_by' => Auth::id(),
|
||||
'updated_at' => now()
|
||||
];
|
||||
|
||||
$model->update($dataku);
|
||||
$detailpenawaran->update($dataDetailPenawaran);
|
||||
|
||||
$data['message'] = "Sukses delete Penawaran KJPP";
|
||||
$data['status'] = 'success';
|
||||
$data['message'] ['message_success'] = array('Sukses delete Penawaran KJPP '.$request->kjppName);
|
||||
} catch (Exception $e) {
|
||||
|
||||
// dd($e);
|
||||
$data['message'] = "Gagal delete Penawaran KJPP";
|
||||
$data['status'] = 'error';
|
||||
$data['message'] ['message_error_try_catch'] = array("Gagal delete Penawaran KJPP ".$request->kjppName);
|
||||
}
|
||||
|
||||
return response()->json($data);
|
||||
}
|
||||
|
||||
|
||||
373
app/Http/Controllers/ProsesPenawaranUlangController.php
Normal file
373
app/Http/Controllers/ProsesPenawaranUlangController.php
Normal file
@@ -0,0 +1,373 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Exception;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
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;
|
||||
|
||||
class ProsesPenawaranUlangController extends Controller
|
||||
{
|
||||
public $user;
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return view('lpj::prosespenawaranulang.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 =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')
|
||||
->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id')
|
||||
->where('penawaran.status','=','proposal-tender')
|
||||
->withCount('penawarandetails');
|
||||
|
||||
// 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->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();
|
||||
$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 edit($id)
|
||||
{
|
||||
return view('lpj::prosespenawaranulang.edit', compact('id'));
|
||||
}
|
||||
|
||||
public function show($id)
|
||||
{
|
||||
$prosespenawaran = PenawaranTender::find($id);
|
||||
return view('lpj::prosespenawaranulang.show', compact('id','prosespenawaran'));
|
||||
}
|
||||
|
||||
public function setData(Request $request): JsonResponse
|
||||
{
|
||||
$data = array();
|
||||
$penawaran = array();
|
||||
$penawrandetails = array();
|
||||
|
||||
if (request()->ajax()) {
|
||||
$id = $request->id;
|
||||
$penawaran = PenawaranTender::where('status','=','proposal-tender')->find($id);
|
||||
|
||||
if ($penawaran) {
|
||||
$penawrandetails = PenawaranDetailTender::where('penawaran_id','=',$id)
|
||||
->leftJoin('kjpp', 'kjpp.id', '=', 'detail_penawaran.kjpp_rekanan_id')
|
||||
->select('detail_penawaran.*', 'kjpp.code AS kjpp_code', 'kjpp.name AS kjpp_name')
|
||||
->where('detail_penawaran.status','=',1)
|
||||
->get();
|
||||
|
||||
$i=0;
|
||||
foreach($penawrandetails as $obj)
|
||||
{
|
||||
if($obj->dokumen_persetujuan && Storage::disk('public')->exists($obj->dokumen_persetujuan))
|
||||
{
|
||||
$penawrandetails_path = Storage::url($obj->dokumen_persetujuan);
|
||||
$penawrandetails[$i]['dokumen_persetujuan']=$penawrandetails_path;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
|
||||
$penawaranString = "";
|
||||
if($penawaran->status)
|
||||
{
|
||||
$penawaranString = convertSlug($penawaran->status);
|
||||
$penawaran->status = $penawaranString;
|
||||
}
|
||||
|
||||
$data['penawaran'] = $penawaran;
|
||||
$data['penawrandetails'] = $penawrandetails;
|
||||
$data['status'] = 'success';
|
||||
$data['message']['message_success'] = array("data successfully found");
|
||||
} else {
|
||||
$data['status'] = 'error';
|
||||
$data['penawaran'] = null;
|
||||
$data['penawrandetails'] = null;
|
||||
$data['message']['message_data'] = array("data not found");
|
||||
}
|
||||
} else {
|
||||
$data['status'] = 'error';
|
||||
$data['message']['message_ajax'] = array("no ajax request");
|
||||
}
|
||||
|
||||
return response()->json($data);
|
||||
}
|
||||
|
||||
public function update(Request $request, $id): JsonResponse
|
||||
{
|
||||
// init
|
||||
$data = array();
|
||||
$dataDetailPenawaranLog = array();
|
||||
$dataDetailPenawaran = array();
|
||||
$pleaseCommit= true;
|
||||
if (request()->ajax()) {
|
||||
$validator = ProsesPenawaranUlangController::rulesEditnya($request, $id);
|
||||
|
||||
if ($validator['fails']) {
|
||||
$data['message'] = $validator['errors'];
|
||||
$data['status'] = 'error';
|
||||
}
|
||||
else
|
||||
{
|
||||
// cek masa aktif penawaran
|
||||
$detailpenawaran = PenawaranDetailTender::find($id);
|
||||
$checkActiveDateRange = checkActiveDateRangePenawaran($detailpenawaran->penawaran_id);
|
||||
// cek masa aktif penawaran
|
||||
if($checkActiveDateRange)
|
||||
{
|
||||
DB::beginTransaction();
|
||||
try {
|
||||
|
||||
$dataDetailPenawaranLog = [
|
||||
'detail_penawaran_id' =>$detailpenawaran->id,
|
||||
'kjpp_rekanan_id' =>$detailpenawaran->kjpp_rekanan_id,
|
||||
'penawaran_id' =>$detailpenawaran->penawaran_id,
|
||||
'biaya_penawaran' =>$detailpenawaran->biaya_penawaran,
|
||||
'attachment' =>$detailpenawaran->attachment,
|
||||
'dokumen_persetujuan' =>$detailpenawaran->dokumen_persetujuan,
|
||||
'status' =>$detailpenawaran->status,
|
||||
'authorized_status' =>$detailpenawaran->authorized_status,
|
||||
'authorized_at' =>$detailpenawaran->authorized_at,
|
||||
'authorized_at' =>$detailpenawaran->authorized_at,
|
||||
'created_at' =>$detailpenawaran->created_at,
|
||||
'updated_at' =>$detailpenawaran->updated_at,
|
||||
'deleted_at' =>$detailpenawaran->deleted_at,
|
||||
'created_by' =>$detailpenawaran->created_by,
|
||||
'updated_by' =>$detailpenawaran->updated_by,
|
||||
'deleted_by' =>$detailpenawaran->deleted_by
|
||||
|
||||
];
|
||||
|
||||
PenawaranDetailTenderLog::create($dataDetailPenawaranLog);
|
||||
|
||||
$biaya_penawaran="";
|
||||
if($request->biaya_penawaran)
|
||||
$biaya_penawaran= str_replace(".","",$request->biaya_penawaran);
|
||||
$dataDetailPenawaran = ['updated_by' => Auth::id(),
|
||||
'updated_at' => now(),
|
||||
'biaya_penawaran' => $biaya_penawaran
|
||||
];
|
||||
|
||||
if ($request->hasFile('dokumen_persetujuan'))
|
||||
{
|
||||
$file_tmp = $request->file('dokumen_persetujuan');
|
||||
$folderPath = 'uploads/penawaran/';
|
||||
if ($file_tmp->isValid())
|
||||
{
|
||||
$myFile=$file_tmp->getClientOriginalName(); // nama file with extension
|
||||
$file_name = pathinfo($myFile, PATHINFO_FILENAME); // nama file without extension
|
||||
|
||||
$extension = $file_tmp->getClientOriginalExtension();
|
||||
// kjppID_penawaranID_namaFile_userID_time
|
||||
$newFileName = $request->kjpp_rekanan_id.'_'.$id.'_'.$file_name.'_'.Auth::user()->id."_".time() .'.'. $extension;
|
||||
Storage::disk('public')->put($folderPath.'/'.$newFileName,file_get_contents($file_tmp));
|
||||
|
||||
$newFileNameWithPath = $folderPath . $newFileName;
|
||||
$dataDetailPenawaran['attachment'] = $myFile;
|
||||
$dataDetailPenawaran['dokumen_persetujuan'] = $newFileNameWithPath;
|
||||
}
|
||||
else
|
||||
{
|
||||
$pleaseCommit=false;
|
||||
$data['status'] = 'error';
|
||||
$data['message']['check_file_jenis'] = array("Silahkan upload file pdf");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['status'] = 'error';
|
||||
$data['message']['check_file'] = array("Silahkan upload file");
|
||||
|
||||
}
|
||||
|
||||
$detailpenawaran->update($dataDetailPenawaran);
|
||||
|
||||
if($pleaseCommit)
|
||||
{
|
||||
DB::commit();
|
||||
|
||||
$data['id'] = $id;
|
||||
$data['detailpenawaran'] = $detailpenawaran;
|
||||
$data['status'] = 'success';
|
||||
$data['message']['message_success'] = array('Proses Penawarn KJPP Ulang successfully');
|
||||
}
|
||||
else
|
||||
{
|
||||
DB::rollBack();
|
||||
$data['status'] = 'error';
|
||||
$data['message']['message_error'] = array("Proses Penawarn KJPP Ulang failed..");
|
||||
}
|
||||
|
||||
} catch (Exception $e) {
|
||||
DB::rollBack();
|
||||
$data['status'] = 'error';
|
||||
$data['message']['message_error_try_catch'] = array('Proses Penawarn KJPP Ulang failed.');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['status'] = 'error';
|
||||
$data['message']['active_date_range'] = array("Penawaran sudah di tutup");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
$data['status'] = 'error';
|
||||
$data['message']['message_ajax'] = array("no ajax request");
|
||||
}
|
||||
|
||||
return response()->json($data);
|
||||
}
|
||||
|
||||
// delete KJPP di detail_penawaran (status di buat 0)
|
||||
public function updateKJPPStatus(Request $request, $id): JsonResponse
|
||||
{
|
||||
// init
|
||||
$data = array();
|
||||
$dataku = array();
|
||||
$dataDetailPenawaranLog = array();
|
||||
|
||||
DB::beginTransaction();
|
||||
try {
|
||||
$model = PenawaranDetailTender::findOrFail($id);
|
||||
|
||||
// log
|
||||
$dataDetailPenawaranLog = [
|
||||
'detail_penawaran_id' =>$model->id,
|
||||
'kjpp_rekanan_id' =>$model->kjpp_rekanan_id,
|
||||
'penawaran_id' =>$model->penawaran_id,
|
||||
'biaya_penawaran' =>$model->biaya_penawaran,
|
||||
'attachment' =>$model->attachment,
|
||||
'dokumen_persetujuan' =>$model->dokumen_persetujuan,
|
||||
'status' =>0,
|
||||
'authorized_status' =>$model->authorized_status,
|
||||
'authorized_at' =>$model->authorized_at,
|
||||
'authorized_at' =>$model->authorized_at,
|
||||
'created_at' =>$model->created_at,
|
||||
'updated_at' =>$model->updated_at,
|
||||
'deleted_at' =>$model->deleted_at,
|
||||
'created_by' =>$model->created_by,
|
||||
'updated_by' =>$model->updated_by,
|
||||
'deleted_by' =>$model->deleted_by
|
||||
|
||||
];
|
||||
|
||||
PenawaranDetailTenderLog::create($dataDetailPenawaranLog);
|
||||
// log
|
||||
|
||||
$data['id']=$id;
|
||||
|
||||
$dataku = ['status' => '0',
|
||||
'updated_by' => Auth::id(),
|
||||
'updated_at' => now()
|
||||
];
|
||||
|
||||
$model->update($dataku);
|
||||
|
||||
DB::commit();
|
||||
$data['status'] = 'success';
|
||||
$data['message']['message_success'] = array('Sukses delete Penawaran KJPP '.$request->kjppName);
|
||||
} catch (Exception $e) {
|
||||
DB::rollBack();
|
||||
// dd($e);
|
||||
$data['status'] = 'error';
|
||||
$data['message']['message_error_try_catch'] = array("Gagal delete Penawaran KJPP ".$request->kjppName);
|
||||
}
|
||||
return response()->json($data);
|
||||
}
|
||||
|
||||
public function rulesEditnya($request, $id)
|
||||
{
|
||||
$validateIt = [
|
||||
// 'name' diambil dari definisi parameter yang di kirim pada POST Data
|
||||
'biaya_penawaran' => 'required',
|
||||
'dokumen_persetujuan' => 'required|file|mimes:pdf'
|
||||
];
|
||||
|
||||
$messageIt = [
|
||||
'biaya_penawaran.required' => 'Silahkan isi Biaya Penawaran',
|
||||
'dokumen_persetujuan.required' => 'Silahkan isi dokumen',
|
||||
'dokumen_persetujuan.file' => 'Silahkan isi file',
|
||||
'dokumen_persetujuan.mimes' => 'Silahkan upload pdf'
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $validateIt, $messageIt);
|
||||
|
||||
$data['fails'] = $validator->fails();
|
||||
$data['errors'] = $validator->errors();
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -114,25 +114,27 @@
|
||||
|
||||
if (request()->ajax()) {
|
||||
$id = $request->id;
|
||||
$datas = Permohonan::findOrFail($id);
|
||||
$data['status'] = 'success';
|
||||
$datas = Permohonan::find($id);
|
||||
|
||||
if ($datas) {
|
||||
$jenisPenilaians=null;
|
||||
$regions=null;
|
||||
$regions=Regions::pluck('name', 'id');
|
||||
$jenisPenilaians=JenisPenilaian::pluck('name', 'id');
|
||||
|
||||
$data['status'] = 'success';
|
||||
$data['regions'] = $regions;
|
||||
$data['jenisPenilaians'] = $jenisPenilaians;
|
||||
$data['datas'] = $datas;
|
||||
$data['message'] = 'data successfully found';
|
||||
$data['message'] ['message_success'] = array("data successfully found");
|
||||
} else {
|
||||
$data['status'] = 'error';
|
||||
$data['datas'] = null;
|
||||
$data['message'] = 'data not found';
|
||||
$data['message'] ['message_data'] = array("data not found");
|
||||
}
|
||||
} else {
|
||||
$data['status'] = 'error';
|
||||
$data['message'] = 'no ajax request';
|
||||
$data['message'] ['message_ajax'] = array("no ajax request");
|
||||
}
|
||||
|
||||
return response()->json($data);
|
||||
@@ -179,17 +181,17 @@
|
||||
$modal->update($dataku);
|
||||
//
|
||||
$data['status'] = 'success';
|
||||
$data['message'] = 'Regitrasi '.$modal->nomor_registrasi.' successfully';
|
||||
$data['message'] ['message_success'] = array('Regitrasi '.$modal->nomor_registrasi.' successfully');
|
||||
} catch (Exception $e) {
|
||||
|
||||
$data['status'] = 'error';
|
||||
$data['message'] = 'Jenis Fasilitas Kredit updated failed.';
|
||||
$data['message'] ['message_try_catch'] = array('Regitrasi updated failed.');
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
$data['status'] = 'error';
|
||||
$data['message'] = 'no ajax request';
|
||||
$data['message'] ['message_ajax'] = array("no ajax request");
|
||||
}
|
||||
|
||||
return response()->json($data);
|
||||
@@ -245,27 +247,4 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
268
app/Http/Controllers/RegistrasiFinalController.php
Normal file
268
app/Http/Controllers/RegistrasiFinalController.php
Normal file
@@ -0,0 +1,268 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Carbon\Carbon;
|
||||
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;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
use Modules\Lpj\Models\PenawaranTender;
|
||||
|
||||
class RegistrasiFinalController extends Controller
|
||||
{
|
||||
public $user;
|
||||
|
||||
public function index()
|
||||
{
|
||||
return view('lpj::registrasifinal.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 =PenawaranTender::query()
|
||||
->select('penawaran.*', 'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name')
|
||||
->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id')
|
||||
->where('penawaran.status','=','spk')
|
||||
->withCount('penawarandetails');
|
||||
|
||||
// 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->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();
|
||||
$data = $query->get();
|
||||
// dd($data);
|
||||
$i=0;
|
||||
foreach($data as $obj)
|
||||
{
|
||||
if($obj->tanggal_penilaian_sebelumnya)
|
||||
{
|
||||
$data[$i]->tanggal_penilaian_sebelumnya = Carbon::parse($obj->tanggal_penilaian_sebelumnya)->format('d F Y H:i:s');
|
||||
}
|
||||
|
||||
if($obj->biaya_kjpp_sebelumnya)
|
||||
{
|
||||
$data[$i]->biaya_kjpp_sebelumnya = formatRupiah($obj->biaya_kjpp_sebelumnya);
|
||||
|
||||
}
|
||||
|
||||
// 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++;
|
||||
}
|
||||
|
||||
|
||||
// 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 show($id)
|
||||
{
|
||||
$permohonan = Permohonan::find($id);
|
||||
return view('lpj::registrasifinal.show', compact('id','permohonan'));
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
return view('lpj::registrasifinal.edit', compact('id'));
|
||||
}
|
||||
|
||||
public function setData(Request $request): JsonResponse
|
||||
{
|
||||
$data = array();
|
||||
$datas = array();
|
||||
|
||||
if (request()->ajax()) {
|
||||
$id = $request->id;
|
||||
$datas = Permohonan::find($id);
|
||||
|
||||
if ($datas) {
|
||||
$penawaran=null;
|
||||
$regions=null;
|
||||
$regions=Regions::pluck('name', 'id');
|
||||
$penawaran = PenawaranTender::where('nomor_registrasi','=',$datas->nomor_registrasi)->first();
|
||||
|
||||
$penawaranString = "";
|
||||
if($penawaran->status)
|
||||
{
|
||||
$penawaranString = convertSlug($penawaran->status);
|
||||
$penawaran->status = $penawaranString;
|
||||
}
|
||||
|
||||
$data['status'] = 'success';
|
||||
$data['regions'] = $regions;
|
||||
$data['penawaran'] = $penawaran;
|
||||
$data['datas'] = $datas;
|
||||
$data['message']['message_success'] = array("data successfully found");
|
||||
} else {
|
||||
$data['status'] = 'error';
|
||||
$data['datas'] = null;
|
||||
$data['message']['message_data'] = array("data not found");
|
||||
}
|
||||
} else {
|
||||
$data['status'] = 'error';
|
||||
$data['message']['message_ajax'] = array("no ajax request");
|
||||
}
|
||||
|
||||
return response()->json($data);
|
||||
}
|
||||
|
||||
public function update(Request $request, $id): JsonResponse
|
||||
{
|
||||
// init
|
||||
$data = array();
|
||||
$dataPermohonan = array();
|
||||
$dataPenawaran = array();
|
||||
|
||||
if (request()->ajax()) {
|
||||
$validator = RegistrasiFinalController::rulesEditnya($request, $id);
|
||||
|
||||
if ($validator['fails']) {
|
||||
$data['message'] = $validator['errors'];
|
||||
$data['status'] = 'error';
|
||||
}
|
||||
else
|
||||
{
|
||||
DB::beginTransaction();
|
||||
try {
|
||||
|
||||
// update table permohonan => status (registrasi-final), region_id, keterangan, authorized_at, authorized_status, authorized_by
|
||||
// update table penawaran => status (registrasi-final)
|
||||
$dataPermohonan = [
|
||||
'status' => 'registrasi-final',
|
||||
'region_id' => $request->region,
|
||||
'keterangan' => $request->catatan,
|
||||
'authorized_at' => now(),
|
||||
'authorized_status' =>1,
|
||||
'authorized_by' => Auth::id()
|
||||
];
|
||||
|
||||
$dataPenawaran = ['status' => 'registrasi-final'];
|
||||
|
||||
|
||||
$permohonan = Permohonan::find($id);
|
||||
$penawaran = PenawaranTender::where('nomor_registrasi','=',$permohonan->nomor_registrasi)->first();
|
||||
|
||||
$permohonan->update($dataPermohonan);
|
||||
$penawaran->update($dataPenawaran);
|
||||
//
|
||||
DB::commit();
|
||||
|
||||
$data['status'] = 'success';
|
||||
$data['message']['message_success'] = array('Regitrasi Final '.$permohonan->nomor_registrasi.' successfully');
|
||||
} catch (Exception $e) {
|
||||
DB::rollBack();
|
||||
$data['status'] = 'error';
|
||||
$data['message']['message_try_catch'] = array('Regitrasi Final '.$permohonan->nomor_registrasi.' failed.');
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
$data['status'] = 'error';
|
||||
$data['message']['message_ajax'] = array("no ajax request");
|
||||
}
|
||||
|
||||
return response()->json($data);
|
||||
|
||||
}
|
||||
|
||||
public function rulesEditnya($request, $id)
|
||||
{
|
||||
$validate_catatan='';
|
||||
|
||||
$validateIt = [
|
||||
// 'name' diambil dari definisi parameter yang di kirim pada POST Data
|
||||
'region' => 'required',
|
||||
'catatan' => 'required',
|
||||
];
|
||||
|
||||
$messageIt = [
|
||||
'region.required' => 'Silahkan pilih Region',
|
||||
'catatan.required' => 'Silahkan isi Catatan'
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $validateIt, $messageIt);
|
||||
|
||||
$data['fails'] = $validator->fails();
|
||||
$data['errors'] = $validator->errors();
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
}
|
||||
29
app/Http/Controllers/ResumeController.php
Normal file
29
app/Http/Controllers/ResumeController.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ResumeController extends Controller
|
||||
{
|
||||
public $user;
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return view('lpj::resume.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*/
|
||||
public function show($id) {}
|
||||
/**
|
||||
* Store form inspeksi.
|
||||
*/
|
||||
public function store(Request $request) {}
|
||||
|
||||
public function update(Request $request, $id) {}
|
||||
}
|
||||
65
app/Http/Controllers/SLAController.php
Normal file
65
app/Http/Controllers/SLAController.php
Normal file
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class SLAController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return view('lpj::SLA.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('lpj::create');
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
return view('lpj::show');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
return view('lpj::edit');
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
28
app/Http/Controllers/SpkController.php
Normal file
28
app/Http/Controllers/SpkController.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<?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\TujuanPenilaianExport;
|
||||
// use Modules\Lpj\Http\Requests\TujuanPenilaianRequest;
|
||||
// use Modules\Lpj\Models\TujuanPenilaian;
|
||||
|
||||
class SpkController extends Controller
|
||||
{
|
||||
public $user;
|
||||
|
||||
public function index()
|
||||
{
|
||||
return view('lpj::spk.index');
|
||||
}
|
||||
|
||||
public function viewSpk()
|
||||
{
|
||||
// return Excel::download(new TujuanPenilaianExport, 'tujuan_penilaian.xlsx');
|
||||
|
||||
return view('lpj::spk.view');
|
||||
}
|
||||
}
|
||||
@@ -241,15 +241,25 @@ class TenderController extends Controller
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
* Tampilkan Surat Tender
|
||||
*/
|
||||
public function destroy($id)
|
||||
public function showSuratTender($noreg)
|
||||
{
|
||||
//
|
||||
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first();
|
||||
|
||||
// Kalau tidak ketemu nomor registrasi dengan tabel penawaran
|
||||
if (!$penawaran) {
|
||||
return redirect()->route('tender.penawaran.createPenawaran', ['noreg' => $noreg])
|
||||
->with('error', 'Anda Belum Membuat Penawaran. Silahkan isi terlebih dahulu!');
|
||||
}
|
||||
// Jika batas tanggal penawaran sudah lewat
|
||||
if ($penawaran->end_date < date('Y-m-d')) {
|
||||
return redirect()->route('tender.penawaran.editPenawaran', ['noreg' => $noreg])
|
||||
->with('error', 'Sudah Kadaluarsa. Silahkan perpanjang tanggal penawaran terlebih dahulu!');
|
||||
}
|
||||
|
||||
return view('lpj::penawaran.surat_tender', compact('penawaran', 'noreg'));
|
||||
}
|
||||
|
||||
public function datatablesPenawaran(Request $request)
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Http\Library;
|
||||
|
||||
use Modules\Lpj\Models\JenisFasilitasKredit;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
trait LpjHelpers
|
||||
{
|
||||
|
||||
public static function onLastCodeJFK(): string
|
||||
{
|
||||
// max(code)
|
||||
$noUrutAkhir2 = JenisFasilitasKredit::withTrashed()->max('code');
|
||||
|
||||
$noUrutAkhir=sprintf("%06s", 1);
|
||||
$noUrutAwal = 'JFK';
|
||||
$noUrutAkhirString = $noUrutAkhir;
|
||||
if($noUrutAkhir2){
|
||||
$noUrutAkhir = substr($noUrutAkhir2, 3, 6);
|
||||
// $noUrutAwal = substr($noUrutAkhir2, 0, 3);
|
||||
$noUrutAkhirString = sprintf("%06s", abs($noUrutAkhir + 1));
|
||||
}
|
||||
|
||||
return $noUrutAwal . $noUrutAkhirString;
|
||||
}
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class BranchRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*/
|
||||
public function rules()
|
||||
: array
|
||||
{
|
||||
$rules = [
|
||||
'name' => 'required|string|max:255',
|
||||
'status' => 'nullable|boolean',
|
||||
'authorized_at' => 'nullable|datetime',
|
||||
'authorized_status' => 'nullable|string|max:1',
|
||||
'authorized_by' => 'nullable|exists:users,id',
|
||||
];
|
||||
|
||||
if ($this->method() == 'PUT') {
|
||||
$rules['code'] = 'required|string|max:3|unique:branches,code,' . $this->id;
|
||||
} else {
|
||||
$rules['code'] = 'required|string|max:3|unique:branches,code';
|
||||
}
|
||||
|
||||
return $rules;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize()
|
||||
: bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class CurrencyRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*/
|
||||
public function rules()
|
||||
: array
|
||||
{
|
||||
$rules = [
|
||||
'name' => 'required|string|max:255',
|
||||
'decimal_places' => 'nullable|integer|between:0,3',
|
||||
'status' => 'nullable|boolean',
|
||||
'authorized_at' => 'nullable|datetime',
|
||||
'authorized_status' => 'nullable|string|max:1',
|
||||
'authorized_by' => 'nullable|exists:users,id',
|
||||
];
|
||||
|
||||
if ($this->method() == 'PUT') {
|
||||
$rules['code'] = 'required|string|max:3|unique:currencies,code,' . $this->id;
|
||||
} else {
|
||||
$rules['code'] = 'required|string|max:3|unique:currencies,code';
|
||||
}
|
||||
|
||||
return $rules;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize()
|
||||
: bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Modules\Lpj\Rules\UniqueCifExceptZero;
|
||||
use Modules\Lpj\Rules\UniqueExcept;
|
||||
|
||||
class DebitureRequest extends FormRequest
|
||||
{
|
||||
|
||||
@@ -15,9 +15,11 @@
|
||||
: array
|
||||
{
|
||||
return [
|
||||
'code' => 'required|max:6',
|
||||
'name' => 'required|max:255',
|
||||
'slug' => 'required|max:255',
|
||||
'code' => 'required|max:6',
|
||||
'name' => 'required|max:255',
|
||||
'slug' => 'required|max:255',
|
||||
'custom_field' => 'nullable|max:255',
|
||||
'custom_field_type' => 'nullable|max:255',
|
||||
];
|
||||
}
|
||||
|
||||
@@ -32,7 +34,7 @@
|
||||
|
||||
public function prepareForValidation()
|
||||
{
|
||||
if($this->method() == 'POST' && $this->code == null) {
|
||||
if ($this->method() == 'POST' && $this->code == null) {
|
||||
$this->merge([
|
||||
'code' => IdGenerator::generate(
|
||||
['table' => 'jenis_legalitas_jaminan', 'length' => 6, 'prefix' => 'JLJ', 'field' => 'code'],
|
||||
@@ -41,7 +43,7 @@
|
||||
]);
|
||||
} else {
|
||||
$this->merge([
|
||||
'slug' => Str::slug($this->name),
|
||||
'slug' => Str::slug($this->name),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
'address' => 'nullable|string',
|
||||
'postal_code' => 'nullable|string|max:10',
|
||||
'status' => 'nullable|boolean',
|
||||
'detail_sertifikat' => 'nullable|string|max:255',
|
||||
];
|
||||
|
||||
//$rules['nomor_id'] = 'nullable|max:16|unique:pemilik_jaminan,nomor_id,debiture_id,' . $this->debiture_id;
|
||||
@@ -41,4 +42,24 @@
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function prepareForValidation() {
|
||||
|
||||
$detailSertifikat = [];
|
||||
$names = $this->input('detail_sertifikat.name', []);
|
||||
$nomorIds = $this->input('detail_sertifikat.nomor_id', []);
|
||||
|
||||
foreach ($names as $index => $name) {
|
||||
if (isset($nomorIds[$index])) {
|
||||
$detailSertifikat[] = [
|
||||
'name' => $name,
|
||||
'nomor_id' => $nomorIds[$index]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
$this->merge([
|
||||
'detail_sertifikat' => json_encode($detailSertifikat),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,13 +63,17 @@ class TenderPenawaranRequest extends FormRequest
|
||||
$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.');
|
||||
}
|
||||
|
||||
if ($startDate < $today) {
|
||||
$validator->errors()->add('start_date', 'Tanggal Awal tidak boleh sebelum hari ini.');
|
||||
}
|
||||
|
||||
// Validasi minimal 3 pilihan pada nama_kjpp
|
||||
$namaKjpp = $this->input('kjpp', []);
|
||||
|
||||
@@ -2,13 +2,10 @@
|
||||
|
||||
namespace Modules\Lpj\Models;
|
||||
|
||||
use Modules\Lpj\Database\Factories\BranchFactory;
|
||||
use Modules\Basicdata\Models\Branch as BasicdataBranch;
|
||||
|
||||
class Branch extends Base
|
||||
class Branch extends BasicdataBranch
|
||||
{
|
||||
protected $table = 'branches';
|
||||
protected $fillable = ['code', 'name', 'status', 'authorized_at', 'authorized_status', 'authorized_by'];
|
||||
|
||||
public function debitures()
|
||||
{
|
||||
return $this->hasMany(Debiture::class, 'branch_id', 'id');
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Models;
|
||||
|
||||
use Modules\Lpj\Database\Factories\CurrencyFactory;
|
||||
|
||||
class Currency extends Base
|
||||
{
|
||||
protected $table = 'currencies';
|
||||
|
||||
protected $fillable = [
|
||||
'code',
|
||||
'name',
|
||||
'decimal_places',
|
||||
'status',
|
||||
'authorized_at',
|
||||
'authorized_status',
|
||||
'authorized_by'
|
||||
];
|
||||
}
|
||||
@@ -17,7 +17,7 @@
|
||||
'name',
|
||||
'dokumen_jaminan',
|
||||
'keterangan',
|
||||
|
||||
'details',
|
||||
'status',
|
||||
'authorized_at',
|
||||
'authorized_status',
|
||||
|
||||
@@ -19,4 +19,9 @@ class JenisLaporan extends Model
|
||||
|
||||
|
||||
protected $fillable = ['code', 'name'];
|
||||
|
||||
public function penawaran()
|
||||
{
|
||||
return $this->hasMany(PenawaranTender::class, 'jenis_laporan_id', 'id');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,5 +7,5 @@
|
||||
class JenisLegalitasJaminan extends Base
|
||||
{
|
||||
protected $table = 'jenis_legalitas_jaminan';
|
||||
protected $fillable = ['code', 'name','slug'];
|
||||
protected $fillable = ['code', 'name','slug','custom_field','custom_field_type'];
|
||||
}
|
||||
|
||||
@@ -30,7 +30,8 @@ class PemilikJaminan extends Base
|
||||
'status',
|
||||
'authorized_at',
|
||||
'authorized_status',
|
||||
'authorized_by'
|
||||
'authorized_by',
|
||||
'detail_sertifikat',
|
||||
];
|
||||
|
||||
public function province()
|
||||
|
||||
30
app/Models/PenawaranDetailTenderLog.php
Normal file
30
app/Models/PenawaranDetailTenderLog.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
// use Modules\Lpj\Database\Factories\PenawaranDetailTenderFactory;
|
||||
|
||||
class PenawaranDetailTenderLog extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*/
|
||||
protected $table = 'detail_penawaran_logs';
|
||||
|
||||
protected $guarded = ['id'];
|
||||
|
||||
public function penawaran(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(PenawaranTender::class, 'penawaran_id', 'id');
|
||||
}
|
||||
|
||||
public function penawarandetail(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(PenawaranDetailTender::class, 'detail_penawaran_id', 'id');
|
||||
}
|
||||
}
|
||||
@@ -36,4 +36,14 @@ class PenawaranTender extends Model
|
||||
{
|
||||
return $this->hasMany(TujuanPenilaianKJPP::class, 'id', 'tujuan_penilaian_kjpp_id');
|
||||
}
|
||||
|
||||
public function permohonan()
|
||||
{
|
||||
return $this->belongsTo(Permohonan::class, 'nomor_registrasi', 'nomor_registrasi');
|
||||
}
|
||||
|
||||
public function jenisLaporan()
|
||||
{
|
||||
return $this->belongsTo(JenisLaporan::class, 'jenis_laporan_id', 'id');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,16 +2,12 @@
|
||||
|
||||
namespace Modules\Lpj\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Modules\Lpj\Database\Factories\PermohonanFactory;
|
||||
use Modules\Usermanagement\Models\User;
|
||||
use Modules\Lpj\Models\TujuanPenilaian;
|
||||
use Modules\Lpj\Models\JenisFasilitasKredit;
|
||||
|
||||
class Permohonan extends Base
|
||||
{
|
||||
protected $table = 'permohonan';
|
||||
protected $table = 'permohonan';
|
||||
protected $fillable = [
|
||||
'nomor_registrasi',
|
||||
'tanggal_permohonan',
|
||||
@@ -41,7 +37,7 @@ class Permohonan extends Base
|
||||
'registrasi_by',
|
||||
'registrasi_at',
|
||||
'jenis_penilaian_id',
|
||||
'region_id'
|
||||
'region_id',
|
||||
];
|
||||
|
||||
public function user()
|
||||
@@ -81,7 +77,12 @@ class Permohonan extends Base
|
||||
|
||||
public function penilaian()
|
||||
{
|
||||
return $this->belongsTo(Penilaian::class, 'nomor_registrasi', 'nomor_registrasi');
|
||||
return $this->belongsTo(Penilaian::class, 'nomor_registrasi', 'nomor_registrasi');
|
||||
}
|
||||
|
||||
public function penawaranTender()
|
||||
{
|
||||
return $this->hasMany(PenawaranTender::class, 'nomor_registrasi');
|
||||
}
|
||||
|
||||
public function region()
|
||||
|
||||
18
app/Models/SLA.php
Normal file
18
app/Models/SLA.php
Normal file
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
|
||||
class SLA extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
protected $table = 'sla';
|
||||
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*/
|
||||
protected $guarded = ['id'];
|
||||
}
|
||||
9
app/Models/Spk.php
Normal file
9
app/Models/Spk.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Models;
|
||||
|
||||
class Spk extends Base
|
||||
{
|
||||
protected $table = 'arah_mata_angin';
|
||||
protected $fillable = ['name','authorized_at','authorized_status','authorized_by'];
|
||||
}
|
||||
@@ -1,25 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Rules;
|
||||
namespace Modules\Lpj\Rules;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Contracts\Validation\ValidationRule;
|
||||
use Modules\Lpj\Models\Debiture;
|
||||
use Closure;
|
||||
use Illuminate\Contracts\Validation\ValidationRule;
|
||||
use Modules\Lpj\Models\Debiture;
|
||||
|
||||
class UniqueCifExceptZero implements ValidationRule
|
||||
{
|
||||
public function __construct($id = null)
|
||||
class UniqueCifExceptZero implements ValidationRule
|
||||
{
|
||||
$this->id = $id;
|
||||
}
|
||||
protected $id;
|
||||
|
||||
public function validate($attribute, $value, $fail): void
|
||||
{
|
||||
if (Debiture::where($attribute, $value)
|
||||
->where('id', '!=', $this->id)
|
||||
->where($attribute, '!=', '000000')
|
||||
->exists()) {
|
||||
$fail('The :attribute field must be uniquse.'.$this->id);
|
||||
public function __construct($id = null)
|
||||
{
|
||||
$this->id = $id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Run the validation rule.
|
||||
*/
|
||||
public function validate(string $attribute, mixed $value, Closure $fail)
|
||||
: void {
|
||||
if ($value !== '0000000000' && $value !== null && Debiture::query()->where($attribute, $value)->when(
|
||||
$this->id,
|
||||
function ($query) {
|
||||
$query->where('id', '!=', $this->id);
|
||||
},
|
||||
)->exists()) {
|
||||
$fail('The :attribute field must be unique.');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user