public void CreateEingangsrechnungTest() { RechnungsManager target = new RechnungsManager(); EingangsrechnungTable table = new EingangsrechnungTable(); table.Archivierungspfad = "path"; table.Bezeichnung = "test"; table.KontaktID = 1; table.Rechnungsdatum = string.Empty; // this should lead to exception target.CreateEingangsrechnung(table); }
private void ShowUmsaetze(object sender, EventArgs e) { this.umsaetzeMsgLabel.Visible = false; // load all Eingangsrechnungen RechnungsManager loader = new RechnungsManager(); List<EingangsrechnungsView> eingang = new List<EingangsrechnungsView>(); List<AusgangsrechnungsView> ausgang = new List<AusgangsrechnungsView>(); try { eingang = loader.LoadEingangsrechnungsView(); ausgang = loader.LoadAusgangsrechnungsView(); } catch(DataBaseException) { this.umsaetzeMsgLabel.ForeColor = Color.Red; this.umsaetzeMsgLabel.Text = "Ein Datenbankproblem ist aufgetreten"; this.umsaetzeMsgLabel.Visible = true; } // create PDF document PdfDocument document = new PdfDocument(); PdfPage page = document.AddPage(); XGraphics gfx = XGraphics.FromPdfPage(page); XFont header = new XFont("Calibri", 20, XFontStyle.Bold); XFont columHeader = new XFont("Calibri", 10, XFontStyle.Bold); XFont Text = new XFont("Calibri", 10); int i = 20; foreach(EingangsrechnungsView table in eingang) { gfx.DrawString(table.ID + " " + table.Bezeichnung + " " + table.Betrag + " " + table.Rechnungsdatum, header, XBrushes.Black, 20, i); i += 20; } foreach (AusgangsrechnungsView table in ausgang) { gfx.DrawString(table.ID + " " + table.Bezeichnung + " " + table.Betrag + " " + table.Rechnungsdatum, header, XBrushes.Black, 20, i); i += 20; } //gfx.DrawString("Umsätze", header, XBrushes.Black,new XRect(0, 0, page.Width, page.Height),XStringFormats.TopCenter); string filename = "HelloWorld.pdf"; document.Save(filename); Process.Start(filename); }
// Save Eingangsrechnung and Buchungszeilen private void FinishAccount(object sender, EventArgs e) { // if there are no elements, return if (this.buchungszeilenBindingSource.Count < 1) { this.eingangsrechnungMsgLabel.Text = "Keine Daten!"; this.eingangsrechnungMsgLabel.ForeColor = Color.Red; this.eingangsrechnungMsgLabel.Show(); return; } // save Eingangsrechnung int eingangsrechnungsID = this.SaveEingangsrechnung(); // check for errors while saving Eingangsrechnung to database if (eingangsrechnungsID == -1) { return; } // get all Buchungszeilen out of BindingSource List<BuchungszeilenTable> list = new List<BuchungszeilenTable>(); for (int i = 0; i < this.buchungszeilenBindingSource.Count; i++) { list.Add((BuchungszeilenTable)this.buchungszeilenBindingSource.List[i]); } // save all Buchungszeilen RechnungsManager manager = new RechnungsManager(); foreach (BuchungszeilenTable table in list) { try { manager.SaveBuchungszeile(table, eingangsrechnungsID); } catch (InvalidInputException ex) { this.eingangsrechnungMsgLabel.Text = ex.Message; this.eingangsrechnungMsgLabel.ForeColor = Color.Red; this.eingangsrechnungMsgLabel.Show(); return; } catch (SQLiteException ex) { this.eingangsrechnungMsgLabel.Text = ex.Message; this.eingangsrechnungMsgLabel.ForeColor = Color.Red; this.eingangsrechnungMsgLabel.Show(); return; } } this.ResetEingangsrechnung(null, null); }
// save a new Eingangsrechnung private int SaveEingangsrechnung() { RechnungsManager manager = new RechnungsManager(); int rechnungsid; // save Eingangsrechnung in database try { rechnungsid = manager.CreateEingangsrechnung(this.eingangsrechnung); } catch (InvalidInputException e) { this.logger.Log(Logger.Level.Error, e.Message); this.eingangsrechnungMsgLabel.Text = e.Message; this.eingangsrechnungMsgLabel.ForeColor = Color.Red; this.eingangsrechnungMsgLabel.Show(); return -1; } catch (SQLiteException e) { this.logger.Log(Logger.Level.Error, e.Message); this.eingangsrechnungMsgLabel.Text = e.Message; this.eingangsrechnungMsgLabel.ForeColor = Color.Red; this.eingangsrechnungMsgLabel.Show(); return -1; } this.eingangsrechnungMsgLabel.Text += "\nEingangsrechnung gespeichert.\n"; return rechnungsid; }
/// <summary> /// Creates a new Ausgangsrechnung with the provided parameters /// </summary> /// <param name="sender">The sending button</param> /// <param name="e">The EventArgs</param> private void CreateAusgangsrechnung(object sender, EventArgs e) { // reset message label this.ausgangsrechnungMsgLabel.Visible = false; this.ausgangsrechnungMsgLabel.Text = string.Empty; // check if a projekt is selected if (this.projekteComboBox.SelectedIndex < 1) { this.ausgangsrechnungMsgLabel.Visible = true; this.ausgangsrechnungMsgLabel.Text = "Kein Projekt ausgewählt"; this.ausgangsrechnungMsgLabel.ForeColor = Color.Red; return; } AusgangsrechnungTable table = new AusgangsrechnungTable(); // Get values int projektID = GlobalActions.GetIdFromCombobox(this.projekteComboBox.SelectedValue.ToString(), this.ausgangsrechnungMsgLabel); string unpaidBalanceString = this.unpaidBalanceTextBox.Text; string rechnungstitelString = this.rechnungstitelTextBox.Text; double unpaidBalance; // Validate values IRule posintval = new PositiveIntValidator(); IRule posdoubval = new PositiveDoubleValidator(); IRule lnhsv = new LettersNumbersHyphenSpaceValidator(); IRule slv = new StringLength150Validator(); DataBindingFramework.BindFromInt(projektID.ToString(), "ProjektID", this.ausgangsrechnungMsgLabel, false, posintval); unpaidBalance = DataBindingFramework.BindFromDouble(unpaidBalanceString, "Offener Betrag", this.ausgangsrechnungMsgLabel, false, posdoubval); DataBindingFramework.BindFromString(rechnungstitelString, "Rechnungstitel", this.ausgangsrechnungMsgLabel, false, lnhsv, slv); // return if errors occured if (this.ausgangsrechnungMsgLabel.Visible) { return; } // no errors, send values to business layer RechnungsManager saver = new RechnungsManager(); try { saver.CreateAusgangsrechnung(projektID, unpaidBalance, rechnungstitelString); } catch (InvalidInputException) { this.logger.Log(Logger.Level.Error, "The business layer returned the provided values for saving a new Ausgangsrechnung with an error."); } catch (DataBaseException ex) { this.logger.Log(Logger.Level.Error, "A serious problem with the database occured while trying to save a new Ausgangsrechnung."); this.logger.Log(Logger.Level.Error, ex.Message); this.ausgangsrechnungMsgLabel.Text = ex.Message; this.ausgangsrechnungMsgLabel.ForeColor = Color.Red; this.ausgangsrechnungMsgLabel.Show(); } // show success message label (only if saving has been successful) if (!this.ausgangsrechnungMsgLabel.Visible) { GlobalActions.ShowSuccessLabel(this.ausgangsrechnungMsgLabel); } }