private void RechnungPdf() { //TODO: Fix Speichern //RechnungSpeichern(); //TODO: Abschneiden verhindern: DinA4 statt US letter, Fehler bei generieren von xps, nicht pdf! rechnungen rechnung = (rechnungen)rechnungenListe.SelectedItem; MemoryStream lMemoryStream = new MemoryStream(); Package package = Package.Open(lMemoryStream, FileMode.Create); XpsDocument doc = new XpsDocument(package); XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(doc); writer.Write(new Rechnung(rechnung)); doc.Close(); package.Close(); var pdfXpsDoc = PdfSharp.Xps.XpsModel.XpsDocument.Open(lMemoryStream); string dateiname; if (rechnung.kunden.anrede == "Firma") { dateiname = _entities.einstellungen.First().speicherortrechnungen + "\\" + rechnung.rechnungsnummer + " " + rechnung.kunden.firma + ".pdf"; } else { dateiname = _entities.einstellungen.First().speicherortrechnungen + "\\" + rechnung.rechnungsnummer + " " + rechnung.kunden.vorname + " " + rechnung.kunden.nachname + ".pdf"; } PdfSharp.Xps.XpsConverter.Convert(pdfXpsDoc, dateiname, 0); }
private void RechnungslisteBearbeiten(object sender, RoutedEventArgs e) { rechnungen rechnung = (rechnungen)rechnungenListe.SelectedItem; groupBoxRechnung.IsEnabled = true; groupBoxRechnungen.IsEnabled = false; tabKunden.IsEnabled = false; tabAngebote.IsEnabled = false; groupBoxRechnungKunde.IsEnabled = false; rechnungRechnungsnummer.Content = rechnung.rechnungsnummer; rechnungPositionenListe.Clear(); foreach (rechnung_positionen element in rechnung.rechnung_positionen) { rechnungPositionenListe.Add(element); } rechnungPositionen.ItemsSource = null; rechnungPositionen.ItemsSource = rechnungPositionenListe; //TODO: Ändern und testen /* * String stringDatum = rechnung.datum; * DateTime datum = DateTime.Parse(stringDatum); * rechnungDatum.SelectedDate = datum; */ //TODO }
private void RechnungDrucken() { //TODO: Fix Speichern //RechnungSpeichern(); RechnungPdf(); rechnungen rechnung = (rechnungen)rechnungenListe.SelectedItem; PrintDialog druckdialog = new PrintDialog(); if (druckdialog.ShowDialog() == true) { druckdialog.PrintVisual(new Rechnung(rechnung), "Rechnung"); } }
private void RechnungslisteLoeschen(object sender, RoutedEventArgs e) { rechnungen rechnung = (rechnungen)rechnungenListe.SelectedItem; MessageBoxResult messageBoxResult = System.Windows.MessageBox.Show("Sind sie sicher, dass sie diese Rechnung löschen wollen?", "Rechnung Löschen Bestätigung", System.Windows.MessageBoxButton.YesNo); if (messageBoxResult == MessageBoxResult.Yes) { _entities.rechnungen.Remove(rechnung); _entities.SaveChanges(); Refresh(); RechnungAbwaehlen(); rechnungenListe.SelectedItem = null; rechnungslisteBearbeiten.IsEnabled = false; rechnungslisteLoeschen.IsEnabled = false; } }
private void RechnungenFilter(object sender, FilterEventArgs e) { //TODO: Testen (Geht noch nicht) rechnungen rechnung = e.Item as rechnungen; if (rechnung.rechnung_positionen != null) { foreach (rechnung_positionen p in rechnung.rechnung_positionen) { if (p.beschreibung != null || p.name != null) { if (p.beschreibung != null) { if (p.beschreibung.ToLower().Contains(rechnungenFilter)) { e.Accepted = true; } } if (p.name != null) { if (p.name.ToLower().Contains(rechnungenFilter)) { e.Accepted = true; } } } } } else if (rechnung.kunden.titel.ToLower().Contains(rechnungenFilter.ToLower()) || rechnung.kunden.vorname.ToLower().Contains(rechnungenFilter.ToLower()) || rechnung.kunden.nachname.ToLower().Contains(rechnungenFilter.ToLower()) || rechnung.kunden.firma.ToLower().Contains(rechnungenFilter.ToLower()) || rechnung.kunden.strasse.ToLower().Contains(rechnungenFilter.ToLower()) || rechnung.kunden.postleitzahl.ToLower().Contains(rechnungenFilter.ToLower()) || rechnung.kunden.ort.ToLower().Contains(rechnungenFilter.ToLower()) || rechnung.kunden.land.ToLower().Contains(rechnungenFilter.ToLower()) || rechnung.kunden.telefon.ToLower().Contains(rechnungenFilter.ToLower()) || rechnung.kunden.telefax.ToLower().Contains(rechnungenFilter.ToLower()) || rechnung.kunden.mobiltelefon.ToLower().Contains(rechnungenFilter.ToLower()) || rechnung.kunden.email.ToLower().Contains(rechnungenFilter.ToLower()) || rechnung.kunden.webseite.ToLower().Contains(rechnungenFilter.ToLower()) || rechnung.kunden.notizen.ToLower().Contains(rechnungenFilter.ToLower())) { e.Accepted = true; } else { e.Accepted = false; } }
private void FelderFuellen(rechnungen rechnung) { briefkopfFirmenname.Content = _entities.einstellungen.First().firmenname; briefkopfAnschrift.Content = _entities.einstellungen.First().strasse + " - " + _entities.einstellungen.First().postleitzahl + " " + _entities.einstellungen.First().ort + " - " + _entities.einstellungen.First().land; rechnungsdatum.Content = DateTime.Parse(rechnung.datum).ToString("dd.MM.yyy"); rechnungsnummer.Content = rechnung.rechnungsnummer; kundennummer.Content = rechnung.kunden.kundennummer; if (rechnung.kunden.anrede == "Firma") { briefkopfAnrede.Content = ""; anrede.Content = "Sehr geehrte Damen und Herren,"; } else if (rechnung.kunden.anrede == "Herr") { briefkopfAnrede.Content = rechnung.kunden.anrede + "n"; anrede.Content = "Sehr geehrter Herr " + rechnung.kunden.nachname + ","; } else if (rechnung.kunden.anrede == "Frau") { briefkopfAnrede.Content = rechnung.kunden.anrede; anrede.Content = "Sehr geehrte Frau " + rechnung.kunden.nachname + ","; } briefkopfName.Content = rechnung.kunden.vorname + " " + rechnung.kunden.nachname; briefkopfStrasse.Content = rechnung.kunden.strasse; briefkopfOrt.Content = rechnung.kunden.postleitzahl + " " + rechnung.kunden.ort; briefkopfLand.Content = rechnung.kunden.land; ueberschriftRechnungsnummer.Content = rechnung.rechnungsnummer; int zeile = 1; foreach (rechnung_positionen position in rechnung.rechnung_positionen) { RowDefinition rowDefinition = new RowDefinition(); rowDefinition.Height = new GridLength(); positionen.RowDefinitions.Add(rowDefinition); Label menge = new Label(); menge.Content = position.menge; menge.HorizontalAlignment = HorizontalAlignment.Center; positionen.Children.Add(menge); Grid.SetColumn(menge, 0); Grid.SetRow(menge, zeile); Label einheit = new Label(); einheit.Content = position.einheit; positionen.Children.Add(einheit); Grid.SetColumn(einheit, 1); Grid.SetRow(einheit, zeile); Label name = new Label(); TextBlock tbname = new TextBlock(); tbname.Text = position.name; tbname.TextWrapping = TextWrapping.WrapWithOverflow; name.Content = tbname; positionen.Children.Add(name); Grid.SetColumn(name, 2); Grid.SetRow(name, zeile); Label beschreibung = new Label(); TextBlock tbbeschreibung = new TextBlock(); tbbeschreibung.Text = position.beschreibung; tbbeschreibung.TextWrapping = TextWrapping.WrapWithOverflow; beschreibung.Content = tbbeschreibung; positionen.Children.Add(beschreibung); Grid.SetColumn(beschreibung, 3); Grid.SetRow(beschreibung, zeile); Label einzelpreis = new Label(); einzelpreis.Content = position.einzelpreis; einzelpreis.ContentStringFormat = "c"; einzelpreis.HorizontalAlignment = HorizontalAlignment.Right; positionen.Children.Add(einzelpreis); Grid.SetColumn(einzelpreis, 4); Grid.SetRow(einzelpreis, zeile); Label gesamtpreis = new Label(); gesamtpreis.Content = position.gesamtpreis; gesamtpreis.ContentStringFormat = "c"; gesamtpreis.HorizontalAlignment = HorizontalAlignment.Right; positionen.Children.Add(gesamtpreis); Grid.SetColumn(gesamtpreis, 5); Grid.SetRow(gesamtpreis, zeile); zeile++; } decimal gesamtbetrag = 0; foreach (rechnung_positionen position in rechnung.rechnung_positionen) { decimal g = position.gesamtpreis ?? default(decimal); gesamtbetrag = gesamtbetrag + g; } prozentMehrwertsteuer.Content = _entities.einstellungen.First().standardmehrwertsteuersatz + "% Mehrwertsteuer:"; rechnungsbetrag.Content = gesamtbetrag; nettobetrag.Content = gesamtbetrag * (100 - _entities.einstellungen.First().standardmehrwertsteuersatz) / 100; mehrwertsteuerbetrag.Content = gesamtbetrag * (_entities.einstellungen.First().standardmehrwertsteuersatz) / 100; DateTime datum = DateTime.Parse(rechnung.datum); DateTime datumzahlbar = datum.AddDays(Convert.ToDouble(rechnung.zahlbartage)); if (rechnung.skontoprozent == null || rechnung.skontoprozent == 0) { zahlbar.Text = "Zahlbar innerhalb von " + rechnung.zahlbartage + " Tagen ohne Abzug bis spätestens zum " + datumzahlbar.ToString("dd.MM.yyyy") + "."; } else { DateTime datumskonto = datum.AddDays(Convert.ToDouble(rechnung.skontotage)); zahlbar.Text = "Zahlbar mit " + rechnung.skontoprozent + "% Skonto (" + string.Format("{0:C}", (100 - rechnung.skontoprozent) / 100 * gesamtbetrag) + ") innerhalb von " + rechnung.skontotage + " Tagen bis spätestens zum " + datumskonto.ToString("dd.MM.yyyy") + " oder ohne Abzug (" + string.Format("{0:C}", gesamtbetrag) + ") innerhalb von " + rechnung.zahlbartage + " Tagen bis spätestens zum " + datumzahlbar.ToString("dd.MM.yyyy") + "."; } //TODO: Abschneiden verhindern! footerFirmenname.Content = _entities.einstellungen.First().firmenname; footerInhaber.Content = _entities.einstellungen.First().inhaber; footerStraße.Content = _entities.einstellungen.First().strasse; footerOrt.Content = _entities.einstellungen.First().postleitzahl + " " + _entities.einstellungen.First().ort; footerLand.Content = _entities.einstellungen.First().land; footerTelefon.Content = _entities.einstellungen.First().telefon; footerTelefax.Content = _entities.einstellungen.First().telefax; footerEmail.Content = _entities.einstellungen.First().email; footerUstidnr.Content = _entities.einstellungen.First().ustidnr; footerWebseite.Content = _entities.einstellungen.First().webseite; footerEmpfänger.Content = _entities.einstellungen.First().empfaenger; footerBank.Content = _entities.einstellungen.First().bank; footerIBAN.Content = _entities.einstellungen.First().iban; footerBIC.Content = _entities.einstellungen.First().bic; }
public Rechnung(rechnungen rechnung) { InitializeComponent(); Refresh(); FelderFuellen(rechnung); }
private void RechnungSpeichern() { //TODO: Pflichfelder prüfen //Zahlbardatum vor Rechnungsdatum //Zahlbartage speichern geht noch nicht long kundennummer; Int64.TryParse(rechnungKundennummer.Content.ToString(), out kundennummer); //TODO: evtl unsauber (Evtl Objektauswahl) var query = from kunden in _entities.kunden where kunden.kundennummer == kundennummer select kunden; long kundenId = 0; foreach (var result in query) { kundenId = result.id; } if (neueRechnungWirdAngelegt == true) { long rechnungsnummer; Int64.TryParse(rechnungRechnungsnummer.Content.ToString(), out rechnungsnummer); rechnungen rechnung = new rechnungen(); rechnung.rechnungsnummer = rechnungsnummer; DateTime datum = (DateTime)rechnungDatum.SelectedDate; string stringDatum = datum.ToString("yyyy-MM-dd"); rechnung.datum = stringDatum; rechnung.netto = rechnungMehrwertsteuerComboBox.SelectedIndex; rechnung.kunde_id = kundenId; foreach (rechnung_positionen element in rechnungPositionenListe) { rechnung.rechnung_positionen.Add(element); } long zahlbartage; Int64.TryParse(rechnungZahlbarTage.Text, out zahlbartage); rechnung.zahlbartage = zahlbartage; //TODO: Skonto rechnung.bemerkung = rechnungBemerkung.Text; _entities.rechnungen.Add(rechnung); } else { rechnungen rechnung = (rechnungen)rechnungenListe.SelectedItem; rechnung.kunde_id = kundenId; rechnung.netto = rechnungMehrwertsteuerComboBox.SelectedIndex; rechnung.rechnung_positionen.Clear(); foreach (rechnung_positionen element in rechnungPositionenListe) { rechnung.rechnung_positionen.Add(element); } long zahlbartage; Int64.TryParse(rechnungZahlbarTage.Text, out zahlbartage); rechnung.zahlbartage = zahlbartage; //TODO: Skonto rechnung.bemerkung = rechnungBemerkung.Text; _entities.rechnungen.Attach(rechnung); _entities.Entry(rechnung).State = EntityState.Modified; } _entities.SaveChanges(); Refresh(); RechnungAbwaehlen(); groupBoxRechnung.IsEnabled = false; groupBoxRechnungen.IsEnabled = true; tabKunden.IsEnabled = true; tabAngebote.IsEnabled = true; rechnungenListe.SelectedItem = null; rechnungslisteBearbeiten.IsEnabled = false; rechnungslisteLoeschen.IsEnabled = false; neueRechnungWirdAngelegt = false; }
private void RechnungAusgewaehlt(object sender, SelectedCellsChangedEventArgs e) { //TODO: Problem: Erster Eintrag in Liste funktioniert nicht if (rechnungenListe.SelectedCells != null) { try { rechnungslisteBearbeiten.IsEnabled = true; rechnungslisteLoeschen.IsEnabled = true; rechnungen rechnung = (rechnungen)rechnungenListe.SelectedItem; RechnungAbwaehlen(); //TODO: Exception besser behandeln rechnungRechnungsnummer.Content = rechnung.rechnungsnummer.ToString(); rechnungDatum.SelectedDate = null; String stringDatum = rechnung.datum; DateTime datum = DateTime.Parse(stringDatum); rechnungDatum.SelectedDate = DateTime.Parse(stringDatum); rechnungKundennummer.Content = rechnung.kunden.kundennummer; if (rechnung.kunden.anrede == "Firma") { rechnungKundenname.Content = rechnung.kunden.firma; } else if (rechnung.kunden.anrede == "Herr") { rechnungKundenname.Content = rechnung.kunden.anrede + "n " + rechnung.kunden.vorname + " " + rechnung.kunden.nachname; } else if (rechnung.kunden.anrede == "Frau") { rechnungKundenname.Content = rechnung.kunden.anrede + " " + rechnung.kunden.vorname + " " + rechnung.kunden.nachname; } rechnungKundenstraße.Content = rechnung.kunden.strasse; rechnungKundenort.Content = rechnung.kunden.postleitzahl + " " + rechnung.kunden.ort; rechnungKundenland.Content = rechnung.kunden.land; rechnungMehrwertsteuerComboBox.SelectedIndex = Convert.ToInt32(rechnung.netto); rechnungPositionenListe.Clear(); foreach (rechnung_positionen element in rechnung.rechnung_positionen) { rechnungPositionenListe.Add(element); } rechnungPositionen.ItemsSource = null; rechnungPositionen.ItemsSource = rechnungPositionenListe; rechnungZahlbarTage.Text = rechnung.zahlbartage.ToString(); //TODO: Skonto usw. } catch (Exception) { } } else { rechnungslisteBearbeiten.IsEnabled = false; rechnungslisteLoeschen.IsEnabled = false; } }