internal WeeklyReport(Report actWeekReport, ExtendedCalendar DayPicker, Dictionary <string, string> BaseData) { InitializeComponent(); _daypicker = DayPicker; _actWeekReport = actWeekReport; _daypicker.onDaySelected += new EventHandler <DaySelectedEventArgs>(_daypicker_DaySelected); _baseData = BaseData; _ActiveRTB = tbxCompanyWork; tabControl1.TabIndexChanged += new EventHandler(tabControl1_TabIndexChanged); tbxCompanyWork.KeyPress += new KeyPressEventHandler(tbx_KeyPress); tbxSchoolWork.KeyPress += new KeyPressEventHandler(tbx_KeyPress); tbxTalkWork.KeyPress += new KeyPressEventHandler(tbx_KeyPress); try { ext = new NHunspellExtender.NHunspellTextBoxExtender(); ext.UpdateLanguageFiles("Deutsch", DataManager.GetWorkingDirectory() + "SpellCheck\\de_DE.aff", DataManager.GetWorkingDirectory() + "SpellCheck\\de_DE.dic", false, false); ext.EnableTextBoxBase(new TextBoxBase[] { tbxCompanyWork, tbxSchoolWork, tbxTalkWork }); ext.SpellAsYouType = false; } catch { } _daypicker.SelectedDate = DateTime.Now; _actWeekReport = DataManager.GetReportOfWeek(DateTimeTools.GetActAppWeek(DateTime.Parse(DataManager.LoadBaseData()["beginn"]), DateTime.Now)); if (_actWeekReport == null) { _actWeekReport = new Report(null, DateTimeTools.GetActAppWeek(DateTime.Parse(_baseData["beginn"]), DateTime.Now).ToString(), DateTimeTools.GetWeekOfYear(DateTime.Now).ToString(), DateTime.Now.Year.ToString(), "", "", "", "0"); } fillReport(); }
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); }
internal void FillPreview() { string pre = tbxFilenames.Text; pre = pre.Replace("{KW}", DateTimeTools.GetWeekOfYear(DateTime.Now).ToString()); pre = pre.Replace("{AW}", DateTimeTools.GetActAppWeek(DateTime.Parse(DataManager.LoadBaseData()["beginn"]), DateTime.Now).ToString()); pre = pre.Replace("{WS}", DateTimeTools.getWeekAsDays(DateTimeTools.GetWeekOfYear(DateTime.Now), DateTime.Now.Year)[0].ToShortDateString()); pre = pre.Replace("{WE}", DateTimeTools.getWeekAsDays(DateTimeTools.GetWeekOfYear(DateTime.Now), DateTime.Now.Year)[6].ToShortDateString()); pre = pre.Replace("{VN}", DataManager.LoadBaseData()["vorname"]); pre = pre.Replace("{NN}", DataManager.LoadBaseData()["nachname"]); lblPreview.Text = pre; }
private void loadBaseData() { _baseData = DataManager.LoadBaseData(); if (_baseData.Count != 0) { lblActWeek.Text = DateTimeTools.GetWeekOfYear(DateTime.Now).ToString(); lblWorkWeek.Text = DateTimeTools.GetActAppWeek(DateTime.Parse(_baseData["beginn"]), DateTime.Now).ToString(); lblWorkYear.Text = DateTimeTools.GetActAppYear(DateTime.Parse(_baseData["beginn"]), DateTime.Now).ToString(); lblCompanyName.Text = _baseData["firma"]; lblInstructor.Text = _baseData["ausbilder"]; lblNameOfWork.Text = _baseData["beruf"]; lblWorkSpecialName.Text = _baseData["fachrichtung"]; lblAppStart.Text = _baseData["beginn"]; lblAppEnd.Text = _baseData["ende"]; } }
internal static string SaveWeeklyReport(string ausbwoche, string kalwoche, string jahr, string fullname, string beruf, string fachrichtung, Report report, string firmenname, string abteilung, string ausbilder, string pdfdir) { DateTime[] dtss = DateTimeTools.getWeekAsDays(int.Parse(kalwoche), int.Parse(jahr)); string pre = DataManager.LoadSettings()["FileNames"]; pre = pre.Replace("{KW}", kalwoche); pre = pre.Replace("{AW}", ausbwoche); pre = pre.Replace("{WS}", dtss[0].ToShortDateString()); pre = pre.Replace("{WE}", dtss[dtss.Length - 1].ToShortDateString()); pre = pre.Replace("{VN}", DataManager.LoadBaseData()["vorname"]); pre = pre.Replace("{NN}", DataManager.LoadBaseData()["nachname"]); string newFile = pdfdir + @"\" + pre + ".pdf"; if (!File.Exists(newFile)) { Thread thr = new Thread(SendStats.SendDocumentCreated); thr.Start(); } ; PdfReader pdfReader = new PdfReader(Resources.nachweis_woche.ToArray <byte>()); PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(newFile, FileMode.Create)); AcroFields pdfFormFields = pdfStamper.AcroFields; pdfFormFields.SetField("Ausbildungswoche", ausbwoche); pdfFormFields.SetField("LaufendeWoche", kalwoche); pdfFormFields.SetField("WochenstartDatum", DateTimeTools.getWeekAsDays(int.Parse(kalwoche), int.Parse(jahr))[0].ToShortDateString()); pdfFormFields.SetField("WochenendeDatum", DateTimeTools.getWeekAsDays(int.Parse(kalwoche), int.Parse(jahr))[6].ToShortDateString()); pdfFormFields.SetField("Ausbildungsjahr", jahr); pdfFormFields.SetField("AzubiName", fullname); pdfFormFields.SetField("Abteilung", abteilung); pdfFormFields.SetField("Firmenname", firmenname); pdfFormFields.SetField("Ausbilder", ausbilder); pdfFormFields.SetField("Ausbildungsberuf", beruf); pdfFormFields.SetField("Fachrichtung", fachrichtung); pdfFormFields.SetField("Betrieb", getTextofRTF(report.CompanyText)); pdfFormFields.SetField("Unterweisungen", getTextofRTF(report.InstructionsText)); pdfFormFields.SetField("Berufsschule", getTextofRTF(report.SchoolText)); pdfStamper.FormFlattening = true; pdfStamper.Close(); placeWatermark(newFile); return(newFile); }
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 void _daypicker_DaySelected(object sender, DaySelectedEventArgs e) { //Prüfen ob der aktuelle Text geändert wurde if (checkLeaveEditor()) { gpEdit.Enabled = true; if (e.SelectedDate < DateTime.Parse(DataManager.LoadBaseData()["ende"]) && int.Parse(_actWeekReport.YearWeekNumber) != DateTimeTools.GetWeekOfYear(e.SelectedDate)) { _actWeekReport = DataManager.GetReportOfWeek(DateTimeTools.GetActAppWeek(DateTime.Parse(DataManager.LoadBaseData()["beginn"]), e.SelectedDate)); if (_actWeekReport == null) { _actWeekReport = new Report(null, DateTimeTools.GetActAppWeek(DateTime.Parse(_baseData["beginn"]), e.SelectedDate).ToString(), DateTimeTools.GetWeekOfYear(e.SelectedDate).ToString(), e.SelectedDate.Year.ToString(), "", "", "", "0"); } fillReport(); cbxDelivered.Checked = _actWeekReport.Delivered == "1" ? true : false; } _changed = false; } }
internal void fillReportedDays() { ReportedWeek[] rws = DataManager.getAllReportedWeeks(); foreach (ReportedWeek rw in rws) { DateTime[] WeekDaysReported = DateTimeTools.getWeekAsDays(rw.Week, rw.Year); foreach (DateTime day in WeekDaysReported) { if (!_daypicker.MarkedDates.ContainsKey(day)) { _daypicker.MarkedDates.Add(day, rw.Delivered ? Color.Blue : Color.Green); } else { _daypicker.MarkedDates[day] = rw.Delivered ? Color.Blue : Color.Green; } } } _daypicker.ColorDates(); }
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); }
void StartProgram() { try { Padding = new System.Windows.Forms.Padding(0, 0, 0, 5); AddDayPicker(); LoadBlocks(); lblLocalVersionShortCut.Text = "Deine Version: " + Application.ProductVersion; //Updater herunterladen if (File.Exists(DataManager.GetWorkingDirectory() + "\\Updater.exe")) { File.Delete(DataManager.GetWorkingDirectory() + "\\Updater.exe"); } if (MiscTools.CheckFilesystem()) { InternalSetup.setupAssist(0, ref _settings); } _settings = DataManager.LoadSettings(); InternalSetup.setupAssist(int.Parse(_settings["lastUndoneSetupStep"]), ref _settings); foreach (RatingItem ri in icRatings.SubItems) { if (_settings.ContainsKey(ri.Name)) { ri.RatingValue = int.Parse(_settings[ri.Name]); } } if (!_settings.ContainsKey("FileNames")) { _settings.Add("FileNames", "Bericht {AW} von {WS} - {WE}"); } DataManager.SaveSettings(_settings); cbxAutoUpdate.Checked = _settings["AutoUpdate"] == "1" ? true : false; loadBaseData(); if (_settings["ReportType"] == "dayly" || _settings["ReportType"] == "dayly+sa") { _actReport = DataManager.GetReportOfDate(DateTime.Now); if (_actReport == null) { _actReport = new Report(null, DateTime.Now.ToShortDateString(), "", "", "", "", "", "", "0", null, null); } DaylyReport dr = new DaylyReport(daypicker); btnSave.Click += new System.EventHandler(dr.SaveAsPDF); btnSpellcheck.Click += new EventHandler(dr.SetSpellCheckEnabled); dr.Dock = DockStyle.Fill; panelReport.Controls.Add(dr); dr.fillReportedDays(); ReportElement = dr; } else if (_settings["ReportType"] == "weekly") { _actReport = DataManager.GetReportOfWeek(DateTimeTools.GetActAppWeek(DateTime.Parse(DataManager.LoadBaseData()["beginn"]), DateTime.Now)); if (_actReport == null) { _actReport = new Report(null, DateTimeTools.GetWeekOfYear(DateTime.Now).ToString(), DateTimeTools.GetWeekOfYear(DateTime.Now).ToString(), DateTime.Now.Year.ToString(), "", "", "", ""); } WeeklyReport wr = new WeeklyReport(_actReport, daypicker, _baseData); btnSave.Click += new System.EventHandler(wr.SaveAsPDF); btnSpellcheck.Click += new EventHandler(wr.SetSpellCheckEnabled); wr.Dock = DockStyle.Fill; panelReport.Controls.Add(wr); wr.fillReportedDays(); ReportElement = wr; } else { InternalSetup.setupAssist(2, ref _settings); } fillGUI(daypicker.SelectedDate); addEvents(); Thread start = new Thread(SendStats.SendStart); start.Start(); Thread checkv = new Thread(checkVersion); checkv.Start(); } catch (Exception exception) { MessageBox.Show(exception.ToString()); Environment.Exit(0); } }