diff --git a/app/Exports/KertasKerjaExport.php b/app/Exports/KertasKerjaExport.php index 6ea78de..2b744ac 100644 --- a/app/Exports/KertasKerjaExport.php +++ b/app/Exports/KertasKerjaExport.php @@ -2,21 +2,22 @@ namespace Modules\Lpj\Exports; -// use Maatwebsite\Excel\Concerns\FromCollection; -// use Maatwebsite\Excel\Concerns\WithColumnFormatting; -// use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; -// use Maatwebsite\Excel\Concerns\WithHeadings; -// use Maatwebsite\Excel\Concerns\WithStyles; -// use Maatwebsite\Excel\Concerns\WithColumnWidths; -// use Maatwebsite\Excel\Concerns\WithEvents; -// use Maatwebsite\Excel\Events\AfterSheet; -use Illuminate\Contracts\View\View; -use Maatwebsite\Excel\Concerns\FromView; -class KertasKerjaExport implements FromView -{ +use Maatwebsite\Excel\Concerns\FromCollection; +use Maatwebsite\Excel\Concerns\WithHeadings; +use Maatwebsite\Excel\Concerns\WithStyles; +use Maatwebsite\Excel\Concerns\WithColumnWidths; +use Maatwebsite\Excel\Concerns\WithEvents; +use Maatwebsite\Excel\Events\AfterSheet; +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; +use PhpOffice\PhpSpreadsheet\Worksheet\Drawing; -// class KertasKerjaExport implements FromCollection, WithHeadings, WithStyles, WithColumnWidths, WithEvents +class KertasKerjaExport implements FromCollection, WithHeadings, WithStyles, WithColumnWidths, WithEvents +{ +// use Illuminate\Contracts\View\View; +// use Maatwebsite\Excel\Concerns\FromView; +// class KertasKerjaExport implements FromView // { + protected $data; public function __construct($data) @@ -24,257 +25,315 @@ class KertasKerjaExport implements FromView $this->data = $data; } - public function view(): View + // public function view(): View + // { + // return view('lpj::component.kertas-kerja', [ + // 'data' => $this->data, + // ]); + // } + + public function collection() { - return view('lpj::component.kertas-kerja', [ - 'data' => $this->data, - ]); + // $rows = []; + + // $nomor = 1; + $fields = [ + 'jenis_aset' => 'Jenis Aset', + 'luas_tanah' => 'Luas Tanah (M²)', + 'luas_bangunan' => 'Luas Bangunan (M²)', + 'harga' => 'Harga Transaksi/Penawaran', + 'tanggal_penawaran' => 'Tanggal Penawaran/Transaksi', + 'diskon' => 'Diskon %', + 'esitmasi_harga' => 'Esitmasi Harga Transaksi (Rp)', + 'no_telepon' => 'Telepon Contact Person', + 'nama_nara_sumbr' => 'Nama Nara Sumber', + 'status_nara_sumbr' => 'Status Nara Sumber', + 'waktu_transaksi' => 'Waktu Transaksi/Penawaran', + 'alamat' => 'Alamat Titik Gps', + + 'jalan' => 'Jalan', + 'desa' => 'Desa/Kelurahan', + 'kecamatan' => 'Kecamatan', + 'kabupaten' => 'Kabupaten', + 'provinsi' => 'Provinsi', + + 'jarak_pembanding' => 'Jarak Pembanding dengan Objek', + 'elevasi' => 'Estimasi Ranking Tanah', + 'peruntukan' => 'Estiamsi Rangkin Bangunan' + + ]; + + $rows = []; + $nomor = 1; + + // Add general asset information + $rows[] = ['No.', 'Uraian', 'Objek Penilaian', 'Data Pembanding 1', 'Data Pembanding 2', 'Data Pembanding 3']; + + foreach ($this->data['objek'] as $key => $value) { + $rows[] = [ + $nomor++, + $key, + $value, + $this->data['pembanding1'][$key] ?? '', + $this->data['pembanding2'][$key] ?? '', + $this->data['pembanding3'][$key] ?? '' + ]; + } + + + // B. Perhitungan Penyesuaian + $rows[] = ['']; + $rows[] = ['']; + $rows[] = ['B. Estimasi Nilai Tanah Pembanding dengan Teknik Penyisaan Tanah untuk mendapatkan per meter persegi estimasi Nilai Tanah Pembanding']; + $rows[] = ['No.','Uraian', 'Objek Penilaian', 'Data Pembanding 1', 'Data Pembanding 2', 'Data Pembanding 3']; + $nostimasi = 1; + $filedEstimasi = [ + 'estimasi' => 'Estimasi Biaya Pengganti Baru Bangunan (Rp)', + 'estimasi_spl' => 'Estimasi Biaya Pengganti Baru SPL (Rp)', + 'penyusutan' => 'Penyusutan Fisik Banguna', + + 'a' => 'a. rincian ttipe bangunan (MAPPI)', + 'b' => 'b. umur ekonomis (MAPPI)', + 'c' => 'c. estimasi Tahun tahun visual dengan mempertimbangkan renovasi', + 'd' => 'd. Sehingga sisa umur efektif', + 'e' => 'e. kondisi bagunan', + 'f' => 'f.sehinggan penyusutan fisik', + 'penyusutan_fungsi' => 'Penyusutan fungsi Bangunan (%)', + 'penyusutan_ekonomi' => 'Penyusutan Ekonomi Bangunan (%)', + 'total_penyusutan' => 'Total Penyusutan (%)', + 'estimasi_nilai' => 'Estimasi Nilai Bangunan dan SPL (Rp)', + 'estimasi_tanah' => 'Estimasi Nilai Tanah Pembanding (Rp)', + 'estimasi_nilai' => 'Estimasi Nilai Tanah Pembanding (Rp)', + ]; + + foreach ($filedEstimasi as $key => $label) { + $rows[] = [ + $nostimasi++, + $label, + $this->data['estimasi'][$key] ?? '', + $this->data['estimasi1'][$key] ?? '', + $this->data['estimasi2'][$key] ?? '', + $this->data['estimasi3'][$key] ?? '' + + ]; + } + + + $row[] = ['']; + $row[] = ['']; + $rows[] = ['INDIKASI NILAI TANAHATAS OBJEK PENILAIAN']; + + $indikasi=[ + 'luas_tanah' => 'Luas Tanah ', + 'indikasi_per' => 'INDIKASI TANAH PER M2 (RP/M2)', + 'indikasi_total' => 'INDIKASI TANAH TOTAL(RP)', + 'varian' => 'VARIANT(%)', + ]; + + foreach ($indikasi as $key => $label) { + $rows[] = [ + $label, + $this->data['indikasi'][$key] ?? '', + ]; + } + + + // C. Peta Lokasi + $rows[] = ['']; + $rows[] = ['']; + $rows[] = ['C. Peta Lokasi']; + $rows[] = [$this->data['foto_objek']['foto_objek_peta'] ?? '']; + + // D. Foto Objek dan Data Pembanding + $rows[] = ['']; + $rows[] = ['D. Foto Objek dan Data Pembanding']; + $rows[] = [ + $this->data['foto_objek1']['foto_objek'] ?? '', + $this->data['foto_objek2']['foto_objek'] ?? '', + '', '', '' + ]; + + // E. Foto Objek + $rows[] = ['']; + $rows[] = ['E. Foto Objek']; + $rows[] = [ + $this->data['foto']['foto_objek'] ?? '', + $this->data['foto']['foto_objek'] ?? '', + '', '', '' + ]; + + return collect($rows); } - // public function collection() - // { - // $rows = []; + public function headings(): array + { + return [ + ['KERTAS KERJA PENILAIAN'], + ['Pendekatan Pasar'], + ['Metode Perbandingan Data Pasar'], + ['Tanggal Penilaian: ' . ($this->headerInfo['tanggal_penilaian'] ?? '')], + ['Nama Pemilik Aset: ' . ($this->headerInfo['nama_pemilik'] ?? '')], + ['Nama Pemberi Tugas: ' . ($this->headerInfo['nama_pemberi_tugas'] ?? '')], + ['Lokasi: ' . ($this->headerInfo['lokasi_lengkap'] ?? '')], - // $nomor = 1; - // $fields = [ - // 'jenis_aset' => 'Jenis Aset', - // 'luas_tanah' => 'Luas Tanah (M²)', - // 'luas_bangunan' => 'Luas Bangunan (M²)', - // 'harga' => 'Harga Transaksi/Penawaran', - // 'tanggal_penawaran' => 'Tanggal Penawaran/Transaksi', - // 'diskon' => 'Diskon %', - // 'esitmasi_harga' => 'Esitmasi Harga Transaksi (Rp)', - // 'no_telepon' => 'Telepon Contact Person', - // 'nama_nara_sumbr' => 'Nama Nara Sumber', - // 'status_nara_sumbr' => 'Status Nara Sumber', - // 'waktu_transaksi' => 'Waktu Transaksi/Penawaran', - // 'alamat' => 'Alamat Titik Gps', + ]; + } + public function registerEvents(): array + { + return [ + AfterSheet::class => function (AfterSheet $event) { + // Styling untuk header utama + - // 'jalan' => 'Jalan', - // 'desa' => 'Desa/Kelurahan', - // 'kecamatan' => 'Kecamatan', - // 'kabupaten' => 'Kabupaten', - // 'provinsi' => 'Provinsi', + // Styling untuk setiap section header + $sectionRows = [10, 34, 56, 46, 52]; // Sesuaikan dengan posisi setiap section + foreach ($sectionRows as $row) { + $event->sheet->getStyle("A{$row}:F{$row}")->getFill() + ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID) + ->getStartColor()->setRGB('E2EFDA'); + } - // 'jarak_pembanding' => 'Jarak Pembanding dengan Objek', - // 'elevasi' => 'Estimasi Ranking Tanah', - // 'peruntukan' => 'Estiamsi Rangkin Bangunan' + // Merge cells untuk headers + $event->sheet->mergeCells('A1:E1'); + $event->sheet->mergeCells('A2:E2'); + $event->sheet->mergeCells('A4:E4'); + $event->sheet->mergeCells('A5:E5'); + $event->sheet->mergeCells('A6:E6'); + $event->sheet->mergeCells('A7:E7'); + $event->sheet->mergeCells('A8:E8'); - // ]; + // Alignment + $event->sheet->getStyle('A1:E8')->getAlignment() + ->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT); + $this->insertImages($event->sheet); + } + ]; + } + public function columnWidths(): array + { + return [ + 'A' => 5, + 'B' => 30, + 'C' => 30, + 'D' => 30, + 'E' => 30, + 'F' => 30, + ]; + } - // foreach ($fields as $key => $label) { - // $rows[] = [ - // $nomor++, - // $label, - // $this->data['objek'][$key] ?? '', - // $this->data['pembanding1'][$key] ?? '', - // $this->data['pembanding2'][$key] ?? '', - // $this->data['pembanding3'][$key] ?? '' - // ]; - // } + public function styles(Worksheet $sheet) + { + return [ + // Style for the main header - // // B. Perhitungan Penyesuaian - // $rows[] = ['']; - // $rows[] = ['']; - // $rows[] = ['B. Estimasi Nilai Tanah Pembanding dengan Teknik Penyisaan Tanah untuk mendapatkan per meter persegi estimasi Nilai Tanah Pembanding']; - // $rows[] = ['No.','Uraian', 'Objek Penilaian', 'Data Pembanding 1', 'Data Pembanding 2', 'Data Pembanding 3']; - // $nostimasi = 1; - // $filedEstimasi = [ - // 'estimasi' => 'Estimasi Biaya Pengganti Baru Bangunan (Rp)', - // 'estimasi_spl' => 'Estimasi Biaya Pengganti Baru SPL (Rp)', - // 'penyusutan' => 'Penyusutan Fisik Banguna', + // Style for section headers + 10 => ['font' => ['bold' => true]], // A. Informasi Umum + 34 => ['font' => ['bold' => true]], // B. Estimasi Nilai Tanah + 35 => ['font' => ['bold' => true]], // C. Peta Lokasi + 57 => ['font' => ['bold' => true]], // D. Foto Objek dan Pembanding + 60 => ['font' => ['bold' => true]], // E. Foto Objek - // 'a' => 'a. rincian ttipe bangunan (MAPPI)', - // 'b' => 'b. umur ekonomis (MAPPI)', - // 'c' => 'c. estimasi Tahun tahun visual dengan mempertimbangkan renovasi', - // 'd' => 'd. Sehingga sisa umur efektif', - // 'e' => 'e. kondisi bagunan', - // 'f' => 'f.sehinggan penyusutan fisik', - // 'penyusutan_fungsi' => 'Penyusutan fungsi Bangunan (%)', - // 'penyusutan_ekonomi' => 'Penyusutan Ekonomi Bangunan (%)', - // 'total_penyusutan' => 'Total Penyusutan (%)', - // 'estimasi_nilai' => 'Estimasi Nilai Bangunan dan SPL (Rp)', - // 'estimasi_tanah' => 'Estimasi Nilai Tanah Pembanding (Rp)', - // 'estimasi_nilai' => 'Estimasi Nilai Tanah Pembanding (Rp)', - // ]; + // Default styling for columns + 'A:J' => [ + 'alignment' => ['horizontal' => 'left', 'vertical' => 'center'], + 'wrapText' => true, + ], - // foreach ($filedEstimasi as $key => $label) { - // $rows[] = [ - // $nostimasi++, - // $label, - // $this->data['estimasi'][$key] ?? '', - // $this->data['estimasi1'][$key] ?? '', - // $this->data['estimasi2'][$key] ?? '', - // $this->data['estimasi3'][$key] ?? '' + // Style for other sections (like photo and map sections) - // ]; - // } + // Style for the other headers + 'A11:F11' => [ + 'font' => ['bold' => true], + 'fill' => ['fillType' => 'solid', 'color' => ['rgb' => 'E2EFDA']], + 'borders' => [ + 'allBorders' => [ + 'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN + ] + ] + ], + 'A12:F31' => [ + 'borders' => [ + 'allBorders' => [ + 'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN + ] + ] + ], - // $row[] = ['']; - // $row[] = ['']; - // $rows[] = ['INDIKASI NILAI TANAHATAS OBJEK PENILAIAN']; + 'A35:F35' => [ + 'font' => ['bold' => true], + 'fill' => ['fillType' => 'solid', 'color' => ['rgb' => 'E2EFDA']], + 'borders' => [ + 'allBorders' => [ + 'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN + ] + ] + ], + 'A35:F49' => [ + 'borders' => [ + 'allBorders' => [ + 'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN + ] + ] + ], - // $indikasi=[ - // 'luas_tanah' => 'Luas Tanah ', - // 'indikasi_per' => 'INDIKASI TANAH PER M2 (RP/M2)', - // 'indikasi_total' => 'INDIKASI TANAH TOTAL(RP)', - // 'varian' => 'VARIANT(%)', - // ]; + // end header + ]; + } - // foreach ($indikasi as $key => $label) { - // $rows[] = [ - // $label, - // $this->data['indikasi'][$key] ?? '', - // ]; - // } + + protected function insertImages($sheet) + { + ini_set('max_execution_time', '300'); + $worksheet = $sheet->getDelegate(); + + // Insert images for pembanding1 + if (!empty($this->data['pembanding1']['foto_objek'])) { + $drawing = new Drawing(); + $drawing->setName('Pembanding 1'); + $drawing->setDescription('Foto Objek Pembanding 1'); + $drawing->setPath(storage_path('app/public/' . $this->data['pembanding1']['foto_objek'])); // Adjust path as needed + $drawing->setHeight(90); + $drawing->setCoordinates('C' . (count($this->collection()) + 2)); // Adjust coordinates as needed + $drawing->setWorksheet($worksheet); + } + + // Repeat for pembanding2 and pembanding3 + if (!empty($this->data['pembanding2']['foto_objek'])) { + $drawing = new Drawing(); + $drawing->setName('Pembanding 2'); + $drawing->setDescription('Foto Objek Pembanding 2'); + $drawing->setPath(storage_path('app/public/' . $this->data['pembanding2']['foto_objek'])); // Adjust path as needed + $drawing->setHeight(90); + $drawing->setCoordinates('C' . (count($this->collection()) + 4)); // Adjust coordinates as needed + $drawing->setWorksheet($worksheet); + } + + if (!empty($this->data['pembanding3']['foto_objek'])) { + $drawing = new Drawing(); + $drawing->setName('Pembanding 3'); + $drawing->setDescription('Foto Objek Pembanding 3'); + $drawing->setPath(storage_path('app/public/' . $this->data['pembanding3']['foto_objek'])); // Adjust path as needed + $drawing->setHeight(90); + $drawing->setCoordinates('C' . (count($this->collection()) + 6)); // Adjust coordinates as needed + $drawing->setWorksheet($worksheet); + } + + // Insert images for foto_objek + foreach ($this->data['foto_objek'] as $index => $foto) { + if (!empty($foto['foto_objek'])) { + $drawing = new Drawing(); + $drawing->setName($foto['name_objek']); + $drawing->setDescription($foto['deskripsi_objek']); + $drawing->setPath(storage_path('app/public/' . $foto['foto_objek'])); // Adjust path as needed + $drawing->setHeight(90); + $drawing->setCoordinates('C' . (count($this->collection()) + (8 + $index * 2))); // Adjust coordinates as needed + $drawing->setWorksheet($worksheet); + } + } + } + - // // C. Peta Lokasi - // $rows[] = ['']; - // $rows[] = ['']; - // $rows[] = ['C. Peta Lokasi']; - // $rows[] = [$this->data['foto_objek']['foto_objek_peta'] ?? '']; - - // // D. Foto Objek dan Data Pembanding - // $rows[] = ['']; - // $rows[] = ['D. Foto Objek dan Data Pembanding']; - // $rows[] = [ - // $this->data['foto_objek1']['foto_objek'] ?? '', - // $this->data['foto_objek2']['foto_objek'] ?? '', - // '', '', '' - // ]; - - // // E. Foto Objek - // $rows[] = ['']; - // $rows[] = ['E. Foto Objek']; - // $rows[] = [ - // $this->data['foto']['foto_objek'] ?? '', - // $this->data['foto']['foto_objek'] ?? '', - // '', '', '' - // ]; - - // return collect($rows); - // } - - // public function headings(): array - // { - // return [ - // ['KERTAS KERJA PENILAIAN'], - // ['Pendekatan Pasar'], - // ['Metode Perbandingan Data Pasar'], - // ['Tanggal Penilaian: ' . ($this->headerInfo['tanggal_penilaian'] ?? '')], - // ['Nama Pemilik Aset: ' . ($this->headerInfo['nama_pemilik'] ?? '')], - // ['Nama Pemberi Tugas: ' . ($this->headerInfo['nama_pemberi_tugas'] ?? '')], - // ['Lokasi: ' . ($this->headerInfo['lokasi_lengkap'] ?? '')], - // ['Nama Debitur: ' . ($this->headerInfo['nama_debitur'] ?? '')], - // [''], - // ['A. INFORMASI UMUM'], - // ['No.','Uraian', 'Objek Penilaian', 'Data Pembanding 1', 'Data Pembanding 2', 'Data Pembanding 3'] - - - // ]; - // } - // public function registerEvents(): array - // { - // return [ - // AfterSheet::class => function (AfterSheet $event) { - // // Styling untuk header utama - - - // // Styling untuk setiap section header - // $sectionRows = [10, 34, 56, 46, 52]; // Sesuaikan dengan posisi setiap section - // foreach ($sectionRows as $row) { - // $event->sheet->getStyle("A{$row}:F{$row}")->getFill() - // ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID) - // ->getStartColor()->setRGB('E2EFDA'); - // } - - // // Merge cells untuk headers - // $event->sheet->mergeCells('A1:E1'); - // $event->sheet->mergeCells('A2:E2'); - // $event->sheet->mergeCells('A4:E4'); - // $event->sheet->mergeCells('A5:E5'); - // $event->sheet->mergeCells('A6:E6'); - // $event->sheet->mergeCells('A7:E7'); - // $event->sheet->mergeCells('A8:E8'); - - // // Alignment - // $event->sheet->getStyle('A1:E8')->getAlignment() - // ->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT); - // } - // ]; - // } - // public function columnWidths(): array - // { - // return [ - // 'A' => 5, - // 'B' => 30, - // 'C' => 30, - // 'D' => 30, - // 'E' => 30, - // 'F' => 30, - // ]; - // } - - // public function styles(Worksheet $sheet) - // { - // return [ - // // Style for the main header - - // // Style for section headers - // 10 => ['font' => ['bold' => true]], // A. Informasi Umum - // 34 => ['font' => ['bold' => true]], // B. Estimasi Nilai Tanah - // 35 => ['font' => ['bold' => true]], // C. Peta Lokasi - // 57 => ['font' => ['bold' => true]], // D. Foto Objek dan Pembanding - // 60 => ['font' => ['bold' => true]], // E. Foto Objek - - // // Default styling for columns - // 'A:J' => [ - // 'alignment' => ['horizontal' => 'left', 'vertical' => 'center'], - // 'wrapText' => true, - // ], - - // // Style for other sections (like photo and map sections) - - // // Style for the other headers - // 'A11:F11' => [ - // 'font' => ['bold' => true], - // 'fill' => ['fillType' => 'solid', 'color' => ['rgb' => 'E2EFDA']], - // 'borders' => [ - // 'allBorders' => [ - // 'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN - // ] - // ] - // ], - // 'A12:F31' => [ - // 'borders' => [ - // 'allBorders' => [ - // 'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN - // ] - // ] - // ], - - - // 'A35:F35' => [ - // 'font' => ['bold' => true], - // 'fill' => ['fillType' => 'solid', 'color' => ['rgb' => 'E2EFDA']], - // 'borders' => [ - // 'allBorders' => [ - // 'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN - // ] - // ] - // ], - // 'A35:F49' => [ - // 'borders' => [ - // 'allBorders' => [ - // 'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN - // ] - // ] - // ], - - // // end header - // ]; - // } } diff --git a/app/Http/Controllers/PenilaiController.php b/app/Http/Controllers/PenilaiController.php index 238c5a8..d368d80 100644 --- a/app/Http/Controllers/PenilaiController.php +++ b/app/Http/Controllers/PenilaiController.php @@ -299,19 +299,76 @@ class PenilaiController extends Controller } public function export_kertas_kerja(Request $request) - { +{ + $permohonanId = $request->query('permohonanId'); + $documentId = $request->query('documentId'); - $permohonanId = $request->query('permohonanId'); - $documentId = $request->query('documentId'); - $inspeksiId = $request->query('inspeksiId'); - $jaminanId = $request->query('jaminanId'); + // Fetch the data from the database + $data = Inspeksi::where('permohonan_id', $permohonanId) + ->where('dokument_id', $documentId) + ->first(); - $data = Inspeksi::where('permohonan_id', $permohonanId)->where('dokument_id', $documentId)->first(); - - return view('lpj::component.kertas-kerja', compact('data')); - // return Excel::download(new KertasKerjaExport($data), 'kertas-kerja.xlsx'); + // Check if data exists + if (!$data) { + return response()->json(['message' => 'Data not found'], 404); } + // Decode the JSON fields + $dataForm = json_decode($data->data_form, true); + $fotoForm = json_decode($data->foto_form, true); + $denahForm = json_decode($data->denah_form, true); + $dataPembanding = json_decode($data->data_pembanding, true); + + // Prepare the data for export + $exportData = [ + 'objek' => [ + 'jenis_aset' => $dataForm['asset']['jenis_asset']['sesuai'] ?? '', + 'luas_tanah' => $dataForm['tanah']['luas_tanah']['tidak sesuai'] ?? '', + 'harga' => $dataForm['asset']['harga'] ?? '', + 'tanggal_penawaran' => $dataForm['tanggal_penawaran'] ?? '', + 'diskon' => $dataForm['diskon'] ?? '', + 'no_telepon' => $dataForm['no_telepon'] ?? '', + 'nama_nara_sumber' => $dataForm['nama_nara_sumber'] ?? '', + 'status_nara_sumber' => $dataForm['status_nara_sumber'] ?? '', + 'alamat' => $dataForm['alamat'] ?? '', + // Add other fields as necessary + ], + 'pembanding1' => [], + 'pembanding2' => [], + 'pembanding3' => [], + 'foto_peta' => [ + 'foto_tempat' => $dataForm['foto_tempat'] ?? [], + 'foto_gistaru' => $dataForm['foto_gistaru'] ?? [], + 'foto_bhumi' => $dataForm['foto_bhumi'] ?? [], + 'foto_argis_region' => $dataForm['foto_argis_region'] ?? [], + ], + 'foto_objek' => $fotoForm['object_jaminan'] ?? [], + 'foto_objek1' => [], // Populate with relevant data + 'foto_objek2' => [], // Populate with relevant data + 'tanggal_penilaian' => $data->tanggal_penilaian ?? '', + 'nama_pemilik' => $data->nama_pemilik ?? '', + 'lokasi_lengkap' => $data->lokasi_lengkap ?? '', + ]; + + // Extract data pembanding + if (isset($dataPembanding['data_pembanding'])) { + foreach ($dataPembanding['data_pembanding'] as $index => $pembanding) { + if ($index == 0) { + $exportData['pembanding1'] = $pembanding; + } elseif ($index == 1) { + $exportData['pembanding2'] = $pembanding; + } elseif ($index == 2) { + $exportData['pembanding3'] = $pembanding; + } + } + } + + // Now create the export + // return response()->json([ 'data' => $fotoForm]); + return Excel::download(new KertasKerjaExport($exportData), 'kertas-kerja.xlsx'); +} + + public function import_kertas_kerja(Request $request) { @@ -520,4 +577,7 @@ class PenilaiController extends Controller } + + + } diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php index f344f13..115c41f 100644 --- a/app/Http/Controllers/SurveyorController.php +++ b/app/Http/Controllers/SurveyorController.php @@ -644,7 +644,7 @@ class SurveyorController extends Controller 'address', 'village_code', 'district_code', 'city_code', 'province_code', 'tahun', 'luas_tanah', 'luas_bangunan', 'tahun_bangunan', 'status_nara_sumber', 'harga', 'harga_diskon', 'diskon', 'total', 'nama_nara_sumber', - 'peruntukan', 'penawaran_transaksi', 'nomor_tlp', + 'peruntukan', 'penawaran', 'telepon','hak_properti', 'kordinat_lat', 'kordinat_lng', 'jenis_aset','foto_objek' ]; @@ -693,8 +693,8 @@ class SurveyorController extends Controller $fields = [ 'address', 'village_code', 'district_code', 'city_code', 'province_code', 'luas_tanah', 'luas_tanah_bagunan', 'total', 'diskon', 'harga_diskon', - 'status_nara_sumber', 'harga', 'nama_nara_sumber', - 'kordinat_lat', 'kordinat_lng', 'jenis_aset', + 'status_nara_sumber', 'harga', 'nama_nara_sumber','hak_properti','telepon', + 'kordinat_lat', 'kordinat_lng', 'jenis_aset','penawaran', ]; $inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id')) diff --git a/resources/views/component/detail-jaminan.blade.php b/resources/views/component/detail-jaminan.blade.php index f38772e..0c24327 100644 --- a/resources/views/component/detail-jaminan.blade.php +++ b/resources/views/component/detail-jaminan.blade.php @@ -1,11 +1,22 @@