Example #1
0
        /// <summary>
        /// Lege neues Modell an
        /// </summary>
        /// <param name="booking">zugehörige Buchung</param>
        /// <param name="lastCashClosure">Datum letzter Kassenabschluss</param>
        public BookingDataGridModel(Booking booking, DateTime lastCashClosure)
        {
            this.booking = booking;
            this.bookingID = booking.BookingID;
            this.amount = SafeStringParser.safeParseToMoney(booking.Amount, true);
            this.amountDOUBLE = booking.Amount;
            this.date = booking.Date;
            this.dateString = SafeStringParser.safeParseToStr(booking.Date, true);
            this.description = SafeStringParser.safeParseToStr(booking.Description);
            this.sourceAccountString = SafeStringParser.safeParseToStr(booking.SourceAccount.Name) + " (" + SafeStringParser.safeParseToStr(booking.SourceAccount.Number) + ")";
            this.targetAccountString = SafeStringParser.safeParseToStr(booking.TargetAccount.Name) + " (" + SafeStringParser.safeParseToStr(booking.TargetAccount.Number) + ")";
            this.sourceAccountNumber = SafeStringParser.safeParseToStr(booking.SourceAccount.Number);
            this.targetAccountNumber = SafeStringParser.safeParseToStr(booking.TargetAccount.Number);
            this.sourceAccountNumberINT = booking.SourceAccount.Number;
            this.targetAccountNumberINT = booking.TargetAccount.Number; this.sourceAccountName = SafeStringParser.safeParseToStr(booking.SourceAccount.Name);
            this.targetAccountName = SafeStringParser.safeParseToStr(booking.TargetAccount.Name);
            this.sourceAccountIsOfficial = booking.SourceAccount.IsOfficial;
            this.targetAccountIsOfficial = booking.TargetAccount.IsOfficial;
            this.sourceAccountIsCapital = booking.SourceAccount.IsCapital;
            this.targetAccountIsCapital = booking.TargetAccount.IsCapital;

            if (booking.UserAccount != null)
                this.user = SafeStringParser.safeParseToStr(booking.UserAccount.Username);
            else
                this.user = "";

            if (booking.Person != null)
                this.customer = SafeStringParser.safeParseToStr(booking.Person.TableNo);
            else
                this.customer = "";

            // Korrekturbuchung-Button wird nur angezeigt wenn Datum vor dem letzten Kassenschluss
            if (booking.Date <= lastCashClosure)
                this.visibilityCorrection = Visibility.Visible;
            else
                this.visibilityCorrection = Visibility.Hidden;

            // Löschen/Edit-Button wird nur angezeigt wenn Datum nach dem letzten Kassenschluss
            if (booking.Date > lastCashClosure)
            {
                this.visibilityDelete = Visibility.Visible;
                this.visibilityEdit = Visibility.Visible;
            }
            else
            {
                this.visibilityDelete = Visibility.Hidden;
                this.visibilityEdit = Visibility.Hidden;
            }

            // Korrekturbuchungen sind nicht editierbar/korrigierbar
            if (booking.IsCorrection)
            {
                this.visibilityEdit = Visibility.Hidden;
                this.visibilityCorrection = Visibility.Hidden;
            }
        }
Example #2
0
        public pEditBooking(Booking booking)
        {
            if (booking == null)
            {
                throw new Exception("Booking cannot be null.");
            }

            InitializeComponent();
            this.validator = new ValidationTools();
            this.currentBooking = booking;

            // Fülle Felder
            fillFieldsWithSavedData(booking);
        }
Example #3
0
        public static int correct(Booking booking)
        {
            if (booking.IsCorrection)
                return -1;

            if (booking.Date > BookingsHelper.getDateOfLastCashClosure())
                return -2;

            int newSourceAccountID = booking.TargetAccount.AccountID;
            int newTargetAccountID = booking.SourceAccount.AccountID;
            double amount = booking.Amount;
            string description = "#" + booking.BookingID + " " + IniParser.GetSetting("ACCOUNTING", "negativeBooking") +
                booking.SourceAccount.Number + " -> " +
                booking.TargetAccount.Number + ": " + amount + IniParser.GetSetting("APPSETTINGS", "currency");

            int bookingID = Booking.Add(newSourceAccountID, newTargetAccountID, amount, null, UserSession.userAccountID, description, true);
            if (bookingID < 0)
                return -3;

            return 0;
        }
Example #4
0
        /// <summary>
        /// Speichert einen neuen Eintrag in der Datenbank
        /// </summary>
        /// <param name="accountID">Konto ID welche benötigt wird</param>
        /// <param name="date">Datum des Eintrags</param>
        /// <param name="amount">Betrag des Eintrags</param>
        /// <param name="purchase"></param>
        /// <param name="srcAccountNumber">Quell Kontonummer</param>
        /// <param name="targetAccountNumber">Ziel Kontonummer</param>
        /// <param name="teamId">Optionale Team ID</param>
        /// <param name="sponsorId">Optionale Sponsor ID</param>
        /// <param name="description">Optionale Beschreibung</param>
        /// <param name="isRevenue">Boolean Wert ob es sich um ein Einkommen oder Ausgabe handelt</param>
        /// <returns>Gibt die ID des gespeicherten Eintrags in der Datenbank zurück</returns>
        public static int Add(int srcAccountID, int targetAccountID,
            double amount, int? personID = null, int? userAccountID = null, string description = null, bool isCorrection = false)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var booking = new Booking()
                {
                    Date = DateTime.Now,
                    Description = description,
                    SourceAccount = db.Accounts.Single(a => a.AccountID == srcAccountID),
                    TargetAccount = db.Accounts.Single(a => a.AccountID == targetAccountID),
                    UserAccount = (userAccountID.HasValue) ? db.UserAccounts.Single(u => u.UserAccountID == userAccountID.Value) : null,
                    Amount = amount,
                    IsCorrection = isCorrection,
                    Person = (personID.HasValue) ? db.Persons.Single(p => p.PersonID == personID.Value) : null,
                };

                db.Bookings.AddObject(booking);
                db.SaveChanges();

                return booking.BookingID;
            }
        }
Example #5
0
 /// <summary>
 /// Felder ausfüllen
 /// </summary>
 /// <param name="booking">Buchung</param>
 private void fillFieldsWithSavedData(Booking booking)
 {
     List<Account> accounts = Account.GetAccounts().ToList();
     int selectedSourceAccountIndex = 0, i = 0;
     foreach (var account in accounts)
     {
         if (booking.SourceAccount.AccountID == account.AccountID)
             selectedSourceAccountIndex = i;
         i++;
     }
     int selectedTargetAccountIndex = 0, j = 0;
     foreach (var account in accounts)
     {
         if (booking.TargetAccount.AccountID == account.AccountID)
             selectedTargetAccountIndex = j;
         j++;
     }
     cbSourceAccount.ItemsSource = accounts;
     cbTargetAccount.ItemsSource = accounts;
     cbSourceAccount.SelectedIndex = selectedSourceAccountIndex;
     cbTargetAccount.SelectedIndex = selectedTargetAccountIndex;
     tbAmount.Text = booking.Amount.ToString();
     tbDescription.Text = booking.Description;
 }
Example #6
0
 /// <summary>
 /// Erstellt ein neues Booking-Objekt.
 /// </summary>
 /// <param name="bookingID">Anfangswert der Eigenschaft BookingID.</param>
 /// <param name="amount">Anfangswert der Eigenschaft Amount.</param>
 /// <param name="date">Anfangswert der Eigenschaft Date.</param>
 /// <param name="isCorrection">Anfangswert der Eigenschaft IsCorrection.</param>
 public static Booking CreateBooking(global::System.Int32 bookingID, global::System.Double amount, global::System.DateTime date, global::System.Boolean isCorrection)
 {
     Booking booking = new Booking();
     booking.BookingID = bookingID;
     booking.Amount = amount;
     booking.Date = date;
     booking.IsCorrection = isCorrection;
     return booking;
 }
Example #7
0
 /// <summary>
 /// Veraltete Methode zum Hinzufügen eines neuen Objekts zum EntitySet 'Bookings'. Verwenden Sie stattdessen die Methode '.Add' der zugeordneten Eigenschaft 'ObjectSet&lt;T&gt;'.
 /// </summary>
 public void AddToBookings(Booking booking)
 {
     base.AddObject("Bookings", booking);
 }