/// <summary> /// Diese Methode erstellt einen Auftrag über alle Angebotspositionen, zu denen noch kein Auftrag exisitiert. /// </summary> private Auftrag CreateOrderForOfferPositionsWithoutOrderID() { Auftrag auftrag; using (var dbContext = new DataBaseDataContext()) { var angebot = dbContext.Angebot.Where(ang => ang.AngebotID.Equals(int.Parse(tbxAngNummer.Text))).FirstOrDefault(); auftrag = new Auftrag { Datum = DateTime.Today, Typ = angebot.Typ, BV = angebot.BV, BV2 = angebot.BV2, Zahlungsbedingung = angebot.Zahlungsbedingung, Betreff = angebot.Betreff, Nachlass = angebot.Nachlass, NachlassArt = angebot.NachlassArt, Steuer = angebot.Steuer, Aufmaß = angebot.Aufmaß, Anfahrt = angebot.Anfahrt, Sondertext = angebot.Sondertext, SondertextUnten = angebot.SondertextUnten, KundeID = angebot.KundeID, //Gesamtbetrag = angebot.Gesamtbetrag, Empfänger = angebot.Empfänger, VorgabedatumRechnung = dateAngVorgabeRech.Value.Date != DateTime.Today.Date ? dateAngVorgabeRech.Value.Date : (DateTime?)null }; try { dbContext.Auftrag.InsertOnSubmit(auftrag); dbContext.SubmitChanges(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } decimal sum = 0.0m; foreach (DataGridViewRow row in dgrPositionen.Rows) { // Es werden nur AngebotsPositionen berücksichtigt, die noch keinem Auftrag zugeordnet wurden. if (row.Cells["AuftragID"].Value == null) { var angebotPosition = dbContext.Angebot_Position.Where(ap => ap.PosID.Equals(row.Cells["PosID"].Value)).FirstOrDefault(); var auftragPosition = new Auftrag_Position { AuftragID = auftrag.AuftragID, Artikel = angebotPosition.Artikel, Sondertext = angebotPosition.Sondertext, Typ = angebotPosition.Typ, AnlagenStk = angebotPosition.AnlagenStk, Breite = angebotPosition.Breite, Tiefe = angebotPosition.Tiefe, Türen = angebotPosition.Türen, TW = angebotPosition.TW, ZuschlagTür = angebotPosition.ZuschlagTür, Einzelpreis = angebotPosition.Einzelpreis, Zuschlag = angebotPosition.Zuschlag, ZuschlagArt = angebotPosition.ZuschlagArt, Alupulver = angebotPosition.Alupulver, Montage = angebotPosition.Montage, AussparungStk = angebotPosition.AussparungStk, AussparungTxt = angebotPosition.AussparungTxt, Alternativ1Typ = angebotPosition.Alternativ1Typ, Alternativ1Preis = angebotPosition.Alternativ1Preis, Alternativ2Typ = angebotPosition.Alternativ2Typ, Alternativ2Preis = angebotPosition.Alternativ2Preis, SondertextOben = angebotPosition.SondertextOben, Oberlicht = angebotPosition.Oberlicht, SonderartikelEinheit = angebotPosition.SonderartikelEinheit }; // Increment Gesamtsumme. sum += auftragPosition.Einzelpreis * auftragPosition.AnlagenStk; sum += auftragPosition.Alupulver * auftragPosition.AnlagenStk; try { // Auftragsposition in DB speichern dbContext.Auftrag_Position.InsertOnSubmit(auftragPosition); dbContext.SubmitChanges(); // Auftragsposition auf Auftrag referenzieren. angebotPosition.AuftragID = auftrag.AuftragID; //dbContext.SubmitChanges(); dbContext.SubmitChanges(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } } try { // Von der Gesamtsumme der Positionen den Nachlass abziehen. if (Func.IsNumeric(tbxNachlass.Text, true) & tbxNachlass.Text != "" & cobNachlass.SelectedIndex == 0) // Prozent { sum = sum - (sum * decimal.Parse(tbxNachlass.Text) / 100); } else if (Func.IsNumeric(tbxNachlass.Text, true) & tbxNachlass.Text != "") { sum = sum - decimal.Parse(tbxNachlass.Text); } // Zu der Gesamtsumme der Positionen die MwSt hinzurechnen. //if (cobMwSt.SelectedIndex == 0) //{ // sum = sum * 0.19m + sum; //} sum = sum * (Decimal)cobMwSt.SelectedValue + sum; // Auftrag mit Gesamtbetrag updaten. auftrag.Gesamtbetrag = sum; dbContext.SubmitChanges(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } btnEdit.Enabled = false; itemPosNeu.Enabled = false; itemPosEdit.Enabled = false; itemPosDelete.Enabled = false; // Positionsgrid aktualisieren Func.FAngebot.dgrPositionen.DataSource = Func.LoadAngebotPositionenUebersicht(); //GeneratePosNr(); selectedRows = 0; return auftrag; }
private void detach_Auftrag(Auftrag entity) { this.SendPropertyChanging(); entity.Kunde = null; }
private void attach_Auftrag(Auftrag entity) { this.SendPropertyChanging(); entity.Kunde = this; }
partial void DeleteAuftrag(Auftrag instance);
partial void UpdateAuftrag(Auftrag instance);
partial void InsertAuftrag(Auftrag instance);