public static bool SendOrderConfirmation(OrderConfirmationModel model, ApplicationUser user) { Kontakdaten Kontakt = null; if (model.WMA.Lieferadresse != null) { Kontakt = model.WMA.Lieferadresse; } else { Kontakt = model.WMA.Auftraggeberadresse; } string Auftragsartikel = ""; float Gesamtpreis = 0; foreach (var artikel in model.Auftragsmengen) { var VEs = artikel.menge / artikel.artikel.Verpackungseinheit; var GesamtpreisArtikel = artikel.artikel.PreisProVE * artikel.menge / artikel.artikel.Verpackungseinheit; Gesamtpreis += artikel.artikel.PreisProVE * artikel.menge / artikel.artikel.Verpackungseinheit; Auftragsartikel += "\t" + VEs + "(" + artikel.artikel.Verpackungseinheit + ")" + "\t" + artikel.menge + "\t" + artikel.artikel.PreisProVE.ToString("0.00") + " €" + "\t\t" + GesamtpreisArtikel.ToString("0.00") + " €" + "\t\t" + artikel.artikel.Name + "\n"; } string mailBody = "Sehr geehrte(r) Frau/Herr " + model.UserName + ",\n\n" + "Ihre Bestellung ist bei uns eingegangen. Wir werden diese sorgfältig bearbeiten und mit der nächsten Lieferung versenden.\n\n" + "Voraussichtliches Lieferdatum: " + DateTime.Now.AddDays(1).ToString("dd.MM.yyy") + "\n\n" + "Auftragsnummer: \t" + model.WMA.Kennzeichnung + "\n" + "Bestelldatum: \t\t" + model.WMA.Bestelldatum.ToString("dd.MM.yyy") + "\n" + "Lieferanschrift: \t" + Kontakt.Name + "\n" + "\t\t\t" + Kontakt.Name2 + "\n" + "\t\t\t" + Kontakt.Name3 + "\n" + "\t\t\t" + Kontakt.Strasse + "\n" + "\t\t\t" + Kontakt.PLZ + " " + Kontakt.Ort + "\n\n\n" + "\tVEs\tAnzahl\tPreis VE\tGesamtpreis\tArtikel\n" + Auftragsartikel + "\n\n" + "\t\t\t\t\tGesamtpreis: " + Gesamtpreis.ToString("0.00") + " €\n\n\n" + "Wenn Sie weitere Fragen zu Ihrer Bestellung haben, helfen wir Ihnen gerne weiter. Sie erreichen uns unter der Rufnummer 0711-781988-30 oder [email protected]\n\n" + "Unser Serviceteam ist montags bis freitags von 09:00 Uhr bis 17:00 Uhr erreichbar.\n\n\n" + "Ihr Winkhardt-Team" ; if (!String.IsNullOrEmpty(mailBody)) { var message = new MailMessage(); //message.To.Add(new MailAddress("*****@*****.**")); message.To.Add(new MailAddress("*****@*****.**")); message.To.Add(new MailAddress(model.UserMail)); message.Subject = "Auftragsbestätigung: " + model.WMA.Kennzeichnung; message.Body = string.Format(mailBody, "*****@*****.**"); message.IsBodyHtml = false; using (var smtp = new SmtpClient()) { smtp.Send(message); } } return(true); }
public ActionResult KundeSpeichern(Kunde kunde, Kontakdaten Hauptadresse, string Land = "") { Land land = dms.Laender.SingleOrDefault(r => r.land == Land); Kunde kun = dms.Kunden.SingleOrDefault(r => r.KundeID == kunde.KundeID); if (kun == null) { if (land != null) { Hauptadresse.Land = land; } else { ViewBag.ErrLand = "true"; } kunde.Hauptadresse = Hauptadresse; if (ModelState.IsValid && land != null) { dms.Kunden.Add(kunde); dms.SaveChanges(); return(RedirectToAction("Index")); } else { foreach (ModelState state in ViewData.ModelState.Values.Where(x => x.Errors.Count > 0)) { foreach (var item in state.Errors) { System.Diagnostics.Debug.WriteLine("error: " + item.ErrorMessage); } } return(View("KundendatenEingabe", kunde)); } } else { if (ModelState.IsValid && land != null) { Kontakdaten HaupTAD = dms.Kontaktdatenn.Find(Hauptadresse.KontakdatenID); dms.Entry(kun).CurrentValues.SetValues(kunde); dms.Entry(HaupTAD).CurrentValues.SetValues(Hauptadresse); if (land.LandID != HaupTAD.Land.LandID) { dms.Laender.Find(HaupTAD.Land.LandID).laender.Remove(HaupTAD); HaupTAD.Land = land; } dms.SaveChanges(); return(RedirectToAction("Index")); } else { return(View("KundendatenEingabe", kunde)); } } }
public ActionResult KundeLoeschen(int KundeID) { Kunde kunde = dms.Kunden.Find(KundeID); Kontakdaten Hauptadresse = dms.Kontaktdatenn.Find(kunde.Hauptadresse.KontakdatenID); if (kunde.auftraege.Count() == 0) { Hauptadresse.Kunde = null; dms.SaveChanges(); dms.Kontaktdatenn.Remove(Hauptadresse); var Adressen = dms.Kontaktdatenn.Where(r => r.Kunde.KundeID == kunde.KundeID); foreach (var adresse in Adressen) { dms.Kontaktdatenn.Remove(adresse); } dms.Kunden.Remove(kunde); dms.SaveChanges(); return(RedirectToAction("Index")); } else { return(View("Details")); } }
private bool ReadOrderInformation(string OrderDirectoryPath, string Filename) { XmlDocument xmlDoc = new XmlDocument(); Messe messe; Werbemittelauftrag WMA = new Werbemittelauftrag { Stat = dms.Stati.Find(1), Erstellungsdatum = DateTime.Now, Versanddatum = DateTime.Now, Auftragsmengen = new List <Auftragsmenge>(), Pakete = new List <Paket>(), Verschickungskosten = 0, isLandesmesseauftrag = false, //kunde = kun, Bemerkung = Bemerkung, //Auftragsmailtext = Auftragsmailtext, }; try { xmlDoc.Load(@OrderDirectoryPath + Filename); if (xmlDoc.DocumentElement.Name == "tdSalesOrder") { Debug.WriteLine("'tdSalesOder' wurde gefunden. Starte Auftrag einlesen"); //Suche nach Messe if (checkXMLElementIsOncePresent(xmlDoc, "Messe_MesseDesc")) { string Messename = xmlDoc.GetElementsByTagName("Messe_MesseDesc")[0].InnerText; messe = dms.Messen.SingleOrDefault(r => r.Name == Messename); if (messe != null) { WMA.messe = messe; } else { Debug.WriteLine("___Error___ Messe '" + Messename + "' wurde nicht gefunden "); return(false); } } //Artikel der Bestellung auslesen XmlNodeList tdSalesOrderPositions = xmlDoc.GetElementsByTagName("tdSalesOrderPos"); if (tdSalesOrderPositions.Count > 1) { for (int index = 0; index < xmlDoc.GetElementsByTagName("tdSalesOrderPos").Count - 1; index++) { string Artikelnummer = xmlDoc.GetElementsByTagName("ProductID")[index].InnerText; string ArtikelmengeXML = xmlDoc.GetElementsByTagName("BaseQuantity")[index].InnerText.Replace(".", "").Replace(",", "."); int Artikelmenge = 0; if (!String.IsNullOrEmpty(Artikelnummer) && !String.IsNullOrEmpty(ArtikelmengeXML)) { float Penismenge = float.Parse(ArtikelmengeXML); Artikelmenge = (int)Penismenge; Debug.WriteLine("Artikelnummer wurde gefunden: " + Artikelnummer); Debug.WriteLine("Artikelmenge wurde gefunden: " + Artikelmenge); } else { Debug.WriteLine("___Error___ Artikelnummer und oder Artikelmenge wurde(n) nicht gefunden!"); return(false); } Artikel artikel = dms.Artikell.SingleOrDefault(r => r.Artikelnummer == Artikelnummer); if (artikel != null) { WMA.Auftragsmengen.Add(new Auftragsmenge { menge = Artikelmenge, artikel = artikel }); } else { Debug.WriteLine("___Error___ Artikel wurde nicht gefunden: '" + Artikelnummer + "'"); return(false); } } } else { Debug.WriteLine("In der Bestellung sind keine Artikel enthalten!"); return(false); } //Auftraggeber Kontaktdaten Kontakdaten Auftraggeberkontakt = new Kontakdaten(); if (checkXMLElementIsOncePresent(xmlDoc, "Contact_FirstName") && checkXMLElementIsOncePresent(xmlDoc, "Contact_LastName") && checkXMLElementIsOncePresent(xmlDoc, "Contact_PhoneNr") && checkXMLElementIsOncePresent(xmlDoc, "Contact_EMail") && checkXMLElementIsOncePresent(xmlDoc, "Contact_Country")) { Auftraggeberkontakt.Name = xmlDoc.GetElementsByTagName("Contact_FirstName")[0].InnerText + " " + xmlDoc.GetElementsByTagName("Contact_LastName")[0].InnerText; Auftraggeberkontakt.Name2 = "Tel2: " + xmlDoc.GetElementsByTagName("Contact_PhoneNr2")[0].InnerText; Auftraggeberkontakt.Name3 = "Mobile: " + xmlDoc.GetElementsByTagName("Contact_MobilePhone")[0].InnerText; if (String.IsNullOrEmpty(xmlDoc.GetElementsByTagName("Contact_Street")[0].InnerText)) { Auftraggeberkontakt.Strasse = "-"; } if (String.IsNullOrEmpty(xmlDoc.GetElementsByTagName("Contact_PostalCode")[0].InnerText)) { Auftraggeberkontakt.PLZ = "-"; } if (String.IsNullOrEmpty(xmlDoc.GetElementsByTagName("Contact_City")[0].InnerText)) { Auftraggeberkontakt.Ort = "-"; } Auftraggeberkontakt.Telefon = xmlDoc.GetElementsByTagName("Contact_PhoneNr")[0].InnerText; Auftraggeberkontakt.EMail = xmlDoc.GetElementsByTagName("Contact_EMail")[0].InnerText; string CountryCode = xmlDoc.GetElementsByTagName("Contact_Country")[0].InnerText; if (dms.Laender.SingleOrDefault(r => r.CountryCode == CountryCode) != null) { Land AuftraggeberkontaktLand = dms.Laender.SingleOrDefault(r => r.CountryCode == CountryCode); Auftraggeberkontakt.Land = dms.Laender.SingleOrDefault(r => r.CountryCode == CountryCode); } else { Auftraggeberkontakt.Land = dms.Laender.SingleOrDefault(r => r.CountryCode == "DE"); Debug.WriteLine("___Error___ Ländercode konnte nicht zugeordnet werden: " + CountryCode + " Es wurde DE ausgewählt"); } WMA.Auftraggeberadresse = Auftraggeberkontakt; } else { Debug.WriteLine("___Error___ Auftraggeberkontaktdaten konnten nicht gefunden werden: "); return(false); } //Lieferadresse Kontakdaten Lieferadresse = new Kontakdaten(); Land land = new Land(); if (checkXMLElementIsOncePresent(xmlDoc, "CustomerAddress_Name1") && checkXMLElementIsOncePresent(xmlDoc, "CustomerAddress_Street") && checkXMLElementIsOncePresent(xmlDoc, "CustomerAddress_PostalCode") && checkXMLElementIsOncePresent(xmlDoc, "CustomerAddress_City") && checkXMLElementIsOncePresent(xmlDoc, "CustomerAddress_Country")) { Lieferadresse.Name = xmlDoc.GetElementsByTagName("CustomerAddress_Name1")[0].InnerText; Lieferadresse.Name2 = xmlDoc.GetElementsByTagName("CustomerAddress_Name2")[0].InnerText; Lieferadresse.Strasse = xmlDoc.GetElementsByTagName("CustomerAddress_Street")[0].InnerText; Lieferadresse.PLZ = xmlDoc.GetElementsByTagName("CustomerAddress_PostalCode")[0].InnerText; Lieferadresse.Ort = xmlDoc.GetElementsByTagName("CustomerAddress_City")[0].InnerText; string CountryCode = xmlDoc.GetElementsByTagName("CustomerAddress_Country")[0].InnerText; if (dms.Laender.SingleOrDefault(r => r.CountryCode == CountryCode) != null) { land = dms.Laender.SingleOrDefault(r => r.CountryCode == CountryCode); Lieferadresse.Land = land; WMA.Lieferadresse = Lieferadresse; } else { Debug.WriteLine("___Error___ Ländercode konnte nicht zugeordnet werden: " + CountryCode); return(false); } Kunde kunde = new Kunde { Name = Lieferadresse.Name, Hauptadresse = Auftraggeberkontakt, Erstellungsdatum = DateTime.Now, }; WMA.kunde = kunde; } else { Debug.WriteLine("___Error___ Lieferadressdaten konnten nicht gefunden werden: "); return(false); } //Auftrags Kennzeichnung if (checkXMLElementIsOncePresent(xmlDoc, "MainReferenceNumber")) { string WMAKenzeichen = xmlDoc.GetElementsByTagName("MainReferenceNumber")[0].InnerText; WMA.Kennzeichnung = WMAKenzeichen; } //Bestelldatum eintragen if (checkXMLElementIsOncePresent(xmlDoc, "CreationDate")) { string BookingDate = xmlDoc.GetElementsByTagName("CreationDate")[0].InnerText; CultureInfo deCulture = new CultureInfo("de-DE"); DateTime Bestelldatum = DateTime.Parse(BookingDate, deCulture.DateTimeFormat); WMA.Bestelldatum = Bestelldatum; } //Halle und Stand if (checkXMLElementIsOncePresent(xmlDoc, "HALLESTAND")) { string HallUndStand = xmlDoc.GetElementsByTagName("HALLESTAND")[0].InnerText; WMA.HalleUStand = HallUndStand; } //Bemerkung Auslesen if (checkXMLElementIsOncePresent(xmlDoc, "MemoText")) { string Bemerkung = xmlDoc.GetElementsByTagName("MemoText")[0].InnerText; WMA.Bemerkung = Bemerkung; } //XML Daten miteinfügen WMA.Auftragsmailtext = xmlDoc.InnerText; try { dms.Werbemittelauftraege.Add(WMA); dms.SaveChanges(); } catch (DbEntityValidationException dbEx) { foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage); } } } //dms.SaveChanges(); return(true); } else { Debug.WriteLine("Die Datei '" + Filename + "'konnte nicht eingelesen werden weil das Element 'tdSalesOder' nicht gefunden werden konnte."); return(false); } } catch (XmlException exc) { Debug.WriteLine("Not an XML Doc: " + exc.Message); return(false); } }
public ActionResult AuftragAnlegen(FormCollection fc) { string Mailtext = "Bestellbestätigung\n\n"; Kontakdaten Auftraggeber = new Kontakdaten { Name2 = fc["Name"].ToString(), Name = fc["Name2"].ToString(), Name3 = fc["Name3"].ToString(), Strasse = fc["Strasse"].ToString(), Ort = fc["Ort"].ToString(), PLZ = fc["Plz"].ToString(), EMail = fc["EMail"].ToString(), Land = dms.Laender.Single(r => r.land == "Deutschland") }; Kontakdaten Lieferadresse = null; if (fc["TbName"].ToString() != fc["Name"].ToString()) { Lieferadresse = new Kontakdaten { Name2 = fc["TbName"].ToString(), Name = fc["Name2"].ToString(), Name3 = fc["Name3"].ToString(), Strasse = fc["Strasse"].ToString(), Ort = fc["Ort"].ToString(), PLZ = fc["Plz"].ToString(), EMail = fc["EMail"].ToString(), Land = dms.Laender.Single(r => r.land == "Deutschland") }; } //Kunde kunde = new Kunde{ Name = Auftraggeber.Name, Erstellungsdatum = DateTime.Now}; ////kunde.Hauptadresse = new Kontakdaten { Name = Auftraggeber.Name, Name2 = Auftraggeber.Name2, Name3 = Auftraggeber.Name3, Strasse = Auftraggeber.Strasse, PLZ = Auftraggeber.PLZ, Ort = Auftraggeber.Ort, Land = Auftraggeber.Land, Telefon = Auftraggeber.Telefon, EMail = Auftraggeber.EMail}; //Kunde KundeDB = dms.Kunden.SingleOrDefault(r => r.Name.Equals(fc["Name"].ToString()) && r.Hauptadresse.Name2.Equals(fc["Name2"].ToString())); Kunde KundeDB = dms.Kunden.Find(4409); //if (KundeDB != null) //{ // kunde = KundeDB; //} ICollection <Auftragsmenge> Auftragsmengen = new List <Auftragsmenge>(); foreach (var item in fc) { if (item.ToString().Length > 13 && item.ToString().Substring(0, 13) == "ArtikelMenge_") { int length = item.ToString().Length - 13; int ArtikelID = int.Parse(item.ToString().Substring(13, length)); Artikel artikel = dms.Artikell.Find(ArtikelID); int Menge = int.Parse(fc[item.ToString()]) * artikel.Verpackungseinheit; Auftragsmengen.Add(new Auftragsmenge { artikel = dms.Artikell.Find(ArtikelID), menge = Menge }); Mailtext = Mailtext + " - " + Menge + " " + artikel.Name + "\n"; } } var userManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>(); var user = userManager.FindByEmail(fc["EMail"].ToString()); string kennzeichen = ""; if (dms.Werbemittelauftraege.Where(r => r.Kennzeichnung.Contains("WMMA")).Count() > 0) { Werbemittelauftrag wmala = dms.Werbemittelauftraege.Where(r => r.Kennzeichnung.Contains("WMMA")).ToList().Last(); string laKennzeichnung = wmala.Kennzeichnung; if (wmala.Erstellungsdatum.Year < DateTime.Now.Year) { kennzeichen = "WMMA" + DateTime.Now.Year.ToString() + "_000001"; } else { int number = int.Parse(laKennzeichnung.Substring(9, 6)); number++; kennzeichen = "WMMA" + DateTime.Now.Year.ToString() + "_" + number.ToString("000000"); } } else { kennzeichen = "WMMA" + DateTime.Now.Year.ToString() + "_000001"; } Werbemittelauftrag WebShopAuftrag = new Werbemittelauftrag { Erstellungsdatum = DateTime.Now, Versanddatum = DateTime.Now, ZeitAuftragPacken = 0, Auftraggeberadresse = Auftraggeber, Kennzeichnung = kennzeichen, messe = dms.Messen.Single(r => r.isLandesmesse), isLandesmesseauftrag = true, ZeitAuftragAnlegen = 0, Bestelldatum = DateTime.Now, Auftragsmengen = Auftragsmengen, Stat = dms.Stati.Find(1), Pakete = new List <Paket>(), PSPNummer = fc["PSPNummer"].ToString(), //Kostenstelle = fc["Kostenstelle"].ToString(), Lieferadresse = Lieferadresse, kunde = KundeDB, Verschickungskosten = 0, Bemerkung = fc["Bemerkung"].ToString() }; dms.Werbemittelauftraege.Add(WebShopAuftrag); var model = new OrderConfirmationModel() { UserMail = fc["EMail"].ToString(), UserName = user.Vorname + " " + user.Nachname, Auftragsmengen = Auftragsmengen, WMA = WebShopAuftrag }; try { dms.SaveChanges(); Extensions.SendOrderConfirmation(model, user); //try //{ // string mailBody = ""; // if (Engine.Razor.IsTemplateCached("Bestellbestaetigung", null)) // { // mailBody = Engine.Razor.Run("Bestellbestaetigung", null, model); // } // else // { // var templateFilePath = System.Web.HttpContext.Current.Server.MapPath("~/Views/WebShop/Bestellbestaetigung.cshtml"); // var templateAsString = System.IO.File.ReadAllText(templateFilePath); // //var templateFolderPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "WebShop"); // mailBody = Engine.Razor.RunCompile(templateAsString, "Bestellbestaetigung", null, model); // } // if (!String.IsNullOrEmpty(mailBody)) // { // userManager.SendEmail(user.Id, "Bestellbestätigung", mailBody); // var message = new MailMessage(); // message.To.Add(new MailAddress("*****@*****.**")); // message.Subject = "Test"; // message.Body = string.Format(mailBody, "Werbemittelapplikation"); // message.IsBodyHtml = true; // using (var smtp = new SmtpClient()) // { // smtp.Send(message); // } // } //} //catch (Exception ex) //{ // System.Diagnostics.Debug.WriteLine("Mail: " + ex.Message); //} } catch (DbEntityValidationException dbEx) { foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage); System.Diagnostics.Debug.Write("val probelem" + validationError.ErrorMessage); } } } ViewData["Artikel"] = dms.Artikell.Where(r => r.Landesmesseartikel).OrderBy(r => r.Name).ToList(); var UserManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>(); var ShopUser = UserManager.FindById(User.Identity.GetUserId()); ViewData["User"] = ShopUser; ViewData["AuftragAngelegt"] = "true"; return(View("Index")); //return PartialView("Bestellbestaetigung", model); }