hmt 6 ani în urmă
părinte
comite
b06a9961bf
2 a modificat fișierele cu 184 adăugiri și 8 ștergeri
  1. 167 0
      ASZ Fachschule.html
  2. 17 8
      partials/Noten.html

+ 167 - 0
ASZ Fachschule.html

@@ -0,0 +1,167 @@
+{#each schueler as s}
+  {#each aktHalbjahrFuer(s) as hj}
+    <div class="page grid" orientation="landscape" size="A3">
+      <Seitenlogo logo="{privat.traegerLogo}"/>
+      <Pageheader art="daten/asz.svg" logo="{privat.logo}" untertitel="{privat.untertitel}"/>
+      <div class="main">
+        <div class="main-grid">
+          <Voffset v="1"/>
+          <div class="main-left">
+            <b>{s.anrede} {s.Vorname} {s.Zusatz || ''} {s.Name},</b>
+            <br />geboren am {datum(s.Geburtsdatum)} in {s.Geburtsort},
+            <br />war vom {datum(s.Aufnahmedatum)} bis zur Aushändigung des Zeugnisses {s.studierende_r} des Bildungsgangs
+            <br /><b>{bg(s, 'Zeugniskopf')}.</b>
+            <Voffset v=".5"/>
+            Der allgemeine Prüfungsausschuss stellte in seiner Abschlusskonferenz am {datum(hj.Konferenzdatum)} fest:
+            <Voffset v=".5"/>
+            <b>Leistungen</b>
+            <div style="font-size: 90%">
+              <Noten
+                noten={hj.noten}
+                faechergruppenIds={[10, 20, 30]}
+                fachGliederungen={s.fachklasse.fach_gliederungen}
+                ger
+                lernfeld
+                fachklasse={s.fachklasse.Kennung}
+              ></Noten>
+            </div>
+            <hr />
+            <b>Bemerkungen</b>
+            <br />{@html bemerkungen(hj)}
+          </div>
+          <div class="main-right">
+            {s.anrede} {s.Vorname} {s.Zusatz || ''} {s.Name} hat das staatliche
+            <h4 class="text-center">{bg(s, 'Examen')}</h4>
+            am {hj.noten.map(n => n.fach.FachKrz === 'KO' ? n.Lernentw : null).join('')} bestanden.
+            <Voffset v="2"/>
+            <table class="table-noten">
+              {#each s.bk_abschluss_faecher.filter(f => f.fach.FachKrz.startsWith('AS')) as as}
+                <tr>
+                  <td width="22%">{as.fach.Zeugnisbez}</td>
+                  <td class="td-padding-extra">{findeFach(hj, as).Lernentw}</td>
+                  <td class="td-fach-note"><span>{as.NoteAbschluss}</span></td>
+                </tr>
+              {/each}
+            </table>
+            <Voffset v="1"/>
+            <table class="table-noten" width="100%">
+              <tr>
+                <td>{s.bk_abschluss_faecher.find(f => f.fach.FachKrz === 'BLgesamt').fach.Zeugnisbez}</td>
+                <td class="td-fach-note"><span>{s.bk_abschluss_faecher.find(f => f.FachKrz === 'BLgesamt').NoteAbschluss}</span></td>
+              </tr>
+              <tr>
+                <td>{s.bk_abschluss_faecher.find(f => f.fach.FachKrz === 'KO').fach.Zeugnisbez}</td>
+                <td class="td-fach-note"><span>{s.bk_abschluss_faecher.find(f => f.FachKrz === 'KO').NoteAbschluss}</span></td>
+              </tr>
+              <tr>
+                <td><b>{s.bk_abschluss_faecher.find(f => f.fach.FachKrz === 'BPgesamt').fach.Zeugnisbez}</b></td>
+                <td class="td-fach-note"><span>{s.bk_abschluss_faecher.find(f => f.FachKrz === 'BPgesamt').NoteAbschluss}</span></td>
+              </tr>
+            </table>
+            <Voffset v="4"/>
+            {s.anrede} {s.Vorname} {s.Zusatz || ''} {s.Name} ist berechtigt, die Berufsbezeichnung
+            <h4 class="text-center">{bg(s, (s.Geschlecht === 3 ? 'Berufsbezeichnung_m' : 'Berufsbezeichnung_w'))}</h4>
+            zu führen.
+            <Voffset v="1"/>
+            Der Abschluss ist im Deutschen und Europäischen Qualifikationsrahmen dem Niveau {s.fachklasse.DQR_Niveau} zugeordnet.
+            <Voffset v="6"/>
+            {schule.Ort}, den {datum(hj.ZeugnisDatum)}
+            <div class="flex-grid">
+              <Voffset v="6"/>
+              <div class="col">
+                <hr />
+                <div class="text-center klein">
+                  {schule.SchulleiterVorname} {schule.SchulleiterName} Vorsitzende{schule.SchulleiterGeschlecht === 3 ? 'r':''} des allgemeinen
+                  <br />Prüfungsausschusses
+                </div>
+              </div>
+              <div class="col klein">
+                <div class="text-center klein">
+                  Siegel
+                </div>
+              </div>
+              <div class="col klein">
+                <hr />
+                <div class="text-center">
+                  {schule.SchulleiterVorname} {schule.SchulleiterName} <br />{schule.schulleiter_in}
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="footer klein grau">
+        <div class="schulnummer">
+          Schulnummer: {schule.SchulNr}
+        </div>
+        <hr class="hr-grau" />
+        <div class="footer-grid">
+          <div class="footer-left">
+            Notenstufen gemäß § 48 SchulG: 1 = sehr gut, 2 = gut, 3 = befriedigend, 4 = ausreichend, 5 = mangelhaft, 6 = ungenügend
+            <p></p>
+            <sup>1</sup>Der Unterricht in den modernen Fremdsprachen hat auf der
+            nach dem Fach in Klammern angegebenen Niveaustufe des
+            „Europäischen Referenzrahmens für Sprachen: Lernen, Lehren,
+            Beurteilen“ stattgefunden. Sind zwei Referenzniveaus ausgewiesen, ist
+            das niedrigere in vollem Umfang, das höhere in Anteilen erreicht. Bei
+            mindestens ausreichenden Leistungen wird der sprachliche
+            Kompetenzerwerb auf diesem Niveau bescheinigt.
+          </div>
+          <div class="footer-right">
+            Dem Zeugnis liegen zugrunde:
+            <ul class="list-unstyled dashes">
+              <li>
+                Die Verordnung über die Ausbildung und Prüfung in den Bildungsgängen des Berufskollegs (Ausbildungs- und Prüfungsordnung Berufskolleg, APO-BK) vom 26. Mai 1999 (SGV. NRW. 223/BASS 13 – 33 Nr. 1.1).
+              </li>
+              <li>
+                Die Vereinbarung über Fachschulen (Beschluss der Kultusministerkonferenz vom 07. November 2002 in der jeweils geltenden Fassung).
+              </li>
+            </ul>
+            <br>
+            Rechtsbehelfsbelehrung:
+            Gegen dieses Zeugnis kann innerhalb eines Monats
+            nach Bekanntgabe des Zeugnisses Widerspruch eingelegt werden. Der Widerspruch
+            ist beim {schule.Bezeichnung2}, {schule.Strasse}, {schule.PLZ} {schule.Ort},
+            schriftlich oder zur Niederschrift zu erheben. <br />Falls die Frist durch
+            das Verschulden einer/eines Bevollmächtigten versäumt wird, wird dies
+            Verschulden der Widerspruchsführerin/dem Widerspruchsführer zugerechnet.
+          </div>
+        </div>
+      </div>
+    </div>
+  {/each}
+{/each}
+
+<script>
+  import { datum, volljaehrigBei, bemerkungen, bg }  from './helfer'
+
+  import Seitenlogo from './partials/Seitenlogo.html'
+  import Pageheader from './partials/Pageheader.html'
+  import Voffset from './partials/Voffset.html'
+  import Noten from './partials/Noten.html'
+
+  export let schueler, schule, privat, jahr, abschnitt
+  let aktHalbjahrFuer
+  $: aktHalbjahrFuer = (s) => [s.abschnitte.find(a => a.Jahr === jahr && a.Abschnitt === abschnitt)]
+  const findeFach = (hj, as) => hj.noten.find(n => n.fach.ID === as.fach.ID) || { Lernentw: 'undefined' }
+</script>
+
+<style>
+  @import 'css/main.css';
+  @import 'css/a3-landscape.css';
+  .td-padding-extra {
+    padding: 2mm 0 2mm 0;
+  }
+  .td-fach-note {
+    padding-bottom: .2rem;
+    padding-top: .2rem;
+    width: 12rem;
+  }
+  .td-fach-note span {
+    background-color: #dcdcdc !important;
+    text-align: center;
+    width: 10rem;
+    display: block;
+    margin: 0 auto;
+  }
+</style>

+ 17 - 8
partials/Noten.html

@@ -16,6 +16,9 @@ ger:      Wenn ein Referenzniveau für die Fremdsprachen angegeben werden soll
           true|false, Standardwert false,
 fachklasse: muss mitgegeben werden, wenn aus der Fachklassen.json Datei der Standard-
           Wert gelesen werden soll. Ansonsten über Lernentw festlegen, was eigetragen wird
+faechergruppenIds: legt fest, welche Fächergruppen gezogen werden sollen. Standartwert ist
+          ein leerer Array, d.h. alle Fächergruppen werden gezogen. Ansonsten können
+          nur bestimmte festgelegt werden z.B. [10, 20, 30]
 -->
 
 <table class="table-noten">
@@ -30,11 +33,12 @@ fachklasse: muss mitgegeben werden, wenn aus der Fachklassen.json Datei der Stan
         <tr><td colspan="2" class="{lernfeld ? '' : 'fach-bezeichnung'}">{lernbereich}</td></tr>
       {/if}
       {#each faecher as f (f.ID)}
-        {#if f.AufZeugnis === '+'}
+        {#if f.fach.AufZeugnis === '+'}
           <tr>
             <td class="{lernfeld ? '' : 'fach-bezeichnung'} {lernbereich != faecher[0].fach.Zeugnisbez ? 'lernfeld-lernbereich' : ''}">
               {#if f.fach.Zeugnisbez.includes("Projekt")}
-                {f.Lernentw}
+                <!-- Funktioniert nicht mit Abschlussnoten, da diese keine Spalte `Lernentw` haben -->
+                Projekt: {f.Lernentw}
               {:else}
                 <!-- Die Zeugnisbezeichnung hat bei gesetzten fachGliederungen einen anderen Namen... -->
                 {f.fach.ZeugnisBez || f.fach.Zeugnisbez}
@@ -63,6 +67,7 @@ fachklasse: muss mitgegeben werden, wenn aus der Fachklassen.json Datei der Stan
   const _ = R.lodash
 
   export let lernfeld, ger = false
+  export let faechergruppenIds = []
   export let noten, fachGliederungen, fachklasse
   const gruppenbezeichnung = gruppe => gruppenIds[gruppe]
   const lernbereicheUndFaecher = gruppenFaecher => Object.entries(_.groupBy(gruppenFaecher, f => f.fach.Bezeichnung))
@@ -76,15 +81,19 @@ fachklasse: muss mitgegeben werden, wenn aus der Fachklassen.json Datei der Stan
     const faecher = fachGliederungen
       ? noten.map(f => {return {...f, fach: Object.assign(f.fach, fachGliederungen.find(fg => fg.Fach_ID === f.Fach_ID))}})
       : noten
+    // nun alle Fächer rauswerfen, die nich in den FaechergruppenIds zugeordnet sind, z.B. Abschlussarbeiten, Projekte etc.
+    const faecherBereinigt = faechergruppenIds.length === 0
+      ? faecher
+      : faecher.filter(f => faechergruppenIds.find(id => f.fach.Fachgruppe_ID === id))
     // erstmal alle Fächer sortieren in der passenden Reihenfolge,
     // dann nach Fachgruppe gruppieren
-    return Object.entries(_.groupBy(_.sortBy(faecher, f => f.fach.SortierungS2), f => f.fach.Fachgruppe_ID))
+    return Object.entries(_.groupBy(_.sortBy(faecherBereinigt, f => f.fach.SortierungS2), f => f.fach.Fachgruppe_ID))
   }
-      // Berufsbezogen kommt neuerdings zuerst, dann berufsübergreifend
-      // wenn aber nur eine Note vermerkt ist, dann normal zurück
-  // const faechergruppenUmsortiert = () => faechergruppen.length > 1
-  //       ? [faechergruppen[0], faechergruppen[1]] = [faechergruppen[1], faechergruppen[0]]
-  //       : faechergruppen
+    // Berufsbezogen kommt neuerdings zuerst, dann berufsübergreifend
+    // wenn aber nur eine Note vermerkt ist, dann normal zurück
+    // const faechergruppenUmsortiert = () => faechergruppen.length > 1
+    //       ? [faechergruppen[0], faechergruppen[1]] = [faechergruppen[1], faechergruppen[0]]
+    //       : faechergruppen
 </script>
 
 <style>