Skip to content

Instantly share code, notes, and snippets.

@lukluk
Created September 19, 2024 06:57
Show Gist options
  • Save lukluk/37e9e61a32816228f5b112a7bd7e6da3 to your computer and use it in GitHub Desktop.
Save lukluk/37e9e61a32816228f5b112a7bd7e6da3 to your computer and use it in GitHub Desktop.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\PsbAkdDokumenOutput;
use App\Models\PsbAkdCsntr;
use Barryvdh\DomPDF\Facade\Pdf;
class DocumentController extends Controller
{
public function downloadPdf($idDoc, Request $request)
{
$idCsntr = $request->query('idcsntr');
$dokumenOutput = PsbAkdDokumenOutput::findOrFail($idDoc);
$csntr = PsbAkdCsntr::findOrFail($idCsntr);
$htmlContent = $dokumenOutput->doc_template;
$filename = $dokumenOutput->filename;
// Generate PDF
$data["psb_akd_csntr.no_pendaftaran"] = $csntr->no_pendaftaran;
$no = substr($csntr->no_pendaftaran, -3);
$data["u1"] = $no[-3];
$data["u2"] = $no[-2];
$data["u3"] = $no[-1];
$data["psb_akd_csntr.no_pendaftaran"] =
$data["psb_akd_csntr.jenjang_id"] = $csntr->jenjang->nama;
$data["psb_akd_csntr.jalur"] = $csntr->jalur;
$data["psb_akd_csntr.thn_akd"] = $csntr->thn_akd;
$data["gelombang"] = $csntr->gelombang->gelombang;
$data["psb_akd_csntr.gelombang_id"] = $csntr->gelombang->gelombang;
$data["psb_akd_csntr.tmp_lahir"] = $csntr->tmp_lahir;
$data["psb_akd_csntr.jml_sdr"] = $csntr->jml_sdr;
$data["psb_akd_csntr.tgl_lahir"] = $csntr->tgl_lahir ? $csntr->tgl_lahir->format('Y-m-d') : null; // Assuming tgl_lahir is a DateTime object
$data["psb_akd_csntr.anak_ke"] = $csntr->anak_ke;
$data["psb_akd_csntr.gol_darah"] = $csntr->gol_darah;
$data["psb_akd_csntr.jns_kelamin"] = $csntr->jns_kelamin;
$data["psb_akd_csntr.jns_kelamin2"] = $csntr->jns_kelamin == "PA" ? "Laki-Laki" : "Perempuan";
$data["psb_akd_csntr.alamat"] = $csntr->alamat;
$data["psb_akd_csntr.rt"] = $csntr->rt;
$data["psb_akd_csntr.rw"] = $csntr->rw;
$data["psb_akd_csntr.desa_id"] = $csntr->desa->nama;
$data["psb_akd_csntr.kecamatan_id"] = $csntr->kecamatan->nama;
$data["psb_akd_csntr.kota_id"] = $csntr->kota->nama;
$data["psb_akd_csntr.provinsi_id"] = $csntr->provinsi->nama;
$data["psb_akd_csntr.kode_pos"] = $csntr->kode_pos;
$data["psb_akd_csntr.jml_hafalan"] = $csntr->jml_hafalan;
$data["psb_akd_csntr.nisn"] = $csntr->nisn;
$data["psb_akd_csntr.nik"] = $csntr->nik;
$data["psb_akd_csntr.kk"] = $csntr->kk;
$data["psb_akd_csntr.pj_biaya"] = $csntr->pj_biaya;
$data["psb_akd_csntr.pip"] = $csntr->pip;
$data["psb_akd_csntr.file_bukti_pembayaran"] = $csntr->file_bukti_pembayaran;
$data["psb_akd_csntr.status_anak"] = $csntr->status_anak;
$data["psb_akd_csntr.membaca_alquran"] = $csntr->membaca_alquran;
$data["psb_akd_csntr.catatan"] = $csntr->catatan;
$data["psb_akd_csntr.konfirmasi_bukti_pembayaran"] = $csntr->konfirmasi_bukti_pembayaran;
$data["psb_akd_csntr.biaya"] = $csntr->biaya;
$data["psb_akd_csntr.tgl_daftar"] = $csntr->tgl_daftar ? $csntr->tgl_daftar->format('Y-m-d') : null;
$data["psb_akd_csntr_sekolah_asal.nama"] = $csntr->sekolahAsal->nama;
$data["psb_akd_csntr_sekolah_asal.nspn"] = $csntr->sekolahAsal->nspn;
$data["psb_akd_csntr_sekolah_asal.thn_lulus"] = $csntr->sekolahAsal->thn_lulus;
$data["psb_akd_csntr_sekolah_asal.alamat"] = $csntr->sekolahAsal->alamat;
$data["psb_akd_csntr_sekolah_asal.desa_id"] = $csntr->sekolahAsal->desa->nama;
$data["psb_akd_csntr_sekolah_asal.kecamatan_id"] = $csntr->sekolahAsal->kecamatan->nama;
$data["psb_akd_csntr_sekolah_asal.kota_id"] = $csntr->sekolahAsal->kota->nama;
$data["psb_akd_csntr_sekolah_asal.provinsi_id"] = $csntr->sekolahAsal->provinsi->nama;
$data["psb_akd_csntr_sekolah_asal.nilai_bhs_indonesia"] = $csntr->sekolahAsal->nilai_bhs_indonesia;
$data["psb_akd_csntr_sekolah_asal.nilai_bhs_inggris"] = $csntr->sekolahAsal->nilai_bhs_inggris;
$data["psb_akd_csntr_sekolah_asal.nilai_matematika"] = $csntr->sekolahAsal->nilai_matematika;
$data["psb_akd_csntr_sekolah_asal.nilai_ipa"] = $csntr->sekolahAsal->nilai_ipa;
$data["psb_akd_csntr_sekolah_asal.nilai_bhs_indonesia_2"] = $csntr->sekolahAsal->nilai_bhs_indonesia_2;
$data["psb_akd_csntr_sekolah_asal.nilai_bhs_inggris_2"] = $csntr->sekolahAsal->nilai_bhs_inggris_2;
$data["psb_akd_csntr_sekolah_asal.nilai_matematika_2"] = $csntr->sekolahAsal->nilai_matematika_2;
$data["psb_akd_csntr_sekolah_asal.nilai_ipa_2"] = $csntr->sekolahAsal->nilai_ipa_2;
$data["psb_akd_csntr_parents.ayah.nama"] = $csntr->ayah->nama;
$data["psb_akd_csntr_parents.ibu.nama"] = $csntr->ibu->nama;
$data["psb_akd_csntr_parents.ayah.tmp_lahir"] = $csntr->ayah->tmp_lahir;
$data["psb_akd_csntr_parents.ayah.tgl_lahir"] = $csntr->ayah->tgl_lahir;
$data["psb_akd_csntr_parents.ayah.pendidikan_id"] = $csntr->ayah->pendidikan->nama;
$data["psb_akd_csntr_parents.ayah.pekerjaan_id"] = $csntr->ayah->pekerjaan->nama;
$data["psb_akd_csntr_parents.ayah.penghasilan_id"] = $csntr->ayah->penghasilan->nama;
$data["psb_akd_csntr_parents.ayah.no_hp"] = $csntr->ayah->no_hp;
$data["psb_akd_csntr_parents.ayah.status_hidup"] = $csntr->ayah->status_hidup;
$data["psb_akd_csntr_parents.ayah.nik"] = $csntr->ayah->nik;
$data["psb_akd_csntr_parents.ayah.domisili_sesuai_kk"] = $csntr->ayah->domisili_sesuai_kk;
$data["psb_akd_csntr_parents.ibu.tmp_lahir"] = $csntr->ibu->tmp_lahir;
$data["psb_akd_csntr_parents.ibu.tgl_lahir"] = $csntr->ibu->tgl_lahir;
$data["psb_akd_csntr_parents.ibu.pendidikan_id"] = $csntr->ibu->pendidikan->nama;
$data["psb_akd_csntr_parents.ibu.pekerjaan_id"] = $csntr->ibu->pekerjaan->nama;
$data["psb_akd_csntr_parents.ibu.penghasilan_id"] = $csntr->ibu->penghasilan->nama;
$data["psb_akd_csntr_parents.ibu.no_hp"] = $csntr->ibu->no_hp;
$data["psb_akd_csntr_parents.ibu.status_hidup"] = $csntr->ibu->status_hidup;
$data["psb_akd_csntr_parents.ibu.nik"] = $csntr->ibu->nik;
$data["psb_akd_csntr_parents.ibu.domisili_sesuai_kk"] = $csntr->ibu->domisili_sesuai_kk;
$dok = "";
$csntr->dokumen->each(function ($dokumen, $n) use (&$dok) {
$dok .= $dokumen->dokumen->nama . "<br/>";
});
$data["psb_akd_csntr.dokumen"] = $dok;
$htmlContent = str_replace(array_keys($data), array_values($data), $htmlContent);
$pdf = Pdf::loadHTML($htmlContent);
return $pdf->download($filename . '.pdf');
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment