internal string Save() { string file = string.Empty; if (SaveReport()) { Report[] reports = DataManager.getWeeklyReports(DateTimeTools.GetWorkWeekStartAndEnd(_daypicker.SelectedDate)[0], (DataManager.LoadSettings()["ReportType"] == "dayly") ? false : true); Dictionary <string, string> _baseData = DataManager.LoadBaseData(); if (reports[0] == null || reports[1] == null || reports[2] == null || reports[3] == null || reports[4] == null) { MessageBox.Show("Bitte erfassen Sie die Woche erst vollständig bevor Sie sie als PDF Speichern!", "Woche nicht vollständig!", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { file = PDF.SaveDaylyReport ( DateTimeTools.GetActAppWeek(DateTime.Parse(_baseData["beginn"]), DateTime.Parse(_actDayReport.Date)).ToString(), DateTimeTools.GetWeekOfYear(DateTime.Parse(reports[1].Date)).ToString(), DateTimeTools.GetActAppYear(DateTime.Parse(_baseData["beginn"]), DateTime.Parse(reports[1].Date)).ToString(), _baseData["nachname"] + ", " + _baseData["vorname"], _baseData["beruf"], _baseData["fachrichtung"], reports, _baseData["firma"], DataManager.LoadSettings()["PDFDir"], _baseData["ausbilder"], _baseData["abteilung"] ); } } return(file); }
private void fillGUI(DateTime date) { if (date.Ticks >= DateTimeTools.GetWorkWeekStartAndEnd(DateTime.Parse(_baseData["beginn"]))[0].Ticks) { if (_baseData.Count != 0) { this.Text = "Digitaler Ausbildungsbericht - " + date.ToShortDateString(); lblActWeek.Text = DateTimeTools.GetWeekOfYear(date).ToString(); string ausbwoche = string.Empty; DateTime beginnDate = DateTime.Parse(DataManager.LoadBaseData()["beginn"]); DateTime[] dta = DateTimeTools.GetWorkWeekStartAndEnd(date); if (dta[0].Month < beginnDate.Month) { ausbwoche = "1"; } else { ausbwoche = DateTimeTools.GetActAppWeek(DateTime.Parse(_baseData["beginn"]), date).ToString(); } lblWorkWeek.Text = ausbwoche; int year = DateTimeTools.GetActAppYear(DateTime.Parse(_baseData["beginn"]), date); if (year == 0) { year = 1; } lblWorkYear.Text = year.ToString(); panelReport.Enabled = ((_settings["ReportType"] == "dayly" && date.DayOfWeek == DayOfWeek.Saturday) || date.DayOfWeek == DayOfWeek.Sunday) ? false : true; lblWeekStart.Text = DateTimeTools.GetWorkWeekStartAndEnd(date)[0].ToShortDateString(); lblWeekEnd.Text = DateTimeTools.GetWorkWeekStartAndEnd(date)[1].ToShortDateString(); } else { InternalSetup.setupAssist(1, ref _settings); } } else { panelReport.Enabled = false; } }
internal static string SaveDaylyReport(string ausbwoche, string kalwoche, string jahr, string fullname, string beruf, string fachrichtung, Report[] reports, string firmenname, string saveDir, string ausbilder, string abteilung) { /* "{KW} = Kalenderwoche"+Environment.NewLine+ * "{AW} = Ausbildungswoche"+Environment.NewLine+ * "{WS} = Woche Startdatum"+Environment.NewLine+ * "{WE} = Woche Enddatum"+Environment.NewLine+ * "{VN} = Dein Vorname"+Environment.NewLine+ * "{NN} = Dein Nachnachname"+Environment.NewLine+ */ string pre = DataManager.LoadSettings()["FileNames"]; pre = pre.Replace("{KW}", kalwoche); pre = pre.Replace("{AW}", ausbwoche); pre = pre.Replace("{WS}", reports[0].Date); pre = pre.Replace("{WE}", reports[5] != null ? reports[reports.Length - 2].Date : reports[reports.Length - 3].Date); pre = pre.Replace("{VN}", DataManager.LoadBaseData()["vorname"]); pre = pre.Replace("{NN}", DataManager.LoadBaseData()["nachname"]); string newFile = saveDir + "\\" + pre + ".pdf"; byte[] file = reports[5] != null?Resources.nachweis_samstag.ToArray <byte>() : Resources.nachweis.ToArray <byte>(); if (!File.Exists(newFile)) { Thread thr = new Thread(SendStats.SendDocumentCreated); thr.Start(); } else if (MessageBox.Show("Die Datei exisistiert bereits, möchten Sie diese überschreiben?", "Datei bereits vorhanden", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return(string.Empty); } PdfReader pdfReader = new PdfReader(file); PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(newFile, FileMode.Create)); try { AcroFields pdfFormFields = pdfStamper.AcroFields; decimal gesWorkHours = 0; decimal gesAwayHours = 0; List <string> abteilungen = new List <string>(); foreach (Report r in reports) { if (r != null) { gesWorkHours += decimal.Parse(r.WorkHours); gesAwayHours += decimal.Parse(r.AwayHours); if (!abteilungen.Contains(r.Division) && r.Division != "---") { abteilungen.Add(r.Division); } } } string abt = ""; foreach (string s in abteilungen) { abt += s + ","; } abt = abt.TrimEnd(','); abt = abt.Replace("Work", abteilung); abt = abt.Replace("School", "Berufsschule"); DateTime beginnDate = DateTime.Parse(DataManager.LoadBaseData()["beginn"]); DateTime[] dta = DateTimeTools.GetWorkWeekStartAndEnd(beginnDate); if (dta[0].Month < beginnDate.Month) { ausbwoche = (int.Parse(ausbwoche) + 1).ToString(); } pdfFormFields.SetField("Ausbildungsnachweis über Ausbildungswoche Nr", ausbwoche); pdfFormFields.SetField("LW Nr", kalwoche); pdfFormFields.SetField("vom", reports[0].Date); pdfFormFields.SetField("bis zum", reports[5] != null ? reports[5].Date : reports[4].Date); pdfFormFields.SetField("im", jahr); pdfFormFields.SetField("Name", fullname); pdfFormFields.SetField("Ausbildungsberuf", beruf); pdfFormFields.SetField("Ausbildende Abteilung", abt); pdfFormFields.SetField("Fachrichtung", fachrichtung); pdfFormFields.SetField("Ausbildende Firma", firmenname); pdfFormFields.SetField("Ausbilder", ausbilder); pdfFormFields.SetField("Ausgeführte Arbeiten Unterweisungen Unterricht in der Berufsschule uswRow1", getTextofRTF(reports[0].ReportText)); pdfFormFields.SetField("Gesamt StundenRow1", reports[0].WorkHours); pdfFormFields.SetField("Ausgeführte Arbeiten Unterweisungen Unterricht in der Berufsschule uswRow2", getTextofRTF(reports[1].ReportText)); pdfFormFields.SetField("Gesamt StundenRow2", reports[1].WorkHours); pdfFormFields.SetField("Ausgeführte Arbeiten Unterweisungen Unterricht in der Berufsschule uswRow3", getTextofRTF(reports[2].ReportText)); pdfFormFields.SetField("Gesamt StundenRow3", reports[2].WorkHours); pdfFormFields.SetField("Ausgeführte Arbeiten Unterweisungen Unterricht in der Berufsschule uswRow4", getTextofRTF(reports[3].ReportText)); pdfFormFields.SetField("Gesamt StundenRow4", reports[3].WorkHours); pdfFormFields.SetField("Ausgeführte Arbeiten Unterweisungen Unterricht in der Berufsschule uswRow5", getTextofRTF(reports[4].ReportText)); pdfFormFields.SetField("Gesamt StundenRow5", reports[4].WorkHours); if (reports[5] != null) { pdfFormFields.SetField("Ausgeführte Arbeiten Unterweisungen Unterricht in der Berufsschule uswRow6", (getTextofRTF(reports[5].ReportText))); pdfFormFields.SetField("Gesamt StundenRow6", reports[5].WorkHours); } //42/40 Rows, 7*6 bei 6 tagen und 8*5 bei 5 tagen int x = 0; int currReport = -1; for (int i = 1; i <= (reports[5] != null ? 40 : 42); i++) { if (x % (reports[5] != null ? 7 : 8) == 0) { x = 0; currReport++; } if (reports[currReport] != null) { try { if (reports[currReport].SingleHours != null) { if (reports[currReport].SingleHours[x] != "0" && reports[currReport].SingleHours[x] != "0,0") { pdfFormFields.SetField("Einzel stundenRow" + i.ToString(), reports[currReport].SingleHours[x]); } } } catch (Exception e) { MessageBox.Show(e.ToString(), "Fehler bei Einzelstunden-Verarbeitung"); } } x++; } pdfFormFields.SetField("BemerkungRow1", reports[0].Comments[0]); pdfFormFields.SetField("BemerkungRow2", reports[0].Comments[1]); pdfFormFields.SetField("Gesamt StundenFehl stunden", gesAwayHours.ToString()); pdfFormFields.SetField("Gesamt StundenAus Bildungs stunden", gesWorkHours.ToString()); pdfFormFields.SetField("Datum", "Dieser Bericht wurde am " + DateTime.Now.ToShortDateString() + " erstellt."); pdfStamper.FormFlattening = true; pdfStamper.Close(); } catch (Exception e) { MessageBox.Show(e.ToString(), "Fehler bei Bericht speichern"); //MessageBox.Show("Die Datei konnte nicht geöffnet werden, da sie im Moment in Verwendung ist (bitte die Datei schließen)", "Fehler beim Schreiben der Datei."); } finally { pdfStamper.FormFlattening = true; pdfStamper.Close(); } Thread.Sleep(500); placeWatermark(newFile); return(newFile); }