/// <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; }
/// <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; } }
/// <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); }
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); }
/// <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); }
/// <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)); }
/// <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); }
/// <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)); }
/// <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)); }
/// <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)); }