public static int ComparePreiseByJahr(PreisData x, PreisData y) {
     if (x == null) {
         if (y == null) {
             return 0;
         } else {
             return -1;
         }
     } else {
         if (y == null) {
             return 1;
         } else {
             return x.Jahr.CompareTo(y.Jahr);
         }
     }
 }
Ejemplo n.º 2
0
        public bool Insert(PreisData preis) {
            try {
                DbUtil.OpenConnection();

                if (insertByIdCmd == null) {
                    insertByIdCmd = DbUtil.CreateCommand(SQL_INSERT_BY_ID, DbUtil.CurrentConnection);
                    insertByIdCmd.Parameters.Add(DbUtil.CreateParameter("@Jahr", DbType.Int64));
                    insertByIdCmd.Parameters.Add(DbUtil.CreateParameter("@Preis", DbType.Double));
                }

                ((IDataParameter)insertByIdCmd.Parameters["@Preis"]).Value = preis.Preis;
                ((IDataParameter)insertByIdCmd.Parameters["@Jahr"]).Value = preis.Jahr;

                if (insertByIdCmd.ExecuteNonQuery() != 1)
                    return false;
                else {
                    return true;
                }
            } finally {
                DbUtil.CloseConnection();
            }
        }
        public void PrintKontrollZettel(IList<KundenData> kunden, PreisData preis) {
            PrintableDocument pdd = new PrintableDocument();
            pdd.DocumentName = "Wasser Werk Verwaltung";

            PrintablePage ppd = new PrintablePage();
            int counter = 0;
            int zeile = 0;
            foreach (KundenData kunde in kunden) {
                JahresDatenData jdd = this.GetJahresdataByKundenIDandYear(kunde.Id, preis.Jahr);
                counter++;
                ppd.AddPrintableObject(new PrintableTextObject(kunde.Nachname + " " + kunde.Vorname + "  Objekt: " + kunde.Objekt + "  Jahreswasserre. " + DateTime.Now.Year.ToString(), new Font("Arial", stdFontSize, FontStyle.Bold), Brushes.Black, linkerRand, obererRand + zeile++ * zeilenabstand));
                ppd.AddPrintableObject(new PrintableTextObject("Zählerstand alt/neu m³ " + jdd.ZaehlerStandAlt + "/" + jdd.ZaehlerStandNeu + "  Tz " + jdd.TauschZaehlerStandAlt + "/" + jdd.TauschZaehlerStandNeu, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + zeile++ * zeilenabstand));
                ppd.AddPrintableObject(new PrintableTextObject("Wasserverbrauch = " + this.calcVerbrauch(jdd) + "     Wassergebühr pro m³ = " + preis.Preis.ToString(), new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + zeile++ * zeilenabstand));
                ppd.AddPrintableObject(new PrintableTextObject("Wasserkosten = EUR " + Math.Round(this.calcVerbrauch(jdd) * preis.Preis,2) + "     Zählermiete = EUR " + kunde.Zaehlermiete + " netto", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + zeile++ * zeilenabstand));
                ppd.AddPrintableObject(new PrintableTextObject("Sonstige Forderungen: " + jdd.SonstigeForderungenText + " = " + jdd.SonstigeForderungenValue, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + zeile++ * zeilenabstand));
                ppd.AddPrintableObject(new PrintableTextObject("Rechnungssumme netto = EUR " + this.calcJahresrechnungNetto(jdd,kunde,preis) + "    zuzügl 10% Mwst = EUR " + this.calcMwSt(jdd,kunde,preis), new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + zeile++ * zeilenabstand));
                ppd.AddPrintableObject(new PrintableTextObject("Jahresrechnungssumme gesamt incl. Mwst = EUR " + this.calcJahresrechnungBrutto(jdd,kunde,preis), new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + zeile++ * zeilenabstand));
                ppd.AddPrintableObject(new PrintableTextObject("Abzüglich 1/2 Jahresrechnung = EUR " + jdd.HalbJahresBetrag, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + zeile++ * zeilenabstand));
                ppd.AddPrintableObject(new PrintableTextObject("Zahlbetrag = " + (this.calcJahresrechnungBrutto(jdd,kunde,preis) - jdd.HalbJahresBetrag) + "   Bankverbindung: " + kunde.BankVerbindung, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + zeile++ * zeilenabstand));
                ppd.AddPrintableObject(new PrintableTextObject("Bekommt Rechnung: " + kunde.BekommtRechnung.ToString() + "  ;" + jdd.getFullRechnungsNummerHalbJahr() + " " + jdd.getFullRechnungsNummerGanzJahr() + "   Bemerkung: " + kunde.Bemerkung, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + zeile++ * zeilenabstand));
                
                if ((counter % 5) == 0) {
                    pdd.AddPrintPage(ppd);
                    ppd = new PrintablePage();
                    zeile = 0;
                } else {
                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)linkerRand, (int)(obererRand + zeile * zeilenabstand), (int)linkerRand + 680, (int)(obererRand + zeile * zeilenabstand)));
                }
            }
            if ((counter % 5) != 0) {
                pdd.AddPrintPage(ppd);
            }
            pdd.DoPrint();
        }
        public void PrintHalbJahresRechnungen(IList<KundenData> kunden, PreisData preis) {
            foreach (KundenData kunde in kunden) {
                if (kunde.BekommtRechnung != Rechnung.Halbjahres){
                    MessageBox.Show("Mindestens ein Kunde bekommt keine Halbjahresrechnung!\r\nVorgang abgebrochen!");
                    return;
                }
            }
            
            PrintableDocument pdd = new PrintableDocument();
            pdd.DocumentName = "Wasser Werk Verwaltung";

            PrintablePage ppd;
            foreach (KundenData kunde in kunden) {
                ppd = new PrintablePage();
                JahresDatenData jdd = this.GetJahresdataByKundenIDandYear(kunde.Id, preis.Jahr);
                if (jdd != null) {
                    if (jdd.RechnungsNummerHalbjahr == null)
                    {
                        jdd.RechnungsNummerHalbjahr = setHalbJahresRechnungsNummer(jdd.Id);
                    }
                    ppd.AddPrintableObject(new PrintableTextObject(WASSERWERK_WEINBERGER, new Font("Arial", 15, FontStyle.Bold), Brushes.Black, linkerRand, obererRand + 0 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(BAHNHOFSTRASSE_27, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 1 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(_3350_STADT_HAAG, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 2 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(TEL, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 3 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Herr/Frau/Fa", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 6 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(kunde.Vorname + " " + kunde.Nachname, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 7 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(kunde.Strasse, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 8 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(kunde.Ort, new Font("Arial", stdFontSize, FontStyle.Bold | FontStyle.Underline), Brushes.Black, linkerRand, obererRand + 9 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("RechnungsNr: " + jdd.getFullRechnungsNummerHalbJahr(), new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand + 423, obererRand + 9 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Halbjahreswasserrechnung " + preis.Jahr, new Font("Arial", 15, FontStyle.Bold), Brushes.Black, linkerRand + 180, obererRand + 13 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject(DateTime.Now.Date.ToString("dd.MM.yyyy", DateTimeFormatInfo.InvariantInfo), new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand + 575, obererRand + 15 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("für das Objekt:", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 17 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(kunde.Objekt, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, mittelinkerRand, obererRand + 17 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Die Rechnung ist eine Akontierung und entspricht", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 18 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("ca. der Hälfte der Vorjahresrechnung.", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 19 * zeilenabstand));
                    

                    ppd.AddPrintableObject(new PrintableTextObject("Nettobetrag =", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 22 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("EUR " + FormatDezimal(calcHalbJahresrechnungNetto(jdd)) + " + " + FormatDezimal(calcHalbJahresrechnungMwSt(jdd)) + " (10% Mwst) = EUR " + FormatDezimal(jdd.HalbJahresBetrag), new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, mittelinkerRand, obererRand + 22 * zeilenabstand));
                    
                    
                    ppd.AddPrintableObject(new PrintableTextObject("Einzuzahlender Betrag =", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 25 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("EUR " + FormatDezimal(jdd.HalbJahresBetrag), new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, mittelinkerRand, obererRand + 25 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)linkerRand, (int)(obererRand + 26 * zeilenabstand), (int)linkerRand + 680, (int)(obererRand + 26 * zeilenabstand)));

                    ppd.AddPrintableObject(new PrintableTextObject(kunde.Zahlung, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 29 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject(ATU_NUMMER, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 35 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(BANK_VERBINDUNG, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 36 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(TEL_FAX_MOBIL, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 37 * zeilenabstand));

                    pdd.AddPrintPage(ppd);
                }
                this.SetRechnungsDatumHalbjahr(kunde, preis.Jahr, DateTime.Now);
            }

            pdd.DoPrint();
        }
        public void PrintBezahltCheckListe(IList<KundenData> kunden, PreisData preis) {
            PrintableDocument pdd = new PrintableDocument();
            pdd.DocumentName = "Wasser Werk Verwaltung";
            int seitencounter = 1;
            PrintablePage ppd = new PrintablePage();
            ppd.AddPrintableObject(new PrintableTextObject("Seite " + seitencounter, new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand - 30, obererRand - 30));
            ppd.AddPrintableObject(new PrintableTextObject("OFFENE RECHNUNGEN  " + preis.Jahr, new Font("Arial", 12, FontStyle.Bold),Brushes.Black,mittelinkerRand - 20,obererRand - 30));
            ppd.AddPrintableObject(new PrintableTextObject(DateTime.Now.ToShortDateString(), new Font("Arial", 9, FontStyle.Bold),Brushes.Black,rechterRand,obererRand - 30));
            ppd.AddPrintableObject(new PrintableTextObject("Name, Vorname", new Font("Arial", 9, FontStyle.Bold),Brushes.Black,linkerRand - 30,obererRand + 15));
            ppd.AddPrintableObject(new PrintableTextObject("Objekt", new Font("Arial", 9, FontStyle.Bold),Brushes.Black,linkerRand + 190,obererRand + 15));
            ppd.AddPrintableObject(new PrintableTextObject("Rechnunssum", new Font("Arial", 9, FontStyle.Bold),Brushes.Black,linkerRand + 410,obererRand + 15));
            ppd.AddPrintableObject(new PrintableTextObject("bereits bezahlt", new Font("Arial", 9, FontStyle.Bold),Brushes.Black,linkerRand + 510,obererRand + 15));
            ppd.AddPrintableObject(new PrintableTextObject("Noch ausständig", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 610, obererRand + 15));

            int kleinerZeilenabstand = 15;
            int zeile = 8;
            int counter = 0;
            ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)linkerRand - 30, (int)kleinerZeilenabstand * (int)(zeile), (int)linkerRand + 700, (int)kleinerZeilenabstand * (int)(zeile)));
            double sumSum = 0;
            double bereitsBezahlt = 0;
            double ausstaendig = 0;
            foreach (KundenData kunde in kunden) {
                JahresDatenData jdd = this.GetJahresdataByKundenIDandYear(kunde.Id, preis.Jahr);

                ppd.AddPrintableObject(new PrintableTextObject(kunde.Nachname + " " + kunde.Vorname, new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand - 30, zeile * kleinerZeilenabstand));
                ppd.AddPrintableObject(new PrintableFillRectangleObject(Brushes.White,(int)linkerRand+188,zeile * kleinerZeilenabstand + 1,300,13));
                ppd.AddPrintableObject(new PrintableTextObject(kunde.Objekt, new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 190, zeile * kleinerZeilenabstand));
                ppd.AddPrintableObject(new PrintableTextObject(this.FormatDezimal(this.calcJahresrechnungBrutto(jdd, kunde, preis)) + " EUR", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 410, zeile * kleinerZeilenabstand));
                ppd.AddPrintableObject(new PrintableTextObject(this.FormatDezimal(jdd.BereitsBezahlt) + " EUR", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 510, zeile * kleinerZeilenabstand));
                ppd.AddPrintableObject(new PrintableTextObject(this.FormatDezimal(calcJahresRechnungMinusBereitsBezahlt(jdd,kunde,preis)) + " EUR", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 610, zeile * kleinerZeilenabstand));

                ppd.AddPrintableObject(new PrintableLineObject(Pens.LightGray, (int)linkerRand - 30, (int)kleinerZeilenabstand * (int)(zeile+1), (int)linkerRand + 700, (int)kleinerZeilenabstand * (int)(zeile+1)));
                sumSum += this.calcJahresrechnungBrutto(jdd, kunde, preis);
                bereitsBezahlt += jdd.BereitsBezahlt;
                ausstaendig += (this.calcJahresrechnungBrutto(jdd, kunde, preis) - jdd.BereitsBezahlt);
                zeile++;
                counter++;

                if ((counter % 65) == 0) {
                    pdd.AddPrintPage(ppd);
                    ppd = new PrintablePage();
                    zeile = 8;
                    seitencounter++;

                    ppd.AddPrintableObject(new PrintableTextObject("Seite " + seitencounter, new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand - 30, obererRand - 30));
                    ppd.AddPrintableObject(new PrintableTextObject("OFFENE RECHNUNGEN  " + preis.Jahr, new Font("Arial", 12, FontStyle.Bold), Brushes.Black, mittelinkerRand - 20, obererRand - 30));
                    ppd.AddPrintableObject(new PrintableTextObject(DateTime.Now.ToShortDateString(), new Font("Arial", 9, FontStyle.Bold), Brushes.Black, rechterRand, obererRand - 30));
                    ppd.AddPrintableObject(new PrintableTextObject("Name, Vorname", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand - 30, obererRand + 15));
                    ppd.AddPrintableObject(new PrintableTextObject("Objekt", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 190, obererRand + 15));
                    ppd.AddPrintableObject(new PrintableTextObject("Rechnunssum", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 410, obererRand + 15));
                    ppd.AddPrintableObject(new PrintableTextObject("bereits bezahlt", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 510, obererRand + 15));
                    ppd.AddPrintableObject(new PrintableTextObject("Noch ausständig", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 610, obererRand + 15));

                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)linkerRand - 30, (int)kleinerZeilenabstand * (int)(zeile), (int)linkerRand + 700, (int)kleinerZeilenabstand * (int)(zeile)));
                }
            }
            
            ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)linkerRand - 30, (int)kleinerZeilenabstand * (int)(zeile), (int)linkerRand + 700, (int)kleinerZeilenabstand * (int)(zeile)));

            ppd.AddPrintableObject(new PrintableTextObject("Summe", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand - 30, zeile * kleinerZeilenabstand));
            ppd.AddPrintableObject(new PrintableTextObject(this.FormatDezimal(sumSum) + " EUR", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 410, zeile * kleinerZeilenabstand));
            ppd.AddPrintableObject(new PrintableTextObject(this.FormatDezimal(bereitsBezahlt) + " EUR", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 510, zeile * kleinerZeilenabstand));
            ppd.AddPrintableObject(new PrintableTextObject(this.FormatDezimal(ausstaendig) + " EUR", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 610, zeile * kleinerZeilenabstand));

            if ((counter % 65) != 0) {
                pdd.AddPrintPage(ppd);
            }
            pdd.DoPrint();
        }
        private void buttonJahreswasserpreisErstellen_Click(object sender, EventArgs e) {
            long currentJahr;

            try {
                currentJahr = Int64.Parse(textBoxJahrWasserpreis.Text);
            } catch (FormatException) {
                MessageBox.Show("Das Format vom Jahr scheint ungültig zu sein!");
                return;
            }   
            
            PreisData preis = this.wwvBLComp.GetPreisDataByJahr(currentJahr);
            if (preis == null) {
                PreisForm pf = new PreisForm();
                pf.Init(currentJahr);
                pf.ShowDialog();
                if (!pf.OK) {
                    MessageBox.Show("Kein Preis für das Jahr festgelegt speichern abgebrochen!");
                    return;
                }
                preis = new PreisData(currentJahr, pf.Preis);

                wwvBLComp.InsertPreis(preis);
                preis = new PreisData(currentJahr, pf.Preis);
                if (preis == null) {
                    MessageBox.Show("Preis konnte nicht erstellt werden!");
                }
            }
        }
        public void PrintJahresRechnungen(IList<KundenData> kunden, PreisData preis) {
            foreach (KundenData kunde in kunden) {
                if (kunde.BekommtRechnung == Rechnung.Keine) {
                    MessageBox.Show("Mindestens ein Kunde bekommt keine Rechnung!\r\nVorgang abgebrochen!");
                    return;
                }
            }
            PrintableDocument pdd = new PrintableDocument();
            pdd.DocumentName = "Wasser Werk Verwaltung";

            PrintablePage ppd;
            CultureInfo ci = Thread.CurrentThread.CurrentCulture;
            NumberFormatInfo nfi = ci.NumberFormat;
            foreach(KundenData kunde in kunden){
                ppd = new PrintablePage();
                JahresDatenData jdd = this.GetJahresdataByKundenIDandYear(kunde.Id, preis.Jahr);

                if (jdd != null) {
                    if (jdd.RechnungsNummerJahr == null)
                    {
                        jdd.RechnungsNummerJahr = setGanzJahresRechnungsNummer(jdd.Id);
                    }
                    ppd.AddPrintableObject(new PrintableTextObject(WASSERWERK_WEINBERGER, new Font("Arial", 15, FontStyle.Bold), Brushes.Black, linkerRand, obererRand + 0 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(BAHNHOFSTRASSE_27, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 1 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(_3350_STADT_HAAG, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 2 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(TEL, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 3 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Herr/Frau/Fa", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 6 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(kunde.Vorname + " " + kunde.Nachname, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 7 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(kunde.Strasse, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 8 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(kunde.Ort, new Font("Arial", stdFontSize, FontStyle.Bold | FontStyle.Underline), Brushes.Black, linkerRand, obererRand + 9 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("RechnungsNr: " + jdd.getFullRechnungsNummerGanzJahr(), new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand + 437, obererRand + 9.1F * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Jahreswasserrechnung " + preis.Jahr, new Font("Arial", 15, FontStyle.Bold), Brushes.Black, linkerRand + 180, obererRand + 13 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject(DateTime.Now.Date.ToString("dd.MM.yyyy", DateTimeFormatInfo.InvariantInfo), new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand + 575, obererRand + 15 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("für das Objekt:", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 17 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(kunde.Objekt, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, mittelinkerRand, obererRand + 17 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("Zählerstand alt/neu =", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 18 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(jdd.ZaehlerStandAlt + " m³ / " + jdd.ZaehlerStandNeu + " m³", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, mittelinkerRand, obererRand + 18 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("Tauschzählerst. Einbau/neu =", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 19 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(jdd.TauschZaehlerStandAlt + " m³ / " + jdd.TauschZaehlerStandNeu + " m³", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, mittelinkerRand, obererRand + 19 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("Wasserverbrauch =", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 20 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(this.calcVerbrauch(jdd) + " m³", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, mittelinkerRand, obererRand + 20 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("Wassergebühr/m³ =", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 21 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("EUR  " + FormatDezimal(preis.Preis) + " + Mwst", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, mittelinkerRand, obererRand + 21 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Wasserkosten =", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 23 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("EUR " + FormatDezimal(Math.Round(this.calcVerbrauch(jdd) * preis.Preis, 2)), new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, mittlererRand, obererRand + 23 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("netto", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, rechterRand, obererRand + 23 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("Zählermiete/Grundgebühr =", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 24 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("EUR " + FormatDezimal(kunde.Zaehlermiete), new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, mittlererRand, obererRand + 24 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("netto", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, rechterRand, obererRand + 24 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("Sonstige Forderungen: " + jdd.SonstigeForderungenText + " =", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 25 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableFillRectangleObject(Brushes.White, (int)mittlererRand + 2, (int)(obererRand + 25 * zeilenabstand), 300, 20));

                    ppd.AddPrintableObject(new PrintableTextObject("EUR " + FormatDezimal(jdd.SonstigeForderungenValue), new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, mittlererRand, obererRand + 25 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("netto", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, rechterRand, obererRand + 25 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)linkerRand, (int)(obererRand + 26 * zeilenabstand), (int)linkerRand + 680, (int)(obererRand + 26 * zeilenabstand)));
                    
                    ppd.AddPrintableObject(new PrintableTextObject("Rechnungssumme netto =", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 26 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("EUR " + FormatDezimal(this.calcJahresrechnungNetto(jdd, kunde, preis)), new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, mittlererRand, obererRand + 26 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("zuzügl 10% Mwst =", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 27 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("EUR " + FormatDezimal(this.calcMwSt(jdd,kunde,preis)), new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, mittlererRand, obererRand + 27 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)linkerRand, (int)(obererRand + 28 * zeilenabstand), (int)linkerRand + 680, (int)(obererRand + 28 * zeilenabstand)));

                    ppd.AddPrintableObject(new PrintableTextObject("Jahressumme gesamt =", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 28 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("EUR " + FormatDezimal(this.calcJahresrechnungBrutto(jdd,kunde,preis)), new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, mittlererRand, obererRand + 28 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("incl. Mwst.", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, rechterRand, obererRand + 28 * zeilenabstand));

                    if (kunde.BekommtRechnung == Rechnung.Halbjahres) {
                        ppd.AddPrintableObject(new PrintableTextObject("Abzüglich Akontozahlung Halbjahr inkl. Mwst =", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 29 * zeilenabstand));
                        ppd.AddPrintableObject(new PrintableTextObject("EUR -" + FormatDezimal(jdd.BereitsBezahlt), new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, mittlererRand, obererRand + 29 * zeilenabstand));
                    }

                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)linkerRand, (int)(obererRand + 31 * zeilenabstand), (int)linkerRand + 680, (int)(obererRand + 31 * zeilenabstand)));

                    ppd.AddPrintableObject(new PrintableTextObject("Einzuzahlender Betrag = ", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 31 * zeilenabstand));
                    if (kunde.BekommtRechnung == Rechnung.Halbjahres) {
                        ppd.AddPrintableObject(new PrintableTextObject("EUR " + FormatDezimal(this.calcJahresRechnungMinusBereitsBezahlt(jdd,kunde,preis)), new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, mittlererRand, obererRand + 31 * zeilenabstand));
                    } 
                    if (kunde.BekommtRechnung == Rechnung.Jahres) {
                        ppd.AddPrintableObject(new PrintableTextObject("EUR " + FormatDezimal((this.calcJahresrechnungBrutto(jdd, kunde, preis))), new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, mittlererRand, obererRand + 31 * zeilenabstand));
                    }

                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)linkerRand, (int)(obererRand + 32 * zeilenabstand), (int)linkerRand + 680, (int)(obererRand + 32 * zeilenabstand)));

                    ppd.AddPrintableObject(new PrintableTextObject(kunde.Zahlung, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 33 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject(ATU_NUMMER, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 37 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(BANK_VERBINDUNG, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 38 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(TEL_FAX_MOBIL, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 39 * zeilenabstand));
                    
                    pdd.AddPrintPage(ppd);
                }
                this.SetRechnungsDatumJahr(kunde, preis.Jahr, DateTime.Now);
            }

            pdd.DoPrint();
        }
        public void PrintMahnung2(IList<KundenData> kunden, PreisData preis) {

            PrintableDocument pdd = new PrintableDocument();
            pdd.DocumentName = "Wasser Werk Verwaltung";

            PrintablePage ppd;
            foreach (KundenData kunde in kunden) {
                ppd = new PrintablePage();
                JahresDatenData jdd = this.GetJahresdataByKundenIDandYear(kunde.Id, preis.Jahr);
                if (jdd != null) {
                    ppd.AddPrintableObject(new PrintableTextObject(WASSERWERK_WEINBERGER, new Font("Arial", 15, FontStyle.Bold), Brushes.Black, linkerRand, obererRand + 0 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(BAHNHOFSTRASSE_27, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 1 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(_3350_STADT_HAAG, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 2 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(TEL, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 3 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Herr/Frau/Fa", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 6 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(kunde.Vorname + " " + kunde.Nachname, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 7 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(kunde.Strasse, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 8 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(kunde.Ort, new Font("Arial", stdFontSize, FontStyle.Bold | FontStyle.Underline), Brushes.Black, linkerRand, obererRand + 9 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Betrifft: 2. Zahlungserinnerung Jahreswasserrechung " + preis.Jahr, new Font("Arial", 16, FontStyle.Bold), Brushes.Black, linkerRand, obererRand + 13 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject(DateTime.Now.Date.ToString("dd.MM.yyyy", DateTimeFormatInfo.InvariantInfo), new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand + 575, obererRand + 15 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Sehr geehrte/r Herr/Frau " + kunde.Nachname + "!", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 17 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Trotz Zahlungserinnerung ist die Zahlung Ihrer Jahreswasserrechnung nicht bei uns", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 20 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("eingegangen.", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 21 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Wir ersuchen Sie dringend den Rechnungsbetrag von € " + this.calcJahresRechnungMinusBereitsBezahlt(jdd,kunde,preis) + " zuzüglich", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 23 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("Mahnspesen von € 5,-, das sind", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 24 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("€ " + (this.calcJahresRechnungMinusBereitsBezahlt(jdd,kunde,preis) + 5) + " Mahnbetrag auf unser Konto Nummer", new Font("Arial", stdFontSize, FontStyle.Underline), Brushes.Black, linkerRand + 260, obererRand + 24 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("267 126 769 00, BLZ 20111, Erste Bank,", new Font("Arial", stdFontSize, FontStyle.Underline), Brushes.Black, linkerRand, obererRand + 25 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("zu überweisen.", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand + 330, obererRand + 25 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Sollte der Betrag bis zum", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 27 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(DateTime.Now.AddDays(14).Date.ToString("dd.MM.yyyy", DateTimeFormatInfo.InvariantInfo), new Font("Arial", stdFontSize, FontStyle.Bold | FontStyle.Underline), Brushes.Black, linkerRand + 205, obererRand + 27 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("nicht bei uns eingelangt sein, wird Ihr Akt", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand + 300, obererRand + 27 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("automatisch an unseren Rechtsvertreter weitergeleitet, wodurch für Sie mit", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 28 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("erheblichen Mehrkosten zu rechnen ist.", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 29 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Sollte Ihre Bezahlung inzwischen schon unterwegs sein, betrachten Sie dieses ", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 31 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("Schreiben bitte als gegenstandslos.", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 32 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Mit bestem Dank,", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 35 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("Ing. Waltraud Weinberger-Hairas", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 38 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(WASSERWERK_WEINBERGER, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 39 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject(ATU_NUMMER, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 42 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(BANK_VERBINDUNG, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 43 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(TEL_FAX_MOBIL, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 44 * zeilenabstand));

                    pdd.AddPrintPage(ppd);
                }
            }

            pdd.DoPrint();
        }
Ejemplo n.º 9
0
 public void InitVisitTest() {
     IPreis preisDB = Database.CreatePreis();
     jahr = (long)rand.Next();
     preis = new PreisData(jahr, 23.8);
     Assert.IsTrue(preisDB.Insert(preis));
 }
 public double calcJahresrechnungBrutto(JahresDatenData jdd, KundenData kunde, PreisData preis) {
     return Math.Round(this.calcJahresrechnungNetto(jdd, kunde, preis) + this.calcMwSt(jdd,kunde,preis), 2);
 }
 public PreisData InsertPreis(PreisData preis) {
     IPreis preisDB = Database.CreatePreis();
     bool b = preisDB.Insert(preis);
     if (b) {
         preis = new PreisData(preis.Jahr,
                     preis.Preis);
         return preis;
     } else {
         return null;
     }
 }
 public double calcJahresrechnungNetto(JahresDatenData jdd, KundenData kunde, PreisData preis) {
     return Math.Round((((double)this.calcVerbrauch(jdd)) * preis.Preis) + kunde.Zaehlermiete + jdd.SonstigeForderungenValue, 2);
 }
 public double calcMwSt(JahresDatenData jdd, KundenData kunde, PreisData preis) {
     return Math.Round(calcJahresrechnungNetto(jdd, kunde, preis) * 0.1,2);
 }
 public double calcJahresRechnungMinusBereitsBezahlt(JahresDatenData jdd, KundenData kunde, PreisData preis) {
     return Math.Round(calcJahresrechnungBrutto(jdd,kunde,preis) - jdd.BereitsBezahlt,2);
 }
 public void PrintHalbjahresrechnungsdatumUebersicht(IList<KundenData> kunden, PreisData preis) {
     MessageBox.Show("Noch nicht implementiert!");
 }
        private void jahrHinzufuegen(long currentJahr) {
            PreisData preis = this.wwvBLComp.GetPreisDataByJahr(currentJahr);
            if (preis == null)
            {
                MessageBox.Show("Für das Jahr ist noch kein Preis festgelegt!");
                PreisForm pf = new PreisForm();
                pf.Init(currentJahr);
                pf.ShowDialog();
                if (!pf.OK)
                {
                    MessageBox.Show("Kein Preis für das Jahr festgelegt speichern abgebrochen!");
                    return;
                }
                preis = new PreisData(currentJahr, pf.Preis);

                wwvBLComp.InsertPreis(preis);
                preis = new PreisData(currentJahr, pf.Preis);
                if (preis == null)
                {
                    MessageBox.Show("Preis konnte nicht erstellt werden!");
                    return;
                }
            }

            JahresDatenData jddOld = this.wwvBLComp.GetJahresdataByKundenIDandYear(currentKunde.Id, currentJahr);
            if (jddOld != null) {
                MessageBox.Show("Für das Jahr " + currentJahr + " und den Kunden " + currentKunde.Vorname + " " + currentKunde.Nachname + " ist bereits ein Jahr angelegt!");
                return;
            }

            foreach (ZaehlerStandElementControl zscLoop in zaehlerStandElementControlList) {
                if (zscLoop.Jahr == currentJahr) {
                    MessageBox.Show("Für das Jahr " + currentJahr + " und den Kunden " + currentKunde.Vorname + " " + currentKunde.Nachname + " ist bereits ein Jahr hinzugefügt!\r\nBitte speicherm!!");
                    return;
                }
            }

            JahresDatenData jahresDatenData = new JahresDatenData(0, currentKunde.Id, 0, 0, currentJahr, DateTime.Now, 0.0, 0, 0, "", 0.0, 0.0, new DateTime(1901, 1, 1), new DateTime(1901, 1, 1), null, null);  // FIXME TODO
            jahresDataList.Add(jahresDatenData);

            foreach (ZaehlerStandElementControl zsecl in zaehlerStandElementControlList)
            {
                this.Controls.Remove(zsecl);
            }

            ZaehlerStandElementControl zsc = new ZaehlerStandElementControl();
            zsc.Init(this.wwvBLComp, jahresDatenData, currentKunde);
            zaehlerStandElementControlList.Add(zsc);

            this.placeZaehlerStandElementControl();
        }
        public void PrintZaehlerstandabrechnungsFormular(IList<KundenData> selectedKundenList, PreisData preis, string textZaehlerstandformular, DateTime von, DateTime bis) {
            PrintableDocument pdd = new PrintableDocument();
            pdd.DocumentName = "Wasser Werk Verwaltung";

            PrintablePage ppd;
            foreach (KundenData kunde in selectedKundenList) {
                ppd = new PrintablePage();
                JahresDatenData jdd = this.GetJahresdataByKundenIDandYear(kunde.Id, preis.Jahr);
                if (jdd != null) {

                    ppd.AddPrintableObject(new PrintableTextObject(WASSERWERK_WEINBERGER, new Font("Arial", 15, FontStyle.Bold), Brushes.Black, linkerRand, obererRand - 2 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(BAHNHOFSTRASSE_27, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand - 1 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(_3350_STADT_HAAG, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 0 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(TEL, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 1 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Herr/Frau/Fa", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 4 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(kunde.Vorname + " " + kunde.Nachname, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 5 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(kunde.Strasse, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 6 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(kunde.Ort, new Font("Arial", stdFontSize, FontStyle.Bold | FontStyle.Underline), Brushes.Black, linkerRand, obererRand + 7 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Ablesung des Zählerstandes " + preis.Jahr, new Font("Arial", 12, FontStyle.Bold), Brushes.Black, linkerRand, obererRand + 9 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)linkerRand, (int)(obererRand + 11 * zeilenabstand), (int)(linkerRand + 650), (int)(obererRand + 11 * zeilenabstand)));

                    ppd.AddPrintableObject(new PrintableTextObject("Sehr geehrte/r Herr/Frau " + kunde.Nachname + "!", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 12 * zeilenabstand));

                    string[] lines = textZaehlerstandformular.Split(new string[] {"\r\n"}, StringSplitOptions.None);
                    for(int i = 0; i < lines.Length; i++) {
                        ppd.AddPrintableObject(new PrintableTextObject(lines[i], new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + (14 + i) * zeilenabstand));
                    }

                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)linkerRand, (int)(obererRand + 23 * zeilenabstand), (int)(linkerRand + 650), (int)(obererRand + 23 * zeilenabstand)));

                    ppd.AddPrintableObject(new PrintableTextObject("An das", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 24 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(WASSERWERK_WEINBERGER, new Font("Arial", 14, FontStyle.Bold), Brushes.Black, linkerRand, obererRand + 25 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(BAHNHOFSTRASSE_27, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 26 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(_3350_STADT_HAAG, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 27 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Abschnitt in den Briefschlitz", new Font("Arial", 10, FontStyle.Regular), Brushes.Black, linkerRand + 400, obererRand + 24 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("Bahnhofstraße 27 werfen, oder", new Font("Arial", 10, FontStyle.Regular), Brushes.Black, linkerRand + 400, obererRand + 25 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("Postgebühr beim Empfänger einheben.", new Font("Arial", 10, FontStyle.Regular), Brushes.Black, linkerRand + 400, obererRand + 26 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Ablesezeitraum: " + von.ToString("dd.MM.yyyy", DateTimeFormatInfo.InvariantInfo) + " bis " + bis.ToString("dd.MM.yyyy", DateTimeFormatInfo.InvariantInfo) + "!!!!", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 30 * zeilenabstand));


                    ppd.AddPrintableObject(new PrintableTextObject("Name:", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 31 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(kunde.Vorname + " " + kunde.Nachname, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand + 160, obererRand + 31 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Straße:", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 32.5F * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(kunde.Strasse, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand + 160, obererRand + 32.5F * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("PLZ, Ort:", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 34 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(kunde.Ort, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand + 160, obererRand + 34 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Objekt:", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 35.5F * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(kunde.Objekt, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand + 160, obererRand + 35.5F * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Telefon/Handy*:", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 37 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(kunde.Tel, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand + 160, obererRand + 37 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Personen wohnhaft im", new Font("Arial", 10, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 38.5F * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("Objekt (inkl. Kinder):", new Font("Arial", 10, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 39.2F * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(kunde.PersonenImObjekt.ToString(), new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand + 160, obererRand + 38.5F * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Zähler-Nummer.", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 41.5F * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(kunde.ZaehlerNummer, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand + 160, obererRand + 41.5F * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Zähler-Stand:", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 43 * zeilenabstand));
                    
                    ppd.AddPrintableObject(new PrintableTextObject("Ablesedatum:", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 44.5F * zeilenabstand));
                
                    ppd.AddPrintableObject(new PrintableTextObject("Unterschrift:", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand + 350, obererRand + 44.5F * zeilenabstand));
                    
                    ppd.AddPrintableObject(new PrintableTextObject("* Bitte Telefon- oder Handy-Nummer für den Fall eines Leitungsgebrechens angeben.", new Font("Arial", 10, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 46 * zeilenabstand));

                    for (int i = 0; i < 11; i++) {
                        ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)linkerRand, (int)(obererRand + (31 + i * 1.5) * zeilenabstand), (int)(linkerRand + 650), (int)(obererRand + (31 + i * 1.5) * zeilenabstand)));
                    }


                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)(linkerRand), (int)(obererRand + (31) * zeilenabstand), (int)(linkerRand), (int)(obererRand + (31 + 10 * 1.5) * zeilenabstand)));
                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)(linkerRand + 158), (int)(obererRand + (31) * zeilenabstand), (int)(linkerRand + 158), (int)(obererRand + (31 + 6 * 1.5) * zeilenabstand)));
                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)(linkerRand + 403), (int)(obererRand + (31) * zeilenabstand), (int)(linkerRand + 403), (int)(obererRand + (31 + 6 * 1.5) * zeilenabstand)));
                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)(linkerRand + 650), (int)(obererRand + (31) * zeilenabstand), (int)(linkerRand + 650), (int)(obererRand + (31 + 10 * 1.5) * zeilenabstand)));

                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)(linkerRand + 158), (int)(obererRand + (31 + 7 * 1.5) * zeilenabstand), (int)(linkerRand + 158), (int)(obererRand + (31 + 10 * 1.5) * zeilenabstand)));
                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)(linkerRand + 403), (int)(obererRand + (31 + 7 * 1.5) * zeilenabstand), (int)(linkerRand + 403), (int)(obererRand + (31 + 8 * 1.5) * zeilenabstand)));

                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)(linkerRand + 348), (int)(obererRand + (31 + 9 * 1.5) * zeilenabstand), (int)(linkerRand + 348), (int)(obererRand + (31 + 10 * 1.5) * zeilenabstand)));
                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)(linkerRand + 452), (int)(obererRand + (31 + 9 * 1.5) * zeilenabstand), (int)(linkerRand + 452), (int)(obererRand + (31 + 10 * 1.5) * zeilenabstand)));

                    //Fetter
                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)(linkerRand + 349), (int)(obererRand + (31 + 9 * 1.5) * zeilenabstand), (int)(linkerRand + 349), (int)(obererRand + (31 + 10 * 1.5) * zeilenabstand)));
                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)(linkerRand + 453), (int)(obererRand + (31 + 9 * 1.5) * zeilenabstand), (int)(linkerRand + 453), (int)(obererRand + (31 + 10 * 1.5) * zeilenabstand)));
                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)(linkerRand + 347), (int)(obererRand + (31 + 9 * 1.5) * zeilenabstand), (int)(linkerRand + 347), (int)(obererRand + (31 + 10 * 1.5) * zeilenabstand)));
                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)(linkerRand + 451), (int)(obererRand + (31 + 9 * 1.5) * zeilenabstand), (int)(linkerRand + 451), (int)(obererRand + (31 + 10 * 1.5) * zeilenabstand)));

                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)(linkerRand + 651), (int)(obererRand + (31 + 8 * 1.5) * zeilenabstand), (int)(linkerRand + 651), (int)(obererRand + (31 + 10 * 1.5) * zeilenabstand)));
                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)(linkerRand + 157), (int)(obererRand + (31 + 8 * 1.5) * zeilenabstand), (int)(linkerRand + 157), (int)(obererRand + (31 + 10 * 1.5) * zeilenabstand)));
                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)(linkerRand + 649), (int)(obererRand + (31 + 8 * 1.5) * zeilenabstand), (int)(linkerRand + 649), (int)(obererRand + (31 + 10 * 1.5) * zeilenabstand)));
                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)(linkerRand + 159), (int)(obererRand + (31 + 8 * 1.5) * zeilenabstand), (int)(linkerRand + 159), (int)(obererRand + (31 + 10 * 1.5) * zeilenabstand)));


                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)(linkerRand + 158), (int)(obererRand + (31 + 8 * 1.5) * zeilenabstand) - 1, (int)(linkerRand + 650), (int)(obererRand + (31 + 8 * 1.5) * zeilenabstand) - 1));
                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)(linkerRand + 158), (int)(obererRand + (31 + 9 * 1.5) * zeilenabstand) - 1, (int)(linkerRand + 650), (int)(obererRand + (31 + 9 * 1.5) * zeilenabstand) - 1));
                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)(linkerRand + 158), (int)(obererRand + (31 + 8 * 1.5) * zeilenabstand) + 1, (int)(linkerRand + 650), (int)(obererRand + (31 + 8 * 1.5) * zeilenabstand) + 1));
                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)(linkerRand + 158), (int)(obererRand + (31 + 9 * 1.5) * zeilenabstand) + 1, (int)(linkerRand + 650), (int)(obererRand + (31 + 9 * 1.5) * zeilenabstand) + 1));

                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)(linkerRand + 158), (int)(obererRand + (31 + 10 * 1.5) * zeilenabstand) - 1, (int)(linkerRand + 350), (int)(obererRand + (31 + 10 * 1.5) * zeilenabstand) - 1));
                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)(linkerRand + 452), (int)(obererRand + (31 + 10 * 1.5) * zeilenabstand) - 1, (int)(linkerRand + 650), (int)(obererRand + (31 + 10 * 1.5) * zeilenabstand) - 1));
                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)(linkerRand + 158), (int)(obererRand + (31 + 10 * 1.5) * zeilenabstand) + 1, (int)(linkerRand + 350), (int)(obererRand + (31 + 10 * 1.5) * zeilenabstand) + 1));
                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)(linkerRand + 452), (int)(obererRand + (31 + 10 * 1.5) * zeilenabstand) + 1, (int)(linkerRand + 650), (int)(obererRand + (31 + 10 * 1.5) * zeilenabstand) + 1));

                    pdd.AddPrintPage(ppd);
                }
            }

            pdd.DoPrint();
        }
 public bool UpdatePreis(PreisData jahresDatum) {
     IPreis preisDB = Database.CreatePreis();
     return preisDB.Update(jahresDatum);
 }
        public void PrintMahnung1(IList<KundenData> kunden, PreisData preis) {

            PrintableDocument pdd = new PrintableDocument();
            pdd.DocumentName = "Wasser Werk Verwaltung";

            PrintablePage ppd;
            foreach (KundenData kunde in kunden) {
                ppd = new PrintablePage();
                JahresDatenData jdd = this.GetJahresdataByKundenIDandYear(kunde.Id, preis.Jahr);
                if (jdd != null) {
                    ppd.AddPrintableObject(new PrintableTextObject(WASSERWERK_WEINBERGER, new Font("Arial", 15, FontStyle.Bold), Brushes.Black, linkerRand, obererRand + 0 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(BAHNHOFSTRASSE_27, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 1 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(_3350_STADT_HAAG, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 2 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(TEL, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 3 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Herr/Frau/Fa", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 6 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(kunde.Vorname + " " + kunde.Nachname, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 7 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(kunde.Strasse, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 8 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(kunde.Ort, new Font("Arial", stdFontSize, FontStyle.Bold | FontStyle.Underline), Brushes.Black, linkerRand, obererRand + 9 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Betrifft: Zahlungserinnerung Jahreswasserrechung " + preis.Jahr, new Font("Arial", 15, FontStyle.Bold), Brushes.Black, linkerRand, obererRand + 13 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject(DateTime.Now.Date.ToString("dd.MM.yyyy", DateTimeFormatInfo.InvariantInfo), new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand + 575, obererRand + 15 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Sehr geehrte/r Herr/Frau " + kunde.Nachname + "!", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 17 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Bitte denken Sie innerhalb der nächsten 14 Tagen an die Bezahlung unserer", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 20 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("Jahreswasserrechnung " + preis.Jahr, new Font("Arial", stdFontSize, FontStyle.Bold), Brushes.Black, linkerRand, obererRand + 21 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("für das Objekt " + kunde.Objekt + ",", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand + 250, obererRand + 21 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("mit € " + this.calcJahresRechnungMinusBereitsBezahlt(jdd,kunde,preis) + " zuzüglich Mahnspesen von € 3,-.", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 22 * zeilenabstand));

                    ppd.AddPrintableObject(new PrintableTextObject("Sollte Ihre Bezahlung inzwischen schon unterwegs sein, betrachten Sie dieses ", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 24 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("Schreiben bitte als gegenstandslos. Andernfalls überweisen Sie bitte den", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 25 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("Betrag von € " + (this.calcJahresRechnungMinusBereitsBezahlt(jdd, kunde, preis) + 3.0).ToString() + " auf unser Konto Nummer 267 126 769 00, BLZ 20111, Erste Bank.", new Font("Arial", stdFontSize, FontStyle.Underline), Brushes.Black, linkerRand, obererRand + 26 * zeilenabstand));                   

                    ppd.AddPrintableObject(new PrintableTextObject("Mit bestem Dank,", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 30 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject("Ing. Waltraud Weinberger-Hairas", new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 33 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(WASSERWERK_WEINBERGER, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 34 * zeilenabstand));                    

                    ppd.AddPrintableObject(new PrintableTextObject(ATU_NUMMER, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 40 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(BANK_VERBINDUNG, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 41 * zeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(TEL_FAX_MOBIL, new Font("Arial", stdFontSize, FontStyle.Regular), Brushes.Black, linkerRand, obererRand + 42 * zeilenabstand));

                    pdd.AddPrintPage(ppd);
                }
            }

            pdd.DoPrint();
        }
Ejemplo n.º 20
0
        public bool Update(PreisData preis) {
            try {
                DbUtil.OpenConnection();

                if (updateByIdCmd == null) {
                    updateByIdCmd = DbUtil.CreateCommand(SQL_UPDATE_BY_ID, DbUtil.CurrentConnection);

                    updateByIdCmd.Parameters.Add(DbUtil.CreateParameter("@Preis", DbType.Double));
                    updateByIdCmd.Parameters.Add(DbUtil.CreateParameter("@Jahr", DbType.Int64));
                }

                ((IDataParameter)updateByIdCmd.Parameters["@Preis"]).Value = preis.Preis;
                ((IDataParameter)updateByIdCmd.Parameters["@Jahr"]).Value = preis.Jahr;

                return updateByIdCmd.ExecuteNonQuery() == 1;
            } finally {
                DbUtil.CloseConnection();
            }
        }
        public void PrintJahresrechnungsdatumUebersicht(IList<KundenData> kunden, PreisData preis) {
            PrintableDocument pdd = new PrintableDocument();
            pdd.DocumentName = "Wasser Werk Verwaltung";
            int seitencounter = 1;
            PrintablePage ppd = new PrintablePage();
            ppd.AddPrintableObject(new PrintableTextObject("Seite " + seitencounter, new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand - 30, obererRand - 30));
            ppd.AddPrintableObject(new PrintableTextObject("Rechnungsdaten  " + preis.Jahr, new Font("Arial", 12, FontStyle.Bold), Brushes.Black, mittelinkerRand - 20, obererRand - 30));
            ppd.AddPrintableObject(new PrintableTextObject(DateTime.Now.ToShortDateString(), new Font("Arial", 9, FontStyle.Bold), Brushes.Black, rechterRand, obererRand - 30));
            ppd.AddPrintableObject(new PrintableTextObject("Name", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand - 30, obererRand + 15));
            ppd.AddPrintableObject(new PrintableTextObject("Vorname", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 60, obererRand + 15));
            ppd.AddPrintableObject(new PrintableTextObject("Objekt", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 160, obererRand + 15));
            ppd.AddPrintableObject(new PrintableTextObject("Re-datum", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 300, obererRand + 15));
            ppd.AddPrintableObject(new PrintableTextObject("AKonto 1/2", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 380, obererRand + 15));
            ppd.AddPrintableObject(new PrintableTextObject("ReSum net.", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 460, obererRand + 15));
            ppd.AddPrintableObject(new PrintableTextObject("10 % Mwst", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 540, obererRand + 15));
            ppd.AddPrintableObject(new PrintableTextObject("ReSum brut.", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 620, obererRand + 15));


            int kleinerZeilenabstand = 15;
            int zeile = 8;
            int counter = 0;
            ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)linkerRand - 30, (int)kleinerZeilenabstand * (int)(zeile), (int)linkerRand + 700, (int)kleinerZeilenabstand * (int)(zeile)));
            double sumRechnungsSummeNetto = 0;
            double sum10ProzMwst = 0;
            double sumReSumBrutto = 0;
            double sumAKonto = 0;

            foreach (KundenData kunde in kunden) {
                JahresDatenData jdd = this.GetJahresdataByKundenIDandYear(kunde.Id, preis.Jahr);

                bool rechnung;
                if (jdd.RechnungsDatumJahr.Day == 1 && jdd.RechnungsDatumJahr.Month == 1 && jdd.RechnungsDatumJahr.Year == 1901) {
                    rechnung = false;
                } else {
                    rechnung = true;
                }

                if (!rechnung) {
                    ppd.AddPrintableObject(new PrintableFillRectangleObject(Brushes.LightGray, (int)linkerRand - 30, zeile * kleinerZeilenabstand + 1, 329, 13));
                }

                ppd.AddPrintableObject(new PrintableTextObject(kunde.Nachname, new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand - 30, zeile * kleinerZeilenabstand));
                 ppd.AddPrintableObject(new PrintableFillRectangleObject(Brushes.White,(int)linkerRand + 59,zeile * kleinerZeilenabstand + 1,300,13));
                
                ppd.AddPrintableObject(new PrintableTextObject(kunde.Vorname, new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 60, zeile * kleinerZeilenabstand));
                ppd.AddPrintableObject(new PrintableFillRectangleObject(Brushes.White, (int)linkerRand + 159, zeile * kleinerZeilenabstand + 1, 300, 13));

                ppd.AddPrintableObject(new PrintableTextObject(kunde.Objekt, new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 160, zeile * kleinerZeilenabstand));
                ppd.AddPrintableObject(new PrintableFillRectangleObject(Brushes.White, (int)linkerRand + 299, zeile * kleinerZeilenabstand + 1, 300, 13));

                if (rechnung) {
                    ppd.AddPrintableObject(new PrintableTextObject(jdd.RechnungsDatumJahr.ToShortDateString(), new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 300, zeile * kleinerZeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(this.FormatDezimal(jdd.HalbJahresBetrag) + "EUR", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 380, zeile * kleinerZeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(this.FormatDezimal(this.calcJahresrechnungNetto(jdd, kunde, preis)) + "EUR", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 460, zeile * kleinerZeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(this.FormatDezimal(this.calcMwSt(jdd, kunde, preis)) + "EUR", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 540, zeile * kleinerZeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(this.FormatDezimal(this.calcJahresrechnungBrutto(jdd, kunde, preis)) + "EUR", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 620, zeile * kleinerZeilenabstand));
                }
                
                ppd.AddPrintableObject(new PrintableLineObject(Pens.LightGray, (int)linkerRand - 30, (int)kleinerZeilenabstand * (int)(zeile + 1), (int)linkerRand + 700, (int)kleinerZeilenabstand * (int)(zeile + 1)));
                if (rechnung) {
                    sumRechnungsSummeNetto += this.calcJahresrechnungNetto(jdd, kunde, preis);
                    sum10ProzMwst += this.calcMwSt(jdd, kunde, preis);
                    sumReSumBrutto += this.calcJahresrechnungBrutto(jdd, kunde, preis);
                    sumAKonto += jdd.HalbJahresBetrag;
                }

                zeile++;
                counter++;

                if ((counter % 65) == 0) {
                    pdd.AddPrintPage(ppd);
                    ppd = new PrintablePage();
                    zeile = 8;
                    seitencounter++;

                    ppd.AddPrintableObject(new PrintableTextObject("Seite " + seitencounter, new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand - 30, obererRand - 30));
                    ppd.AddPrintableObject(new PrintableTextObject("Rechnungsdaten  " + preis.Jahr, new Font("Arial", 12, FontStyle.Bold), Brushes.Black, mittelinkerRand - 20, obererRand - 30));
                    ppd.AddPrintableObject(new PrintableTextObject(DateTime.Now.ToShortDateString(), new Font("Arial", 9, FontStyle.Bold), Brushes.Black, rechterRand, obererRand - 30));
                    ppd.AddPrintableObject(new PrintableTextObject("Name", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand - 30, obererRand + 15));
                    ppd.AddPrintableObject(new PrintableTextObject("Vorname", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 60, obererRand + 15));
                    ppd.AddPrintableObject(new PrintableTextObject("Objekt", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 160, obererRand + 15));
                    ppd.AddPrintableObject(new PrintableTextObject("Re-datum", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 300, obererRand + 15));
                    ppd.AddPrintableObject(new PrintableTextObject("AKonto 1/2", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 380, obererRand + 15));
                    ppd.AddPrintableObject(new PrintableTextObject("ReSum net.", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 460, obererRand + 15));
                    ppd.AddPrintableObject(new PrintableTextObject("10 % Mwst", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 540, obererRand + 15));
                    ppd.AddPrintableObject(new PrintableTextObject("ReSum brut.", new Font("Arial", 9, FontStyle.Bold), Brushes.Black, linkerRand + 620, obererRand + 15));
                    

                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)linkerRand - 30, (int)kleinerZeilenabstand * (int)(zeile), (int)linkerRand + 700, (int)kleinerZeilenabstand * (int)(zeile)));
                }
            }

            ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)linkerRand - 30, (int)kleinerZeilenabstand * (int)(zeile), (int)linkerRand + 700, (int)kleinerZeilenabstand * (int)(zeile)));

            ppd.AddPrintableObject(new PrintableTextObject("Summe", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand - 30, zeile * kleinerZeilenabstand));
            ppd.AddPrintableObject(new PrintableTextObject(this.FormatDezimal(sumAKonto) + "EUR", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 380, zeile * kleinerZeilenabstand));
            ppd.AddPrintableObject(new PrintableTextObject(this.FormatDezimal(sumRechnungsSummeNetto) + "EUR", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 460, zeile * kleinerZeilenabstand));
            ppd.AddPrintableObject(new PrintableTextObject(this.FormatDezimal(sum10ProzMwst)+"EUR", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 540, zeile * kleinerZeilenabstand));
            ppd.AddPrintableObject(new PrintableTextObject(this.FormatDezimal(sumReSumBrutto)+"EUR", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 620, zeile * kleinerZeilenabstand));
            

            if ((counter % 65) != 0) {
                pdd.AddPrintPage(ppd);
            }
            pdd.DoPrint();
        }
        //ID  Vorname   Name  Objekt   Re-Betrag netto    Mwst    Re-Betrag brutto 
        public void PrintRechnungsAusgangsListe(IList<KundenData> kunden, PreisData preis) {
            PrintableDocument pdd = new PrintableDocument();
            pdd.DocumentName = "Wasser Werk Verwaltung";

            int seitencounter = 1;
            int kleinerZeilenabstand = 15;
            int zeile = 8;
            int counter = 0;

            PrintablePage ppd = new PrintablePage();
            ppd.AddPrintableObject(new PrintableTextObject("Seite " + seitencounter, new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand - 30, obererRand - 30));
            ppd.AddPrintableObject(new PrintableTextObject("RechnungsAusgangsListe  " + preis.Jahr, new Font("Arial", 12, FontStyle.Bold), Brushes.Black, mittelinkerRand - 20, obererRand - 30));
            ppd.AddPrintableObject(new PrintableTextObject(DateTime.Now.ToShortDateString(), new Font("Arial", 8, FontStyle.Bold), Brushes.Black, rechterRand, obererRand - 30));
            ppd.AddPrintableObject(new PrintableTextObject("ID", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand - 40, obererRand + 15));
            ppd.AddPrintableObject(new PrintableTextObject("Name, Vorname", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand -10, obererRand + 15));
            ppd.AddPrintableObject(new PrintableTextObject("Objekt", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 155, obererRand + 15));
            ppd.AddPrintableObject(new PrintableTextObject("Re-Betrag netto", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 350, obererRand + 15));
            ppd.AddPrintableObject(new PrintableTextObject("Mwst", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 450, obererRand + 15));
            ppd.AddPrintableObject(new PrintableTextObject("Re-Betrag brutto", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 510, obererRand + 15));
            ppd.AddPrintableObject(new PrintableTextObject("RechnungsNr", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 610, obererRand + 15));
            ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)linkerRand - 40, (int)kleinerZeilenabstand * (int)(zeile), (int)linkerRand + 695, (int)kleinerZeilenabstand * (int)(zeile)));

            foreach (KundenData kunde in kunden)
            {
                JahresDatenData jdd = this.GetJahresdataByKundenIDandYear(kunde.Id, preis.Jahr);

                ppd.AddPrintableObject(new PrintableTextObject(Convert.ToString(kunde.Id), new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand - 40, zeile * kleinerZeilenabstand));
                ppd.AddPrintableObject(new PrintableTextObject(kunde.Nachname + " " + kunde.Vorname, new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand - 10, zeile * kleinerZeilenabstand));
                ppd.AddPrintableObject(new PrintableFillRectangleObject(Brushes.White, (int)linkerRand + 153, zeile * kleinerZeilenabstand + 1, 300, 13));
                ppd.AddPrintableObject(new PrintableTextObject(kunde.Objekt, new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 155, zeile * kleinerZeilenabstand));

                if (kunde.BekommtRechnung == Rechnung.Halbjahres) { 
                    ppd.AddPrintableObject(new PrintableTextObject(FormatDezimal(calcHalbJahresrechnungNetto(jdd)), new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 350, zeile * kleinerZeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(FormatDezimal(calcHalbJahresrechnungMwSt(jdd)), new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 450, zeile * kleinerZeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(FormatDezimal(jdd.HalbJahresBetrag), new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 510, zeile * kleinerZeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(jdd.getFullRechnungsNummerHalbJahr(), new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 610, zeile * kleinerZeilenabstand));

                    zeile++;
                }

                if (kunde.BekommtRechnung == Rechnung.Halbjahres || kunde.BekommtRechnung == Rechnung.Jahres)
                {
                    ppd.AddPrintableObject(new PrintableTextObject(FormatDezimal(this.calcJahresrechnungNetto(jdd, kunde, preis)), new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 350, zeile * kleinerZeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(FormatDezimal(this.calcMwSt(jdd, kunde, preis)), new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 450, zeile * kleinerZeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(FormatDezimal(this.calcJahresrechnungBrutto(jdd, kunde, preis)), new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 510, zeile * kleinerZeilenabstand));
                    ppd.AddPrintableObject(new PrintableTextObject(jdd.getFullRechnungsNummerGanzJahr(), new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 610, zeile * kleinerZeilenabstand));
                }

                if (kunde.BekommtRechnung == Rechnung.Keine)
                {
                    ppd.AddPrintableObject(new PrintableTextObject("Kunde bekommt keine Rechnung!", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 350, zeile * kleinerZeilenabstand));
                }
                
                ppd.AddPrintableObject(new PrintableLineObject(Pens.Gray, (int)linkerRand - 40, (int)kleinerZeilenabstand * (int)(zeile + 1), (int)linkerRand + 700, (int)kleinerZeilenabstand * (int)(zeile + 1)));
                zeile++;
                counter++;

                if ((counter % 33) == 0)
                {
                    pdd.AddPrintPage(ppd);
                    ppd = new PrintablePage();
                    zeile = 8;
                    seitencounter++;

                    ppd.AddPrintableObject(new PrintableTextObject("Seite " + seitencounter, new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand - 30, obererRand - 30));
                    ppd.AddPrintableObject(new PrintableTextObject("RechnungsAusgangsListe  " + preis.Jahr, new Font("Arial", 12, FontStyle.Bold), Brushes.Black, mittelinkerRand - 20, obererRand - 30));
                    ppd.AddPrintableObject(new PrintableTextObject(DateTime.Now.ToShortDateString(), new Font("Arial", 8, FontStyle.Bold), Brushes.Black, rechterRand, obererRand - 30));

                    ppd.AddPrintableObject(new PrintableTextObject("ID", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand - 40, obererRand + 15));
                    ppd.AddPrintableObject(new PrintableTextObject("Name, Vorname", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand - 10, obererRand + 15));
                    ppd.AddPrintableObject(new PrintableTextObject("Objekt", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 155, obererRand + 15));
                    ppd.AddPrintableObject(new PrintableTextObject("Re-Betrag netto", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 350, obererRand + 15));
                    ppd.AddPrintableObject(new PrintableTextObject("Mwst", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 450, obererRand + 15));
                    ppd.AddPrintableObject(new PrintableTextObject("Re-Betrag brutto", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 510, obererRand + 15));
                    ppd.AddPrintableObject(new PrintableTextObject("RechnungsNr", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, linkerRand + 610, obererRand + 15));
                    ppd.AddPrintableObject(new PrintableLineObject(Pens.Black, (int)linkerRand - 40, (int)kleinerZeilenabstand * (int)(zeile), (int)linkerRand + 695, (int)kleinerZeilenabstand * (int)(zeile)));
                }
            }

            if ((counter % 33) != 0)
            {
                pdd.AddPrintPage(ppd);
            }
            pdd.DoPrint();
        }
 public bool hasKundeJahresdataByPreis(KundenData kunde, PreisData preis) {
     JahresDatenData jdd = this.GetJahresdataByKundenIDandYear(kunde.Id, preis.Jahr);
     return (jdd == null) ? false : true;
 }
        private void buttonPreisImJahrAendern_Click(object sender, EventArgs e) {
            long currentJahr;

            try {
                currentJahr = Int64.Parse(textBoxJahrWasserpreis.Text);
            } catch (FormatException) {
                MessageBox.Show("Das Format vom Jahr scheint ungültig zu sein!");
                return;
            }            

            PreisForm pf = new PreisForm();
            PreisData pd = wwvBLComp.GetPreisDataByJahr(currentJahr);
            if (pd == null) {
                MessageBox.Show("Für dieses Jahr gibt es noch keinen Preis - bitte vor dem ändern anlegen");
                return;
            } else {
                pf.Init(currentJahr, wwvBLComp.GetPreisDataByJahr(currentJahr).Preis);
            }
            pf.ShowDialog();
            if (!pf.OK) {
                MessageBox.Show("Kein neuer Preis für das Jahr festgelegt speichern abgebrochen!");
                return;
            }
            PreisData preis = new PreisData(currentJahr, pf.Preis);

            if (!wwvBLComp.UpdatePreis(preis)) {
                MessageBox.Show("Preis konnte nicht gespeichert werden!");
                return;
            }
        }