fix(laporan) perbaikkan output laporan
This commit is contained in:
@@ -10,6 +10,7 @@ use Illuminate\Database\Eloquent\Builder;
|
|||||||
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
|
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
|
||||||
use Modules\Lpj\Models\Debiture;
|
use Modules\Lpj\Models\Debiture;
|
||||||
use Modules\Lpj\Models\Permohonan;
|
use Modules\Lpj\Models\Permohonan;
|
||||||
|
use Modules\Lpj\Helpers\Lpj;
|
||||||
|
|
||||||
class LaporanPenilaiJaminanExport implements FromQuery, WithHeadings, WithMapping, ShouldAutoSize
|
class LaporanPenilaiJaminanExport implements FromQuery, WithHeadings, WithMapping, ShouldAutoSize
|
||||||
{
|
{
|
||||||
@@ -30,7 +31,7 @@ class LaporanPenilaiJaminanExport implements FromQuery, WithHeadings, WithMappin
|
|||||||
public function query()
|
public function query()
|
||||||
{
|
{
|
||||||
$query = Permohonan::query()
|
$query = Permohonan::query()
|
||||||
->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'penilaian', 'dokumenjaminan.jenisJaminan','nilaiPlafond', 'penilai']);
|
->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'penilaian', 'dokumenjaminan.jenisJaminan','nilaiPlafond', 'penilai', 'inspeksi']);
|
||||||
|
|
||||||
// Filter by date range if provided
|
// Filter by date range if provided
|
||||||
if ($this->tanggalAwal && $this->tanggalAkhir) {
|
if ($this->tanggalAwal && $this->tanggalAkhir) {
|
||||||
@@ -41,6 +42,7 @@ class LaporanPenilaiJaminanExport implements FromQuery, WithHeadings, WithMappin
|
|||||||
// Filter by status if provided
|
// Filter by status if provided
|
||||||
if ($this->status) {
|
if ($this->status) {
|
||||||
$types = is_array($this->status) ? $this->status : [$this->status];
|
$types = is_array($this->status) ? $this->status : [$this->status];
|
||||||
|
$types = array_map('strtolower', $types);
|
||||||
$query->whereHas('penilai', function (Builder $query) use ($types) {
|
$query->whereHas('penilai', function (Builder $query) use ($types) {
|
||||||
$query->whereIn('type_penilai', $types);
|
$query->whereIn('type_penilai', $types);
|
||||||
});
|
});
|
||||||
@@ -59,10 +61,22 @@ class LaporanPenilaiJaminanExport implements FromQuery, WithHeadings, WithMappin
|
|||||||
|
|
||||||
public function map($row): array
|
public function map($row): array
|
||||||
{
|
{
|
||||||
$fieldPenilai = ['sederhana', 'standar', 'resume', 'memo', 'rap', 'call-report'];
|
|
||||||
|
// ambil data alamat dari inspeksi
|
||||||
|
$alamat_inspeksi = null;
|
||||||
|
|
||||||
|
if ($row->inspeksi) {
|
||||||
|
$alamat_inspeksi = json_decode($row->inspeksi->data_form, true) ?? null;
|
||||||
|
$alamat_inspeksi = $alamat_inspeksi['asset']['alamat']['sesuai'] ?? $alamat_inspeksi['asset']['alamat']['tidak sesuai'] ?? [];
|
||||||
|
}
|
||||||
|
$alamat_inspeksi = $alamat_inspeksi['address'] ?? '-';
|
||||||
|
|
||||||
|
|
||||||
|
// ambil data dari table penilai
|
||||||
|
$fieldPenilai = ['lpj', 'resume', 'memo', 'rap', 'call-report'];
|
||||||
$penilaiCek = null;
|
$penilaiCek = null;
|
||||||
|
|
||||||
// Find the first available field in the array
|
// Cari field yang tersedia
|
||||||
foreach ($fieldPenilai as $value) {
|
foreach ($fieldPenilai as $value) {
|
||||||
if (!empty($row->penilai->$value)) {
|
if (!empty($row->penilai->$value)) {
|
||||||
$penilaiCek = $row->penilai->$value;
|
$penilaiCek = $row->penilai->$value;
|
||||||
@@ -71,6 +85,39 @@ class LaporanPenilaiJaminanExport implements FromQuery, WithHeadings, WithMappin
|
|||||||
}
|
}
|
||||||
|
|
||||||
$decodePenilai = json_decode($penilaiCek, true) ?? [];
|
$decodePenilai = json_decode($penilaiCek, true) ?? [];
|
||||||
|
// Ambil nilai utama
|
||||||
|
$luasTanah = $decodePenilai['luas_tanah'] ?? 0;
|
||||||
|
$nilaiTanah1 = $decodePenilai['nilai_tanah_1'] ?? 0;
|
||||||
|
$luasBangunan = $decodePenilai['luas_bangunan'] ?? 0;
|
||||||
|
$nilaiBangunan1 = $decodePenilai['nilai_bangunan_1'] ?? 0;
|
||||||
|
$totalNilaiPasar = $decodePenilai['total_nilai_pasar_wajar'] ?? 0;
|
||||||
|
$likuidasi = $decodePenilai['likuidasi'] ?? 0;
|
||||||
|
|
||||||
|
// Ambil data npw_tambahan jika ada
|
||||||
|
$npwTambahan = $decodePenilai['npw_tambahan'] ?? [];
|
||||||
|
$tambahanDetails = [];
|
||||||
|
foreach ($npwTambahan as $tambahan) {
|
||||||
|
$tambahanDetails[] = sprintf(
|
||||||
|
'%s: Luas: %s, Nilai 1: %s, Nilai 2: %s',
|
||||||
|
$tambahan['name'] ?? '-',
|
||||||
|
$tambahan['luas'] ?? 0,
|
||||||
|
$tambahan['nilai_1'] ?? 0,
|
||||||
|
$tambahan['nilai_2'] ?? 0
|
||||||
|
);
|
||||||
|
}
|
||||||
|
$tambahanSummary = implode("; ", $tambahanDetails);
|
||||||
|
|
||||||
|
// Ambil data penilaian dari table penilaian
|
||||||
|
$user_penilai = $row->penilaian->userPenilai ?? null;
|
||||||
|
$user_penilai_name = null;
|
||||||
|
foreach ($user_penilai as $value) {
|
||||||
|
if ($value->role == 'penilai') {
|
||||||
|
$user_penilai_name = $value->user->name;
|
||||||
|
$nik_penilai = $value->user->nik ?? '-';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return [
|
return [
|
||||||
$row->id,
|
$row->id,
|
||||||
@@ -80,27 +127,28 @@ class LaporanPenilaiJaminanExport implements FromQuery, WithHeadings, WithMappin
|
|||||||
$row->tujuanPenilaian->name,
|
$row->tujuanPenilaian->name,
|
||||||
$row->debiture->name,
|
$row->debiture->name,
|
||||||
$row->penilai->type_penilai ?? '-',
|
$row->penilai->type_penilai ?? '-',
|
||||||
'-',
|
$alamat_inspeksi ?? '-',
|
||||||
$decodePenilai['luas_tanah'] ?? 0,
|
$luasTanah,
|
||||||
$decodePenilai['luas_bangunan'] ?? 0,
|
$luasBangunan,
|
||||||
$decodePenilai['nilai_tanah_1'] ?? 0,
|
$nilaiTanah1,
|
||||||
$decodePenilai['nilai_bangunan_1'] ?? 0,
|
$nilaiBangunan1,
|
||||||
$decodePenilai['total_nilai_pasar_wajar'] ?? 0,
|
$totalNilaiPasar,
|
||||||
$decodePenilai['likuidasi'] ?? 0,
|
$likuidasi,
|
||||||
$row->authorized_at,
|
$row->laporan->created_at ?? '-',
|
||||||
$row->authorized_status ?? '-',
|
$user_penilai_name,
|
||||||
$row->authorized_by ?? '-',
|
$nik_penilai,
|
||||||
$row->created_at,
|
$row->created_at,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function headings(): array
|
public function headings(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'ID',
|
'ID',
|
||||||
'Nomor Registrasi',
|
'Nomor Registrasi',
|
||||||
'User Pemohon',
|
'User Pemohon',
|
||||||
'Branch Pemohon',
|
'Cabang',
|
||||||
'Tujuan Penilaian',
|
'Tujuan Penilaian',
|
||||||
'Debitur',
|
'Debitur',
|
||||||
'Jenis Laporan',
|
'Jenis Laporan',
|
||||||
@@ -114,6 +162,7 @@ class LaporanPenilaiJaminanExport implements FromQuery, WithHeadings, WithMappin
|
|||||||
'Tanggal Laporan',
|
'Tanggal Laporan',
|
||||||
'Nama Penilai',
|
'Nama Penilai',
|
||||||
'Nik Penilai',
|
'Nik Penilai',
|
||||||
|
'Created At',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
public function columnFormats(): array
|
public function columnFormats(): array
|
||||||
|
|||||||
@@ -248,4 +248,15 @@
|
|||||||
{
|
{
|
||||||
return $this->belongsTo(LaporanExternal::class,'id','permohonan_id');
|
return $this->belongsTo(LaporanExternal::class,'id','permohonan_id');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function laporan()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Laporan::class,'id','permohonan_id');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function inspeksi(){
|
||||||
|
return $this->belongsTo(Inspeksi::class, 'permohonan_id');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user