/// <summary> /// Speichert ein neues Angebot in der Datenbank /// </summary> /// <param name="gueltigAb"></param> /// <param name="gueltigBis"></param> /// <param name="preis"></param> /// <param name="kundeNr">ForeignKey Beziehung auf einen Kunden</param> /// <returns>NULL if SaveOrUpdate Fails else AngebotNrTyp for der persistent AngebotTyp</returns> public AngebotNrTyp erstelleAngebot(DateTime gueltigAb, DateTime gueltigBis, double preis, KundeTyp kunde, IDictionary<ProduktNummerTyp, int> prod) { AngebotNrTyp angebotNr = null; using (var session = AuftragserfassungKomp.getDB().OpenSession()) using (var transaction = session.BeginTransaction()) { try { //Holt sich die letzte ID aus der Tabele und erstellt die nächste TransportNummer //Allerdings nicht so schön weil man nicht sicher stellen kann das es auch wirklich die Max ID ist - auf jeden Fall nicht ThreadSicher! var maxID = session.CreateCriteria(typeof(AngebotTyp)).SetProjection(Projections.Max("ID")).UniqueResult(); angebotNr = new AngebotNrTyp(maxID != null ? Convert.ToString(maxID) : "0"); AngebotTyp angebot = new AngebotTyp(angebotNr, gueltigAb, gueltigBis, preis, kunde, prod); session.SaveOrUpdate(angebot); transaction.Commit(); } catch (NHibernate.Exceptions.GenericADOException ex) { Console.WriteLine("ADOException persisting new Angebot!" + ex); } } return angebotNr; }
public AngebotTyp(AngebotNrTyp nr, DateTime gueltigAb, DateTime gueltigBis, double addPreis, KundeTyp kunde, IDictionary<ProduktNummerTyp, int> prod) { this.nr = nr; this.gueltigAb = gueltigAb; this.gueltigBis = gueltigBis; this.gesamtPreis = addPreis; this.kunde = kunde; this.produkte = prod; }
public KundenNrTyp erstelleKunden(string nachname, string vorname, DateTime geburtsdatum, KundenLevel level, string strasse, String plz, string ort, string land) { KundenNrTyp kundenNr; using (var session = KundenKomp.getDb().OpenSession()) using (var transaction = session.BeginTransaction()) { //Holt sich die letzte ID aus der Tabele und erstellt die nächste Nummer //Allerdings nicht so schön weil man nicht sicher stellen kann das es auch wirklich die Max ID ist - auf jeden Fall nicht ThreadSicher! var maxID = session.CreateCriteria(typeof(KundeTyp)).SetProjection(Projections.Max("ID")).UniqueResult(); kundenNr = new KundenNrTyp(maxID != null ? Convert.ToString(maxID) : "0"); KundeTyp kunde = new KundeTyp(kundenNr, level, vorname, nachname, geburtsdatum, strasse, ort, plz, land); session.SaveOrUpdate(kunde); transaction.Commit(); } return kundenNr; }
public AngebotNrTyp erstelleAngebot(DateTime gueltigAb, DateTime gueltigBis, double preis, KundeTyp kundeNr, IDictionary<ProduktNummerTyp, int> produktListe) { return hesCore.getAuftragserfassungComp().erstelleAngebot(gueltigAb, gueltigBis, preis, kundeNr, produktListe); }
//Der Preis wird hier berechnet und nach unten gereicht, damit die Entity davon nichts mitbekommt public AngebotNrTyp erstelleAngebot(DateTime gueltigAb, DateTime gueltigBis, double preis, KundeTyp kunde,IDictionary<ProduktNummerTyp, int> produktListe) { return repo.erstelleAngebot(gueltigAb, gueltigBis, getGesamtPreis(produktListe, preis), kunde, produktListe); }