/// <summary> /// Saves a new Ausgangsrechnung within the database /// </summary> /// <param name="projektID">The connected ProjektID</param> /// <param name="unpaidBalance">The amount of money which the Ausgangsrechnung shall include</param> /// <param name="rechnungstitelString">The title of the Ausgangsrechnung</param> public void CreateAusgangsrechnung(int projektID, double unpaidBalance, string rechnungstitelString) { // create business objects for Ausgangsrechnung, Ausgangsbuchung & Buchungszeilen AusgangsrechnungTable rechnung = new AusgangsrechnungTable(); AusgangsbuchungTable buchung = new AusgangsbuchungTable(); BuchungszeilenTable zeile = new BuchungszeilenTable(); // fill with values and validate rechnung.ProjektID = projektID; rechnung.Rechnungsdatum = DateTime.Now.ToShortDateString(); rechnung.Bezeichnung = rechnungstitelString; zeile.BetragNetto = unpaidBalance; zeile.Bezeichnung = rechnungstitelString; zeile.Buchungsdatum = rechnung.Rechnungsdatum; // initialise Rule objects PositiveIntValidator piv = new PositiveIntValidator(); PositiveDoubleValidator pdv = new PositiveDoubleValidator(); LettersNumbersHyphenSpaceValidator lnhsv = new LettersNumbersHyphenSpaceValidator(); StringLength150Validator slv = new StringLength150Validator(); // evaluate ProjektID piv.Eval(rechnung.ProjektID); if (piv.HasErrors) { throw new InvalidInputException("ProjektID ungültig!"); } // evaluate Bezeichnung lnhsv.Eval(rechnung.Bezeichnung); slv.Eval(rechnung.Bezeichnung); if (lnhsv.HasErrors || slv.HasErrors) { throw new InvalidInputException("Bezeichnung ungültig!"); } // evaluate Betrag pdv.Eval(zeile.BetragNetto); if (pdv.HasErrors) { throw new InvalidInputException("Betrag ungültig"); } // SAVE Ausgangsrechnung, Buchungszeile and Ausgangsbuchung try { buchung.AusgangsrechnungsID = DALFactory.GetDAL().SaveAusgangsrechnung(rechnung); buchung.BuchungszeilenID = DALFactory.GetDAL().SaveBuchungszeile(zeile); // create Ausgangsbuchung with ID values which just returned from database DALFactory.GetDAL().SaveAusgangsbuchung(buchung); } catch (SQLiteException e) { this.logger.Log(Logger.Level.Info, "A database exception occured while saving a new Ausgangsrechnung, Buchungszeile or Ausgangsbuchung."); throw new DataBaseException(e.Message, e); } }
/// <summary> /// Saves a new Ausgangsbuchung to the SQLite database. /// </summary> /// <param name="table"></param> public void SaveAusgangsbuchung(AusgangsbuchungTable table) { string sql = "INSERT INTO Ausgangsbuchung (BuchungszeilenID, AusgangsrechnungsID) VALUES (?, ?)"; try { this.SendStatementToDatabase(sql, -1, table.BuchungszeilenID, table.AusgangsrechnungsID); } catch (SQLiteException) { throw; } this.logger.Log(Logger.Level.Info, "A new Ausgangsbuchung has successfully been stored to the SQLite-DB."); }
/// <summary> /// Saves a new connection between Ausgangsrechnung and Buchungszeile /// </summary> /// <param name="table">The Ausgangsbuchungs table</param> public void SaveAusgangsbuchung(AusgangsbuchungTable table) { MockDataBaseManager.savedAusgangsbuchungen.Add(table); }