Exemplo n.º 1
0
Arquivo: Model.cs Projeto: swiss16/bhs
 /// <summary>
 /// Erstellt eine Erfolgsrechnung, gemäss dem angebenen Jahr (int). Gibt das Erfolgsrechnungobjekt zurück.
 /// </summary>
 /// <param name="jahr"></param>
 /// <returns></returns>
 public Erfolgsrechnung ErstelleErfolgsrechnung(int jahr)
 {
     if (jahr < 2014)
     {
         erfolgsrechnung = new Erfolgsrechnung();
         Logger.append("Falsche Jahresangabe. Muss mindestens ab 2014 sein!", Logger.INFO);
         MessageBox.Show("Fehler beim erstellen der Erfolgsrechnung. Mehr Informationen sind im Logfile",
                         "Erfolgsrechnung fehler", MessageBoxButton.OK, MessageBoxImage.Error);
     }
     else
     {
         DateTime dts = new DateTime(jahr, 1, 1, 00, 00, 00);
         DateTime dte = new DateTime(jahr, 12, 31, 23, 59, 59);
         erfolgsrechnung = ErstelleErfolgsrechnung(dts, dte, true);
     }
     return(erfolgsrechnung);
 }
Exemplo n.º 2
0
Arquivo: Model.cs Projeto: swiss16/bhs
        /// <summary>
        /// Speichert die Erfolgsrechnung, gemäss dem Erfolgsrechnungsobjekt im Dateisystem ab. Gibt True zurück, wenn es erfolgreich war.
        /// </summary>
        /// <param name="aktuelleErfolgsrechnung"></param>
        /// <returns></returns>
        public bool SpeichereErfolgsrechnung(Erfolgsrechnung aktuelleErfolgsrechnung)
        {
            bool isSuccessfull = false;

            if (aktuelleErfolgsrechnung != null)
            {
                try
                {
                    isSuccessfull = aktuelleErfolgsrechnung.Print();
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.ToString(), "Erfolgsrechnungs Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    return(false);
                }
            }
            if (!isSuccessfull)
            {
                MessageBox.Show("Es ist ein Fehler beim speichern der Erfolgsrechnung aufgetreten. Mehr Informationen stehen im Logfile", "Erfolgsrechnung speichern Fehlgeschlagen", MessageBoxButton.OK, MessageBoxImage.Error);
            }

            return(isSuccessfull);
        }
Exemplo n.º 3
0
Arquivo: Model.cs Projeto: swiss16/bhs
        //Private Methoden
        /// <summary>
        /// Erstellt eine Erfolgsrechnung, gemäss dem angegebenen Start und Enddatum. Gibt ein Erfolgsrechnungsobjekt zurück.
        /// </summary>
        /// <param name="startDatum"></param>
        /// <param name="endDatum"></param>
        /// <param name="istJahresabrechnung"></param>
        /// <returns></returns>
        private Erfolgsrechnung ErstelleErfolgsrechnung(DateTime startDatum, DateTime endDatum, bool istJahresabrechnung)
        {
            if (startDatum.Year < 2014 || endDatum <= startDatum)
            {
                erfolgsrechnung = new Erfolgsrechnung();
                Logger.append("Falsche Jahresangabe. Muss mindestens ab 2014 sein und das Enddatum muss später als das Startdatum sein!", Logger.INFO);
                MessageBox.Show("Fehler beim erstellen der Erfolgsrechnung. Mehr Informationen sind im Logfile",
                                "Erfolgsrechnung fehler", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            else
            {
                erfolgsrechnung    = new Erfolgsrechnung();
                erfolgsrechnung.ID = 1;
                if (istJahresabrechnung)
                {
                    erfolgsrechnung.IstJahresabrechnung = true;
                }
                erfolgsrechnung.StartDatum = startDatum;
                erfolgsrechnung.EndDatum   = endDatum;
                LadeAuftraege();
                LadeRechnungen();
                LadeRueckzahlungen();

                #region Ein-undAusgabenListen
                //Einnahmen
                decimal _tempPreisAuftraege = 0.00m;

                foreach (var auftrag in auftragsListe.Where(i => (i.Datum.Date >= startDatum.Date) && (i.Datum.Date <= endDatum.Date)) ?? new List <Auftrag>())
                {
                    _tempPreisAuftraege += auftrag.Total;
                }
                erfolgsrechnung.Einnahmen.Add(new Betraege {
                    BetragInFranken = _tempPreisAuftraege, Kategorie = "Dienstleistung"
                });
                foreach (var rueckerstattung in rueckzahlungsListe.Where(i => (i.Datum.Date >= startDatum.Date) && (i.Datum.Date <= endDatum.Date)) ?? new List <Rechnung>())
                {
                    if (erfolgsrechnung.Einnahmen.Any(i => i.Kategorie.Contains(rueckerstattung.Kategorie)))
                    {
                        erfolgsrechnung.Einnahmen.First(i => i.Kategorie.Contains(rueckerstattung.Kategorie))
                        .BetragInFranken += rueckerstattung.Betrag;
                    }
                    else
                    {
                        erfolgsrechnung.Einnahmen.Add(new Betraege {
                            BetragInFranken = rueckerstattung.Betrag, Kategorie = string.Format("Rückerstattung {0}", rueckerstattung.Kategorie)
                        });
                    }
                }
                //Hinweis für Kannziel: Gutschein Verkauf gleich wie oben implementieren, aber als Kategorie "Verkauf" angeben

                //Ausgaben
                foreach (var rechnung in rechnungsListe.Where(i => (i.Datum.Date >= startDatum.Date) && (i.Datum.Date <= endDatum.Date)) ?? new List <Rechnung>())
                {
                    if (erfolgsrechnung.Ausgaben.Any(i => i.Kategorie.Contains(rechnung.Kategorie)))
                    {
                        erfolgsrechnung.Ausgaben.First(i => i.Kategorie.Contains(rechnung.Kategorie)).BetragInFranken
                            += rechnung.Betrag;
                    }
                    else
                    {
                        erfolgsrechnung.Ausgaben.Add(new Betraege {
                            BetragInFranken = rechnung.Betrag, Kategorie = rechnung.Kategorie
                        });
                    }
                }
                #endregion

                erfolgsrechnung.Update();
            }

            return(erfolgsrechnung);
        }
Exemplo n.º 4
0
Arquivo: Model.cs Projeto: swiss16/bhs
 /// <summary>
 /// Erstellt eine Erfolgsrechnung, gemäss dem angegebenen Start und Enddatum. Gibt ein Erfolgsrechnungsobjekt zurück.
 /// </summary>
 /// <param name="startDatum"></param>
 /// <param name="endDatum"></param>
 /// <returns></returns>
 public Erfolgsrechnung ErstelleErfolgsrechnung(DateTime startDatum, DateTime endDatum)
 {
     erfolgsrechnung = ErstelleErfolgsrechnung(startDatum, endDatum, false);
     return(erfolgsrechnung);
 }