Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
                }
            }
        }
Esempio n. 3
0
        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);
        }