Files
gia-gve-certificates/views/batch-certificate.ejs
2026-07-01 13:48:25 +05:00

179 lines
6.2 KiB
Plaintext
Raw Permalink 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>Справки (пакет)</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: 'Times New Roman', Times, serif;
font-size: 12pt;
line-height: 1.4;
color: #000;
margin: 0;
padding: 0;
}
.cert-page {
max-width: 210mm;
margin: 0 auto;
padding: 10mm 15mm;
page-break-after: always;
}
.cert-page:last-child { page-break-after: auto; }
.header { text-align: center; margin-bottom: 6mm; }
.header .dept { font-size: 9pt; font-weight: bold; }
.header .school {
font-size: 10pt;
font-weight: bold;
text-transform: uppercase;
margin-top: 0;
}
.header .school-first { white-space: nowrap; }
.header .address { font-size: 9pt; margin-top: 1mm; }
.title {
text-align: center;
font-weight: bold;
font-size: 12pt;
margin: 6mm 0 4mm;
text-transform: uppercase;
}
.subtitle { text-align: center; font-size: 11pt; margin-bottom: 3mm; }
.date { text-align: right; margin-bottom: 3mm; }
.body-text { text-indent: 8mm; margin-bottom: 4mm; text-align: justify; }
table {
width: 100%;
border-collapse: collapse;
margin: 3mm 0;
}
table th, table td {
border: 1px solid #000;
padding: 2mm;
text-align: center;
font-size: 10pt;
}
table th { font-weight: bold; background: #f0f0f0; }
table td:first-child { width: 8mm; }
table td:nth-child(2) { text-align: left; }
.signature {
display: flex;
align-items: flex-end;
margin-top: 10mm;
}
.signature .dir { white-space: nowrap; }
.signature .line { flex: 1; border-bottom: 1px solid #000; margin: 0 12px; }
.signature .name { font-weight: bold; white-space: nowrap; }
@media print {
body { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.cert-page { padding: 8mm 12mm; }
.no-print { display: none !important; }
@page { size: A4; margin: 8mm; }
}
.no-print {
position: fixed;
top: 8px;
right: 8px;
z-index: 1000;
}
.btn-print {
padding: 6px 16px;
font-size: 11pt;
background: #0066cc;
color: #fff;
border: none;
border-radius: 3px;
cursor: pointer;
}
</style>
</head>
<body>
<div class="no-print" style="display:flex; gap:8px; align-items:center; background:#fff; padding:6px 10px; border-radius:4px; box-shadow:0 1px 4px rgba(0,0,0,0.2)">
<button class="btn-print" onclick="window.print()">Печать</button>
<span style="font-size:11pt; color:#555"><%= students.length %> справок</span>
</div>
<% students.forEach((data) => { %>
<div class="cert-page">
<div class="header">
<div class="dept">ДЕПАРТАМЕНТ ОБРАЗОВАНИЯ АДМИНИСТРАЦИИ ГОРОДА ЕКАТЕРИНБУРГА</div>
<div class="dept">УПРАВЛЕНИЕ ОБРАЗОВАНИЯ АКАДЕМИЧЕСКОГО РАЙОНА</div>
<div class="school school-first">
МУНИЦИПАЛЬНОЕ АВТОНОМНОЕ ОБЩЕОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
</div>
<div class="school">
СРЕДНЯЯ ОБЩЕОБРАЗОВАТЕЛЬНАЯ ШКОЛА № 25 им. В.Г. ФЕОФАНОВА
</div>
<div class="address">ул. Цветоносная, 2, тел. 334-32-26</div>
</div>
<div class="title">
СПРАВКА № <%= data.certNumber %><br>
о результатах государственной итоговой аттестации
</div>
<div class="subtitle">
<% if (data.type === 'gia') { %>
в форме основного государственного экзамена
<% } else { %>
в форме государственного выпускного экзамена
<% } %>
</div>
<div class="date">Дата выдачи <%= data.dateStr %></div>
<div class="body-text">
Настоящая справка выдана <strong><%= data.student.fioDative %></strong>
о том, что он(а) <%= data.verbEnding %>
в Муниципальном автономном общеобразовательном учреждении — средней общеобразовательной
школе № 25 имени В.Г. Феофанова по основной образовательной программе основного общего
образования и по результатам государственной итоговой аттестации
<%= data.verbEnding2 %> в 2025/2026 учебном году по учебным предметам следующие отметки
<% if (data.type === 'gia') { %>(количество первичных баллов)<% } %>:
</div>
<table>
<thead>
<tr>
<th>№</th>
<th>Наименование учебных предметов</th>
<% if (data.type === 'gia') { %>
<th>Количество первичных баллов</th>
<% } %>
<th>Отметка по пятибалльной шкале</th>
</tr>
</thead>
<tbody>
<% data.allSubjects.forEach((s, i) => { %>
<tr>
<td><%= i + 1 %></td>
<td><%= s.subject_name %></td>
<% if (data.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">
<span class="dir">Директор</span>
<span class="line"></span>
<span class="name">О.А. Добычина</span>
</div>
</div>
<% }) %>
<%
function gradeText(g) {
const map = { 5: 'отлично', 4: 'хорошо', 3: 'удовлетворительно', 2: 'неудовлетворительно' };
return map[g] || '';
}
%>
<script>
window.onload = () => setTimeout(() => window.print(), 500);
</script>
</body>
</html>