Example #1
0
        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);
        }
Example #2
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
        }
Example #3
0
        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");
            }
        }
Example #4
0
        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;
            }
        }
Example #5
0
        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;
            }
        }
Example #6
0
        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;
        }
Example #7
0
 public Rechnung(rechnungen rechnung)
 {
     InitializeComponent();
     Refresh();
     FelderFuellen(rechnung);
 }
Example #8
0
        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;
        }
Example #9
0
        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;
            }
        }