Files
gia-gve-certificates/views/certificate.ejs
2026-07-01 09:18:06 +05:00

160 lines
5.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Справка №<%= certNumber %></title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: 'Times New Roman', Times, serif;
font-size: 14pt;
line-height: 1.5;
color: #000;
max-width: 210mm;
margin: 0 auto;
padding: 15mm 20mm;
}
.header { text-align: center; margin-bottom: 10mm; }
.header .dept { font-size: 11pt; font-weight: bold; }
.header .school {
font-size: 12pt;
font-weight: bold;
text-transform: uppercase;
margin-top: 4mm;
}
.header .address { font-size: 11pt; margin-top: 2mm; }
.title {
text-align: center;
font-weight: bold;
font-size: 13pt;
margin: 8mm 0 5mm;
text-transform: uppercase;
}
.subtitle { text-align: center; font-size: 12pt; margin-bottom: 5mm; }
.date { text-align: right; margin-bottom: 5mm; }
.body-text { text-indent: 10mm; margin-bottom: 5mm; text-align: justify; }
table {
width: 100%;
border-collapse: collapse;
margin: 5mm 0;
}
table th, table td {
border: 1px solid #000;
padding: 3mm 2mm;
text-align: center;
font-size: 11pt;
}
table th { font-weight: bold; background: #f0f0f0; }
table td:first-child { width: 10mm; }
table td:nth-child(2) { text-align: left; }
.signature {
margin-top: 15mm;
text-align: right;
}
.signature .dir { margin-bottom: 8mm; }
.signature .name { font-weight: bold; }
@media print {
body { padding: 10mm 15mm; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.no-print { display: none !important; }
@page { size: A4; margin: 10mm; }
}
.no-print {
position: fixed;
top: 10px;
right: 10px;
z-index: 1000;
}
.btn-print {
padding: 8px 20px;
font-size: 12pt;
background: #0066cc;
color: #fff;
border: none;
border-radius: 4px;
cursor: pointer;
}
</style>
</head>
<body>
<div class="no-print">
<button class="btn-print" onclick="window.print()">Печать</button>
</div>
<div class="header">
<div class="dept">ДЕПАРТАМЕНТ ОБРАЗОВАНИЯ АДМИНИСТРАЦИИ ГОРОДА ЕКАТЕРИНБУРГА</div>
<div class="dept">УПРАВЛЕНИЕ ОБРАЗОВАНИЯ АКАДЕМИЧЕСКОГО РАЙОНА</div>
<div class="school">
МУНИЦИПАЛЬНОЕ АВТОНОМНОЕ ОБЩЕОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ —<br>
СРЕДНЯЯ ОБЩЕОБРАЗОВАТЕЛЬНАЯ ШКОЛА № 25 им. В.Г. ФЕОФАНОВА
</div>
<div class="address">ул. Цветоносная, 2, тел. 334-32-26</div>
</div>
<div class="title">
СПРАВКА № <%= certNumber %><br>
о результатах государственной итоговой аттестации
</div>
<div class="subtitle">
<% if (type === 'gia') { %>
в форме основного государственного экзамена
<% } else { %>
в форме государственного выпускного экзамена
<% } %>
</div>
<div class="date">Дата выдачи <%= dateStr %></div>
<div class="body-text">
Настоящая справка выдана <strong><%= student.fioDative %></strong>
о том, что он(а) <%= verbEnding %>
в Муниципальном автономном общеобразовательном учреждении — средней общеобразовательной
школе № 25 имени В.Г. Феофанова по основной образовательной программе основного общего
образования и по результатам государственной итоговой аттестации
<%= verbEnding2 %> в 2025/2026 учебном году по учебным предметам следующие отметки
<% if (type === 'gia') { %>(количество первичных баллов)<% } %>:
</div>
<table>
<thead>
<tr>
<th>№</th>
<th>Наименование учебных предметов</th>
<% if (type === 'gia') { %>
<th>Количество первичных баллов</th>
<% } %>
<th>Отметка по пятибалльной шкале</th>
</tr>
</thead>
<tbody>
<% allSubjects.forEach((s, i) => { %>
<tr>
<td><%= i + 1 %></td>
<td><%= s.subject_name %></td>
<% if (type === 'gia') { %>
<td><%= s.primary_score !== null ? s.primary_score : '—' %></td>
<% } %>
<td><%= s.grade !== null ? s.grade + ' (' + gradeText(s.grade) + ')' : '—' %></td>
</tr>
<% }) %>
</tbody>
</table>
<div class="signature">
<div class="dir">Директор</div>
<div class="name">О.А. Добычина</div>
</div>
<%
function gradeText(g) {
const map = { 5: 'отлично', 4: 'хорошо', 3: 'удовлетворительно', 2: 'неудовлетворительно' };
return map[g] || '';
}
%>
<script>
window.onload = () => setTimeout(() => window.print(), 500);
</script>
</body>
</html>