protected Ergebnis berechneTapete(int flaeche, Tapetenrolle produkt) { Ergebnis ergebnis = null; int anzahl = (int)Math.Ceiling(1f * flaeche / (produkt.getFlaeche())); //10000f)); decimal preis = anzahl * produkt.preis; ergebnis = new Ergebnis(flaeche, anzahl, preis, produkt); return(ergebnis); }
protected Ergebnis berechneFliese(int flaeche, Fliesenpaket produkt) { Ergebnis ergebnis = null; int anzahl = (int)Math.Ceiling((flaeche * 1f / produkt.getFlaeche()) * 1.05); decimal preis = anzahl * produkt.preis; ergebnis = new Ergebnis(flaeche, anzahl, preis, produkt); return(ergebnis); }
protected Ergebnis berechneTapete(int laenge, int breite, Tapetenrolle produkt) { Ergebnis ergebnis = null; int BahnenanzahlGesamt = Convert.ToInt32(Math.Ceiling((breite * 1f / produkt.breite))); int LaengeEinerBahnSchritt1 = Convert.ToInt32(Math.Ceiling((laenge * 1f / produkt.rapport))); int LaengeEinerBahnSchritt2 = Convert.ToInt32(Math.Ceiling((produkt.rapport * 1f * LaengeEinerBahnSchritt1))); int anzahlBahnenProRolle = Convert.ToInt32(Math.Floor((produkt.laenge * 1f / LaengeEinerBahnSchritt2))); int anzahlRollen = Convert.ToInt32(Math.Ceiling((BahnenanzahlGesamt * 1f / anzahlBahnenProRolle))); decimal preis = anzahlRollen * produkt.preis; ergebnis = new Ergebnis(laenge * breite, anzahlRollen, preis, produkt); return(ergebnis); }
public void berechneZusatzprodukte() { this.flaecheTapeten = 0; this.flaecheFliesen = 0; foreach (Ergebnis ergebnis in this.ergebnisse) { switch (ergebnis.produkt.GetType().Name) { case "Fliesenpaket": this.flaecheFliesen += ergebnis.flaecheGesamt; break; case "Tapetenrolle": this.flaecheTapeten += ergebnis.flaecheGesamt; break; } } foreach (Zusatzprodukt zusatzprodukt in this.zusatzprodukte) { Ergebnis ergebnis = new Ergebnis(); if (zusatzprodukt.GetType() == typeof(Tapetenkleister)) { ergebnis.flaecheGesamt = this.flaecheTapeten; ergebnis.anzahlProdukt = Convert.ToInt32(Math.Ceiling((this.flaecheTapeten * 1f) / 10000 / zusatzprodukt.getFlaeche())); ergebnis.produkt = zusatzprodukt; ergebnis.preis = ergebnis.anzahlProdukt * zusatzprodukt.preis; } if (zusatzprodukt.GetType() == typeof(Fliesenkleber)) { ergebnis.flaecheGesamt = this.flaecheFliesen; ergebnis.anzahlProdukt = Convert.ToInt32(Math.Ceiling((this.flaecheFliesen * 1f) / 10000 / zusatzprodukt.getFlaeche())); } if (zusatzprodukt.GetType() == typeof(Fugenmoertel)) { ergebnis.flaecheGesamt = this.flaecheFliesen; ergebnis.anzahlProdukt = Convert.ToInt32(Math.Ceiling((this.flaecheFliesen * 1f) / 10000 / zusatzprodukt.getFlaeche())); } ergebnis.produkt = zusatzprodukt; ergebnis.preis = ergebnis.anzahlProdukt * zusatzprodukt.preis; this.ergebnisse.Add(ergebnis); } }
public void kalkuliere() { this.updateProduktlisten(); this.ergebnisse = new List <Ergebnis>(); foreach (string key in produktlisteTapetenrollen.Keys) // Produkt { int flaecheWaende = 0; Ergebnis ergebnis = null; List <Ergebnis> zwischenergebnisse = new List <Ergebnis>(); foreach (Raum raum in this.raeume) { foreach (Wand wand in raum.waende) { if (wand.tapete.artikelnummer == this.produktkatalog.getProdukt(key).artikelnummer) { if (((Tapetenrolle)this.produktkatalog.getProdukt(key)).rapport > 0) { zwischenergebnisse.Add(this.berechneTapete(wand.laenge, wand.breite, (Tapetenrolle)this.produktkatalog.getProdukt(key))); } else { flaecheWaende += wand.getFlaeche(); } } } } if (((Tapetenrolle)this.produktkatalog.getProdukt(key)).rapport == 0) { ergebnis = this.berechneTapete(flaecheWaende, (Tapetenrolle)this.produktkatalog.getProdukt(key)); } else { int anzahl = 0; int flaeche = 0; decimal preis = 0; foreach (Ergebnis zwischenergebnis in zwischenergebnisse) { anzahl += zwischenergebnis.anzahlProdukt; flaeche += zwischenergebnis.flaecheGesamt; preis += zwischenergebnis.preis; } ergebnis = new Ergebnis(flaeche, anzahl, preis, (Tapetenrolle)this.produktkatalog.getProdukt(key)); } if (ergebnis != null) { ergebnisse.Add(ergebnis); } } foreach (string key in produktlisteFliesenpakete.Keys) { int flaecheBoeden = 0; foreach (Raum raum in this.raeume) { foreach (Boden boden in raum.boeden) { if (boden.fliesen.artikelnummer == this.produktkatalog.getProdukt(key).artikelnummer) { flaecheBoeden += boden.getFlaeche(); } } } Ergebnis ergebnis = this.berechneFliese(flaecheBoeden, (Fliesenpaket)this.produktkatalog.getProdukt(key)); if (ergebnis != null) { ergebnisse.Add(ergebnis); } } this.berechneZusatzprodukte(); }