Esempio n. 1
0
 /// <summary>
 /// Konstruiert ein Angebot.
 /// </summary>
 /// <param name="angebotId">Die Id muss einmalig sein.</param>
 /// <param name="kundennummer"></param>
 /// <param name="lieferadresse"></param>
 /// <param name="rechnungsadresse"></param>
 /// <param name="posten">Liste von Posten</param>
 /// <param name="gueltigAb">Ab wann das Angebot gültig ist.</param>
 /// <param name="gueltigBis">Bis wann das Produkt gültig ist.</param>
 public AngebotTyp(string angebotId, string kundennummer, AdressTyp lieferadresse, AdressTyp rechnungsadresse, IList <PostenTyp> posten, DateTime gueltigAb, DateTime gueltigBis, float gesamtPreisNetto)
 {
     this.AngebotId        = angebotId;
     this.Kundennummer     = kundennummer;
     this.Lieferadresse    = lieferadresse;
     this.Rechnungsadresse = rechnungsadresse;
     this.GueltigAb        = gueltigAb;
     this.GueltigBis       = gueltigBis;
     this.Posten           = posten;
     this.GesamtPreisNetto = gesamtPreisNetto;
 }
Esempio n. 2
0
        /// <summary>
        /// Konstruiert ein Angebot.
        /// </summary>
        /// <param name="kundennummer"></param>
        /// <param name="lieferadresse"></param>
        /// <param name="rechnungsadresse"></param>
        /// <param name="posten">Posten ist ein Dictionary, das als key das Produkt und als value die angebotene Menge hält.</param>
        /// <param name="gueltigAb">Ab wann das Angebot gültig ist.</param>
        /// <param name="gueltigBis">Bis wann das Produkt gültig ist.</param>
        public Angebot(string angebotId, string kundennummer, AdressTyp lieferadresse, AdressTyp rechnungsadresse, IDictionary <ProduktTyp, int> posten, DateTime gueltigAb, DateTime gueltigBis)
        {
            this.AngebotId        = angebotId;
            this.Kundennummer     = kundennummer;
            this.Lieferadresse    = lieferadresse;
            this.Rechnungsadresse = rechnungsadresse;
            this.GueltigAb        = gueltigAb;
            this.GueltigBis       = gueltigBis;

            foreach (KeyValuePair <ProduktTyp, int> produkt_menge in posten)
            {
                this.Posten.Add(new Posten(produkt_menge.Key.ProduktId, produkt_menge.Key.Preis, produkt_menge.Key.Name, produkt_menge.Value));
                this.GesamtPreisNetto += produkt_menge.Key.Preis;
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Nutzbar wenn kein Angebot vorliegt, sondern direkt Beauftragt wird,
        /// Mehtode legt intern ein Proxy-Angebot an das vom Moment der Erstellung 14 Tage gültig ist
        /// </summary>
        /// <param name="kundennummer"></param>
        /// <param name="lieferadresse"></param>
        /// <param name="rechnungsadresse"></param>
        /// <param name="posten"></param>
        /// <param name="beauftragtAm"></param>
        /// <returns></returns>
        internal Auftrag AuftragErstellen(string kundennummer, AdressTyp lieferadresse, AdressTyp rechnungsadresse, IDictionary <ProduktTyp, int> posten, DateTime beauftragtAm)
        {
            //14 Tage auf die gegenwertige DateTime rechnen um das Proxy-Angebot für die Auftragsabwicklung valide zu hatlen
            DateTime gueltigBis = DateTime.Today.Add(new TimeSpan(14, 0, 0, 0));

            Angebot angebot = this.AngebotErstellen(kundennummer, lieferadresse, rechnungsadresse, posten, DateTime.Now, gueltigBis);

            // Triggert von Verandanfrage bei WaWi-Subsystem und gibt aus den zurückkommenden Lieferdaten das späteste zurück.
            DateTime spaetestesLieferdatum = this.VersandanfrageTriggern(angebot);

            Auftrag auftrag = this.AuftragVerwalter.AuftragErstellen(angebot, GetNextIdForType <Auftrag>(), beauftragtAm, spaetestesLieferdatum);

            //informiere AuslieferungsKomponente und Rechnungskomponente und setzt auftrag.IstLieferbar = true
            //wenn alles heute lieferbar ist
            this.Auslieferung_RechnungTriggern(auftrag, spaetestesLieferdatum);

            return(auftrag);
        }
Esempio n. 4
0
        internal Angebot AngebotErstellen(string angebotId, string kundennummer, AdressTyp lieferadresse, AdressTyp rechnungsadresse, IDictionary <ProduktTyp, int> posten, DateTime gueltigAb, DateTime gueltigBis)
        {
            Angebot angebot = new Angebot(angebotId, kundennummer, lieferadresse, rechnungsadresse, posten, gueltigAb, gueltigBis);


            //persist the new angebot
            using (ISession session = sessionFactory.OpenSession())
            {
                using (var transaction = session.BeginTransaction())
                {
#if DEBUG
                    Console.WriteLine("Speichern von: {0}", angebot);
#endif
                    session.Save(angebot);
                    transaction.Commit();
                }
            }
            return(angebot);
        }
Esempio n. 5
0
 /// <summary>
 /// Nutzbar wenn kein Angebot vorliegt, sondern direkt Beauftragt wird,
 /// Mehtode legt intern ein Proxy-Angebot an das vom Moment der Erstellung 14 Tage gültig ist
 /// </summary>
 /// <param name="kundennummer"></param>
 /// <param name="lieferadresse"></param>
 /// <param name="rechnungsadresse"></param>
 /// <param name="posten"></param>
 /// <param name="beauftragtAm"></param>
 /// <returns></returns>
 public string AuftragErstellen(string kundennummer, AdressTyp lieferadresse, AdressTyp rechnungsadresse, Dictionary <ProduktTyp, int> posten, DateTime beauftragtAm)
 {
     return(AuftragabwicklungsLogik.AuftragErstellen(kundennummer, lieferadresse, rechnungsadresse, posten, beauftragtAm).AuftragId);
 }
Esempio n. 6
0
 /// <summary>
 /// Nutzbar wenn kein Angebot vorliegt, sondern direkt Beauftragt wird,
 /// Mehtode legt intern ein Proxy-Angebot an das vom Moment der Erstellung 14 Tage gültig ist.
 /// Mit dem aktuellen Datum als Auftragsdatum.
 /// </summary>
 /// <param name="kundennummer"></param>
 /// <param name="lieferadresse"></param>
 /// <param name="rechnungsadresse"></param>
 /// <param name="posten"></param>
 /// <returns></returns>
 public string AuftragErstellen(string kundennummer, AdressTyp lieferadresse, AdressTyp rechnungsadresse, Dictionary <ProduktTyp, int> posten)
 {
     return(this.AuftragErstellen(kundennummer, lieferadresse, rechnungsadresse, posten, DateTime.Now));
 }
Esempio n. 7
0
 /// <summary>
 /// Erstellt ein Angebot.
 /// </summary>
 /// <param name="kundennummer"></param>
 /// <param name="lieferadresse"></param>
 /// <param name="rechnungsadresse"></param>
 /// <param name="posten">Dictionary das als Key die Produkte und als value die Anzahl des jeweiligen Produkts hält</param>
 /// <param name="gueltigAb">ab wann das Angebot gültig ist</param>
 /// <param name="gueltigBis">bis wann das Angebot gültig ist</param>
 public string AngebotErstellen(string kundennummer, AdressTyp lieferadresse, AdressTyp rechnungsadresse, IDictionary <ProduktTyp, int> posten, DateTime gueltigAb, DateTime gueltigBis)
 {
     return(this.AuftragabwicklungsLogik.AngebotErstellen(kundennummer, lieferadresse, rechnungsadresse, posten, gueltigAb, gueltigBis).AngebotId);
 }
Esempio n. 8
0
 /// <summary>
 /// Nutzbar wenn kein Angebot vorliegt, sondern direkt Beauftragt wird,
 /// Mehtode legt intern ein Proxy-Angebot an das vom Moment der Erstellung 14 Tage gültig ist
 /// </summary>
 /// <param name="kundennummer"></param>
 /// <param name="lieferadresse"></param>
 /// <param name="rechnungsadresse"></param>
 /// <param name="posten"></param>
 /// <param name="beauftragtAm"></param>
 /// <returns></returns>
 public string AuftragErstellen(string kundennummer, AdressTyp lieferadresse, AdressTyp rechnungsadresse, Dictionary <ProduktTyp, int> posten, DateTime beauftragtAm)
 {
     return(auftragManager.AuftragErstellen(kundennummer, lieferadresse, rechnungsadresse, posten, beauftragtAm));
 }
Esempio n. 9
0
 /// <summary>
 /// Erstellt ein Angebot.
 /// </summary>
 /// <param name="kundennummer"></param>
 /// <param name="lieferadresse"></param>
 /// <param name="rechnungsadresse"></param>
 /// <param name="posten">Dictionary das als Key die Produkte und als value die Anzahl des jeweiligen Produkts hält</param>
 /// <param name="gueltigAb">ab wann das Angebot gültig ist</param>
 /// <param name="gueltigBis">bis wann das Angebot gültig ist</param>
 public string AngebotErstellen(string kundenNummer, AdressTyp lieferAdresse, AdressTyp rechnungsAdresse, IDictionary <ProduktTyp, int> posten, DateTime gueltigAb, DateTime gueltigBis)
 {
     return(auftragManager.AngebotErstellen(kundenNummer, lieferAdresse, rechnungsAdresse, posten, gueltigAb, gueltigBis));
 }
Esempio n. 10
0
 /// <summary>
 /// Erstellt
 /// </summary>
 /// <param name="kundennummer"></param>
 /// <param name="lieferadresse"></param>
 /// <param name="rechnungsadresse"></param>
 /// <param name="posten"></param>
 /// <param name="gueltigAb"></param>
 /// <param name="gueltigBis"></param>
 /// <returns></returns>
 internal Angebot AngebotErstellen(string kundennummer, AdressTyp lieferadresse, AdressTyp rechnungsadresse, IDictionary <ProduktTyp, int> posten, DateTime gueltigAb, DateTime gueltigBis)
 {
     return(this.AngebotVerwalter.AngebotErstellen(GetNextIdForType <Angebot>(), kundennummer, lieferadresse, rechnungsadresse, posten, gueltigAb, gueltigBis));
 }