Penambahan template surat

This commit is contained in:
NoBody313
2025-05-09 12:49:06 +07:00
parent 72b62fa6fd
commit 20f0820349
6 changed files with 165 additions and 8 deletions
+16 -2
View File
@@ -323,12 +323,26 @@ class LetterController extends Controller
}
}
public function generateSurat($id)
public function generateSuratAcc($id)
{
$letter = Letter::findOrFail($id);
$letter->start_formatted = Carbon::parse($letter->start_date)->translatedFormat('j F Y');
$letter->end_formatted = Carbon::parse($letter->completion_date)->translatedFormat('j F Y');
$pdf = Pdf::loadView('template', ['letter' => $letter, 'tanggalSurat' => Carbon::now()->isoFormat('D MMMM Y')]);
$pdf = Pdf::loadView('acc_template', ['letter' => $letter, 'tanggalSurat' => Carbon::now()->isoFormat('D MMMM Y')]);
return $pdf->download('Surat.pdf')
->withHeaders([
'Access-Control-Allow-Origin' => '*',
'Access-Control-Allow-Methods' => 'GET, OPTIONS',
'Access-Control-Allow-Headers' => 'Content-Type, Authorization',
]);
}
public function generateSuratComp($id)
{
$letter = Letter::findOrFail($id);
$letter->start_formatted = Carbon::parse($letter->start_date)->translatedFormat('j F Y');
$letter->end_formatted = Carbon::parse($letter->completion_date)->translatedFormat('j F Y');
$pdf = Pdf::loadView('comp_template', ['letter' => $letter, 'tanggalSurat' => Carbon::now()->isoFormat('D MMMM Y')]);
return $pdf->download('Surat.pdf')
->withHeaders([
'Access-Control-Allow-Origin' => '*',
+1 -1
View File
@@ -78,7 +78,7 @@ return [
|
*/
'locale' => env('APP_LOCALE', 'en'),
'locale' => env('APP_LOCALE', 'id'),
'fallback_locale' => env('APP_FALLBACK_LOCALE', 'en'),
@@ -96,7 +96,7 @@
<div class="section">
<p>Kepada Yth.<br>
Kaprodi {{ $letter->program_studi_mahasiswa }} <br>
{{ $letter->address_to }} {{ $letter->program_studi_mahasiswa }} <br>
di Tempat</p>
</div>
@@ -118,8 +118,8 @@
<p>
Dengan ini kami menyatakan bahwa mahasiswa yang bersangkutan <span class="bold">DITERIMA</span> untuk
melaksanakan kerja praktek di CoE Human Centric Engineering, Telkom University. Kegiatan ini
dilaksanakan pada tanggal {{ $letter->start_formatted }} sampai dengan {{ $letter->end_formatted }},
periode Tahun Ajaran Ganjil {{ $letter->tahun_ajaran }}.
dilaksanakan pada tanggal {{ $letter->start_formatted }} s.d. {{ $letter->end_formatted }},
periode Tahun Ajaran {{ $letter->tahun_ajaran }}.
</p>
<p>
Demikian surat keterangan ini kami buat agar dapat dipergunakan sebagaimana mestinya.
@@ -130,7 +130,7 @@
<p>Bandung, {{ $tanggalSurat }}</p>
<br><br><br>
<p><span class="bold" style="text-decoration: underline;">Assoc. Prof. Dr. Satria Manda</span><br>
Direktur CoE HUMIC ENGINERING</p>
<span class="bold"> Direktur CoE HUMIC ENGINERING</span></p>
</div>
</div>
</body>
+141
View File
@@ -0,0 +1,141 @@
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<title>Surat Selesai</title>
<style>
@page {
size: A4;
margin: 2cm;
}
body {
font-family: Helvetica, Arial, sans-serif;
margin: 0;
padding: 0;
text-align: justify;
}
.container {
width: 100%;
}
.kop {
display: flex;
align-items: center;
margin-bottom: 20px;
}
.kop img {
width: 60px;
height: 60px;
}
.kop-text {
flex: 1;
text-align: start;
}
.line {
border-bottom: 2px solid black;
margin-bottom: 20px;
}
.right {
text-align: right;
}
.section {
margin-bottom: 15px;
}
.label {
display: inline-block;
width: 100px;
}
.bold {
font-weight: bold;
}
</style>
</head>
<body>
<div class="container">
{{-- Kop Surat --}}
<table style="width: 100%; margin-bottom: 20px;">
<tr>
<td style="width: 80px;">
<img src="{{ public_path('assets/humic.jpg') }}" alt="Logo" style="width: 80px;height: 80px">
</td>
<td style="text-align: center;">
<div style="font-size: 14pt; font-weight: bold; line-height: 1.3;">
Pusat Penelitian HUMIC Engineering<br>
Universitas Telkom
</div>
<div style="font-size: 10pt; margin-top: 4px; line-height: 1.4;">
Jl. Telekomunikasi Terusan Buah Batu, Bandung 40257, Jawa Barat, Indonesia<br>
Telp/Faks: +6281321397936 / +6222-70658638 / +6222-7565931
</div>
</td>
</tr>
</table>
<div class="line"></div>
{{-- Detail Surat --}}
<div class="section">
<div><span class="label">Nomor</span>: {{ $letter->nomor_surat_acceptance }}</div>
<div><span class="label">Lampiran</span>: -</div>
<div><span class="label">Perihal</span>: Surat Selesai Kerja Praktek</div>
</div>
<div class="section">
<p>Kepada Yth.<br>
{{ $letter->address_to }} {{ $letter->program_studi_mahasiswa }} <br>
di Tempat</p>
</div>
<div class="section">
<p>Dengan hormat,</p>
<p>
Sehubungan dengan telah selesainya kerja praktek di CoE Humic Engineering yang telah dilaksanakan oleh
mahasiswa
atas nama:
</p>
</div>
<div class="section">
<div><span class="label">Nama</span>: {{ $letter->nama_mahasiswa }}</div>
<div><span class="label">NIM</span>: {{ $letter->nomor_induk_mahasiswa }}</div>
<div><span class="label">Prodi</span>: {{ $letter->program_studi_mahasiswa }}</div>
</div>
<div class="section">
<p>
Dengan ini kami menyatakan bahwa mahasiswa yang bersangkutan <span class="bold">TELAH
MENYELESAIKAN</span> Kerja Praktek
di CoE Human Centric Engineering, Telkom University. Kegiatan ini telah
dilaksanakan pada tanggal {{ $letter->start_formatted }} s.d. {{ $letter->end_formatted }},
periode Tahun Ajaran {{ $letter->tahun_ajaran }}.
</p>
<p>
Demikian surat keterangan ini kami buat agar dapat dipergunakan sebagaimana mestinya.
</p>
</div>
<div class="section">
<p>Bandung, {{ $tanggalSurat }}</p>
<br><br><br>
<p><span class="bold" style="text-decoration: underline;">Assoc. Prof. Dr. Satria Manda</span><br>
<span class="bold"> Direktur CoE HUMIC ENGINERING</span>
</p>
</div>
</div>
</body>
</html>
+3
View File
@@ -40,6 +40,9 @@ Route::middleware('auth:sanctum')->group(function () {
Route::apiResource('completion_templates', CompletionTemplateController::class);
Route::apiResource('acceptance_templates', AcceptanceTemplateController::class);
Route::get('/generate-surat/acc/{id}', [LetterController::class, 'generateSuratAcc']);
Route::get('/generate-surat/comp/{id}', [LetterController::class, 'generateSuratComp']);
// File Viewer Route (Internal use for signed URLs)
Route::get('/file/{id}', [FileViewController::class, 'show'])
->name('file.view')
-1
View File
@@ -15,5 +15,4 @@ Route::post('/monitoring/login', [AdminMonitoringController::class, 'login'])
Route::middleware('auth:monitoring')->group(function () {
Route::post('/monitoring/logout', [AdminMonitoringController::class, 'logout'])
->name('monitoring.logout');
Route::get('/generate-surat', [LetterController::class, 'generateSurat']);
});