Merge remote-tracking branch 'composer/feature/senior-officer' into staging
This commit is contained in:
@@ -275,15 +275,26 @@ class PenilaiController extends Controller
|
||||
]
|
||||
);
|
||||
|
||||
|
||||
if ($request->hasFile('file_paparan')) {
|
||||
// Menyimpan atau memperbarui data Penilai
|
||||
$penilai = Penilai::updateOrCreate(
|
||||
[
|
||||
'permohonan_id' => $request->permohonanId,
|
||||
'dokument_id' => $request->documentId,
|
||||
'inspeksi_id' => $request->inspeksiId,
|
||||
]
|
||||
);
|
||||
|
||||
// Menyimpan fil
|
||||
$file = $request->file('file_paparan');
|
||||
$path = $file->store('public/file_paparan');
|
||||
|
||||
$penilai = Penilai::where('permohonan_id', $id)->first();
|
||||
$penilai->file_paparan = $path;
|
||||
$penilai->save();
|
||||
}
|
||||
|
||||
|
||||
return redirect()
|
||||
->route('penilai.show', ['id' => $id])->with('success', 'diperbarui ke status paparan dan dikirim ke So untuk proses lebih lanjut.');
|
||||
|
||||
@@ -497,7 +508,7 @@ class PenilaiController extends Controller
|
||||
});
|
||||
}
|
||||
|
||||
$query->whereRaw('LOWER(status) IN (?, ?, ?, ?, ?, ?,?)', ['assign','survey-completed', 'proses-laporan', 'paparan', 'proses-paparan','paparan', 'revisi-laporan']);
|
||||
$query->whereRaw('LOWER(status) IN (?, ?, ?, ?, ?, ?,?, ?)', ['assign','survey-completed', 'proses-laporan', 'paparan', 'proses-paparan','paparan', 'revisi-laporan','revisi-paparan']);
|
||||
|
||||
if (!Auth::user()->hasRole('administrator')) {
|
||||
$query->whereHas('penilaian.userPenilai', function ($q) {
|
||||
|
||||
@@ -494,27 +494,22 @@ class PenilaianController extends Controller
|
||||
break;
|
||||
|
||||
case 'pelaporan':
|
||||
if (Auth::user()->roles[0]->name === 'senior-officer') {
|
||||
$permohonan->update([
|
||||
'status' => 'proses-laporan',
|
||||
'approval_so' => Auth::user()->id,
|
||||
'approval_so_at' => now(),
|
||||
'keterangan' => $request->message,
|
||||
]);
|
||||
} elseif (Auth::user()->roles[0]->name === 'EO Appraisal') {
|
||||
$permohonan->update([
|
||||
'status' => 'proses-laporan',
|
||||
'approval_eo' => Auth::user()->id,
|
||||
'approval_eo_at' => now(),
|
||||
'keterangan' => $request->message,
|
||||
]);
|
||||
} elseif (Auth::user()->roles[0]->name === 'DD Appraisal') {
|
||||
$permohonan->update([
|
||||
'status' => 'done',
|
||||
'approval_dd' => Auth::user()->id,
|
||||
'approval_dd_at' => now(),
|
||||
'keterangan' => $request->message,
|
||||
]);
|
||||
$role = Auth::user()->roles[0]->name;
|
||||
$status = 'done';
|
||||
$approvalField = null;
|
||||
if ($role === 'senior-officer') {
|
||||
$approvalField = 'approval_so';
|
||||
$status = in_array($permohonan->nilai_plafond_id, [3]) ? 'done' : 'proses-laporan';
|
||||
} elseif ($role === 'EO Appraisal') {
|
||||
$approvalField = 'approval_eo';
|
||||
$status = in_array($permohonan->nilai_plafond_id, [2, 1]) ? 'done' : 'proses-laporan';
|
||||
} elseif ($role === 'DD Appraisal') {
|
||||
$approvalField = 'approval_dd';
|
||||
$status = 'done';
|
||||
}
|
||||
|
||||
if ($approvalField) {
|
||||
$this->updatePermohonan($permohonan, $status, $approvalField, $request->message);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -613,6 +608,15 @@ class PenilaianController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function updatePermohonan($permohonan, $status, $approvalField, $message)
|
||||
{
|
||||
$permohonan->update([
|
||||
'status' => $status,
|
||||
$approvalField => Auth::user()->id,
|
||||
"{$approvalField}_at" => now(),
|
||||
'keterangan' => $message,
|
||||
]);
|
||||
}
|
||||
|
||||
public function dataForAuthorization(Request $request, $otorisator)
|
||||
{
|
||||
@@ -883,15 +887,48 @@ class PenilaianController extends Controller
|
||||
public function revisiLaporan(Request $request, $id)
|
||||
{
|
||||
$permohonan = Permohonan::findOrFail($id);
|
||||
$userRole = Auth::user()->roles[0]->name;
|
||||
|
||||
if ($permohonan->status === 'proses-paparan' && in_array($userRole, ['EO Appraisal', 'DD Appraisal'])) {
|
||||
Authorization::delete([
|
||||
'permohonan_id' => $permohonan->id,
|
||||
'jenis' => 'paparan',
|
||||
'request' => 'paparan',
|
||||
]);
|
||||
$status = 'revisi-paparan';
|
||||
} elseif ($permohonan->status === 'proses-laporan' && $userRole === 'EO Appraisal') {
|
||||
$permohonan->update([
|
||||
'approve_so' => null,
|
||||
'approve_so_at' => null,
|
||||
]);
|
||||
$status = 'revisi-laporan';
|
||||
} elseif ($permohonan->status === 'proses-laporan' && $userRole === 'DD Appraisal') {
|
||||
$permohonan->update([
|
||||
'approve_so' => null,
|
||||
'approve_so_at' => null,
|
||||
'approve_eo' => null,
|
||||
'approve_eo_at' => null,
|
||||
|
||||
]);
|
||||
$status = 'revisi-laporan';
|
||||
} else {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'Tidak ada tindakan yang dapat dilakukan untuk status saat ini.',
|
||||
], 400);
|
||||
}
|
||||
|
||||
// Perbarui status dan informasi lainnya
|
||||
$permohonan->update([
|
||||
'status' => 'revisi-laporan',
|
||||
'status' => $status,
|
||||
'keterangan' => $request->message,
|
||||
'submitted_at' => now()
|
||||
'submitted_at' => now(),
|
||||
]);
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => 'Berhasil Revisi Laporan penilai',
|
||||
'message' => 'Berhasil Revisi Laporan penilai.',
|
||||
], 200);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ use Modules\Lpj\Models\LaluLintasLokasi;
|
||||
use Modules\Lpj\Models\SpekBagunanAnalisaDetail;
|
||||
use Modules\Lpj\Http\Requests\SurveyorRequest;
|
||||
use Modules\Lpj\Http\Requests\FormSurveyorRequest;
|
||||
use Modules\Lpj\Emails\SendJadwalKunjunganEmail;
|
||||
use Modules\Lpj\Jobs\SendJadwalKunjunganEmailJob;
|
||||
use App\Helpers\Lpj;
|
||||
use Modules\Lpj\Models\Authorization;
|
||||
use Modules\Lpj\Services\SurveyorValidateService;
|
||||
@@ -955,7 +955,7 @@ class SurveyorController extends Controller
|
||||
}
|
||||
|
||||
|
||||
public function storeJadwal(Request $request)
|
||||
public function storeJadwal(Request $request, $id)
|
||||
{
|
||||
try {
|
||||
$validate = $request->validate([
|
||||
@@ -964,7 +964,15 @@ class SurveyorController extends Controller
|
||||
'deskripsi_penilaian' => 'required'
|
||||
]);
|
||||
|
||||
$penilaian = Penilaian::findOrFail($validate['id']);
|
||||
$penilaian = Penilaian::findOrFail($id);
|
||||
|
||||
if (Carbon::parse($validate['waktu_penilaian']) <= Carbon::parse($penilaian->tanggal_kunjungan)) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'Waktu penilaian harus lebih besar dari tanggal assign.'
|
||||
], 422);
|
||||
}
|
||||
|
||||
|
||||
$emailData = [
|
||||
'email' => $penilaian->permohonan->user->email,
|
||||
@@ -973,28 +981,26 @@ class SurveyorController extends Controller
|
||||
|
||||
];
|
||||
|
||||
Mail::to($emailData['email'])->send(new SendJadwalKunjunganEmail($emailData, $penilaian->permohonan->nomor_resitrasi, $penilaian->permohonan->debiture));
|
||||
SendJadwalKunjunganEmailJob::dispatch($emailData);
|
||||
|
||||
|
||||
|
||||
if (Carbon::parse($validate['waktu_penilaian']) <= Carbon::parse($penilaian->tanggal_kunjungan)) {
|
||||
return redirect()
|
||||
->route('surveyor.index')
|
||||
->with('error', 'Waktu penilaian harus lebih besar dari tanggal assign.');
|
||||
}
|
||||
|
||||
$penilaian->update([
|
||||
'waktu_penilaian' => $validate['waktu_penilaian'],
|
||||
'deskripsi_penilaian' => $validate['deskripsi_penilaian'],
|
||||
]);
|
||||
|
||||
return redirect()
|
||||
->route('surveyor.index')
|
||||
->with('success', 'Jadwal berhasil dibuat.');
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => 'Berhasil kirim jadwal kunjungan'
|
||||
], 200);
|
||||
} catch (\Exception $e) {
|
||||
\Log::error('Error sending email: ' . $e->getMessage());
|
||||
return redirect()
|
||||
->route('surveyor.index')
|
||||
->with('error', 'Internal Server Error: ' . $e->getMessage());
|
||||
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'Terjadi kesalahan',
|
||||
'error' => $e->getMessage()
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2635,7 +2641,8 @@ class SurveyorController extends Controller
|
||||
'foto_gistaru',
|
||||
'foto_bhumi',
|
||||
'foto_argis_region',
|
||||
'foto_tempat'
|
||||
'foto_tempat',
|
||||
'foto_sentuh_tanahku'
|
||||
];
|
||||
|
||||
if ($inspeksi) {
|
||||
|
||||
Reference in New Issue
Block a user