From a200c1ec52a10c459075e54011bc0af198543c5c Mon Sep 17 00:00:00 2001 From: majid Date: Tue, 4 Feb 2025 08:45:52 +0700 Subject: [PATCH] penambahan kirim email, dan perbaikan print out --- app/Emails/SendJadwalKunjunganEmail.php | 63 ++ app/Http/Controllers/PenilaiController.php | 74 ++- app/Http/Controllers/SurveyorController.php | 33 +- .../views/emails/jadwal-kunjungan.blade.php | 118 ++++ .../penilai/components/call-report.blade.php | 596 ++++++++++++++++++ .../components/informasi-pembanding.blade.php | 8 +- .../components/print-out-sederhana.blade.php | 83 ++- .../components/print-out-standard.blade.php | 175 +++-- .../penilai/components/print-resume.blade.php | 6 +- resources/views/penilai/show.blade.php | 35 + .../views/penilaian/otorisator/show.blade.php | 2 +- .../surveyor/components/inspeksi.blade.php | 44 +- resources/views/surveyor/index.blade.php | 55 +- routes/breadcrumbs.php | 5 + routes/web.php | 1 + 15 files changed, 1181 insertions(+), 117 deletions(-) create mode 100644 app/Emails/SendJadwalKunjunganEmail.php create mode 100644 resources/views/emails/jadwal-kunjungan.blade.php create mode 100644 resources/views/penilai/components/call-report.blade.php diff --git a/app/Emails/SendJadwalKunjunganEmail.php b/app/Emails/SendJadwalKunjunganEmail.php new file mode 100644 index 0000000..879934a --- /dev/null +++ b/app/Emails/SendJadwalKunjunganEmail.php @@ -0,0 +1,63 @@ +id = $emailData['emailData']['id']; + $this->waktu_penilaian = $emailData['emailData']['waktu_penilaian']; + $this->deskripsi_penilaian = $emailData['emailData']['deskripsi_penilaian']; + } + + /** + * Build the message. + * + * @return $this + */ + public function build() + { + return $this->subject('Jadwal Kunjungan Penilaian Resmi') + ->view('lpj::emails.jadwal-kunjungan'); + } +} diff --git a/app/Http/Controllers/PenilaiController.php b/app/Http/Controllers/PenilaiController.php index fb8409d..53110ae 100644 --- a/app/Http/Controllers/PenilaiController.php +++ b/app/Http/Controllers/PenilaiController.php @@ -385,6 +385,77 @@ class PenilaiController extends Controller } + public function call_report(Request $request) + { + + $permohonanId = $request->query('permohonanId'); + $documentId = $request->query('documentId'); + $inspeksiId = $request->query('inspeksiId'); + $jaminanId = $request->query('jaminanId'); + $provinces = Province::all(); + $permohonan = $this->surveyorController->getPermohonanJaminanId($permohonanId, $documentId, $jaminanId); + // $nomorLaporan = $this->generateNoLaporan($permohonan, $documentId, 'rap'); + // $basicData = $this->surveyorController->getCommonData(); + // $inspeksi = Inspeksi::where('permohonan_id', $permohonanId)->where('dokument_id', $documentId)->first(); + // Penilai::updateOrCreate( + // [ + // 'permohonan_id' => $permohonanId, + // 'dokument_id' => $documentId, + // 'inspeksi_id' => $inspeksiId, + // ], + // [ + // 'type_penilai' => 'call-report', + // ] + // ); + + // $resume = Penilai::where('permohonan_id', $permohonanId)->where('dokument_id', $documentId)->first(); + + // $lpjData = null; + // $rap = null; + // $forminspeksi = null; + // if ($resume) { + // $forminspeksi = json_decode($inspeksi->data_form, true); + // $rap = json_decode($resume->rap, true); + // } + // Default: gunakan data dari debitur + // $debitur = Debiture::find($permohonan->debiture_id); + + // $provinceCode = $debitur->province_code; + // $cityCode = $debitur->city_code; + // $districtCode = $debitur->district_code; + + // $cekAlamat = $forminspeksi['asset']['alamat']['tidak sesuai'] ?? null; + + // if ($cekAlamat) { + // $provinceCode = $cekAlamat['province_code'] ?? $provinceCode; + // $cityCode = $cekAlamat['city_code'] ?? $cityCode; + // $districtCode = $cekAlamat['district_code'] ?? $districtCode; + // } + + // $cities = City::where('province_code', $provinceCode)->get(); + // $districts = District::where('city_code', $cityCode)->get(); + // $villages = Village::where('district_code', $districtCode)->get(); + + // if ($forminspeksi) { + // if (isset($forminspeksi['alamat']['sesuai']['province_code'])) { + // $cities = City::where('province_code', $forminspeksi['alamat']['sesuai']['province_code'])->get(); + // } + + // if (isset($forminspeksi['alamat']['sesuai']['city_code'])) { + // $districts = District::where('city_code', $forminspeksi['alamat']['sesuai']['city_code'])->get(); + // } + + // if (isset($forminspeksi['alamat']['sesuai']['district_code'])) { + // $villages = Village::where('district_code', $forminspeksi['alamat']['sesuai']['district_code'])->get(); + // } + // } + + // return view('lpj::penilai.components.call-report', compact('permohonan', 'rap', 'provinces', 'cities', + // 'districts', + // 'villages','forminspeksi', 'noLpRAP', 'basicData','cekAlamat')); + return view('lpj::penilai.components.call-report', compact('permohonan')); + } + /** * Remove the specified resource from storage. */ @@ -1022,7 +1093,8 @@ class PenilaiController extends Controller 'standard' => 'penilai.components.print-out-standard', 'resume' => 'penilai.components.print-resume', 'memo' => 'penilai.components.print-memo', - 'rap' => 'penilai.components.print-out-rap' + 'rap' => 'penilai.components.print-out-rap', + 'call-report' => 'penilai.components.print-out-call-report' ]; return $viewMap[$tipe] ?? 'penilai.components.print-resume'; } diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php index f54f9e7..c1dd217 100644 --- a/app/Http/Controllers/SurveyorController.php +++ b/app/Http/Controllers/SurveyorController.php @@ -14,6 +14,8 @@ use Illuminate\Support\Facades\Auth; use Illuminate\Support\Str; use Barryvdh\DomPDF\Facade\Pdf; use Illuminate\Support\Facades\Storage; +use Illuminate\Support\Carbon; +use Illuminate\Support\Facades\Mail; use Illuminate\Http\Response; use Modules\Lpj\Models\Debiture; use Modules\Lpj\Models\Permohonan; @@ -77,16 +79,15 @@ 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\SendEmail; -use Illuminate\Support\Facades\Mail; +use Modules\Lpj\Emails\SendJadwalKunjunganEmail; class SurveyorController extends Controller { public $user; - /** - * Display a listing of the resource. - */ + + + public function index() { return view('lpj::surveyor.index'); @@ -899,8 +900,6 @@ class SurveyorController extends Controller } - - public function checkButtonStatus($id) { try { @@ -969,24 +968,24 @@ class SurveyorController extends Controller 'deskripsi_penilaian' => 'required' ]); - // $user = ['user' => 'rustammajid76@gmail.com']; + $penilaian = Penilaian::findOrFail($validate['id']); - // $emailData = [ - // 'email' => 'rustammajid76@gmail.com', - // 'subject' => 'Test', - // 'emailData' => '

Hello, World!

This is the email content. Waktu Penilaian:

' - // ]; + $emailData = [ + 'email' => $penilaian->permohonan->user->email, + 'subject' => 'Jadwal Kunjungan', + 'emailData' => $validate, - // $this->sendMessage($emailData, $user); + ]; - $id = $request->input('id'); - $penilaian = Penilaian::findOrFail($id); + Mail::to($emailData['email'])->send(new SendJadwalKunjunganEmail($emailData, $penilaian->permohonan->nomor_resitrasi, $penilaian->permohonan->debiture)); - if ($validate['waktu_penilaian'] <= $penilaian->tanggal_kunjungan) { + + 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'], diff --git a/resources/views/emails/jadwal-kunjungan.blade.php b/resources/views/emails/jadwal-kunjungan.blade.php new file mode 100644 index 0000000..42dd5e2 --- /dev/null +++ b/resources/views/emails/jadwal-kunjungan.blade.php @@ -0,0 +1,118 @@ + + + + + + Jadwal Kunjungan + + + +
+ +
+

Jadwal Kunjungan Penilaian

+

Dikirim melalui Sistem Penilaian

+
+ + +
+
+ ID Penilaian: + {{ $id }} +
+ +
+ Waktu Penilaian: + {{ \Carbon\Carbon::parse($waktu_penilaian)->format('d F Y H:i') }} +
+ +
+ Deskripsi: +

{{ $deskripsi_penilaian }}

+
+
+ + + +
+ + diff --git a/resources/views/penilai/components/call-report.blade.php b/resources/views/penilai/components/call-report.blade.php new file mode 100644 index 0000000..d06671d --- /dev/null +++ b/resources/views/penilai/components/call-report.blade.php @@ -0,0 +1,596 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render(request()->route()->getName()) }} +@endsection + +@section('content') +
+ @php + $senior_officer = null; + if ($permohonan->debiture && $permohonan->debiture->documents) { + foreach ($permohonan->debiture->documents as $dokumen) { + $penilai = $permohonan->penilaian->userPenilai->where('role', 'penilai')->first(); + $teams = $permohonan->region->teams; + + if ($teams) { + foreach ($teams as $team) { + $team_users = $team->teamsUsers; + // print_r($team_users); + if ($team_users) { + foreach ($team_users as $team_user) { + $user = $team_user->user; + + if ($user && $user->hasRole('senior-officer')) { + $senior_officer = $user; + break 3; + } + } + } + } + } + } + } + + @endphp +
+ @csrf + + + + + + @include('lpj::assetsku.includenya') + {{-- @include('lpj::surveyor.components.header') + @include('lpj::surveyor.components.callReport') --}} + +
+
+

+ CALL Report +

+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ {{-- 250109828129/ --}} + +
+ +
+ +
+
+ +
+ +
+ +
+
+
+
+ +
+
+

Menindak lanjuti permintaan + {{$permohonan->tujuanPenilaian->name ?? ''}}, BAG CABang {{ $permohonan->branch->name }} + disampaikan hal sebagai berikut: +

+
+
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + +
+ + +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+ + +
+
+
+ + +
+
+

Penilaian ke lokasi objek telah dilakukan oleh : +

+
+
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ +
+ +
+
+ +
+ +
+ +
+
+
+
+
+
+
+ +
+
+

+ Informasi yang didapatkan sebagai berikut : +

+
+
+
+ +
+ @if (!empty($callReport['fakta']['fakta_positif'])) + @foreach ($callReport['fakta']['fakta_positif'] as $index => $positif) +
+ + +
+ @endforeach + @else +
+ + +
+ @endif + +
+
+ +
+ +
+ @if (!empty($callReport['fakta']['fakta_negatif'])) + @foreach ($callReport['fakta']['fakta_negatif'] as $index => $negatif) +
+ + +
+ @endforeach + @else +
+ + + +
+ @endif + +
+
+
+
+ +
+ + @if (Auth::user()->hasAnyRole(['senior-officer', 'EO Appraisal', 'DD Appraisal'])) + + LAMPIRAN FOTO DAN DOKUMEN + + + Print + + @endif +
+
+
+@endsection +@push('scripts') + {{-- --}} + @include('lpj::surveyor.js.utils') +@endpush diff --git a/resources/views/penilai/components/informasi-pembanding.blade.php b/resources/views/penilai/components/informasi-pembanding.blade.php index 8b0b252..c2f3feb 100644 --- a/resources/views/penilai/components/informasi-pembanding.blade.php +++ b/resources/views/penilai/components/informasi-pembanding.blade.php @@ -30,21 +30,21 @@
- Rp. {{ $item['harga_diskon'] }} + Rp. {{ $item['harga'] }}
- +
- Rp. {{ $item['harga'] }} + {{ $item['telepon'] }}
- Rp. {{ $item['harga'] }} + {{ $item['penawaran'] }}
diff --git a/resources/views/penilai/components/print-out-sederhana.blade.php b/resources/views/penilai/components/print-out-sederhana.blade.php index 543d18b..7386d9f 100644 --- a/resources/views/penilai/components/print-out-sederhana.blade.php +++ b/resources/views/penilai/components/print-out-sederhana.blade.php @@ -862,9 +862,31 @@ D. ASURANSI + @if (!empty($lpjData['asuransi_luas_bangunan'])) + + + + + + + + + + + + + + + + +
Luas BangunanHargaNilai Pasar Wajar (Rp)
{{ $lpjData['asuransi_luas_bangunan'] ?? '' }}{{ formatRupiah($lpjData['asuransi_nilai_1']) ?? '' }}{{ formatRupiah($lpjData['asuransi_nilai_2']) ?? '' }}
+ + + @else Tidak Ada + @endif @@ -1035,7 +1057,7 @@
@@ -1068,6 +1090,65 @@ @endisset + + + + + + + + + + @if (!empty($forminspeksi['fakta']['keterangan'])) + + + + + @endif
- G. CATATAN YANG PERLU DI PERHATIKAN + G. ANALISA FAKTA
Batas batas + @foreach ($forminspeksi['fakta']['batas_batas_input'] ?? [] as $arah => $batas) + @if ($batas) +

- {{ $arah }} : {{ $batas }}

+ @endif + @endforeach +
Informasi Dinas Tata Ruang + + @php + $informasi = [ + 'peruntukan', + 'kdb', + 'kdh', + 'gsb', + 'max_lantai', + 'klb', + 'gss', + 'pelebaran_jalan', + 'nama_petugas', + ]; + @endphp + + @foreach ($informasi as $key) + @if (isset($forminspeksi['fakta'][$key]) && $forminspeksi['fakta'][$key] !== '-') +

- {{ ucfirst(str_replace('_', ' ', $key)) }}: + {{ $forminspeksi['fakta'][$key] }}

+ @endif + @endforeach + +
Catatan yang Perlu Diperhatikan + @php + $keterangan = $forminspeksi['fakta']['keterangan'] ?? ''; + if (is_array($keterangan)) { + $keterangan = implode(', ', array_filter($keterangan)); + } + @endphp + + @if (!empty($keterangan)) + + + + +
{{ $keterangan }}
+ @endif +
diff --git a/resources/views/penilai/components/print-out-standard.blade.php b/resources/views/penilai/components/print-out-standard.blade.php index c48e2eb..b0e0525 100644 --- a/resources/views/penilai/components/print-out-standard.blade.php +++ b/resources/views/penilai/components/print-out-standard.blade.php @@ -9,11 +9,11 @@ Laporan Penilai jaminan