perbaikan report rap dan dan penambahan no nib di pritn out sederhana

This commit is contained in:
majid
2025-01-23 16:20:39 +07:00
parent 91464d92fe
commit 09edabffdd
6 changed files with 409 additions and 281 deletions

View File

@@ -304,7 +304,7 @@ class PenilaiController extends Controller
$forminspeksi = json_decode($inspeksi->data_form, true);
}
return view('lpj::penilai.components.paparan', compact('permohonan', 'formFoto', 'penilai', 'forminspeksi','inspeksi'));
return view('lpj::penilai.components.paparan', compact('permohonan', 'formFoto', 'penilai', 'forminspeksi', 'inspeksi'));
}
@@ -341,7 +341,7 @@ class PenilaiController extends Controller
$rap = json_decode($resume->rap, true);
}
return view('lpj::penilai.components.rap-penilai', compact('permohonan', 'rap', 'provinces', 'forminspeksi', 'noLpRAP','basicData'));
return view('lpj::penilai.components.rap-penilai', compact('permohonan', 'rap', 'provinces', 'forminspeksi', 'noLpRAP', 'basicData'));
}
@@ -391,7 +391,7 @@ class PenilaiController extends Controller
$column = $request->get('sortField');
$query->orderBy($column, $order);
} else {
$query->orderBy('updated_at','DESC');
$query->orderBy('updated_at', 'DESC');
}
// Get the total count of records
@@ -600,7 +600,21 @@ class PenilaiController extends Controller
$penilai = Penilai::where('permohonan_id', $id)->get();
$rap = $penilai->some(function ($item) {
return strtolower($item->type_penilai) === 'rap';
});
$allComplete = $penilai->every(function ($item) {
if ($item->type_penilai === 'rap') {
return !empty($item->type_penilai) && (
!empty($item->memo) ||
!empty($item->resume) ||
!empty($item->lpj) ||
!empty($item->rap)
);
}
return !empty($item->type_penilai) && (
!empty($item->memo) ||
!empty($item->resume) ||
@@ -625,8 +639,7 @@ class PenilaiController extends Controller
return response()->json([
'success' => true,
'message' => 'Berhasil Megirim reported ke so',
'data' => $penilai,
'message' => 'Berhasil Megirim reported ke so'
], 200);
} catch (\Exception $e) {
@@ -799,10 +812,11 @@ class PenilaiController extends Controller
}
}
public function storeRap(Request $request){
public function storeRap(Request $request)
{
DB::beginTransaction();
try {
$formRequest = new FormSurveyorRequest();
$formRequest = new FormSurveyorRequest();
$formRequest->setContainer(app());
$formRequest->initialize(
$request->all(),
@@ -817,7 +831,7 @@ class PenilaiController extends Controller
$validated = $formRequest->validateResolved();
$result = $this->surveyorController->store($formRequest);
$data =[
$data = [
'kepada' => $request->input('kepada'),
'dari' => $request->input('dari'),
'nomor_rap' => $request->input('nomor_rap'),
@@ -926,7 +940,7 @@ class PenilaiController extends Controller
'tanggalLaporan',
'rap'
));
// return $pdf;
// return $pdf;
$pdf->setPaper('A4', 'portrait');
return $pdf->stream();
} else {
@@ -1076,278 +1090,278 @@ class PenilaiController extends Controller
public function generateNoLaporan($permohonan, $documentId, $type)
{
$typeMapping = ['lpj' => 'LPJ', 'memo' => 'MAK', 'rap' => 'RAP'];
{
$typeMapping = ['lpj' => 'LPJ', 'memo' => 'MAK', 'rap' => 'RAP'];
// Cek apakah data sudah ada
$laporan = Laporan::where([
'permohonan_id' => $permohonan->id,
'dokumen_jaminan_id' => $documentId,
])->first();
if ($laporan) {
$nomorArray = explode('/', $laporan->nomor_laporan);
$nomorArray[2] = $typeMapping[$type] ?? 'RES';
$laporan->update([
'nomor_laporan' => implode('/', $nomorArray)
]);
} else {
$laporan = Laporan::create([
// Cek apakah data sudah ada
$laporan = Laporan::where([
'permohonan_id' => $permohonan->id,
'dokumen_jaminan_id' => $documentId,
'nomor_laporan' => implode('/', [
$permohonan->debiture->branch->code,
generateLpjUniqueCode(3),
$typeMapping[$type] ?? 'RSM',
$permohonan->nomor_registrasi,
onRomawi(date('m')),
substr(date('Y'), -2)
])
])->first();
if ($laporan) {
$nomorArray = explode('/', $laporan->nomor_laporan);
$nomorArray[2] = $typeMapping[$type] ?? 'RES';
$laporan->update([
'nomor_laporan' => implode('/', $nomorArray)
]);
} else {
$laporan = Laporan::create([
'permohonan_id' => $permohonan->id,
'dokumen_jaminan_id' => $documentId,
'nomor_laporan' => implode('/', [
$permohonan->debiture->branch->code,
generateLpjUniqueCode(3),
$typeMapping[$type] ?? 'RSM',
$permohonan->nomor_registrasi,
onRomawi(date('m')),
substr(date('Y'), -2)
])
]);
}
return $laporan->nomor_laporan;
}
public function checkDataMemo($type, $statusLpj)
{
// Ambil data JSON dari statusLpj
$data = json_decode($statusLpj->memo, true) ?? [];
$validationRules = [
'memo' => [
'kepada',
'dari',
'nomor_memo',
'tanggal',
'perihal',
'jenis_asset_tidak_sesuai',
'lokasi.lokasi',
'lokasi.address',
'lokasi.province_code',
'lokasi.city_code',
'lokasi.district_code',
'lokasi.village_code',
'lokasi.penilai',
'terlampir',
'hasil_survey',
'kesimpulan_saran',
],
];
// Validasi data JSON
if (isset($validationRules[$type])) {
$missingFields = [];
foreach ($validationRules[$type] as $field) {
$keys = explode('.', $field);
$value = $data;
foreach ($keys as $key) {
if (!isset($value[$key])) {
$missingFields[] = $field;
break;
}
$value = $value[$key];
}
}
// Jika ada field yang kosong, kembalikan error
if (!empty($missingFields)) {
return response()->json([
'status' => null,
'message' => "Silahkan lengkapi data memo terlebih dahulu.",
'missing_fields' => $missingFields,
], 400);
}
}
// Jika data valid
return response()->json([
'status' => $type,
'message' => "Data memo valid.",
]);
}
return $laporan->nomor_laporan;
}
public function checkDataMemo($type, $statusLpj)
{
// Ambil data JSON dari statusLpj
$data = json_decode($statusLpj->memo, true) ?? [];
$validationRules = [
'memo' => [
'kepada',
'dari',
'nomor_memo',
'tanggal',
'perihal',
'jenis_asset_tidak_sesuai',
'lokasi.lokasi',
'lokasi.address',
'lokasi.province_code',
'lokasi.city_code',
'lokasi.district_code',
'lokasi.village_code',
'lokasi.penilai',
'terlampir',
'hasil_survey',
'kesimpulan_saran',
],
];
public function checkDataResume($type, $statusLpj)
{
// Ambil data JSON dari statusLpj
$data = json_decode($statusLpj->resume, true) ?? [];
// Validasi data JSON
if (isset($validationRules[$type])) {
$missingFields = [];
$validationRules = [
'resume' => [
'fakta.fakta_positif',
'fakta.fakta_negatif',
'fisik',
'sesuai_imb',
'keterangan'
],
];
foreach ($validationRules[$type] as $field) {
$keys = explode('.', $field);
$value = $data;
// Validasi data JSON
if (isset($validationRules[$type])) {
$missingFields = [];
foreach ($keys as $key) {
if (!isset($value[$key])) {
$missingFields[] = $field;
break;
foreach ($validationRules[$type] as $field) {
$keys = explode('.', $field);
$value = $data;
foreach ($keys as $key) {
if (!isset($value[$key])) {
$missingFields[] = $field;
break;
}
$value = $value[$key];
}
$value = $value[$key];
// Validasi khusus untuk array fisik dan sesuai_imb
if ($field === 'fisik' || $field === 'sesuai_imb') {
if (empty($value) || !is_array($value)) {
$missingFields[] = $field;
continue;
}
// Validasi struktur data di dalam array
foreach ($value as $item) {
$requiredKeys = ['sertifikat', 'luas_tanah', 'luas_bangunan', 'nilai'];
foreach ($requiredKeys as $requiredKey) {
if (!isset($item[$requiredKey])) {
$missingFields[] = $field . '.' . $requiredKey;
}
}
}
}
}
// Jika ada field yang kosong, kembalikan error
if (!empty($missingFields)) {
return response()->json([
'status' => null,
'message' => "Silahkan lengkapi data resume terlebih dahulu.",
'missing_fields' => $missingFields,
], 400);
}
}
// Jika ada field yang kosong, kembalikan error
if (!empty($missingFields)) {
return response()->json([
'status' => null,
'message' => "Silahkan lengkapi data memo terlebih dahulu.",
'missing_fields' => $missingFields,
], 400);
}
// Jika data valid
return response()->json([
'status' => $type,
'message' => "Data resume valid.",
]);
}
// Jika data valid
return response()->json([
'status' => $type,
'message' => "Data memo valid.",
]);
}
public function checkDataLpj($type, $statusLpj)
{
// Ambil data JSON dari statusLpj
$data = json_decode($statusLpj->lpj, true) ?? [];
$validationRules = [
'lpj' => [
'luas_tanah',
'nilai_tanah_1',
'nilai_tanah_2',
'luas_bangunan',
'nilai_bangunan_1',
'nilai_bangunan_2',
'total_nilai_pasar_wajar',
'likuidasi',
'likuidasi_nilai_1',
'likuidasi_nilai_2',
'asuransi_luas_bangunan',
'asuransi_nilai_1',
'asuransi_nilai_2',
'npw_tambahan'
],
];
// Validasi data JSON
if (isset($validationRules[$type])) {
$missingFields = [];
public function checkDataResume($type, $statusLpj)
{
// Ambil data JSON dari statusLpj
$data = json_decode($statusLpj->resume, true) ?? [];
$validationRules = [
'resume' => [
'fakta.fakta_positif',
'fakta.fakta_negatif',
'fisik',
'sesuai_imb',
'keterangan'
],
];
// Validasi data JSON
if (isset($validationRules[$type])) {
$missingFields = [];
foreach ($validationRules[$type] as $field) {
$keys = explode('.', $field);
$value = $data;
foreach ($keys as $key) {
if (!isset($value[$key])) {
$missingFields[] = $field;
break;
foreach ($validationRules[$type] as $field) {
// Penanganan khusus untuk field yang boleh null
if (in_array($field, ['sarana_pelengkap_penilai', 'nilai_sarana_pelengkap_1', 'nilai_sarana_pelengkap_2'])) {
continue;
}
$value = $value[$key];
}
// Validasi khusus untuk array fisik dan sesuai_imb
if ($field === 'fisik' || $field === 'sesuai_imb') {
if (empty($value) || !is_array($value)) {
if (!isset($data[$field])) {
$missingFields[] = $field;
continue;
}
// Validasi struktur data di dalam array
foreach ($value as $item) {
$requiredKeys = ['sertifikat', 'luas_tanah', 'luas_bangunan', 'nilai'];
foreach ($requiredKeys as $requiredKey) {
if (!isset($item[$requiredKey])) {
$missingFields[] = $field . '.' . $requiredKey;
// Validasi khusus untuk npw_tambahan
if ($field === 'npw_tambahan' && is_array($data[$field])) {
foreach ($data[$field] as $index => $item) {
$requiredKeys = ['name', 'luas', 'nilai_1', 'nilai_2'];
foreach ($requiredKeys as $key) {
if (!isset($item[$key])) {
$missingFields[] = "npw_tambahan[$index].$key";
}
}
}
}
}
}
// Jika ada field yang kosong, kembalikan error
if (!empty($missingFields)) {
return response()->json([
'status' => null,
'message' => "Silahkan lengkapi data resume terlebih dahulu.",
'missing_fields' => $missingFields,
], 400);
}
}
// Jika data valid
return response()->json([
'status' => $type,
'message' => "Data resume valid.",
]);
}
public function checkDataLpj($type, $statusLpj)
{
// Ambil data JSON dari statusLpj
$data = json_decode($statusLpj->lpj, true) ?? [];
$validationRules = [
'lpj' => [
'luas_tanah',
'nilai_tanah_1',
'nilai_tanah_2',
'luas_bangunan',
'nilai_bangunan_1',
'nilai_bangunan_2',
'total_nilai_pasar_wajar',
'likuidasi',
'likuidasi_nilai_1',
'likuidasi_nilai_2',
'asuransi_luas_bangunan',
'asuransi_nilai_1',
'asuransi_nilai_2',
'npw_tambahan'
],
];
// Validasi data JSON
if (isset($validationRules[$type])) {
$missingFields = [];
foreach ($validationRules[$type] as $field) {
// Penanganan khusus untuk field yang boleh null
if (in_array($field, ['sarana_pelengkap_penilai', 'nilai_sarana_pelengkap_1', 'nilai_sarana_pelengkap_2'])) {
continue;
}
if (!isset($data[$field])) {
$missingFields[] = $field;
continue;
}
// Validasi khusus untuk npw_tambahan
if ($field === 'npw_tambahan' && is_array($data[$field])) {
foreach ($data[$field] as $index => $item) {
$requiredKeys = ['name', 'luas', 'nilai_1', 'nilai_2'];
foreach ($requiredKeys as $key) {
if (!isset($item[$key])) {
$missingFields[] = "npw_tambahan[$index].$key";
}
}
}
// Jika ada field yang kosong, kembalikan error
if (!empty($missingFields)) {
return response()->json([
'status' => null,
'message' => "Silahkan lengkapi data LPJ terlebih dahulu.",
'missing_fields' => $missingFields,
], 400);
}
}
// Jika ada field yang kosong, kembalikan error
if (!empty($missingFields)) {
return response()->json([
'status' => null,
'message' => "Silahkan lengkapi data LPJ terlebih dahulu.",
'missing_fields' => $missingFields,
], 400);
}
}
// Jika data valid
return response()->json([
'status' => $type,
'message' => "Data LPJ valid.",
]);
}
public function checkDataRap($type, $statusLpj)
{
// Ambil data JSON dari statusLpj
$data = json_decode($statusLpj->rap, true) ?? [];
$requiredFields = [
'dari',
'kepada',
'perihal',
'tanggal',
'nomor_rap'
];
// Cek apakah ada field yang kosong
$missingFields = [];
foreach ($requiredFields as $field) {
if (!isset($data[$field]) || empty($data[$field])) {
$missingFields[] = $field;
}
}
// Jika ada field yang kosong, kembalikan error
if (!empty($missingFields)) {
// Jika data valid
return response()->json([
'status' => null,
'message' => "Silahkan lengkapi data RAP terlebih dahulu.",
'missing_fields' => $missingFields
], 400);
'status' => $type,
'message' => "Data LPJ valid.",
]);
}
// Jika semua data terisi
return response()->json([
'status' => $type,
'message' => "Data RAP valid."
]);
}
public function checkDataRap($type, $statusLpj)
{
// Ambil data JSON dari statusLpj
$data = json_decode($statusLpj->rap, true) ?? [];
$requiredFields = [
'dari',
'kepada',
'perihal',
'tanggal',
'nomor_rap'
];
// Cek apakah ada field yang kosong
$missingFields = [];
foreach ($requiredFields as $field) {
if (!isset($data[$field]) || empty($data[$field])) {
$missingFields[] = $field;
}
}
// Jika ada field yang kosong, kembalikan error
if (!empty($missingFields)) {
return response()->json([
'status' => null,
'message' => "Silahkan lengkapi data RAP terlebih dahulu.",
'missing_fields' => $missingFields
], 400);
}
// Jika semua data terisi
return response()->json([
'status' => $type,
'message' => "Data RAP valid."
]);
}
}