/// <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; } }
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); }
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; }
/// <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; } }
/// <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; }
/// <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; }
/// <summary> /// Veraltete Methode zum Hinzufügen eines neuen Objekts zum EntitySet 'Bookings'. Verwenden Sie stattdessen die Methode '.Add' der zugeordneten Eigenschaft 'ObjectSet<T>'. /// </summary> public void AddToBookings(Booking booking) { base.AddObject("Bookings", booking); }