123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- using System;
- using System.ComponentModel;
- using System.Diagnostics;
- using System.Globalization;
- using System.IO;
- using System.Windows;
- using System.Windows.Controls;
- using GCHR.Control;
- using GCHR.Control.Tasks;
- using GCHR.Model;
- using GCHR.View;
- namespace GCHR
- {
- public partial class Main
- {
- private TaskManager _aufgabenListe;
-
- private bool ImportdatenSichern
- {
- get { return (BtnImportdatenSichern.IsChecked != null) && (bool) BtnImportdatenSichern.IsChecked; }
- }
- private bool Offlinemodus
- {
- get { return (BtnOffline.IsChecked != null) && (bool)BtnOffline.IsChecked; }
- }
- private bool Exportprotokoll
- {
- get { return false; }
- }
- private bool KeinJahresabschluss
- {
- get { return (BtnKeinJahresabschluss.IsChecked != null) && (bool)BtnKeinJahresabschluss.IsChecked; }
- }
- public Main()
- {
- InitializeComponent();
- }
- private void WindowLoaded(object sender, RoutedEventArgs e)
- {
- var config = Konfiguration.CreateInstance(Constants.ConfigDatei);
- Logger.Info(DateTime.Now + " GCHR gestartet.");
-
- AktuellenMonatEinstellen();
- Kopfzeile.Content = config.Haendler + " - " + config.Mandantenname;
-
- }
- private void AktuellenMonatEinstellen()
- {
- Jahrbox.Items.Clear();
- for (var i = 2010; i <= DateTime.Today.Year; i++)
- {
- Jahrbox.Items.Add(i);
- }
- var aktPeriode = aktuellenMonatBestimmen();
- Monatsbox.SelectedIndex = Int32.Parse(aktPeriode.Monat) - 1;
- Jahrbox.SelectedValue = Int32.Parse(aktPeriode.Jahr);
- }
- private Periode aktuellenMonatBestimmen()
- {
- var neuerMonat =
- new Periode(DateTime.Today.Year +
- DateTime.Today.Month.ToString(CultureInfo.InvariantCulture).PadLeft(2, '0'));
- var monateZurueck = DateTime.Today.Month;
- if (monateZurueck <= 2)
- {
- monateZurueck += 12;
- }
- for (var i = 0; i < monateZurueck; i++)
- {
- neuerMonat = neuerMonat.Vorgaenger;
- if (!File.Exists(neuerMonat.Vorgaenger.BalanceDatei)) continue;
- var aelterAlsFuenfTage =
- File.GetLastWriteTime(neuerMonat.Vorgaenger.BalanceDatei).AddDays(5).CompareTo(DateTime.Now) <= 0;
- return (aelterAlsFuenfTage) ? neuerMonat : neuerMonat.Vorgaenger;
- }
- return neuerMonat.Nachfolger;
- }
- private void BtnStartenClick(object sender, RoutedEventArgs e)
- {
- BtnStarten.IsEnabled = false;
- AufgabenListeErstellen();
- AmpelnRegistrieren();
- _aufgabenListe.TryRunNextWorker();
- }
- private string PeriodeAusAuswahl()
- {
- var monat = (Monatsbox.SelectedIndex + 1).ToString(CultureInfo.InvariantCulture).PadLeft(2, '0');
- return Jahrbox.Text + monat;
- }
- private void AufgabenListeErstellen()
- {
- _aufgabenListe = new TaskManager
- {
- Data =
- {
- ImportdatenSichern = ImportdatenSichern,
- Offlinemodus = Offlinemodus,
- Exportprotokoll = Exportprotokoll,
- KeinJahresabschluss = KeinJahresabschluss
- }
- };
- _aufgabenListe.CreateTasks(Ablaufsteuerung, new Periode(PeriodeAusAuswahl(), KeinJahresabschluss));
- }
- private void AmpelnRegistrieren()
- {
- var ampeln = new[]
- {
- AmpelKontenrahmenLaden, AmpelÜbersetzungstabelleLaden,
- AmpelÜbersetzungstabelleStatLaden,
- AmpelManuelleLaden, AmpelSuSaKontenImport, AmpelStatKontenImport,
- AmpelSuSaKontenVerarbeitung,
- AmpelManuelleKontenVerarbeitung, AmpelExport
- };
- _aufgabenListe.RegisterAmpeln(ampeln);
- }
- private void Ablaufsteuerung(object s, RunWorkerCompletedEventArgs e)
- {
- var aktuellerWorker = (BackgroundWorker)s;
- var aktuelleAufgabe = _aufgabenListe.GetAufgabeByWorker(aktuellerWorker);
- if (e.Error != null)
- {
- BtnStarten.IsEnabled = true;
- }
- else
- {
- if (aktuelleAufgabe.ID == 3 && AmpelManuelleLaden.Done)
- {
- var mkb = new ManuelleKontenBearbeiten(_aufgabenListe.Data.GetManuelleKonten());
- mkb.Closed += ManuelleKontenBearbeitenClosed;
- mkb.Show();
- }
- if (aktuelleAufgabe.ID == 8)
- {
- BtnStarten.IsEnabled = true;
- BtnProtokoll.Visibility = Visibility.Visible;
- }
- }
- }
- private void ManuelleKontenBearbeitenClosed(object sender, EventArgs e)
- {
- var mkb = (ManuelleKontenBearbeiten)sender;
- _aufgabenListe.Data.SetManuelleKonten(mkb.ManuelleKonten);
- _aufgabenListe.Data.AufManuelleKontenWarten.Set();
- }
- #region Events für Checkboxen
- private void BtnOfflineChecked(object sender, RoutedEventArgs e)
- {
- var chk = sender as CheckBox;
- BtnImportdatenSichern.IsChecked = false;
- if (chk != null && chk.IsChecked != null) BtnImportdatenSichern.IsEnabled = !(bool)chk.IsChecked;
- }
- private void BtnImportdatenSichernChecked(object sender, RoutedEventArgs e)
- {
- BtnOffline.IsChecked = false;
- BtnOffline.Visibility = Visibility.Hidden;
- }
- private void BtnImportdatenSichernUnchecked(object sender, RoutedEventArgs e)
- {
- BtnOffline.Visibility = Visibility.Visible;
- }
- #endregion
- private void BtnProtokollClick(object sender, RoutedEventArgs e)
- {
- var dateiInfo = new FileInfo(Logger.ExportLog);
- if (dateiInfo.Directory == null) return;
- var psi = new ProcessStartInfo("explorer.exe", dateiInfo.Directory.ToString())
- {
- RedirectStandardOutput = true,
- WindowStyle = ProcessWindowStyle.Normal,
- UseShellExecute = false
- };
- Process.Start(psi);
- }
- }
- }
|