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();
 }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
            }
        }