Skip to content

Commit

Permalink
Urkunde für die Jüngste Gruppe
Browse files Browse the repository at this point in the history
  • Loading branch information
MaximilianJ committed May 29, 2024
1 parent b0e5be0 commit c7be5df
Show file tree
Hide file tree
Showing 9 changed files with 270 additions and 4 deletions.
2 changes: 1 addition & 1 deletion BWB-Auswertung/IO/Excel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,7 @@ public static bool WriteWertungsbogenToExcel(string filePath, List<Gruppe> grupp

foreach (Gruppe gruppe in gruppen)
{
string excelpath = System.IO.Path.Combine(filePath, $"Wertungsbogen-{gruppe.GruppenName}.xlsx");
string excelpath = System.IO.Path.Combine(filePath, $"Wertungsbogen-{gruppe.GruppennameOhneSonderzeichen}.xlsx");
WriteFile.ByteArrayToFile(excelpath, BWB_Auswertung.Properties.Resources.Auswertungsbogen);
using (SpreadsheetDocument document = SpreadsheetDocument.Open(excelpath, true))
{
Expand Down
16 changes: 16 additions & 0 deletions BWB-Auswertung/Models/Gruppe.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text.RegularExpressions;

namespace BWB_Auswertung.Models
{
Expand Down Expand Up @@ -668,6 +669,21 @@ public double SollZeitBTeilInSekunden
}
}
}
public string GruppennameOhneSonderzeichen
{
get {
Regex rgx = new Regex("[^a-zA-Z0-9öäüÄÜÖß ]");
return rgx.Replace(GruppenName, "");
}
}
public string FeuerwehrOhneSonderzeichen
{
get
{
Regex rgx = new Regex("[^a-zA-Z0-9öäüÄÜÖß ]");
return rgx.Replace(Feuerwehr, "");
}
}

public string SollZeitBTeilInMinutenString
{
Expand Down
17 changes: 17 additions & 0 deletions BWB-Auswertung/Properties/Resources.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions BWB-Auswertung/Properties/Resources.resx
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,9 @@
<data name="UrkundeOverlay" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Vorlagen\UrkundeOverlay.html;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="UrkundeOverlayJuengsteGruppe" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Vorlagen\UrkundeOverlayJuengsteGruppe.html;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="UrkundeOverlayTheme1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Vorlagen\UrkundeOverlayTheme1.html;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
Expand Down
Binary file modified BWB-Auswertung/Resources/Vorlagen/Auswertungsbogen.xlsx
Binary file not shown.
149 changes: 149 additions & 0 deletions BWB-Auswertung/Resources/Vorlagen/UrkundeOverlayJuengsteGruppe.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head>
<link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
@page {
size: A4;
margin: 0cm
}

@media print {
html, body {
height: 99%;
page-break-after: avoid;
page-break-before: avoid;
}
}

html {
width: auto;
height: 297mm;
margin: 0;
-webkit-print-color-adjust: exact;
}

body {
width: 210mm;
height: 297mm;
box-sizing: border-box;
margin: 0;
padding: 10mm;
}

h1 {
font-family: 'Open Sans';
color: black;
font-size: 54pt;
}

h2 {
font-family: 'Open Sans';
color: black;
font-size: 36pt;
}

h3 {
font-family: 'Open Sans';
color: black;
font-size: 24pt;
}

p {
font-family: 'Open Sans';
color: black;
margin: 2mm 0 0 0;
font-size: 16pt;
}


.row {
display: flex;
}

.column80 {
width: 80%;
}

.column60 {
width: 60%;
}

.column50 {
width: 50%;
}

.column40 {
width: 40%;
}

.column20 {
width: 20%;
}

.column10 {
width: 10%;
}

.line-clamp {
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 4;
line-clamp: 4;
-webkit-box-orient: vertical;
}

.one-line {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
</style>
</head>
<body>
<div style="position: absolute; top: 10mm; left: 10mm; bottom: 10mm; right: 10mm; width: 190mm; height: 277mm; border: solid black 3px;">
<div style="width: 98.3%; margin: 1mm; height: 99%; border: solid black 2px;">
<h1 style="text-align:center;margin-top: 64mm">Urkunde</h1>
<p style="text-align:center">Die Jugendfeuerwehr</p>
<h2 style="text-align: center;">
{jugendfeuerwehr}
</h2>
<p style="text-align:center">wurde beim</p>
<p style="text-align:center">{veranstaltungstitel}</p>
<p style="text-align:center">mit</p>
<h2 style="text-align: center">
{jahre} Jahren
</h2>
<p style="text-align:center">die jüngste Gruppe.</p>
<p style="margin-top:10mm; text-align:center; font-size:14px;">{veranstaltungsort}, den {veranstaltungsdatum}</p>

<div class="row" style="width: 100%; margin-bottom: 10mm; margin-top: 0mm;">
<div style="width:50%;">
<div style="text-align: center;">
<img src="{unterschriftlinks}" alt="{namelinks} - {funktionlinks}" style="height: 20mm;max-width: 300px">
</div>
<p style="text-align: center; font-size:14px;">
{namelinks}
</p>
<p style="text-align: center; font-size:14px;">
{funktionlinks}
</p>
</div>
<div style="width: 50%">
<div style="text-align: center;">
<img src="{unterschriftrechts}" alt="{namerechts} - {funktionrechts}" style="height: 20mm;max-width: 300px">
</div>
<p style="text-align: center; font-size:14px;">
{namerechts}
</p>
<p style="text-align: center; font-size:14px;">
{funktionrechts}
</p>

</div>
</div>
</div>
</div>
</body>
</html>
19 changes: 19 additions & 0 deletions BWB-Auswertung/Views/EvaluationView.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,25 @@
Margin="-15,10,10,10"
FontSize="16"
VerticalAlignment="Top" />
<Button Content="Export Jüngste Gruppe"
ToolTip="Erstellt eine Urkunde für die Jüngste Gruppe als PDF"
Margin="10,10,10,10"
Click="ExportUrkundeJuengsteGruppe_Click"
x:Name="ExportJuengsteGruppe_Button">
<Button.ContentTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<iconPacks:PackIconFontAwesome Width="22"
Height="22"
VerticalAlignment="Center"
Kind="BabyCarriageSolid" />
<TextBlock Margin="4 0 0 0"
VerticalAlignment="Center"
Text="{Binding}" />
</StackPanel>
</DataTemplate>
</Button.ContentTemplate>
</Button>
</StackPanel>
<StackPanel Orientation="Horizontal"
Margin="0,-10,0,0">
Expand Down
64 changes: 64 additions & 0 deletions BWB-Auswertung/Views/EvaluationView.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
using System.Windows.Data;
using BWB_Auswertung.IO;
using System.Windows.Controls;
using System.Text.RegularExpressions;

namespace BWB_Auswertung.Views
{
Expand Down Expand Up @@ -538,6 +539,68 @@ private async void ExportUrkunden_Click(object sender, RoutedEventArgs e)
}
}

private async void ExportUrkundeJuengsteGruppe_Click(object sender, RoutedEventArgs e)
{
try
{
((Button)sender).IsEnabled = false;
MainViewModel viewModel = (MainViewModel)this.DataContext;
PDF pDF = new PDF();

string urkundeOverlayPfad = System.IO.Path.Combine(vorlagenPath, "UrkundeOverlayJuengsteGruppe.html");
string urkundeOverlay = string.Empty;
if (File.Exists(urkundeOverlayPfad))
{
urkundeOverlay = File.ReadAllText(urkundeOverlayPfad);
}
else
{
urkundeOverlay = BWB_Auswertung.Properties.Resources.UrkundeOverlayJuengsteGruppe; //default
MessageBox.Show("Die Vorlage für die Urkunde(Jüngste Gruppe) wurde nicht gefunden. Es wird der Standard benutzt.", "Export Urkunde", MessageBoxButton.OK, MessageBoxImage.Information);
}

//Allgemeines ersetzen
urkundeOverlay = urkundeOverlay.Replace("{veranstaltungstitel}", viewModel.Einstellungen.Veranstaltungstitel);
urkundeOverlay = urkundeOverlay.Replace("{veranstaltungsort}", viewModel.Einstellungen.Veranstaltungsort);
urkundeOverlay = urkundeOverlay.Replace("{veranstaltungsleitung}", viewModel.Einstellungen.Veranstaltungsleitung);
urkundeOverlay = urkundeOverlay.Replace("{veranstaltungsdatum}", viewModel.Einstellungen.Veranstaltungsdatum.ToString("d"));
urkundeOverlay = urkundeOverlay.Replace("{namelinks}", viewModel.Einstellungen.Namelinks);
urkundeOverlay = urkundeOverlay.Replace("{namerechts}", viewModel.Einstellungen.Namerechts);
urkundeOverlay = urkundeOverlay.Replace("{funktionlinks}", viewModel.Einstellungen.Funktionlinks);
urkundeOverlay = urkundeOverlay.Replace("{funktionrechts}", viewModel.Einstellungen.Funktionrechts);

if (File.Exists(viewModel.Einstellungen.Unterschriftlinks))
{
urkundeOverlay = urkundeOverlay.Replace("{unterschriftlinks}", $"data:image/jpeg;base64,{Bilder.readBase64(viewModel.Einstellungen.Unterschriftlinks)}");
urkundeOverlay = urkundeOverlay.Replace("{unterschriftrechts}", $"data:image/jpeg;base64,{Bilder.readBase64(viewModel.Einstellungen.Unterschriftrechts)}");
}

var juengsteGruppe = viewModel.Gruppen.OrderBy(x => x.GesamtAlterinTagen).First();

urkundeOverlay = urkundeOverlay.Replace("{jugendfeuerwehr}", juengsteGruppe.GruppenName);
urkundeOverlay = urkundeOverlay.Replace("{jahre}", juengsteGruppe.GesamtAlter.ToString());

string pfad = System.IO.Path.Combine(exportPath, $"UrkundeJuengsteGruppe.pdf");
bool erfolgreich = await pDF.ConvertHtmlFileToPdf(urkundeOverlay, pfad);

if (!erfolgreich)
{
MessageBox.Show($"Export der Jüngsten Gruppe fehlgeschlagen!", "Fehler: Export Jüngste Gruppe", MessageBoxButton.OK, MessageBoxImage.Error);
return;
}

ShowExportMessageBox("Export der Jüngsten Gruppe abgeschlossen!\nZielverzeichnis öffnen?",
"Export Urkunden", exportPath);
((Button)sender).IsEnabled = true;
}
catch (Exception ex)
{
((Button)sender).IsEnabled = true;
LOGGING.Write(ex.Message, System.Reflection.MethodBase.GetCurrentMethod().Name, System.Diagnostics.EventLogEntryType.Error);
MessageBox.Show($"Export der Jüngsten Gruppe fehlgeschlagen!\n{ex}", "Fehler: Export Jüngste Gruppe", MessageBoxButton.OK, MessageBoxImage.Error);
}
}

private void ExportGruppenExcel_Click(object sender, RoutedEventArgs e)
{
try
Expand Down Expand Up @@ -593,6 +656,7 @@ private void ExportUrkundenvorlage_Click(object sender, RoutedEventArgs e)
WriteFile.ByteArrayToFile(System.IO.Path.Combine(vorlagenPath, "Urkunde_Original.indd"), BWB_Auswertung.Properties.Resources.UrkundeOriginalTheme1);
WriteFile.writeText(System.IO.Path.Combine(vorlagenPath, "UrkundeOverlay.html"), BWB_Auswertung.Properties.Resources.UrkundeOverlay);
WriteFile.writeText(System.IO.Path.Combine(vorlagenPath, "UrkundeOverlayTheme1.html"), BWB_Auswertung.Properties.Resources.UrkundeOverlayTheme1);
WriteFile.writeText(System.IO.Path.Combine(vorlagenPath, "UrkundeOverlayJuengsteGruppe.html"), BWB_Auswertung.Properties.Resources.UrkundeOverlayJuengsteGruppe);
WriteFile.ByteArrayToFile(System.IO.Path.Combine(vorlagenPath, "Urkundenpapier-Beispiel.pdf"), BWB_Auswertung.Properties.Resources.Urkundenpapier_BeispielDruck);
WriteFile.ByteArrayToFile(System.IO.Path.Combine(vorlagenPath, "Urkundenpapier-Beispiel.indd"), BWB_Auswertung.Properties.Resources.Urkundenpapier_BeispielIndesign);

Expand Down
4 changes: 1 addition & 3 deletions BWB-Auswertung/Views/MainWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -462,11 +462,9 @@ private void SaveData(string savePath, bool deleteOld = false)
List<string> aktuelleDateien = new List<string>();
MainViewModel viewModel = (MainViewModel)this.DataContext;

Regex rgx = new Regex("[^a-zA-Z0-9öäüÄÜÖß ]");

foreach (var gruppe in viewModel.Gruppen)
{
string datei = System.IO.Path.Combine($"{rgx.Replace(gruppe.Feuerwehr, "")} - {rgx.Replace(gruppe.GruppenName, "")}.xml");
string datei = System.IO.Path.Combine($"{gruppe.FeuerwehrOhneSonderzeichen} - {gruppe.GruppennameOhneSonderzeichen}.xml");
WriteFile.writeText(System.IO.Path.Combine(savePath, datei), SerializeXML<Gruppe>.Serialize(gruppe));

//Dateinamen merken um alte löschen zu können
Expand Down

0 comments on commit c7be5df

Please sign in to comment.